Subject: Re: [patch iproute2 0/6] iproute2: add changes for switchdev

From: Roopa Prabhu <[email-masked]>
Date: Thu, 04 Dec 2014 08:55:57 -0800

On 12/4/14, 8:04 AM, Jiri Pirko wrote:
> Thu, Dec 04, 2014 at 03:45:44PM CET, [email-masked] wrote:
>> On 12/4/14, 6:34 AM, Jiri Pirko wrote:
>>> Thu, Dec 04, 2014 at 03:26:50PM CET, [email-masked] wrote:
>>>> On 12/4/14, 12:57 AM, Jiri Pirko wrote:
>>>>> Jiri Pirko (1):
>>>>>    iproute2: ipa: show switch id
>>>>>
>>>>> Scott Feldman (5):
>>>>>    bridge/fdb: fix statistics output spacing
>>>>>    bridge/fdb: add flag/indication for FDB entry synced from offload
>>>>>      device
>>>>>    bridge/link: add new offload hwmode swdev
>>>> Ack to most patches but nack on this one. The todo list still has a note to
>>>> revist the flag to indicate switchdev offloads.
>>>> Exposing this to userspace does not help that.
>>> Hmm, note that this is already exposed to userspace, this patchset is
>>> for iproute2 (userspace tool).
>> hmmm, all feedback on the switchdev patches seemed to indicate we can change
>> this later.
>> I don't see swdev mode being used in the kernel anywhere today.
> Well, it is, in rocker:
> $ git grep BRIDGE_MODE_SWDEV
> drivers/net/ethernet/rocker/rocker.c:                   if (mode != BRIDGE_MODE_SWDEV)
> drivers/net/ethernet/rocker/rocker.c:   u16 mode = BRIDGE_MODE_SWDEV;
> include/uapi/linux/if_bridge.h:#define BRIDGE_MODE_SWDEV        2       /* Full switch device offload */

The problem is rocker is not the only one who is going to be using this. 
And so, we need something that fits everybody.
And i am not going to make my user set a mode for him to enable offload 
to hw.

>
>> I will send a patch to remove it. Its still in net-next and so can be changed
>> ?.
>> I was going to resend my patch to introduce a common offload flag for all
>> link objects.
>> It would be nice if all of them had a consistent flag to indicate hw offload
>> and iproute2 could display the same flag for all.
>> Including bonds and vxlan's.
> I do not understand the connection with BRIDGE_MODE_SWDEV. We discussed
> this already. BRIDGE_MODE_SWDEV is a bridge mode, similar to for example
> BRIDGE_MODE_VEPA and makes perfect sense to have it.
I dont think everybody acked it. But it went in with a note saying that 
it can be changed.
>
> How vxlan and bonds come into the mixture, that is a puzzler for me.
> Maybe I have to see patches.

I had posted a version of the patch previously: 
http://www.spinics.net/lists/netdev/msg305472.html

I have a v2 patch in my stack which does not touch the netlink header.
But in the past hour, i have been thinking about it some more. Do we 
really need this set by the user ?. In my use case i don't need it.

We do need a feature flag (or net_device_flags), but it does not need to 
be set by the user explicitly.
This flag can be set by the switch port driver on the switch ports. And 
the logical device: bridge/bond/vxlan
can inherit it from the port. There was a need of a flag in some 
usecases, to control offloading of specific bridge port flags
to hw/sw (example learning in hw or sw). example patch: 
https://patchwork.ozlabs.org/patch/413211/

I will post something today.

>
>>>>>    link: add missing IFLA_BRPORT_PROXYARP
>>>>>    bridge/link: add learning_sync policy flag
>>>>>
>>>>>   bridge/fdb.c              |  4 +++-
>>>>>   bridge/link.c             | 17 +++++++++++++++--
>>>>>   include/linux/if_bridge.h |  1 +
>>>>>   include/linux/if_link.h   |  3 +++
>>>>>   include/linux/neighbour.h |  1 +
>>>>>   ip/ipaddress.c            |  8 ++++++++
>>>>>   man/man8/bridge.8         | 19 ++++++++++++++-----
>>>>>   7 files changed, 45 insertions(+), 8 deletions(-)
>>>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>> the body of a message to [email-masked]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html