netdev: introduce new NETIF_F_HW_SWITCH_OFFLOAD feature flag for switch device offloads
authorRoopa Prabhu <roopa@cumulusnetworks.com>
Fri, 30 Jan 2015 06:40:11 +0000 (22:40 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Feb 2015 07:16:33 +0000 (23:16 -0800)
This is a high level feature flag for all switch asic offloads

switch drivers set this flag on switch ports. Logical devices like
bridge, bonds, vxlans can inherit this flag from their slaves/ports.

The patch also adds the flag to NETIF_F_ONE_FOR_ALL, so that it gets
propagated to the upperdevices (bridges and bonds).

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdev_features.h

index 8e30685affeb3a40b00fffbdbdcb3edbb5b10ead..7d59dc6ab78922cc8c15b84ba95736752f8139e6 100644 (file)
@@ -66,6 +66,7 @@ enum {
        NETIF_F_HW_VLAN_STAG_FILTER_BIT,/* Receive filtering on VLAN STAGs */
        NETIF_F_HW_L2FW_DOFFLOAD_BIT,   /* Allow L2 Forwarding in Hardware */
        NETIF_F_BUSY_POLL_BIT,          /* Busy poll */
+       NETIF_F_HW_SWITCH_OFFLOAD_BIT,  /* HW switch offload */
 
        /*
         * Add your fresh new feature above and remember to update
@@ -124,6 +125,7 @@ enum {
 #define NETIF_F_HW_VLAN_STAG_TX        __NETIF_F(HW_VLAN_STAG_TX)
 #define NETIF_F_HW_L2FW_DOFFLOAD       __NETIF_F(HW_L2FW_DOFFLOAD)
 #define NETIF_F_BUSY_POLL      __NETIF_F(BUSY_POLL)
+#define NETIF_F_HW_SWITCH_OFFLOAD      __NETIF_F(HW_SWITCH_OFFLOAD)
 
 /* Features valid for ethtool to change */
 /* = all defined minus driver/device-class-related */
@@ -159,7 +161,9 @@ enum {
  */
 #define NETIF_F_ONE_FOR_ALL    (NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ROBUST | \
                                 NETIF_F_SG | NETIF_F_HIGHDMA |         \
-                                NETIF_F_FRAGLIST | NETIF_F_VLAN_CHALLENGED)
+                                NETIF_F_FRAGLIST | NETIF_F_VLAN_CHALLENGED | \
+                                NETIF_F_HW_SWITCH_OFFLOAD)
+
 /*
  * If one device doesn't support one of these features, then disable it
  * for all in netdev_increment_features.