Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Leverage the fanout's ASIC to send PFC storm #12

Closed
wants to merge 1 commit into from

Conversation

nhe-NV
Copy link
Owner

@nhe-NV nhe-NV commented May 6, 2024

Currently, the PFC storm is sent using packet socket on the host CPU, which causes some drawbacks

  • There is strict timing requirement, which can not be guaranteed
  • The more ports under PFC storm, the higher probability that the timing requirement is not satisfied

We will leverage the fanout's ASIC to send PFC storm

  • Use SDK API to enable lossless traffic, set xoff to 0, and setup mappings for the PGs and the corresponding IEEE priorities

After the change, the pfc related test case which is using onxy as fanout will send the pfc frame with ASIC instead of using the CPU.
New docker storm docker need to be build with the Docker file provided in this PR.

Description of PR

Summary:
Fixes # (issue)

Type of change

  • Bug fix
  • Testbed and Framework(new/improvement)
  • Test case(new/improvement)

Back port request

  • 201911
  • 202012
  • 202205
  • 202305
  • 202311

Approach

What is the motivation for this PR?

To make the pfc related test case much more stable.

How did you do it?

Change sending pfc frame with CPU to ASIC on the onxy fanout.

How did you verify/test it?

Run the pfc related test case on the setup which has onxy fanout, test case could pass stablly.

Any platform specific information?

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

Documentation

Currently, the PFC storm is sent using packet socket on the host CPU, which causes some drawbacks

- There is strict timing requirement, which can not be guaranteed
- The more ports under PFC storm, the higher probability that the timing requirement is not satisfied

We will leverage the fanout's ASIC to send PFC storm

- Use SDK API to enable lossless traffic, set xoff to 0, and setup mappings for the PGs and the corresponding IEEE priorities

Limitation

Still keep sending pfc frame with cpu in  the storm docker, but rename it to pfc_gen_cpu.py in the docker.

If use the ASIC to send the pfc frame, ASIC could not send specified count of the pfc frame. need to still use the CPU to send the pfc frame.such as the test_pfc_counter test

Signed-off-by: Stephen Sun <stephens@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants