Hi Mojtaba,

Following up on your earlier thread, did you get a chance to see if IOAM decap 
is failing?
Perhaps we can get on a quick webex on Monday and resolve this?

Thanks,
Shwetha

From: <vpp-dev@lists.fd.io> on behalf of "mojtaba.eshghi" 
<mojtaba.esh...@ut.ac.ir>
Date: Friday, August 2, 2019 at 1:40 PM
To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>
Subject: [vpp-dev] Checksum errors in using VPP in i-OAM with iperf3 and 
af-packet-input #vpp #vppwithoutdpdk


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:
[cid:attach_0_15B70CC6869D766D_3252@lists.fd.io]
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):
[cid:attach_1_15B70CC6869FD7F5_3252@lists.fd.io]

The i-oam configs of the second router (transit router):
[cid:attach_2_15B70CC686A15553_3252@lists.fd.io]

The i-oam configs of the third router (decap router):
[cid:attach_3_15B70CC686A1B6A2_3252@lists.fd.io]

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
--- Begin Message ---
Hi Mojtaba,

 

I suspect that this is due to IOAM decap being broken in 18.01+. Removal of 
IOAM metadata added at the IOAM decap node depends on the ACL match whose 
result is checked during v6 hbh processing. If decap  fails IOAM options are 
leaked to host2 in the setup below. Linux kernel network stack drops the 
packets when it sees the unknown HbH options. Can you confirm with tcpdump in 
the host2 to see if the packets containing IOAM are seen?

I had tried a temporary fix to overcome this that I haven’t up-streamed – you 
could try these diffs.

I am in transit/time-off at the moment and can try the setup on the latest 
later this week. Meanwhile if you get to try this please share the results.

 

 

Thanks,

Shwetha

From: <vpp-dev@lists.fd.io> on behalf of "mojtaba.esh...@ut.ac.ir" 
<mojtaba.esh...@ut.ac.ir>
Date: Sunday, July 28, 2019 at 10:58 PM
To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io>
Subject: [vpp-dev] The correct usage of "classify table" and "classify session" 
for IOAM traffic

 

[Edited Message Follows]

Hi,

I'm trying to extend the usage of the following configuration to use iperf:

https://github.com/CiscoDevNet/iOAM/tree/master/scripts/vpp_sandbox/example/simple-ip6

 

The current problem is with the acls. Which are defined this way:
set ioam-trace profile trace-type 0x9 trace-elts 3 trace-tsp 2 node-id 0x3
classify table miss-next ip6-node ip6-lookup mask l3 ip6 dst
classify session acl-hit-next ip6-node ip6-lookup table-index 0 match l3 ip6 
dst db03::02 ioam-decap flow1
set int input acl intfc host-l_c2 ip6-table 0
set int input acl intfc host-l_c1 ip6-table 0
The end-to-end ping6 works fine, but iperf doesn't work. When I don't use the 
mentioned acls and classifications, both iperf and ping work properly (but of 
course the ioam in this case does not work).
Does anyone know how can I properly classify the traffic to apply the ioam?
There are examples in https://docs.fd.io/vpp/18.04/ioam_plugin_doc.html. 
However, as I said they just work for the ping and not for any type of L4 
traffic (the current config files are similar to what is prescribed in these 
docs).

I'm using the stable release 18.01

Best Regards,

Mojtaba


--- End Message ---
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#13654): https://lists.fd.io/g/vpp-dev/message/13654
Mute This Topic: https://lists.fd.io/mt/32688420/21656
Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480452
Mute #vppwithoutdpdk: 
https://lists.fd.io/mk?hashtag=vppwithoutdpdk&subid=1480452
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to