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 <[email protected]> Signed-off-by: Zoltán Balogh <[email protected]> Co-authored-by: Zoltán Balogh <[email protected]> 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 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
