2026 P4 Workshop
Join us on October 12, 2026 for the annual P4 Workshop. The call for proposals is open and will close on August 1.
Join us on October 12, 2026 for the annual P4 Workshop. The call for proposals is open and will close on August 1.
Programming Protocol-independent Packet Processors (P4) is a domain-specific language for network devices, specifying how data plane devices (switches, NICs, routers, filters, etc.) process packets.
Before P4, vendors had total control over the functionality supported in the network. And since networking silicon determined much of the possible behavior, silicon vendors controlled the rollout of new features (e.g., VXLAN), and rollouts took years.
P4 turns the traditional model on its head. Application developers and network engineers can now use P4 to implement specific behavior in the network, and changes can be made in minutes instead of years.
In this calendar, you’ll see all upcoming events and community meetings. Anyone and everyone is welcome to attend.
Click on an event to request an invitation.
P4 programs and compilers are target-specific. The target can be hardware-based (FPGA, Programmable ASICs) or software (running on x86).
A P4 program (prog.p4) classifies packets by header and the actions to take on incoming packets (e.g., forward, drop).
A P4 compiler generates the runtime mapping metadata to allow the control and data planes to communicate using P4Runtime (prog.p4info).
A P4 compiler also generates an executable for the target data plane (target_prog.bin), specifying the header formats and corresponding actions for the target device.
control ingress () {
table routing {
key = { hdr.ipv4.dstAddr : lpm; }
actions = { drop; route; }
size = 2048;
}
apply {
routing.apply();
}
}
Try it out in our P4 Sandbox!