This P4 blog was contributed by Sunil Ahluwalia, Sr. Director, Product Management, Intel
The launch of P4-programmable Ethernet switch ASICs revolutionized data center,
telecommunications and enterprise networking. Now, P4-based switching is getting better with
the opening of the Intel® Tofino™ Native Architecture (TNA) to the developer community. This
blog post marks a big milestone in the process – the publication of Intel TNA documentation.
Companies that produce CPUs and other programmable devices along with the development tool
ecosystem typically provide compilers and access to instruction sets in order to enable a wide
range of applications. Prior to the launch of Intel Tofino, most switch ASICs have been closed
with programming limited to an elite corps of engineers working for the companies that design
network equipment. As a result, network innovation has been somewhat stifled.
P4 changed this dramatically by offering customers a way to program their network switches, but
left one problem: without open interfaces, programmers could not share their work with the
community. As a result, each programmer had to develop their code from scratch without being
able to build it on top of the code written by others. Intel has taken the following steps to open
the TNA:
- Published TNA files: This step allows current developers to publish their code. This
includes academic researchers and Intel Tofino customers who have been trained on the
programming tools, but have been prevented by NDA from publishing their programs.
Now they can share their programs. - Published Barefoot Runtime Interface: The BRI is the API that the switch’s control plane
uses to communicate with the switch’s data plane. The benefit is the ability to publish
control plane programs and the beneficiaries are, again, primarily the academic
researchers and customer developers who haven’t been able to publish their work (but
now can). - Published TNA Documentation: This is the most recent step and the most impactful when
it comes to bringing in new developers. This document is a complete description of the
P4-programmable components that are part of the TNA along with APIs and
documentation are made available in an application note titled “P4 16 Intel Tofino Native
Architecture – Public Version,” that was posted in a GitHub repository. A license to Intel®
P4 Studio is required to do the development. This application note enables the technically
savvy programmer that wants to learn P4 on Tofino to get started.
Driving New Network Thinking
An exciting aspect of the availability of the open TNA is the innovation that can be unleashed
using P4 and open TNA. Right now, companies have developed load balancing, firewalls and
other networking applications that take advantage of the packet processing power of the Intel
Tofino data plane which offers up to 6.5 Tbps of throughput.
By publishing the documentation app note, developers can freely discuss the interfaces and learn
and build upon the work of others while at the same time sharing their own developments.
Historically, this kind of sharing has led to positive advances in technology – even the possibility
of the creation of the next currently unknown killer app for P4-based networking.
A programming language like P4 is a powerful construct that, like our own human languages,
can use a few terms to create unimagined capabilities. I think back to the first Intel® CPUs which
powered calculators – and how they have evolved, thanks to programmability, to what they can
do now. I believe that with an open P4-programmable switch we are giving people the tools for
promising and exciting developments.
-------------------------------------------
Notices & Disclaimers: Intel technologies may require enabled hardware, software or service
activation. No product or component can be absolutely secure. Your costs and results may
vary. © Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries. Other names and brands may be claimed as the property of
others.