The new features include the use of SAI Thrift and SAI Redis interfaces for test development, line-rate traffic testing, and simplified testbed description, which serve as a foundation for SAI Challenger’s adoption for new use cases, with DASH community testing providing a successful example.

PLVision, a custom software product development company focused on open networking systems, is excited to share that the SAI Challenger framework, contributed by PLVision to OCP, has been extended with new functionality. It creates new opportunities for SAI Challenger’s wide application to new SAI-based use cases, the most recent successful one being SONiC-DASH community testing for networking solutions using DPU programmable hardware.

Initially, the Switch Abstraction Interface (SAI) was designed to provide a vendor-independent way of controlling forwarding elements like switching ASICs aka NPUs. For the past few years, SAI’s application domain has grown significantly to include both the types of ASICs (NPU, DPU, external PHY) and the types of target devices made of SAI components (disaggregated chassis, smart NICs, smart appliances, switches with NPU and external PHYs controlled by SAI). As usual, a more complex solution requires more attention to testing, integration, and maintenance stages.

SAI Challenger is a SAI testing and integration framework for any SAI-oriented devices. It was initially developed by PLVision and contributed to OCP in 2021. This open product can help improve your SAI testing – from simulation to emulation and hardware – and speed up your solution’s time to market. It provides a unified testing approach for different types of ASICs combined in target devices of different complexity.

The extended use of SAI Challenger became possible due to the new functionality recently contributed by the PLVision team in collaboration with Keysight Technologies. These three functional pillars are crucial for the wide application domain of SAI:

  • Decoupling of SAI RPC implementation from the API that is used for test cases development. As a result, once written, a test case can be executed using either the SAI Thrift or SAI Redis RPC mechanism. This also enables a wide choice of testing methodologies irrespective of the type of RPC selected:
    – CRUD abstraction APIs which make writing tests very simple thanks to the reduced API footprint;
    – Using sairedis.rec files generated by SONiC as the test cases to reproduce exact SAI scenarios from the SONiC environment;
    – Using a declarative data-driven approach where SAI configuration is specified using simple data structures with SAI constants and object names;
  • Traffic generator agnostic interface – the ability to use both SW and HW traffic generators that support the Open Traffic Generator interface by using snappi APIs. This was achieved with the introduction of a dataplane abstraction layer, thanks to which a testbed can even use multiple instances of different types of dataplane.
  • The testbed description JSON file with a simple and clear definition of all aspects of a certain testbed: the types and number of SAI instances under testing (including both multi-DUT and multi-ASIC scenarios), the type of SAI RPC mechanism to be used for each SAI instance, the configuration modes of the traffic links, and the type of the traffic generators to be used. You can find an example on GitHub.

Based on these key pillars, SAI Challenger has been successfully adopted for SONiC-DASH testing. For more detailed information, please see the DASH testing with SAI Challenger tutorial.

SAI Challenger can also be used as an umbrella to run legacy SAI PTF test cases. To do this, SAI Challenger translates a testbed description’s JSON file into the PTF configuration parameters. As a result, SAI PTF test cases can be executed natively with zero changes. This allows you to avoid losing legacy SAI PTF test cases when migrating to the feature-rich SAI Challenger.

“We are happy to see that the approaches used in SAI Challenger and its new features have become a universal mechanism, enabling its successful adoption and making it a go-to open tool for testing and prototyping of SAI-based solutions,” said Andriy Kokhan, PLVision’s Solutions Architect, who developed the idea behind SAI Challenger and is its product owner. “SAI Challenger’s adoption for DASH community testing has been an important milestone. We encourage the community to explore and use the product, and to offer feedback on its effectiveness for their use cases.”

“Keysight’s open traffic generator integrated into PLVision’s SAI Challenger, enables testing any SAI implementation possible with option to do software-based to line-rate hardware-based testing a reality. SONiC-DASH CI pipeline is a great example,” said Chris Sommers, Distinguished SW Engineer, Keysight Technologies.

Come hear PLVision and Keysight speak about SAI Challenger’s new functionality at the 2023 OCP Regional Summit in Prague on April 20, 1:40PM – 1:55PM. The session Test tooling for 100% of SAI use cases will be presented by Andriy Kokhan, joined by Vlad Laslau, Senior Technical Product Manager at Keysight Technologies.

Download Keysight’s white paper “Open Traffic Generator, SAI Challenger and the DASH Use Case” here.

About PLVision

PLVision is a software product development company focused on open networking systems with a proven track record of serving enterprise-class customers since 2007. By carefully crafting product functionality based on end user needs, PLVision delivers cutting-edge custom networking software using open source (SONiC, DASH, DENT OS) as our foundation for innovation. We empower the business success of our customers – including switch silicon and hardware vendors, service providers, and enterprises – and strive to impact the world by broadening access to networks. PLVision proactively handles and takes full responsibility for end-to-end software product design and development, starting from architecture, PoC, and MVP development up to sales assistance, support, and maintenance. Learn more about PLVision at plvision.eu