VxLAN source port numbers become inconsistent when offloaded into ASAP2

Hi,

I’m using connectX-6 DX, ubuntu 22.04, ovs 2.17.3, MLNX_OFED-5.8-2.0.3.0

The VxLAN source port number is written differently depending on whether it is offloaded or not.

Here is the receiver-side tcpdump pcap.

As shown in this pcap, we can see five packets with the same five-tuple: (TCP, 10.100.0.63:42154 → 10.100.0.59:9008).
However, there are two VxLAN source port numbers: 37302, 59237 depending on where the packets are handled by ASAP2 or by the Kernel.

37302: handled by kernel since it is the TCP handshake packet, so there is no datapath in the ASAP2.
59237: handled by ASAP2 since the flow is offloaded after the handshake, so the flow resides in the ASAP2.

The VxLAN source port number is quite important as it determines which path to take.
Please share any feedback!

Thanks.

Hello,

This is normal VxLan packet behavior.
For the first few packets, before the offloading handshake, the VxLan source port is determined by the Kernel.
After the offloading handshake, when packets are being offloaded, the source port is determined by the HW - ASAP2.

If you have any further questions regarding this, please open a case at: enterprisesupport@nvidia.com, and it will be handled according to entitlement.

Best Regards,
Jonathan.

Thank you, Jonathan. I thoroughly read your reply.

One more thing I wonder still exists.

However, as far as I know, the same situation was considered a bug: [Bug 1860987] [NEW] openvswitch: same tcp session encapsulated with different udp src port for ovs vxlan tunnel
( [Bug 1860987] [NEW] openvswitch: same tcp session encapsulated with different udp src port for ovs vxlan tunnel, Mon Jan 27 14:08:58 UTC 2020)

Doesn’t this matter for ASAP2 h/w offloading case?

By the way, I will open the questions in the mail you provided. thank you.