Inteli ettevõte on avatanud tööriistakomplekti, mis võimaldab luua kohandatud rakendusi pakettide töötlemiseks Intelli Tofino seeria programmeeritavates Etherneti kommutaatorites. Apache 2.0 litsentsi all on avatud p4c kompilaatori tagakoodi ja arenduskeskkonna Intel P4 Studio komponentide, nagu draiverid, kommutaatori simuleerimismudeli, BF Runtime protokolli serveri ja kliendi lähtekood. Rakenduste loomisel kasutatakse P4 (Programming Protocol-independent Packet Processors) aineteadlikku programmeerimiskeelt, mis on mõeldud pakettide töötlemise loogika määratlemiseks võrgu seadmetes, nagu võrguadapterid, kommutaatorid, marsruuterid ja tulemüürid.
Avalikustatud tagakood võimaldab P4 keeles kirjutatud programme tõlkida esitamiseks, mis sobib Intel Tofino seeria kommutaatoritele installeerimiseks. Tänu sellele saavad kommutaatori kasutajad luua rakendusi, mis laiendavad seadme algset funktsionaalsust, muudavad selle tööloogikat või kohandavad seadet nende võrkude eripäradega.
P4 keele programmid kompileeritakse sihtplatvormide esitluseks, mis võivad olla nii riistvaralised (FPGA, programmeeritavad ASIC-id) kui ka tarkvaralised (x86, BPF). Koos koodiga sihtsüsteemidesse installimiseks genereerib kompilaator rakenduse haldamiseks runtime'i, kasutades Protobuf/gRPC protokolle ja P4Runtime API-t.
Tüüpiline programmiloogika keskendub pakettide klassifitseerimisele nende päiste järgi ja tegevuste tegemisele sissetulevate paketiga, nagu ümbersuunamine, kõrvaleheitmine, TTL-i muutmine ja väljade asendamine. Keel ei pruugi olla seotud võrguprotokollidega ning seetõttu pakub arendajatele võimalust määratleda mis tahes protokollide seosed kompileeritavate rakendustega (arendaja lisab päiste ja protokolli väljade formaatide kirjeldused).

Lisaks avalikustatud infrastruktuurile Intel Tofino lülititele pakub P4 projekt ka infrastruktuuri P4 rakenduste kompileerimiseks C keeles, mida saab seejärel kompileerida täitmiseks sobivasse formaati. virtuaalmasinas eBPF Linuxi tuumas. Projekte arendatakse ka avatud lüliti simulaatorit, mida saab kasutada katsete läbiviimiseks virtuaalses Mininet võrgus ja P4-programmide kompileerimise tagaplaati simulaatori jaoks.
Allikas: opennet.ru
