Hi Jesse, Hi All, after somewhat of a hiatus I would like to once again bring this patch onto the table. Since I posted the previous version (v2.52) a two key things have changed.
* Ben's new approach to MPLS in userspace has been merged. Thus there are no user-space patches in this series. * Ben has explained to me that there has been a change of direction at the ONF with regards to MPLS and VLAN tag ordering. As per his changelog for "Always insert MPLS labels after VLAN tags", the situation is now as follows: * OpenFlow 1.1 and 1.2 always inserted MPLS labels after VLAN tags. * OpenFlow 1.3 and 1.4 insert MPLS labels before VLAN tags. * OpenFlow 1.3.4 and 1.5, both in preparation, recognize that the change in 1.3 was an error and revert it. With this in mind only OF1.4 specifies a requirement for inserting MPLS labels before VLAN tags. This appears to be an abbertation at this point. Ben's suggestion as per his patch "Always insert MPLS labels after VLAN tags" is that Open vSwtich should only support inserting MPLS labels after VLAN tags. I agree with this. And to this end I have updated the MPLS code for the kernel datapath (this patch). I realise this has been a point of much discussion in the past but with the change in direction of ONF I think that it is worth reconsidering things and thus I am submitting this patch for review in this form. This patch depends on "Always insert MPLS labels after VLAN tags", which was posed by Ben and I believe he is planning to merge. to aid review this patch and its dependency are available in git at: https://github.com/horms/openvswitch devel/mpls-v2.53 Simon Horman (1): datapath: Add basic MPLS support to kernel OPENFLOW-1.1+ | 12 - datapath/Modules.mk | 1 + datapath/actions.c | 121 +++++++++- datapath/datapath.c | 4 +- datapath/flow.c | 29 +++ datapath/flow.h | 17 +- datapath/flow_netlink.c | 286 ++++++++++++++++++++++-- datapath/flow_netlink.h | 2 +- datapath/linux/compat/gso.c | 70 +++++- datapath/linux/compat/gso.h | 41 ++++ datapath/linux/compat/include/linux/netdevice.h | 6 +- datapath/linux/compat/netdevice.c | 10 +- datapath/mpls.h | 15 ++ include/linux/openvswitch.h | 7 +- 14 files changed, 559 insertions(+), 62 deletions(-) create mode 100644 datapath/mpls.h -- 1.8.5.2 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev