Full disclosure: Author Jeff Loughridge, an independent IP networking consultant, has contributed to the documentation of the open source Snabb Switch project.

The implementation of new network functionality has traditionally lived in the corridors of hardware vendors. The hyperscale Web companies were the first to break this model by using commodity x86 hardware with internally developed software. Now, the democratization of network feature development is ready to spread further, thanks in part to Snabb Switch, an emerging open source network functions virtualization toolkit.

Snabb Switch answers an intriguing question: What innovation might emerge if network functions could be written in a high-level language by network engineers with deep domain knowledge? The Snabb open NFV toolkit offers operators and enterprises the ability to solve network problems without being hindered by vendor lead times and pricy networking hardware.

In a nutshell, Snabb -- which means "fast" in Swedish -- is an open source virtualized Ethernet networking stack. The software, which can process millions of Ethernet packets per second, enables programmers to easily create virtualized networking software to operate on standard x86 servers.

By providing an NFV toolkit in the form of a virtualized Ethernet networking stack, Snabb Switch lowers the barrier of entry for network developers to enable specific network functions. Few companies have the internal knowledge to write control plane logic for massively distributed systems. But small units of functionality could be written as modular apps using Snabb Switch as the underlying framework. Consider an analogy to app developers on mobile platforms. A fraction of developers would be able to write the operating system, but the expertise required to write an app is within the reach of even novice developers.

Snabb Switch is the brainchild of Luke Gorrie, an engineer who spent most of his career writing software for network devices and who founded Snabb, a network software consultancy, in 2012. Gorrie was inspired by CloudFlare's use of a Lua scripting module for the Nginx Web server to implement customized load balancing for its content delivery network. Using that innovation as his inspiration, Gorrie wanted the networking community to have the same flexibility, only by allowing programmers to create extensions to manipulate Ethernet frames in a software switch the way Cloudflare did for HTTP.

In a nutshell, Snabb -- which means 'fast' in Swedish -- is an open source virtualized Ethernet networking stack.

Extensibility and code sharing are pillars of the Snabb Switch project. Gorrie expressed his views on extensions on the snabb-dev mailing list:

"The goal is to make it easy for motivated end users to create small extensions to do what they want, even if it involves adding code into the data path of a production network element. And it should be easy for people to pass these scripts around to their friends and so on, so that the ecosystem as a whole grows."

The extensions are created using configuration scripts -- also known as "designs" -- and apps. A Snabb Switch configuration script relies on existing apps. The script describes how the apps should be "wired" together. The packets output by one app are connected to the input of another app in a series known as the app network in Snabb Switch. The app is the more advanced of the two methods. Example apps packaged with the project include a packet capture reader, a packet filter and a learning bridge.

Understanding how Snabb Switch achieves its packet-forwarding speeds requires a brief history lesson. High-performance computing on x86 hardware was traditionally implemented by pushing functionality into the Linux kernel. This approach has limits, as interrupt handling and context switches incur performance penalties. Recent frameworks like Intel DPDK take the kernel out of the equation. Snabb Switch doesn't use DPDK, but it's similar in that it moves packet processing into user space. The result is that the arcane knowledge that kernel hackers possess is no longer needed.

With Snabb, ISP skips usual feature-development process Alexander Gall, an engineer at the Swiss ISP SWITCH, discussed an advanced application of Snabb Switch at the 2014 TERENA Networking Conference (TNC). While many operators implement Layer 2 VPNs that use MPLS to transport data, the Swiss ISP believes the reduced complexity and ease of interconnecting administrative domains favor a pure IP approach. A protocol currently in Internet Engineering Task Force (IETF) draft, called Keyed IPv6 Tunnel , offers a method for transporting Ethernet frames over IPv6. Here's how this story would traditionally play out: An operator would ask a vendor to develop a new feature. The vendor would determine the level of effort required for development and the benefit of expending the resources for development. If large customers weren't requesting the feature, the vendor probably would decide not to develop it. Even if the vendor decided to proceed, operators would have to wait at least 16 months for delivery. Then the operator's certification and deployment might add additional time to the vendor's lead time. SWITCH looked at the Snabb Switch project as a way to roll out its own network protocol and skirt the usual process. At TERENA, Alexander described how Keyed IPv6 Tunnel was easily written in Lua. The ISP didn't have to go out and buy a proprietary box from a network vendor. Instead, it could use x86 servers it already owned. This example shows that NFV can be used to produce faster time to market with new services at a reduced expense.