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

[test plan] Test plan for BGP scale test #15702

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

Conversation

w1nda
Copy link
Member

@w1nda w1nda commented Nov 22, 2024

Description of PR

Summary:
Fixes # (issue)
This test plan is to test if control/data plane can handle the initialization/flapping of numerous BGP session holding a lot routes, and estimate the impact on it.

Related PRs:

PR title State Context
[bgp-scale-test] Implement bgp scale test cases for sessions flapping, unisolation, nexthop group member change scenarios state context
[testbed] announce routes with routes generation switch, aggregate routes and variable ipv6 address pattern state context
[isolated-topo] disable ipv4 routes generation, add mocked aggregated addresses state context

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?

With numerous BGP sessions holding a lot routes, any flapping on BGP sessions or routes cloud have more overhead on device, to verify the functionality and estimate convergence time, we publish this test plan.

How did you do it?

Describe three test scenarios and introduce how we measure time in test.

How did you verify/test it?

Any platform specific information?

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

Documentation

@w1nda w1nda requested review from wangxin and yxieca as code owners November 22, 2024 09:28
@w1nda w1nda requested review from r12f and Blueve and removed request for wangxin and yxieca November 22, 2024 09:28
@mssonicbld
Copy link
Collaborator

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@w1nda w1nda force-pushed the bgp-high-scale-test-plan branch from 4c1c003 to b191e21 Compare December 19, 2024 14:32
@mssonicbld
Copy link
Collaborator

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
# Setup Configuration
The count of routes from BGP peers is vital, we will leverage exabpg to advertise routes to all BGP peers, and those routes be be advertised to device under test finally.

When DUT is T0, via exabgp, firstly, we will advertise 511 routes with prefix length 120 to all peer T1 devices for simulating downstream routes (VLAN IPv6 addresses of T0s), secondly, we will dvertise 15 routes with prefix length 64 to all peer T1 devices for simulating upstream routes (Aggregated IPv6 addresses of T0s' VLAN on T2s), finally, the DUT T0 will receive those routes from BGP peers.
Copy link
Contributor

Choose a reason for hiding this comment

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

it might be better to say - for each neighbor, we will advertise 1k routes in total: 512 /120 and 512 /128.

Copy link
Contributor

Choose a reason for hiding this comment

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

we will skip the T2 ones here. they won't make difference but can cause a lot confusions.

Copy link
Member Author

Choose a reason for hiding this comment

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

Because we have 1 /120 and 1/128 on T0 DUT, I think the routes count are 511 /120 plus 511 /128, right?

Copy link
Member Author

Choose a reason for hiding this comment

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

It's 511 or 512?

docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
@mssonicbld
Copy link
Collaborator

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

docs/testplan/BGP-Scale-Test.md Show resolved Hide resolved
Detail route scale is described in below table:
| Topology Type | BGP Routes Count | BGP Nexthop Group Count | BGP Nexthop Group Members Count |
| ------------------------------------------ | --------------------- | ----------------------- | ------------------------------- |
| t0-isolated-d2u254s1, t0-isolated-d2u254s2 | 254 * ( 511 + 511 ) | 254 | 254 |
Copy link
Contributor

Choose a reason for hiding this comment

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

The huge next hop count is not what the topology will provide by default, but the mgmt test cases would do. We should move them down to the mgmt test, but provide the default numbers here.

Copy link
Contributor

Choose a reason for hiding this comment

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

Or we can make a new table showing the test as the requirement of Nexthop Group Member Scale Test.

Copy link
Member Author

@w1nda w1nda Jan 15, 2025

Choose a reason for hiding this comment

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

When we deploy testbed, the script will setup route by default, and there are parameters in topo like: podset_number, tor_number, tor_subnet_number to control the routes scale, so routes in this table is default for each topology.

docs/testplan/BGP-Scale-Test.md Outdated Show resolved Hide resolved
# Route Configuration Setup
The count of routes from BGP peers is vital, we will leverage exabpg to advertise routes to all BGP peers, and those routes be be advertised to device under test finally.

When DUT is T0, via exabgp, we will advertise 511 routes with prefix length 120 and 511 rotues with prefix length 128 to each neighbor T1 devices. The prefixes with length 120 are mocking VLAN address on downstream T0s, and the prefixes with length 128 are mocking loopback address on downstream T0s.

Choose a reason for hiding this comment

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

just to clarify my understanding of the text here.

when the DUT is a T0 - the expectation is that all of the T1 (emulated) are reflecting the same collection of /120 and /128 prefix announcements for a resulting prefix count on the T0 DUT of ~1022 prefixes spread over 256/512 NHs. correct?

Copy link
Member Author

Choose a reason for hiding this comment

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

correct

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 📋 In Plan Features
Development

Successfully merging this pull request may close these issues.

5 participants