[dpdk-users] Unable to merge packets using GRO feature
Wisam Monther
wisamm at mellanox.com
Mon Aug 21 09:25:23 CEST 2017
Hello Guys,
I hope this finds you well, I'm trying to test the GRO feature. But I'm stuck with this scenario.
As you know, GRO is only support TCP_IPV4 packet until now.
So I'm trying to test the basic functionality of the feature, as following:
Start testpmd:
"""
./x86_64-native-linuxapp-gcc/build/app/test-pmd/testpmd -n 4 -w 00:0a.0 -w 00:09.0 -- --burst=64 --mbcache=512 --portmask 0xf -i --txd=512 --rxd=512 --nb-cores=9 --rxq=2 --txq=2 --txqflags=0
"""
Then enable GRO at the two ports:
"""
Testpmd>gro on 0
Testpmd>gro on 1
"""
And trying to send TCP_IPV4 fragmented packet "packet with length 1500 fragmented to three packets of 500"
"""
p=Ether(src=get_if_hwaddr('ens10'), dst= '24:8A:07:88:26:6B')/IP()/TCP()
p.add_payload('F'*(1500 - len(p)))
frags=fragment(p,fragsize=500)
for fragment in frags:
sendp(fragment, iface='ens10')
"""
But the testpmd forward the packets as it is, " doesn't do any merge"
Tcpdump at the TG side,
The sending fragmets using ens10:
#tcpdump -I ens10 -vvven
15:45:29.083514 24:8a:07:88:26:5b > 24:8a:07:88:26:6b, ethertype IPv4 (0x0800), length 538: (tos 0x0, ttl 64, id 1, offset 0, flags [+], proto Options (0), length 524)
127.0.0.1 > 127.0.0.1: ip-proto-0 504
15:45:29.115266 24:8a:07:88:26:5b > 24:8a:07:88:26:6b, ethertype IPv4 (0x0800), length 538: (tos 0x0, ttl 64, id 1, offset 504, flags [+], proto Options (0), length 524)
127.0.0.1 > 127.0.0.1: ip-proto-0
15:45:29.147258 24:8a:07:88:26:5b > 24:8a:07:88:26:6b, ethertype IPv4 (0x0800), length 492: (tos 0x0, ttl 64, id 1, offset 1008, flags [none], proto Options (0), length 478)
127.0.0.1 > 127.0.0.1: ip-proto-0
#tcpdump -i ens9 -vvven /// here will be received the forwarded packets from testpmd:
15:45:29.083996 24:8a:07:88:26:5b > 24:8a:07:88:26:6b, ethertype IPv4 (0x0800), length 538: (tos 0x0, ttl 64, id 1, offset 0, flags [+], proto Options (0), length 524)
127.0.0.1 > 127.0.0.1: ip-proto-0 504
15:45:29.115425 24:8a:07:88:26:5b > 24:8a:07:88:26:6b, ethertype IPv4 (0x0800), length 538: (tos 0x0, ttl 64, id 1, offset 504, flags [+], proto Options (0), length 524)
127.0.0.1 > 127.0.0.1: ip-proto-0
15:45:29.147492 24:8a:07:88:26:5b > 24:8a:07:88:26:6b, ethertype IPv4 (0x0800), length 492: (tos 0x0, ttl 64, id 1, offset 1008, flags [none], proto Options (0), length 478)
127.0.0.1 > 127.0.0.1: ip-proto-0
Am I doing something wrong?! Or it is a bug.
? As you see the tcpdump shows the offset of each fragment, and testpmd prints L4_FRAG, so the both are recognizing that this is a fragmented packet.
Best regards,
Wisam Jaddo
More information about the users
mailing list