is a declarative language for telling forwarding-plane devices (switches, NICs, firewalls, filters, etc) how to process packets.
The draft specification for the P4_16 programming language is now available on P4.org
. There is an Apache 2-licensed open-source reference implementation: on GitHub.
Companies that have shipped products using P4 include Intel, Cisco, Xilinx, Mellanox, Netronome.