[X/B/E/F][PATCH 0/2] openvswitch: Same tcp session encapsulated with different udp src port for ovs vxlan tunnel

Kelsey Skunberg kelsey.skunberg at canonical.com
Fri May 8 18:10:49 UTC 2020


BugLink: https://bugs.launchpad.net/bugs/1860986

[SRU Justification]

[Impact]

Information below is from the Bug Description.

Packets encapsulated into a vxlan tunnel with openvswitch don't have the same
udp source port for the first packet and the following ones of the same TCP
flow in a DOCKER scenario usecase.

In fact, when using the kernel datapath, the upcall don't include skb hash info
relatived. As VXLAN module uses the skb hash to select UDP src port, the source
port is different for the first packet.

More information can be found here:
https://mail.openvswitch.org/pipermail/ovs-dev/2019-October/364062.html

This has been fixed in v5.5 by the following upstream commit: bd1903b7c4596
("net: openvswitch: add hash info to upcall")

https://github.com/torvalds/linux/commit/bd1903b7c4596

The bug exists since the beginning of vxlan support in openvswitch.


[Fix]

Backport the requested patch to Focal (5.4), Eoan (5.3), Bionic (4.15) and
Xenial (4.4).

To fix this issue, some patches needs to be back-ported on openvswitch too. See
the following bug:

https://bugs.launchpad.net/bugs/1860987

[Risk of Regression]

This patch only add hash information when we do upcall, thus the risk should be
low.


KelseyS: Verfied patch applies to current master-next branches and succesfully
builds. [B/E/F][PATCH 1/2] is un-touched after cherry-pick.  [X][PATCH 2/2] has
context canges to apply cleanly to Xenial/master-next.


Tonghao Zhang (1):
  net: openvswitch: add hash info to upcall

 include/uapi/linux/openvswitch.h |  4 +++-
 net/openvswitch/datapath.c       | 26 +++++++++++++++++++++++++-
 net/openvswitch/datapath.h       | 12 ++++++++++++
 3 files changed, 40 insertions(+), 2 deletions(-)

-- 
2.20.1




More information about the kernel-team mailing list