Yaren shirye-shirye na P4

Yaren shirye-shirye na P4
P4 harshe ne na shirye-shirye da aka ƙera don tsara ƙa'idodin fakiti. Ba kamar harshe na gaba ɗaya kamar C ko Python ba, P4 takamaiman harshe ne na yanki tare da ƙira da yawa da aka inganta don hanyar sadarwa.

P4 harshe ne na budaddiyar tushe mai lasisi da kulawa ta wata kungiya mai zaman kanta da ake kira P4 Language Consortium. Hakanan ana samun goyan bayan Open Networking Foundation (ONF) da Linux Foundation (LF), manyan ƙungiyoyin laima guda biyu don ayyukan sadarwar buɗe ido.
An fara ƙirƙirar harshen a cikin 2013 kuma an kwatanta shi a cikin takardar SIGCOMM CCR ta 2014 mai suna "Protocol Independent, Packet Routing Processor Programming."

Tun lokacin da aka kafa shi, P4 ya girma kuma ya samo asali sosai, da sauri ya zama ma'auni don kwatanta watsa fakiti ta na'urorin cibiyar sadarwa, ciki har da adaftan cibiyar sadarwa, masu sauyawa, da masu amfani da hanyar sadarwa.

"SDN ya canza masana'antar sadarwar, kuma P4 yana ɗaukar SDN zuwa mataki na gaba ta hanyar kawo shirye-shirye zuwa tsarin aiki," in ji Guru Parulkar, babban darektan Open Networking Foundation.

Rukunin injiniyoyi da masu bincike daga Google, Intel, Microsoft Research, Barefoot, Princeton da Stanford ne suka kirkiro yaren P4. Manufar ta kasance mai sauƙi: ƙirƙirar harshe mai sauƙi don amfani wanda mai haɓaka software zai iya koya a rana ɗaya kuma yayi amfani da shi don kwatanta daidai yadda ake aika fakiti a cikin cibiyoyin sadarwa.

Tun daga farkon, an tsara P4 don zama mai zaman kansa mai niyya (watau shirin da aka rubuta a cikin P4 zai iya haɗawa ba canzawa don gudana akan maƙasudi iri-iri kamar ASICs, FPGAs, CPUs, NPUs, da GPUs).

Har ila yau, harshe na ƙa'ida ne mai zaman kansa (watau shirin P4 zai iya kwatanta daidaitattun ka'idojin da ake da su ko kuma a yi amfani da su don ƙayyadaddun sabbin hanyoyin magance al'ada).

A cikin masana'antu, ana amfani da P4 don shirye-shiryen na'ura. Wataƙila a nan gaba ma'aunin Intanet-RFC da IEEE su ma za su haɗa da ƙayyadaddun P4.

Ana iya amfani da P4 don duka na'urorin da za a iya tsarawa da ƙayyadaddun ayyuka. Misali, ana amfani da shi don yin rikodin daidaitaccen yanayin sauya bututun a cikin Sauyawa Abstraction Interface (SAI) APIs da buɗaɗɗen tushen SOniC switch OS ke amfani da shi. Hakanan ana amfani da P4 a cikin aikin ONF Stratum don bayyana yanayin sauyawa a cikin na'urori da aka gyara daban-daban da kuma shirye-shirye.

A karon farko, kwatanta halayen sauyawa da adaftan cibiyar sadarwa yana ba ku damar ƙirƙirar ingantaccen tsarin aiwatarwa na gabaɗayan cibiyar sadarwa kafin turawa. Manyan masu samar da gajimare na iya gwadawa da kuma lalata hanyar sadarwa gaba ɗaya ta amfani da software, suna rage lokaci da tsadar gwajin hulɗar aiki a cikin lab ba tare da buƙatar kayan aiki masu tsada ba.

Ta amfani da P4, masu siyar da kayan aikin cibiyar sadarwa za su iya sa ran haɗin kai na gama gari a duk samfuran, ba da damar sake amfani da kayan aikin gwaji, sauƙaƙe ci gaban software na gudanarwa, da kuma tabbatar da haɗin gwiwa.

Tabbas, ana iya amfani da P4 don rubuta shirye-shiryen da ke bayyana sabbin hanyoyin sarrafa su gaba ɗaya. Misali, P4 ana amfani dashi sosai don na'urorin sadarwa da aunawa a cibiyoyin bayanai, masana'antu da cibiyoyin sadarwar masu bada sabis.

Al'ummar bincike ma sun tashi tsaye. Ƙungiyoyin bincike na hanyar sadarwar ilimi da yawa sun buga sabbin aikace-aikace masu kayatarwa dangane da shirye-shiryen P4, gami da daidaita nauyi, ka'idojin yarjejeniya, da mahimmin ƙima. An ƙirƙiri sabon tsarin tsara shirye-shirye, ƙirƙira tana motsawa daga kayan aiki zuwa software, yana barin yawancin ra'ayoyin da ba zato ba tsammani, sabbin dabaru da dabaru su fito.

Ƙungiyoyin masu haɓakawa sun ba da gudummawa mai mahimmanci ga haɓaka lambar, gami da masu tarawa, bututun mai, ƙirar ɗabi'a, APIs, tsarin gwaji, aikace-aikace, da ƙari. Kamfanoni irin su Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx, da ZTE sun sadaukar da masu haɓakawa; daga jami'o'i ciki har da BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass, da USI; da ayyukan budewa da suka hada da CORD, FD.io, OpenDaylight, ONOS, OvS, SAI da Stratum suna nuna gaskiyar cewa P4 aikin al'umma ne mai zaman kansa.

Yawan ƙarni na masu sarrafawa don yaren P4:

Yaren shirye-shirye na P4

Abubuwan da ake bukata

Yaren shirye-shirye na P4
Tun da an yi nufin yaren don gudanar da aikace-aikace, jerin buƙatu da zaɓuɓɓukan ƙira sun bambanta idan aka kwatanta da harsunan shirye-shirye na gaba ɗaya. Babban fasali na harshe sune:

  1. 'Yanci daga aiwatar da manufa;
  2. 'Yancin ka'idar (s) da aka yi amfani da su;
  3. Sake fasalin filin.

'Yanci daga aiwatar da manufa

An tsara shirye-shiryen P4 don aiwatar da masu zaman kansu, ma'ana ana iya haɗa su don nau'ikan injunan kisa daban-daban, kamar na'urori masu aiwatarwa gabaɗaya, FPGAs, tsarin-kan-kwakwalwa, masu sarrafa hanyar sadarwa, da ASICs. Waɗannan nau'ikan injuna daban-daban ana kiran su da maƙasudin P4, kuma kowane maƙasudi yana buƙatar mai tarawa don canza lambar tushen P4 zuwa ƙirar sauya manufa. Ana iya gina mai tarawa a cikin na'urar da aka yi niyya, software na waje, ko ma sabis na girgije. Saboda da yawa daga cikin ainihin maƙasudin shirye-shiryen P4 sun kasance don sauya fakiti mai sauƙi, ya zama ruwan dare a ji kalmar "canjin P4" kodayake "P4 target" ya fi dacewa.

'Yancin ƙa'idar (s) da aka yi amfani da ita

P4 mai cin gashin kansa ne na yarjejeniya. Wannan yana nufin cewa harshe ba shi da goyon bayan ɗan ƙasa don ƙa'idodin gama gari kamar IP, Ethernet, TCP, VxLAN ko MPLS. Madadin haka, mai tsara shirye-shirye na P4 ya bayyana tsarin rubutun kai da sunayen filayen da ake buƙata a cikin shirin, wanda kuma tsarin da aka haɗa da na'urar da aka yi niyya ke fassarawa da sarrafa su.

Sake fasalin filin

Yarjejeniyar 'yancin kai da ƙirar harshe mara ƙima suna ba da izini don sake daidaitawa - ya kamata maƙasudin P4 su iya canza sarrafa fakiti bayan an tura tsarin. An danganta wannan damar a al'adance tare da yin tuƙi ta hanyar na'urori masu mahimmanci na gaba ɗaya ko na'urori masu sarrafa hanyar sadarwa maimakon ƙayyadaddun ayyukan da'irori.

Ko da yake babu wani abu a cikin harshen da zai hana inganta aikin wani tsari na ƙayyadaddun ƙa'idodi, waɗannan haɓakawa ba su ganuwa ga marubucin harshe kuma zai iya rage sassaucin tsarin da manufofin da sake daidaita su.

Waɗannan halaye na harshe da farko waɗanda suka ƙirƙira shi ne suka shimfida su tare da mai da hankali kan yawaitar amfani da shi a cikin hanyoyin sadarwa.

An riga an yi amfani da harshen a cikin kamfanoni da yawa:

1) Cibiyoyin bayanai na hyperscale;

Kamfanin Tencent na kasar Sin shi ne kamfanin zuba jari mafi girma a duniya, kuma daya daga cikin manyan kamfanonin jari. Kamfanonin Tencent na kasar Sin da na sauran kasashen duniya, sun kware a fannoni daban-daban na sana'o'in fasahohin zamani, da suka hada da ayyukan Intanet daban-daban, da ci gaba a fannin fasahar kere-kere da kuma nishadantarwa na lantarki.

P4 da na'ura mai ba da hanya tsakanin hanyoyin sadarwa, fasaha ce ta ci-gaba da ake amfani da ita a cikin gine-ginen cibiyar sadarwa na kamfanin.

A matsayinsa na ɗaya daga cikin mafarin, Google yana alfaharin lura da saurin ɗaukar P4 a cikin masana'antar sadarwar da kuma ƙirar ƙirar cibiyar bayanai musamman.

2) Kamfanonin kasuwanci;

Goldman Sachs yana amfani da damar yin aiki tare da bude tushen al'umma da haɓaka ƙa'idodi na gama gari da mafita don haɓaka kayan aikin cibiyar sadarwa da samar da ingantattun mafita ga abokan ciniki.

3) Samfura;

Duk masana'antar sadarwar za su amfana daga yare kamar P4 wanda ke ba da ma'anar halayen turawa ta musamman. Cisco kuma ya yi imani da canja wurin layin samfuransa don amfani da wannan harshe.

Juniper Networks sun haɗa P4 da P4 Runtime a cikin samfura da yawa, kuma suna ba da damar shirye-shirye zuwa na'urar sarrafa Juniper da lambar software.

Ruijie Networks babban mai goyon bayan P4 ne da fa'idodin da yake kawowa ga cibiyoyin sadarwa. Tare da P4, kamfanin zai iya ƙirƙira da kuma isar da mafi kyawun mafita ga abokan ciniki da yawa.

4) Masu samar da sadarwa;

AT&T ya kasance farkon wanda ya karɓi P4, ɗaya daga cikin na farko da suka fara amfani da P4 don ayyana halayen da yake son gani a cikin hanyoyin sadarwarsa, da kuma amfani da na'urorin turawa na P4 akan hanyar sadarwarsa.

A Deutsche Telekom, ana amfani da yaren don ƙirƙirar ayyukan cibiyar sadarwar maɓalli a zaman wani ɓangare na shirin Access 4.0.

5) Semiconductor masana'antu;

Harshen ya ba da damar Barefoot don aiwatar da sabon tsari don isar da damar software zuwa jirgin saman hanyar sadarwa.

Xilinx ya kasance ɗaya daga cikin waɗanda suka kafa P4.org kuma yana da hannu sosai a cikin haɓaka harshen P4 kuma ya aiwatar da shi a cikin tsarin tsarin shirye-shirye na tushen FPGA don kayan aikin SmartNIC da NFV, yana sakin ɗaya daga cikin masu tarawa na farko na P416 a matsayin wani ɓangare na ƙirar SDNet.

6) Software.

VMware ya yi imanin cewa P4 yana haifar da gagarumin ƙarfi, ƙirƙira da al'umma waɗanda ke haifar da ma'ana da canji mai mahimmanci a cikin hanyar sadarwa. VMware ya kasance wani ɓangare na wannan motsi na masana'antu tun farkon, kamar yadda sabon raƙuman ƙididdigewa ke gudana ta hanyoyin tushen software waɗanda ke tsawaita damar ababen more rayuwa da aiwatar da shi a cikin sabbin samfuran.

Don haka, P4 yaren shirye-shirye ne mai zaman kansa kuma mai zaman kansa na ka'ida wanda masana'antu da masana kimiyya ke amfani da shi don keɓance halayyar fakiti a matsayin shiri, wanda kuma ana iya haɗa shi don manufa da yawa. A yau, abubuwan da ake hari sun haɗa da kayan aiki da masu sauya software, masu sauya hypervisor, NPUs, GPUs, FPGAs, SmartNICs da ASICs.

Babban fasalulluka na harshe suna faɗaɗa iyakokin aikace-aikacensa sosai kuma suna tabbatar da saurin aiwatar da shi a cikin gine-ginen cibiyar sadarwa.

Farawa

P4 aiki ne na buɗe, duk bayanan da suka dace suna kan gidan yanar gizon P4.org

hanyar haɗin yanar gizo https://github.com/p4lang, inda za ka iya samun misali code code da koyawa.

Fitar don Eclipse tare da tallafin P4, amma zamu iya ba da shawara P4 Studio daga Ba takalmi.

Yaren shirye-shirye na P4

Bari mu kalli manyan abubuwan da ke tattare da kernel:

Ma'anar Kanun Labarai - tare da taimakonsu, an ƙaddara masu kan layi.

Ma'anar taken ta ƙayyade:

  • bayanin tsarin fakiti da sunayen filin taken
  • kafaffen da m filayen izini

Alal misali

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;
}

Masu bincike - aikin su shine su karkatar da kanun labarai.

Misalin fassarori mai zuwa zai ƙayyade canjin yanayin na'ura daga yanayin farko zuwa ɗaya daga cikin jihohi biyu na ƙarshe:

Yaren shirye-shirye na 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;
        }
    }…
}

Tebur - ya ƙunshi jihohin injin da ke haɗa maɓallin mai amfani da ayyuka. Ayyuka - bayanin yadda ya kamata a sarrafa kunshin.

Teburan sun ƙunshi jihohi (an bayyana a matakin gudanarwa) don tura fakiti, bayyana sashin Match-Action

An daidaita fakiti da:

  • Daidai dace
  • Matsayin Prefix Mafi tsayi (LPM)
  • Daidaita sau uku (masking)

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

Dole ne a bayyana duk ayyukan da za a iya yi a cikin tebur a gaba.

Ayyuka sun ƙunshi lamba da bayanai. Bayanan sun fito daga matakin gudanarwa (misali adiresoshin IP/lambobin tashar jiragen ruwa). Lallai, ana iya ƙayyadadden abubuwan da ba su da madauki kai tsaye a cikin aikin, amma adadin umarni dole ne a iya tsinkaya. Don haka, ayyuka ba za su iya ƙunsar kowane madaukai ko maganganun sharadi ba.

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;
}

Match-Action modules - ayyuka don ƙirƙirar maɓallin bincike, bincika a cikin tebur, aiwatar da ayyuka.

Ana nuna misali na musamman na module a cikin adadi:

Yaren shirye-shirye na P4

Gudun sarrafawa - yana nuna tsarin da ake amfani da match-Action modules. Wannan shiri ne mai mahimmanci wanda ke bayyana babban matakin dabaru da jerin Match-Action. Gudun sarrafawa yana haɗa dukkan abubuwa ta hanyar ayyana matakin sarrafawa.

Abubuwan waje takamaiman abubuwa ne tare da ƙayyadaddun tsarin gine-gine da mu'amalar API. Misali, lissafin checksum, rejista, kirga, kirga, da sauransu.

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
}

Metadata - tsarin bayanai masu alaƙa da kowane fakitin.

Akwai nau'ikan metadata guda biyu:

  metadata na al'ada (tsari mara komai don duk fakiti)
    Kuna iya sanya duk abin da kuke so anan
    Akwai a ko'ina cikin bututun
    dace don amfani don dalilai na kanku, misali, don adana hash ɗin kunshin

  Metadata na ciki - gine-ginen ya samar
    Tashar shigar da bayanai, tashar fitarwa an ayyana su anan
    Tambarin lokaci lokacin da fakitin ya yi layi, zurfin layi
    multicast hash / multicast jerin gwano
    Fakitin fifiko, mahimmancin kunshin
    Ƙayyadaddun fitarwa na tashar jiragen ruwa (misali layin fitarwa)

P4 mai tarawa

P4 mai tarawa (P4C) yana haifar da:

  1. Lokacin gudu na jirgin sama
  2. API don sarrafa yanayin inji a cikin jirgin bayanai

Yaren shirye-shirye na P4

Misalin sauya software a cikin yaren P4

Ana iya zazzage lambobin tushe daga ma'ajiyar.

p4lang/p4c-bm: yana ƙirƙirar tsarin JSON don bmv2
p4lang/bmv2: sauya software wanda ke fahimtar tsarin bmv2 nau'in JSON

Hoton yana nuna zanen tsarin aikin:

Yaren shirye-shirye na P4

Manipulations tare da teburi, rajistar karatu, ƙididdiga:

  • 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>


Lambar tushe ta ƙunshi shirin simple_switch_CLI don dacewa da amfani da API sauya software.

Kuna iya saukar da wannan da sauran misalan daga ma'ajiyar.

Yaren shirye-shirye na P4

PS A farkon wannan bazara, Intel ya rattaba hannu kan wata yarjejeniya don siyan hanyoyin sadarwar Barefoot a ƙoƙarin saduwa da buƙatun masu amfani da Hyperscale Cloud cikin sauri. Kamar yadda Navin Shenoy (mataimakin shugaban kasa kuma babban manajan rukunin cibiyar bayanai a Intel Corporation) ya ce, wannan zai ba Intel damar samar da manyan ayyuka da dama ga abokan cinikin cibiyar bayanai.

A cikin ra'ayi na, kada mu manta cewa Intel jagora ne a cikin samar da kwakwalwan kwamfuta na FPGA kuma yana da kyakkyawan yanayin Quartus. Wannan yana nufin cewa muna iya tsammanin cewa tare da zuwan Intel, Barefoot ba kawai zai faɗaɗa layin samfurinsa ba, har ma Quartus da P4 Studio za su sami sabuntawa mai mahimmanci da ƙari ga layin Toffino da Toffino 2.

Babban memba na al'ummar P4 - kamfani Ƙungiyar Factor.

source: www.habr.com

Add a comment