P4 teanga cláir

P4 teanga cláir
Is teanga ríomhchláraithe é P4 atá deartha chun rialacha ródaithe paicéid a ríomhchlárú. Murab ionann agus teanga ilchuspóireach ar nós C nó Python, is teanga a bhaineann go sonrach leis an bhfearann ​​​​é P4 le roinnt dearaí optamaithe le haghaidh ródú líonra.

Is teanga foinse oscailte é P4 atá ceadúnaithe agus á chothabháil ag eagraíocht neamhbhrabúis ar a dtugtar Cuibhreannas Teangacha P4. Tacaíonn an Fhondúireacht Líonraithe Oscailte (ONF) agus an Fondúireacht Linux (LF) leis freisin, dhá cheann de na scátheagraíochtaí is mó do thionscadail líonraithe foinse oscailte.
Ceapadh an teanga ar dtús in 2013 agus rinneadh cur síos uirthi i bpáipéar CCR SIGCOMM 2014 dar teideal “Protocol Independent, Packet Routing Processor Programming”.

Ó bunaíodh é, tá fás agus forbairt easpónantúil ag P4, agus tháinig sé go tapa ina chaighdeán chun cur síos a dhéanamh ar tharchur paicéid ag gléasanna líonra, lena n-áirítear oiriúntóirí líonra, lasca agus ródairí.

“D’athraigh SDN an tionscal líonraithe, agus tógann P4 SDN go dtí an chéad leibhéal eile trí in-ríomhchláraitheacht a thabhairt chuig an ródú,” a dúirt Guru Parulkar, stiúrthóir feidhmiúcháin an Fhorais Líonrú Oscailte.

Grúpa innealtóirí agus taighdeoirí ó Google, Intel, Microsoft Research, Barefoot, Princeton agus Stanford a chruthaigh an teanga P4 ar dtús. Bhí an sprioc simplí: teanga éasca le húsáid a chruthú a d’fhéadfadh forbróir bogearraí a fhoghlaim in aon lá amháin agus a úsáid chun cur síos cruinn a dhéanamh ar an gcaoi a seoltar paicéid thar líonraí.

Ón tús, dearadh P4 le bheith neamhspleách ar sprice (i.e. d’fhéadfaí clár atá scríofa in P4 a chur le chéile gan athrú chun é a rith ar raon leathan spriocanna ar nós ASICs, FPGAs, CPUs, NPUs, agus GPUs).

Tá an teanga neamhspleách ar phrótacal freisin (i.e. is féidir le clár P4 cur síos a dhéanamh ar phrótacail chaighdeánacha atá ann cheana nó í a úsáid chun modhanna seolta saincheaptha nua a shonrú).

I dtionscal, úsáidtear P4 le haghaidh ríomhchlárú feiste. B'fhéidir go n-áireofar sonraíocht P4 freisin i gcaighdeáin Internet-RFC agus IEEE sa todhchaí.

Is féidir P4 a úsáid le haghaidh feistí feidhm ríomhchláraithe agus seasta araon. Mar shampla, úsáidtear é chun iompar píblíne lasc a thaifeadadh go cruinn sna APIanna Comhéadan Astarraingthe Lasc (SAI) a úsáideann an lasc OS foinse oscailte SONiC. Úsáidtear P4 freisin i dtionscadal ONF Stratum chun cur síos a dhéanamh ar iompraíocht aistrithe thar raon de ghléasanna seasta agus in-ríomhchláraithe.

Don chéad uair, ag cur síos ar iompar an lasc agus adapters líonra ligeann duit a chruthú samhail inrite cruinn den líonra iomlán roimh imscaradh. Is féidir le soláthraithe móra scamall an líonra a thástáil agus a dhífhabhtú go hiomlán ag baint úsáide as bogearraí, rud a laghdóidh go mór am agus costas na tástála idir-inoibritheachta sa saotharlann gan crua-earraí costasacha a bheith ag teastáil.

Trí úsáid a bhaint as P4, is féidir le díoltóirí trealaimh líonra a bheith ag súil le hiompraíocht bhunúsach choiteann ródaithe ar fud na dtáirgí go léir, rud a cheadaíonn athúsáid bonneagair tástála, a shimplíonn forbairt bogearraí bainistíochta, agus ar deireadh thiar chun idir-inoibritheacht a áirithiú.

Ar ndóigh, is féidir R4 a úsáid chun ríomhchláir a scríobh a chuireann síos ar bhealaí iomlána nua le ródú. Mar shampla, úsáidtear P4 go forleathan le haghaidh teiliméadrachta agus tomhais in ionaid sonraí, líonraí fiontair agus soláthraithe seirbhíse.

Tá méadú tagtha ar an bpobal taighde freisin. D'fhoilsigh roinnt grúpaí taighde líonraithe acadúla mór le rá feidhmchláir spreagúla nua bunaithe ar chláir P4, lena n-áirítear cothromú ualaigh, prótacail chomhthoil, agus taisceadh eochairluacha. Tá paraidím nua ríomhchlárúcháin á chruthú, tá an nuálaíocht ag bogadh ó chrua-earraí go bogearraí, rud a ligeann do go leor smaointe nua agus seiftiúla gan choinne teacht chun cinn.

Chuir an pobal forbróirí go mór le forbairt cód, lena n-áirítear tiomsaitheoirí, píblínte, samhlacha iompraíochta, APIanna, creataí tástála, feidhmchláir, agus níos mó. Tá forbróirí tiomnaithe ag cuideachtaí ar nós Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx, agus ZTE; ó ollscoileanna lena n-áirítear BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass, agus USI; agus tionscadail foinse oscailte lena n-áirítear CORD, FD.io, OpenDaylight, ONOS, OvS, SAI agus Stratum béim ar an bhfíric gur tionscadal pobail neamhspleách é P4.

Giniúint tipiciúil rialtóirí don teanga P4:

P4 teanga cláir

Ionchais iarratais

P4 teanga cláir
Ós rud é go bhfuil an teanga ceaptha le haghaidh feidhmchláir ródaithe, tá an liosta riachtanas agus roghanna dearaidh difriúil i gcomparáid le teangacha ríomhchláraithe ginearálta. Is iad príomhghnéithe na teanga:

  1. Neamhspleáchas ó chur i bhfeidhm sprice;
  2. Neamhspleáchas an phrótacail/na bprótacail a úsáideadh;
  3. Athchumraitheacht réimse.

Neamhspleáchas ó chur i bhfeidhm sprice

Tá cláir P4 deartha le bheith neamhspleách ar chur i bhfeidhm, rud a chiallaíonn gur féidir iad a thiomsú le haghaidh go leor cineálacha éagsúla inneall forghníomhaithe, mar shampla próiseálaithe ilchuspóireacha, FPGAanna, sceallóga córais, próiseálaithe líonra, agus ASICanna. Tugtar spriocanna P4 ar na cineálacha éagsúla meaisíní seo, agus éilíonn gach sprioc tiomsaitheoir chun an cód foinse P4 a thiontú ina mhúnla lasc sprice. Is féidir an tiomsaitheoir a chur isteach sa spriocghléas, bogearraí seachtracha, nó fiú seirbhís scamall. Toisc go raibh go leor de na bunspriocanna do chláir P4 le haghaidh aistriú simplí paicéad, tá sé an-choitianta an téarma "lasc P4" a chloisteáil cé go bhfuil "sprioc P4" níos cruinne.

Neamhspleáchas an phrótacail/na bprótacail a úsáideadh

Tá P4 neamhspleách ar phrótacal. Ciallaíonn sé seo nach bhfuil tacaíocht dhúchais ag an teanga do phrótacail choitianta ar nós IP, Ethernet, TCP, VxLAN nó MPLS. Ina áit sin, cuireann an ríomhchláraitheoir P4 síos ar fhormáidí ceanntásca agus ainmneacha réimse na bprótacal riachtanach sa chlár, a ndéantar iad a léirmhíniú agus a phróiseáil ag an gclár tiomsaithe agus ag an ngléas sprice.

Athchumraitheacht réimse

Ceadaíonn an tsamhail neamhspleáchais phrótacail agus teanga teibí ath-chumraitheacht - ba cheart go mbeadh spriocanna P4 in ann próiseáil paicéid a athrú tar éis an córas a úsáid. Go traidisiúnta bhí baint ag an gcumas seo le ródú trí phróiseálaithe ilfheidhme nó próiseálaithe líonra seachas trí chiorcaid chomhtháite le feidhm sheasta.

Cé nach bhfuil aon rud sa teanga a chuirfeadh cosc ​​​​ar bharrfheabhsú feidhmíochta sraith áirithe prótacal, tá na huasmhéaduithe sin dofheicthe ag an údar teanga agus is féidir leo solúbthacht an chórais agus na spriocanna agus a n-athchumraitheacht a laghdú ar deireadh thiar.

Ba iad na cruthaitheoirí a leag na tréithe seo den teanga síos ar dtús agus díríodh ar a húsáid fhorleathan i mbonneagar líonra.

Tá an teanga in úsáid cheana féin i go leor cuideachtaí:

1) ionaid sonraí Hyperscale;

Is é an chuideachta Síneach Tencent an chuideachta infheistíochta is mó ar domhan agus ceann de na gnólachtaí caipitil fiontair is mó. Déanann fochuideachtaí Tencent, sa tSín agus i dtíortha eile ar fud an domhain, speisialtóireacht i réimsí éagsúla gnó ardteicneolaíochta, lena n-áirítear seirbhísí Idirlín éagsúla, forbairtí i réimse na hintleachta saorga agus na siamsaíochta leictreonaí.

Is ardteicneolaíochtaí iad P4 agus ródú in-ríomhchláraithe a úsáidtear in ailtireacht líonra na cuideachta.

Mar cheann de na tionscnóirí, tá Google bródúil as a thabhairt faoi deara go nglactar go tapa le P4 sa tionscal líonraithe agus i ndearadh ailtireachta ionaid sonraí go háirithe.

2) Cuideachtaí tráchtála;

Baineann Goldman Sachs leas as oibriú leis an bpobal foinse oscailte agus ag forbairt comhchaighdeáin agus réitigh chun bonneagar líonra a nuáil agus réitigh níos fearr a sholáthar do chliaint.

3) Táirgeadh;

Bhainfeadh an tionscal líonraithe ar fad leas as teanga cosúil le P4 a shainíonn go huathúil iompar seolta. Creideann Cisco freisin a línte táirge a aistriú chun an teanga seo a úsáid.

Chuir Juniper Networks P4 agus P4 Runtime san áireamh i roinnt táirgí, agus soláthraíonn sé rochtain ríomhchláraithe ar phróiseálaí leabaithe Juniper agus a chód bogearraí.

Tá Ruijie Networks ina thacadóir láidir do P4 agus na buntáistí a thugann sé do líonraí. Le P4, is féidir leis an gcuideachta réitigh is fearr sa rang a chruthú agus a sheachadadh do raon leathan custaiméirí.

4) Soláthraithe teileachumarsáide;

Ghlac AT&T go luath le P4, ceann de na chéad daoine a d’úsáid P4 chun an t-iompar a bhí sé ag iarraidh a fheiceáil ina líonraí a shainiú, agus chun gléasanna cur ar aghaidh in-ríomhchláraithe P4 a úsáid ar a líonra.

Ag Deutsche Telekom, úsáidtear an teanga chun príomhfheidhmeanna líonra a fhréamhshamhlú mar chuid den chlár Access 4.0.

5) Tionscal leathsheoltóra;

Chuir an teanga ar chumas Barefoot paraidím nua a chur i bhfeidhm chun cumais bogearraí a sheachadadh chuig an eitleán ródaithe líonra.

Bhí Xilinx ar cheann de bhunaitheoirí P4.org agus bhí baint ghníomhach aige le forbairt na teanga P4 agus chuir sé i bhfeidhm é ina ardáin in-ríomhchláraithe bunaithe ar FPGA le haghaidh crua-earraí SmartNIC agus NFV, ag scaoileadh ceann de na chéad tiomsaitheoirí P416 mar chuid de dhearadh SDNet.

6) Bogearraí.

Creideann VMware go gcruthaíonn P4 fuinneamh, nuálaíocht agus pobal iontach atá ag tiomáint claochlú brí agus riachtanach sa líonra. Tá VMware mar chuid den ghluaiseacht tionscail seo ó thús, mar go bhfuil tonn nua nuálaíochta á dtiomáint ag cineálacha cur chuige atá bunaithe ar bhogearraí a leathnaíonn cumas bonneagair agus a chuireann i bhfeidhm é sna táirgí is déanaí.

Mar sin, is teanga ríomhchlárúcháin sprioc-neamhspleách agus neamhspleách ar phrótacal í P4 a úsáideann an tionscal agus an saol acadúil chun iompraíocht ródaithe paicéid a shainiú mar chlár, ar féidir é a thiomsú le haghaidh spriocanna iolracha. Sa lá atá inniu ann, áirítear ar na spriocanna lasca crua-earraí agus bogearraí, lasca hypervisor, NPUnna, GPUanna, FPGAanna, SmartNICs agus ASICanna.

Leathnaíonn príomhghnéithe na teanga raon feidhme a iarratais go suntasach agus cinntíonn sé go gcuirtear i bhfeidhm go tapa é in ailtireachtaí líonra.

Ag Tosú

Is tionscadal oscailte é P4, tá gach faisnéis ábhartha ar an suíomh Gréasáin p4.org

Nasc stórtha https://github.com/p4lang, áit ar féidir leat cód foinse samplach agus ranganna teagaisc a fháil.

Breiseán le haghaidh Eclipse le tacaíocht P4, ach is féidir linn a mholadh Stiúideo P4 ó cosnochta.

P4 teanga cláir

Breathnaímid ar na príomh-astarraingtí den eithne:

Ceanntásca a Shainmhíniú — lena gcabhair, socraítear ceanntásca prótacail.

Sonraíonn sainmhíniú an chinnteidil:

  • cur síos ar fhormáidí paicéid agus ainmneacha páirce ceanntásca
  • réimsí ceadaithe seasta agus athraitheacha

Mar shampla

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

Parsálaithe — is é an tasc atá acu ná na ceannlínte a pharsáil.

Cinnfidh an sampla parsálaí seo a leanas an t-aistriú ar staid deiridh an mheaisín ó staid tosaigh amháin go ceann de dhá stát deiridh:

P4 teanga cláir

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

Ð ¢ Ð ° Ð ± Ð »Ð¸Ñ † Ñ < — beidh stáit innill a nascann eochracha úsáideora le gníomhartha. Gníomhaíocht — cur síos ar an gcaoi ar cheart an pacáiste a ionramháil.

Sna táblaí tá stáit (sainmhínithe ag an leibhéal bainistíochta) le haghaidh cur ar aghaidh paicéid, cur síos ar an aonad Meaitseála Gníomhaíochta

Déantar paicéid a mheaitseáil le:

  • Cluiche cruinn
  • Cluiche Réimír is faide (LPM)
  • Meaitseáil triple (mascáil)

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

Ní mór gach gníomh féideartha a shainiú i dtáblaí roimh ré.

Cuimsíonn gníomhartha cód agus sonraí. Tagann na sonraí ón leibhéal bainistíochta (m.sh. seoltaí IP/uimhreacha poirt). Is féidir primitives áirithe, saor ó lúb a shonrú go díreach sa ghníomh, ach ní mór líon na dtreoracha a bheith intuartha. Mar sin, ní féidir lúba nó ráitis choinníollacha a bheith i ngníomhartha.

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

modúil Match-Gníomhaíochta — gníomhartha chun eochair chuardaigh a chruthú, cuardach a dhéanamh i dtábla, gníomhartha a dhéanamh.

Taispeántar sampla tipiciúil de mhodúl san fhíor:

P4 teanga cláir

Sreabhadh rialaithe — léiríonn sé an t-ord ina n-úsáidtear modúil Ghníomhaíochta Meaitseála. Is clár riachtanach é seo a shainíonn an loighic ardleibhéil agus an t-ord Meaitseála Gníomhaíochta. Nascann an sreabhadh rialaithe gach réad tríd an leibhéal rialaithe a shainiú.

Rudaí seachtracha is réada sonracha iad le hailtireacht atá sainmhínithe go soiléir agus comhéadain API. Mar shampla, ríomh seiceála, cláir, cuntair, cuntair, etc.

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
}

Meiteashonraí — struchtúir sonraí a bhaineann le gach pacáiste.

Tá 2 chineál meiteashonraí ann:

  Meiteashonraí saincheaptha (struchtúr folamh do gach pacáiste)
    Is féidir leat cibé rud is mian leat a chur anseo
    Ar fáil ar fud na píblíne
    áisiúil le húsáid chun do chríocha féin, mar shampla, le haghaidh hash pacáiste a stóráil

  Meiteashonraí inmheánacha - arna soláthar ag an ailtireacht
    Sainmhínítear port ionchuir, port aschuir anseo
    Stampa ama nuair a bhí an paicéad scuaine, doimhneacht scuaine
    hash multicast / scuaine multicast
    Tosaíocht an phacáiste, tábhacht an phacáiste
    Sonraíocht an phoirt aschuir (m.sh. scuaine aschuir)

P4 tiomsaitheoir

Gineann an tiomsaitheoir P4 (P4C):

  1. Am rite eitleáin sonraí
  2. API chun staid an mheaisín a bhainistiú san eitleán sonraí

P4 teanga cláir

Sampla de lasc bogearraí i dteanga P4

Is féidir cóid foinse a íoslódáil ón stór.

p4lang/p4c-bm: cruthaítear cumraíocht JSON do bmv2
p4lang/bmv2: lasc bogearraí a thuigeann cumraíochtaí leagan bmv2 JSON

Taispeánann an figiúr léaráid tiomsaithe an tionscadail:

P4 teanga cláir

Ionramhálacha le táblaí, cláir léitheoireachta, cuntair:

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


Tá an clár simple_switch_CLI sa chód foinse chun úsáid áisiúil a bhaint as an API lasc bogearraí.

Is féidir leat é seo agus samplaí eile a íoslódáil ón stór.

P4 teanga cláir

PS Go luath an samhradh seo, shínigh Intel comhaontú chun Barefoot Networks a fháil mar iarracht chun freastal go tapa ar riachtanais úsáideoirí Hyperscale Cloud. Mar a dúirt Navin Shenoy (leas-uachtarán feidhmiúcháin agus bainisteoir ginearálta an Ghrúpa Lárionad Sonraí ag Intel Corporation), ligfidh sé seo do Intel ualaí oibre níos mó agus níos mó deiseanna a sholáthar do chustaiméirí lárionad sonraí.

I mo thuairim phearsanta, níor cheart dúinn dearmad a dhéanamh go bhfuil Intel ina cheannaire i dtáirgeadh sceallóga FPGA agus tá timpeallacht Quartus den scoth aige. Ciallaíonn sé seo gur féidir linn a bheith ag súil le teacht Intel, ní hamháin go leathnóidh Barefoot a líne táirge, ach freisin go bhfaighidh Quartus agus P4 Studio nuashonruithe agus breisithe tromchúiseacha ar líne Toffino agus Toffino 2.

Ball oifigiúil de phobal P4 - cuideachta Grúpa fachtóir.

Foinse: will.com

Add a comment