Folks,

I had posted an question to this alias a while back with the subject:
 " TCP tunnel traffic stops working when move from RHEL   7.7 to 7.9"

I finally got to the bottom of this and discovered that the issues is with UDP checksum offload when the underlay is in a vlan, which seems to break OVN. Is this a known issue?

To cut to the chase I got things working with the following command on each chassis:

*ethtool --offload genev_sys_6081 rx on tx off*

When I looked at the tcpdumps on the underlay NIC I noticed that in the old working OS (OEL 7.7 (RHEL 7.7 based) ) that the outer UDP pkt always had "[udp sum ok]" meaning that the OS was doing the checksum, where as in the new broken OS (OEL 7.9 (RHEL 7.9) the first few packets had  "[bad udp cksum" these packets got through, but then the next few had "[udp sum ok]" and these did not get through to the other chassis across the tunnel. Oddly when I removed the vlan, with no ethertool changes things worked, It only broke when there was a vlan in the mix. Then after much trail and error with ethertool settings on the NIC,
the VIF, ovs-system and finally *genev_sys_6081* I got it to work.

Seems like a bit of a performance limitation that OVN does not work with NIC checksum offload?

Brendan


On 29/04/2021 10:54, Brendan Doyle wrote:
Hi Folks,

In a very basic OVN config, where I have two VMs on different chassis:

switch 7b89d593-05f3-41a7-a246-8dade975df48 (ls_vcn1)
    port a6a358c5-5db4-49c7-b68a-3a7429161ab4
        addresses: ["52:54:00:71:ad:a0 192.16.1.5"]
    port b6c5ef1a-acd9-4053-9986-88e1a6a12b81
        addresses: ["52:54:00:40:8f:dc 192.16.1.6"]

When I upgrade the chassis from OEL 7.7 (RHEL 7.7 based) to OEL 7.9 (RHEL 7.9) based, then TCP traffic stops working, ping and UDP are fine. When I look at tcpdump of the traffic on both chassis, I see the initial handshake encapsulated traffic being sent and revived on both nodes. The initial TCP handshake seems to get through on the sender and it sends the first data packet but the receive side does  not get the data packets and keeps sending the initial handshake ack
(see traces below).

I'm think something to do with tcp checksum or some other NIC offload? the NICS are CX5s.
Just wondering has anyone come across this?

Thanks

Brendan


Sender
---------
98:03:9b:89:21:e2 > 98:03:9b:89:21:5a, ethertype IPv4 (0x0800), length 132: (tos 0x0, ttl 64, id 29694, offset 0, flags [DF], proto UDP (17), length 118)     253.255.0.21.62384 > 253.255.0.18.6081: [bad udp cksum 0xfc99 -> 0xa576!] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00010002]         52:54:00:40:8f:dc > 52:54:00:71:ad:a0, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 61068, offset 0, flags [DF], proto TCP (6), length 60)     192.16.1.6.38900 > 192.16.1.5.22: Flags [S], cksum 0x0a2b (correct), seq 3225335796, win 27200, options [mss 1360,sackOK,TS val 1242625918 ecr 0,nop,wscale 7], length 0

98:03:9b:89:21:5a > 98:03:9b:89:21:e2, ethertype IPv4 (0x0800), length 132: (tos 0x0, ttl 64, id 5167, offset 0, flags [DF], proto UDP (17), length 118)     253.255.0.18.28454 > 253.255.0.21.6081: [udp sum ok] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00020001]         52:54:00:71:ad:a0 > 52:54:00:40:8f:dc, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)     192.16.1.5.22 > 192.16.1.6.38900: Flags [S.], cksum 0xb82f (correct), seq 3217262113, ack 3225335797, win 26960, options [mss 1360,sackOK,TS val 3343009202 ecr 1242625918,nop,wscale 7], length 0

98:03:9b:89:21:e2 > 98:03:9b:89:21:5a, ethertype IPv4 (0x0800), length 124: (tos 0x0, ttl 64, id 29695, offset 0, flags [DF], proto UDP (17), length 110)     253.255.0.21.62384 > 253.255.0.18.6081: [bad udp cksum 0xa57e -> 0x723d!] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00010002]         52:54:00:40:8f:dc > 52:54:00:71:ad:a0, ethertype IPv4 (0x0800), length 66: (tos 0x0, ttl 64, id 61069, offset 0, flags [DF], proto TCP (6), length 52)     192.16.1.6.38900 > 192.16.1.5.22: Flags [.], cksum 0x8252 (incorrect -> 0x4f11), seq 1, ack 1, win 213, options [nop,nop,TS val 1242625920 ecr 3343009202], length 0

98:03:9b:89:21:e2 > 98:03:9b:89:21:5a, ethertype IPv4 (0x0800), length 145: (tos 0x0, ttl 64, id 29696, offset 0, flags [DF], proto UDP (17), length 131)     253.255.0.21.62384 > 253.255.0.18.6081: [bad udp cksum 0xa569 -> 0xae4d!] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00010002]         52:54:00:40:8f:dc > 52:54:00:71:ad:a0, ethertype IPv4 (0x0800), length 87: (tos 0x0, ttl 64, id 61070, offset 0, flags [DF], proto TCP (6), length 73)     192.16.1.6.38900 > 192.16.1.5.22: Flags [P.], cksum 0x8267 (incorrect -> 0x8b4b), seq 1:22, ack 1, win 213, options [nop,nop,TS val 1242625920 ecr 3343009202], length 21

98:03:9b:89:21:e2 > 98:03:9b:89:21:5a, ethertype IPv4 (0x0800), length 145: (tos 0x0, ttl 64, id 29775, offset 0, flags [DF], proto UDP (17), length 131)     253.255.0.21.62384 > 253.255.0.18.6081: [bad udp cksum 0xa569 -> 0xad7f!] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00010002]         52:54:00:40:8f:dc > 52:54:00:71:ad:a0, ethertype IPv4 (0x0800), length 87: (tos 0x0, ttl 64, id 61071, offset 0, flags [DF], proto TCP (6), length 73)     192.16.1.6.38900 > 192.16.1.5.22: Flags [P.], cksum 0x8267 (incorrect -> 0x8a7d), seq 1:22, ack 1, win 213, options [nop,nop,TS val 1242626126 ecr 3343009202], length 21

Just repeats don't see anything else from the receiver

Receiver
------------
98:03:9b:89:21:e2 > 98:03:9b:89:21:5a, ethertype IPv4 (0x0800), length 132: (tos 0x0, ttl 64, id 29694, offset 0, flags [DF], proto UDP (17), length 118)     253.255.0.21.62384 > 253.255.0.18.6081: [udp sum ok] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00010002]         52:54:00:40:8f:dc > 52:54:00:71:ad:a0, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 61068, offset 0, flags [DF], proto TCP (6), length 60)     192.16.1.6.38900 > 192.16.1.5.22: Flags [S], cksum 0x0a2b (correct), seq 3225335796, win 27200, options [mss 1360,sackOK,TS val 1242625918 ecr 0,nop,wscale 7], length 0

98:03:9b:89:21:5a > 98:03:9b:89:21:e2, ethertype IPv4 (0x0800), length 132: (tos 0x0, ttl 64, id 5167, offset 0, flags [DF], proto UDP (17), length 118)     253.255.0.18.28454 > 253.255.0.21.6081: [bad udp cksum 0xfc99 -> 0x2a01!] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00020001]         52:54:00:71:ad:a0 > 52:54:00:40:8f:dc, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)     192.16.1.5.22 > 192.16.1.6.38900: Flags [S.], cksum 0xb82f (correct), seq 3217262113, ack 3225335797, win 26960, options [mss 1360,sackOK,TS val 3343009202 ecr 1242625918,nop,wscale 7], length 0

98:03:9b:89:21:5a > 98:03:9b:89:21:e2, ethertype IPv4 (0x0800), length 132: (tos 0x0, ttl 64, id 6137, offset 0, flags [DF], proto UDP (17), length 118)     253.255.0.18.28454 > 253.255.0.21.6081: [bad udp cksum 0x2a01 -> 0x5bc0!] Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8 data 00020001]         52:54:00:71:ad:a0 > 52:54:00:40:8f:dc, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)     192.16.1.5.22 > 192.16.1.6.38900: Flags [S.], cksum 0x825a (incorrect -> 0xb419), seq 3217262113, ack 3225335797, win 26960, options [mss 1360,sackOK,TS val 3343010248 ecr 1242625918,nop,wscale 7], length 0


Repeats don't see anything else from the sender.

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://urldefense.com/v3/__https://mail.openvswitch.org/mailman/listinfo/ovs-discuss__;!!GqivPVa7Brio!N7LR5w08pkOggvzRCJX5QV6SXVf2Jet8S66oBsNRg9twtYl94cpCa-6wRj-l_gZyKVg$


_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to