P4 programmandi lingua

P4 programmandi lingua
P4 programmatio linguarum ad programmata regulas excitandas destinata est. Dissimilis propositio generalis linguae sicut C vel Python, P4 est lingua domain specialia cum compluribus consiliis optimized pro retis fugandis.

P4 fons apertus est licentiati linguae et conservatae per organizationem non lucri, quae P4 Lingua Consortium vocatur. Suffragatur etiam a Fundatione Networking Open (ONF) et Foundation Linux (LF), duo ex maximis Institutis umbellae ad fontem apertum retis inceptis.
Lingua originaliter signata est anno 2013 et descriptus est in charta 2014 SIGCOMM CCR inscripta "Protocollum Independentium, fasciculum Routing Processus Programmationis".

Cum eius inchoatio, P4 exponentialiter crevit et evolvitur, signum cito fit ad transmissionem fasciculorum per retis machinis describendis, inclusa adaptors retiacula, virgas et iter itineris.

"SDN industriam networking mutavit, et P4 ad gradum gradum SDN accipit, programmabilitas ad excitandum" dixit Guru Parulkar, moderator exsecutivus Fundationis Openis Network.

Lingua P4 a coetu fabrum et inquisitorum a Google, Intel, Investigatione Microsoft, Duce, Princeton et Stanford creata est. Propositum simplex erat: linguam facilem ad usum creare ut programmator elit discere posset in die et usu ad accurate describere quomodo fasciculi trans retiacula mittantur.

Inde ab initio, P4 designatus est ut scopum independentem (i.e. programma in P4 scriptum immutata componi posset in variis scutis ut ASICs, FPGAs, CPUs, NPUs, GPUs).

Lingua etiam protocollum independens est (i.e., programmata P4 describere potest vexillum protocolla exsistens vel ad exprimendos novos modos appellandi morem adhibendum).

In industria, P4 programmandi pro fabrica. Forsitan in futuris Internet-RFC et IEEE signis etiam specificationem P4 comprehendet.

P4 adhiberi potest pro tam programmabili et fixa functione machinis. Exempli gratia, accurate notare consuevit mores pipelinos switch in switch Abstractio interface (SAI) APIs a fonte aperto SONiC switch OS adhibito. P4 etiam in ONF Stratum propositum est ad mores transmutationes per varias certas et programmabiles cogitationes describendas.

Primum, mores adaptatores et switch retis describens permittit tibi ut exemplar accuratum exsecutabile totius retis ante instruere permittas. Magnae nubes provisores probare et debug retis omnino programmatis utentes, signanter reducendo tempus et sumptus interoperabilitatis in lab probationis sine odio sumptuoso exigunt.

Adhibitis P4, retis instrumentis venditores sperare possunt mores communes subiacentes excitandas per omnes productos, permittens reuse probationis infrastructuram, administrationem programmatum simpliciorem reddendi, ac demum interoperabilitatem procurandi.

Scilicet, P4 adhiberi potest ad programmata scribenda quae omnino novas vias explicandi describunt. Exempli gratia, P4 late pro telemetria et mensuris in centris notitiarum, inceptis et provisoris retiacula inserviens.

Investigationis communitas etiam iit. Plures praecipui academici coetus investigationis retis ediderunt novas applicationes excitandas in programmatis P4 fundatis, incluso onere librationis, consensus protocolla, et valorem clavis caching. Novum programmandi paradigma creatum est, innovatio a ferramentis ad programmatum movetur, multas ideas inopinatas, novas et ingeniosas emergere sinit.

In elit communitas notabiles contributiones ad codicem evolutionis effecit, inter compilatores, pipelines, exempla morum, APIs, tabulas probationes, applicationes, et plura. Societates ut Alibaba, AT&T, Ducc, Cisco, Fox Networks, Google, Intel, IXIA, Networks Iuniper, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx, et ZTE tincidunt dedicaverunt; ex universitatibus possidet BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass, et USI; et fons apertus incepta possidet CORD, FD.io, OpenDaylight, ONOS, OvS, SAI et Stratum in luce habent P4 project communitatis independentis.

Typical generatio moderatoris ad linguam P4:

P4 programmandi lingua

Applicationem prospectus

P4 programmandi lingua
Cum lingua ad applicationes excitandas destinatur, index optionum requisitorum et consiliorum diversus est comparatus ad linguas programmandi generales propositi. Praecipua linguae lineamenta sunt:

  1. Libertas a scopum exsequendam;
  2. Libertas protocolli usus est;
  3. Agrum reconfigurability.

Libertatem a scopum implementation

Progressiones P4 ordinantur ad exsequendum independentes, significationes varias componi possunt per varia tormentorum genera, sicut processores generales, FPGAs, systema-ad-eu, processus retis, et ASICs. Haec diversa genera machinis ut scuta P4 cognoscuntur, et unumquodque scopum requirit compilator ut codicem P4 fontem in exemplar switch convertat. Compilator aedificari potest in fabrica scopum, programmatum externum, vel etiam ministerium nubilum. Cum multa scutorum originalium pro P4 programmata pro simplici mutandi fasciculo essent, valde commune est audire verbum "P4 transitum" quamvis "scopo P4" accuratius est.

Libertatis protocol (s) usus

P4 protocollum sui iuris est. Id significat linguam propriam non habere subsidium protocollis communibus ut IP, Aernet, TCP, VxLAN vel MPLS. Loco P4 programmator describit formas capitis et nomina campi protocolla in progressione inquisita, quae vicissim interpretantur et processit a programmatis et scopo fabrica.

Ager reconfigurability

Protocollum independentiae et exemplar linguae abstractae permittit pro reconfigurabilitate - P4 scuta si processus fasciculi mutare possint postquam systema explicatur. Haec facultas tradita tradita est cum excitandis processoribus seu processoribus retis generalibus potius quam functionibus gressibus integratis.

Etsi in lingua nihil est quod optimizationem perficiendi cuiusdam propositi protocolla impediat, hae optimizationes invisibiles sunt linguae auctoris ac denique flexibilitatem systematis et metarum eorumque reconfigurabilitatem minuere possunt.

Hae linguae notae initio ab auctoribus suis positae sunt cum umbilico ad suum diffundendum usum in retis infrastructuris.

Lingua in multis societatibus iam adhibetur;

1) Hyperscale centra data;

Societas Sinensium Tencent est maxima societas collocationis in mundo et una maximarum solidorum capitalium venture. Subsidiarii Tencent, tam in Sinis quam in aliis circa mundum regionibus, specializent in variis locis negotiandi magni technici, variis interretialibus officiis, incrementis in campo intellegentiae artificialis et delectationis electronicae.

P4 et programmabilia fusa proferuntur technologiae quae in architectura retiacula societatis adhibentur.

Sicut unus ex auctoribus, Google superbus est notare rapidam adoptionem P4 in retiaculis industriae et in notitiis architecturae instrumenti in particulari.

2) Societates commerciales;

Goldman Sachs adiuvat operandi cum fonte aperto communitatis et signis communibus et solutionibus enucleandis ad innovationem retis infrastructuram et meliores solutiones clientibus praebendas.

3) Productio;

Tota industria network retis prodesset ex lingua quasi P4 quae mores promovendi unice definit. Cisco etiam credit in lineas productos transferendo ut hac lingua utatur.

Juniperus Networks P4 et P4 Runtime in numero productorum comprehendit, et programma praebet accessum processus embedded in Iunipero eiusque codicem programmatum.

Ruijie Networks fortis fautor P4 est et beneficia ligula adfert. Cum P4, societas optimas solutiones in genere creare et tradere potest amplis clientibus.

4) Telecommunicationes provisores;

AT&T fuit P4 primitivus adoptor, unus ex primis P4 ut mores quos in retiacula videre voluit definire et P4 programmatibus machinis in retis eius utere.

In Deutsche Telekom, lingua ad prototypum retis clavis adhibitum est ut partem 4.0 programmatis Access.

5) Semiconductor incolarum;

Lingua Discalceatus ad novum paradigma efficiendum paravit ad facultates programmales tradendas ad planum retis excitandum.

Xilinx unus e fundatoribus P4.org erat et in evolutione linguae P4 implicatus erat et eam in FPGA fundatum programmabilium suggestuum SmartNIC et NFV pro ferramentis solvens unum e primorum P416 compilariorum partem consilio SDNet solvens.

6) Software.

VMware credit P4 ingentis energiae, innovationis et communitatis creare, quae transformationem significativam et necessariam in reticulo agit. VMware pars motus industriae huius ab initio fuit, sicut novus fluctus innovationis ab accessionibus programmatibus agitatur qui infrastructuras facultates et instrumenta in productis proximis extendunt.

Ita P4 est scopo-independens et protocollo-independens linguae programmationis industriae et academiae adhibita ad mores fasciculos explicandos singulariter definiendos sicut programma, quod vicissim pro pluribus scutis componi potest. Hodie scuta includunt ferramenta et virgas software, permutationes hypervisoris, NPUs, GPUs, FPGAs, SmartNICs et ASICs.

Praecipua linguae lineamenta signanter amplificant eius applicationis ambitum, eiusque celerem exsequendum in retis architecturae curant.

questus Coepi

P4 consilium apertum est, omnes informationes ad rem pertinentes in pagina P4.org

Repositorium link https://github.com/p4lang, ubi exem- plum codicis ac tutoris.

Плагин nam Eclipsis cum auxilio P4, sed commendare possumus P4 Studio de Ducc.

P4 programmandi lingua

Intueamur principales abstractiones nuclei:

Definiens capitis β€” Eorum ope, protocollum capitis determinantur.

Definitio capitis denotat:

  • description de packet formats et header agro nomina
  • fixum ac variabile permisit agris

exempli gratia

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

Parsers β€” eorum munus est lacus parse.

Hoc exemplum parser erit transitus status finalis machinae ab uno statu initiali ad unum e duobus ultimis civitatibus;

P4 programmandi lingua

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

tables - machinae civitates continentes claves cum actionibus usuario coniungunt. actus - descriptio quomodo sarcina tractanda sit.

Tabulae continent civitates (definitas in gradu administrationis) ad fasciculum procuret, unitatem par-Actionis describe

Packets matched by:

  • Exige par
  • Praefixum longissimum par (LPM)
  • Triplex matching (masking)

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

Omnes actiones possibilis praemissis definiendae sunt.

Actiones in codice et data. Notitia ex gradu administrationis venit (eg numeri IP oratio/portus). Certi, primitiva liberorum ansa directe specificari possunt in actione, sed numerus praeceptorum praedictio esse debet. Ergo actiones aliquas ansas vel constitutiones conditionales continere non possunt.

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

Compositus-actio modules - actus ad clavem pervestigationis faciendae, perscrutandi in mensa, actiones exercendi.

Exemplar typicum moduli in figura ostenditur:

P4 programmandi lingua

Imperium fluxus β€” ordinem indicat quo moduli par-Actionis adhibentur. Hoc est programma imperativum, quod logices altam et par-Actionis seriem definit. Imperium fluunt omnia objecta coniungit definiendo gradum imperii.

Res externae res specificae cum architectura certa et API interfaces definita sunt. Exempli gratia, checksum calculi, registra, calculis, calculis, 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
}

Metadata - notitia structurae cum singulis sarcina.

Sunt 2 genera metadata;

  Custom metadata (inanis compages pro omnibus fasciculis)
    Ponere potes quod vis
    Praesto per pipeline
    opportunus ad usus tuos proprios usus, exempli gratia, sarcinam detrahere

  Internum metadata - provisum est ab architectura
    Input portum, output portum hic definiuntur
    Indicatione cum fasciculum amet, queue profundum
    Multicast Nullam / multicast queue
    Sarcina prioritas, sarcina momenti
    Output specificationem portum (exampla output queue)

P4 compilator

Compilator P4 (P4C) generat;

  1. Data planum runtime
  2. API ad administrandi apparatus status in notitia planum

P4 programmandi lingua

Exemplum programmatis mutandi in lingua P4

Fontes codices e promptuario detrahi possunt.

p4lang/p4c-bm: efficit JSON configurationem pro bmv2
p4lang/bmv2: a software switch qui intelligit bmv2 version JSON figurarum

Figura documenti compilationem ostendit schematis;

P4 programmandi lingua

Manipulationes cum tabulis, registris legendis, calculis;

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


Fons codice continet rationem simplicem_switch_CLI pro convenienti usu commutationis programmatis API.

Hoc et alia exempla ex promptuario tollere potes.

P4 programmandi lingua

PS Prima hac aestate Intel signavit conventionem ut Networks nudis pedibus comparare in conatu ut celeriter necessitatibus Hyperscale Cloud utentium occurreret. Sicut Navin Shenoy (praeses exsecutivus et procurator generalis Datae Centre Group in Intel Corporation) dixit, hoc Intel permittit ut ampliores labores et occasiones centri datorum clientium praebeat.

In mea sententia non debemus oblivisci Intel ducem esse in FPGA astularum productione et optimum Quartum ambitum habere. Hoc significat quod exspectari possumus, adventum Intel Ducis non solum dilatare productum suum, sed etiam Quartus et P4 Studio graves renovationes et additamenta ad Toffino et Toffino 2 linea recipiet.

Officialis membrum communitatis P4 - company Factor group.

Source: www.habr.com