Skip to content

chrispsommers/SAI-Challenger

 
 

Repository files navigation

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:

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 for more details.

Architecture

User guides

Running tests

Porting SAI Challenger to new platform

For more information on how port SAI Challenger to new platform, please refer to Porting Guide document.

SAI Challenger internals

For more information on how SAI Challenger operates on SAI, please refer to SAI operation document.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 87.7%
  • Shell 6.6%
  • Dockerfile 3.8%
  • C++ 1.3%
  • Other 0.6%