[Bionic][RSS][ConnectX5]:testpmd stop receiving the packets after restarting the ports

Bug #1770964 reported by Talat Batheesh
12
This bug affects 1 person
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,mprq_en=0,rx_vec_en=0,tx_vec_en=0 -w 00:07.0,mprq_en=0,rx_vec_en=0,tx_vec_en=0 -- --burst=64 --mbcache=512 -i --nb-cores=11 --txd=1024 --rxd=1024 --disable-hw-vlan-strip --forward-mode=rxonly

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:ffff:ffff:ffff:ffff:ffff:ffff dst spec ::7eb1 dst mask 0000:0000:0000:0000:0000:0000:0000:0000 proto is 47 tc spec 0 tc mask 0x0 / end actions rss queues 0 end / end
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='00:16:3e:3f:74:39', dst='ec:0d:9a:46:a0:04', type=33024)/Dot1Q(vlan=1573, type=34525, id=0, prio=0)/IPv6(nh=47, src='::7eb1', dst='9e8e:6edc:62cf:7058:b032:7fe2:4001:a95b', version=6, hlim=1, plen=1442, fl=0, tc=1
)/GRE(routing_present=1, chksum_present=1, version=6, proto=17990, offset=17990, strict_route_source=0, seqnum_present=0, key_present=0, recursion_control=6, flags=8, key=None, chksum=55897, seqence_number=None)
packet.add_payload('F' * (1496 - len(packet) - 4 ))
sendp(packet, iface = 'ens6', count = 1)

Real result testpmd didn't received any traffic
More details:
Setups:dragon41-cx5100g
TG: dragon40-cx5100g
OS:Ubuntu 18.04
OFED:N/A
FW:fw 16.22.4020

below is patch that fix this issue.

http://dpdk.org/ml/archives/stable/2018-April/005898.html

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

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

Changed in dpdk (Ubuntu):
status: New → In Progress
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

This issue only exists in the ppa, and there the proposed fix is present now.
Marking Fix Committed, but waiting for your confirmation before setting Released.

Changed in dpdk (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

This was released with newer DPDK uploads and never seen in the wild.

Changed in dpdk (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.