We are thrilled to announce that, with the Cumulus Linux 3.6.2 release, the Facebook Voyager packet-optical device is now generally available. That’s certainly an exciting development as the industry’s first packet-optical whitebox, but I actually wanted to discuss something else: how we were able to get support for the device up and running so quickly and what that means for Cumulus Linux. There’s a large number of devices that we support, which are listed on our Hardware Compatibility List. Those devices, however, are all “normal” Ethernet devices. Usually we can get those to market rapidly, but Voyager was more complicated.
First, as you may know, Facebook Voyager is a device with a Broadcom Tomahawk chip supporting 12 100 Gigabit Ethernet ports as well as an additional 4 200 Gigabit DWDM ports supported from 2 Acacia AC400 modules (for more details on the underlying specifics, see the Voyager Tech Docs). I mention the chipset explicitly as that’s one of the most critical – and time-consuming – components to support as we port to a new device. In this case, of course, we already supported the Tomahawk, so that was an immediate “leg up” on the work.
Those Acacia AC400 modules, on the other hand, were not previously supported at all. Configuration and management of the transponders from within the Cumulus Linux operating system required that we communicate with them. When building out the solution, of course, we could have cut corners and hard-coded that. And since in this case, time was of the essence – we’ve got customers waiting after all – that might have been justified. Instead, though, we took the long-term view, and created a standard, the “Transponder Abstraction Interface” (TAI). We worked in conjunction with partners including NTT Electronics, Acacia, and others, and then open-sourced the code that talks with the AC400. This means that potential future devices that might use a different transponder would still be able to look the same from the perspective of the operating system, thereby future-proofing the architecture. Similarly, it means that if other products want to communicate with the AC400, they’re able to do so.
So to support Voyager, the team had to port our operating system over to the device, ensure correct communication with the Tomahawk chipset, add the underlying components (fans, power, e.g.), build out the TAI interface, add Layer 1 optical configuration, and then test out the “normal” Layer 2 / 3 functionality Cumulus Linux usually supports. Astonishingly, this was all done start-to-finish in about 8 months! We first got involved with the Voyager project in November 2017, released an Early Access (EA) version in May 2018, and then released the Facebook Voyager GA version in July 2018.
Perhaps even more amazing is that the EA build – which worked, of course, but was not yet ready for production deployments – did not have a CLI for configuration and management of the optical components. Instead, users could manage things via the “typical” Linux way by manipulating configuration files, either directly or via automation tools. By the time GA rolled around, less than a couple months later, those commands were fully available via our CLI, NCLU (Network Command Line Utility).
So how was the team able to build so quickly?
Part of that success, admittedly, is due to experienced, talented and skilled people working in a great corporate environment (We’re hiring! See what’s available). The other part of it is the inherent advantages of Cumulus Linux as a network operating system (NOS) based completely on Linux. As opposed to other closed-system NOS’s, it’s comparatively easy to modify, enhance and update Cumulus Linux. In this case, it was simple to build out the interface with the optical transponders, and then to build in the CLI.
The same facility that allowed us to develop so quickly can also be used by our customers to customize and modify Cumulus Linux in a way our competitors simply can’t. For example:
- If you want to build a new custom component running within the switch, you certainly can.
- If you then want to upgrade the operating system around your custom code, just like you can on your servers, you can — something unique when compared to our competition.
- And if you want to plug in to your favorite northbound automation toolkit, feel free to do so.
That’s a true advantage of Cumulus Linux: the same architecture that we used to build out Voyager so quickly can be used in your network as well.
If you want to learn even more about Voyager, check out the Voyager how-to video series, where we dive into how Voyager works, why it’s so revolutionary and what benefits it provides. You can also head to our DCI solutions page, where you can find a hub of all our Voyager resources.