P4 நிரலாக்க மொழி

P4 நிரலாக்க மொழி
P4 என்பது நிரல் பாக்கெட் ரூட்டிங் விதிகளுக்கு வடிவமைக்கப்பட்ட ஒரு நிரலாக்க மொழியாகும். C அல்லது Python போன்ற பொது-நோக்க மொழி போலல்லாமல், P4 என்பது நெட்வொர்க் ரூட்டிங்கிற்கு உகந்த பல வடிவமைப்புகளைக் கொண்ட டொமைன் சார்ந்த மொழியாகும்.

P4 என்பது ஒரு திறந்த மூல மொழியாகும், இது P4 மொழி கூட்டமைப்பு எனப்படும் இலாப நோக்கற்ற அமைப்பால் உரிமம் பெற்று பராமரிக்கப்படுகிறது. இது ஓபன் நெட்வொர்க்கிங் ஃபவுண்டேஷன் (ONF) மற்றும் லினக்ஸ் அறக்கட்டளை (LF) ஆகியவற்றால் ஆதரிக்கப்படுகிறது, இது திறந்த மூல நெட்வொர்க்கிங் திட்டங்களுக்கான மிகப்பெரிய குடை அமைப்புகளில் இரண்டு.
இந்த மொழி முதலில் 2013 இல் உருவாக்கப்பட்டது மற்றும் 2014 SIGCOMM CCR தாளில் "நெறிமுறை சுயாதீன, பாக்கெட் ரூட்டிங் செயலி நிரலாக்கம்" என்ற தலைப்பில் விவரிக்கப்பட்டது.

அதன் தொடக்கத்திலிருந்தே, P4 அதிவேகமாக வளர்ந்து, பரிணாம வளர்ச்சியடைந்துள்ளது, நெட்வொர்க் அடாப்டர்கள், சுவிட்சுகள் மற்றும் ரவுட்டர்கள் உள்ளிட்ட பிணைய சாதனங்கள் மூலம் பாக்கெட்டுகளின் பரிமாற்றத்தை விவரிப்பதற்கான ஒரு தரநிலையாக விரைவாக மாறியது.

"எஸ்டிஎன் நெட்வொர்க்கிங் துறையை மாற்றியுள்ளது, மேலும் ரூட்டிங்கில் புரோகிராமபிலிட்டியை கொண்டு வருவதன் மூலம் பி4 எஸ்டிஎன்ஐ அடுத்த கட்டத்திற்கு கொண்டு செல்கிறது" என்று ஓபன் நெட்வொர்க்கிங் ஃபவுண்டேஷனின் நிர்வாக இயக்குனர் குரு பருல்கர் கூறினார்.

P4 மொழியானது Google, Intel, Microsoft Research, Barefoot, Princeton மற்றும் Stanford ஆகியவற்றின் பொறியாளர்கள் மற்றும் ஆராய்ச்சியாளர்களின் குழுவால் முதலில் உருவாக்கப்பட்டது. இலக்கு எளிமையானது: ஒரு மென்பொருள் உருவாக்குநர் ஒரு நாளில் கற்றுக் கொள்ளக்கூடிய எளிதான மொழியை உருவாக்கி, நெட்வொர்க்குகள் முழுவதும் பாக்கெட்டுகள் எவ்வாறு அனுப்பப்படுகின்றன என்பதைத் துல்லியமாக விவரிக்க பயன்படுத்தவும்.

ஆரம்பத்திலிருந்தே, P4 ஆனது இலக்கு சார்பற்றதாக வடிவமைக்கப்பட்டுள்ளது (அதாவது P4 இல் எழுதப்பட்ட நிரல் ASICகள், FPGAகள், CPUகள், NPUகள் மற்றும் GPUகள் போன்ற பல்வேறு இலக்குகளில் இயங்குவதற்கு மாறாமல் தொகுக்கப்படலாம்).

மொழியும் நெறிமுறை சார்பற்றது (அதாவது, P4 நிரல் ஏற்கனவே உள்ள நிலையான நெறிமுறைகளை விவரிக்கலாம் அல்லது புதிய தனிப்பயன் முகவரி முறைகளைக் குறிப்பிடப் பயன்படும்).

தொழில்துறையில், சாதன நிரலாக்கத்திற்கு P4 பயன்படுத்தப்படுகிறது. ஒருவேளை எதிர்காலத்தில் இன்டர்நெட்-ஆர்எஃப்சி மற்றும் ஐஇஇஇ தரநிலைகளில் பி4 விவரக்குறிப்பும் இருக்கும்.

நிரல்படுத்தக்கூடிய மற்றும் நிலையான செயல்பாட்டு சாதனங்களுக்கு P4 பயன்படுத்தப்படலாம். எடுத்துக்காட்டாக, ஓப்பன் சோர்ஸ் SONiC சுவிட்ச் ஓஎஸ் பயன்படுத்தும் ஸ்விட்ச் அப்ஸ்ட்ராக்ஷன் இன்டர்ஃபேஸ் (எஸ்ஏஐ) ஏபிஐகளில் சுவிட்ச் பைப்லைன் நடத்தையை துல்லியமாக பதிவு செய்ய இது பயன்படுகிறது. பல்வேறு நிலையான மற்றும் நிரல்படுத்தக்கூடிய சாதனங்களில் மாறுதல் நடத்தையை விவரிக்க ONF ஸ்ட்ராட்டம் திட்டத்திலும் P4 பயன்படுத்தப்படுகிறது.

முதல் முறையாக, சுவிட்ச் மற்றும் நெட்வொர்க் அடாப்டர்களின் நடத்தையை விவரிப்பது, வரிசைப்படுத்துவதற்கு முன் முழு நெட்வொர்க்கின் துல்லியமான இயங்கக்கூடிய மாதிரியை உருவாக்க உங்களை அனுமதிக்கிறது. பெரிய கிளவுட் வழங்குநர்கள் மென்பொருளைப் பயன்படுத்தி நெட்வொர்க்கை முழுமையாகச் சோதித்து பிழைத்திருத்தம் செய்யலாம், விலையுயர்ந்த வன்பொருள் தேவையில்லாமல் ஆய்வகத்தில் இயங்கக்கூடிய சோதனையின் நேரத்தையும் செலவையும் கணிசமாகக் குறைக்கிறது.

P4 ஐப் பயன்படுத்துவதன் மூலம், நெட்வொர்க் உபகரண விற்பனையாளர்கள் அனைத்து தயாரிப்புகளிலும் பொதுவான அடிப்படை ரூட்டிங் நடத்தையை எதிர்பார்க்கலாம், சோதனை உள்கட்டமைப்பை மீண்டும் பயன்படுத்த அனுமதிக்கிறது, மேலாண்மை மென்பொருள் உருவாக்கத்தை எளிதாக்குகிறது மற்றும் இறுதியில் இயங்கக்கூடிய தன்மையை உறுதி செய்கிறது.

நிச்சயமாக, முற்றிலும் புதிய ரூட்டிங் வழிகளை விவரிக்கும் நிரல்களை எழுத P4 பயன்படுத்தப்படலாம். எடுத்துக்காட்டாக, தரவு மையங்கள், நிறுவன மற்றும் சேவை வழங்குநர் நெட்வொர்க்குகளில் டெலிமெட்ரி மற்றும் அளவீடுகளுக்கு P4 பரவலாகப் பயன்படுத்தப்படுகிறது.

ஆராய்ச்சி சமூகமும் முடுக்கிவிட்டுள்ளது. சுமை சமநிலை, ஒருமித்த நெறிமுறைகள் மற்றும் முக்கிய மதிப்பு கேச்சிங் உள்ளிட்ட பல முன்னணி கல்வி நெட்வொர்க்கிங் ஆராய்ச்சி குழுக்கள் P4 நிரல்களின் அடிப்படையில் அற்புதமான புதிய பயன்பாடுகளை வெளியிட்டுள்ளன. ஒரு புதிய நிரலாக்க முன்னுதாரணம் உருவாக்கப்படுகிறது, புதுமை வன்பொருளிலிருந்து மென்பொருளுக்கு நகர்கிறது, இது பல எதிர்பாராத, புதிய மற்றும் தனித்துவமான யோசனைகள் வெளிவர அனுமதிக்கிறது.

கம்பைலர்கள், பைப்லைன்கள், நடத்தை மாதிரிகள், APIகள், சோதனை கட்டமைப்புகள், பயன்பாடுகள் மற்றும் பலவற்றை உள்ளடக்கிய குறியீடு மேம்பாட்டிற்கு டெவலப்பர் சமூகம் குறிப்பிடத்தக்க பங்களிப்பைச் செய்துள்ளது. Alibaba, AT&T, Barefoot, Cisco, Fox Networks, 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. புல மறுசீரமைப்பு.

இலக்கு செயல்படுத்தலில் இருந்து சுதந்திரம்

P4 நிரல்கள் செயல்படுத்தல் சுயாதீனமாக வடிவமைக்கப்பட்டுள்ளன, அதாவது பொது-பயன்பாட்டு செயலிகள், FPGAகள், சிஸ்டம்-ஆன்-சிப்ஸ், நெட்வொர்க் செயலிகள் மற்றும் ASICகள் போன்ற பல்வேறு வகையான செயலாக்க இயந்திரங்களுக்காக அவை தொகுக்கப்படலாம். இந்த வெவ்வேறு வகையான இயந்திரங்கள் P4 இலக்குகள் என அழைக்கப்படுகின்றன, மேலும் ஒவ்வொரு இலக்கிற்கும் P4 மூலக் குறியீட்டை இலக்கு சுவிட்ச் மாதிரியாக மாற்ற ஒரு கம்பைலர் தேவைப்படுகிறது. கம்பைலரை இலக்கு சாதனம், வெளிப்புற மென்பொருள் அல்லது கிளவுட் சேவையில் கட்டமைக்க முடியும். P4 நிரல்களுக்கான பல அசல் இலக்குகள் எளிமையான பாக்கெட் மாறுதலுக்காக இருந்ததால், "P4 இலக்கு" மிகவும் துல்லியமாக இருந்தாலும் "P4 சுவிட்ச்" என்ற சொல்லைக் கேட்பது மிகவும் பொதுவானது.

பயன்படுத்தப்படும் நெறிமுறை(களின்) சுதந்திரம்

P4 நெறிமுறை சார்பற்றது. அதாவது IP, Ethernet, TCP, VxLAN அல்லது MPLS போன்ற பொதுவான நெறிமுறைகளுக்கு மொழிக்கு சொந்த ஆதரவு இல்லை. அதற்கு பதிலாக, P4 புரோகிராமர் நிரலில் உள்ள தேவையான நெறிமுறைகளின் தலைப்பு வடிவங்கள் மற்றும் புலப் பெயர்களை விவரிக்கிறது, அவை தொகுக்கப்பட்ட நிரல் மற்றும் இலக்கு சாதனத்தால் விளக்கப்பட்டு செயலாக்கப்படுகின்றன.

புல மறுசீரமைப்பு

நெறிமுறை சுதந்திரம் மற்றும் சுருக்க மொழி மாதிரி மறுகட்டமைக்க அனுமதிக்கிறது - P4 இலக்குகள் கணினி பயன்படுத்தப்பட்ட பிறகு பாக்கெட் செயலாக்கத்தை மாற்ற முடியும். இந்த திறன் பாரம்பரியமாக நிலையான-செயல்பாட்டு ஒருங்கிணைந்த சுற்றுகளை விட பொது-நோக்க செயலிகள் அல்லது பிணைய செயலிகள் மூலம் ரூட்டிங் செய்வதோடு தொடர்புடையது.

ஒரு குறிப்பிட்ட நெறிமுறைகளின் செயல்திறனை மேம்படுத்துவதைத் தடுக்கும் மொழியில் எதுவும் இல்லை என்றாலும், இந்த மேம்படுத்தல்கள் மொழி ஆசிரியருக்கு கண்ணுக்கு தெரியாதவை மற்றும் இறுதியில் கணினி மற்றும் இலக்குகளின் நெகிழ்வுத்தன்மையையும் அவற்றின் மறுகட்டமைப்பையும் குறைக்கலாம்.

இந்த மொழியின் பண்புகள் ஆரம்பத்தில் அதன் படைப்பாளர்களால் நெட்வொர்க் உள்கட்டமைப்பில் அதன் பரவலான பயன்பாட்டை மையமாகக் கொண்டு அமைக்கப்பட்டன.

மொழி ஏற்கனவே பல நிறுவனங்களில் பயன்படுத்தப்படுகிறது:

1) ஹைபர்ஸ்கேல் தரவு மையங்கள்;

சீன நிறுவனமான டென்சென்ட் உலகின் மிகப்பெரிய முதலீட்டு நிறுவனம் மற்றும் மிகப்பெரிய துணிகர மூலதன நிறுவனங்களில் ஒன்றாகும். டென்சென்ட்டின் துணை நிறுவனங்கள், சீனாவிலும் மற்றும் உலகெங்கிலும் உள்ள பிற நாடுகளிலும், உயர் தொழில்நுட்ப வணிகத்தின் பல்வேறு துறைகளில் நிபுணத்துவம் பெற்றவை, இதில் பல்வேறு இணைய சேவைகள், செயற்கை நுண்ணறிவு மற்றும் மின்னணு பொழுதுபோக்கு துறையில் முன்னேற்றங்கள் உள்ளன.

P4 மற்றும் நிரல்படுத்தக்கூடிய ரூட்டிங் ஆகியவை நிறுவனத்தின் நெட்வொர்க் கட்டமைப்பில் பயன்படுத்தப்படும் மேம்பட்ட தொழில்நுட்பங்கள்.

உருவாக்குநர்களில் ஒருவராக, நெட்வொர்க்கிங் துறையில் மற்றும் குறிப்பாக டேட்டா சென்டர் கட்டிடக்கலை வடிவமைப்பில் P4 இன் விரைவான தத்தெடுப்பைக் குறிப்பிடுவதில் Google பெருமிதம் கொள்கிறது.

2) வணிக நிறுவனங்கள்;

கோல்ட்மேன் சாச்ஸ் திறந்த மூல சமூகத்துடன் இணைந்து பணியாற்றுவதையும், நெட்வொர்க் உள்கட்டமைப்பை புதுமைப்படுத்துவதற்கும் வாடிக்கையாளர்களுக்கு சிறந்த தீர்வுகளை வழங்குவதற்கும் பொதுவான தரநிலைகள் மற்றும் தீர்வுகளை உருவாக்குவதைப் பயன்படுத்திக் கொள்கிறது.

3) உற்பத்தி;

ஃபார்வர்டிங் நடத்தையை தனித்துவமாக வரையறுக்கும் P4 போன்ற மொழியிலிருந்து முழு நெட்வொர்க்கிங் துறையும் பயனடையும். இந்த மொழியைப் பயன்படுத்த, அதன் தயாரிப்பு வரிகளை மாற்றுவதையும் சிஸ்கோ நம்புகிறது.

ஜூனிபர் நெட்வொர்க்குகள் பல தயாரிப்புகளில் P4 மற்றும் P4 இயக்க நேரத்தைச் சேர்த்துள்ளன, மேலும் ஜூனிபர் உட்பொதிக்கப்பட்ட செயலி மற்றும் அதன் மென்பொருள் குறியீட்டிற்கான நிரல் அணுகலை வழங்குகிறது.

Ruijie நெட்வொர்க்குகள் P4 இன் வலுவான ஆதரவாளர் மற்றும் நெட்வொர்க்குகளுக்கு அது கொண்டு வரும் நன்மைகள். P4 மூலம், நிறுவனம் பரந்த அளவிலான வாடிக்கையாளர்களுக்கு சிறந்த-இன்-கிளாஸ் தீர்வுகளை உருவாக்கி வழங்க முடியும்.

4) தொலைத்தொடர்பு வழங்குநர்கள்;

AT&T ஆனது P4-ஐ ஆரம்பகாலத்தில் ஏற்றுக்கொண்டது, அதன் நெட்வொர்க்குகளில் பார்க்க விரும்பும் நடத்தையை வரையறுக்க P4 ஐப் பயன்படுத்திய முதல் நிறுவனங்களில் ஒன்றாகும், மேலும் அதன் நெட்வொர்க்கில் P4 நிரல்படுத்தக்கூடிய பகிர்தல் சாதனங்களைப் பயன்படுத்தியது.

Deutsche Telekom இல், அணுகல் 4.0 நிரலின் ஒரு பகுதியாக முக்கிய நெட்வொர்க் செயல்பாடுகளை முன்மாதிரி செய்ய மொழி பயன்படுத்தப்படுகிறது.

5) குறைக்கடத்தி தொழில்;

நெட்வொர்க் ரூட்டிங் விமானத்திற்கு மென்பொருள் திறன்களை வழங்குவதற்கான ஒரு புதிய முன்னுதாரணத்தை செயல்படுத்த மொழி Barefoot ஐ செயல்படுத்தியது.

Xilinx P4.org இன் நிறுவனர்களில் ஒருவராக இருந்தார், மேலும் P4 மொழியின் வளர்ச்சியில் தீவிரமாக ஈடுபட்டு அதை SmartNIC மற்றும் NFV வன்பொருளுக்கான FPGA-அடிப்படையிலான நிரல்படுத்தக்கூடிய தளங்களில் செயல்படுத்தி, SDNet வடிவமைப்பின் ஒரு பகுதியாக முதல் P416 கம்பைலர்களில் ஒன்றை வெளியிட்டது.

6) மென்பொருள்.

நெட்வொர்க்கில் அர்த்தமுள்ள மற்றும் அவசியமான மாற்றத்தை உண்டாக்கும் மிகப்பெரிய ஆற்றல், புதுமை மற்றும் சமூகத்தை P4 உருவாக்குகிறது என்று VMware நம்புகிறது. VMware தொடக்கத்திலிருந்தே இந்தத் தொழில்துறை இயக்கத்தின் ஒரு பகுதியாக இருந்து வருகிறது, புதிய கண்டுபிடிப்பு அலையானது மென்பொருள் அடிப்படையிலான அணுகுமுறைகளால் இயக்கப்படுகிறது, இது உள்கட்டமைப்பு திறன்களை விரிவுபடுத்துகிறது மற்றும் சமீபத்திய தயாரிப்புகளில் செயல்படுத்துகிறது.

எனவே, P4 என்பது ஒரு இலக்கு-சுயாதீனமான மற்றும் நெறிமுறை-சுயாதீனமான நிரலாக்க மொழியாகும், இது பாக்கெட் ரூட்டிங் நடத்தையை ஒரு நிரலாக தனித்துவமாக வரையறுக்க தொழில்துறை மற்றும் கல்வியாளர்களால் பயன்படுத்தப்படுகிறது, இது பல இலக்குகளுக்கு தொகுக்கப்படலாம். இன்று, வன்பொருள் மற்றும் மென்பொருள் சுவிட்சுகள், ஹைப்பர்வைசர் சுவிட்சுகள், NPUகள், GPUகள், FPGAகள், SmartNICகள் மற்றும் ASICகள் ஆகியவை இலக்குகளில் அடங்கும்.

மொழியின் முக்கிய அம்சங்கள் அதன் பயன்பாட்டின் நோக்கத்தை கணிசமாக விரிவுபடுத்துகின்றன மற்றும் பிணைய கட்டமைப்புகளில் அதன் விரைவான செயல்பாட்டை உறுதி செய்கின்றன.

தொடங்குதல்

P4 ஒரு திறந்த திட்டமாகும், அனைத்து தொடர்புடைய தகவல்களும் இணையதளத்தில் உள்ளன P4.org

களஞ்சிய இணைப்பு https://github.com/p4lang, நீங்கள் எடுத்துக்காட்டு மூலக் குறியீடு மற்றும் பயிற்சிகளைப் பெறலாம்.

Плагин P4 ஆதரவுடன் கிரகணத்திற்கு, ஆனால் நாங்கள் பரிந்துரைக்கலாம் பி4 ஸ்டுடியோ வெறுங்காலிலிருந்து.

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 நிரலாக்க மொழி

கட்டுப்பாடு ஓட்டம் — போட்டி-செயல் தொகுதிகள் பயன்படுத்தப்படும் வரிசையைக் குறிக்கிறது. இது உயர் நிலை தர்க்கம் மற்றும் போட்டி-செயல் வரிசையை வரையறுக்கும் ஒரு கட்டாய நிரலாகும். கட்டுப்பாட்டின் அளவை வரையறுப்பதன் மூலம் கட்டுப்பாட்டு ஓட்டம் அனைத்து பொருட்களையும் இணைக்கிறது.

வெளிப்புற பொருள்கள் தெளிவாக வரையறுக்கப்பட்ட கட்டமைப்பு மற்றும் API இடைமுகங்களைக் கொண்ட குறிப்பிட்ட பொருள்கள். எடுத்துக்காட்டாக, செக்சம் கணக்கீடு, பதிவேடுகள், கவுண்டர்கள், கவுண்டர்கள் போன்றவை.

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 வகைகள் உள்ளன:

  தனிப்பயன் மெட்டாடேட்டா (அனைத்து தொகுப்புகளுக்கும் வெற்று அமைப்பு)
    நீங்கள் இங்கே என்ன வேண்டுமானாலும் வைக்கலாம்
    குழாய் முழுவதும் கிடைக்கும்
    உங்கள் சொந்த நோக்கங்களுக்காக பயன்படுத்த வசதியானது, எடுத்துக்காட்டாக, ஒரு தொகுப்பு ஹாஷை சேமிப்பதற்காக

  உள் மெட்டாடேட்டா - கட்டிடக்கலை மூலம் வழங்கப்படுகிறது
    இன்புட் போர்ட், அவுட்புட் போர்ட் ஆகியவை இங்கு வரையறுக்கப்பட்டுள்ளன
    பாக்கெட் வரிசையாக இருக்கும் நேர முத்திரை, வரிசை ஆழம்
    மல்டிகாஸ்ட் ஹாஷ் / மல்டிகாஸ்ட் வரிசை
    தொகுப்பு முன்னுரிமை, தொகுப்பு முக்கியத்துவம்
    அவுட்புட் போர்ட் விவரக்குறிப்பு (எ.கா. வெளியீட்டு வரிசை)

பி4 கம்பைலர்

P4 கம்பைலர் (P4C) உருவாக்குகிறது:

  1. தரவு விமானத்தின் இயக்க நேரம்
  2. தரவுத் தளத்தில் இயந்திர நிலையை நிர்வகிப்பதற்கான API

P4 நிரலாக்க மொழி

P4 மொழியில் மென்பொருள் மாற்றத்திற்கான எடுத்துக்காட்டு

மூலக் குறியீடுகளை களஞ்சியத்திலிருந்து பதிவிறக்கம் செய்யலாம்.

p4lang/p4c-bm: bmv2க்கான JSON உள்ளமைவை உருவாக்குகிறது
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>


மென்பொருள் சுவிட்ச் API இன் வசதியான பயன்பாட்டிற்கான எளிய_switch_CLI நிரலை மூலக் குறியீடு கொண்டுள்ளது.

இதையும் மற்ற உதாரணங்களையும் களஞ்சியத்திலிருந்து பதிவிறக்கம் செய்யலாம்.

P4 நிரலாக்க மொழி

சோசலிஸ்ட் கட்சி இந்த கோடையின் தொடக்கத்தில், ஹைபர்ஸ்கேல் கிளவுட் பயனர்களின் தேவைகளை விரைவாகப் பூர்த்தி செய்யும் முயற்சியில், இன்டெல் வெர்ஃபுட் நெட்வொர்க்குகளைப் பெறுவதற்கான ஒப்பந்தத்தில் கையெழுத்திட்டது. நவீன் ஷெனாய் (இன்டெல் கார்ப்பரேஷனில் உள்ள டேட்டா சென்டர் குழுமத்தின் நிர்வாக துணைத் தலைவர் மற்றும் பொது மேலாளர்) கூறியது போல், இது இன்டெல்லை பெரிய பணிச்சுமைகளையும் தரவு மைய வாடிக்கையாளர்களுக்கு அதிக வாய்ப்புகளையும் வழங்க அனுமதிக்கும்.

என் தனிப்பட்ட கருத்துப்படி, FPGA சில்லுகள் தயாரிப்பில் Intel முன்னணியில் உள்ளது மற்றும் அது ஒரு சிறந்த Quartus சூழலைக் கொண்டுள்ளது என்பதை நாம் மறந்துவிடக் கூடாது. இதன் பொருள், இன்டெல்லின் வருகையுடன், பேர்ஃபுட் அதன் தயாரிப்பு வரிசையை விரிவுபடுத்துவது மட்டுமல்லாமல், குவார்டஸ் மற்றும் பி4 ஸ்டுடியோவும் டோஃபினோ மற்றும் டோஃபினோ 2 வரிசையில் தீவிர புதுப்பிப்புகள் மற்றும் சேர்த்தல்களைப் பெறும் என்று எதிர்பார்க்கலாம்.

P4 சமூகத்தின் அதிகாரப்பூர்வ உறுப்பினர் - நிறுவனம் காரணி குழு.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்