P4 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ

P4 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ
P4 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದ್ದು, ಪ್ಯಾಕೆಟ್ ರೂಟಿಂಗ್ ನಿಯಮಗಳನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. C ಅಥವಾ ಪೈಥಾನ್‌ನಂತಹ ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಭಾಷೆಗಿಂತ ಭಿನ್ನವಾಗಿ, P4 ಡೊಮೇನ್-ನಿರ್ದಿಷ್ಟ ಭಾಷೆಯಾಗಿದ್ದು, ನೆಟ್‌ವರ್ಕ್ ರೂಟಿಂಗ್‌ಗೆ ಹೊಂದುವಂತೆ ಹಲವಾರು ವಿನ್ಯಾಸಗಳನ್ನು ಹೊಂದಿದೆ.

P4 ಎಂಬುದು P4 ಭಾಷಾ ಒಕ್ಕೂಟ ಎಂಬ ಲಾಭರಹಿತ ಸಂಸ್ಥೆಯಿಂದ ಪರವಾನಗಿ ಪಡೆದ ಮತ್ತು ನಿರ್ವಹಿಸಲ್ಪಡುವ ಮುಕ್ತ ಮೂಲ ಭಾಷೆಯಾಗಿದೆ. ಇದನ್ನು ಓಪನ್ ನೆಟ್‌ವರ್ಕಿಂಗ್ ಫೌಂಡೇಶನ್ (ONF) ಮತ್ತು ಲಿನಕ್ಸ್ ಫೌಂಡೇಶನ್ (LF) ಬೆಂಬಲಿಸುತ್ತದೆ, ಇದು ಓಪನ್ ಸೋರ್ಸ್ ನೆಟ್‌ವರ್ಕಿಂಗ್ ಯೋಜನೆಗಳಿಗಾಗಿ ಎರಡು ದೊಡ್ಡ ಛತ್ರಿ ಸಂಸ್ಥೆಗಳಾಗಿವೆ.
ಈ ಭಾಷೆಯನ್ನು ಮೂಲತಃ 2013 ರಲ್ಲಿ ರಚಿಸಲಾಯಿತು ಮತ್ತು 2014 ರ SIGCOMM CCR ಪೇಪರ್‌ನಲ್ಲಿ "ಪ್ರೊಟೊಕಾಲ್ ಇಂಡಿಪೆಂಡೆಂಟ್, ಪ್ಯಾಕೆಟ್ ರೂಟಿಂಗ್ ಪ್ರೊಸೆಸರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್" ಎಂದು ವಿವರಿಸಲಾಗಿದೆ.

ಅದರ ಪ್ರಾರಂಭದಿಂದಲೂ, P4 ಘಾತೀಯವಾಗಿ ಬೆಳೆದಿದೆ ಮತ್ತು ವಿಕಸನಗೊಂಡಿದೆ, ನೆಟ್‌ವರ್ಕ್ ಅಡಾಪ್ಟರ್‌ಗಳು, ಸ್ವಿಚ್‌ಗಳು ಮತ್ತು ರೂಟರ್‌ಗಳು ಸೇರಿದಂತೆ ನೆಟ್‌ವರ್ಕ್ ಸಾಧನಗಳ ಮೂಲಕ ಪ್ಯಾಕೆಟ್‌ಗಳ ಪ್ರಸರಣವನ್ನು ವಿವರಿಸಲು ತ್ವರಿತವಾಗಿ ಗುಣಮಟ್ಟವಾಗಿದೆ.

"SDN ನೆಟ್‌ವರ್ಕಿಂಗ್ ಉದ್ಯಮವನ್ನು ಮಾರ್ಪಡಿಸಿದೆ ಮತ್ತು P4 ರೂಟಿಂಗ್‌ಗೆ ಪ್ರೋಗ್ರಾಮೆಬಿಲಿಟಿ ತರುವ ಮೂಲಕ SDN ಅನ್ನು ಮುಂದಿನ ಹಂತಕ್ಕೆ ಕೊಂಡೊಯ್ಯುತ್ತದೆ" ಎಂದು ಓಪನ್ ನೆಟ್‌ವರ್ಕಿಂಗ್ ಫೌಂಡೇಶನ್‌ನ ಕಾರ್ಯನಿರ್ವಾಹಕ ನಿರ್ದೇಶಕ ಗುರು ಪರುಲ್ಕರ್ ಹೇಳಿದರು.

P4 ಭಾಷೆಯನ್ನು ಮೂಲತಃ ಗೂಗಲ್, ಇಂಟೆಲ್, ಮೈಕ್ರೋಸಾಫ್ಟ್ ರಿಸರ್ಚ್, ಬೇರ್‌ಫೂಟ್, ಪ್ರಿನ್ಸ್‌ಟನ್ ಮತ್ತು ಸ್ಟ್ಯಾನ್‌ಫೋರ್ಡ್‌ನ ಎಂಜಿನಿಯರ್‌ಗಳು ಮತ್ತು ಸಂಶೋಧಕರ ಗುಂಪಿನಿಂದ ರಚಿಸಲಾಗಿದೆ. ಗುರಿ ಸರಳವಾಗಿತ್ತು: ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್ ಒಂದು ದಿನದಲ್ಲಿ ಕಲಿಯಬಹುದಾದ ಬಳಸಲು ಸುಲಭವಾದ ಭಾಷೆಯನ್ನು ರಚಿಸಿ ಮತ್ತು ನೆಟ್‌ವರ್ಕ್‌ಗಳಾದ್ಯಂತ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಹೇಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಖರವಾಗಿ ವಿವರಿಸಲು ಬಳಸಿ.

ಮೊದಲಿನಿಂದಲೂ, P4 ಅನ್ನು ಟಾರ್ಗೆಟ್ ಸ್ವತಂತ್ರವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ (ಅಂದರೆ P4 ನಲ್ಲಿ ಬರೆಯಲಾದ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ASICs, FPGAs, CPU ಗಳು, NPU ಗಳು ಮತ್ತು GPU ಗಳಂತಹ ವಿವಿಧ ಗುರಿಗಳ ಮೇಲೆ ಚಲಾಯಿಸಲು ಬದಲಾಗದೆ ಸಂಕಲಿಸಬಹುದು).

ಭಾಷೆಯು ಪ್ರೋಟೋಕಾಲ್ ಸ್ವತಂತ್ರವಾಗಿದೆ (ಅಂದರೆ, P4 ಪ್ರೋಗ್ರಾಂ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ರಮಾಣಿತ ಪ್ರೋಟೋಕಾಲ್‌ಗಳನ್ನು ವಿವರಿಸಬಹುದು ಅಥವಾ ಹೊಸ ಕಸ್ಟಮ್ ವಿಳಾಸ ವಿಧಾನಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಬಳಸಬಹುದು).

ಉದ್ಯಮದಲ್ಲಿ, ಸಾಧನ ಪ್ರೋಗ್ರಾಮಿಂಗ್ಗಾಗಿ P4 ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಬಹುಶಃ ಭವಿಷ್ಯದಲ್ಲಿ ಇಂಟರ್ನೆಟ್-RFC ಮತ್ತು IEEE ಮಾನದಂಡಗಳು P4 ವಿವರಣೆಯನ್ನು ಸಹ ಒಳಗೊಂಡಿರುತ್ತವೆ.

ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಮತ್ತು ಸ್ಥಿರ ಕಾರ್ಯ ಸಾಧನಗಳಿಗೆ P4 ಅನ್ನು ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಓಪನ್ ಸೋರ್ಸ್ SONiC ಸ್ವಿಚ್ OS ಬಳಸುವ ಸ್ವಿಚ್ ಅಬ್‌ಸ್ಟ್ರಕ್ಷನ್ ಇಂಟರ್‌ಫೇಸ್ (SAI) API ಗಳಲ್ಲಿ ಸ್ವಿಚ್ ಪೈಪ್‌ಲೈನ್ ನಡವಳಿಕೆಯನ್ನು ನಿಖರವಾಗಿ ರೆಕಾರ್ಡ್ ಮಾಡಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ವಿವಿಧ ಸ್ಥಿರ ಮತ್ತು ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಸಾಧನಗಳಲ್ಲಿ ಸ್ವಿಚಿಂಗ್ ನಡವಳಿಕೆಯನ್ನು ವಿವರಿಸಲು 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, ಕಾರ್ನೆಲ್, ಹಾರ್ವರ್ಡ್, MIT, NCTU, ಪ್ರಿನ್ಸ್‌ಟನ್, ಸ್ಟ್ಯಾನ್‌ಫೋರ್ಡ್, ಟೆಕ್ನಿಯನ್, ತ್ಸಿಂಗ್ವಾ, UMass ಮತ್ತು USI ಸೇರಿದಂತೆ ವಿಶ್ವವಿದ್ಯಾಲಯಗಳಿಂದ; ಮತ್ತು CORD, FD.io, OpenDaylight, ONOS, OvS, SAI ಮತ್ತು ಸ್ಟ್ರಾಟಮ್ ಸೇರಿದಂತೆ ಮುಕ್ತ ಮೂಲ ಯೋಜನೆಗಳು P4 ಸ್ವತಂತ್ರ ಸಮುದಾಯ ಯೋಜನೆಯಾಗಿದೆ ಎಂಬ ಅಂಶವನ್ನು ಎತ್ತಿ ತೋರಿಸುತ್ತದೆ.

P4 ಭಾಷೆಗೆ ವಿಶಿಷ್ಟವಾದ ಪೀಳಿಗೆಯ ನಿಯಂತ್ರಕಗಳು:

P4 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ

ಅಪ್ಲಿಕೇಶನ್ ನಿರೀಕ್ಷೆಗಳು

P4 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ
ಭಾಷೆಯು ರೂಟಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಉದ್ದೇಶಿಸಿರುವುದರಿಂದ, ಸಾಮಾನ್ಯ ಉದ್ದೇಶದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಅವಶ್ಯಕತೆಗಳು ಮತ್ತು ವಿನ್ಯಾಸ ಆಯ್ಕೆಗಳ ಪಟ್ಟಿ ವಿಭಿನ್ನವಾಗಿದೆ. ಭಾಷೆಯ ಮುಖ್ಯ ಲಕ್ಷಣಗಳು:

  1. ಗುರಿ ಅನುಷ್ಠಾನದಿಂದ ಸ್ವಾತಂತ್ರ್ಯ;
  2. ಬಳಸಿದ ಪ್ರೋಟೋಕಾಲ್ (ಗಳ) ಸ್ವಾತಂತ್ರ್ಯ;
  3. ಕ್ಷೇತ್ರ ಪುನರ್ರಚನೆ.

ಗುರಿ ಅನುಷ್ಠಾನದಿಂದ ಸ್ವಾತಂತ್ರ್ಯ

P4 ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಅನುಷ್ಠಾನಕ್ಕೆ ಸ್ವತಂತ್ರವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಅಂದರೆ ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಪ್ರೊಸೆಸರ್‌ಗಳು, FPGA ಗಳು, ಸಿಸ್ಟಮ್-ಆನ್-ಚಿಪ್ಸ್, ನೆಟ್‌ವರ್ಕ್ ಪ್ರೊಸೆಸರ್‌ಗಳು ಮತ್ತು ASIC ಗಳಂತಹ ವಿವಿಧ ರೀತಿಯ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಎಂಜಿನ್‌ಗಳಿಗೆ ಅವುಗಳನ್ನು ಸಂಕಲಿಸಬಹುದು. ಈ ವಿವಿಧ ರೀತಿಯ ಯಂತ್ರಗಳನ್ನು P4 ಗುರಿಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿ ಗುರಿಗೆ P4 ಮೂಲ ಕೋಡ್ ಅನ್ನು ಟಾರ್ಗೆಟ್ ಸ್ವಿಚ್ ಮಾಡೆಲ್ ಆಗಿ ಪರಿವರ್ತಿಸಲು ಕಂಪೈಲರ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಕಂಪೈಲರ್ ಅನ್ನು ಗುರಿ ಸಾಧನ, ಬಾಹ್ಯ ಸಾಫ್ಟ್‌ವೇರ್ ಅಥವಾ ಕ್ಲೌಡ್ ಸೇವೆಯಲ್ಲಿ ನಿರ್ಮಿಸಬಹುದು. P4 ಪ್ರೋಗ್ರಾಮ್‌ಗಳ ಮೂಲ ಗುರಿಗಳು ಸರಳವಾದ ಪ್ಯಾಕೆಟ್ ಸ್ವಿಚಿಂಗ್‌ಗಾಗಿ ಇದ್ದುದರಿಂದ, "P4 ಟಾರ್ಗೆಟ್" ಹೆಚ್ಚು ನಿಖರವಾಗಿದ್ದರೂ ಸಹ "P4 ಸ್ವಿಚ್" ಎಂಬ ಪದವನ್ನು ಕೇಳುವುದು ತುಂಬಾ ಸಾಮಾನ್ಯವಾಗಿದೆ.

ಬಳಸಿದ ಪ್ರೋಟೋಕಾಲ್(ಗಳ) ಸ್ವಾತಂತ್ರ್ಯ

P4 ಪ್ರೋಟೋಕಾಲ್ ಸ್ವತಂತ್ರವಾಗಿದೆ. ಇದರರ್ಥ IP, ಈಥರ್ನೆಟ್, TCP, VxLAN ಅಥವಾ MPLS ನಂತಹ ಸಾಮಾನ್ಯ ಪ್ರೋಟೋಕಾಲ್‌ಗಳಿಗೆ ಭಾಷೆ ಸ್ಥಳೀಯ ಬೆಂಬಲವನ್ನು ಹೊಂದಿಲ್ಲ. ಬದಲಿಗೆ, P4 ಪ್ರೋಗ್ರಾಮರ್ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಪ್ರೋಟೋಕಾಲ್‌ಗಳ ಹೆಡರ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಮತ್ತು ಕ್ಷೇತ್ರದ ಹೆಸರುಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ, ಇದನ್ನು ಸಂಕಲಿಸಿದ ಪ್ರೋಗ್ರಾಂ ಮತ್ತು ಗುರಿ ಸಾಧನದಿಂದ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಕ್ಷೇತ್ರ ಪುನರ್ರಚನೆ

ಪ್ರೋಟೋಕಾಲ್ ಸ್ವಾತಂತ್ರ್ಯ ಮತ್ತು ಅಮೂರ್ತ ಭಾಷಾ ಮಾದರಿಯು ಮರುಸಂರಚಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ - ಸಿಸ್ಟಮ್ ಅನ್ನು ನಿಯೋಜಿಸಿದ ನಂತರ P4 ಗುರಿಗಳು ಪ್ಯಾಕೆಟ್ ಸಂಸ್ಕರಣೆಯನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಈ ಸಾಮರ್ಥ್ಯವು ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ ಸ್ಥಿರ-ಕಾರ್ಯ ಸಂಯೋಜಿತ ಸರ್ಕ್ಯೂಟ್‌ಗಳಿಗಿಂತ ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಪ್ರೊಸೆಸರ್‌ಗಳು ಅಥವಾ ನೆಟ್‌ವರ್ಕ್ ಪ್ರೊಸೆಸರ್‌ಗಳ ಮೂಲಕ ರೂಟಿಂಗ್‌ಗೆ ಸಂಬಂಧಿಸಿದೆ.

ನಿರ್ದಿಷ್ಟ ಪ್ರೋಟೋಕಾಲ್‌ಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ತಡೆಯುವ ಭಾಷೆಯಲ್ಲಿ ಏನೂ ಇಲ್ಲದಿದ್ದರೂ, ಈ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು ಭಾಷಾ ಲೇಖಕರಿಗೆ ಅಗೋಚರವಾಗಿರುತ್ತವೆ ಮತ್ತು ಅಂತಿಮವಾಗಿ ಸಿಸ್ಟಮ್ ಮತ್ತು ಗುರಿಗಳ ನಮ್ಯತೆ ಮತ್ತು ಅವುಗಳ ಮರುಸಂರಚನೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು.

ಭಾಷೆಯ ಈ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಆರಂಭದಲ್ಲಿ ಅದರ ಸೃಷ್ಟಿಕರ್ತರು ನೆಟ್ವರ್ಕ್ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಅದರ ವ್ಯಾಪಕ ಬಳಕೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದರು.

ಭಾಷೆಯನ್ನು ಈಗಾಗಲೇ ಅನೇಕ ಕಂಪನಿಗಳಲ್ಲಿ ಬಳಸಲಾಗಿದೆ:

1) ಹೈಪರ್‌ಸ್ಕೇಲ್ ಡೇಟಾ ಕೇಂದ್ರಗಳು;

ಚೀನೀ ಕಂಪನಿ ಟೆನ್ಸೆಂಟ್ ವಿಶ್ವದ ಅತಿದೊಡ್ಡ ಹೂಡಿಕೆ ಕಂಪನಿಯಾಗಿದೆ ಮತ್ತು ದೊಡ್ಡ ಸಾಹಸೋದ್ಯಮ ಬಂಡವಾಳ ಸಂಸ್ಥೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಟೆನ್ಸೆಂಟ್‌ನ ಅಂಗಸಂಸ್ಥೆಗಳು, ಚೀನಾದಲ್ಲಿ ಮತ್ತು ಪ್ರಪಂಚದಾದ್ಯಂತದ ಇತರ ದೇಶಗಳಲ್ಲಿ, ವಿವಿಧ ಇಂಟರ್ನೆಟ್ ಸೇವೆಗಳು, ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ ಮತ್ತು ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಮನರಂಜನಾ ಕ್ಷೇತ್ರದಲ್ಲಿನ ಬೆಳವಣಿಗೆಗಳು ಸೇರಿದಂತೆ ಹೈಟೆಕ್ ವ್ಯವಹಾರದ ವಿವಿಧ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಪರಿಣತಿ ಪಡೆದಿವೆ.

P4 ಮತ್ತು ಪ್ರೊಗ್ರಾಮೆಬಲ್ ರೂಟಿಂಗ್ ಕಂಪನಿಯ ನೆಟ್‌ವರ್ಕ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ ಬಳಸಲಾಗುವ ಸುಧಾರಿತ ತಂತ್ರಜ್ಞಾನಗಳಾಗಿವೆ.

ಮೂಲದವರಲ್ಲಿ ಒಬ್ಬರಾಗಿ, ನೆಟ್‌ವರ್ಕಿಂಗ್ ಉದ್ಯಮದಲ್ಲಿ ಮತ್ತು ನಿರ್ದಿಷ್ಟವಾಗಿ ಡೇಟಾ ಸೆಂಟರ್ ಆರ್ಕಿಟೆಕ್ಚರಲ್ ವಿನ್ಯಾಸದಲ್ಲಿ P4 ಅನ್ನು ತ್ವರಿತವಾಗಿ ಅಳವಡಿಸಿಕೊಳ್ಳುವುದನ್ನು ಗಮನಿಸಲು Google ಹೆಮ್ಮೆಪಡುತ್ತದೆ.

2) ವಾಣಿಜ್ಯ ಕಂಪನಿಗಳು;

ಗೋಲ್ಡ್‌ಮನ್ ಸ್ಯಾಚ್ಸ್ ಓಪನ್ ಸೋರ್ಸ್ ಸಮುದಾಯದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಪ್ರಯೋಜನವನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ನೆಟ್‌ವರ್ಕ್ ಮೂಲಸೌಕರ್ಯವನ್ನು ಆವಿಷ್ಕರಿಸಲು ಮತ್ತು ಗ್ರಾಹಕರಿಗೆ ಉತ್ತಮ ಪರಿಹಾರಗಳನ್ನು ಒದಗಿಸಲು ಸಾಮಾನ್ಯ ಮಾನದಂಡಗಳು ಮತ್ತು ಪರಿಹಾರಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತದೆ.

3) ಉತ್ಪಾದನೆ;

ಫಾರ್ವರ್ಡ್ ಮಾಡುವ ನಡವಳಿಕೆಯನ್ನು ಅನನ್ಯವಾಗಿ ವಿವರಿಸುವ P4 ನಂತಹ ಭಾಷೆಯಿಂದ ಇಡೀ ನೆಟ್‌ವರ್ಕಿಂಗ್ ಉದ್ಯಮವು ಪ್ರಯೋಜನ ಪಡೆಯುತ್ತದೆ. ಸಿಸ್ಕೋ ಈ ಭಾಷೆಯನ್ನು ಬಳಸಲು ತನ್ನ ಉತ್ಪನ್ನದ ಸಾಲುಗಳನ್ನು ವರ್ಗಾಯಿಸಲು ನಂಬುತ್ತದೆ.

ಜುನಿಪರ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಹಲವಾರು ಉತ್ಪನ್ನಗಳಲ್ಲಿ P4 ಮತ್ತು P4 ರನ್‌ಟೈಮ್ ಅನ್ನು ಒಳಗೊಂಡಿವೆ ಮತ್ತು ಜುನಿಪರ್ ಎಂಬೆಡೆಡ್ ಪ್ರೊಸೆಸರ್ ಮತ್ತು ಅದರ ಸಾಫ್ಟ್‌ವೇರ್ ಕೋಡ್‌ಗೆ ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ.

Ruijie ನೆಟ್‌ವರ್ಕ್‌ಗಳು P4 ನ ಪ್ರಬಲ ಬೆಂಬಲಿಗ ಮತ್ತು ಅದು ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗೆ ತರುವ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿದೆ. P4 ನೊಂದಿಗೆ, ಕಂಪನಿಯು ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಗ್ರಾಹಕರಿಗೆ ಉತ್ತಮ-ದರ್ಜೆಯ ಪರಿಹಾರಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ತಲುಪಿಸಬಹುದು.

4) ದೂರಸಂಪರ್ಕ ಪೂರೈಕೆದಾರರು;

AT&T ತನ್ನ ನೆಟ್‌ವರ್ಕ್‌ಗಳಲ್ಲಿ ನೋಡಲು ಬಯಸಿದ ನಡವಳಿಕೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಮತ್ತು ಅದರ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ P4 ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಫಾರ್ವರ್ಡ್ ಮಾಡುವ ಸಾಧನಗಳನ್ನು ಬಳಸಲು P4 ಅನ್ನು ಮೊದಲು ಬಳಸಿದ P4 ನ ಆರಂಭಿಕ ಅಳವಡಿಕೆಯಾಗಿದೆ.

ಡಾಯ್ಚ ಟೆಲಿಕಾಮ್‌ನಲ್ಲಿ, ಪ್ರವೇಶ 4.0 ಪ್ರೋಗ್ರಾಂನ ಭಾಗವಾಗಿ ಕೀ ನೆಟ್‌ವರ್ಕ್ ಕಾರ್ಯಗಳನ್ನು ಮೂಲಮಾದರಿ ಮಾಡಲು ಭಾಷೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

5) ಸೆಮಿಕಂಡಕ್ಟರ್ ಉದ್ಯಮ;

ನೆಟ್‌ವರ್ಕ್ ರೂಟಿಂಗ್ ಪ್ಲೇನ್‌ಗೆ ಸಾಫ್ಟ್‌ವೇರ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ತಲುಪಿಸಲು ಹೊಸ ಮಾದರಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಭಾಷೆ ಬೇರ್‌ಫೂಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿತು.

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 ಬೆಂಬಲದೊಂದಿಗೆ ಎಕ್ಲಿಪ್ಸ್ಗಾಗಿ, ಆದರೆ ನಾವು ಶಿಫಾರಸು ಮಾಡಬಹುದು 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();
    }
}

ಎಲ್ಲಾ ಸಂಭಾವ್ಯ ಕ್ರಿಯೆಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಕೋಷ್ಟಕಗಳಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಬೇಕು.

ಕ್ರಿಯೆಗಳು ಕೋಡ್ ಮತ್ತು ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಡೇಟಾವು ನಿರ್ವಹಣಾ ಮಟ್ಟದಿಂದ ಬರುತ್ತದೆ (ಉದಾ IP ವಿಳಾಸಗಳು/ಪೋರ್ಟ್ ಸಂಖ್ಯೆಗಳು). ನಿರ್ದಿಷ್ಟ, ಲೂಪ್-ಮುಕ್ತ ಮೂಲಗಳನ್ನು ನೇರವಾಗಿ ಕ್ರಿಯೆಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಆದರೆ ಸೂಚನೆಗಳ ಸಂಖ್ಯೆಯು ಊಹಿಸಬಹುದಾದಂತಿರಬೇಕು. ಆದ್ದರಿಂದ, ಕ್ರಿಯೆಗಳು ಯಾವುದೇ ಲೂಪ್‌ಗಳು ಅಥವಾ ಷರತ್ತುಬದ್ಧ ಹೇಳಿಕೆಗಳನ್ನು ಹೊಂದಿರಬಾರದು.

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 ವಿಧಗಳಿವೆ:

  ಕಸ್ಟಮ್ ಮೆಟಾಡೇಟಾ (ಎಲ್ಲಾ ಪ್ಯಾಕೇಜುಗಳಿಗೆ ಖಾಲಿ ರಚನೆ)
    ನಿಮಗೆ ಬೇಕಾದುದನ್ನು ಇಲ್ಲಿ ಹಾಕಬಹುದು
    ಪೈಪ್ಲೈನ್ ​​ಉದ್ದಕ್ಕೂ ಲಭ್ಯವಿದೆ
    ನಿಮ್ಮ ಸ್ವಂತ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಬಳಸಲು ಅನುಕೂಲಕರವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ಪ್ಯಾಕೇಜ್ ಹ್ಯಾಶ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು

  ಆಂತರಿಕ ಮೆಟಾಡೇಟಾ - ವಾಸ್ತುಶಿಲ್ಪದಿಂದ ಒದಗಿಸಲಾಗಿದೆ
    ಇನ್ಪುಟ್ ಪೋರ್ಟ್, ಔಟ್ಪುಟ್ ಪೋರ್ಟ್ ಅನ್ನು ಇಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ
    ಪ್ಯಾಕೆಟ್ ಸರದಿಯಲ್ಲಿದ್ದಾಗ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್, ಕ್ಯೂ ಡೆಪ್ತ್
    ಮಲ್ಟಿಕ್ಯಾಸ್ಟ್ ಹ್ಯಾಶ್ / ಮಲ್ಟಿಕಾಸ್ಟ್ ಕ್ಯೂ
    ಪ್ಯಾಕೇಜ್ ಆದ್ಯತೆ, ಪ್ಯಾಕೇಜ್ ಪ್ರಾಮುಖ್ಯತೆ
    ಔಟ್‌ಪುಟ್ ಪೋರ್ಟ್ ವಿವರಣೆ (ಉದಾ. ಔಟ್‌ಪುಟ್ ಕ್ಯೂ)

P4 ಕಂಪೈಲರ್

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 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ

ಪಿಎಸ್ ಈ ಬೇಸಿಗೆಯ ಆರಂಭದಲ್ಲಿ, ಹೈಪರ್‌ಸ್ಕೇಲ್ ಕ್ಲೌಡ್ ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಪೂರೈಸುವ ಪ್ರಯತ್ನದಲ್ಲಿ ಇಂಟೆಲ್ ಬೇರ್‌ಫೂಟ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಸ್ವಾಧೀನಪಡಿಸಿಕೊಳ್ಳುವ ಒಪ್ಪಂದಕ್ಕೆ ಸಹಿ ಹಾಕಿತು. ನವೀನ್ ಶೆಣೈ (ಇಂಟೆಲ್ ಕಾರ್ಪೊರೇಷನ್‌ನಲ್ಲಿನ ಡೇಟಾ ಸೆಂಟರ್ ಗ್ರೂಪ್‌ನ ಕಾರ್ಯನಿರ್ವಾಹಕ ಉಪಾಧ್ಯಕ್ಷ ಮತ್ತು ಜನರಲ್ ಮ್ಯಾನೇಜರ್) ಹೇಳಿದಂತೆ, ಇದು ಡೇಟಾ ಸೆಂಟರ್ ಗ್ರಾಹಕರಿಗೆ ಹೆಚ್ಚಿನ ಕೆಲಸದ ಹೊರೆಗಳನ್ನು ಮತ್ತು ಹೆಚ್ಚಿನ ಅವಕಾಶಗಳನ್ನು ಒದಗಿಸಲು ಇಂಟೆಲ್‌ಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ನನ್ನ ವೈಯಕ್ತಿಕ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಎಫ್‌ಪಿಜಿಎ ಚಿಪ್‌ಗಳ ಉತ್ಪಾದನೆಯಲ್ಲಿ ಇಂಟೆಲ್ ಮುಂಚೂಣಿಯಲ್ಲಿದೆ ಮತ್ತು ಇದು ಅತ್ಯುತ್ತಮ ಕ್ವಾರ್ಟಸ್ ಪರಿಸರವನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ನಾವು ಮರೆಯಬಾರದು. ಇದರರ್ಥ ಇಂಟೆಲ್ ಆಗಮನದೊಂದಿಗೆ, ಬೇರ್‌ಫೂಟ್ ತನ್ನ ಉತ್ಪನ್ನದ ಶ್ರೇಣಿಯನ್ನು ವಿಸ್ತರಿಸುವುದಲ್ಲದೆ, ಕ್ವಾರ್ಟಸ್ ಮತ್ತು P4 ಸ್ಟುಡಿಯೋ ಕೂಡ ಟಾಫಿನೋ ಮತ್ತು ಟೋಫಿನೋ 2 ಲೈನ್‌ಗೆ ಗಂಭೀರ ನವೀಕರಣಗಳು ಮತ್ತು ಸೇರ್ಪಡೆಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಂದು ನಾವು ನಿರೀಕ್ಷಿಸಬಹುದು.

P4 ಸಮುದಾಯದ ಅಧಿಕೃತ ಸದಸ್ಯ - ಕಂಪನಿ ಅಂಶ ಗುಂಪು.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ