Kompania Intel hapën një mjet, që lejon krijimin e aplikacioneve të veta për përpunimin e paketave në përswitch-et Ethernet të serisë Tofino. Nën licencën Apache 2.0, është hapur kodi burimor i backend-it për kompiluesin p4c dhe komponenteve të mjedisit të zhvillimit Intel P4 Studio, siç janë driverat, modeli i simulimit të switch-it, serveri dhe klienti për protokollin BF Runtime. Për krijimin e aplikacioneve përdoret gjuha e programimit P4 (Programming Protocol-independent Packet Processors), e cila është e destinuar për të përcaktuar logjikën e përpunimit të paketave në pajisje rrjetesh, si karta rrjeti, switch-e, router-e dhe firewalls.
Backend-i i publikuar lejon transmetimin e programeve në gjuhën P4 në një përfaqësim, i përshtatshëm për instalim në switch-et e serisë Intel Tofino. Falë kësaj, përdoruesit e switch-eve mund të krijojnë aplikacione që zgjasin funksionet standarde, ndryshojnë logjikën e funksionimit ose adaptojnë pajisjen në specifikën e rrjeteve të tyre.
Programet e shkruara në gjuhën P4 kompilohet në përfaqësime për platformat përkatëse, që mund të jenë si harduerike (FPGA, ASIC të programueshëm) ashtu edhe softuerike (x86, BPF). Së bashku me kodin për instalimin në sistemet që janë objektiv, kompilatori gjeneron runtime për menaxhimin e aplikacionit duke përdorur protokollet Protobuf/gRPC dhe API P4Runtime.
Logjika standarde e funksionimit të programeve përbëhet nga klasifikimi i paketeve sipas titujve të tyre dhe ekzekutimi i veprimeve mbi paketat hyrëse, të tilla si ridrejtimi, heqja, ndryshimi i TTL dhe zëvendësimi i fushave. Gjuha nuk është e lidhur me protokollet rrjetike dhe në vend të mbështetjes së ndërtuar për protokolle standarde, si IP, Ethernet, TCP dhe VxLAN, ofron zhvilluesve mundësinë të përcaktojnë protokolle të çdo lloji që lidhen me aplikacionet që kompilohen (zhvilluesi ngjit përshkrimin e formateve të titujve dhe fushave të protokollit).

Përveç backend-it të publikuar për kalimtarët Intel Tofino, projekti P4 ofron një backend për kompilimin e aplikacioneve P4 në kodin në gjuhën C, i cili më pas mund të kompilohet në një format të përshtatshëm për ekzekutim në makinën virtuale eBPF brenda në bërthamën Linux. Projekti gjithashtu zhvillon një simulator të hapësirës së ndërlidhjes, i cili mund të përdoret për të kryer eksperimente në rrjetin virtual Mininet, dhe një backend për kompilirimin e programeve P4 për simulatorin.
Burimi: opennet.ru
