Compania Intel ka hapur mjete që lejojnë krijimin e aplikacioneve të veta për përpunimin e paketave në ndërprerësit e Ethernet-it të programueshëm të serisë Tofino. Nën licencën Apache 2.0 është hapur kodi burimor i backend-it për kompilatorin p4c dhe komponentëve të mjedisit të zhvillimit Intel P4 Studio, siç janë drejtuesit, modeli i simulimit të ndërprerësit, serveri dhe klienti për protokollin BF Runtime. Për krijimin e aplikacioneve përdoret një gjuhë programimi e dedikuar, P4 (Programming Protocol-independent Packet Processors), e cila është e destinuar për përcaktimin e logjikës së përpunimit të paketave në pajisje rrjetesh, siç janë kartat e rrjetit, ndërprerësit, ruterat dhe firewall-ët.
Backend-i i publikuar lejon transmetimin e programeve në gjuhën P4 në një përfaqësim të përdorshëm për instalimin në ndërprerësit e serisë Intel Tofino. Kështu, përdoruesit e ndërprersëve mund të krijojnë aplikacione që zgjasin funksionalitetin e zakonshëm, ndryshojnë logjikën e funksionimit ose adaptojnë pajisjen sipas specifikave të rrjeteve të tyre.
Programet në gjuhën P4 kompilohet në përfaqësime për platforma të synuara, të cilat mund të jenë si harduerike (FPGA, ASIC të programueshëm), ashtu edhe softuerike (x86, BPF). Bashkë me kodin për instalim në sistemet e synuara, kompileri gjeneron runtime për menaxhimin e aplikacionit duke përdorur protokollet Protobuf/gRPC dhe API P4Runtime.
Logjika tipike e punës së programeve i përgjigjet klasifikimit të paketave sipas titujve të tyre dhe ekzekutimit të veprimeve mbi paketat e ardhshme, siç janë ridrejtimi, heqja, ndryshimi i TTL dhe zëvendësimi i fushave. Gjuha nuk është e lidhur me protokollet rrjet dhe, përveç mbështetjes të integruar për protokollet standarde, si IP, Ethernet, TCP dhe VxLAN, i jep zhvilluesve mundësinë për të përcaktuar çdo protokoll në lidhje me aplikacionet e kompiluara (duke bashkëngjitur përshkrime të formateve të titujve dhe fushave të protokolllit).

Përveç backend-it të publikuar për ndërprersit Intel Tofino, projekti P4 ofron një backend për kompilimin e aplikacioneve P4 në kod në gjuhën C, i cili pastaj mund të kompilohen në një format të përshtatshëm për ekzekutim në makinën virtuale eBPF brenda në kernelin e Linux. Projekti gjithashtu po zhvillon një simulator të hapur për switch, i cili mund të përdoret për të kryer eksperimentet në rrjetin virtual Mininet, si dhe një backend për kompaktimin e programeve P4 për simulatorin.
Burimi: opennet.ru
