P4 ፕሮግራሚንግ ቋንቋ

P4 ፕሮግራሚንግ ቋንቋ
P4 የፓኬት ማዘዋወር ደንቦችን ለማዘጋጀት የተነደፈ የፕሮግራም ቋንቋ ነው። እንደ C ወይም Python ካሉ አጠቃላይ ዓላማዎች በተለየ፣ P4 ለአውታረ መረብ ማዘዋወር የተመቻቹ በርካታ ዲዛይኖች ያሉት ጎራ-ተኮር ቋንቋ ነው።

P4 ክፍት ምንጭ ቋንቋ ነው ፍቃድ ያለው እና የሚንከባከበው ለትርፍ ያልተቋቋመ ድርጅት P4 Language Consortium. እንዲሁም ለክፍት ምንጭ ኔትወርክ ፕሮጄክቶች ከትልቁ ጃንጥላ ድርጅቶች መካከል በ Open Networking Foundation (ONF) እና በሊኑክስ ፋውንዴሽን (ኤልኤፍ) ይደገፋል።
ቋንቋው በመጀመሪያ የተፈጠረው በ2013 ሲሆን በ2014 በ SIGCOMM CCR ወረቀት ላይ “ፕሮቶኮል ገለልተኛ፣ ፓኬት ማዘዋወር ፕሮሰሰር ፕሮግራሚንግ” በሚል ርዕስ ተብራርቷል።

ከተመሠረተበት ጊዜ ጀምሮ፣ P4 በከፍተኛ ደረጃ አድጓል፣ በፍጥነት በኔትወርክ መሣሪያዎች፣ የኔትወርክ አስማሚ፣ ማብሪያና ማጥፊያ እና ራውተሮችን ጨምሮ ፓኬቶችን ማስተላለፍን የሚገልጽ መስፈርት ሆኗል።

የ Open Networking ፋውንዴሽን ዋና ዳይሬክተር የሆኑት ጉሩ ፓሩልካር "ኤስዲኤን የኔትወርክ ኢንዱስትሪውን ለውጦታል፣ እና P4 ኤስዲኤንን ወደ ሌላ ደረጃ በማሸጋገር ፕሮግራማዊነትን ወደ ማዘዋወር ያደርሳል" ብለዋል።

የፒ 4 ቋንቋ በመጀመሪያ የተፈጠረው ከጎግል፣ ኢንቴል፣ ማይክሮሶፍት ምርምር፣ በባዶ እግር፣ በፕሪንስተን እና በስታንፎርድ በተገኙ መሐንዲሶች እና ተመራማሪዎች ቡድን ነው። ግቡ ቀላል ነበር፡ የሶፍትዌር ገንቢ በቀን ውስጥ የሚማረውን ለአጠቃቀም ቀላል የሆነ ቋንቋ መፍጠር እና እሽጎች በአውታረ መረቦች ላይ እንዴት እንደሚላኩ በትክክል ለመግለጽ ሊጠቀሙበት ይችላሉ።

ገና ከመጀመሪያው፣ P4 የተነደፈው ራሱን የቻለ ኢላማ እንዲሆን ነው (ማለትም በP4 ላይ የተጻፈ ፕሮግራም እንደ ASICs፣ FPGAs፣ CPUs፣ NPUs እና GPUs ባሉ የተለያዩ ኢላማዎች ላይ እንዲሰራ ሳይለወጥ ሊዘጋጅ ይችላል።

ቋንቋውም ከፕሮቶኮል ነጻ ነው (ማለትም፣ የP4 ፕሮግራም ነባር መደበኛ ፕሮቶኮሎችን ሊገልጽ ይችላል ወይም አዲስ ብጁ የአድራሻ ሁነታዎችን ለመለየት ጥቅም ላይ ይውላል)።

በኢንዱስትሪ ውስጥ, ፒ 4 ለመሳሪያ ፕሮግራሞች ጥቅም ላይ ይውላል. ምናልባት ወደፊት የኢንተርኔት-RFC እና IEEE ደረጃዎች የ P4 ዝርዝር መግለጫን ይጨምራሉ።

P4 ለሁለቱም ለፕሮግራም እና ለቋሚ ተግባር መሳሪያዎች ጥቅም ላይ ሊውል ይችላል. ለምሳሌ፣ ክፍት ምንጭ SOniC ማብሪያና ማጥፊያ OS ጥቅም ላይ በሚውለው የSwitch Abstraction Interface (SAI) APIs ውስጥ የመቀየሪያ ቧንቧ ባህሪን በትክክል ለመመዝገብ ይጠቅማል። P4 በ ONF Stratum ፕሮጀክት ውስጥ በተለያዩ ቋሚ እና ፕሮግራሚካዊ መሳሪያዎች ላይ የመቀያየር ባህሪን ለመግለፅ ስራ ላይ ይውላል።

ለመጀመሪያ ጊዜ የመቀየሪያውን እና የአውታረ መረብ አስማሚዎችን ባህሪ መግለጽ ከመሰማራቱ በፊት የጠቅላላውን አውታረ መረብ ትክክለኛ ተፈጻሚነት ያለው ሞዴል እንዲፈጥሩ ያስችልዎታል። ትላልቅ የደመና አቅራቢዎች ሶፍትዌሮችን በመጠቀም አውታረ መረቡን ሙሉ በሙሉ መሞከር እና ማረም ይችላሉ፣ ይህም ውድ ሃርድዌር ሳይጠይቁ በቤተ ሙከራ ውስጥ ያለውን የተግባቦት ሙከራ ጊዜ እና ወጪን በእጅጉ ይቀንሳል።

P4ን በመጠቀም፣ የአውታረ መረብ እቃዎች አቅራቢዎች በሁሉም ምርቶች ላይ የጋራ ስር የማዘዋወር ባህሪን፣ የሙከራ መሠረተ ልማትን እንደገና ጥቅም ላይ ማዋልን፣ የአስተዳደር ሶፍትዌር ልማትን ማቃለል እና በመጨረሻም እርስ በርስ መተሳሰብን ማረጋገጥ ይችላሉ።

እርግጥ ነው፣ P4 ሙሉ ለሙሉ አዲስ የማዞሪያ መንገዶችን የሚገልጹ ፕሮግራሞችን ለመጻፍ ሊያገለግል ይችላል። ለምሳሌ, P4 በመረጃ ማእከሎች, በድርጅት እና በአገልግሎት ሰጪ አውታረ መረቦች ውስጥ ለቴሌሜትሪ እና መለኪያዎች በስፋት ጥቅም ላይ ይውላል.

የምርምር ማህበረሰቡም ተባብሷል። በርካታ መሪ የአካዳሚክ አውታረመረብ የምርምር ቡድኖች ጭነት ማመጣጠንን፣ የጋራ መግባባትን ፕሮቶኮሎችን እና የቁልፍ እሴት መሸጎጫን ጨምሮ በP4 ፕሮግራሞች ላይ የተመሠረቱ አስደሳች አዳዲስ መተግበሪያዎችን አሳትመዋል። አዲስ የፕሮግራሚንግ ፓራዳይም እየተፈጠረ ነው፣ ፈጠራ ከሃርድዌር ወደ ሶፍትዌር እየተሸጋገረ ነው፣ ይህም ብዙ ያልተጠበቁ፣ አዲስ እና ብልሃታዊ ሀሳቦች እንዲፈጠሩ ያስችላል።

የገንቢው ማህበረሰብ ኮምፕሌተሮችን፣ የቧንቧ መስመሮችን፣ የባህርይ ሞዴሎችን፣ ኤፒአይዎችን፣ የሙከራ ማዕቀፎችን፣ አፕሊኬሽኖችን እና ሌሎችንም ጨምሮ ለኮድ ልማት ከፍተኛ አስተዋጾ አድርጓል። እንደ አሊባባ፣ AT&T፣ ባዶ እግር፣ ሲስኮ፣ ፎክስ ኔትወርኮች፣ Google፣ Intel፣ IXIA፣ Juniper Networks፣ Mellanox፣ Microsoft፣ Netcope፣ Netronome፣ VMware፣ Xilinx እና ZTE ያሉ ኩባንያዎች ራሳቸውን የወሰኑ ገንቢዎች አሏቸው። ከዩኒቨርሲቲዎች BUPT፣ Cornell፣ Harvard፣ MIT፣ NCTU፣ Princeton፣ Stanford፣ Technion፣ Tsinghua፣ UMass እና USI; እና ክፍት ምንጭ ፕሮጀክቶች CORD፣ FD.io፣ OpenDaylight፣ ONOS፣ OvS፣ SAI እና Stratum ጨምሮ P4 ራሱን የቻለ የማህበረሰብ ፕሮጀክት መሆኑን ያጎላል።

ለP4 ቋንቋ የተለመዱ የመቆጣጠሪያዎች ማመንጨት፡-

P4 ፕሮግራሚንግ ቋንቋ

የመተግበሪያ ተስፋዎች

P4 ፕሮግራሚንግ ቋንቋ
ቋንቋው አፕሊኬሽኖችን ለማዘዋወር የታሰበ በመሆኑ የፍላጎቶች ዝርዝር እና የንድፍ አማራጮች ከአጠቃላይ ዓላማ የፕሮግራም ቋንቋዎች ጋር ሲነፃፀሩ የተለያዩ ናቸው። የቋንቋው ዋና ገፅታዎች፡-

  1. ከዒላማ ትግበራ ነፃ መሆን;
  2. ጥቅም ላይ የዋለው ፕሮቶኮል (ዎች) ነፃነት;
  3. የመስክ መልሶ ማዋቀር።

ከዒላማ ትግበራ ነፃ መሆን

የፒ 4 ፕሮግራሞች የተነደፉት ራሳቸውን ችለው እንዲተገበሩ ነው፣ ይህ ማለት ለብዙ የተለያዩ የማስፈጸሚያ ሞተሮች ማለትም እንደ አጠቃላይ ዓላማ ፕሮሰሰር፣ FPGAs፣ ሲስተም-ላይ-ቺፕስ፣ የኔትወርክ ፕሮሰሰር እና ASIC ዎች ሊዘጋጁ ይችላሉ። እነዚህ የተለያዩ የማሽን ዓይነቶች ፒ 4 ኢላማዎች በመባል ይታወቃሉ፣ እና እያንዳንዱ ኢላማ የፒ 4 ምንጭ ኮድን ወደ ኢላማ ማብሪያና ማጥፊያ ሞዴል ለመቀየር አጠናቃሪ ይፈልጋል። አቀናባሪው በታለመው መሣሪያ፣ በውጫዊ ሶፍትዌር ወይም በደመና አገልግሎት ውስጥ ሊገነባ ይችላል። ለፒ 4 ፕሮግራሞች ብዙዎቹ የመጀመሪያ ኢላማዎች ለቀላል ፓኬት መቀያየር ስለነበሩ፣ ምንም እንኳን "P4 target" የበለጠ ትክክለኛ ቢሆንም "P4 switch" የሚለውን ቃል መስማት በጣም የተለመደ ነው።

ጥቅም ላይ የዋለው የፕሮቶኮል(ዎች) ነፃነት

P4 ከፕሮቶኮል ነጻ ነው። ይህ ማለት ቋንቋው እንደ አይፒ፣ ኢተርኔት፣ TCP፣ VxLAN ወይም MPLS ላሉ የተለመዱ ፕሮቶኮሎች ቤተኛ ድጋፍ የለውም ማለት ነው። በምትኩ፣ የፒ 4 ፕሮግራመር በፕሮግራሙ ውስጥ የሚፈለጉትን ፕሮቶኮሎች የርዕስ ቅርጸቶች እና የመስክ ስሞችን ይገልፃል፣ እነዚህም በተራው በተዘጋጀው ፕሮግራም እና በታለመው መሳሪያ እየተተረጎመ እና እየተስተናገደ ነው።

የመስክ መልሶ ማዋቀር

የፕሮቶኮል ነጻነት እና ረቂቅ የቋንቋ ሞዴል እንደገና ማዋቀርን ይፈቅዳል-P4 ኢላማዎች ስርዓቱ ከተዘረጋ በኋላ የፓኬት ሂደትን መቀየር መቻል አለበት። ይህ ችሎታ በተለምዶ ከቋሚ ተግባር የተቀናጁ ዑደቶች ይልቅ በአጠቃላይ ዓላማ ፕሮሰሰር ወይም በኔትወርክ ፕሮሰሰር ከማስተላለፍ ጋር የተያያዘ ነው።

ምንም እንኳን በቋንቋው ውስጥ የአንድ የተወሰነ የፕሮቶኮሎች ስብስብ አፈፃፀም ማመቻቸትን የሚከለክል ምንም ነገር ባይኖርም, እነዚህ ማመቻቸት ለቋንቋው ደራሲ የማይታዩ እና በመጨረሻም የስርዓቱን እና የግቦቹን ተለዋዋጭነት እና እንደገና ማዋቀርን ሊቀንስ ይችላል.

እነዚህ የቋንቋ ባህሪያት በኔትወርክ መሠረተ ልማት ውስጥ በስፋት ጥቅም ላይ በማዋል ላይ በማተኮር በመጀመሪያ ፈጣሪዎቹ የተቀመጡ ናቸው.

ቋንቋው አስቀድሞ በብዙ ኩባንያዎች ውስጥ ጥቅም ላይ ውሏል፡-

1) የከፍተኛ ደረጃ የውሂብ ማዕከሎች;

የቻይናው ኩባንያ ቴንሰንት በዓለም ላይ ትልቁ የኢንቨስትመንት ኩባንያ እና ከትላልቅ የካፒታል ኩባንያዎች አንዱ ነው። በቻይናም ሆነ በዓለም ላይ ባሉ ሌሎች አገሮች ውስጥ የሚገኙ የቴንስትስ ቅርንጫፎች በተለያዩ የኢንተርኔት አገልግሎቶች፣ በአርቴፊሻል ኢንተለጀንስ እና በኤሌክትሮኒካዊ መዝናኛ መስክ እድገቶችን ጨምሮ በተለያዩ የከፍተኛ የቴክኖሎጂ ንግድ ዘርፎች ላይ ያተኮሩ ናቸው።

ፒ 4 እና ፕሮግራሚል ራውቲንግ በኩባንያው የኔትወርክ አርክቴክቸር ውስጥ ጥቅም ላይ የሚውሉ የላቀ ቴክኖሎጂዎች ናቸው።

እንደ አንዱ ፈጣሪዎች፣ Google በኔትወርኩ ኢንደስትሪ እና በተለይም በመረጃ ማእከል አርክቴክቸር ዲዛይን ውስጥ ፒ 4ን በፍጥነት መቀበሉን በማወቁ ኩራት ይሰማዋል።

2) የንግድ ድርጅቶች;

ጎልድማን ሳችስ ከክፍት ምንጭ ማህበረሰብ ጋር አብሮ በመስራት የጋራ መመዘኛዎችን እና መፍትሄዎችን በማዘጋጀት የኔትወርክ መሠረተ ልማትን ለመፍጠር እና ለደንበኞች የተሻሉ መፍትሄዎችን ለማቅረብ ይጠቀማል።

3) ማምረት;

መላው የኔትወርክ ኢንዱስትሪ የማስተላለፊያ ባህሪን በልዩ ሁኔታ ከሚገልጽ እንደ P4 ካለው ቋንቋ ይጠቀማል። Cisco ይህንን ቋንቋ ለመጠቀም የምርት መስመሮቹን በማስተላለፍ ያምናል።

Juniper Networks P4 እና P4 Runtimeን በበርካታ ምርቶች ውስጥ አካትቷል፣ እና ጁኒፐር የተከተተ ፕሮሰሰር እና የሶፍትዌር ኮድ ፕሮግራማዊ መዳረሻን ይሰጣል።

Ruijie Networks የ P4 ጠንካራ ደጋፊ እና ለአውታረ መረቦች የሚያመጣው ጥቅም ነው። በ P4, ኩባንያው ለብዙ ደንበኞች ምርጥ-ክፍል መፍትሄዎችን መፍጠር እና ማድረስ ይችላል.

4) የቴሌኮሙኒኬሽን አቅራቢዎች;

AT&T በኔትወርኩ ውስጥ ማየት የሚፈልገውን ባህሪ ለመወሰን P4 ከመጀመሪያዎቹ አንዱ የሆነው P4ን ቀደምት አሳዳጊ ነበር።

በዶይቸ ቴሌኮም ቋንቋው እንደ የመዳረሻ 4.0 ፕሮግራም አካል ሆኖ ቁልፍ የኔትወርክ ተግባራትን ለመቅረጽ ይጠቅማል።

5) ሴሚኮንዳክተር ኢንዱስትሪ;

ቋንቋው Barefoot የሶፍትዌር አቅምን ወደ አውታረመረብ ማዞሪያ አውሮፕላን ለማድረስ አዲስ ፓራዲም እንዲተገብር አስችሎታል።

Xilinx ከ P4.org መስራቾች አንዱ ሲሆን በፒ 4 ቋንቋ እድገት ላይ በንቃት ይሳተፋል እና በ FPGA ላይ የተመሰረቱ ፕሮግራሚካዊ መድረኮችን ለ SmartNIC እና NFV ሃርድዌር በመተግበር ከመጀመሪያዎቹ P416 ማቀናበሪያዎች አንዱን የ SDNet ዲዛይን አካል አድርጎ አውጥቷል።

6) ሶፍትዌር.

ቪኤምዌር P4 በኔትወርኩ ውስጥ ትርጉም ያለው እና አስፈላጊ ለውጥን የሚያመጣ ታላቅ ሃይል፣ ፈጠራ እና ማህበረሰብ ይፈጥራል ብሎ ያምናል። አዲስ የፈጠራ ማዕበል በሶፍትዌር ላይ በተመሰረቱ አቀራረቦች የሚመራ በመሆኑ የመሠረተ ልማት አቅሞችን የሚያራዝሙ እና በቅርብ ጊዜ ምርቶች ውስጥ የሚተገብሩት ቪኤምዌር የዚህ ኢንዱስትሪ እንቅስቃሴ አካል ከመጀመሪያው ጀምሮ ነው።

ስለዚህም P4 ዒላማ-ገለልተኛ እና ከፕሮቶኮል-ገለልተኛ የፕሮግራም አወጣጥ ቋንቋ ሲሆን በኢንዱስትሪ እና በአካዳሚዎች የፓኬት ማዘዋወር ባህሪን እንደ ፕሮግራም በልዩ ሁኔታ ለመግለጽ ጥቅም ላይ የሚውል ሲሆን ይህም በተራው ለብዙ ዒላማዎች ሊጠቃለል ይችላል። ዛሬ፣ ኢላማዎች ሃርድዌር እና የሶፍትዌር መቀየሪያዎች፣ ሃይፐርቫይዘር መቀየሪያዎች፣ ኤንፒዩዎች፣ ጂፒዩዎች፣ FPGAs፣ SmartNICs እና ASICs ያካትታሉ።

የቋንቋው ዋና ገፅታዎች የአተገባበሩን ወሰን በከፍተኛ ሁኔታ ያሰፋሉ እና በኔትወርክ አርክቴክቸር ውስጥ ፈጣን ትግበራውን ያረጋግጣሉ.

ቢያስቆጥርም ገና መጀመሩ ነው

P4 ክፍት ፕሮጀክት ነው, ሁሉም ተዛማጅ መረጃዎች በድር ጣቢያው ላይ ይገኛሉ P4.org

የማጠራቀሚያ አገናኝ https://github.com/p4langየምሳሌ ምንጭ ኮድ እና አጋዥ ስልጠናዎችን የሚያገኙበት።

Плагин ለ Eclipse በ P4 ድጋፍ ፣ ግን ልንመክረው እንችላለን P4 ስቱዲዮ ከባዶ እግር.

P4 ፕሮግራሚንግ ቋንቋ

ዋና ዋናዎቹን የከርነል ማጠቃለያዎች እንይ፡-

ራስጌዎችን መግለጽ - በእነሱ እርዳታ የፕሮቶኮል ራስጌዎች ተወስነዋል.

የራስጌ ፍቺው ይገልጻል፡-

  • የፓኬት ቅርፀቶች እና የራስጌ መስክ ስሞች መግለጫ
  • ቋሚ እና ተለዋዋጭ የተፈቀዱ መስኮች

ለምሳሌ

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

ተንታኞች - ተግባራቸው አርዕስተ ዜናዎችን መተንተን ነው.

የሚከተለው ተንታኝ ምሳሌ የማሽኑን የመጨረሻ ሁኔታ ከአንድ የመጀመሪያ ሁኔታ ወደ ከሁለት የመጨረሻ ግዛቶች ወደ አንዱ የሚደረገውን ሽግግር ይወስናል።

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

ወዘተ - የተጠቃሚ ቁልፎችን ከእርምጃዎች ጋር የሚያገናኝ የማሽን ግዛቶችን ይዟል። ድርጊቶች - ፓኬጁን እንዴት ማቀናበር እንዳለበት መግለጫ.

ሠንጠረዦቹ ለፓኬት ማስተላለፍ ግዛቶችን (በአስተዳደር ደረጃ የተገለጹ) ይዘዋል፣ ተዛማጅ-ድርጊት ክፍልን ይግለጹ።

እሽጎች የሚዛመዱት በ፡

  • ትክክለኛ ግጥሚያ
  • ረጅሙ ቅድመ ቅጥያ ተዛማጅ (LPM)
  • ሶስት ጊዜ ማዛመድ (ጭምብል)

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

ሁሉም ሊሆኑ የሚችሉ ድርጊቶች አስቀድመው በሰንጠረዦች ውስጥ መገለጽ አለባቸው.

እርምጃዎች ኮድ እና ውሂብ ያካትታሉ። መረጃው የሚመጣው ከአስተዳደር ደረጃ (ለምሳሌ የአይፒ አድራሻዎች/ወደብ ቁጥሮች) ነው። የተወሰኑ፣ ሉፕ-ነጻ የሆኑ ፕሪሚየቶች በድርጊቱ ውስጥ በቀጥታ ሊገለጹ ይችላሉ፣ ነገር ግን የመመሪያዎቹ ብዛት መተንበይ አለበት። ስለዚህ፣ ድርጊቶች ምንም ቀለበቶችን ወይም ሁኔታዊ መግለጫዎችን ሊይዙ አይችሉም።

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

ተዛማጅ-ድርጊት ሞጁሎች - የፍለጋ ቁልፍ ለመፍጠር እርምጃዎች ፣ በሰንጠረዥ ውስጥ ይፈልጉ ፣ ድርጊቶችን ያከናውኑ።

የአንድ ሞጁል ዓይነተኛ ምሳሌ በሥዕሉ ላይ ይታያል፡-

P4 ፕሮግራሚንግ ቋንቋ

የመቆጣጠሪያ ፍሰት - Match-Action ሞጁሎች ጥቅም ላይ የሚውሉበትን ቅደም ተከተል ያሳያል። ይህ የከፍተኛ ደረጃ አመክንዮ እና የግጥሚያ-ድርጊት ቅደም ተከተልን የሚገልጽ ወሳኝ ፕሮግራም ነው። የመቆጣጠሪያው ፍሰት የመቆጣጠሪያውን ደረጃ በመወሰን ሁሉንም ነገሮች ያገናኛል.

ውጫዊ እቃዎች በግልጽ የተቀመጠ አርክቴክቸር እና ኤፒአይ በይነገጾች ያላቸው የተወሰኑ ነገሮች ናቸው። ለምሳሌ የቼክሰም ስሌት፣ መዝገቦች፣ ቆጣሪዎች፣ ቆጣሪዎች፣ ወዘተ.

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
}

ዲበ ውሂብ - ከእያንዳንዱ እሽግ ጋር የተያያዙ የውሂብ አወቃቀሮች.

2 ዓይነት ሜታዳታ አሉ፡-

  á‰ĽáŒ ሜታዳታ (ለሁሉም ጥቅሎች ባዶ መዋቅር)
    á‹¨áˆáˆˆáŠ¨á‹áŠ• እዚህ ማስቀመጥ ትችላለህ
    á‰ áˆ˜áˆ‹á‹ የቧንቧ መሾመር ላይ ይገኛል
    áˆˆáˆŤáˆľá‹Ž ዓላማዎች ለመጠቀም ምቹ ፣ ለምሳሌ ፣ ጥቅል ሃሽ ለማከማቸት

  á‹¨á‹áˆľáŒĽ ሜታዳታ - በሥነ ሕንፃ የቀረበ
    á‹¨áŒá‰¤á‰ľ ወደብ፣ የውጤት ወደብ እዚህ ተገልጸዋል።
    á‹¨áŒŠá‹œ ማህተም ፓኬቱ በተሰለፈበት ጊዜ፣ የወረፋ ጥልቀት
    á‰Łáˆˆá‰Ľá‹™-ካስት ሃሽ / ባለብዙ-ካስት ወረፋ
    á‹¨áŒĽá‰…ል ቅድሚያ, የጥቅል አስፈላጊነት
    á‹¨á‹áŒ¤á‰ľ ወደብ ዝርዝር (ለምሳሌ የውጤት ወረፋ)

P4 ማጠናከሪያ

የፒ 4 ማቀናበሪያ (P4C) ያመነጫል፡-

  1. የውሂብ አውሮፕላን አሂድ ጊዜ
  2. በመረጃ አውሮፕላን ውስጥ የማሽን ሁኔታን ለማስተዳደር API

P4 ፕሮግራሚንግ ቋንቋ

በP4 ቋንቋ የሶፍትዌር መቀየሪያ ምሳሌ

የምንጭ ኮዶች ከማከማቻው ሊወርዱ ይችላሉ።

p4lang/p4c-bm: JSON ውቅር ለ bmv2 ይፈጥራል
p4lang/bmv2፡ የ bmv2 ስሪት JSON ውቅረቶችን የሚረዳ የሶፍትዌር ማብሪያ / ማጥፊያ

በሥዕሉ ላይ የፕሮጀክት ማጠናቀር ንድፍ ያሳያል፡-

P4 ፕሮግራሚንግ ቋንቋ

ከጠረጴዛዎች ፣ ከንባብ መዝገቦች ፣ ቆጣሪዎች ጋር የተደረጉ ማጭበርበሮች

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


የምንጭ ኮድ የሶፍትዌር መቀየሪያ ኤፒአይን ለመጠቀም ቀላል_switch_CLI ፕሮግራም ይዟል።

ይህንን እና ሌሎች ምሳሌዎችን ከማከማቻው ማውረድ ይችላሉ።

P4 ፕሮግራሚንግ ቋንቋ

PS በዚህ ክረምት መጀመሪያ ላይ ኢንቴል የሃይፐር ሚዛን ክላውድ ተጠቃሚዎችን ፍላጎት በፍጥነት ለማሟላት በባዶ እግር ኔትወርኮችን ለማግኘት ስምምነት ተፈራርሟል። ናቪን ሼኖይ (በኢንቴል ኮርፖሬሽን የዳታ ሴንተር ግሩፕ ዋና ስራ አስፈፃሚ እና ዋና ስራ አስኪያጅ) እንደተናገሩት ይህ ኢንቴል ትላልቅ የስራ ጫናዎችን እና ለዳታ ማእከል ደንበኞች ተጨማሪ እድሎችን እንዲያቀርብ ያስችለዋል።

በግሌ አስተያየት ኢንቴል የ FPGA ቺፖችን በማምረት ረገድ መሪ እንደሆነ እና እጅግ በጣም ጥሩ የኳርትስ አከባቢ እንዳለው መዘንጋት የለብንም ። ይህ ማለት ኢንቴል ሲመጣ ባርፉት የምርት መስመሩን ከማስፋፋት ባለፈ ኳርተስ እና ፒ 4 ስቱዲዮ በቶፊኖ እና ቶፊኖ 2 መስመር ላይ ከባድ ዝመናዎችን እና ጭማሪዎችን እንደሚያገኙ እንጠብቃለን።

የ P4 ማህበረሰብ ኦፊሴላዊ አባል - ኩባንያ የምክንያት ቡድን.

ምንጭ: hab.com

አስተያየት ያክሉ