Ulimi lokuhlela lwe-P4

Ulimi lokuhlela lwe-P4
I-P4 iwulimi lokuhlela oluklanyelwe ukuhlela imithetho yephakeji yomzila. Ngokungafani nolimi lwenhloso evamile olufana no-C noma i-Python, i-P4 iwulimi oluqondene nesizinda esinezinombolo eziningi zemiklamo elungiselelwe umzila wenethiwekhi.

I-P4 iwulimi lomthombo ovulekile olunelayisensi futhi olunakekelwa inhlangano engenzi nzuzo ebizwa ngokuthi i-P4 Language Consortium. Iphinde isekelwe yi-Open Networking Foundation (ONF) kanye ne-Linux Foundation (LF), izinhlangano ezimbili zezambulela ezinkulu zamaphrojekthi wokuxhumana nomthombo ovulekile.
Ulimi lwaqalwa ngo-2013 futhi lwachazwa ephepheni le-SIGCOMM CCR lango-2014 elinesihloko esithi β€œProtocol Independent, Packet Routing Processor Programming.”

Selokhu yasungulwa, i-P4 iye yakhula futhi yathuthuka ngokuphawulekayo, ngokushesha yaba indinganiso yokuchaza ukudluliswa kwamaphakethe ngamadivayisi enethiwekhi, okuhlanganisa ama-adaptha enethiwekhi, amaswishi, namarutha.

"I-SDN iguqule imboni yezokuxhumana, futhi i-P4 ithatha i-SDN ezingeni elilandelayo ngokuletha ukuhleleka komzila," kusho uGuru Parulkar, umqondisi omkhulu we-Open Networking Foundation.

Ulimi lwe-P4 ekuqaleni lwadalwa iqembu lonjiniyela nabacwaningi abavela kwa-Google, Intel, Microsoft Research, Barefoot, Princeton kanye naseStanford. Umgomo wawulula: dala ulimi olusebenziseka kalula umthuthukisi wesofthiwe angalufunda ngosuku futhi alusebenzise ukuchaza ngokunembile ukuthi amaphakethe athunyelwa kanjani kuwo wonke amanethiwekhi.

Kusukela ekuqaleni, i-P4 yayiklanyelwe ukuzimela (okungukuthi, uhlelo olubhalwe ku-P4 lungahlanganiswa lungashintshiwe ukuze lusebenze ezintweni ezihlosiwe ezifana nama-ASIC, ama-FPGA, ama-CPU, ama-NPU, nama-GPU).

Ulimi futhi luzimele ngephrothokholi (okungukuthi, uhlelo lwe-P4 lungachaza izivumelwano ezijwayelekile ezikhona noma lusetshenziswe ukucacisa izindlela ezintsha zokukhuluma ngokwezifiso).

Embonini, i-P4 isetshenziselwa ukuhlela amadivaysi. Mhlawumbe esikhathini esizayo amazinga e-Inthanethi-RFC kanye ne-IEEE azofaka nokucaciswa kwe-P4.

I-P4 ingasetshenziselwa kokubili amadivaysi asebenzayo ahlelekayo futhi angashintshi. Isibonelo, isetshenziselwa ukurekhoda ngokunembile ukuziphatha kwepayipi lokushintsha ku-Switch Abstraction Interface (SAI) APIs esetshenziswa umthombo ovulekile we-SONiC switch OS. I-P4 iphinde isetshenziswe kuphrojekthi ye-ONF Stratum ukuchaza ukuziphatha kokushintsha kumadivayisi ahlukahlukene angaguquki futhi ahlelekayo.

Ngokokuqala ngqa, ukuchaza ukuziphatha kwe-switch kanye nama-adaptha enethiwekhi kukuvumela ukuthi udale imodeli esebenzayo enembile yenethiwekhi yonke ngaphambi kokuthunyelwa. Abahlinzeki bamafu amakhulu bangahlola futhi balungise inethiwekhi ngokuphelele besebenzisa isofthiwe, benciphisa kakhulu isikhathi nezindleko zokuhlola ukusebenzisana elebhu ngaphandle kokudinga ihadiwe ebizayo.

Ngokusebenzisa i-P4, abathengisi bezinto zenethiwekhi bangalindela ukuziphatha okujwayelekile okuyisisekelo kuyo yonke imikhiqizo, okuvumela ukusetshenziswa kabusha kwengqalasizinda yokuhlola, ukwenza lula ukuthuthukiswa kwesofthiwe yokuphatha, futhi ekugcineni kuqinisekiswe ukusebenzisana.

Yiqiniso, i-P4 ingasetshenziswa ukubhala izinhlelo ezichaza izindlela ezintsha ngokuphelele zomzila. Isibonelo, i-P4 isetshenziswa kabanzi ku-telemetry kanye nezilinganiso ezikhungweni zedatha, amanethiwekhi ezinkampani kanye nabahlinzeki besevisi.

Umphakathi wocwaningo nawo ususukume phezulu. Amaqembu amaningana ahamba phambili ocwaningo lwenethiwekhi yezemfundo ashicilele izinhlelo zokusebenza ezintsha ezithokozisayo ezisuselwe ezinhlelweni ze-P4, okuhlanganisa ukulinganisa komthwalo, izivumelwano zokuvumelana, kanye nokulondolozwa kwenani elingukhiye. I-paradigm yokuhlela entsha iyadalwa, ukusungulwa okusha kuyasuka ku-hardware kuya ku-software, okuvumela imibono eminingi engalindelekile, emisha nehlakaniphile ukuthi ivele.

Umphakathi wonjiniyela wenze iminikelo ebalulekile ekuthuthukisweni kwekhodi, okuhlanganisa abahlanganisi, amapayipi, amamodeli okuziphatha, ama-API, izinhlaka zokuhlola, izinhlelo zokusebenza, nokuningi. Izinkampani ezifana ne-Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx, kanye ne-ZTE banabathuthukisi abazinikele; kusuka emanyuvesi ahlanganisa i-BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass, ne-USI; kanye namaphrojekthi omthombo ovulekile ahlanganisa i-CORD, i-FD.io, i-OpenDaylight, i-ONOS, i-OvS, i-SAI ne-Stratum igqamisa iqiniso lokuthi i-P4 iphrojekthi yomphakathi ezimele.

Isizukulwane esijwayelekile sezilawuli zolimi lwe-P4:

Ulimi lokuhlela lwe-P4

Amathemba ohlelo lokusebenza

Ulimi lokuhlela lwe-P4
Njengoba ulimi luhloselwe ukuqondisa izinhlelo zokusebenza, uhlu lwezidingo kanye nezinketho zokuklama zihlukile uma kuqhathaniswa nezilimi zokuhlela zenhloso evamile. Izici eziyinhloko zolimi yilezi:

  1. Ukuzimela ekusetshenzisweni okuhlosiwe;
  2. Ukuzimela kwephrothokholi esetshenzisiwe;
  3. Ukulungiseka kabusha kwenkundla.

Ukuzimela kusukela ekusetshenzisweni okuhlosiwe

Izinhlelo ze-P4 zenzelwe ukuqalisa ukusebenza ngokuzimela, okusho ukuthi zingahlanganiselwa izinhlobo eziningi zezinjini zokubulala, njengamaphrosesa enhloso ejwayelekile, ama-FPGA, ama-system-on-chips, ama-network processors, nama-ASIC. Lezi zinhlobo ezahlukene zemishini zaziwa ngokuthi yi-P4 targets, futhi okuhlosiwe ngakunye kudinga umhlanganisi ukuze aguqule ikhodi yomthombo ye-P4 ibe imodeli yokushintsha okuqondiwe. Umhlanganisi angakhelwa kudivayisi eqondiwe, isofthiwe yangaphandle, noma isevisi yamafu. Ngenxa yokuthi izinhloso eziningi zasekuqaleni zezinhlelo ze-P4 bekungokushintshwa kwephakethe okulula, kuvame kakhulu ukuzwa igama elithi "P4 switch" noma "ithagethi ye-P4" inembe kakhulu.

Ukuzimela kwephrothokholi esetshenzisiwe

I-P4 iyiphrothokholi ezimele. Lokhu kusho ukuthi ulimi alunakho ukwesekwa komdabu kwezivumelwano ezijwayelekile ezifana ne-IP, i-Ethernet, i-TCP, i-VxLAN noma i-MPLS. Esikhundleni salokho, umhleli we-P4 uchaza amafomethi kanhlokweni namagama enkambu yezivumelwano ezidingekayo ohlelweni, zona ezihunyushwa futhi zicutshungulwe uhlelo oluhlanganisiwe kanye nedivayisi eqondiwe.

Ukulungiseka kabusha kwenkundla

Ukuzimela kwephrothokholi kanye nemodeli yolimi olungacacile ivumela ukulungiseka kabushaβ€”okuqondiwe kwe-P4 kufanele kukwazi ukushintsha ukucutshungulwa kwephakethe ngemva kokukhishwa kwesistimu. Leli khono ngokwesiko lihlotshaniswa nokuzulazula ngamaphrosesa enhloso evamile noma amaphrosesa enethiwekhi kunokuba amasekhethi ahlanganisiwe asebenza ngokungaguquki.

Nakuba kungekho lutho olimini olungavimbela ukwenziwa kahle kokusebenza kwesethi ethile yezivumelwano, lokhu kulungiselelwa akubonakali kumbhali wolimi futhi kungagcina kunciphise ukuguquguquka kwesistimu nezinjongo kanye nokuhleleka kabusha kwazo.

Lezi zici zolimi ekuqaleni zabekwa abadali balo ngokugxila ekusetshenzisweni okubanzi kwengqalasizinda yenethiwekhi.

Ulimi seluvele lusetshenziswa ezinkampanini eziningi:

1) Izikhungo zedatha ye-Hyperscale;

Inkampani yaseShayina i-Tencent iyinkampani enkulu yokutshala imali emhlabeni futhi ingelinye lamafemu amakhulu kakhulu emali. Izinkampani ezingaphansi kwe-Tencent, eChina nakwamanye amazwe emhlabeni jikelele, zisebenza ngokukhethekile emikhakheni ehlukahlukene yebhizinisi lobuchwepheshe obuphezulu, okuhlanganisa nezinsizakalo ezihlukahlukene ze-inthanethi, intuthuko emkhakheni wezobunhloli bokwenziwa kanye nokuzijabulisa kwe-elekthronikhi.

I-P4 kanye nomzila ohlelekayo ubuchwepheshe obuthuthukisiwe obusetshenziswa ekwakhiweni kwenethiwekhi yenkampani.

Njengomunye wabasunguli, i-Google iyaziqhenya ngokuqaphela ukwamukelwa okusheshayo kwe-P4 embonini yezokuxhumana kanye nomklamo wezakhiwo wesikhungo sedatha ikakhulukazi.

2) Izinkampani zezentengiselwano;

I-Goldman Sachs ithatha ithuba lokusebenza nomphakathi wemithombo evulekile nokuthuthukisa izindinganiso ezivamile nezisombululo zokusungula ingqalasizinda yenethiwekhi nokuhlinzeka ngezixazululo ezingcono kumakhasimende.

3) Ukukhiqiza;

Yonke imboni yokuxhumana izozuza olimini olufana ne-P4 oluchaza ngokuhlukile ukuziphatha kokudlulisela phambili. I-Cisco futhi ikholelwa ekudluliseni imigqa yomkhiqizo wayo ukuze isebenzise lolu limi.

IJuniper Networks ifake i-P4 kanye ne-P4 Runtime emikhiqizweni eminingi, futhi inikeza ukufinyelela okuhleliwe kuphrosesa eshumekiwe yeJuniper kanye nekhodi yayo yesofthiwe.

I-Ruijie Networks ingumsekeli onamandla we-P4 kanye nezinzuzo ezilethayo kumanethiwekhi. Nge-P4, inkampani ingakha futhi ilethe izixazululo ezisezingeni eliphezulu kumakhasimende anhlobonhlobo.

4) Abahlinzeki bezokuxhumana;

I-AT&T yaba ngumamukeli wokuqala we-P4, ongomunye wabokuqala ukusebenzisa i-P4 ukuchaza ukuziphatha ebifuna ukukubona kumanethiwekhi ayo, nokusebenzisa imishini yokudlulisela ehlelekayo ye-P4 kunethiwekhi yayo.

KwaDeutsche Telekom, ulimi lusetshenziselwa ukukhombisa imisebenzi yenethiwekhi ebalulekile njengengxenye yohlelo lwe-Access 4.0.

5) Imboni ye-semiconductor;

Ulimi luvumele i-Barefoot ukuthi isebenzise ipharadigm entsha yokuletha amakhono esofthiwe endizeni yomzila wenethiwekhi.

U-Xilinx wayengomunye wabasunguli be-P4.org futhi wayebambe iqhaza ngenkuthalo ekuthuthukisweni kolimi lwe-P4 futhi walusebenzisa ezisekelweni ze-FPGA ezihlelekayo ze-SmartNIC ne-NFV hardware, ekhulula omunye wabadidiyeli bokuqala be-P416 njengengxenye yomklamo we-SDNet.

6) Isoftware.

I-VMware ikholelwa ukuthi i-P4 idala amandla amakhulu, izinto ezintsha kanye nomphakathi oqhuba uguquko oluphusile noludingekayo kunethiwekhi. I-VMware ibiyingxenye yalo mnyakazo wemboni kusukela ekuqaleni, njengoba igagasi elisha lokuqamba kabusha liqhutshwa izindlela ezisuselwe kwisoftware ezinweba amakhono engqalasizinda futhi ziyisebenzise emikhiqizweni yakamuva.

Ngakho-ke, i-P4 iwulimi lokuhlela oluzimele futhi oluzimele olusetshenziswa yimboni kanye nezifundiswa ukuchaza ngendlela ehlukile ukuziphatha komzila wamaphakethe njengohlelo, olungase luhlanganiselwe okuhlosiwe okuningi. Namuhla, okuhlosiwe kuhlanganisa ukushintsha kwehadiwe nesofthiwe, ukushintsha kwe-hypervisor, ama-NPU, ama-GPU, ama-FPGA, ama-SmartNIC nama-ASIC.

Izici eziyinhloko zolimi zandisa kakhulu ububanzi bokusetshenziswa kwalo futhi ziqinisekisa ukuqaliswa kwayo ngokushesha ekwakhiweni kwenethiwekhi.

Ukuqalisa

I-P4 iphrojekthi evulekile, yonke imininingwane efanele ikuwebhusayithi P4.org

Isixhumanisi senqolobane https://github.com/p4lang, lapho ungathola khona ikhodi yomthombo eyisibonelo kanye nezifundo.

I-Плагин ye-Eclipse ngokusekelwa kwe-P4, kodwa singancoma I-P4 Studio kusuka ku-Barefoot.

Ulimi lokuhlela lwe-P4

Ake sibheke izifinyezo eziyinhloko ze-kernel:

Ichaza Izihloko - ngosizo lwabo, izihloko zephrothokholi ziyanqunywa.

Incazelo kanhlokweni icacisa:

  • incazelo yamafomethi ephakethe namagama enkambu kanhlokweni
  • izinkambu ezivunyelwe neziguquguqukayo

Isibonelo

header Ethernet_h{
    bit<48>  dstAddr;
    bit<48>  srcAddr;
    bit<16>  etherType;
}

header IPv4_h{
    bit<4>  version;
    bit<4>  ihl;
    bit<8>  diffserv;
    bit<16>  totalLen;
    bit<16>  identification;
    bit<3>  flags;
    bit<13>  fragOffset;
    bit<8>  ttl;
    bit<8>  protocol;
    bit<16>  hdrChecksum;
    bit<32>  srcAddr;
    bit<32>  dstAddr;
    varbit<320>  options;
}

Abahlaziyi β€” umsebenzi wabo ukuhlaziya izihloko zezindaba.

Isibonelo esilandelayo somhlahleli sizonquma ukuguqulwa kwesimo sokugcina somshini ukusuka esimweni sokuqala ukuya kwesinye sezimo ezimbili zokugcina:

Ulimi lokuhlela lwe-P4

parser MyParser(){
 state  start{transition parse_ethernet;}
 state  parse_ethernet{
    packet.extract(hdr.ethernet);
    transition select(hdr.ethernet.etherType){
        TYPE_IPV4: parse_ipv4;
        default: accept;
        }
    }…
}

Amathebula - ziqukethe izimo zomshini ezixhumanisa okhiye bomsebenzisi nezenzo. ДСйствия - incazelo yokuthi iphakethe kufanele lisetshenziswe kanjani.

Amathebula aqukethe izifunda (ezichazwe ezingeni lokuphatha) zokudlulisela iphakethe, achaza iyunithi yesenzo sokufanisa

Amaphakethe afaniswa:

  • Ukufana ncamashi
  • Okufanayo Okude Kakhulu Kwesiqalo (LPM)
  • Ukufanisa kathathu (ukufihla)

table ipv4_lpm{
    reads{
        ipv4.dstAddr: lpm;
    } actions {
        forward();
    }
}

Zonke izenzo ezingenzeka kufanele zichazwe kumathebula kusengaphambili.

Izenzo zihlanganisa ikhodi nedatha. Idatha ivela ezingeni lokuphatha (isb. amakheli e-IP/izinombolo zembobo). Ama-primitives athile, angenalophu angacaciswa ngokuqondile esenzweni, kodwa inani lemiyalelo kufanele libikezelwe. Ngakho-ke, izenzo azikwazi ukuqukatha izihibe noma izitatimende ezinemibandela.

action ipv4_forward(macAddr_t dstAddr, egressSpec_t port){
    standard_metadata.egress_spec = port;
    hdr.ethernet.srcAddr = hdr.ethernet.dstAddr;
    hdr.ethernet.dstAddr = dstAddr;
    hdr.ipv4.ttl = hdr.ipv4.ttl - 1;
}

Amamojula wesenzo sokufanisa β€” izenzo zokudala ukhiye wokusesha, sesha etafuleni, wenze izenzo.

Isibonelo esijwayelekile semojuli siboniswa emfanekisweni:

Ulimi lokuhlela lwe-P4

Lawula ukugeleza β€” ikhombisa indlela okusetshenziswa ngayo amamojula we-Match-Action. Lolu wuhlelo olubalulekile oluchaza ingqondo yezinga eliphezulu nokulandelana kwesenzo sokufanisa. Ukugeleza kokulawula kuxhumanisa zonke izinto ngokuchaza izinga lokulawula.

Izinto zangaphandle izinto ezithile ezinezakhiwo ezichazwe ngokucacile nezixhumi ezibonakalayo ze-API. Isibonelo, ukubala kwesheke, amarejista, izinto zokubala, izinto zokubala, njll.

extern register{
    register(bit<32> size);
    void read(out T result, in bit<32> index);
    void write(in bit<32> index, in T value);
}

extern Checksum16{
  Checksum16();    //constructor
  void clear();    //prepare unit for computation
  void update(in T data);    //add data to checksum
  void remove(in T data);  /remove data from existing checksum
  bit<16> get(); //get the checksum for the data added since last clear
}

Imethadatha - izakhiwo zedatha ezihlobene nephakheji ngayinye.

Kunezinhlobo ezi-2 zemethadatha:

  Imethadatha yangokwezifiso (isakhiwo esingenalutho sawo wonke amaphakheji)
    Ungabeka noma yini oyifunayo lapha
    Itholakala kulo lonke ipayipi
    elungele ukusetshenziselwa izinjongo zakho, isibonelo, ukugcina i-hashi yephakheji

  Imethadatha yangaphakathi - ihlinzekwa yisakhiwo
    Imbobo yokokufaka, imbobo yokuphumayo ichazwa lapha
    Isitembu sesikhathi lapho iphakethe likumugqa, ukujula komugqa
    Ulayini we-multicast hash / multicast
    Okubalulekile kwephakheji, ukubaluleka kwephakheji
    Ukucaciswa kwembobo yokuphuma (isb. ulayini ophumayo)

I-P4 compiler

I-P4 compiler (P4C) ikhiqiza:

  1. Isikhathi sokusebenza sendiza yedatha
  2. I-API yokuphatha isimo somshini endizeni yedatha

Ulimi lokuhlela lwe-P4

Isibonelo sokushintshwa kwesoftware ngolimi lwe-P4

Amakhodi omthombo angalandwa endaweni yokugcina.

p4lang/p4c-bm: idala ukucushwa kwe-JSON kwe-bmv2
p4lang/bmv2: iswishi yesofthiwe eqonda ukulungiselelwa kwenguqulo ye-bmv2 ye-JSON

Umfanekiso ubonisa umdwebo wokuhlanganiswa kwephrojekthi:

Ulimi lokuhlela lwe-P4

Ukukhohlisa ngamatafula, amarejista okufunda, izinto zokubala:

  • table_set_default <table name> <action name> <action parameters>
  • table_add <table name> <action name> <match fields> => <action
    parameters> [priority]
  • table_delete <table name> <entry handle>


Ikhodi yomthombo iqukethe uhlelo olulula_switch_CLI ukuze kusetshenziswe kalula i-API yokushintsha isofthiwe.

Ungalanda lokhu nezinye izibonelo endaweni yokugcina.

Ulimi lokuhlela lwe-P4

PS Ekuqaleni kwaleli hlobo, i-Intel isayine isivumelwano sokuthola i-Barefoot Networks emzamweni wokuhlangabezana ngokushesha nezidingo zabasebenzisi be-Hyperscale Cloud. Njengoba u-Navin Shenoy (iphini likamongameli omkhulu kanye nomphathi jikelele we-Data Center Group e-Intel Corporation) asho, lokhu kuzovumela i-Intel ukuthi inikeze imisebenzi emikhulu namathuba engeziwe kumakhasimende esikhungo sedatha.

Ngokombono wami siqu, akufanele sikhohlwe ukuthi i-Intel ingumholi ekukhiqizeni ama-chips e-FPGA futhi inendawo enhle kakhulu ye-Quartus. Lokhu kusho ukuthi singalindela ukuthi ngokufika kwe-Intel, i-Barefoot ngeke nje yandise umugqa womkhiqizo wayo, kodwa futhi i-Quartus ne-P4 Studio izothola izibuyekezo ezibucayi nezengezo kulayini we-Toffino ne-Toffino 2.

Ilungu elisemthethweni lomphakathi we-P4 - inkampani iqembu lesici.

Source: www.habr.com

Engeza amazwana