# Programming Protocol-Independent Packet Processors

arXiv: https://arxiv.org/abs/1312.1719 · HTML: https://mlsanity.com/paper/1312.1719/

## Key facts

- Cited by 21 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 5 Dec 2013.

## Built on by (most cited first, 21 of 21)

- [Applications and Techniques for Fast Machine Learning in Science](https://mlsanity.com/paper/2110.13041/) (2021)
- [Brain-on-Switch: Towards Advanced Intelligent Network Data Plane via NN-Driven Traffic Analysis at Line-Speed](https://mlsanity.com/paper/2403.11090/) (2024)
- [IIsy: Practical In-Network Classification](https://mlsanity.com/paper/2205.08243/) (2022)
- [DarwinNet: An Evolutionary Network Architecture for Agent-Driven Protocol Synthesis](https://mlsanity.com/paper/2604.01236/) (2026)
- [Pegasus: A Universal Framework for Scalable Deep Learning Inference on the Dataplane](https://mlsanity.com/paper/2506.05779/) (2025)
- [FRED: Flexible REduction-Distribution Interconnect and Communication Implementation for Wafer-Scale Distributed Training of DNN Models](https://mlsanity.com/paper/2406.19580/) (2024)
- [UniNet: A Unified Multi-granular Traffic Modeling Framework for Network Security](https://mlsanity.com/paper/2503.04174/) (2025)
- [Revelio: ML-Generated Debugging Queries for Distributed Systems](https://mlsanity.com/paper/2106.14347/) (2021)
- [Network Programming via Computable Products](https://mlsanity.com/paper/2201.12950/) (2022)
- [Automating In-Network Machine Learning](https://mlsanity.com/paper/2205.08824/) (2022)
- [Learning Failure-Inducing Models for Testing Software-Defined Networks](https://mlsanity.com/paper/2210.15469/) (2022)
- [Prose-to-P4: Leveraging High Level Languages](https://mlsanity.com/paper/2406.13679/) (2024)
- [Accelerating Stateful Network Applications with Performance Prediction on SoC SmartNICs](https://mlsanity.com/paper/2410.22229/) (2024)
- [Inference-to-complete: A High-performance and Programmable Data-plane Co-processor for Neural-network-driven Traffic Analysis](https://mlsanity.com/paper/2411.00408/) (2024)
- [Proof of Humanity: A Multi-Layer Network Framework for Certifying Human-Originated Content in an AI-Dominated Internet](https://mlsanity.com/paper/2504.03752/) (2025)
- [Reinforcement Learning-based Adaptive Path Selection for Programmable Networks](https://mlsanity.com/paper/2508.13806/) (2025)
- [Serve Programs, Not Prompts](https://mlsanity.com/paper/2510.25412/) (2025)
- [Chimera: Neuro-Symbolic Attention Primitives for Trustworthy Dataplane Intelligence](https://mlsanity.com/paper/2602.12851/) (2026)
- [Tiara: A Programmable Line-Rate ISA for Remote Memory Access](https://mlsanity.com/paper/2606.13708/) (2026)
- [Decode-Time Grammars: Constrained LLM Generation over a Refinement Order of Grammar Fragments](https://mlsanity.com/paper/2607.18357/) (2026)
- [Can AI Agents Detect and Repair Artifact Drift in Network Experiments?](https://mlsanity.com/paper/2609.09849/) (2026)

## Abstract (arXiv)

P4 is a high-level language for programming protocol-independent packet processors. P4 works in conjunction with SDN control protocols like OpenFlow. In its current form, OpenFlow explicitly specifies protocol headers on which it operates. This set has grown from 12 to 41 fields in a few years, increasing the complexity of the specification while still not providing the flexibility to add new headers. In this paper we propose P4 as a strawman proposal for how OpenFlow should evolve in the future. We have three goals: (1) Reconfigurability in the field: Programmers should be able to change the way switches process packets once they are deployed. (2) Protocol independence: Switches should not be tied to any specific network protocols. (3) Target independence: Programmers should be able to describe packet-processing functionality independently of the specifics of the underlying hardware. As an example, we describe how to use P4 to configure a switch to add a new hierarchical label.
