-
Notifications
You must be signed in to change notification settings - Fork 1k
[Bug]: Case test_pfc_pause_extra_lossless_active of script test_tunnel_qos_remap.py could not run pass on mellanox platform due to lack of background traffic #17252
Description
Issue Type
Test Gap
Description
Case test_pfc_pause_extra_lossless_active of script test_tunnel_qos_remap.py failed on mellanox platform due to lack of background traffic, no pfc storm detected. In the end, after send packet in function pfc_pause_test, the queue counter value would increased by 1, then case failed:
Failed: The queue 3 for port Ethernet200 counter increased unexpectedly: Received packet that we expected not to receive on device 0, port 50.
========== RECEIVED ==========
0000 C2 A2 6A 9A B0 32 00 AA BB CC DD EE 08 00 45 0D ..j..2........E.
0010 00 56 00 01 00 00 3E 06 B9 C6 01 01 01 01 C0 A8 .V....>.........
0020 00 24 04 D2 00 50 00 00 00 00 00 00 00 00 50 02 .$...P........P.
0030 20 00 94 66 00 00 74 65 73 74 73 2E 71 6F 73 2E ..f..tests.qos.
0040 74 65 73 74 5F 74 75 6E 6E 65 6C 5F 71 6F 73 5F test_tunnel_qos_
0050 72 65 6D 61 70 20 74 65 73 74 73 2E 71 6F 73 2E remap tests.qos.
0060 74 65 73 74 test
==============================
Issue Details
The mellanox platform pfc storm detection need a background traffic, it's defined in tests/common/helpers/pfcwd_helper.py called send_background_traffic.
Case test_pfc_pause_extra_lossless_active of script test_tunnel_qos_remap.py failed on mellanox platform due to lack of background traffic, no pfc storm detected. In function pfc_pause_test, the queue counter after sent packet would be increased by 1:
def pfc_pause_test(storm_handler, peer_info, prio, ptfadapter, dut, port, queue, pkt, src_port, exp_pkt, dst_ports):
try:
# Start PFC storm from leaf fanout switch
start_pfc_storm(storm_handler, peer_info, prio)
ptfadapter.dataplane.flush()
# Record the queue counter before sending test packet
base_queue_count = get_queue_counter(dut, port, queue, True)
# Send testing packet again
testutils.send_packet(ptfadapter, src_port, pkt, 1)
# The packet should be paused
testutils.verify_no_packet_any(ptfadapter, exp_pkt, dst_ports)
# Check the queue counter didn't increase
queue_count = get_queue_counter(dut, port, queue, False)
assert base_queue_count == queue_count
return True
finally:
stop_pfc_storm(storm_handler)
show queue counters Ethernet200
Last cached time was 2025-02-28T08:28:12.037131
Ethernet200 Last cached time was 2025-02-28T08:28:12.037131
Port TxQ Counter/pkts Counter/bytes Drop/pkts Drop/bytes
----------- ----- -------------- --------------- ----------- ------------
Ethernet200 UC0 0 0 0 N/A
Ethernet200 UC1 0 0 0 N/A
Ethernet200 UC2 0 0 0 N/A
Ethernet200 UC3 1 104 0 N/A
Ethernet200 UC4 0 0 0 N/A
Ethernet200 UC5 0 0 0 N/A
Ethernet200 UC6 0 0 0 N/A
Ethernet200 UC7 1,358 118,410 0 N/A
Ethernet200 MC8 N/A N/A N/A N/A
Ethernet200 MC9 N/A N/A N/A N/A
Ethernet200 MC10 N/A N/A N/A N/A
Ethernet200 MC11 N/A N/A N/A N/A
Ethernet200 MC12 N/A N/A N/A N/A
Ethernet200 MC13 N/A N/A N/A N/A
Ethernet200 MC14 N/A N/A N/A N/A
Ethernet200 MC15 N/A N/A N/A N/A
The test should be enhanced by sending a background traffic to trigger a pfc storm detection, then the queue counter in this scenario would not be increased.
Impact or Proposed Behavior
Case test_pfc_pause_extra_lossless_active of script test_tunnel_qos_remap.py could not pass
Importance or Severity
Critical
Is it platform specific
mellanox
Relevant log output
Output of show version
202411 branchAttach files (if any)
No response