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