P4 fiteny fandaharana

P4 fiteny fandaharana
P4 dia tenim-pandaharana natao handrindrana ny fitsipiky ny fandefasana fonosana. Tsy toy ny fiteny amin'ny tanjona ankapobeny toa ny C na Python, P4 dia fiteny manokana amin'ny sehatra misy endrika maromaro namboarina ho an'ny fampitaovana tambajotra.

P4 dia fiteny loharano misokatra nahazoan-dalana sy nokarakarain'ny fikambanana tsy mitady tombony antsoina hoe P4 Language Consortium. Izy io koa dia tohanan'ny Open Networking Foundation (ONF) sy ny Linux Foundation (LF), roa amin'ireo fikambanana elo lehibe indrindra ho an'ny tetikasan'ny tambajotra open source.
Ny fiteny dia noforonina tany am-boalohany tamin'ny 2013 ary nofaritana tao amin'ny taratasy SIGCOMM CCR 2014 mitondra ny lohateny hoe "Protocol Independent, Packet Routing Processor Programming."

Hatramin'ny nanombohany dia nitombo sy nivoatra haingana ny P4, lasa fenitra haingana hamaritana ny fifindran'ny fonosana amin'ny alΓ lan'ny fitaovana tambajotra, ao anatin'izany ny adaptatera, switch ary router.

"Nanova ny indostrian'ny tambajotra ny SDN, ary ny P4 dia mitondra ny SDN amin'ny ambaratonga manaraka amin'ny alΓ lan'ny fampandehanana ny programa amin'ny lalana," hoy i Guru Parulkar, tale mpanatanteraka ao amin'ny Open Networking Foundation.

Ny fiteny P4 dia noforonin'ny vondrona injeniera sy mpikaroka avy amin'ny Google, Intel, Microsoft Research, Barefoot, Princeton ary Stanford. Tsotra ny tanjona: mamorona fiteny mora ampiasaina izay azon'ny mpamorona rindrambaiko ianarana ao anatin'ny iray andro ary ampiasaina hamaritana tsara ny fomba fandefasana fonosana manerana ny tambajotra.

Hatrany am-piandohana, ny P4 dia natao ho lasibatra tsy miankina (izany hoe ny programa voasoratra ao amin'ny P4 dia azo angonina tsy miova mba hihazakazaka amin'ny tanjona isan-karazany toy ny ASIC, FPGA, CPU, NPU, ary GPU).

Ny fiteny ihany koa dia tsy miankina amin'ny protocol (izany hoe, ny programa P4 dia afaka mamaritra ny protocole mahazatra efa misy na ampiasaina hamaritana ny fomba fiasa vaovao).

Ao amin'ny indostria, ny P4 dia ampiasaina amin'ny fandaharana fitaovana. Angamba amin'ny ho avy Internet-RFC sy ny fenitra IEEE dia hampiditra ihany koa ny famaritana P4.

Ny P4 dia azo ampiasaina ho an'ny fitaovana azo zahana sy azo ampiasaina. Ohatra, ampiasaina izy io mba hanoratana marina ny fitondran-tenan'ny fantsona switch ao amin'ny Switch Abstraction Interface (SAI) API ampiasain'ny open source SONiC switch OS. Ny P4 dia ampiasaina ao amin'ny tetikasa ONF Stratum mba hamaritana ny fitondran-tena mifamadika amin'ny fitaovana raikitra sy azo zahana.

Sambany, ny famaritana ny fihetsiky ny switch sy ny adaptatera tambajotra dia ahafahanao mamorona modely azo tanterahina amin'ny tambajotra manontolo alohan'ny hametrahana azy. Ireo mpanome rahona lehibe dia afaka mitsapa sy manao debug ny tambajotra amin'ny fampiasana rindrambaiko, mampihena be ny fotoana sy ny vidin'ny fitiliana interoperability ao amin'ny laboratoara nefa tsy mila fitaovana lafo vidy.

Amin'ny alΓ lan'ny fampiasana P4, ireo mpivarotra fitaovana amin'ny tambajotra dia afaka manantena ny fitondran-tena mahazatra amin'ny zotra amin'ny vokatra rehetra, mamela ny fampiasana indray ny fotodrafitrasa fitsapana, manamora ny fampivoarana rindrambaiko fitantanana, ary amin'ny farany miantoka ny fifampiraharahana.

Mazava ho azy, ny P4 dia azo ampiasaina hanoratana programa izay mamaritra fomba fiasa vaovao tanteraka. Ohatra, ny P4 dia ampiasaina betsaka amin'ny telemetry sy ny fandrefesana any amin'ny foibe data, orinasa ary tambajotra mpamatsy serivisy.

Nitombo ihany koa ny vondrom-piarahamonina mpikaroka. Vondrona fikarohana momba ny tambajotra akademika maromaro no namoaka fampiharana vaovao mampientam-po mifototra amin'ny programa P4, ao anatin'izany ny fifandanjana entana, ny protocols consensus, ary ny caching sanda lehibe. Misy paradigma fandaharana vaovao noforonina, ny fanavaozana dia mifindra avy amin'ny hardware mankany amin'ny rindrambaiko, mamela hevitra maro tsy ampoizina, vaovao ary marani-tsaina hipoitra.

Ny vondrom-piarahamonina developer dia nandray anjara lehibe tamin'ny fampivoarana kaody, anisan'izany ny compiler, pipelines, modely amin'ny fitondran-tena, API, rafitra fitsapana, fampiharana, sy ny maro hafa. Ny orinasa toa an'i Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx, ary ZTE dia nanokana mpamorona; avy amin'ny oniversite anisan'izany ny BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass, ary USI; ary ny tetikasa open source anisan'izany ny CORD, FD.io, OpenDaylight, ONOS, OvS, SAI ary Stratum dia manasongadina ny maha-tetikasa fiaraha-monina tsy miankina ny P4.

Famoronana mpanara-maso mahazatra ho an'ny fiteny P4:

P4 fiteny fandaharana

Fanantenana fampiharana

P4 fiteny fandaharana
Koa satria ny fiteny dia natao ho an'ny fampiharana lalana, ny lisitry ny fepetra takiana sy ny safidy famolavolana dia hafa raha oharina amin'ny fiteny fandaharana amin'ny tanjona ankapobeny. Ny tena mampiavaka ny fiteny dia:

  1. Fahaleovantena amin'ny fanatanterahana tanjona ;
  2. Fahaleovantena ny protocol(s) ampiasaina;
  3. Famerenana ny saha.

Fahaleovantena amin'ny fanatanterahana tanjona

Ny programa P4 dia natao ho fampiharana mahaleo tena, midika izany fa azo angonina ho an'ny karazana motera famonoana maro isan-karazany, toy ny processeurs amin'ny ankapobeny, FPGAs, system-on-chips, processeur network, ary ASICs. Ireo karazana milina isan-karazany ireo dia fantatra amin'ny hoe lasibatra P4, ary ny kendrena tsirairay dia mitaky mpanangona mba hamadika ny kaody loharano P4 ho modely kendrena. Ny compiler dia azo amboarina ao amin'ny fitaovana kendrena, rindrambaiko ivelany, na serivisy rahona mihitsy aza. Satria maro amin'ireo tanjona tany am-boalohany ho an'ny programa P4 dia natao ho an'ny fanodinana fonosana tsotra, dia mahazatra ny mandre ny teny hoe "P4 switch" na dia marina kokoa aza ny "target P4".

Fahaleovantenan'ny protocol(s) ampiasaina

P4 dia tsy miankina amin'ny protocol. Midika izany fa tsy manana fanohanan'ny teratany ny protocole mahazatra toy ny IP, Ethernet, TCP, VxLAN na MPLS ny fiteny. Fa kosa, ny programmer P4 dia mamaritra ny endrika lohapejy sy ny anaran'ny saha misy ny protocols ilaina ao amin'ny programa, izay adika sy karakarain'ny programa natambatra sy ny fitaovana kendrena.

Famerenana ny saha

Ny fahaleovan-tenan'ny protocole sy ny maodely fiteny abstract dia mamela ny fanavaozana - ny tanjona P4 dia tokony ho afaka manova ny fanodinana fonosana aorian'ny fametrahana ny rafitra. Ity fahaiza-manao ity dia mifandray amin'ny lalana amin'ny alΓ lan'ny processeurs amin'ny tanjona ankapobeny na ny processeur amin'ny tambajotra fa tsy ny circuit integrated.

Na dia tsy misy na inona na inona amin'ny fiteny izay mety hisakana ny fanatsarana ny fampandehanana ny andiana protocole manokana, ireo fanatsarana ireo dia tsy hitan'ny mpanoratra fiteny ary mety hampihena ny fahafahan'ny rafitra sy ny tanjona ary ny fanavaozana azy ireo amin'ny farany.

Ireo toetran'ny fiteny ireo dia napetraky ny mpamorona azy tamin'ny voalohany ary nifantoka tamin'ny fampiasana azy miely patrana amin'ny fotodrafitrasa tambajotra.

Efa ampiasaina any amin'ny orinasa maro ny fiteny:

1) Foiben'ny data hyperscale;

Ny orinasa Shinoa Tencent no orinasa fampiasam-bola lehibe indrindra eran-tany ary iray amin'ireo orinasa lehibe indrindra amin'ny renivola. Ny sampan'i Tencent, na any Shina na any amin'ny firenena hafa manerana izao tontolo izao, dia manam-pahaizana manokana amin'ny sehatra samihafa amin'ny fandraharahana teknolojia avo lenta, anisan'izany ny serivisy Internet isan-karazany, ny fivoarana eo amin'ny sehatry ny faharanitan-tsaina artifisialy sy ny fialamboly elektronika.

P4 sy programamable routing dia teknolojia avo lenta izay ampiasaina amin'ny rafitry ny tambajotran'ny orinasa.

Amin'ny maha-iray amin'ireo mpamorona azy, dia mirehareha ny Google ny manamarika ny fananganana haingana ny P4 amin'ny indostrian'ny tambajotra ary indrindra indrindra amin'ny famolavolana maritrano ivotoerana data.

2) Orinasa ara-barotra;

Goldman Sachs dia manararaotra miara-miasa amin'ny vondrom-piarahamonina open source ary mamolavola fenitra sy vahaolana iraisana hanavaozana ny fotodrafitrasa tambajotra ary hanome vahaolana tsara kokoa ho an'ny mpanjifa.

3) Famokarana;

Ny indostrian'ny tambajotra manontolo dia hahazo tombony amin'ny fiteny toa ny P4 izay mamaritra manokana ny fitondran-tena fandefasana. Mino ihany koa ny Cisco amin'ny famindrana ny vokatra azony hampiasaina io fiteny io.

Ny Juniper Networks dia nampiditra P4 sy P4 Runtime amin'ny vokatra maromaro, ary manome fahafahana miditra amin'ny programa amin'ny processeur embedded Juniper sy ny kaody rindrambaiko.

Ny Ruijie Networks dia mpanohana matanjaka ny P4 sy ny tombontsoa entin'ny tambajotra. Miaraka amin'ny P4, ny orinasa dia afaka mamorona sy manolotra vahaolana tsara indrindra ho an'ny mpanjifa marobe.

4) Mpanome tolotra fifandraisan-davitra;

AT&T dia nandray ny P4 tany am-boalohany, iray amin'ireo voalohany nampiasa P4 hamaritana ny fitondran-tena tiany ho hita ao amin'ny tambajotrany, ary hampiasa ireo fitaovana fandefasana programa P4 amin'ny tambajotrany.

Ao amin'ny Deutsche Telekom, ny fiteny dia ampiasaina amin'ny prototype ny asa tambajotra fototra ao anatin'ny programa Access 4.0.

5) Indostria semiconductor;

Ny fiteny dia nahafahan'ny Barefoot nampihatra paradigma vaovao amin'ny fandefasana ny fahaiza-manao rindrambaiko amin'ny fiaramanidina fitaterana tambajotra.

Xilinx dia iray amin'ireo mpanorina ny P4.org ary nandray anjara mavitrika tamin'ny fampivoarana ny fiteny P4 ary nampihatra izany tao amin'ny sehatra azo rindrankajy miorina amin'ny FPGA ho an'ny fitaovana SmartNIC sy NFV, namoaka ny iray amin'ireo mpanangona P416 voalohany ho ampahany amin'ny famolavolana SDNet.

6) Software.

VMware dia mino fa ny P4 dia mamorona angovo, fanavaozana ary vondrom-piarahamonina lehibe izay mitondra fiovana manan-danja sy ilaina amin'ny tambajotra. Ny VMware dia anisan'ny hetsika indostrialy hatramin'ny voalohany, satria ny onjam-baovao vaovao dia tarihin'ny fomba fiasa mifototra amin'ny rindrambaiko izay manitatra ny fahaiza-manaon'ny fotodrafitrasa ary mampihatra izany amin'ny vokatra farany.

Noho izany, P4 dia fiteny fandaharana tsy miankina amin'ny kendrena sy tsy miankina amin'ny protocol izay ampiasain'ny indostria sy ny akademia mba hamaritana manokana ny fitondran-tena fandefasana fonosana ho programa, izay azo atambatra ho an'ny tanjona marobe. Amin'izao fotoana izao, ny kendrena dia misy ny fitaovana sy rindrambaiko, switch hypervisor, NPU, GPU, FPGA, SmartNIC ary ASIC.

Ny endri-javatra fototra amin'ny fiteny dia manitatra be ny sahan'ny fampiharana azy ary miantoka ny fampiharana azy haingana amin'ny rafitry ny tambajotra.

Getting Started

Tetikasa misokatra ny P4, ao amin'ny tranokala ny fampahalalana rehetra mifandraika amin'izany P4.org

Rohy fitahirizana https://github.com/p4lang, izay ahafahanao mahazo kaody loharano ohatra sy fampianarana.

plugin ho an'ny Eclipse miaraka amin'ny fanohanana P4, saingy afaka manoro hevitra izahay P4 Studio avy amin'ny Barefoot.

P4 fiteny fandaharana

Andeha hojerentsika ny abstractions lehibe amin'ny kernel:

Famaritana Lohateny - miaraka amin'ny fanampian'izy ireo dia tapa-kevitra ny lohatenin'ny protocol.

Ny famaritana lohapejy dia mamaritra:

  • famaritana ny endrika fonosana sy ny anaran'ny saha lohapejy
  • saha avela raikitra sy miovaova

Ohatra

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 - ny andraikitr'izy ireo dia ny mamaky ny lohateny.

Ity ohatra parser manaraka ity dia hamaritra ny fifindran'ny toetry ny milina avy amin'ny fanjakana voalohany mankany amin'ny fanjakana roa farany:

P4 fiteny fandaharana

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 - misy toetry ny milina mampifandray ny fanalahidin'ny mpampiasa amin'ny hetsika. ДСйствия - fanoritsoritana ny fomba tokony hanodinana ny fonosana.

Ny tabilao dia misy fanjakana (voafaritra amin'ny ambaratongam-pitantanana) ho an'ny fandefasana fonosana, mamaritra ny tarika Match-Action

Ny fonosana dia mifanaraka amin'ny:

  • Mifanaraka tsara
  • Lalao Tovona lava indrindra (LPM)
  • Fifandrindrana telo (masking)

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

Ny hetsika rehetra azo atao dia tsy maintsy faritana amin'ny tabilao mialoha.

Ny hetsika dia misy code sy data. Ny angon-drakitra dia avy amin'ny ambaratongam-pitantanana (ohatra ny adiresy IP/serasera). Ny primitives sasany tsy misy loop dia azo faritana mivantana amin'ny hetsika, fa ny isan'ny toromarika dia tsy maintsy azo vinavinaina. Noho izany, ny hetsika dia tsy afaka ahitana tadivavarana na fanambarana misy fepetra.

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 β€” hetsika mba hamoronana fanalahidin'ny fikarohana, fikarohana amin'ny latabatra, manao hetsika.

Ohatra iray mahazatra amin'ny module dia aseho amin'ny sary:

P4 fiteny fandaharana

Fanaraha-maso ny fandehanana - manondro ny filaharan'ny fampiasana ny maody Match-Action. Ity dia programa imperative izay mamaritra ny lojika avo lenta sy ny filaharana Match-Action. Ny fikorianan'ny fanaraha-maso dia mampifandray ny zavatra rehetra amin'ny famaritana ny haavon'ny fanaraha-maso.

Zavatra ivelany dia zavatra manokana manana maritrano voafaritra mazava sy fifandraisana API. Ohatra, ny kajy checksum, ny rejisitra, ny kaontera, ny kaontera, sns.

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 - rafitra data mifandraika amin'ny fonosana tsirairay.

Misy karazany 2 ny metadata:

  Metadata manokana (rafitra foana ho an'ny fonosana rehetra)
    Afaka mametraka izay tianao eto ianao
    Misy manerana ny fantsona
    mora ampiasaina amin'ny tanjonao manokana, ohatra, amin'ny fitehirizana ny hash fonosana

  Metadata anatiny - nomen'ny maritrano
    Ny seranan-tsambo fidirana, ny seranan-tsambo fivoahana dia voafaritra eto
    Fotoam-potoana rehefa nilahatra ny fonosana, halalin'ny filaharana
    multicast hash / multicast filaharana
    Ny laharam-pahamehana amin'ny fonosana, ny lanjan'ny fonosana
    Famaritana ny seranan-tsambo (oh: filaharana mivoaka)

P4 compiler

Ny compiler P4 (P4C) dia miteraka:

  1. Data plane runtime
  2. API amin'ny fitantanana ny toetry ny milina amin'ny fiaramanidina data

P4 fiteny fandaharana

Ohatra amin'ny famadihana rindrambaiko amin'ny fiteny P4

Azo alaina ao amin'ny tahiry ny code source.

p4lang/p4c-bm: mamorona JSON configuration ho an'ny bmv2
p4lang/bmv2: rindrankajy iray izay mahafantatra ny bmv2 version JSON configurations

Ny sary dia mampiseho ny kisary fanangonana tetikasa:

P4 fiteny fandaharana

Manipulation miaraka amin'ny latabatra, rejistra famakiana, kaontera:

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


Ny kaody loharano dia misy ny programa simple_switch_CLI ho fampiasana mora ny API switch rindrambaiko.

Azonao atao ny misintona ity sy ohatra hafa avy amin'ny tahiry.

P4 fiteny fandaharana

Sal Tany am-piandohan'ity fahavaratra ity, nanao sonia fifanarahana i Intel mba hahazoana Barefoot Networks amin'ny ezaka mba hanomezana haingana ny filan'ny mpampiasa Hyperscale Cloud. Araka ny nambaran'i Navin Shenoy (filoha lefitra mpanatanteraka sy tale jeneralin'ny Data Center Group ao amin'ny Intel Corporation), izany dia ahafahan'i Intel manome enta-mavesatra lehibe kokoa sy fahafahana bebe kokoa ho an'ny mpanjifa ivotoerana data.

Raha ny hevitro manokana dia tsy tokony hohadinointsika fa ny Intel dia mpitarika amin'ny famokarana chips FPGA ary manana tontolo Quartus tena tsara izy. Midika izany fa afaka manantena isika fa amin'ny fahatongavan'ny Intel, ny Barefoot dia tsy hanitatra ny tsipika vokatra ihany, fa koa ny Quartus sy P4 Studio dia hahazo fanavaozana lehibe sy fanampiny amin'ny tsipika Toffino sy Toffino 2.

Mpikambana ofisialin'ny vondrom-piarahamonina P4 - orinasa Vondron'olona.

Source: www.habr.com

Add a comment