On Wed, Jun 22, 2016 at 5:10 AM, Thadeu Lima de Souza Cascardo <casca...@redhat.com> wrote: > On Tue, Jun 21, 2016 at 07:07:49PM -0700, Jesse Gross wrote: >> On Tue, Jun 21, 2016 at 5:53 PM, Yang, Yi <yi.y.y...@intel.com> wrote: >> > On Tue, Jun 21, 2016 at 09:26:58AM -0700, Jesse Gross wrote: >> >> On Mon, Jun 20, 2016 at 7:30 PM, Yang, Yi <yi.y.y...@intel.com> wrote: >> >> > On Mon, Jun 20, 2016 at 07:00:56PM -0700, Jesse Gross wrote: >> >> >> >> >> >> >> >> Hi, Yi Yang. >> >> >> >> >> >> >> >> Before adding the OVS_VXLAN_EXT_GPE extension to the out-of-tree >> >> >> >> module, you >> >> >> >> should send it to the mainline kernel. Besides, you need a very good >> >> >> >> justification why you can't wait for my patchset to be accepted and >> >> >> >> have >> >> >> >> VXLAN-GPE enabled using rtnetlink. >> >> >> > >> >> >> > Will add VS_VXLAN_EXT_GPE to include/uapi/linux/openvswitch.h and >> >> >> > send a >> >> >> > kernel patch, but ovs and net-next kernel also can work together. >> >> >> >> >> >> I think that you might have misunderstood the gist of the suggestion - >> >> >> please do not add this extension. This is pure compatibility code for >> >> >> existing, old features and should not be extended with new things >> >> >> unless there is a very, very good reason (which would almost certainly >> >> >> be related to fixing bugs, not new functionality) - especially since >> >> >> there's already an existing mechanism to do this. >> >> > >> >> > I'm confused, kernel has this header file >> >> > include/uapi/linux/openvswitch.h, but ovs also has this header file >> >> > datapath/linux/compat/include/linux/openvswitch.h, both of them included >> >> > this enumeration definition: >> >> > >> >> > enum { >> >> > OVS_VXLAN_EXT_UNSPEC, >> >> > OVS_VXLAN_EXT_GBP, /* Flag or __u32 */ >> >> > __OVS_VXLAN_EXT_MAX, >> >> > }; >> >> > >> >> > Don't we need to make sure they are consistent with the below line? >> >> > >> >> > OVS_VXLAN_EXT_GPE, /* Flag, Generic Protocol Extension */ >> >> >> >> You don't need to add this, either upstream or in the OVS tree. It's >> >> already possible to configure VXLAN GPE through the VXLAN netlink >> >> interface, so that's what you should be using. >> >> >> > >> > Here gpe is still an extension to vxlan even if we use rtnetlink to >> > configure it instead of the traditional gbp way, so anyway >> > OVS_VXLAN_EXT_GPE definition is required, now the issue is where we >> > define it. I think the best place is still in >> > ovs/datapath/linux/compat/include/linux/openvswitch.h, it will be better >> > if kernel header file include/uapi/linux/openvswitch.h also has it. >> >> Please take another look at the interface. Going forward, tunnel ports >> are not to be configured through OVS kernel directly but through their >> respective netlink interface (for VXLAN extensions this would mean >> VXLAN netlink) and attached to the datapath. This does not require any >> special modifications to the OVS interface and as a result these >> changes are not necessary. > > Hi, Jesse. > > The point here is how do we change this code at netdev-vport.c to add GPE > support? > > if (!strcmp(type, "vxlan") && !strcmp(ext, "gbp")) { > tnl_cfg.exts |= (1 << OVS_VXLAN_EXT_GBP); > } > > I see that we could add another set of flags that only userspace uses and have > some conversion from that to whatever the kernel uses in the compatibility > cases. And maybe that's necessary if we want to reject configurations not > supported by the kernel datapath before we send the command to the kernel. > > But, otherwise, I see the point of Yi Yang to add this flag at the headers.
Thanks for clarifying that - it wasn't obvious to me that this was only referring to userspace. I think it's better to have a set of userspace flags for this and then convert to the appropriate kernel format depending on the situation. It shouldn't be too hard and I really don't want to add things to the kernel interface that aren't actually used by the kernel. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev