P4 es un lenguaje de programación de alto nivel utilizado para definir políticas de reenvío de paquetes en conmutadores de red. Fue diseñado por un equipo de la Universidad de Stanford y publicado como código abierto a principios de 2014.
Los programas P4 se compilan en un código de bits específico del conmutador, que puede cargarse en el dispositivo de destino y ejecutarse. Este código de bits puede generarse utilizando un compilador P4 de referencia o un compilador de terceros orientado a una arquitectura de conmutador específica.
P4 ofrece un alto grado de flexibilidad en el procesamiento de paquetes, lo que lo hace idóneo para implementar nuevos protocolos y funciones en conmutadores de red. También es compatible con un amplio conjunto de abstracciones de control y plano de datos, que pueden utilizarse para optimizar el rendimiento de los conmutadores y mejorar la programabilidad.
P4 ha ido ganando terreno en el sector, y varios grandes proveedores han invertido en su desarrollo. En 2016, la Open Networking Foundation (ONF) creó el P4 Language Consortium para promover la adopción de P4 y fomentar su desarrollo.