RE: [RFC net-next 3/9] net: hns3: Add "port vlan table" information query function

From: Salil Mehta
Date: Tue Dec 04 2018 - 15:55:40 EST


> From: Andrew Lunn [mailto:andrew@xxxxxxx]
> Sent: Tuesday, December 4, 2018 10:56 AM
> To: Salil Mehta <salil.mehta@xxxxxxxxxx>
> Cc: David Miller <davem@xxxxxxxxxxxxx>; jakub.kicinski@xxxxxxxxxxxxx;
> Zhuangyuzeng (Yisen) <yisen.zhuang@xxxxxxxxxx>; lipeng (Y)
> <lipeng321@xxxxxxxxxx>; mehta.salil@xxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; Linuxarm <linuxarm@xxxxxxxxxx>;
> Liuzhongzhu <liuzhongzhu@xxxxxxxxxx>; jiri@xxxxxxxxxxx;
> f.fainelli@xxxxxxxxx
> Subject: Re: [RFC net-next 3/9] net: hns3: Add "port vlan table"
> information query function
>
> > > > Adding debugfs files for basic switch concepts like MAC and VLAN tables
> > > > seems like a bit of a stretch to me. I wonder what others think.
> > >
> > > Agreed.
> >
> >
> > I was wondering how other vendors are solving this? One way I could
> > understand is to use "Switchdev" framework which in turn will expose
> > entries to the kernel using the switch driver. In our NIC we don't
> > have a proper switch and it cannot learn/age entries.
>
> Your hardware is there to accelerate what linux can do in software.
> How do we manage the software version of this feature?

Yes, so it can kind of represent switch in the hardware, has vports and has
tables for mac-vlan, port-vlan, vlan (which I guess kernel also supports in
vlan aware mode of bridging?). Perhaps, only way I can understand now to be
able to use standard bridge, ip link tools to fetch this info is by having
represented them by "Switchdev"?

>
> > Also, on-SoC NIC contains other tables which might not have any standard
> > user-space interface at all. What are your suggestions regarding that?
>
> How are these tables map to software features the Linux stack
> implements?

If you refer output shown in patch you will get an idea,
[RFC net-next 5/9] net: hns3: Add "manager table" information query function

Manager Table stores entries for any exception packet matching or for matching
any special types like control packets which we might not want to forward
using general forwarding route using mac-vlan table.

Not sure if this makes sense inside Linux kernel? Therefore, we thought of
exposing them through the debugfs.


Thanks
Salil