What is SONiC?

Imagine an open-source, Linux based, network operating system (NOS), backed by most of the key network-players in today’s world. SONiC – the Software for Open Networking in the Cloud.

Our gNMI Southbound plugin for lighty.io now supports:

  • Faster integration for SSL Certificates in developer mode with custom SONiC builds
  • Validated OpenConfig YANG Models into a project that works with SONiC
  • Improved assisting classes, which enable easier request creation in SONiC generated YANG classes (and vice-versa)
  • Added helping classes for gNMI answer translation into Java objects

SONiC is able to run on a variety of switches and ASICs (from Broadcom, Barefoot, Mellanox & more) – almost 70 percent of all hardware platforms support the operating system: Arista, Barefoot, Dell, Mellanox, Juniper Networks & more. The main reason for this hardware flexibility is the Switch Abstraction-Layer (SAI), which guarantees that the OS works on a variety of switches by multiple vendors. It is actively being deployed by telcos and large enterprises, as well as hyperscalers like Tencent or Alibaba. This software switch also powers Microsoft Azure, one of the largest cloud solutions available. 

cable network

SONiC was used before 2016 at LinkedIn – before it was acquired by Microsoft. After the buy, Microsoft came to see the commonalities between their solutions and SONiC and used the engineer’s knowledge to further its development. Now, Microsoft plans for SONiC are to support streaming, gaming AI clusters and other scenarios, which would make it attractive for more companies and even middle-to-small businesses.

SONiC falls under the umbrella of the Open Compute Project, where organizations like Google, Intel, IBM, Dell, Alibaba Group, or Nokia, share their data-center designs and best practices among each other.

If not for the industry involvement, then it should capture your interest at least due to Broadcom’s commitment to open-source. Broadcom’s hardware can be found in most of today’s data-centers. This means, that it’s involvement in SONiC and other open-source projects under the OCP initiative will only reinforce the OS’s future potential and spread.

lighty.io & SONiC Integration

We looked at automating SONiC’s configuration and found out, that SONiC offers RESTCONF & gNMI. Therefore, we ran several tests.

Testbed properties:

  • Processor: i7-6820HQ 2,70 GHz (2 Cores)
  • RAM: 11.21 GB
  • OS: Ubuntu 18.04.1

RESTCONF – Multiple Sessions

Tools used to monitor networks: nload & iptraf

1 ACL for 1 Request / Avg. for 10 tests of 1000 requests / Avg. for 3 tests of 1000 requests

Creation of a new session for each request


# of RequestsAVG. Speed (MB/s)Transferred Data (MB) Total # of packetsTest Duration (s)Packets per secondsACL per seconds
1,0000.79717.453184190.921.9328415.40945.711
10,0000.553333333175.061821878.333318.15742.36333331.51333333
50,0000.22911.3994508054119.22294.3312.14

RESTCONF – Single Session

Tools used to monitor networks: nload & iptraf

1 ACL for 1 Request / Avg. for 10 tests of 1000 requests / Avg. for 3 tests of 1000 requests

Creation of a new session for each request

Used RESTCONF Client in ptdl


# of Requests AVG. Speed (MB/s)Transferred Data (MB)Total # of packetsTest Duration (s)Packets per secondsACL per seconds
1,0000.4821.703231898.845.3855124.47722.097
10,0000.385219.7652254120.5566.353980.47517.655

gNMI – Multiple Sessions

Tools used to monitor networks: nload & iptraf

1 ACL for 1 Request / Avg. for 10 tests of 1000 requests / Avg. for 3 tests of 1000 requests

Each ACL in a separate file. The file is loaded with each request.

Used gnmi_set to create a new session for each request.


# of Requests AVG. Speed (MB/s)Transferred Data (MB)Total # of packetsTest Duration (s)Packets per secondsACL per seconds
1,0000.4821.703231898.845.3855124.47722.097
10,0000.385219.7652254120.5566.353980.47517.655

gNMI – Single Session

Tools used to monitor networks: nload & iptraf

1 ACL for 1 Request / Avg. for 10 tests of 1000 requests / Avg. for 3 tests of 1000 requests

Used lighty-gnmi-sb module for communication

1 Session for all requests


# of Requests AVG. Speed (MB/s)Transferred Data (MB)Total # of packetsTest Duration (s)Packets per secondsACL per seconds
1,0001.34714.555168327.510,82415580.08492.558
10,0000.68143.151632032211,8367704.2547.21

lighty.io and gNMI devices

Our tests identified several strengths when using lighty.io with SONiC. We found that the SONiC Telemetry module was able to process requests via gNMI faster, than the MGMT-Framework using REST.

While REST processed ca. 65 requests per second, gNMI managed to process ca. 90 requests per second.

We have improved the gNMI Southbound plugin for lighty.io

Our gNMI Southbound plugin for lighty.io now supports:

  • SSL Certificates for developers
  • OpenConfig validated
  • Model (YANG) driven assisting classes
  • Improved gNMI support

As you can see, you are now able to use lighty.io for SONiC configuration & telemetry.

If you are interested in a commercial lighty.io solution, click the contact us button on the main menu.

by Peter Válka

Categories: Post