Thin NOS Approach with Open vSwitch for New Hardware Products

October 21, 2020
Thin NOS Approach with Open vSwitch for New Hardware Products

To transform a new chip or white box into a fully functional networking appliance, switching hardware vendors must enable the switch’s control plane, which is a recurring challenge in the industry.

As a solution, one can choose a full-scale, traditional NOS option – for example, the popular open-source SONiC or a proprietary software. With SONiC, the path involves implementing SAI (Standard Abstraction Interface) while a type of HAL (Hardware Abstraction layer) should be implemented for proprietary software. Usually, for new switching silicon, SAI/HAL implementation is missing, making it hard to enable a specific chip’s SDK configuration. Furthermore, SAI/HAL development requires significant effort and time to complete.

thin nos architecture. PLVision

There is a shortcut, however, to enabling a lightweight control plane for a networking device – using a so-called thin NOS approach, pioneered in the SDN era. Let’s look at how Open vSwitch can be used as a thin NOS layer. OVS integration proves to be somewhat simpler and faster than SONiC/SAI integration. But to get practical applications up and running with Open vSwitch, you’ll need an SDN controller like ONOS or OpenDaylight.

Read “Why’s Everybody So Excited About SONiC NOS?” in our blog post

Quick gain with a thin NOS

Open vSwitch (OVS) is an open-source, production quality, software switch. It is designed to enable network automation through programmatic control while still supporting standard management interfaces and protocols.

Out-of-the-box OVS functionality is very trivial: basic Layer 2 switching and OpenFlow protocol support, which only meets the needs of simple networks. The switch can be configured via OVS Linux CLI (ovs-vsctl and ovs-ofctl – see Chapter 4 of the OpenSwitch User Guide as an illustration). On the practical side, however, network engineers significantly lack experience with this user interface.

To enable sophisticated network operations, a controller would be required, e.g. ONOS, OpenDaylight. These controllers have proven to be successful for many use cases. As an example, ONOS is used to control leaf spine fabrics in the data center environment.

Data plane integration options

When using Open vSwitch, you must implement hardware offloading. There are two integration options when it comes to hardware data plane:

The pure OpenFlow mode follows the abstract SDN approach to configure a switch and requires deep TCAM/ACL tables and flexible configurations of those tables for offloading. While this approach provides more power for an SDN controller to define network behavior, it places high demands on switching silicone.

Therefore, this mode is not a good fit for products based on ASICs with fixed pipelines and protocol-oriented lookup tables, as hardware resources/tables are only partially utilized.

The OFDPA (OpenFlow Data Plane Abstraction) mode is an approach to enable OpenFlow-like API for chips with fixed pipelines. Broadcom (see specification) defined this approach and most switch vendors followed their path, establishing a de facto industry standard. An insightful introduction to how the OFDPA mode operates from an SDN controller perspective is available on ONOS Wiki.

As a result of Open vSwitch offloading efforts, the HAL API layer – inherited from the OFDPA interface – is implemented. Moving forward, this layer can serve as a solid base, opening the way for switch integration with various NOSes like SAI implementation.

Open vSwitch offloading case studies

As an SDN R&D software company, we have a wealth of experience using OVS as a thin switch to help customers bring a new product line of network switches quickly to market. Our track record of Open vSwitch hardware offloading projects covers both pure OpenFlow and hybrid modes of operations, including OpenFlow API implementation, L2 features (VLAN, FDB, STP, LAG) and tunneling.

In one specific case, OVS enablement helped us speed up OpenSwitch NOS (OPS v1.0) porting to a switching ASICs family. Since OPS NOS uses OVSDB as a configuration database and the modified OvS plugins as a HAL API, fast integration with the vendor’s SDK became possible.

Whether you choose a lightweight NOS approach with Open vSwitch or a full-scale NOS integration, our expert team can help you design and implement the right solution while delivering on your business goals – extended functionality, faster time to market, customer satisfaction, etc. Our NOS expertise covers the most popular proprietary solutions, as well as popular open-source options like SONiC, Stratum and DENT/Switchdev.

Leonid Khedyk