The P4 Language Consortium logo

The P4 Language Consortium

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.

GSoC Participation History

Technologies

Topics

Past Projects

Polyglot P4TC: Python and Rust API Wrappers for Linux TC-based P4

P4TC enables programmable packet processing in the Linux kernel via TC and eBPF, but its control plane is limited to the tc CLI and shell scripts....

BMv2 packet trace support

BMv2 currently provides only textual logs for tracing packets through a P4 pipeline, which must be parsed with brittle regex hacks and cannot be...

Enhancing P4-SpecTec Usability: A Mechanized Specification for Nano-P4

P4-SpecTec provides mechanized formal semantics for the P4 language, but its adoption is currently limited by a lack of accessible learning...

Improving The Traffic Manager of the P4Sim Switch

This project is to improve the P4Sim module by enhancing its Traffic Manager and integrating ns-3's built-in QueueDisc class into it. This will help...

Integrating P4 Based In Network Machine Learning Framework into P4Pi

This project integrates Planter, an in-network machine learning framework, into the P4Pi Raspberry Pi platform. The work includes adding a p4c-dpdk...

Frequently Asked Questions

The P4 Language Consortium | GSoC Org Profile & Stats - Learn about The P4 Language Consortium's involvement in Google Summer of Code (GSoC), their technologies, detailed reports.

|Currently Active|

Contributor Readiness

Participation

Projects

Top Programming Languages

llvm dominates with primary adoption

Project Difficulty Distribution

Beginner
0
Intermediate
0
Advanced
0

No difficulty data available