nfp: flower: increase scope of netdev checking functions
authorJohn Hurley <john.hurley@netronome.com>
Sat, 10 Nov 2018 05:21:28 +0000 (21:21 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Nov 2018 17:54:53 +0000 (09:54 -0800)
Both the actions and tunnel_conf files contain local functions that check
the type of an input netdev. In preparation for re-use with tunnel offload
via indirect blocks, move these to static inline functions in a header
file.

Signed-off-by: John Hurley <john.hurley@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/flower/action.c
drivers/net/ethernet/netronome/nfp/flower/cmsg.h
drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c

index 2e64fe8..8d54b36 100644 (file)
@@ -2,7 +2,6 @@
 /* Copyright (C) 2017-2018 Netronome Systems, Inc. */
 
 #include <linux/bitfield.h>
-#include <net/geneve.h>
 #include <net/pkt_cls.h>
 #include <net/switchdev.h>
 #include <net/tc_act/tc_csum.h>
@@ -11,7 +10,6 @@
 #include <net/tc_act/tc_pedit.h>
 #include <net/tc_act/tc_vlan.h>
 #include <net/tc_act/tc_tunnel_key.h>
-#include <net/vxlan.h>
 
 #include "cmsg.h"
 #include "main.h"
@@ -92,18 +90,6 @@ nfp_fl_pre_lag(struct nfp_app *app, const struct tc_action *action,
        return act_size;
 }
 
-static bool nfp_fl_netdev_is_tunnel_type(struct net_device *out_dev,
-                                        enum nfp_flower_tun_type tun_type)
-{
-       if (netif_is_vxlan(out_dev))
-               return tun_type == NFP_FL_TUNNEL_VXLAN;
-
-       if (netif_is_geneve(out_dev))
-               return tun_type == NFP_FL_TUNNEL_GENEVE;
-
-       return false;
-}
-
 static int
 nfp_fl_output(struct nfp_app *app, struct nfp_fl_output *output,
              const struct tc_action *action, struct nfp_fl_payload *nfp_flow,
index 3e39155..15f41cf 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/skbuff.h>
 #include <linux/types.h>
 #include <net/geneve.h>
+#include <net/vxlan.h>
 
 #include "../nfp_app.h"
 #include "../nfpcore/nfp_cpp.h"
@@ -499,6 +500,32 @@ static inline int nfp_flower_cmsg_get_data_len(struct sk_buff *skb)
        return skb->len - NFP_FLOWER_CMSG_HLEN;
 }
 
+static inline bool
+nfp_fl_netdev_is_tunnel_type(struct net_device *netdev,
+                            enum nfp_flower_tun_type tun_type)
+{
+       if (netif_is_vxlan(netdev))
+               return tun_type == NFP_FL_TUNNEL_VXLAN;
+       if (netif_is_geneve(netdev))
+               return tun_type == NFP_FL_TUNNEL_GENEVE;
+
+       return false;
+}
+
+static inline bool nfp_fl_is_netdev_to_offload(struct net_device *netdev)
+{
+       if (!netdev->rtnl_link_ops)
+               return false;
+       if (!strcmp(netdev->rtnl_link_ops->kind, "openvswitch"))
+               return true;
+       if (netif_is_vxlan(netdev))
+               return true;
+       if (netif_is_geneve(netdev))
+               return true;
+
+       return false;
+}
+
 struct sk_buff *
 nfp_flower_cmsg_mac_repr_start(struct nfp_app *app, unsigned int num_ports);
 void
index 5d641d7..2d9f26a 100644 (file)
@@ -4,7 +4,6 @@
 #include <linux/etherdevice.h>
 #include <linux/inetdevice.h>
 #include <net/netevent.h>
-#include <net/vxlan.h>
 #include <linux/idr.h>
 #include <net/dst_metadata.h>
 #include <net/arp.h>
@@ -182,20 +181,6 @@ void nfp_tunnel_keep_alive(struct nfp_app *app, struct sk_buff *skb)
        }
 }
 
-static bool nfp_tun_is_netdev_to_offload(struct net_device *netdev)
-{
-       if (!netdev->rtnl_link_ops)
-               return false;
-       if (!strcmp(netdev->rtnl_link_ops->kind, "openvswitch"))
-               return true;
-       if (netif_is_vxlan(netdev))
-               return true;
-       if (netif_is_geneve(netdev))
-               return true;
-
-       return false;
-}
-
 static int
 nfp_flower_xmit_tun_conf(struct nfp_app *app, u8 mtype, u16 plen, void *pdata,
                         gfp_t flag)
@@ -617,7 +602,7 @@ static void nfp_tun_add_to_mac_offload_list(struct net_device *netdev,
 
        if (nfp_netdev_is_nfp_repr(netdev))
                port = nfp_repr_get_port_id(netdev);
-       else if (!nfp_tun_is_netdev_to_offload(netdev))
+       else if (!nfp_fl_is_netdev_to_offload(netdev))
                return;
 
        entry = kmalloc(sizeof(*entry), GFP_KERNEL);
@@ -660,7 +645,7 @@ int nfp_tunnel_mac_event_handler(struct nfp_app *app,
 {
        if (event == NETDEV_DOWN || event == NETDEV_UNREGISTER) {
                /* If non-nfp netdev then free its offload index. */
-               if (nfp_tun_is_netdev_to_offload(netdev))
+               if (nfp_fl_is_netdev_to_offload(netdev))
                        nfp_tun_del_mac_idx(app, netdev->ifindex);
        } else if (event == NETDEV_UP || event == NETDEV_CHANGEADDR ||
                   event == NETDEV_REGISTER) {