P4 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

P4 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš
P4 ืื™ื– ืึท ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื“ื™ื–ื™ื™ื ื“ ืฆื• ืคึผืจืึธื’ืจืึทื ืคึผืึทืงืึทื˜ ืจื•ื˜ื™ื ื’ ื›ึผืœืœื™ื. ื ื™ื˜ ืขื ืœืขืš ืึท ื’ืขื ืขืจืึทืœ-ืฆื™ืœ ืฉืคึผืจืึทืš ืึทื–ืึท ื•ื•ื™ C ืึธื“ืขืจ Python, P4 ืื™ื– ืึท ืคืขืœื“-ืกืคึผืขืฆื™ืคื™ืฉ ืฉืคึผืจืึทืš ืžื™ื˜ ืึท ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ื–ื™ื™ื ื– ืึธืคึผื˜ื™ืžื™ื–ืขื“ ืคึฟืึทืจ ื ืขืฅ ืจื•ื˜ื™ื ื’.

P4 ืื™ื– ืึทืŸ ืึธืคึฟืŸ ืžืงื•ืจ ืฉืคึผืจืึทืš ืœื™ื™ืกืึทื ืกื˜ ืื•ืŸ ืžื™ื™ื ื˜ื™ื™ื ื“ ื“ื•ืจืš ืึท ื ืึทืŸ-ื ื•ืฅ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ื’ืขืจื•ืคืŸ ื“ื™ P4 ืฉืคึผืจืึทืš ืงืึธื ืกืึธืจื˜ื™ื•ื. ืขืก ืื™ื– ืื•ื™ืš ื’ืขืฉื˜ื™ืฆื˜ ื“ื•ืจืš ื“ื™ ืขืคึฟืŸ ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ื•ื•ื™ืงื™ืคึผืขื“ื™ืข (ONF) ืื•ืŸ ื“ื™ ืœื™ื ื•ืงืก ื•ื•ื™ืงื™ืคึผืขื“ื™ืข (LF), ืฆื•ื•ื™ื™ ืคื•ืŸ ื“ื™ ื’ืจืขืกื˜ืข ืฉื™ืจืขื ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืขืคึฟืขื ืขืŸ ืžืงื•ืจ ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืคึผืจืึทื“ื–ืฉืขืงืก.
ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ื’ืขื•ื•ืขืŸ ืขืจื™ื“ื–ืฉื ืึทืœื™ ืงื•ื™ื ื“ ืื™ืŸ 2013 ืื•ืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ืึท 2014 SIGCOMM CCR ืคึผืึทืคึผื™ืจ ืขื ื˜ื™ื™ื˜ืึทืœื“ "ืคึผืจืึธื˜ืึธืงืึธืœ ื™ื ื“ืขืคึผืขื ื“ืขื ื˜, ืคึผืึทืงืึทื˜ ืจื•ื˜ื™ื ื’ ืคึผืจืึทืกืขืกืขืจ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’."

ื–ื™ื ื˜ ื–ื™ื™ืŸ ืึธื ื”ื™ื™ื‘, P4 ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืื•ืŸ ื™ื•ื•ืึทืœื•ื•ื“ ืขืงืกืคึผืึธื•ื ืขื ืฉืึทืœื™, ืื•ืŸ ืื™ื– ื’ืขืฉื•ื•ื™ื ื“ ื’ืขื•ื•ืืจืŸ ืึท ื ืึธืจืžืึทืœ ืคึฟืึทืจ ื“ื™ืกืงืจื™ื™ื‘ื™ื ื’ ื“ื™ ื˜ืจืึทื ืกืžื™ืกื™ืข ืคื•ืŸ โ€‹โ€‹ืคึผืึทืงื™ืฅ ื“ื•ืจืš ื ืขืฅ ื“ืขื•ื•ื™ืกืขืก, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื ืขืฅ ืึทื“ืึทืคึผื˜ืขืจื–, ืกื•ื•ื™ื˜ืฉื™ื– ืื•ืŸ ืจืึธื•ื˜ืขืจืก.

"SDN ื”ืื˜ ืคืืจื•ื•ืื ื“ืœืขืŸ ื“ื™ ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืื™ื ื“ื•ืกื˜ืจื™ืข, ืื•ืŸ P4 ื ืขืžื˜ SDN ืฆื• ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืžื“ืจื’ื” ื“ื•ืจืš ื‘ืจืขื ื’ืขืŸ ืคึผืจืึธื’ืจืึทืžืžืึทื‘ื™ืœื™ื˜ื™ ืฆื• ืจื•ื˜ื™ื ื’," ื”ืื˜ ื’ืขื–ืื’ื˜ ื’ื•ืจื• ืคึผืึทืจื•ืœืงืึทืจ, ื™ื’ื–ืขืงื™ืึทื˜ื™ื•ื• ื“ื™ืจืขืงื˜ืึธืจ ืคื•ืŸ ื“ื™ ืขืคึฟืŸ ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ื•ื•ื™ืงื™ืคึผืขื“ื™ืข.

ื“ื™ P4 ืฉืคึผืจืึทืš ืื™ื– ืขืจื™ื“ื–ืฉื ืึทืœื™ ื‘ืืฉืืคืŸ ื“ื•ืจืš ืึท ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืขื ื“ื–ืฉืึทื ื™ืจื– ืื•ืŸ ืจื™ืกืขืจื˜ืฉืขืจื– ืคื•ืŸ Google, Intel, Microsoft Research, Barefoot, Princeton ืื•ืŸ Stanford. ื“ืขืจ ืฆื™ืœ ืื™ื– ื’ืขื•ื•ืขืŸ ืคึผืฉื•ื˜: ืฉืึทืคึฟืŸ ืึทืŸ ื’ืจื™ื ื’-ืฆื•-ื ื•ืฆืŸ ืฉืคึผืจืึทืš ื•ื•ืึธืก ืึท ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืงืขืŸ ืœืขืจื ืขืŸ ืื™ืŸ ืึท ื˜ืึธื’ ืื•ืŸ ื ื•ืฆืŸ ืฆื• ืึทืงื™ืขืจืึทื˜ืœื™ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื•ื•ื™ ืคึผืึทืงื™ืฅ ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืึทืจื™ื‘ืขืจ ื ืขื˜ื•ื•ืึธืจืงืก.

ืคึฟื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘, P4 ืื™ื– ื“ื™ื–ื™ื™ื ื“ ืฆื• ื–ื™ื™ืŸ ืฆื™ืœ ืื•ืžืึธืคึผื”ืขื ื’ื™ืง (ื“"ื” ืึท ืคึผืจืึธื’ืจืึทื ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ P4 ืงืขืŸ ื–ื™ื™ืŸ ืงืึทืžืคึผื™ื™ืœื“ ืึทื ื˜ืฉื™ื™ื ื“ื–ืฉื“ ืฆื• ืœื•ื™ืคืŸ ืื•ื™ืฃ ืึท ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ ื˜ืึทืจื’ืึทืฅ ืึทื–ืึท ื•ื•ื™ ASICs, FPGAs, CPUs, NPUs ืื•ืŸ GPUs).

ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ืื•ื™ืš ืคึผืจืึธื˜ืึธืงืึธืœ ืคืจื™ื™ึท (ื“"ื” ืึท P4 ืคึผืจืึธื’ืจืึทื ืงืขื ืขืŸ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื ืึธืจืžืึทืœ ืคึผืจืึธื˜ืึธืงืึธืœืก ืึธื“ืขืจ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื ื™ื™ึทืข ืžื ื”ื’ ืึทื“ืจืขืกื™ื ื’ ืžืึธื“ืขืก).

ืื™ืŸ ืื™ื ื“ื•ืกื˜ืจื™ืข, P4 ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืžื™ื˜ืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’. ื˜ืึธืžืขืจ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ืื™ื ื˜ืขืจื ืขื˜-RFC ืื•ืŸ IEEE ืกื˜ืึทื ื“ืึทืจื“ืก ื•ื•ืขื˜ ืื•ื™ืš ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ P4 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’.

P4 ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืคึฟืึทืจ ื‘ื™ื™ื“ืข ืคึผืจืึธื•ื’ืจืึทืžืึทื‘ืึทืœ ืื•ืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืคื•ื ืงืฆื™ืข ื“ืขื•ื•ื™ืกืขืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืึทืงื™ืขืจืึทื˜ืœื™ ืจืขืงืึธืจื“ื™ืจืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ืจืขืจื  - ืœื™ื ื™ืข ื ืึทื˜ื•ืจ ืื™ืŸ ื“ื™ ืกื•ื•ื™ื˜ืฉ ืึทื‘ืกื˜ืจืึทืงืฉืึทืŸ ืฆื•ื‘ื™ื ื“ (SAI) ืึทืคึผื™ืก ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ื“ื™ ืึธืคึฟืŸ ืžืงื•ืจ SONiC ื‘ืึทืฉื˜ื™ืžืขืŸ ืึทืก. P4 ืื™ื– ืื•ื™ืš ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ONF ืกื˜ืจืึทื˜ื•ื ืคึผืจื•ื™ืขืงื˜ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืกื•ื•ื™ื˜ืฉื™ื ื’ ื ืึทื˜ื•ืจ ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืื•ืŸ ืคึผืจืึธื•ื’ืจืึทืžืึทื‘ืึทืœ ื“ืขื•ื•ื™ืกืขืก.

ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ, ื“ื™ืกืงืจื™ื™ื‘ื™ื ื’ ื“ื™ ื ืึทื˜ื•ืจ ืคื•ืŸ ื“ื™ ื‘ืึทืฉื˜ื™ืžืขืŸ ืื•ืŸ ื ืขืฅ ืึทื“ืึทืคึผื˜ืขืจื– ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉืึทืคึฟืŸ ืึทืŸ ืคึผื™ื ื˜ืœืขืš ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืžืึธื“ืขืœ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ื ืขืฅ ืื™ื™ื“ืขืจ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜. ื’ืจื•ื™ืก ื•ื•ืึธืœืงืŸ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ืงืขื ืขืŸ ืคึผืจื•ื‘ื™ืจืŸ ืื•ืŸ ื“ื™ื‘ืึทื’ื™ื ื’ ื“ื™ ื ืขืฅ ืœืขื’ืึทืžืจืข ื ื™ืฆืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’, ืื•ืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืจื™ื“ื•ืกื™ื ื’ ื“ื™ ืฆื™ื™ื˜ ืื•ืŸ ืงืึธืก ืคื•ืŸ ื™ื ื˜ืขืจืึธืคึผืขืจืึทื‘ื™ืœื™ื˜ื™ ื˜ืขืกื˜ื™ื ื’ ืื™ืŸ ื“ื™ ืœืึทื‘ืึธืจืึทื˜ืึธืจื™ืข ืึธืŸ ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ื˜ื™ื™ึทืขืจ ื™ื™ึทื–ื ื•ื•ืึทืจื’.

ื“ื•ืจืš ื ื™ืฆืŸ P4, ื ืขืฅ ื•ื™ืกืจื™ื›ื˜ ื•ื•ืขื ื“ืึธืจืก ืงืขื ืขืŸ ื“ืขืจื•ื•ืึทืจื˜ืŸ ืคึผืจืึธืกื˜ ืึทื ื“ืขืจืœื™ื™ื™ื ื’ ืจื•ื˜ื™ื ื’ ื ืึทื˜ื•ืจ ืื™ืŸ ืึทืœืข ืคึผืจืึธื“ื•ืงื˜ืŸ, ืึทืœืึทื•ื™ื ื’ ืจื™ื™ื•ืก ืคื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ, ืกื™ืžืคึผืœืึทืคื™ื™ื™ื ื’ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ืœืขืกืึธืฃ ื™ื ืฉื•ืจื™ื ื’ ื™ื ื˜ืขืจืึธืคึผืขืจืึทื‘ื™ืœื™ื˜ื™.

ื“ืึธืš, P4 ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืžื’ื™ืœื” ื•ื•ืึธืก ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื’ืึธืจ ื ื™ื™ึทืข ื•ื•ืขื’ืŸ ืคื•ืŸ ืจื•ื˜ื™ื ื’. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, P4 ืื™ื– ื•ื•ื™ื™ื“ืœื™ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื˜ืขืœืขืžืขื˜ืจื™ ืื•ืŸ ืžืขื–ืฉืขืจืžืึทื ืฅ ืื™ืŸ ื“ืึทื˜ืŸ ืกืขื ื˜ืขืจืก, ืคืึทืจื ืขืžื•ื ื’ ืื•ืŸ ืกืขืจื•ื•ื™ืก ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ื ืขื˜ื•ื•ืึธืจืงืก.

ื“ื™ ืคืึธืจืฉื•ื ื’ ืงื”ืœ ื”ืื˜ ืื•ื™ืš ืกื˜ืขืคึผื˜ ืึทืจื•ื™ืฃ. ืขื˜ืœืขื›ืข ืœื™ื“ื™ื ื’ ืึทืงืึทื“ืขืžื™ืง ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืคืึธืจืฉื•ื ื’ ื’ืจื•ืคึผืขืก ื”ืึธื‘ืŸ ืืจื•ื™ืก ื™ืงืกื™ื™ื˜ื™ื ื’ ื ื™ื™ึทืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ P4 ืžื’ื™ืœื”, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืžืึทืกืข ื‘ืึทืœืึทื ืกื™ื ื’, ืงืึธื ืกืขื ืกื•ืก ืคึผืจืึธื˜ืึธืงืึธืœืก ืื•ืŸ ืฉืœื™ืกืœ ื•ื•ืขืจื˜ ืงืึทื˜ืฉื™ื ื’. ื ื ื™ื™ึทืข ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืคึผืึทืจืึทื“ื™ื’ื ืื™ื– ื‘ืืฉืืคืŸ, ื›ื™ื“ืขืฉ ืื™ื– ืžืึธื•ื•ื™ื ื’ ืคื•ืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืฆื• ื•ื•ื™ื™ื›ื•ื•ืืจื’, ืึทืœืึทื•ื™ื ื’ ืคื™ืœืข ืื•ืžื’ืขืจื™ื›ื˜, ื ื™ื™ึทืข ืื•ืŸ ื™ื ื“ื–ืฉื™ื ื™ืึทืก ื’ืขื“ืื ืงืขืŸ ืฆื• ืึทืจื•ื™ืกืงื•ืžืขืŸ.

ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืงื”ืœ ื”ืื˜ ื’ืขืžืื›ื˜ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืงืึทื ื˜ืจืึทื‘ื™ื•ืฉืึทื ื– ืฆื• ืงืึธื“ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืงืึธืžืคึผื™ืœืขืจืก, ืคึผื™ื™ืคึผืœื™ื™ื ื–, ื ืึทื˜ื•ืจืึทืœ ืžืึธื“ืขืœืก, ืึทืคึผื™ืก, ืคึผืจื•ื‘ื™ืจืŸ ืคืจืึทืžืขื•ื•ืึธืจืงืก, ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื•ืŸ ืžืขืจ. ืงืึธืžืคึผืึทื ื™ืขืก ืึทื–ืึท ื•ื•ื™ 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. ื–ืขืœื‘ืกื˜ืฉื˜ืขื ื“ื™ืงื™ื™ื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ (s) ื’ืขื ื™ืฆื˜;
  3. ืคืขืœื“ ืจืขืงืึธื ืคื™ื’ื•ืจืึทื‘ื™ืœื™ื˜ื™.

ื–ืขืœื‘ืกื˜ืฉื˜ืขื ื“ื™ืงื™ื™ื˜ ืคื•ืŸ ืฆื™ืœ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ

P4 ืžื’ื™ืœื” ื–ืขื ืขืŸ ื“ื™ื–ื™ื™ื ื“ ืฆื• ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคืจื™ื™ึท, ื˜ื™ื™ึทื˜ืฉ ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึทืžืคึผื™ื™ืœื“ ืคึฟืึทืจ ืคื™ืœืข ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืขื ื“ื–ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ ื’ืขื ืขืจืึทืœ-ืฆื™ืœ ืคึผืจืึทืกืขืกืขืจื–, FPGAs, ืกื™ืกื˜ืขื-ืื•ื™ืฃ-ื˜ืฉื™ืคึผืก, ื ืขืฅ ืคึผืจืึทืกืขืกืขืจื– ืื•ืŸ ASICs. ื“ื™ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืžืืฉื™ื ืขืŸ ื–ืขื ืขืŸ ื‘ืืงืื ื˜ ื•ื•ื™ P4 ื˜ืึทืจื’ืึทืฅ, ืื•ืŸ ื™ืขื“ืขืจ ืฆื™ืœ ืจื™ืงื•ื•ื™ื™ืขืจื– ืึท ืงืึทืžืคึผื™ื™ืœืขืจ ืฆื• ื’ืขืจ ื“ื™ P4 ืžืงื•ืจ ืงืึธื“ ืื™ืŸ ืึท ืฆื™ืœ ื‘ืึทืฉื˜ื™ืžืขืŸ ืžืึธื“ืขืœ. ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ืฆื™ืœ ืžื™ื˜ืœ, ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืึธื“ืขืจ ืืคื™ืœื• ืึท ื•ื•ืึธืœืงืŸ ื“ื™ื ืกื˜. ื•ื•ื™ื™ึทืœ ืคื™ืœืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืึธืจื™ื’ื™ื ืขืœ ื˜ืึทืจื’ืึทืฅ ืคึฟืึทืจ ืคึผ4 ืžื’ื™ืœื” ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ืคึฟืึทืจ ืคึผืฉื•ื˜ ืคึผืึทืงืึทื˜ ืกื•ื•ื™ื˜ืฉื™ื ื’, ืขืก ืื™ื– ื–ื™ื™ืขืจ ืคึผืจืึธืกื˜ ืฆื• ื”ืขืจืŸ ื“ื™ ื˜ืขืจืžื™ืŸ "ืคึผ4 ื‘ืึทืฉื˜ื™ืžืขืŸ" ื›ืึธื˜ืฉ "ืคึผ4 ืฆื™ืœ" ืื™ื– ืžืขืจ ืคึผื™ื ื˜ืœืขืš.

ื–ืขืœื‘ืกื˜ืฉื˜ืขื ื“ื™ืงื™ื™ื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ (s) ื’ืขื ื™ืฆื˜

P4 ืื™ื– ืคึผืจืึธื˜ืึธืงืึธืœ ืคืจื™ื™ึท. ื“ืขื ืžื™ื˜ืœ ืึทื– ื“ื™ ืฉืคึผืจืึทืš ื˜ื•ื˜ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ื’ืขื‘ื•ื™ืจืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคึผืจืึธืกื˜ ืคึผืจืึธื˜ืึธืงืึธืœืก ืึทื–ืึท ื•ื•ื™ IP, ืขื˜ื”ืขืจื ืขื˜, TCP, VxLAN ืึธื“ืขืจ MPLS. ืึทื ืฉื˜ืึธื˜, ื“ื™ P4 ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ื‘ืืฉืจื™ื™ื‘ื˜ ื“ื™ ื›ืขื“ืขืจ ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ ืื•ืŸ ืคืขืœื“ ื ืขืžืขืŸ ืคื•ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืคึผืจืึธื˜ืึธืงืึธืœืก ืื™ืŸ ื“ืขื ืคึผืจืึธื’ืจืึทื, ื•ื•ืึธืก ืื™ืŸ ืงืขืจ ื–ืขื ืขืŸ ื™ื ื˜ืขืจืคึผืจืึทื˜ืึทื“ ืื•ืŸ ืคึผืจืึทืกืขืกื˜ ื“ื•ืจืš ื“ื™ ืงืึทืžืคึผื™ื™ืœื“ ืคึผืจืึธื’ืจืึทื ืื•ืŸ ื“ื™ ืฆื™ืœ ืžื™ื˜ืœ.

ืคืขืœื“ ืจืขืงืึธื ืคื™ื’ื•ืจืึทื‘ื™ืœื™ื˜ื™

ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ ื–ืขืœื‘ืกื˜ืฉื˜ืขื ื“ื™ืงื™ื™ึทื˜ ืื•ืŸ ืึทื‘ืกื˜ืจืึทืงื˜ ืฉืคึผืจืึทืš ืžืึธื“ืขืœ ืึทืœืึทื•ื– ืคึฟืึทืจ ืจืขืงืึธื ืคื™ื’ื•ืจืึทื‘ื™ืœื™ื˜ื™ - P4 ื˜ืึทืจื’ืึทืฅ ื–ืึธืœ ืงืขื ืขืŸ ืฆื• ื˜ื•ื™ืฉืŸ ืคึผืึทืงืึทื˜ ืคึผืจืึทืกืขืกื™ื ื’ ื ืึธืš ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ื“ื™ืคึผืœื•ื™ื“. ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืื™ื– ื˜ืจืึทื“ื™ืฉืึทื ืึทืœื™ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืจื•ื˜ื™ื ื’ ื“ื•ืจืš ื’ืขื ืขืจืึทืœ-ืฆื™ืœ ืคึผืจืึทืกืขืกืขืจื– ืึธื“ืขืจ ื ืขืฅ ืคึผืจืึทืกืขืกืขืจื– ืืœื ื•ื•ื™ ืคืึทืจืคืขืกื˜ื™ืงื˜-ืคื•ื ืงืฆื™ืึธื ื™ืจืŸ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืกืขืจืงืึทืฅ.

ื›ืึธื˜ืฉ ืขืก ืื™ื– ื’ืึธืจื ื™ืฉื˜ ืื™ืŸ ื“ืขืจ ืฉืคึผืจืึทืš ื•ื•ืึธืก ื•ื•ืึธืœื˜ ืคืึทืจืžื™ื™ึทื“ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื’ืึทื ื’ ืคื•ืŸ ืคึผืจืึธื˜ืึธืงืึธืœืก, ื“ื™ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ื–ืขื ืขืŸ ื•ืžื–ืขื™ืง ืคึฟืึทืจ ื“ื™ ืฉืคึผืจืึทืš ืžื—ื‘ืจ ืื•ืŸ ืงืขื ืขืŸ ืœืขืกืึธืฃ ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื‘ื™ื™ื’ื™ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืื•ืŸ ื’ืึธื•ืœื– ืื•ืŸ ื–ื™ื™ืขืจ ืจืขืงืึธื ืคื™ื’ื•ืจืึทื‘ื™ืœื™ื˜ื™.

ะ”ะฐะฝะฝั‹ะต ั…ะฐั€ะฐะบั‚ะตั€ะธัั‚ะธะบะธ ัะทั‹ะบะฐ ะธะทะฝะฐั‡ะฐะปัŒะฝะพ ะทะฐะบะปะฐะดั‹ะฒะฐะปะธััŒ ะตะณะพ ัะพะทะดะฐั‚ะตะปัะผะธ ั ะพั€ะธะตะฝั‚ะฐั†ะธะตะน ะฝะฐ ะฟะพะฒัะตะผะตัั‚ะฝะพะต ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะตะณะพ ะฒ ัะตั‚ะตะฒะพะน ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะต.

ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ืฉื•ื™ืŸ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืคื™ืœืข ืงืึธืžืคึผืึทื ื™ืขืก:

1) ื”ื™ืคึผืขืจืกืงืึทืœืข ื“ืึทื˜ืŸ ืกืขื ื˜ืขืจืก;

ื“ื™ ื›ื™ื ืขื–ืขืจ ืคื™ืจืžืข Tencent ืื™ื– ื“ื™ ื’ืจืขืกื˜ืข ืื™ื ื•ื•ืขืกื˜ืžืขื ื˜ ืคื™ืจืžืข ืื™ืŸ ื“ืขืจ ื•ื•ืขืœื˜ ืื•ืŸ ืื™ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื’ืจืขืกื˜ืข ืคื™ืจื ืขื ืงืืคื™ื˜ืืœ ืคื™ืจืžืขืก. ื“ื™ ืกืึทื‘ืกื™ื“ื™ืขืจื™ื– ืคื•ืŸ ื˜ืขื ืฆืขื ื˜, ืกื™ื™ ืื™ืŸ ื›ื™ื ืข ืื•ืŸ ืกื™ื™ ืื™ืŸ ืื ื“ืขืจืข ืœืขื ื“ืขืจ ืื™ื‘ืขืจ ื“ืขืจ ื•ื•ืขืœื˜, ืกืคืขืฆื™ืืœื™ื–ื™ืจืŸ ื–ื™ืš ืื™ืŸ ืคืืจืฉื™ื“ืขื ืข ื’ืขื‘ื™ื˜ืŸ ืคื•ืŸ ื”ื™ื™-ื˜ืขืง ื‘ื™ื–ื ืขืก, ืืจื™ื™ื ื’ืขืจืขื›ื ื˜ ืคืืจืฉื™ื“ืขื ืข ืื™ื ื˜ืขืจื ืขื˜ ืกืขืจื•ื•ื™ืกืขืก, ืื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื™ื ืขื ื’ืขื‘ื™ื˜ ืคื•ืŸ ืงื™ื ืกื˜ืœื™ื›ืข ืื™ื ื˜ืขืœื™ื’ืขื ืฅ ืื•ืŸ ืขืœืขืงื˜ืจืื ื™ืฉืข ืคืืจื•ื•ื™ื™ืœื•ื ื’.

P4 ืื•ืŸ ืคึผืจืึธื•ื’ืจืึทืžืึทื‘ืึทืœ ืจื•ื˜ื™ื ื’ ื–ืขื ืขืŸ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืคื™ืจืžืข 'ืก ื ืขืฅ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ.

ื•ื•ื™ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืขืจื™ื“ื–ืฉืึทื ื™ื™ื˜ืขืจื–, Google ืื™ื– ืฉื˜ืึธืœืฅ ืฆื• ื‘ืึทืžืขืจืงืŸ ื“ื™ ื’ื™ืš ืึทื“ืึทืคึผืฉืึทืŸ ืคื•ืŸ P4 ืื™ืŸ ื“ื™ ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืื™ื ื“ื•ืกื˜ืจื™ืข ืื•ืŸ ืื™ืŸ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืคึผืœืึทืŸ ืคื•ืŸ ื“ืึทื˜ืŸ ืฆืขื ื˜ืขืจ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ.

2 ) ืงืืžืขืจืฆื™ืขืœืข ืคื™ืจืžืขืก;

Goldman Sachs ะธัะฟะพะปัŒะทัƒั ะฟั€ะตะธะผัƒั‰ะตัั‚ะฒะฐ ั€ะฐะฑะพั‚ั‹ ั ัะพะพะฑั‰ะตัั‚ะฒะพะผ ะพั‚ะบั€ั‹ั‚ะพะณะพ ะธัั…ะพะดะฝะพะณะพ ะบะพะดะฐ ะธ ั€ะฐะทั€ะฐะฑะพั‚ะบะธ ะพะฑั‰ะธั… ัั‚ะฐะฝะดะฐั€ั‚ะพะฒ ะธ ั€ะตัˆะตะฝะธะน ัƒะถะต ัะตะนั‡ะฐั ะฟั€ะธะฒะฝะพัะธั‚ ะธะฝะฝะพะฒะฐั†ะธะธ ะฒ ัะตั‚ะตะฒัƒัŽ ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ัƒ ะธ ะฟั€ะตะดะพัั‚ะฐะฒะปัะตั‚ ะปัƒั‡ัˆะธะต ั€ะตัˆะตะฝะธั ะดะปั ะบะปะธะตะฝั‚ะพะฒ.

3) ืคึผืจืึธื“ื•ืงืฆื™ืข;

ื“ื™ ื’ืื ืฆืข ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืื™ื ื“ื•ืกื˜ืจื™ืข ื•ื•ืึธืœื˜ ื ื•ืฅ ืคื•ืŸ ืึท ืฉืคึผืจืึทืš ื•ื•ื™ P4 ื•ื•ืึธืก ื™ื•ื ื™ืงืœื™ ื“ื™ืคื™ื™ื ื– ืคืึธืจื•ื•ืขืจื“ื™ื ื’ ื ืึทื˜ื•ืจ. Cisco ืื•ื™ืš ื’ืœื•ื™ื‘ื˜ ืื™ืŸ ื˜ืจืึทื ืกืคืขืจื™ื ื’ ื–ื™ื™ึทืŸ ืคึผืจืึธื“ื•ืงื˜ ืฉื•ืจื•ืช ืฆื• ื ื•ืฆืŸ ื“ืขื ืฉืคึผืจืึทืš.

Juniper Networks ื”ืื˜ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ P4 ืื•ืŸ P4 ืจื•ื ื˜ื™ืžืข ืื™ืŸ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืคึผืจืึธื“ื•ืงื˜ืŸ, ืื•ืŸ ื’ื™ื˜ ืคึผืจืึธื’ืจืึทืžืžืึทื˜ื™ืง ืึทืงืกืขืก ืฆื• ื“ื™ ื“ื–ืฉื•ื ื™ืคึผืขืจ ืขืžื‘ืขื“ื™ื“ ืคึผืจืึทืกืขืกืขืจ ืื•ืŸ ื–ื™ื™ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืงืึธื“.

Ruijie ื ืขื˜ื•ื•ืึธืจืงืก ืื™ื– ืึท ืฉื˜ืึทืจืง ืกืึทืคึผืึธืจื˜ืขืจ ืคื•ืŸ P4 ืื•ืŸ ื“ื™ ื‘ืขื ืขืคื™ืฅ ืขืก ื‘ืจืขื ื’ื˜ ืฆื• ื ืขื˜ื•ื•ืึธืจืงืก. ืžื™ื˜ P4, ื“ื™ ืคื™ืจืžืข ืงืขื ืขืŸ ืฉืึทืคึฟืŸ ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ื‘ืขืกื˜ืขืจ-ืื™ืŸ-ืงืœืึทืก ืกืึทืœื•ืฉืึทื ื– ืฆื• ืึท ื‘ืจื™ื™ื˜ ืงื™ื™ื˜ ืคื•ืŸ ืงืึทืกื˜ืึทืžืขืจื–.

4) ื˜ืขืœืขืงืึธืžืžื•ื ื™ืงืึทื˜ื™ืึธื ืก ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื–;

AT&T ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืคืจื™ ืึทื“ืึทืคึผื˜ืขืจ ืคื•ืŸ P4, ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ืข ืฆื• ื ื•ืฆืŸ P4 ืฆื• ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ื ืึทื˜ื•ืจ ื•ื•ืึธืก ื–ื™ ื’ืขื•ื•ืืœื˜ ืฆื• ื–ืขืŸ ืื™ืŸ ื–ื™ื™ืŸ ื ืขื˜ื•ื•ืึธืจืงืก, ืื•ืŸ ืฆื• ื ื•ืฆืŸ P4 ืคึผืจืึธื•ื’ืจืึทืžืึทื‘ืึทืœ ืคืึธืจื•ื•ืขืจื“ื™ื ื’ ื“ืขื•ื•ื™ืกืขืก ืื•ื™ืฃ ื–ื™ื™ืŸ ื ืขืฅ.

ืื™ืŸ Deutsche Telekom, ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืคึผืจืึธื•ื˜ืึทื˜ื™ื™ืคึผ ืฉืœื™ืกืœ ื ืขืฅ ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืึทืงืกืขืก 4.0 ืคึผืจืึธื’ืจืึทื.

5) ืกืขืžื™ืงืึทื ื“ืึทืงื˜ืขืจ ืื™ื ื“ื•ืกื˜ืจื™ืข;

ื“ื™ ืฉืคึผืจืึทืš ื™ื ื™ื™ื‘ืึทืœื“ Barefoot ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ื ื™ื™ึทืข ืคึผืึทืจืึทื“ื™ื’ื ืคึฟืึทืจ ื“ื™ืœื™ื•ื•ืขืจื™ื ื’ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืฆื• ื“ื™ ื ืขืฅ ืจื•ื˜ื™ื ื’ ืคืœืึทืš.

Xilinx ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื’ืจื™ื ื“ืขืจืก ืคื•ืŸ P4.org ืื•ืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืึทืงื˜ื™ื•ื•ืœื™ ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื“ื™ P4 ืฉืคึผืจืึทืš ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืขืก ืื™ืŸ FPGA-ื‘ืื–ื™ืจื˜ ืคึผืจืึธื•ื’ืจืึทืžืึทื‘ืึทืœ ืคึผืœืึทื˜ืคืึธืจืžืก ืคึฟืึทืจ SmartNIC ืื•ืŸ NFV ื™ื™ึทื–ื ื•ื•ืึทืจื’, ืจื™ืœื™ืกื™ื ื’ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ืข P416 ืงืึทืžืคึผื™ื™ืœืขืจื– ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ SDNet ืคึผืœืึทืŸ.

6) ื•ื•ื™ื™ื›ื•ื•ืืจื’.

VMware ื’ืœื•ื™ื‘ื˜ ืึทื– P4 ืงืจื™ื™ื™ืฅ ืจื™ื–ื™ืง ืขื ืขืจื’ื™ืข, ื›ื™ื“ืขืฉ ืื•ืŸ ืงื”ืœ ื•ื•ืึธืก ืื™ื– ื“ืจื™ื™ื•ื•ื™ื ื’ ืžื™ื ื™ื ื’ืคืึทืœ ืื•ืŸ ื ื™ื™ื˜ื™ืง ื˜ืจืึทื ืกืคืึธืจืžืึทืฆื™ืข ืื™ืŸ ื“ื™ ื ืขืฅ. VMware ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ื™ื ื“ืึทืกื˜ืจื™ ื‘ืึทื•ื•ืขื’ื•ื ื’ ื–ื™ื ื˜ ื“ื™ ืึธื ื”ื™ื™ื‘, ื•ื•ื™ื™ึทืœ ืึท ื ื™ื™ึทืข ื›ื•ื•ืึทืœื™ืข ืคื•ืŸ โ€‹โ€‹ื›ื™ื“ืขืฉ ืื™ื– ื’ืขื˜ืจื™ื‘ืŸ ื“ื•ืจืš ื•ื•ื™ื™ื›ื•ื•ืืจื’-ื‘ืื–ื™ืจื˜ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ื•ื•ืึธืก ืคืึทืจื‘ืจื™ื™ื˜ืขืจืŸ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืื•ืŸ ื™ืžืคึผืœืึทืžืึทื ืฅ ืขืก ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ืคึผืจืึธื“ื•ืงื˜ืŸ.

ืื–ื•ื™, P4 ืื™ื– ืึท ืฆื™ืœ-ืคืจื™ื™ึท ืื•ืŸ ืคึผืจืึธื˜ืึธืงืึธืœ-ืคืจื™ื™ึท ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ื™ื ื“ืึทืกื˜ืจื™ ืื•ืŸ ืึทืงืึทื“ืขืžื™ืข ืฆื• ื™ื•ื ื™ืงืœื™ ื“ืขืคื™ื ื™ืจืŸ ืคึผืึทืงืึทื˜ ืจื•ื˜ื™ื ื’ ื ืึทื˜ื•ืจ ื•ื•ื™ ืึท ืคึผืจืึธื’ืจืึทื, ื•ื•ืึธืก ืื™ืŸ ืงืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึทืžืคึผื™ื™ืœื“ ืคึฟืึทืจ ืงื™ื™ืคืœ ื˜ืึทืจื’ืึทืฅ. ื”ื™ื™ึทื ื˜, ื˜ืึทืจื’ืึทืฅ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืื•ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืกื•ื•ื™ื˜ืฉื™ื–, ื”ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ ืกื•ื•ื™ื˜ืฉื™ื–, ื ืคึผื•ืก, ื’ืคึผื•ืก, ืคืคึผื’ืึท, ืกืžืึทืจื˜ื ื™ืงืก ืื•ืŸ ืึทืกื™ืง.

ื“ื™ ื”ื•ื™ืคึผื˜ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ืขืจ ืฉืคึผืจืึทืš ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืงืกืคึผืึทื ื“ ื“ื™ ืคืึทืจื ืขื ืคื•ืŸ ื–ื™ื™ึทืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ืขื ืฉื•ืจ ื“ื™ ื’ื™ืš ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ืŸ ื ืขืฅ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–.

ื’ืขื˜ื™ื ื’ ืกื˜ืึทืจื˜ืขื“

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 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

ืงืึธื ื˜ืจืึธืœ ืœื•ื™ืคืŸ - ื™ื ื“ื™ืงื™ื™ืฅ ื“ื™ ืกื“ืจ ืื™ืŸ ื•ื•ืึธืก ืžืึทื˜ืฉ-ืึทืงืฉืึทืŸ ืžืึทื“ื–ืฉื•ืœื– ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜. ื“ืึธืก ืื™ื– ืึทืŸ ื™ืžืคึผืขืจืึทื˜ื™ื•ื• ืคึผืจืึธื’ืจืึทื ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ื“ื™ ื”ื•ื™ืš ืžื“ืจื’ื” ืคื•ืŸ ืœืึธื’ื™ืง ืื•ืŸ ืžืึทื˜ืฉ-ืึทืงืฉืึทืŸ ืกื™ืงื•ื•ืึทื ืก. ื“ื™ ืงืึธื ื˜ืจืึธืœ ืœื•ื™ืคืŸ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืึทืœืข ืึทื‘ื“ื–ืฉืขืงืฅ ื“ื•ืจืš ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ ืžื“ืจื’ื” ืคื•ืŸ ืงืึธื ื˜ืจืึธืœ.

ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืึทื‘ื“ื–ืฉืขืงืก ื–ืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืึทื‘ื“ื–ืฉืขืงืฅ ืžื™ื˜ ืึท ืงืœืืจ ื“ื™ืคื™ื™ื ื“ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ืึทืคึผื™ ื™ื ื˜ืขืจืคื™ื™ืกื™ื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื˜ืฉืขืงืกื•ื ื›ืขื–ืฉื‘ืŸ, ืจืขื“ื–ืฉื™ืกื˜ืขืจื–, ืงืึธื•ื ื˜ืขืจืก, ืงืึธื•ื ื˜ืขืจืก, ืืื–"ื• ื•.

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. ืึทืคึผื™ ืคึฟืึทืจ ืึธื ืคื™ืจื•ื ื’ ืžืึทืฉื™ืŸ ืฉื˜ืึทื˜ ืื™ืŸ ื“ื™ ื“ืึทื˜ืŸ ืคืœืึทืš

P4 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื‘ืึทืฉื˜ื™ืžืขืŸ ืื™ืŸ P4 ืฉืคึผืจืึทืš

ืžืงื•ืจ ืงืึธื•ื“ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืคื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™.

p4lang/p4c-bm: ืงืจื™ื™ื™ืฅ ื“ื–ืฉืกืึธืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ 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>


ื“ืขืจ ืžืงื•ืจ ืงืึธื“ ื›ึผื•ืœืœ ื“ื™ ืคึผืฉื•ื˜_ืกื•ื•ื™ื˜ืฉ_ืงืœื™ ืคึผืจืึธื’ืจืึทื ืคึฟืึทืจ ื‘ืึทืงื•ื•ืขื ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื‘ืึทืฉื˜ื™ืžืขืŸ ืึทืคึผื™.

ืื™ืจ ืงืขื ืขืŸ ืืจืืคืงืืคื™ืข ื“ืขื ืื•ืŸ ืื ื“ืขืจืข ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™.

P4 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

ืคึผืก ืคืจื™ ื“ืขื ื–ื•ืžืขืจ, Intel ื’ืขื—ืชืžืขื˜ ืึท ื”ืขืกืงืขื ืฆื• ืงืจื™ื’ืŸ Barefoot Networks ืื™ืŸ ืึทืŸ ืึธื ืฉื˜ืจืขื ื’ื•ื ื’ ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ื˜ืจืขืคืŸ ื“ื™ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืคื•ืŸ Hyperscale Cloud ื™ื•ื–ืขืจื–. ื•ื•ื™ Navin Shenoy (ืขืงื–ืขืงื™ื•ื˜ื™ื•ื• ื•ื•ื™ืฆืข ืคึผืจืขื–ื™ื“ืขื ื˜ ืื•ืŸ ื’ืขื ืขืจืึทืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึท ืฆืขื ื˜ืขืจ ื’ืจื•ืคืข ืื™ืŸ Intel Corporation) ื”ืื˜ ื’ืขื–ืื’ื˜, ื“ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ื™ื ื˜ืขืœ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื’ืจืขืกืขืจืข ื•ื•ืขืจืงืœืึธื•ื“ื– ืื•ืŸ ืžืขืจ ืึทืคึผืขืจื˜ื•ื ืึทื˜ื™ื– ืคึฟืึทืจ ื“ืึทื˜ืŸ ืฆืขื ื˜ืขืจ ืงืึทืกื˜ืึทืžืขืจื–.

ืื™ืŸ ืžื™ื™ืŸ ืคืขืจื–ืขื ืœืขื›ืข ืžื™ื™ื ื•ื ื’, ืžื™ืจ ื–ืึธืœ ื ื™ืฉื˜ ืคืึทืจื’ืขืกืŸ ืึทื– ื™ื ื˜ืขืœ ืื™ื– ืึท ืคื™ืจืขืจ ืื™ืŸ ื“ืขืจ ืคึผืจืึธื“ื•ืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹FPGA ื˜ืฉื™ืคึผืก ืื•ืŸ ืขืก ื”ืื˜ ืึท ื•ื™ืกื’ืขืฆื™ื™ื›ื ื˜ ืงื•ื•ืึทืจื˜ื•ืก ืกื•ื•ื™ื•ื•ืข. ื“ืึธืก ืžื™ื™ื ื˜ ืึทื– ืžื™ืจ ืงืขื ืขืŸ ื“ืขืจื•ื•ืึทืจื˜ืŸ ืึทื– ืžื™ื˜ ื“ืขื ืึธื ืงื•ืžืขืŸ ืคื•ืŸ ื™ื ื˜ืขืœ, Barefoot ื•ื•ืขื˜ ื ื™ืฉื˜ ื‘ืœื•ื™ื– ื™ืงืกืคึผืึทื ื“ ื–ื™ื™ืŸ ืคึผืจืึธื“ื•ืงื˜ ืฉื•ืจื”, ืึธื‘ืขืจ ืื•ื™ืš Quartus ืื•ืŸ P4 ืกื˜ื•ื“ื™ืึธ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืขืจื ืกื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืื•ืŸ ืึทื“ื™ืฉืึทื ื– ืฆื• ื“ื™ Toffino ืื•ืŸ Toffino 2 ืฉื•ืจื”.

ื‘ืึทืึทืžื˜ืขืจ ืžื™ื˜ื’ืœื™ื“ ืคื•ืŸ ื“ืขืจ P4 ืงื”ืœ - ืคื™ืจืžืข ืคืึทืงื˜ืึธืจ ื’ืจื•ืคึผืข.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’