net: Add netif_is_gretap()/netif_is_ip6gretap()
authorOz Shlomo <ozsh@mellanox.com>
Wed, 21 Nov 2018 10:15:34 +0000 (12:15 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Mon, 10 Dec 2018 23:53:04 +0000 (15:53 -0800)
Changed the is_gretap_dev and is_ip6gretap_dev logic from structure
comparison to string comparison of the rtnl_link_ops kind field.

This approach aligns with the current identification methods and function
names of vxlan and geneve network devices.

Convert mlxsw to use these helpers and use them in downstream mlx5 patch.

Signed-off-by: Oz Shlomo <ozsh@mellanox.com>
Reviewed-by: Eli Britstein <elibr@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
include/net/gre.h
net/ipv4/ip_gre.c
net/ipv6/ip6_gre.c

index d965fd275c90d2fe124d43972fadc8c44d7d8a33..ad5a9b9e1466deb3f5718970750a2a7c6290f70a 100644 (file)
@@ -383,7 +383,7 @@ mlxsw_sp_span_entry_gretap4_deconfigure(struct mlxsw_sp_span_entry *span_entry)
 }
 
 static const struct mlxsw_sp_span_entry_ops mlxsw_sp_span_entry_ops_gretap4 = {
-       .can_handle = is_gretap_dev,
+       .can_handle = netif_is_gretap,
        .parms = mlxsw_sp_span_entry_gretap4_parms,
        .configure = mlxsw_sp_span_entry_gretap4_configure,
        .deconfigure = mlxsw_sp_span_entry_gretap4_deconfigure,
@@ -484,7 +484,7 @@ mlxsw_sp_span_entry_gretap6_deconfigure(struct mlxsw_sp_span_entry *span_entry)
 
 static const
 struct mlxsw_sp_span_entry_ops mlxsw_sp_span_entry_ops_gretap6 = {
-       .can_handle = is_ip6gretap_dev,
+       .can_handle = netif_is_ip6gretap,
        .parms = mlxsw_sp_span_entry_gretap6_parms,
        .configure = mlxsw_sp_span_entry_gretap6_configure,
        .deconfigure = mlxsw_sp_span_entry_gretap6_deconfigure,
index 797142eee9cdec2c6cbc67fdaeaaa98a5aeddd24..b60f212c16c65458700f2cf084ac33749e7a3e3a 100644 (file)
@@ -37,8 +37,17 @@ struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
 int gre_parse_header(struct sk_buff *skb, struct tnl_ptk_info *tpi,
                     bool *csum_err, __be16 proto, int nhs);
 
-bool is_gretap_dev(const struct net_device *dev);
-bool is_ip6gretap_dev(const struct net_device *dev);
+static inline bool netif_is_gretap(const struct net_device *dev)
+{
+       return dev->rtnl_link_ops &&
+              !strcmp(dev->rtnl_link_ops->kind, "gretap");
+}
+
+static inline bool netif_is_ip6gretap(const struct net_device *dev)
+{
+       return dev->rtnl_link_ops &&
+              !strcmp(dev->rtnl_link_ops->kind, "ip6gretap");
+}
 
 static inline int gre_calc_hlen(__be16 o_flags)
 {
index 76a9a5f7a40e6ded698cb4f8d73c1437179083de..c7a7bd58a23c585778cce9bb0dcf6525caef6e55 100644 (file)
@@ -1341,12 +1341,6 @@ static void ipgre_tap_setup(struct net_device *dev)
        ip_tunnel_setup(dev, gre_tap_net_id);
 }
 
-bool is_gretap_dev(const struct net_device *dev)
-{
-       return dev->netdev_ops == &gre_tap_netdev_ops;
-}
-EXPORT_SYMBOL_GPL(is_gretap_dev);
-
 static int ipgre_newlink(struct net *src_net, struct net_device *dev,
                         struct nlattr *tb[], struct nlattr *data[],
                         struct netlink_ext_ack *extack)
index 81b69bcee7146276e05238e2811935d69d6a95d3..229e55c99021a887bde599c3f8ac73013084d23b 100644 (file)
@@ -1885,12 +1885,6 @@ static void ip6gre_tap_setup(struct net_device *dev)
        netif_keep_dst(dev);
 }
 
-bool is_ip6gretap_dev(const struct net_device *dev)
-{
-       return dev->netdev_ops == &ip6gre_tap_netdev_ops;
-}
-EXPORT_SYMBOL_GPL(is_ip6gretap_dev);
-
 static bool ip6gre_netlink_encap_parms(struct nlattr *data[],
                                       struct ip_tunnel_encap *ipencap)
 {