Mellanox to open up its Ethernet networking stack
Time for Ethernet to steal something else – open source – from InfiniBand
Switch and adapter maker Mellanox Technologies will take its own switching and management software open source, and allow companies to run their own open switching and routing code atop its physical switches.
Why? Simple: Mellanox is trying to differentiate itself from its competitors in the Ethernet switch and router rackets, although its new strategy is a bit of a flashback, considering the company's heritage in the InfiniBand switch space.
Gilad Shainer, vice president of market development at Mellanox, tells El Reg that there is also the possibly that the company's MLNX-OS switch operating system could be open sourced under what Mellanox is calling the Open Ethernet effort.
"In the InfiniBand space, where Mellanox was founded, most things are open and companies have the ability to modify the software to suit their needs," explains Shainer. "In the Ethernet space, which we entered in 2008, it doesn't work that way."
Switch and router vendors may run a modified Unix or Linux kernel with networking services to make their devices, and more than a few of them have put on virtual machines that allow companies to use an x86 processor on the switch or router to run ancillary programs for the network devices. This is a kind of openness, but Mellanox wants to go further for a particular customer set that likes to be able to tweak switching and routing, and occasionally gut it for their own purposes.
"While closed source has been alright for enterprises, it is not going to work for cloud and Web 2.0," says Shainer. The reason is that with plain-vanilla businesses, you are just supporting the enterprise, but with hyperscale cloud operators such as Google, Amazon, Facebook, and Yahoo!, the system is literally the business, and making it run better means being able to make money.
"You need to be able to gain some sort of competitive advantage through the systems themselves," Shainer says, "and that is why you need to open it up."
The pieces of the open Ethernet network as Mellanox sees it
"We will open source whatever of ours we can't find out there," says Shainer. The plan is to start with Layer 3 routing functions in the MLNX-OS stack, and then move on to the Layer 2 switching functions after that. The plan is to open source the Mellanox functions as modules for MLNX-OS, the company's Linux variant, under GPL and BSD licenses. The former would compel companies to release their tweaks to the code back to the community, while the latter would not.
The company is not announcing a timeline for when this code will be opened up, but says it will figure out a roadmap over the next several months, and will have its plan together by the Interop networking conference in early April.
By opening up its code, Mellanox understands that it will be allowing others to grab it and run it modified on switching and routing gear that is not its own. Shainer says that the goal is not to get all or some of MLNX-OS running on other switches, but rather to open up the key, important elements of the MLNX-OS stack that are not available through other open source networking projects and make them available so companies can then tweak and tune them as it sees fit.
So what does Mellanox get out of this? It gets to sell more Ethernet switches, for one thing, and it might even be able to pull a Red Hat and provide tech support services for the open source elements for those customers that run it on Mellanox switches or other gear.
The elements of the Open Ethernet stack that Mellanox is bringing in from the outside include OpenFlow, on both the data plane inside of the switches and the control plane that is running on an OpenFlow controller. Mellanox is endorsing the open source RouteFlow extensions to the OpenFlow controller and the Quagga Layer 3 routing software running on its switches.
Should other projects emerge with good switching or routing code, Mellanox will work with the community to get that code ported to its MLNX-OS network operating system. ®