Intel opened tools that allows you to create its own packages processing applications In the programmable Ethernet-Commutrators of the series tofino < /a>. Under the Apache 2.0 license, the source code backeda to the compiler p4c and components of the development environment intel p4 studio such as drivers, model Simulations of the communicator, server and client for the BF Runtime Protocol. To create applications, an objective-oriented programming language is used p4 (programming protocol-independent Packet Processors), designed to determine the logic of packet processing in network devices, such as Network maps, switches, routers and inter -sewn screens.
The published backend allows you to broadcast programs in P4 in the presentation, suitable for installing Intel Tofino series on switches. Thanks to this, users of switches can create applications that expand the standard functionality that change the logic of work or adapt the device to the specifics of their networks.
P4 programs are compiled in the ideas for target platforms, which can be both hardware (FPGA, programmable ASIC) and software (X86, BPF). Together with the code for installation on target systems, the compiler generates Runtime to control the application using protocols Protobuf/GRPC and API p4runtime .
. The typical logic of the programs is reduced to the classification of packages according to their headlines and the performance of actions on incoming packages, such as redirecting, discarding, changing TTLs and replacing fields. The language is not tied to network protocols and instead of sewn support for typical protocols, such as IP, Ethernet, TCP and VXLAN, provides the developers with the ability to determine any protocols in binding to compiled applications (the developer attaches a description of the formats and protocol fields).
In addition to the published backend for the Intel Tofino switches P4 > Bacand for compilation of P4-applications in the code in the language of SI, which can then be compiled in the format suitable for execution in the EBPF virtual machine inside the Linux nucleus. The project also develops open the switch simulator , which can be used to conduct experiments in the virtual network mininet , and backend for compilation P4-programs for the simulator.