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.
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 with 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:
- 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 Requests | AVG. Speed (MB/s) | Transferred Data (MB) | Total # of packets | Test Duration (s) | Packets per seconds | ACL per seconds |
1,000 | 0.79 | 17.45 | 184190.9 | 21.9 | 8415.40 | 45.71 |
10,000 | 0.55 | 175.06 | 1821878.3 | 318.1 | 5742.36 | 31.51 |
50,000 | 0.22 | 911.39 | 9450805 | 4119.2 | 2294.33 | 12.14 |
RESTCONF – Single Session
Tools used to monitor networks:
- 1 ACL for 1 Request / Avg. for 10 tests of 1000 requests / Avg. for 3 tests of 1000 requests
- Used RESTCONF Client in ptdl
# of Requests | AVG. Speed (MB/s) | Transferred Data (MB) | Total # of packets | Test Duration (s) | Packets per seconds | ACL per seconds | |
1,000 | 0.87 | 14.2 | 162062.8 | 45.39 | 5980.68 |
|
|
10,000 | 0.52 | 135.6 | 1586956.5 | 261.75 | 6142.36 | 38.26 |
gNMI – Multiple Sessions
Tools used to monitor networks:
- 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 packets | Test Duration (s) | Packets per seconds | ACL per seconds |
1,000 | 0.48 | 21.703 | 231898.8 | 45.39 | 5124.48 | 22.10 |
10,000 | 0.39 | 219.77 | 2254120.5 | 566.35 | 3980.48 | 17.66 |
gNMI – Single Session
Tools used to monitor networks:
- 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 packets | Test Duration (s) | Packets per seconds | ACL per seconds |
1,000 | 1.35 | 14.56 | 168327.5 | 10.82 | 15580.08 | 92.56 |
10,000 | 0.68 | 143.15 | 1632032 | 211.84 | 7704.25 | 47.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