Generate PFC storm using PFC backpressure on additional Arista devices#17971
Generate PFC storm using PFC backpressure on additional Arista devices#17971veronica-arista wants to merge 7 commits intosonic-net:masterfrom
Conversation
Add a pfc_gen script that generates storm by directly setting PFC backpressure status in hardware (using broadcom shell commands) and modify pfc_storm to use this new script if the port is connected to th5 MPC. Intended to upstream for MSFT.
…m-gen-via-pfc-backpres
…m-gen-via-pfc-backpres
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Thanks @veronica-arista , can you please run the test_pfcwd_timer_accuracy case and share the logs of "sorted all detect time", thanks a lot |
| bash | ||
| cd {{pfc_gen_dir}} | ||
| {% if (pfc_asym is defined) and (pfc_asym == True) %} | ||
| {% if pfc_storm_defer_time is defined %}sleep {{pfc_storm_defer_time}} &&{% endif %} sudo python3 {{pfc_gen_file}} -c {{pfc_gen_chip_name}} -p {{pfc_queue_index}} -i {{pfc_fanout_interface | replace("Ethernet", "et") | replace("/", "_")}} > /dev/null 2>&1 & |
There was a problem hiding this comment.
Does this new feature only support python3? Are there any limitations, thanks
There was a problem hiding this comment.
There is no testing on python2. Python2 is long out of support.
|
@veronica-arista Nice change. May I ask how much delay there is when enabling and disabling PFC via hardware? |
|
@veronica-arista need to address below pre-commit failure Pre-commit check results:
tests/common/helpers/pfc_gen_brcm_xgs.py:7:1: F401 'binascii' imported but unused flake8...............................................(no files to check)Skipped ##[error]Bash exited with code '1'. |
|
@XuChen-MSFT Since @veronica-arista is away I have duplicated this PR with pre-commit errors fixed, please review: #18033 |
<!-- Please make sure you've read and understood our contributing guidelines; https://github.com/sonic-net/SONiC/blob/gh-pages/CONTRIBUTING.md Please provide following information to help code review process a bit easier: --> ### Description of PR NOTE: This is a duplicate of sonic-net/sonic-mgmt#17971, as @veronica-arista is away. Add a pfc_gen script for Arista fanout devices to generate pfc pause frames by setting PFC backpressure status in hardware. Enable the storm generation to use this script on interfaces that are connected to Arista fanout devices running EOS or Sonic. Currently supports the following Arista devices: Arista-7060X6 Arista-7060DX5 Arista-7060PX5 Arista-7060CX Arista-7260CX3 Arista-7260QX3 This is implemented on top of PR sonic-net/sonic-mgmt#15594 Summary: Fixes # (issue) ### Type of change <!-- - Fill x for your type of change. - e.g. - [x] Bug fix --> - [ ] Bug fix - [ ] Testbed and Framework(new/improvement) - [ ] New Test case - [ ] Skipped for non-supported platforms - [x] Test case improvement ### Back port request - [x] 202012 - [ ] 202205 - [ ] 202305 - [ ] 202311 - [ ] 202405 - [x] 202411 ### Approach #### What is the motivation for this PR? Adds more reliable PFC storm generation for interfaces connected to Arista fanout devices #### How did you do it? #### How did you verify/test it? Ran sonic-mgmt pfcwd tests on testbed with Arista fanout switches of the listed SKUs running EOS. Ran the pfc_gen script manually on Arista switches running Sonic. #### Any platform specific information? #### Supported testbed topology if it's a new test case? ### Documentation <!-- (If it's a new feature, new test case) Did you update documentation/Wiki relevant to your implementation? Link to the wiki page? -->
…tional Arista devices (#222) <!-- Please make sure you've read and understood our contributing guidelines; https://github.com/sonic-net/SONiC/blob/gh-pages/CONTRIBUTING.md Please provide following information to help code review process a bit easier: --> ### Description of PR NOTE: This is a duplicate of sonic-net/sonic-mgmt#17971, as @veronica-arista is away. Add a pfc_gen script for Arista fanout devices to generate pfc pause frames by setting PFC backpressure status in hardware. Enable the storm generation to use this script on interfaces that are connected to Arista fanout devices running EOS or Sonic. Currently supports the following Arista devices: Arista-7060X6 Arista-7060DX5 Arista-7060PX5 Arista-7060CX Arista-7260CX3 Arista-7260QX3 This is implemented on top of PR sonic-net/sonic-mgmt#15594 Summary: Fixes # (issue) ### Type of change <!-- - Fill x for your type of change. - e.g. - [x] Bug fix --> - [ ] Bug fix - [ ] Testbed and Framework(new/improvement) - [ ] New Test case - [ ] Skipped for non-supported platforms - [x] Test case improvement ### Back port request - [x] 202012 - [ ] 202205 - [ ] 202305 - [ ] 202311 - [ ] 202405 - [x] 202411 ### Approach #### What is the motivation for this PR? Adds more reliable PFC storm generation for interfaces connected to Arista fanout devices #### How did you do it? #### How did you verify/test it? Ran sonic-mgmt pfcwd tests on testbed with Arista fanout switches of the listed SKUs running EOS. Ran the pfc_gen script manually on Arista switches running Sonic. #### Any platform specific information? #### Supported testbed topology if it's a new test case? ### Documentation <!-- (If it's a new feature, new test case) Did you update documentation/Wiki relevant to your implementation? Link to the wiki page? -->
|
@veronica-arista Could we close this PR since it should duplicate with #18033, thanks |
|
Closing since this change was merged as #18033 |
Description of PR
Add a pfc_gen script for Arista fanout devices to generate pfc pause frames by setting PFC backpressure status in hardware. Enable the storm generation to use this script on interfaces that are connected to Arista fanout devices running EOS or Sonic. Currently supports the following Arista devices:
Arista-7060X6
Arista-7060DX5
Arista-7060PX5
Arista-7060CX
Arista-7260CX3
Arista-7260QX3
This is implemented on top of PR #15594
Summary:
Fixes # (issue)
Type of change
Back port request
Approach
What is the motivation for this PR?
Adds more reliable PFC storm generation for interfaces connected to Arista fanout devices
How did you do it?
How did you verify/test it?
Ran sonic-mgmt pfcwd tests on testbed with Arista fanout switches of the listed SKUs running EOS.
Ran the pfc_gen script manually on Arista switches running Sonic.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation