P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ

P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ
P4 เช เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ เช›เซ‡ เชœเซ‡ เชชเซ‡เช•เซ‡เชŸ เชฐเซ‚เชŸเซ€เช‚เช— เชจเชฟเชฏเชฎเซ‹เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡. C เช…เชฅเชตเชพ Python เชœเซ‡เชตเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชจเซ€ เชญเชพเชทเชพเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, P4 เช เชจเซ‡เชŸเชตเชฐเซเช• เชฐเซ‚เชŸเซ€เช‚เช— เชฎเชพเชŸเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ‡เชฒเซ€ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เชกเชฟเชเชพเช‡เชจ เชธเชพเชฅเซ‡ เชกเซ‹เชฎเซ‡เชจ-เชตเชฟเชถเชฟเชทเซเชŸ เชญเชพเชทเชพ เช›เซ‡.

P4 เช เชเช• เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เช›เซ‡ เชœเซ‡เชจเซเช‚ เชฒเชพเช‡เชธเชจเซเชธ เช…เชจเซ‡ เชœเชพเชณเชตเชฃเซ€ P4 เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เช•เชจเซเชธเซ‹เชฐเซเชŸเชฟเชฏเชฎ เชจเชพเชฎเชจเซ€ เชฌเชฟเชจ-เชฒเชพเชญเช•เชพเชฐเซ€ เชธเช‚เชธเซเชฅเชพ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซ‡ เช“เชชเชจ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชซเชพเช‰เชจเซเชกเซ‡เชถเชจ (ONF) เช…เชจเซ‡ Linux เชซเชพเช‰เชจเซเชกเซ‡เชถเชจ (LF) เชฆเซเชตเชพเชฐเชพ เชชเชฃ เชธเชฎเชฐเซเชฅเชฟเชค เช›เซ‡, เชœเซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชฎเชพเชŸเซ‡เชจเซ€ เชฌเซ‡ เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ€ เช›เชคเซเชฐ เชธเช‚เชธเซเชฅเชพเช“ เช›เซ‡.
เช† เชญเชพเชทเชพ เชฎเซ‚เชณ เชฐเซ‚เชชเซ‡ 2013 เชฎเชพเช‚ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช…เชจเซ‡ "เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเซเชตเชคเช‚เชคเซเชฐ, เชชเซ‡เช•เซ‡เชŸ เชฐเชพเช‰เชŸเซ€เช‚เช— เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—" เชถเซ€เชฐเซเชทเช• เชงเชฐเชพเชตเชคเชพ 2014 SIGCOMM CCR เชชเซ‡เชชเชฐเชฎเชพเช‚ เชคเซ‡เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เชคเซ‡เชจเซ€ เชถเชฐเซ‚เช†เชคเชฅเซ€, P4 เชเชกเชชเชฅเซ€ เชตเชฟเช•เชธเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชเชกเชชเชฅเซ€ เชตเชฟเช•เชธเชฟเชค เชฅเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชเชกเซ‡เชชเซเชŸเชฐ, เชธเซเชตเซ€เชšเซ‹ เช…เชจเซ‡ เชฐเชพเช‰เชŸเชฐเซเชธ เชธเชนเชฟเชคเชจเชพ เชจเซ‡เชŸเชตเชฐเซเช• เช‰เชชเช•เชฐเชฃเซ‹ เชฆเซเชตเชพเชฐเชพ เชชเซ‡เช•เซ‡เชŸเชจเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชฎเชพเชจเช• เชฌเชจเซ€ เช—เชฏเซเช‚ เช›เซ‡.

เช“เชชเชจ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชซเชพเช‰เชจเซเชกเซ‡เชถเชจเชจเชพ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเชฟเชต เชกเชฟเชฐเซ‡เช•เซเชŸเชฐ เช—เซเชฐเซ เชชเชพเชฐเซเชฒเช•เชฐเซ‡ เชœเชฃเชพเชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡, โ€œSDN เช เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เช‰เชฆเซเชฏเซ‹เช—เชฎเชพเช‚ เชชเชฐเชฟเชตเชฐเซเชคเชจ เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เช…เชจเซ‡ P4 เช เชฐเซ‚เชŸเชฟเช‚เช—เชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฟเชฒเชฟเชŸเซ€ เชฒเชพเชตเซ€เชจเซ‡ SDN เชจเซ‡ เช†เช—เชฒเชพ เชธเซเชคเชฐ เชชเชฐ เชฒเชˆ เชœเชพเชฏ เช›เซ‡.

P4 เชญเชพเชทเชพ เชฎเซ‚เชณเชฐเซ‚เชชเซ‡ เช—เซ‚เช—เชฒ, เช‡เชจเซเชŸเซ‡เชฒ, เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸ เชฐเชฟเชธเชฐเซเชš, เชฌเซ‡เชฐเชซเซ‚เชŸ, เชชเซเชฐเชฟเชจเซเชธเชŸเชจ เช…เชจเซ‡ เชธเซเชŸเซ‡เชจเชซเซ‹เชฐเซเชกเชจเชพ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเซ‹ เช…เชจเซ‡ เชธเช‚เชถเซ‹เชงเช•เซ‹เชจเชพ เชœเซ‚เชฅ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เชงเซเชฏเซ‡เชฏ เชธเชฐเชณ เชนเชคเซ‹: เชเช• เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชธเชฐเชณ เชญเชพเชทเชพ เชฌเชจเชพเชตเซ‹ เช•เซ‡ เชœเซ‡ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชกเซ‡เชตเชฒเชชเชฐ เชเช• เชฆเชฟเชตเชธเชฎเชพเช‚ เชถเซ€เช–เซ€ เชถเช•เซ‡ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเซ‡เช•เซ‡เชŸเซ‹ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡.

เชถเชฐเซ‚เช†เชคเชฅเซ€ เชœ, P4 เชจเซ‡ เชฒเช•เซเชทเซเชฏ เชธเซเชตเชคเช‚เชคเซเชฐ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ (เชเชŸเชฒเซ‡ โ€‹โ€‹เช•เซ‡ P4 เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชเชเชธเช†เชˆเชธเซ€, เชเชซเชชเซ€เชœเซ€เช, เชธเซ€เชชเซ€เชฏเซ, เชเชจเชชเซ€เชฏเซ เช…เชจเซ‡ เชœเซ€เชชเซ€เชฏเซ เชœเซ‡เชตเชพ เชตเชฟเชตเชฟเชง เชฒเช•เซเชทเซเชฏเซ‹ เชชเชฐ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡).

เชญเชพเชทเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเซเชตเชคเช‚เชคเซเชฐ เชชเชฃ เช›เซ‡ (เชเชŸเชฒเซ‡ โ€‹โ€‹โ€‹โ€‹เช•เซ‡, P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชนเชพเชฒเชจเชพ เชฎเชพเชจเช• เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเซเชธเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชจเชตเชพ เช•เชธเซเชŸเชฎ เชเชกเซเชฐเซ‡เชธเชฟเช‚เช— เชฎเซ‹เชกเซเชธเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡).

เช‰เชฆเซเชฏเซ‹เช—เชฎเชพเช‚, P4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช‰เชชเช•เชฐเชฃ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เช•เชฆเชพเชš เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ-RFC เช…เชจเซ‡ IEEE เชงเซ‹เชฐเชฃเซ‹เชฎเชพเช‚ เชชเชฃ P4 เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชถเซ‡.

P4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฒ เช…เชจเซ‡ เชซเชฟเช•เซเชธเซเชก เชซเช‚เช•เซเชถเชจ เชกเชฟเชตเชพเชˆเชธ เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช“เชชเชจ เชธเซ‹เชฐเซเชธ SONiC เชธเซเชตเซ€เชš OS เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชธเซเชตเชฟเชš เชเชฌเซเชธเซเชŸเซเชฐเซ‡เช•เซเชถเชจ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ (SAI) API เชฎเชพเช‚ เชธเซเชตเชฟเชš เชชเชพเชˆเชชเชฒเชพเชˆเชจ เชตเชฐเซเชคเชฃเซ‚เช•เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชฐเซ€เชคเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. P4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— ONF เชธเซเชŸเซเชฐเซ‡เชŸเชฎ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชจเชฟเชถเซเชšเชฟเชค เช…เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฒ เช‰เชชเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชธเซเชตเชฟเชšเชฟเช‚เช— เชตเชฐเซเชคเชจเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เชฅเชพเชฏ เช›เซ‡.

เชชเซเชฐเชฅเชฎ เชตเช–เชค, เชธเซเชตเซ€เชš เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชเชกเซ‡เชชเซเชŸเชฐเซ‹เชจเซ€ เชตเชฐเซเชคเชฃเซ‚เช•เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชฅเซ€ เชคเชฎเซ‡ เชœเชฎเชพเชตเชŸ เชชเชนเซ‡เชฒเชพเช‚ เชธเชฎเช—เซเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชฎเซ‹เชกเชฒ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เชฎเซ‹เชŸเชพ เช•เซเชฒเชพเช‰เชก เชชเซเชฐเชฆเชพเชคเชพเช“ เชธเซ‰เชซเซเชŸเชตเซ‡เชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•เชจเซเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชชเชฐเซ€เช•เซเชทเชฃ เช…เชจเซ‡ เชกเชฟเชฌเช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชœเซ‡ เช–เชฐเซเชšเชพเชณ เชนเชพเชฐเซเชกเชตเซ‡เชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชตเช—เชฐ เชฒเซ‡เชฌเชฎเชพเช‚ เช‡เชจเซเชŸเชฐเช“เชชเชฐเซ‡เชฌเชฟเชฒเชฟเชŸเซ€ เชชเชฐเซ€เช•เซเชทเชฃเชจเชพ เชธเชฎเชฏ เช…เชจเซ‡ เช–เชฐเซเชšเชจเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เช˜เชŸเชพเชกเซ‡ เช›เซ‡.

P4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชจเซ‡เชŸเชตเชฐเซเช• เชธเชพเชงเชจเซ‹เชจเชพ เชตเชฟเช•เซเชฐเซ‡เชคเชพเช“ เชคเชฎเชพเชฎ เช‰เชคเซเชชเชพเชฆเชจเซ‹เชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เช…เช‚เชคเชฐเซเช—เชค เชฐเซ‚เชŸเซ€เช‚เช— เชตเชฐเซเชคเชฃเซ‚เช•เชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€ เชถเช•เซ‡ เช›เซ‡, เชœเซ‡ เชŸเซ‡เชธเซเชŸ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเชพ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช—เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช†เช–เชฐเซ‡ เช†เช‚เชคเชฐเช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

เช…เชฒเชฌเชคเซเชค, P4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡ เชฐเซ‚เชŸเซ€เช‚เช—เชจเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชตเซ€ เชฐเซ€เชคเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเซเชธ, เชเชจเซเชŸเชฐเชชเซเชฐเชพเช‡เช เช…เชจเซ‡ เชธเชฐเซเชตเชฟเชธ เชชเซเชฐเซ‹เชตเชพเช‡เชกเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธเชฎเชพเช‚ เชŸเซ‡เชฒเชฟเชฎเซ‡เชŸเซเชฐเซ€ เช…เชจเซ‡ เชฎเชพเชชเชจ เชฎเชพเชŸเซ‡ P4 เชตเซเชฏเชพเชชเช•เชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡.

เชธเช‚เชถเซ‹เชงเชจ เชธเชฎเซเชฆเชพเชฏ เชชเชฃ เช†เช—เชณ เชตเชงเซเชฏเซ‹ เช›เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช…เช—เซเชฐเชฃเซ€ เชถเซˆเช•เซเชทเชฃเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชธเช‚เชถเซ‹เชงเชจ เชœเซ‚เชฅเซ‹เช P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช†เช•เชฐเซเชทเช• เชจเชตเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช—, เชธเชฐเซเชตเชธเช‚เชฎเชคเชฟ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเซเชธ เช…เชจเซ‡ เช•เซ€ เชตเซ‡เชฒเซเชฏเซ เช•เซ‡เชถเซ€เช‚เช—เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชเช• เชจเชตเซ‹ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฆเชพเช–เชฒเซ‹ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡, เชจเชตเซ€เชจเชคเชพ เชนเชพเชฐเซเชกเชตเซ‡เชฐเชฅเซ€ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€ เชฐเชนเซ€ เช›เซ‡, เชœเซ‡ เช˜เชฃเชพ เช…เชฃเชงเชพเชฐเซเชฏเชพ, เชจเชตเชพ เช…เชจเซ‡ เชฌเซเชฆเซเชงเชฟเชถเชพเชณเซ€ เชตเชฟเชšเชพเชฐเซ‹เชจเซ‡ เชฌเชนเชพเชฐ เช†เชตเชตเชพ เชฆเซ‡ เช›เซ‡.

เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชธเชฎเซเชฆเชพเชฏเซ‡ เช•เซ‹เชก เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸเชฎเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฏเซ‹เช—เชฆเชพเชจ เช†เชชเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ, เชชเชพเช‡เชชเชฒเชพเช‡เชจเซเชธ, เชฌเชฟเชนเซ‡เชตเชฟเชฏเชฐเชฒ เชฎเซ‹เชกเชฒเซเชธ, API, เชŸเซ‡เชธเซเชŸ เชซเซเชฐเซ‡เชฎเชตเชฐเซเช•, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เช…เชจเซ‡ เชตเชงเซเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เช…เชฒเซ€เชฌเชพเชฌเชพ, AT&T, เชฌเซ‡เชฐเชซเซ‚เชŸ, เชธเชฟเชธเซเช•เซ‹, เชซเซ‹เช•เซเชธ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ, Google, Intel, IXIA, เชœเซเชฏเซเชจเชฟเชชเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ, 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 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธเชจเซ‡ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเซเชตเชคเช‚เชคเซเชฐ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชคเซ‡เช“ เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชจเชพ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธ, FPGAs, เชธเชฟเชธเซเชŸเชฎ-เช“เชจ-เชšเซ€เชชเซเชธ, เชจเซ‡เชŸเชตเชฐเซเช• เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธ เช…เชจเซ‡ ASICs เชœเซ‡เชตเชพ เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเชพ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชเชจเซเชœเชฟเชจ เชฎเชพเชŸเซ‡ เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช† เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเชพ เชฎเชถเซ€เชจเซ‹เชจเซ‡ P4 เชฒเช•เซเชทเซเชฏเซ‹ เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชฒเช•เซเชทเซเชฏเชจเซ‡ P4 เชธเซเชฐเซ‹เชค เช•เซ‹เชกเชจเซ‡ เชฒเช•เซเชทเซเชฏ เชธเซเชตเชฟเชš เชฎเซ‹เชกเชฒเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡. เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‡ เชฒเช•เซเชทเซเชฏ เช‰เชชเช•เชฐเชฃ, เชฌเชพเชนเซเชฏ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เช…เชฅเชตเชพ เชคเซ‹ เช•เซเชฒเชพเช‰เชก เชธเซ‡เชตเชพเชฎเชพเช‚ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช•เชพเชฐเชฃ เช•เซ‡ P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชฎเชพเชŸเซ‡เชจเชพ เช˜เชฃเชพ เชฎเซ‚เชณ เชฒเช•เซเชทเซเชฏเซ‹ เชธเชฐเชณ เชชเซ‡เช•เซ‡เชŸ เชธเซเชตเชฟเชšเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชนเชคเชพ, เชคเซ‡ "P4 เชธเซเชตเซ€เชš" เชถเชฌเซเชฆ เชธเชพเช‚เชญเชณเชตเชพ เชฎเชพเชŸเซ‡ เช–เซ‚เชฌ เชœ เชธเชพเชฎเชพเชจเซเชฏ เช›เซ‡, เชคเซ‡เชฎ เช›เชคเชพเช‚ "P4 เชฒเช•เซเชทเซเชฏ" เชตเชงเซ เชธเชšเซ‹เชŸ เช›เซ‡.

เชตเชชเชฐเชพเชฏเซ‡เชฒ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ(เช“)เชจเซ€ เชธเซเชตเชคเช‚เชคเซเชฐเชคเชพ

P4 เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเซเชตเชคเช‚เชคเซเชฐ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เชฅเชฏเซ‹ เช•เซ‡ เชญเชพเชทเชพเชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชœเซ‡เชฎ เช•เซ‡ IP, Ethernet, TCP, VxLAN เช…เชฅเชตเชพ MPLS เชฎเชพเชŸเซ‡ เชฎเซ‚เชณ เช†เชงเชพเชฐ เชจเชฅเซ€. เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡, P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเชพ เชนเซ‡เชกเชฐ เชซเซ‹เชฐเซเชฎเซ‡เชŸเซเชธ เช…เชจเซ‡ เชซเซ€เชฒเซเชก เชจเชพเชฎเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชฌเชฆเชฒเชพเชฎเชพเช‚ เชธเช‚เช•เชฒเชฟเชค เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช…เชจเซ‡ เชฒเช•เซเชทเซเชฏ เช‰เชชเช•เชฐเชฃ เชฆเซเชตเชพเชฐเชพ เช…เชฐเซเชฅเช˜เชŸเชจ เช…เชจเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เช•เซเชทเซ‡เชคเซเชฐ เชชเซเชจเชƒเชฐเซ‚เชชเชฐเซ‡เช–เชพเช•เซเชทเชฎเชคเชพ

เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเซเชตเชคเช‚เชคเซเชฐเชคเชพ เช…เชจเซ‡ เช…เชฎเซ‚เชฐเซเชค เชญเชพเชทเชพ เชฎเซ‹เชกเซ‡เชฒ เชชเซเชจเชƒเชฐเซ‚เชชเชฐเซ‡เช–เชพเช•เซเชทเชฎเชคเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ - P4 เชฒเช•เซเชทเซเชฏเซ‹ เชธเชฟเชธเซเชŸเชฎ เชคเซˆเชจเชพเชค เชฅเชฏเชพ เชชเช›เซ€ เชชเซ‡เช•เซ‡เชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช. เช† เช•เซเชทเชฎเชคเชพ เชชเชฐเช‚เชชเชฐเชพเช—เชค เชฐเซ€เชคเซ‡ เชซเชฟเช•เซเชธ-เชซเช‚เช•เซเชถเชจ เช‡เชจเซเชŸเชฟเช—เซเชฐเซ‡เชŸเซ‡เชก เชธเชฐเซเช•เชฟเชŸเชจเซ‡ เชฌเชฆเชฒเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชจเชพ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธ เช…เชฅเชตเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธ เชฆเซเชตเชพเชฐเชพ เชฐเซ‚เชŸเซ€เช‚เช— เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซ€ เช›เซ‡.

เชœเซ‹ เช•เซ‡ เชญเชพเชทเชพเชฎเชพเช‚ เชเชตเซเช‚ เช•เช‚เชˆ เชจเชฅเซ€ เช•เซ‡ เชœเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเซเชธเชจเชพ เชšเซ‹เช•เซเช•เชธ เชธเชฎเซ‚เชนเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเชพ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจเชจเซ‡ เช…เชŸเช•เชพเชตเซ‡, เช† เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชญเชพเชทเชพ เชฒเซ‡เช–เช• เชฎเชพเชŸเซ‡ เช…เชฆเซเชฐเชถเซเชฏ เช›เซ‡ เช…เชจเซ‡ เช†เช–เชฐเซ‡ เชธเชฟเชธเซเชŸเชฎ เช…เชจเซ‡ เชฒเช•เซเชทเซเชฏเซ‹เชจเซ€ เชฒเชตเชšเซ€เช•เชคเชพ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชชเซเชจเชƒเชฐเซ‚เชชเชฐเซ‡เช–เชพเช•เซเชทเชฎเชคเชพเชจเซ‡ เช˜เชŸเชพเชกเซ€ เชถเช•เซ‡ เช›เซ‡.

เชญเชพเชทเชพเชจเซ€ เช† เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชคเซ‡เชจเชพ เชธเชฐเซเชœเช•เซ‹ เชฆเซเชตเชพเชฐเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชคเซ‡เชจเชพ เชตเซเชฏเชพเชชเช• เช‰เชชเชฏเซ‹เช— เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ€เชจเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€.

เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช˜เชฃเซ€ เช•เช‚เชชเชจเซ€เช“เชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฅเชพเชฏ เช›เซ‡:

1) เชนเชพเช‡เชชเชฐเชธเซเช•เซ‡เชฒ เชกเซ‡เชŸเชพ เช•เซ‡เชจเซเชฆเซเชฐเซ‹;

เชšเชพเช‡เชจเซ€เช เช•เช‚เชชเชจเซ€ Tencent เชตเชฟเชถเซเชตเชจเซ€ เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ€ เชฐเซ‹เช•เชพเชฃ เช•เช‚เชชเชจเซ€ เช›เซ‡ เช…เชจเซ‡ เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ€ เชตเซ‡เชจเซเชšเชฐ เช•เซ‡เชชเชฟเชŸเชฒ เช•เช‚เชชเชจเซ€เช“เชฎเชพเช‚เชจเซ€ เชเช• เช›เซ‡. Tencentเชจเซ€ เชชเซ‡เชŸเชพเช•เช‚เชชเชจเซ€เช“, เชฌเช‚เชจเซ‡ เชšเซ€เชจเชฎเชพเช‚ เช…เชจเซ‡ เชตเชฟเชถเซเชตเชจเชพ เช…เชจเซเชฏ เชฆเซ‡เชถเซ‹เชฎเชพเช‚, เชตเชฟเชตเชฟเชง เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชธเซ‡เชตเชพเช“, เช†เชฐเซเชŸเชฟเชซเชฟเชถเชฟเชฏเชฒ เชˆเชจเซเชŸเซ‡เชฒเชฟเชœเชจเซเชธ เช…เชจเซ‡ เชˆเชฒเซ‡เช•เซเชŸเซเชฐเซ‹เชจเชฟเช• เชฎเชจเซ‹เชฐเช‚เชœเชจเชจเชพ เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชตเชฟเช•เชพเชธ เชธเชนเชฟเชค เชนเชพเชˆ-เชŸเซ‡เช• เชฌเชฟเชเชจเซ‡เชธเชจเชพ เชตเชฟเชตเชฟเชง เช•เซเชทเซ‡เชคเซเชฐเซ‹เชฎเชพเช‚ เชจเชฟเชทเซเชฃเชพเชค เช›เซ‡.

P4 เช…เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฒ เชฐเซ‚เชŸเซ€เช‚เช— เช เช…เชฆเซเชฏเชคเชจ เชคเช•เชจเซ€เช•เซ‹ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เช‚เชชเชจเซ€เชจเชพ เชจเซ‡เชŸเชตเชฐเซเช• เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡.

เชเช• เชชเซเชฐเซ‡เชฐเช• เชคเชฐเซ€เช•เซ‡, Google เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เช‰เชฆเซเชฏเซ‹เช—เชฎเชพเช‚ เช…เชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฒ เชกเชฟเชเชพเช‡เชจเชฎเชพเช‚ P4 เชจเชพ เชเชกเชชเซ€ เชฆเชคเซเชคเช•เชจเซ€ เชจเซ‹เช‚เชง เชฒเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เช—เชฐเซเชต เช›เซ‡.

2) เชตเชพเชฃเชฟเชœเซเชฏเชฟเช• เช•เช‚เชชเชจเซ€เช“;

Goldman Sachs เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชธเชฎเซเชฆเชพเชฏ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ‹ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชจเชตเซ€เชจเชคเชพ เชฒเชพเชตเชตเชพ เช…เชจเซ‡ เช—เซเชฐเชพเชนเช•เซ‹ เชฎเชพเชŸเซ‡ เชตเชงเซ เชธเชพเชฐเชพ เช‰เช•เซ‡เชฒเซ‹ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชงเซ‹เชฐเชฃเซ‹ เช…เชจเซ‡ เช‰เช•เซ‡เชฒเซ‹ เชตเชฟเช•เชธเชพเชตเชตเชพเชจเซ‹ เชฒเชพเชญ เชฒเซ‡ เช›เซ‡.

3) เช‰เชคเซเชชเชพเชฆเชจ;

เชธเชฎเช—เซเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เช‰เชฆเซเชฏเซ‹เช—เชจเซ‡ P4 เชœเซ‡เชตเซ€ เชญเชพเชทเชพเชฅเซ€ เชซเชพเชฏเชฆเซ‹ เชฅเชถเซ‡ เชœเซ‡ เชซเซ‹เชฐเชตเชฐเซเชกเชฟเช‚เช— เชตเชฐเซเชคเชจเชจเซ‡ เชตเชฟเชถเชฟเชทเซเชŸ เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชธเชฟเชธเซเช•เซ‹ เชชเชฃ เช† เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ€ เชชเซเชฐเซ‹เชกเช•เซเชŸ เชฒเชพเช‡เชจเชจเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชพเชจเซ‡ เช›เซ‡.

เชœเซเชฏเซเชจเชฟเชชเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธเซ‡ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เช‰เชคเซเชชเชพเชฆเชจเซ‹เชฎเชพเช‚ P4 เช…เชจเซ‡ P4 เชฐเชจเชŸเชพเช‡เชฎเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซเชฏเซ‹ เช›เซ‡, เช…เชจเซ‡ เชœเซเชฏเซเชจเชฟเชชเชฐ เชเชฎเซเชฌเซ‡เชกเซ‡เชก เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เช•เซ‹เชกเชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชŸเชฟเช• เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

เชฐเซเช‡เชœเซ€ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ P4 เช…เชจเซ‡ เชคเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•เชจเซ‡ เชœเซ‡ เชฒเชพเชญเซ‹ เชฒเชพเชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซ‹ เชฎเชœเชฌเซ‚เชค เชธเชฎเชฐเซเชฅเช• เช›เซ‡. P4 เชธเชพเชฅเซ‡, เช•เช‚เชชเชจเซ€ เช—เซเชฐเชพเชนเช•เซ‹เชจเซ€ เชตเชฟเชถเชพเชณ เชถเซเชฐเซ‡เชฃเซ€เชจเซ‡ เชถเซเชฐเซ‡เชทเซเช -เช‡เชจ-เช•เซเชฒเชพเชธ เชธเซ‹เชฒเซเชฏเซเชถเชจเซเชธ เชฌเชจเชพเชตเซ€ เช…เชจเซ‡ เชชเชนเซ‹เช‚เชšเชพเชกเซ€ เชถเช•เซ‡ เช›เซ‡.

4) เชฆเซ‚เชฐเชธเช‚เชšเชพเชฐ เชชเซเชฐเชฆเชพเชคเชพเช“;

AT&T เช P4 เชจเซ‹ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช…เชชเชจเชพเชตเชจเชพเชฐ เชนเชคเซ‹, เชœเซ‡ เชคเซ‡ เชคเซ‡เชจเชพ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชœเซ‡ เชตเชฐเซเชคเชฃเซ‚เช• เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹ เชคเซ‡เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฒ เชซเซ‹เชฐเชตเชฐเซเชกเชฟเช‚เช— เช‰เชชเช•เชฐเชฃเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ P4 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชจเชพเชฐ เชธเซŒเชชเซเชฐเชฅเชฎเชฎเชพเช‚เชจเซ‹ เชเช• เชนเชคเซ‹.

Deutsche Telekom เชชเชฐ, เชเช•เซเชธเซ‡เชธ 4.0 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เช•เซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชซเช‚เช•เซเชถเชจเซเชธเชจเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡.

5) เชธเซ‡เชฎเชฟเช•เชจเซเชกเช•เซเชŸเชฐ เช‰เชฆเซเชฏเซ‹เช—;

เช† เชญเชพเชทเชพเช เชจเซ‡เชŸเชตเชฐเซเช• เชฐเซ‚เชŸเซ€เช‚เช— เชชเซเชฒเซ‡เชจเชฎเชพเช‚ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เช•เซเชทเชฎเชคเชพเช“ เชชเชนเซ‹เช‚เชšเชพเชกเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชจเชตเซ‹ เชฆเชพเช–เชฒเซ‹ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ‡เชฐเชซเซ‚เชŸเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซเชฏเซเช‚.

Xilinx P4.org เชจเชพ เชธเซเชฅเชพเชชเช•เซ‹เชฎเชพเช‚เชจเชพ เชเช• เชนเชคเชพ เช…เชจเซ‡ P4 เชญเชพเชทเชพเชจเชพ เชตเชฟเช•เชพเชธเชฎเชพเช‚ เชธเช•เซเชฐเชฟเชฏเชชเชฃเซ‡ เชธเชพเชฎเซ‡เชฒ เชนเชคเชพ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ SmartNIC เช…เชจเซ‡ NFV เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชฎเชพเชŸเซ‡ FPGA-เช†เชงเชพเชฐเชฟเชค เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฒ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เชนเชคเซเช‚, SDNet เชกเชฟเชเชพเช‡เชจเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เชชเซเชฐเชฅเชฎ P416 เช•เชฎเซเชชเชพเช‡เชฒเชฐเชฎเชพเช‚เชฅเซ€ เชเช•เชจเซ‡ เชฌเชนเชพเชฐ เชชเชพเชกเซเชฏเซเช‚ เชนเชคเซเช‚.

6) เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ.

VMware เชฎเชพเชจเซ‡ เช›เซ‡ เช•เซ‡ P4 เชœเชฌเชฐเชฆเชธเซเชค เชŠเชฐเซเชœเชพ, เชจเชตเซ€เชจเชคเชพ เช…เชจเซ‡ เชธเชฎเซเชฆเชพเชฏ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เช…เชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชชเชฐเชฟเชตเชฐเซเชคเชจ เชฒเชพเชตเซ‡ เช›เซ‡. VMware เชถเชฐเซ‚เช†เชคเชฅเซ€ เชœ เช† เช‰เชฆเซเชฏเซ‹เช— เชšเชณเชตเชณเชจเซ‹ เชญเชพเช— เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชจเชตเซ€เชจเชคเชพเชจเซ€ เชจเชตเซ€ เชคเชฐเช‚เช— เชธเซ‰เชซเซเชŸเชตเซ‡เชฐ-เช†เชงเชพเชฐเชฟเชค เช…เชญเชฟเช—เชฎเซ‹ เชฆเซเชตเชพเชฐเชพ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช•เซเชทเชฎเชคเชพเช“เชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชจเชตเซ€เชจเชคเชฎ เช‰เชคเซเชชเชพเชฆเชจเซ‹เชฎเชพเช‚ เชคเซ‡เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡.

เช†เชฎ, P4 เช เชฒเช•เซเชทเซเชฏ-เชธเซเชตเชคเช‚เชคเซเชฐ เช…เชจเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ-เชธเซเชตเชคเช‚เชคเซเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช‰เชฆเซเชฏเซ‹เช— เช…เชจเซ‡ เชเช•เซ‡เชกเซ‡เชฎเชฟเชฏเชพ เชฆเซเชตเชพเชฐเชพ เชชเซ‡เช•เซ‡เชŸ เชฐเซ‚เชŸเซ€เช‚เช— เชตเชฐเซเชคเชฃเซ‚เช•เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชคเชฐเซ€เช•เซ‡ เชตเชฟเชถเชฟเชทเซเชŸ เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชฌเชฆเชฒเชพเชฎเชพเช‚ เชฌเชนเซเชตเชฟเชง เชฒเช•เซเชทเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชธเช‚เช•เชฒเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช†เชœเซ‡, เชฒเช•เซเชทเซเชฏเชพเช‚เช•เซ‹เชฎเชพเช‚ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เช…เชจเซ‡ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชธเซเชตเซ€เชšเซ‹, เชนเชพเช‡เชชเชฐเชตเชพเช‡เชเชฐ เชธเซเชตเซ€เชšเซ‹, NPUs, GPUs, FPGAs, SmartNICs เช…เชจเซ‡ ASIC เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡.

เชญเชพเชทเชพเชจเซ€ เชฎเซเช–เซเชฏ เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“ เชคเซ‡เชจเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เช…เชตเช•เชพเชถเชจเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฎเชพเช‚ เชคเซ‡เชจเชพ เชเชกเชชเซ€ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡.

เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

P4 เชเช• เช–เซเชฒเซเชฒเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช›เซ‡, เชคเชฎเชพเชฎ เชธเช‚เชฌเช‚เชงเชฟเชค เชฎเชพเชนเชฟเชคเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เช›เซ‡ P4.org

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชฒเชฟเช‚เช• https://github.com/p4lang, เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เช‰เชฆเชพเชนเชฐเชฃ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เช…เชจเซ‡ เชŸเซเชฏเซเชŸเซ‹เชฐเชฟเชฏเชฒเซเชธ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เชฎเชพเช‚ เชจเชพเช–เซ‹ P4 เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ Eclipse เชฎเชพเชŸเซ‡, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช 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 เชจเชพ เช…เชจเซเช•เซ‚เชณ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชกเชฎเชพเช‚ simple_switch_CLI เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช›เซ‡.

เชคเชฎเซ‡ เช† เช…เชจเซ‡ เช…เชจเซเชฏ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

P4 เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ

PS เช† เช‰เชจเชพเชณเชพเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เช‡เชจเซเชŸเซ‡เชฒเซ‡ เชนเชพเชฏเชชเชฐเชธเซเช•เซ‡เชฒ เช•เซเชฒเชพเช‰เชก เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹เชจเซ‡ เชเชกเชชเชฅเซ€ เชชเซ‚เชฐเซ€ เช•เชฐเชตเชพเชจเชพ เชชเซเชฐเชฏเชพเชธเชฐเซ‚เชชเซ‡ เชฌเซ‡เชฐเชซเซ‚เชŸ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ เชนเชธเซเชคเช—เชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชพเชฐ เชชเชฐ เชนเชธเซเชคเชพเช•เซเชทเชฐ เช•เชฐเซเชฏเชพ เชนเชคเชพ. เชจเชตเซ€เชจ เชถเซ‡เชจเซ‹เชฏ (เช‡เชจเซเชŸเซ‡เชฒ เช•เซ‹เชฐเซเชชเซ‹เชฐเซ‡เชถเชจเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐ เช—เซเชฐเซเชชเชจเชพ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเชฟเชต เชตเชพเช‡เชธ เชชเซเชฐเซ‡เชธเชฟเชกเซ‡เชจเซเชŸ เช…เชจเซ‡ เชœเชจเชฐเชฒ เชฎเซ‡เชจเซ‡เชœเชฐ)เช เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เช† เช‡เชจเซเชŸเซ‡เชฒเชจเซ‡ เชกเซ‡เชŸเชพ เชธเซ‡เชจเซเชŸเชฐเชจเชพ เช—เซเชฐเชพเชนเช•เซ‹ เชฎเชพเชŸเซ‡ เชฎเซ‹เชŸเชพ เชตเชฐเซเช•เชฒเซ‹เชก เช…เชจเซ‡ เชตเชงเซ เชคเช•เซ‹ เชชเซ‚เชฐเซ€ เชชเชพเชกเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชฎเชพเชฐเชพ เช…เช‚เช—เชค เช…เชญเชฟเชชเซเชฐเชพเชฏเชฎเชพเช‚, เช†เชชเชฃเซ‡ เช เชจ เชญเซ‚เชฒเชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เช‡เชจเซเชŸเซ‡เชฒ FPGA เชšเชฟเชชเซเชธเชจเชพ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เช…เช—เซเชฐเซ‡เชธเชฐ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡ เช‰เชคเซเชคเชฎ เช•เซเชตเชพเชฐเซเชŸเชธ เชตเชพเชคเชพเชตเชฐเชฃ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช‡เชจเซเชŸเซ‡เชฒเชจเชพ เช†เช—เชฎเชจ เชธเชพเชฅเซ‡, เชฌเซ‡เชฐเชซเซ‚เชŸ เชฎเชพเชคเซเชฐ เชคเซ‡เชจเซ€ เชชเซเชฐเซ‹เชกเช•เซเชŸ เชฒเชพเช‡เชจเชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช•เซเชตเชพเชฐเซเชŸเชธ เช…เชจเซ‡ P4 เชธเซเชŸเซเชกเชฟเชฏเซ‹เชจเซ‡ เชชเชฃ เชŸเซ‹เชซเชฟเชจเซ‹ เช…เชจเซ‡ เชŸเซ‹เชซเชฟเชจเซ‹ 2 เชฒเชพเช‡เชจเชฎเชพเช‚ เช—เช‚เชญเซ€เชฐ เช…เชชเชกเซ‡เชŸเซเชธ เช…เชจเซ‡ เชตเชงเชพเชฐเชพเช“ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡.

P4 เชธเชฎเซเชฆเชพเชฏเชจเชพ เชธเชคเซเชคเชพเชตเชพเชฐ เชธเชญเซเชฏ - เช•เช‚เชชเชจเซ€ เชชเชฐเชฟเชฌเชณ เชœเซ‚เชฅ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹