The P4 Language

P4 is a high-level language for programming network switches. It comes from the name of the original paper: Programming Protocol-Independent Packet Processors. As the name implies, it is focused on flexible, programmable forwarding devices. P4 is independent not only of data-plane protocols, but also of control-plane protocols. Hence, P4 can work in conjunction with traditional control-plane protocols (e.g., BGP, OSPF, STP) as well as new SDN protocols (e.g., OpenFlow).