diff mbox

[net-next,v3,1/5] netdev: introduce new NETIF_F_HW_NETFUNC_OFFLOAD feature flag for switch device offloads

Message ID 1421987606-10884-2-git-send-email-roopa@cumulusnetworks.com
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Roopa Prabhu Jan. 23, 2015, 4:33 a.m. UTC
From: Roopa Prabhu <roopa@cumulusnetworks.com>

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>
---
 include/linux/netdev_features.h |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Jiri Pirko Jan. 23, 2015, 9:44 a.m. UTC | #1
Fri, Jan 23, 2015 at 05:33:22AM CET, roopa@cumulusnetworks.com wrote:
>From: Roopa Prabhu <roopa@cumulusnetworks.com>
>
>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>
>---
> include/linux/netdev_features.h |    6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
>diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
>index 8e30685..784a461 100644
>--- a/include/linux/netdev_features.h
>+++ b/include/linux/netdev_features.h
>@@ -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_NETFUNC_OFFLOAD_BIT,  /* HW switch offload */

How about rather "HW_DATAPATH_OFFLOAD"? Feels more accurate. By the
name, I still cannot understand what NETFUNC should mean.


> 
> 	/*
> 	 * 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_NETFUNC_OFFLOAD	__NETIF_F(HW_NETFUNC_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_NETFUNC_OFFLOAD)
>+
> /*
>  * If one device doesn't support one of these features, then disable it
>  * for all in netdev_increment_features.
>-- 
>1.7.10.4
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Roopa Prabhu Jan. 23, 2015, 3:48 p.m. UTC | #2
On 1/23/15, 1:44 AM, Jiri Pirko wrote:
> Fri, Jan 23, 2015 at 05:33:22AM CET, roopa@cumulusnetworks.com wrote:
>> From: Roopa Prabhu <roopa@cumulusnetworks.com>
>>
>> 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>
>> ---
>> include/linux/netdev_features.h |    6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
>> index 8e30685..784a461 100644
>> --- a/include/linux/netdev_features.h
>> +++ b/include/linux/netdev_features.h
>> @@ -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_NETFUNC_OFFLOAD_BIT,  /* HW switch offload */
> How about rather "HW_DATAPATH_OFFLOAD"? Feels more accurate. By the
> name, I still cannot understand what NETFUNC should mean.

It was supposed to mean 'network function offload'. sure, will consider 
HW_DATAPATH_OFFLOAD
or if anybody has other suggestions.

thanks.
>
>
>> 	/*
>> 	 * 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_NETFUNC_OFFLOAD	__NETIF_F(HW_NETFUNC_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_NETFUNC_OFFLOAD)
>> +
>> /*
>>   * If one device doesn't support one of these features, then disable it
>>   * for all in netdev_increment_features.
>> -- 
>> 1.7.10.4
>>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thomas Graf Jan. 23, 2015, 5:56 p.m. UTC | #3
On 01/23/15 at 07:48am, roopa wrote:
> On 1/23/15, 1:44 AM, Jiri Pirko wrote:
> >How about rather "HW_DATAPATH_OFFLOAD"? Feels more accurate. By the
> >name, I still cannot understand what NETFUNC should mean.
> 
> It was supposed to mean 'network function offload'. sure, will consider
> HW_DATAPATH_OFFLOAD
> or if anybody has other suggestions.

I'm still fascinated that the description says 'for all switch asic
offloads', 'switch drivers', 'switch ports' but we try very hard to
come up with a different name ;-)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiri Pirko Jan. 23, 2015, 7:05 p.m. UTC | #4
Fri, Jan 23, 2015 at 06:56:54PM CET, tgraf@suug.ch wrote:
>On 01/23/15 at 07:48am, roopa wrote:
>> On 1/23/15, 1:44 AM, Jiri Pirko wrote:
>> >How about rather "HW_DATAPATH_OFFLOAD"? Feels more accurate. By the
>> >name, I still cannot understand what NETFUNC should mean.
>> 
>> It was supposed to mean 'network function offload'. sure, will consider
>> HW_DATAPATH_OFFLOAD
>> or if anybody has other suggestions.
>
>I'm still fascinated that the description says 'for all switch asic
>offloads', 'switch drivers', 'switch ports' but we try very hard to
>come up with a different name ;-)

+1
But we'll see in future. I bet that "switch" will stick.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Roopa Prabhu Jan. 23, 2015, 11:09 p.m. UTC | #5
On 1/23/15, 11:05 AM, Jiri Pirko wrote:
> Fri, Jan 23, 2015 at 06:56:54PM CET, tgraf@suug.ch wrote:
>> On 01/23/15 at 07:48am, roopa wrote:
>>> On 1/23/15, 1:44 AM, Jiri Pirko wrote:
>>>> How about rather "HW_DATAPATH_OFFLOAD"? Feels more accurate. By the
>>>> name, I still cannot understand what NETFUNC should mean.
>>> It was supposed to mean 'network function offload'. sure, will consider
>>> HW_DATAPATH_OFFLOAD
>>> or if anybody has other suggestions.
>> I'm still fascinated that the description says 'for all switch asic
>> offloads', 'switch drivers', 'switch ports' but we try very hard to
>> come up with a different name ;-)
> +1
> But we'll see in future. I bet that "switch" will stick.
because....am sure anything else will get rejected  ;).

...The API/patches is currently targeting switch ASIC devices but the 
idea behind having the flag
not be called 'switch' was to cover all the devices being discussed 
today (previous threads on this indicate that).

Its fair to say that I only care about switch asics today. If that's the 
popular vote i am going with that.

renaming it in the next series...

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
index 8e30685..784a461 100644
--- a/include/linux/netdev_features.h
+++ b/include/linux/netdev_features.h
@@ -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_NETFUNC_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_NETFUNC_OFFLOAD	__NETIF_F(HW_NETFUNC_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_NETFUNC_OFFLOAD)
+
 /*
  * If one device doesn't support one of these features, then disable it
  * for all in netdev_increment_features.