sonic-net / sonic-mgmt

Configuration management examples for SONiC
Other
173 stars 689 forks source link

[action] [PR:13486] [Snappi] Handling multi-dut scenario for verify_pause_frame_count in PFC lossless test #13571

Closed mssonicbld closed 3 days ago

mssonicbld commented 4 days ago

Description of PR

The PFC multi-dut testcases checks the pause frame count transmitted and received by the DUT during the test.

Testcase needed modifications to handle the multiple line card scenario.

Summary: Fixes # (issue) Issue #12887

Type of change

Back port request

Approach

What is the motivation for this PR?

The PFC lossless testcases uses multidut_helper file to start the traffic and verify the results. One of the verifications involves checking the pause frames being sent and received by the DUT.

A single DUT (object duthost) was being sent to the function 'verify_pause_frame_count' to verify the sent and received pause frames. This will work fine for - Single line card single ASIC and Single line card multiple ASIC - because it is single DUT only.

However, this would fail for multiple line card scenario. Here, the PFC receiving and sending line cards are different, and hence the failure.

How did you do it?

In the multidut_helper file, there is now a code to identify 'rx_dut' (Ingress DUT receiving packets from IXIA) and 'tx_dut' (Egress DUT sending packets to IXIA).

Instead of sending single DUT variable to verify_pause_frame_count, it is now passing rx_dut and tx_dut to it. The 'verify_pause_frame_count' will check the incoming pause frame counts on tx_dut and outgoing pause frame counts on rx_dut.

Since line card is same in case of single line card, the 'rx_dut' and 'tx_dut' will be same and hence will continue to work as is.

How did you verify/test it?

Verified with multiple line card scenario test with both 100 and 400Gbps ingress and egress line cards.

Code snapshot:

20:00:16 traffic_generation.verify_pause_frame_co L1509 INFO | Rx Pause Frames:2154763 on DUT:ixre-egl-board72, port:Ethernet48 and Prio:3
20:00:18 traffic_generation.verify_pause_frame_co L1509 INFO | Rx Pause Frames:2154763 on DUT:ixre-egl-board72, port:Ethernet48 and Prio:4
20:00:19 traffic_generation.verify_pause_frame_co L1528 INFO | Tx Pause Frames:1371912 on DUT:ixre-egl-board71, port:Ethernet40 and Prio:3
20:00:20 traffic_generation.verify_pause_frame_co L1528 INFO | Tx Pause Frames:1371912 on DUT:ixre-egl-board71, port:Ethernet40 and Prio:4

Any platform specific information?

Supported testbed topology if it's a new test case?

Documentation

mssonicbld commented 4 days ago

Original PR: https://github.com/sonic-net/sonic-mgmt/pull/13486