Software defined networking (SDN) puts a new spin on network provisioning and management. Going forward, new architectures will be programmed to function in all sorts of novel ways, so it stands to reason that the programming language chosen for this task will become a prime consideration in the very near future.
While it may be tempting to write network instructions in the same language used for the rest of the app, this is not always the wisest move. Popular languages like Java and Go may do wonders for many functions, but they don’t always provide the best networking performance. What the enterprise really needs is a language devised from the ground up to take on the specific world of SDN. In this way, the enterprise can provide best-of-breed programming support for the connectivity needs of increasingly automated and autonomous applications.
This is exactly what the developers of P4 have in mind.
According to No Jitter, the P4 Language Consortium has devised a solution specifically to handle forwarding instructions on white box infrastructure. This means it can exploit any advantages built into merchant silicon – everything from common ASICs and CPUS to advanced FPGAs and GPUs – giving it the ability to perform at the same level as proprietary switches and routers, and even interoperate with them using the appropriate plug-in. At the same time, it can utilize standard SDN formats like OpenFlow while also supporting hardware-optimized legacy devices, providing a nifty bridge between old-style infrastructure and advanced virtual environments.
The trick, of course, is to foster an open networking environment without unleashing so many solutions that end-to-end compatibility is compromised. To that end, the Open Networking Foundation and the Linux Foundation have incorporated P4 into their Stratum and DANOS operating systems, which should make it as broad-based across the network as Linux is in the server farm.
P4 is also expected to contribute to the Microsoft-backed SONiC (Software for Open Networking in the Cloud) switch, given that they both utilize the Switch Abstraction Interface (SAI) API to capture switch pipeline behavior. Barefoot Networks has also implemented P4 advanced capabilities like data plane telemetry (DTel) which can run on its Tofino Ethernet ASIC, thus giving bare-metal switching platforms an easy on-ramp for advanced capabilities like deep visibility.
Meanwhile, P4 is showing up in next-generation networking environments at Google and other hyperscale providers. Google recently adopted the P4Runtime as part of a broader conversion to the Stratum OS, which software engineer Jim Wanderer says reduces the burden on network programmers by allowing them to establish forwarding behavior using a simple remote procedure call (RPC). In addition to internal data center networks, Google is also looking at P4 as a wide area control plane programming solution.
P4 also provides a means for today’s network admin to remain relevant in the emerging DevOps and software-defined universes. By providing the means to elevate a given app from so-so network performance to fully optimized functionality, a skilled P4 programmer becomes a key asset in the drive to enhance the value of data and data operations.
And best of all, P4 is free, as is the membership to P4.org. So anyone who is interested in venturing into the brave new world of programmable networks can start today, at no cost.
Arthur Cole is a freelance journalist with more than 25 years’ experience covering Enterprise IT, telecommunications and other hi-tech industries.