I started preparing the materials for the SDN – 10 years later webinar, and plan to publish a series of blog posts documenting what I found on various aspects of what could be considered SDN1. I’m pretty sure I missed quite a few things; your comments are most welcome.
Let’s start with an easy one: software/hardware disaggregation in network devices.
Open-Source Network Operating Systems
I found several widely-used open-source2 network operating systems:
- Cumulus Linux
- Dell OS10 (seems to be a successor of Force10 FTOS)
It seems that most of these systems run on a variety of switches from whitebox- and traditional data center switching vendors.
Linux Device Drivers
You need at least two software components to glue a network operating system to the hardware4:
- ASIC driver (sometimes called abstraction layer)
- Platform drivers (something to control the fans, front-panel LEDs…)
There are two competing approaches to ASIC device drivers:
- Switch Abstraction Interface (SAI) – standardized ASIC programming API embraced by Open Compute Project (OCP)
- switchdev – a Linux kernel API that offloads data plane processing from Linux kernel to an ASIC.
Open Network Linux (ONL) includes a large number of platform drivers.
Finally, there’s Stratum from Open Networking Foundation. If I got it right, ONF dropped OpenFlow and focused on P4, which works best on ASICs with flexible forwarding pipeline like the Barefoot/Intel Tofino ASIC5. No wonder the majority of the Technical Steering Team members work for Intel.
Open-Source Operating Systems on Hardware from Traditional Vendors
Most of the traditional data center switching vendors had to support SONiC or offer SAI interface on their hardware, or they wouldn’t be able to sell their boxes to hyperscalers (or at least Microsoft):
- Arista supports SONiC on a wide variety of switches using Tomahawk6, Trident7, Jericho8, or Tofino9 chipsets.
- Dell supports SONiC on switches using Tomahawk and Trident chipsets.
- Juniper supports SONiC on two spine switches using Tomahawk chipset.
- Cisco supports SAI on some Nexus 9200 and Nexus 9300 switches, which means you can run SONiC on them. They also support SONiC on Cisco 8000 routers.
Proprietary Network Operating Systems on Whitebox Hardware
The previous section should have made it abundantly clear that traditional networking vendors don’t mind selling disaggregated hardware (without their software) to large customers. Are they also willing to sell their software to run on third-party hardware? You bet:
- You could run Cisco IOS-XR on third-party hardware
- Juniper is talking about disaggregated Junos, but all I could find was a way to run Junos VM on their NFX150 CPE platform, and a datasheet claiming you can run Junos on a single Accton Edgecore switch.
- Supposedly you could run Arista cEOS (EOS in a container) on third-party whitebox switches. Based on my recent cEOS experience I have to wonder how much functionality you’d get beyond the basic L2+L3 forwarding. The only other reasonable hit I got for “Arista EOS whitebox” was a pointer to my 2015 April 1st blog post.
Then there’s a plethora of niche vendors offering their network operating systems on whitebox hardware, including Arrcus (ArcOS), DriveNets (DNOS), IP Infusion (OcNOS), NoviFlow (NoviWare)10, Pluribus, and RtBrick.
Proprietary Control Plane in a VM or Container
Imagine you’ve used gear from vendor X for ages, and want to deploy new control-plane functionality (example: BGP route reflector for EVPN). Wouldn’t it be better to buy the control plane functionality you need in VM or container format than to be forced to buy a router or a switch even though you need a single port on the device?11
Networking vendors started offering VM versions of their operating systems years ago. You can get (in alphabetical order):
- Arista vEOS
- Cisco IOS XE, IOS XR, or Nexus OS (9000v)
- Cumulus VX
- Dell OS10
- Juniper vSRX, vMX, or vQFX
- Mikrotik RouterOS
- Nokia SR OS and SR Linux
For more details, see also netlab supported platforms.
Some vendors went a step further and offered their control plane in a container. Arista cEOS and Juniper cRPD are the best-known examples.
- Added a pointer to DANOS, DriveNets and a podcast mentioning switchdev
- Added the Proprietary Control Plane in a VM or Container section
Have I missed something?
Your comments (preferably including links to documentation) would be most welcome. In case you want to send me a private message, you already have my email address if you have an ipSpace.net subscription, or if you’re subscribed to my SDN/automation mailing list, and there’s the Contact Us form for everyone else.
There’s no need to argue what SDN means, we all know it means Still Don’t Know. ↩︎
Using whatever definition of open. ASIC device drivers are often shipping as a binary blob. ↩︎
Seems to be a failed AT&T’s attempt to get other people to write software for free… considering the last news were published in 2019. No wonder when the “about the project” link downloads five pages of PDF-ed legalese. ↩︎
Assuming we’re dealing with a platform that uses an ASIC for hardware-based packet forwarding ↩︎
High-speed Broadcom ASIC used on spine switches ↩︎
Feature-rich Broadcom ASIC used on leaf switches ↩︎
Broadcom ASIC with large buffers and forwarding tables ↩︎
Barefoot (now Intel) ASIC with programmable forwarding pipeline and P4 support. ↩︎
NoviWare seems to be an OpenFlow agent, not a full-blow network operating system. ↩︎
Or two for redundancy ;) ↩︎