locked Checksum errors in using VPP in i-OAM with iperf3 and af-packet-input #vppwithoutdpdk #vpp


mojtaba.eshghi
 

Hey Guys,
I'm trying to use iperf3 to generate traffic for a container networking environment. Inside the middle-box containers I have VPP and I am using i-OAM functionality of VPP. This is my topology:

In i-OAM mode, when I try to ping6 the host2 from host1, everyting is OK. The problem arises when I use iperf3 to generate and measure traffic inside host1 to host2. I have used the iperf3 in this scenario without i-OAM and everything is working perfectly. But when I enable i-OAM, iperf does not work and the first VPP in the container chain crashes. I hopped into gdb to see where does VPP crash and I found this assertion line:
https://github.com/FDio/vpp/blob/master/src/vnet/ip/ip6_forward.c#L944
Of course I tried to comment it at first, but this is not a cure... .

I tried tcpdump in host1 (where the iperf3 client is) and I get this for the iperf3:

09:44:55.461459 IP6 (flowlabel 0xcf402, hlim 64, next-header TCP (6) payload length: 40) db00::2.49028 > db03::2.3291: Flags [S], cksum 0xb636 (incorrect -> 0xc7d8), seq 2803263867, win 28800, options [mss 1440,sackOK,TS val 61110557 ecr 0,nop,wscale 7], length 0
09:44:56.460147 IP6 (flowlabel 0xcf402, hlim 64, next-header TCP (6) payload length: 40) db00::2.49028 > db03::2.3291: Flags [S], cksum 0xb636 (incorrect -> 0xc6de), seq 2803263867, win 28800, options [mss 1440,sackOK,TS val 61110807 ecr 0,nop,wscale 7], length 0
09:44:58.464156 IP6 (flowlabel 0xe615f, hlim 64, next-header TCP (6) payload length: 40) db00::2.49028 > db03::2.3291: Flags [S], cksum 0xb636 (incorrect -> 0xc4e9), seq 2803263867, win 28800, options [mss 1440,sackOK,TS val 61111308 ecr 0,nop,wscale 7], length 0

Checksum errors..., I'm still trying to find out what is the source of the problem. Do you guys have any idea?

The i-OAM configuration of the first router (encapsulating router):


The i-oam configs of the second router (transit router):


The i-oam configs of the third router (decap router):


The iperf3 command used at server and client are:
iperf3 -B db03::2 -s -6 -p 3291
iperf3 -c db03::2 -6 -u -p 3291 -b 1m -l 1024

The interfaces are also working in rx-mode polling.

Thanks

Join vpp-dev@lists.fd.io to automatically receive all group messages.