< back to overview

Table Driven Interface API Opens P4-Programmable Data Plane Features

Nov 9, 2021
Sunil Ahluwalia
Sunil Ahluwalia About the author

By Sunil Ahluwalia, Intel

Data flows in a modern data center are constantly changing and evolving as new workloads are added
and others are moved to different servers when they need more compute, memory or storage. This
constant change increases the need for intelligence, performance, visibility and control of the data
center network fabric.

P4-programmable switch ASICs are growing more important to data center network software
developers that are looking to provide the new functionality and flexibility needed for increasingly
distributed, cloud-native workload requirements. But even so, the programming of these ASICS can be
limited in that P4 programming can only impact certain program-dependent features (and not the fixed
function features). And while P4 is open, some of the compilers and runtime interfaces are not, limiting
the availability of open source applications for these switches.

Today at the OCP Summit 2021, Intel is announcing a new table driven interface (TDI) API to remove
some of these restrictions.

TDI is designed to control the lowest level table interfaces of different programmable pipelines in the network including switches, SmartNICs, IPUs, FPGAs and others. TDI gives developers the ability to control both the fixed function and program dependent features of the for Intel® Tofino™ Intelligent Fabric Processors (Intel® Tofino™ IFPs) and other targets.

The availability of TDI comes on the heels of the announcement of the Intel® Tofino™ 3 Intelligent Fabric Processor (IFP), the new device at the heart of the Intel® Intelligent Fabric vision. The Intel Tofino 3 IFP supports up to 25.6 Tbps of non-blocking throughput and up to 10 billion packets per second of forwarding capacity with highly consistent packet rates and forwarding latencies. It is based on a match-action pipeline architecture that provides highly programmable packet processing capability with extremely high data rates.

image for blogv2 jpgOpen Source Programmable Data Plane

The Intel Tofino IFP data plane is fully programmable using the P4 programming language. The data plane program defines the overall set of features and performance of the networking system. The operation of the data plane is managed by control plane programs.

This control is implemented using the corresponding APIs, exposed by a device driver or an equivalent software component. This is the only method control planes have to program the data plane. If a data plane feature is not exposed via a corresponding API, it cannot be used by the control plane and most probably will not be very useful for the system design.

Until now, programming of the Intel Tofino IFP data plane has been provided by the barefoot runtime interface (BRI). Using years of experience and best practices of representing each data plane object as a table, Intel can now open source the TDI to provide access to all of the data plane components, either fixed functions or P4 program-dependent functions.

It is important to note, that even for the data plane programs written in P4, this code does not cover the whole data plane functionality, since significant, often critical portions of the forwarding pipeline are performed by the fixed-function components within a system. Examples of fixed-function components include port management, traffic-management and packet replication. TDI’s benefit is that it can control the fixed function and P4 program dependent features.

TDI Extendable to CPUs, FPGAs, NICs

TDI will become a bigger aspect of the Intel Intelligent Fabric vision when its capabilities are extended from Intel Tofino IFPs to Intel® Infrastructure Processing Units (Intel® IPUs), Intel® FPGAs, and software switches using P4 DPDK.

For each of these new targets the table elements will be different, but the API and table manipulation is the same, which offers the extensibility needed to enable network applications written in P4 to be moved to different targets easily. Because the TDI is open, once these new table elements are  published, any developer will be able to access the backend they are looking for. And because it is open, any networking vendor can add a backend to TDI and participate in the ecosystem.

More technical details and the TDI code are available at the P4 TDI GitHub. For sample TDI implementations, go to https://ipdk.io.

 

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

Share this post:
ABOUT THE AUTHOR Sunil Ahluwalia
Sunil AhluwaliaSr. Director Product Management, Intel

TAGS