[ovs-dev] [PATCH v3 0/3] tunneling : Improving tunneling performance by avoiding dp recirc.

Sugesh Chandran sugesh.chandran at intel.com
Tue Jul 18 17:49:18 UTC 2017


Openvswitch datapath recirculates packets for tunneling, i.e.
the incoming packets are encapsulated at first pass. Further actions are
applied on encapsulated packets on the second pass after recirculating.
The proposed patch compute and append the post tunnel actions at the time of
translation itself instead of recirculating at datapath. These actions are
solely depends on tunnel attributes so there is no need of datapath
recirculation.

By avoiding the recirculation at datapath, the patch offers upto 30%
performance improvement for VxLAN tunneling in our testing.
The action execution logic is also extended with new CLONE action to define
the packet cloning when the actions are combined. The lenght in the CLONE
action specifies the size of nested action set.

There are couple of userspace test-cases are failing on this patch.
Will fix those test cases and release it.

Signed-off-by: Sugesh Chandran <sugesh.chandran at intel.com>
Signed-off-by: Zoltán Balogh <zoltan.balogh at ericsson.com>
Co-authored-by: Zoltán Balogh <zoltan.balogh at ericsson.com>

v3
 - Rebased on latest master
 - Changed the xlate_cache copy function to avoid expensive ref update operations.
 - Updated the new packet-aware test cases to handle the non-recirc tunnel case.
 - Updated the commit message with performance results.

v2
 - Rebased on latest master.
 - Updated newely added packet-aware test case to honor tunnel  combine actions.
 - Folded related patches into single patch based on Joe's comments.
 - Do the translation only once for tunnel combine instead of two.

Sugesh Chandran (3):
  xlate: Clear tunnel mask along with other fields while combine
    actions.
  tunneling: Calculate and update packet l4_offset in tunnel push.
  tunneling: Avoid datapath-recirc by combining recirc actions at xlate.

 lib/dpif-netdev.c                  |  18 +--
 lib/netdev-native-tnl.c            |   2 +
 ofproto/ofproto-dpif-xlate-cache.c |  32 ++++-
 ofproto/ofproto-dpif-xlate-cache.h |  14 ++-
 ofproto/ofproto-dpif-xlate.c       | 235 ++++++++++++++++++++++++++++++++++++-
 ofproto/ofproto-dpif.c             |   3 +-
 tests/packet-type-aware.at         |  27 ++---
 7 files changed, 286 insertions(+), 45 deletions(-)

-- 
2.7.4



More information about the dev mailing list