Horatiu Vultur
2020-Jan-14 08:08 UTC
[Bridge] [RFC net-next Patch v2 4/4] net: bridge: mrp: switchdev: Add HW offload
The 01/14/2020 00:30, Andrew Lunn wrote:> > Hi Horatiu > > It has been said a few times what the basic state machine should be in > user space. A pure software solution can use raw sockets to send and > receive MRP_Test test frames. When considering hardware acceleration, > the switchdev API you have proposed here seems quite simple. It should > not be too hard to map it to a set of netlink messages from userspace.Yes and we will try to go with this approach, to have a user space application that contains the state machines and then in the kernel to extend the netlink messages to map to the switchdev API. So we will create a new RFC once we will have the user space and the definition of the netlink messages.> > Yet your argument for kernel, not user space, is you are worried about > the parameters which need to be passed to the hardware offload engine. > In order to win the argument for a kernel solution, we are going to > need a better idea what you think this problem is. The MRP_Test is TLV > based. Are there other things which could be in this message? Is that > what you are worried about?> > Thanks > Andrew-- /Horatiu
Andrew Lunn
2020-Jan-14 13:20 UTC
[Bridge] [RFC net-next Patch v2 4/4] net: bridge: mrp: switchdev: Add HW offload
On Tue, Jan 14, 2020 at 09:08:56AM +0100, Horatiu Vultur wrote:> The 01/14/2020 00:30, Andrew Lunn wrote: > > > > Hi Horatiu > > > > It has been said a few times what the basic state machine should be in > > user space. A pure software solution can use raw sockets to send and > > receive MRP_Test test frames. When considering hardware acceleration, > > the switchdev API you have proposed here seems quite simple. It should > > not be too hard to map it to a set of netlink messages from userspace. > > Yes and we will try to go with this approach, to have a user space > application that contains the state machines and then in the kernel to > extend the netlink messages to map to the switchdev API. > So we will create a new RFC once we will have the user space and the > definition of the netlink messages.Cool. Before you get too far, we might want to discuss exactly how you pass these netlink messages. Do we want to make this part of the new ethtool Netlink implementation? Part of devlink? Extend the current bridge netlink interface used by userspae RSTP daemons? A new generic netlink socket? Extending the bridge netlink interface might seem the most logical. The argument against it, is that the kernel bridge code probably does not need to know anything about this offloading. But it does allow you to make use of the switchdev API, so we have a uniform API between the network stack and drivers implementing offloading. Andrew