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

Phoenixwing SRv6 traffic test and convergence test using TRex #15221

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

forrestchu
Copy link

Description of PR

Summary:
PhoenixWing SRv6 traffic test and convergence test by using TRex.

Type of change

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

Back port request

  • 202012
  • 202205
  • 202305
  • 202311
  • 202405

Approach

What is the motivation for this PR?

The PhoenixWing Initiative aims to incorporate SRv6 features and some infrastructure level enhancements into the SONiC community code base. This test plan will cover the traffic test and convergence test of SRv6 cases in PhoenixWing, by using software traffic generator TRex.

How did you do it?

To observe the traffics on all SRv6 paths, we replace all the device connections in the testbed with OVS links. This allows us to get a traffic copy for each link in PTF, Trex can calculate the traffic on each link.

How did you verify/test it?

From Trex, we can get traffic statistics on all link, we will check whether the the packet counter is as expected, also we will check the packet SRv6 encapsulation with PTF framework.

Any platform specific information?

no

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

Documentation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a significance for the black and purple connection lines? If so, can you add some legends for more clarity?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks you udhay, actually they are same lines, I will update the image.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

legends added.


### SRv6 VPN

#### SRv6 VPN for single homing

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't directly rely on packet counters because of the control packets. Increasing packet size will help. Sonic interface tracks count for different bytes.

Copy link
Author

@forrestchu forrestchu Oct 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, we will take control packets into account, the control packets is limited, compared to user traffic. so we can reserve some buffer when calculate traffic loss. The sonic interface counters may not work in vSonic case.

#### SRv6 VPN for single homing
Publish VRF routes from PE1 to PE3, and run TRex traffic from PE3.

- no packet loss: for example run trex for 10s and check {"ptf_tot_rx": 10000, "ptf_tot_tx": 10000}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add check to validate TTL is not decremented when crossing tunnel ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good suggestion, TTL validation added

- if send a single stream to PE3, the packet can only be found on a single path

#### Dual homing - IGP local failure case
Start trex stream and wait 5 seconds; Shut down port between P2 and PE3; wait 5 seconds and Stop Trex stream.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please mention traffic end points for the test cases to visualize traffic load balancing in failure cases .

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, All traffic end points are on PEs. Ingress PE3 is always to encap srv6 packets, and Egress PE1/PE2 is to decap srv6 packets.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added more images to show traffic load balancing

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@forrestchu - can this be presented on the next sonic-mgmt subgroup meeting?

Copy link
Author

@forrestchu forrestchu Nov 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@forrestchu - can this be presented on the next sonic-mgmt subgroup meeting?

that would be great, roy @roy-sror . But currently I don't get a meeting invitation, or should I schedule an appointment with the meeting owner?

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.

4 participants