Puo ea lenaneo la P4

Puo ea lenaneo la P4
P4 ke puo ea lenaneo e etselitsoeng ho hlophisa melao ea ho tsamaisa liphutheloana. Ho fapana le puo e sebelisoang ka kakaretso joalo ka C kapa Python, P4 ke puo e ikhethileng e nang le meralo e mengata e ntlafalitsoeng bakeng sa ho tsamaisa marang-rang.

P4 ke puo e bulehileng e nang le laesense le ho hlokomeloa ke mokhatlo o sa etseng phaello o bitsoang P4 Language Consortium. E boetse e tšehetsoa ke Open Networking Foundation (ONF) le Linux Foundation (LF), mekhatlo e 'meli e meholo ka ho fetisisa ea merero ea marang-rang e bulehileng.
Puo ena e qalile ka 2013 mme e hlalositsoe pampiring ea 2014 SIGCOMM CCR e nang le sehlooho se reng "Protocol Independent, Packet Routing Processor Programming."

Ho tloha ha e qala, P4 e hōlile le ho fetoha ka potlako, ka potlako e fetoha mokhoa oa ho hlalosa phetiso ea lipakete ka lisebelisoa tsa marang-rang, ho kenyeletsa li-adapter tsa marang-rang, li-switches le li-routers.

"SDN e fetotse indasteri ea marang-rang, 'me P4 e nka SDN ho ea boemong bo latelang ka ho tlisa bokhoni ba ho tsamaisa," ho boletse Guru Parulkar, motsamaisi ea ka sehloohong oa Open Networking Foundation.

Puo ea P4 qalong e entsoe ke sehlopha sa baenjiniere le bafuputsi ba Google, Intel, Microsoft Research, Barefoot, Princeton le Stanford. Sepheo se ne se le bonolo: ho theha puo e bonolo eo moqapi oa software a ka ithutang eona ka letsatsi le ho e sebelisa ho hlalosa ka nepo hore na lipakete li romelloa joang marang-rang.

Ho tloha qalong feela, P4 e ne e etselitsoe hore e be sepheo se ikemetseng (ke hore, lenaneo le ngotsoeng ho P4 le ka bokelloa le sa fetohe ho sebetsa ka lipheo tse fapaneng tse kang ASICs, FPGAs, CPUs, NPUs le GPUs).

Puo e boetse e ikemetse ka mokhoa o ikemetseng (ke hore, lenaneo la P4 le ka hlalosa liprothokholo tse seng li ntse li le teng kapa la sebelisoa ho hlakisa mekhoa e mecha ea ho bua).

Indastering, P4 e sebelisoa bakeng sa mananeo a lisebelisoa. Mohlomong nakong e tlang maemo a Internet-RFC le IEEE a tla kenyelletsa le litlhaloso tsa P4.

P4 e ka sebelisoa bakeng sa lisebelisoa tse hlophisitsoeng le tse tsitsitseng. Ka mohlala, e sebelisetsoa ho ngola ka mokhoa o nepahetseng boitšoaro ba liphaephe ho Switch Abstraction Interface (SAI) APIs e sebelisoang ke mohloli o bulehileng oa SONiC switch OS. P4 e boetse e sebelisoa morerong oa ONF Stratum ho hlalosa boitšoaro bo feto-fetohang mefuteng e fapaneng ea lisebelisoa tse tsitsitseng le tse hlophisehang.

Ka lekhetlo la pele, ho hlalosa boits'oaro ba sesebelisoa le li-adapter tsa marang-rang ho u lumella ho etsa mohlala o nepahetseng o ka phethisoang oa marang-rang kaofela pele o ka romelloa. Bafani ba maru a maholo ba ka leka le ho lokisa marang-rang ka ho feletseng ba sebelisa software, ba fokotsa haholo nako le litšenyehelo tsa tlhahlobo ea tšebelisano-'moho laborateng ntle le ho hloka hardware e theko e boima.

Ka ho sebelisa P4, barekisi ba lisebelisoa tsa marang-rang ba ka lebella boits'oaro bo tloaelehileng ba lits'ebetso ho lihlahisoa tsohle, ho lumella ts'ebeliso ea lits'ebetso tsa liteko, ho nolofatsa nts'etsopele ea software ea taolo, mme qetellong ho netefatsa ts'ebelisano.

Ehlile, P4 e ka sebelisoa ho ngola mananeo a hlalosang mekhoa e mecha ea ho tsamaisa. Mohlala, P4 e sebelisoa haholo bakeng sa telemetry le litekanyo litsing tsa data, marang-rang a likhoebo le bafani ba litšebeletso.

Sechaba sa lipatlisiso le sona se eketsehile. Lihlopha tse 'maloa tse etelletseng pele tsa lipatlisiso tsa marang-rang li phatlalalitse lits'ebetso tse ncha tse khahlisang tse ipapisitseng le mananeo a P4, ho kenyeletsoa ho leka-lekanya thepa, liprothokholo tsa tumellano, le caching ea bohlokoa. Paradigm e ncha ea lenaneo e ntse e bōptjoa, mekhoa e mecha e tloha ho hardware ho ea ho software, e lumellang likhopolo tse ngata tse sa lebelloang, tse ncha le tse bohlale hore li hlahe.

Sechaba sa batho ba ntlafatsang se entse tlatsetso e kholo ho nts'etsopele ea khoutu, ho kenyeletsoa bahlahisi, liphaephe, mehlala ea boitšoaro, li-API, meralo ea liteko, lits'ebetso, le tse ling. Likhamphani tse kang Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx, le ZTE li na le bahlahisi ba inehetseng; ho tsoa liunivesithing tse kenyeletsang BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass, le USI; le merero e bulehileng ea mehloli e kenyeletsang CORD, FD.io, OpenDaylight, ONOS, OvS, SAI le Stratum e totobatsa taba ea hore P4 ke morero o ikemetseng oa sechaba.

Mefuta e tloaelehileng ea balaoli ba puo ea P4:

Puo ea lenaneo la P4

Litebello tsa kopo

Puo ea lenaneo la P4
Kaha puo e reretsoe ho tsamaisa lits'ebetso, lenane la litlhoko le likhetho tsa moralo li fapane ha li bapisoa le lipuo tsa mananeo a akaretsang. Likarolo tse kholo tsa puo ke:

  1. Boikemelo ho tsoa ts'ebetsong e reriloeng;
  2. Boikemelo ba (protocol) e sebelisitsoeng;
  3. Reconfigurability ea tšimo.

Boikemelo ho tsoa ts'ebetsong e reriloeng

Mananeo a P4 a etselitsoe ho sebetsa a ikemetseng, ho bolelang hore a ka bokelloa bakeng sa mefuta e mengata e fapaneng ea lienjineri tsa ts'ebetso, joalo ka li-processor tsa sepheo se akaretsang, li-FPGA, li-system-on-chips, li-network processors le ASICs. Mefuta ena e fapaneng ea mechini e tsejoa e le liphofu tsa P4, 'me sepheo se seng le se seng se hloka moqapi hore a fetole khoutu ea mohloli oa P4 hore e be mokhoa oa ho fetola sepheo. Moqapi a ka hahuoa ka har'a sesebelisoa se shebiloeng, software ea kantle, kapa esita le ts'ebeletso ea leru. Hobane boholo ba lipehelo tsa mantlha tsa mananeo a P4 e ne e le ho fetola lipakete habonolo, ho tloaelehile haholo ho utloa lentsoe "P4 switch" leha "P4 target" e nepahetse haholoanyane.

Boikemelo ba protocol e sebelisitsoeng

P4 ke protocol e ikemetseng. Sena se bolela hore puo ha e na tšehetso ea matsoalloa bakeng sa liprothokholo tse tloaelehileng tse kang IP, Ethernet, TCP, VxLAN kapa MPLS. Ho e-na le hoo, moqapi oa P4 o hlalosa liforomo tsa lihlooho le mabitso a masimo a li-protocol tse hlokahalang lenaneong, tseo le tsona li hlalosoang le ho sebetsoa ke lenaneo le hlophisitsoeng le sesebelisoa se shebiloeng.

Reconfigurability ea tšimo

Boikemelo ba protocol le mokhoa oa puo o sa utloahaleng o lumella ho lokisoa-lipheo tsa P4 li lokela ho khona ho fetola ts'ebetso ea pakete kamora hore sistimi e sebelisoe. Bokhoni bona bo 'nile ba amahanngoa le ho tsamaisa li-processor tsa morero ka kakaretso kapa li-processor tsa marang-rang ho e-na le li-circuits tse kopanetsoeng tse sebetsang.

Le hoja ho se letho ka puo e neng e tla thibela optimization ea tshebetso ya sete e itseng ea diprothokholo, optimizations tsena ke tse sa bonahaleng ho mongoli oa puo 'me qetellong ka fokotsa ho feto-fetoha ha tsamaiso le lipakane tsa le reconfigurability bona.

Litšobotsi tsena tsa puo li qalile li behiloe ke baetsi ba eona ba tsepamisitse maikutlo ho ts'ebeliso ea eona e atileng meahong ea marang-rang.

Puo e se e sebelisoa lik'hamphaning tse ngata:

1) Litsi tsa data tsa Hyperscale;

Khamphani ea Machaena ea Tencent ke k'hamphani e kholo ka ho fetisisa ea matsete lefatšeng le e 'ngoe ea lifeme tse kholo ka ho fetisisa tsa khoebo. Litšehetso tsa Tencent, tse Chaena le linaheng tse ling ho pota lefatše, li sebetsa ka ho khetheha libakeng tse sa tšoaneng tsa khoebo ea theknoloji e phahameng, ho akarelletsa le litšebeletso tse sa tšoaneng tsa Inthanete, tsoelo-pele lefapheng la bohlale ba maiketsetso le boithabiso ba elektronike.

P4 le programmable routing ke mahlale a tsoetseng pele a sebelisoang meahong ea marang-rang ea k'hamphani.

Joalo ka e mong oa baqapi, Google e motlotlo ho hlokomela ho amoheloa ka potlako ha P4 indastering ea marang-rang le moralong oa meralo oa setsi sa data ka ho khetheha.

2) Lik'hamphani tsa khoebo;

Goldman Sachs o nka monyetla oa ho sebetsa le sechaba sa mohloli o bulehileng le ho nts'etsapele litekanyetso le litharollo tse tšoanang ho nchafatsa meaho ea marang-rang le ho fana ka tharollo e ntle bakeng sa bareki.

3) Tlhahiso;

Indasteri eohle ea marang-rang e ne e tla rua molemo puong e kang P4 e hlalosang ka mokhoa o ikhethileng boitšoaro ba ho fetisa. Cisco e boetse e lumela ho fetisetsa mela ea lihlahisoa tsa eona ho sebelisa puo ena.

Juniper Networks e kenyelelitse P4 le P4 Runtime lihlahisoa tse 'maloa,' me e fana ka phihlello ea lenaneo ho processor e kentsoeng ea Juniper le khoutu ea eona ea software.

Ruijie Networks ke motšehetsi ea matla oa P4 le melemo eo e e tlisang ho marang-rang. Ka P4, k'hamphani e ka theha le ho fana ka tharollo ea maemo a holimo ho bareki ba bangata.

4) Bafani ba lithelefono;

AT&T e ne e le moamoheli oa pele oa P4, e leng e 'ngoe ea ba pele ba ho sebelisa P4 ho hlalosa boitšoaro boo e neng e batla ho bo bona marang-rang a eona, le ho sebelisa lisebelisoa tsa phetisetso tsa P4 marang-rang.

Ho Deutsche Telekom, puo e sebelisoa ho hlahisa mesebetsi ea bohlokoa ea marang-rang e le karolo ea lenaneo la Access 4.0.

5) indasteri ea semiconductor;

Puo e nolofalelitse Barefoot ho kenya tšebetsong paradigm e ncha ea ho fana ka lisebelisoa tsa software ho sefofane se tsamaisang marang-rang.

Xilinx e ne e le e mong oa bathehi ba P4.org 'me o ne a kentse letsoho ntlafatsong ea puo ea P4' me a e kenya ts'ebetsong liforomong tse ka khonehang tse thehiloeng ho FPGA bakeng sa lisebelisoa tsa SmartNIC le NFV, a lokolla e 'ngoe ea lihlopha tsa pele tsa P416 e le karolo ea moralo oa SDNet.

6) Software.

VMware e lumela hore P4 e theha matla a maholo, boqapi le sechaba se tsamaisang phetoho e bohlokoa le e hlokahalang marang-rang. VMware esale e le karolo ea mokhatlo ona oa indasteri ho tloha qalong, kaha leqhubu le lecha la boqapi le tsamaisoa ke mekhoa e thehiloeng ho software e eketsang bokhoni ba meralo ea motheo le ho e sebelisa lihlahisoa tsa morao-rao.

Ka hona, P4 ke puo ea lenaneo e ikemetseng le e ikemetseng e sebelisoang ke indasteri le barutehi ho hlalosa ka mokhoa o ikhethang boitšoaro ba ho tsamaisa liphutheloana e le lenaneo, leo le lona le ka bokelloang bakeng sa lipakane tse ngata. Kajeno, lipheo li kenyelletsa li-switches tsa hardware le software, li-hypervisor switches, NPUs, GPUs, FPGAs, SmartNICs le ASICs.

Likarolo tse ka sehloohong tsa puo li atolosa haholo boholo ba ts'ebeliso ea eona le ho netefatsa ts'ebetsong ea eona e potlakileng meahong ea marang-rang.

Ho qala

P4 ke projeke e bulehileng, tlhaiso-leseling eohle e nepahetseng e sebakeng sa marang-rang P4.org

Sehokelo sa polokelo https://github.com/p4lang, moo o ka fumanang mohlala oa khoutu ea mohloli le lithuto.

Plugin bakeng sa Eclipse ka tšehetso ea P4, empa re ka khothaletsa P4 Studio ho tloha Barefoot.

Puo ea lenaneo la P4

Ha re shebeng lintlha tse ka sehloohong tsa kernel:

Ho Hlalosa Lihlooho - ka thuso ea bona, lihlooho tsa protocol li ikemiselitse.

Tlhaloso ea hlooho e totobatsa:

  • tlhaloso ea liforomo tsa pakete le mabitso a tšimo ea lihlooho
  • libaka tse tsitsitseng le tse feto-fetohang tse lumelletsoeng

Ka mohlala

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

Bahlahlobisisi - mosebetsi oa bona ke ho bapisa lihlooho tsa litaba.

Mohlala o latelang oa mohlahlobi o tla hlalosa phetoho ea boemo ba ho qetela ba mochini ho tloha sebakeng se le seng ho ea ho se seng sa linaha tse peli tsa ho qetela:

Puo ea lenaneo la 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;
        }
    }…
}

Mabanta - e na le lisebelisoa tsa mochini tse hokahanyang linotlolo tsa mosebelisi le liketso. Liketso - tlhaloso ea hore na sephutheloana se lokela ho sebelisoa joang.

Litafole li na le linaha (tse hlalosoang boemong ba tsamaiso) bakeng sa ho fetisa liphutheloana, li hlalosa karolo ea Match-Action

Lipakete li tsamaisana le:

  • E tšoanang hantle
  • Nako e telele ka ho fetisisa ea Prefix Match (LPM)
  • Ho nyallana hararo (ho kopanya)

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

Liketso tsohle tse ka khonehang li tlameha ho hlalosoa ka litafole esale pele.

Liketso li na le khoutu le data. Lintlha li tsoa boemong ba tsamaiso (mohlala, liaterese tsa IP / linomoro tsa boema-kepe). E 'ngoe, li-primitives tse se nang loop li ka hlalosoa ka kotloloho ketsong, empa palo ea litaelo e tlameha ho tsejoa esale pele. Ka hona, liketso ha li khone ho ba le loops kapa lipolelo tse nang le maemo.

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 — liketso tsa ho theha konopo ea ho batla, batla ka har'a tafole, etsa liketso.

Mohlala o tloaelehileng oa mojule o bontšoa setšoantšong:

Puo ea lenaneo la P4

Laola phallo - e bonts'a tatellano eo li-module tsa Match-Action li sebelisoang ka eona. Lena ke lenaneo la bohlokoa le hlalosang logic ea boemo bo holimo le tatelano ea Match-Action. Phallo ea taolo e hokahanya lintho tsohle ka ho hlalosa boemo ba taolo.

Lintho tse kantle ke lintho tse ikhethileng tse nang le meralo e hlakileng le li-interface tsa API. Mohlala, lipalo tsa cheke, lirejistara, likhaunta, likhau, joalo-joalo.

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 - meaho ea data e amanang le sephutheloana ka seng.

Ho na le mefuta e 2 ea metadata:

  Metadata e ikhethileng (sebopeho se se nang letho bakeng sa liphutheloana tsohle)
    U ka beha eng kapa eng eo u e batlang mona
    E fumaneha ho pholletsa le lipeipi
    e loketseng ho sebelisoa molemong oa hau, mohlala, ho boloka hashe ea sephutheloana

  Metadata ea ka hare - e fanoeng ke boqapi
    Boemakepe ba ho kenya, boema-kepe ba tlhahiso bo hlalositsoe mona
    Setempe sa nako ha sephutheloana se le moleng, botebo ba mola
    multicast hash / queue multicast
    Bohlokoa ba sephutheloana, bohlokoa ba sephutheloana
    Litlhaloso tsa boema-kepe (mohlala, queue)

Moqapi oa P4

P4 compiler (P4C) e hlahisa:

  1. Nako ea ho sebetsa ha sefofane sa data
  2. API ea ho laola boemo ba mochini sebakeng sa data

Puo ea lenaneo la P4

Mohlala oa sesebelisoa sa software ka puo ea P4

Likhoutu tsa mohloli li ka kopitsoa sebakeng sa polokelo.

p4lang/p4c-bm: e theha tlhophiso ea JSON bakeng sa bmv2
p4lang/bmv2: sesebelisoa sa software se utloisisang tlhophiso ea bmv2 ea JSON

Setšoantšo se bontša setšoantšo sa pokello ea morero:

Puo ea lenaneo la P4

Ho qhekella ka litafole, lirekoto tsa ho bala, li-counters:

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


Khoutu ea mohloli e na le lenaneo la simple_switch_CLI bakeng sa tšebeliso e bonolo ea software switch API.

U ka khoasolla sena le mehlala e meng sebakeng sa polokelo.

Puo ea lenaneo la P4

PES Mathoasong a lehlabula lena, Intel e saenetse tumellano ea ho fumana Barefoot Networks ka boiteko ba ho fihlela litlhoko tsa basebelisi ba Hyperscale Cloud ka potlako. Joalo ka ha Navin Shenoy (motlatsi oa motlatsi oa mopresidente le molaoli kakaretso oa Data Center Group ho Intel Corporation) a boletse, sena se tla lumella Intel ho fana ka mesebetsi e meholo le menyetla e mengata bakeng sa bareki ba setsi sa data.

Ka maikutlo a ka, ha rea ​​​​lokela ho lebala hore Intel ke moetapele oa tlhahiso ea li-chips tsa FPGA mme e na le tikoloho e ntle ea Quartus. Sena se bolela hore re ka lebella hore ka ho fihla ha Intel, Barefoot e ke ke ea atolosa mohala oa sehlahisoa feela, empa hape Quartus le P4 Studio li tla fumana lisebelisoa tse tebileng le litlatsetso ho Toffino le Toffino 2 line.

Setho sa semmuso sa sechaba sa P4 - khamphani sehlopha sa lintlha.

Source: www.habr.com

Eketsa ka tlhaloso