[ovs-dev] [PATCH V14 0/4] Add 802.1ad (qinq) support

Thomas F Herbert thomasfherbert at gmail.com
Fri Oct 2 21:31:57 UTC 2015

From: "Thomas F. Herbert" <thomasfherbert at gmail.com>

This series requires the 802.1ad kernel patch V14 recently submitted to

The kernel changes for conntrak need to be backported to OVS for
this patch to work without errors so user space and kernel are compiled
with the same uapi openvswitch.h.

ToDo: The flow structure should be updated to hold both the inner and outer
tpid's since these are encoded by the kernel module.

Version 14: Rebased to master. Tested with kernel patch V14 on 4.2-rc8
net-next tree.

Version 11: Encode inner tpid in with customer tci into netlink
in inner encapsulation. Some cleanup in code and comments. The patch
adding 802.1ad support functions, which is already merged is removed
from this series. This patch accompanies V11 kernel module patch
submitted to linux net-next.

Version 10: Use doubly nested encap attributes to encode 802.1ad. Rebase
to master. V8 and V9 were skipped and this version was called V10 to
accompany V10 kernel module patch simultaneously to net-next.

This patch will is incopatible with old versions of the kernel module and
will require V10 of the kernel module patch because of the change in
netlink attribute encoding of 802.1ad. Netlink attributes now look like

    eth_type(0x88a8),vlan(vid=100),encap(eth_type(0x8100), vlan(vid=200),
encap(eth_type(0x0800), ...))

Version 7 is rebased to latest master and incorporates changes from
reviewers. The accompanying kernel changes have been submitted to the
linux net-dev mailing list.

Version 6 split the changes into separate patches to make it easier on the
eyes of reviewers but otherwise is functionally the same as version 5.

Version 5 updated the patch to properly use nested attributes, fixed some
whitespace problems and allows TPID 0x88a8 tag be pushed with either
single or outer tag because Open Flow does not specifically prohibit it.

This patch has been tested along with the Linux Kernel datapath patch in
a VM based test network as well as real-world provider test environment.

Thanks to Robert Peterson for inspiring and leading the effort of
separating customer from provider traffic which led to this work and
thanks to the people at ATC for helping with configuring the test lab
and running perf tests.

Also, thanks to Entry Point LLC who were involved in this project from the

Thanks to Ben Pfaff, Pravin Shelar and others that have commented on
previous versions of this patch and thanks to Dave Benson who
contributed the test included in this patch.

Thomas F. Herbert (4):
  Flow and action changes for 802.1AD
  Flow key and netlink parsing changes for 802.1AD
  802.1AD: Describe 802.1ad changes
  Test push and pop of vlan with both 802.1AD and 802.1Q

 NEWS                         |   2 +
 lib/flow.c                   |   2 +-
 lib/flow.h                   |  12 +-
 lib/odp-util.c               | 281 +++++++++++++++++++++++++++++++++++++------
 lib/ofp-actions.c            |  32 +++--
 lib/ofp-actions.h            |  14 ++-
 ofproto/ofproto-dpif-xlate.c |  11 ++
 tests/ofproto-dpif.at        |  40 ++++++
 utilities/ovs-ofctl.8.in     |   3 +-
 9 files changed, 336 insertions(+), 61 deletions(-)


More information about the dev mailing list