[Bionic][RSS][ConnectX5]:testpmd stop receiving the packets after restarting the ports
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dpdk (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
How to reproduce:
Start testpmd using the following command:
testpmd -n 4 -w 00:06.0,
testpmd> port stop all
Then add the following rules:
flow create 0 ingress pattern eth dst spec ec:0d:9a:46:a0:04 dst mask FF:FF:FF:FF:FF:FF src spec 00:16:3e:3f:74:39 src prefix 48 / vlan vid spec 1578 vid mask 0xff0 / ipv6 src spec ::7eb1 src mask ffff:ffff:
flow create 0 ingress pattern eth dst spec ec:0d:9a:46:a0:04 dst mask FF:FF:FF:FF:FF:00 src spec 00:16:3e:6b:52:3e src prefix 0 / vlan vid spec 1062 vid prefix 8 / ipv6 dst spec ::d739 dst prefix 128 proto spec 47 proto prefix 0 flow is 0 / end actions rss queues 0 end / end
flow create 0 ingress pattern eth src spec 00:16:3e:75:1a:e3 src mask FF:FF:FF:FF:FF:00 / ipv4 dst spec 234.191.135.109 dst mask 0.0.0.0 proto spec 17 proto mask 0x0 tos spec 36 tos prefix 8 / end actions rss queues 0 end / mark id 36 / end
flow create 0 ingress pattern end actions rss queues 0 end / end
flow create 0 ingress pattern eth dst spec ec:0d:9a:46:a0:04 dst prefix 32 src is 00:16:3e:61:7f:dd / ipv4 src spec 195.14.171.117 src mask 255.255.255.255 proto spec 17 proto mask 0x0 / udp src spec 49934 src mask 0xffff / vxlan vni spec 8497260 vni mask 0xffffff / end actions rss queues 0 end / mark id 62 / end
testpmd> port start all
Then restart the ports:
testpmd> port stop all
testpmd> port start all
testpmd>start
Then send the following packet via scapy:
packet = Ether(src=
)/GRE(routing_
packet.
sendp(packet, iface = 'ens6', count = 1)
Real result testpmd didn't received any traffic
More details:
Setups:
TG: dragon40-cx5100g
OS:Ubuntu 18.04
OFED:N/A
FW:fw 16.22.4020
below is patch that fix this issue.
Changed in dpdk (Ubuntu): | |
status: | New → In Progress |
We discussed and this is actually a bunch of commits:
1- commit aac6f11f (”app/testpmd: add ethernet peer command”) - this patch is needed for our test framework
=> Small change to testpmd, likely not in stable branch but needed for tests
=> While not strictly a bug, I think enabling all the extra CI we get (that needs this) is fair, and it is sort of ok, even later on for SRU purposes (hope the SRU team agrees)
=>
2- commit 643958cf (“net/mlx4: fix broadcast Rx”) - bug fix for mlx4
=> Qeued for next 17.11 stable release
3- commit c55a1667 (“net/mlx5: fix flow creation with a single target queue”) - bug fix for mlx5
=> Per MLX this should actually already be in the stable branch; Double check when applying
=> It is not in the 17.11.2 tarball, likely will be 17.11.3 later on
Changes #2/#3 are MLX only, recommended by the manufacturer and part of a not yet enabled feature - so next to no regression potential.
Change #1 is part of testpmd, which is only a helper tool not part of a prod workload which diminishes the risk of the change a bit. The code adds a new feature thou (On the good side it does less modification on existing paths).
I have integrated the patches to the ppa [1] which we use to verify enabling MLX drivers in Bionic. It built fine, I'd ask you to verify if this fixes the issues you have spotted.
[1]: https:/ /launchpad. net/~ci- train-ppa- service/ +archive/ ubuntu/ 3250