Re: [rfc] Merging the Open vSwitch datapath
From: Chris Wright <hidden>
Date: 2010-08-30 21:32:32
* Rose, Gregory V (gregory.v.rose@intel.com) wrote:
quoted
From: Ben Pfaff [mailto:blp@nicira.com] On Mon, Aug 30, 2010 at 11:26:17AM -0700, Rose, Gregory V wrote:quoted
I just want to put in a plug for the netlink interface. For NICs with EVB we'll need it.Off-hand, the main reasons to use Netlink, instead of the existing character device interface, are that Netlink is easier to extend and that it should reduce or eliminate the 32-to-64 bit compat layer currently in the Open vSwitch tree.
That, plus it's a typical way to do network configuration. Esp. with bi-directional communication. So the userspace bit both listens to netlink messages, like any of the routing daemons or lldpad or similar do, and sends netlink messasges to update driver's flow table. BTW, this kind of discussion was why Herbert felt strongly against drivers/staging/. He wanted to be sure the interfaces were well-defined first.
quoted
Why will NICs with EVB require Netlink for the Open vSwitch interface?As of now there are no existing ways to get switch configuration to a NIC without resorting to a customized interface such as a private IOCTL. EVB is an emerging standard that I think would be desirable to support in the kernel. As you mention netlink is easier to extend and I think it would be a great way to add support for NIC EVB in the kernel. But even with a kernel interface there is still no user level tool.
Right, there's the netlink interface for VFINFO, and a short list I compiled a while back of "requirements" http://permalink.gmane.org/gmane.linux.network/158930
quoted
From what I can tell the Open vSwitch interface with its ability to set packet forwarding rules is also a good candidate for a user space tool to set rules for EVB capable NICs. Seems like a natural extension to me.
Yup, but also consider that the NIC's switches will lag sw. So likely need a way to say what the thing is capable of so that rules that can't be enforced in NIC hw are done in sw (or in external hw, ala 802.1Qbg). thanks, -chris