https://github.com/opencomputeproject/sai-challenger
https://github.com/opencomputeproject/sai-challenger
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/opencomputeproject/sai-challenger
- Owner: opencomputeproject
- License: other
- Created: 2021-12-09T00:39:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-05-16T07:45:12.000Z (10 months ago)
- Last Synced: 2025-05-16T08:41:04.693Z (10 months ago)
- Language: Python
- Size: 6.01 MB
- Stars: 19
- Watchers: 6
- Forks: 37
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# SAI Challenger
SAI testing and integration framework for any SAI oriented devices. The main ideas behind SAI-Challenger are:
- testbed agnostic test cases - test case code does not require any changes for running in any type of environment - HW, emulation, different test equipment, links, servers, etc.;
- decoupling real SAI RPC implementation from test cases code - test code looks similar for configuring device using Thrift, Redis, etc.;
- traffic generator agnostic interface - possibility to use both SW and HW traffic generators that support snappi API;
- fully dockerized environment;
## SAI Challenger sources
To get SAI Challenger sources:
```sh
git clone https://github.com/opencomputeproject/SAI-Challenger.git
cd SAI-Challenger/
git submodule update --init
```
# Applications
SAI Challenger has many applications. A partial list is below:
* Virtual and Physical testbeds
* Testing and debugging libsai using saithrift, independent of any Network Operating System (NOS)
* SONiC-SAI Integration and test using sairedis
* CI/CD and regression testing of virtual or physical DUTs
* DUT performance testing using HW traffic generators
* PHY (transceiver) device testing & qualification
* Ubrella test harness for native SAI Challenger test cases as well as legacy SAI-PTF test cases, using a single-pane-of-glass to reduce testbed complexity.
# Use-case scenarios
SAI Challenger has many configuration options, resulting in numerous permutations of:
* Physical or virtual DUT testing
* DUT Configuration APIs - saithrift or sairedis
* Dataplane (packet test) - PTF/Scapy or OTG/snappi.
See [Use-Cases README](usecases/README.md) for more details.
# Architecture
- [Overview](./docs/architecture.md)
- [SAI client APIs](./docs/sai_clients.md)
- [SAI clients GET specification](./docs/client_attrs_spec.md)
# User guides
## Running tests
- [Composing testbed definition](./docs/testbed_definition.md)
- [Running tests in client-server mode](./docs/client_server_mode.md)
- [Running tests in standalone mode](./docs/standalone_mode.md).
- [Utilizing SONiC device as a SAI DUT](./docs/sonic_usecase.md).
## Porting SAI Challenger to new platform
For more information on how port SAI Challenger to new platform, please refer to [Porting Guide](docs/porting_guide.md) document.
## SAI Challenger internals
For more information on how SAI Challenger operates on SAI, please refer to [SAI operation](docs/sai_operation.md) document.