Intel heeft een toolkit geopend waarmee eigen applicaties voor pakketverwerking kunnen worden gemaakt in de programmeerbare Ethernet-switches van de Tofino-serie. Onder de Apache 2.0-licentie is de broncode van de backend voor de p4c-compiler en componenten van de Intel P4 Studio-ontwikkelomgeving openbaar gemaakt, zoals stuurprogramma's, een simulatiemodel van de switch, en een server en client voor het BF Runtime-protocol. Voor het creƫren van applicaties wordt de objectgerichte programmeertaal P4 (Programming Protocol-independent Packet Processors) gebruikt, die bedoeld is voor het definiƫren van de logica voor pakketverwerking in netwerkinrichtingen zoals netwerkkaarten, switches, routers en firewalls.
De gepubliceerde backend stelt gebruikers in staat om programma's in de P4-taal te transformeren naar een weergave die geschikt is voor installatie op switches van de Intel Tofino-serie. Hierdoor kunnen gebruikers van switches applicaties maken die de standaardfunctionaliteit uitbreiden, de logica van de werking wijzigen of het apparaat aanpassen aan de specifieke kenmerken van hun netwerken.
Programma's in de P4-taal worden gecompileerd naar representaties voor doelplatforms, die zowel hardwarematig (FPGA, programmeerbare ASIC) als softwarematig (x86, BPF) kunnen zijn. Samen met de code voor installatie op de doel systemen genereert de compiler een runtime voor het beheer van de applicatie met behulp van de Protobuf/gRPC-protocollen en de P4Runtime-API.
De typische logica van de programma's bestaat uit het classificeren van pakketten op basis van hun headers en het uitvoeren van acties op binnenkomende pakketten, zoals doorsturen, weggooien, TTL aanpassen en velden vervangen. De taal is niet verbonden aan netwerktechnologieƫn en biedt in plaats van ingebouwde ondersteuning voor standaardprotocols zoals IP, Ethernet, TCP en VxLAN ontwikkelaars de mogelijkheid om elk protocol te definiƫren in de context van de te compileren applicaties (de ontwikkelaar hecht een beschrijving van de formaten van headers en protocollaveld toe).

Naast de gepubliceerde backend voor de Intel Tofino-switches biedt het P4-project een backend voor het compileren van P4-applicaties naar C-code, die vervolgens kan worden gecompileerd naar een formaat dat geschikt is voor uitvoering in een virtuele machine eBPF binnen de Linux-kernel. Het project ontwikkelt ook een open simulator voor switches, die kan worden gebruikt voor het uitvoeren van experimenten in het virtuele netwerk Mininet, en een backend voor het compileren van P4-programma's voor de simulator.
Bron: opennet.ru
