P4 เปเบเบฑเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเบเบทเบเบญเบญเบเปเบเบเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบเบญเบเปเบเบฑเบเปเบเบฑเบ. เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบเบฒเบชเบฒเบเบตเปเปเบเปเบเบปเปเบงเปเบเปเบเบฑเปเบ C เบซเบผเบท Python, P4 เปเบเบฑเบเบเบฒเบชเบฒเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเปเบกเบเบเบตเปเบกเบตเบเบฒเบเบญเบญเบเปเบเบเบเปเบฒเบเบงเบเบซเบเบถเปเบเบเบตเปเปเบซเบกเบฒเบฐเบชเปเบฒเบฅเบฑเบเปเบชเบฑเปเบเบเบฒเบเปเบเบทเบญเบเปเบฒเบ.
P4 เปเบเบฑเบเบเบฒเบชเบฒเปเบซเบผเปเบเปเบเบตเบเบเบตเปเปเบเปเบฎเบฑเบเบญเบฐเบเบธเบเบฒเบ เปเบฅเบฐเบฎเบฑเบเบชเบฒเปเบงเปเปเบเบเบญเบปเบเบเบฒเบเบเปเปเบซเบงเบฑเบเบเบปเบเบเบณเปเบฅเบเบตเปเปเบญเบตเปเบเบงเปเบฒ P4 Language Consortium. เบกเบฑเบเบเบฑเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบ Open Networking Foundation (ONF) เปเบฅเบฐ Linux Foundation (LF), เบชเบญเบเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบ umbrella เบเบตเปเปเบซเบเปเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเปเบเบทเบญเบเปเบฒเบเปเบซเบผเปเบเปเบเบตเบ.
เบเบฒเบชเบฒเบเบฑเปเบเบเปเบฒเบงเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเปเบเบทเปเบญเบเบเบปเปเบเปเบเบเบต 2013 เปเบฅเบฐเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเปเบญเบเบฐเบชเบฒเบ SIGCOMM CCR เบเบต 2014 เบเบตเปเบกเบตเบเบทเปเบงเปเบฒ "Protocol Independent, Packet Routing Processor Programming."
เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบกเบฑเบ, P4 เปเบเปเปเบเบตเบเปเบซเบเปเปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเบขเปเบฒเบเปเบงเบงเบฒ, เบเบฒเบเปเบเบฑเบเบกเบฒเบเบเบฐเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบเบเบฒเบเบชเบปเปเบเบเปเปเปเบเบฑเบเปเบเบฑเบเปเบเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบ, เบฅเบงเบกเบเบฑเบเบญเบฐเปเบเบเปเบเบตเปเบเบทเบญเบเปเบฒเบ, เบชเบฐเบงเบดเบ, เปเบฅเบฐ routers.
เบเปเบฒเบ Guru Parulkar, เบเบนเป เบญเบณ เบเบงเบเบเบฒเบเบเปเบฒเบเบเปเบฅเบดเบซเบฒเบเบเบญเบ Open Networking Foundation เบเปเบฒเบงเบงเปเบฒ "SDN เปเบเปเบซเบฑเบเบเปเบฝเบเบญเบธเบเบชเบฒเบซเบฐ เบเบณ เปเบเบทเบญเบเปเบฒเบ, เปเบฅเบฐ P4 เปเบญเบปเบฒ SDN เปเบเบชเบนเปเบฅเบฐเบเบฑเบเบเปเปเปเบเปเบเบเบเบฒเบ เบเบณ เปเบญเบปเบฒเปเบเบเบเบฒเบเปเบเบชเบนเปเปเบชเบฑเปเบเบเบฒเบ,".
เบเบฒเบชเบฒ P4 เบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเปเบเบทเปเบญเบเบเบปเปเบเปเบเบเบเบธเปเบกเบงเบดเบชเบฐเบงเบฐเบเบญเบเปเบฅเบฐเบเบฑเบเบเบปเปเบเบเบงเปเบฒเบเบฒเบ Google, Intel, Microsoft Research, Barefoot, Princeton เปเบฅเบฐ Stanford. เปเบเบปเปเบฒเปเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ: เบชเปเบฒเบเบเบฒเบชเบฒเบเบตเปเปเบเปเบเปเบฒเบเบเบตเปเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบงเบชเบฒเบกเบฒเบเบฎเบฝเบเบฎเบนเปเปเบเบกเบทเปเปเบถเปเบ เปเบฅเบฐเปเบเปเปเบเบทเปเบญเบญเบฐเบเบดเบเบฒเบเบขเปเบฒเบเบเบทเบเบเปเบญเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเบเบทเบเบชเบปเปเบเบเปเบฒเบเปเบเบทเบญเบเปเบฒเบเปเบเบงเปเบ.
เบเบฑเปเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ, P4 เปเบเปเบเบทเบเบญเบญเบเปเบเบเปเบซเปเปเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบ (i.e. เปเบเบเบเบฒเบเบเบตเปเบเบฝเบเปเบ P4 เบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเบเปเปเบเปเบฝเบเปเบเบเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบซเบผเบฒเบเปเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบฑเปเบ ASICs, FPGAs, CPUs, NPUs เปเบฅเบฐ GPUs).
เบเบฒเบชเบฒเบเบฑเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเปเบเบเบญเบ (เปเบเบฑเปเบ: เปเบเบฃเปเบเบฃเบก P4 เบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเปเบเบฃเปเบเบเปเบกเบฒเบเบเบฐเบเบฒเบเบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง เบซเบผเบทเปเบเปเปเบเบทเปเบญเบฅเบฐเบเบธเบฎเบนเบเปเบเบเบเบตเปเบขเบนเปเปเบเบเบเบณเบเบปเบเปเบญเบเปเปเป).
เปเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒ, P4 เบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเปเบเบเบเบฒเบเบญเบธเบเบฐเบเบญเบ. เบเบฒเบเบเบตเปเบเบญเบฐเบเบฒเบเบปเบ Internet-RFC เปเบฅเบฐเบกเบฒเบเบเบฐเบเบฒเบ IEEE เบเบฐเบฅเบงเบกเปเบเบดเบเบเปเปเบเปเบฒเบเบปเบ P4.
P4 เบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฑเบเบชเบญเบเบญเบธเบเบฐเบเบญเบเบเบตเปเบกเบตเบซเบเปเบฒเบเบตเปเบเบฑเปเบเปเบฅเบฐเบเบปเบเบเบตเป. เบเบปเบงเบขเปเบฒเบ, เบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฑเบเบเบถเบเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบเปเบฝเบเบเปเปเปเบ Switch Abstraction Interface (SAI) APIs เบเบตเปเปเบเปเปเบเบเปเบซเบผเปเบเปเบเบตเบ SONiC switch OS. P4 เบเบฑเบเบเบทเบเปเบเปเปเบเปเบเบเบเบฒเบ ONF Stratum เปเบเบทเปเบญเบญเบฐเบเบดเบเบฒเบเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเบปเปเบงเบญเบธเบเบฐเบเบญเบเบเบปเบเบเบตเป เปเบฅเบฐ เปเบเบฃเปเบเบฃเบกเบเบตเปเบซเบผเบฒเบเบซเบผเบฒเบ.
เบชเปเบฒเบฅเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เบเบฒเบเบญเบฐเบเบดเบเบฒเบเบเบถเบเบเบดเบเปเบฒเบเบญเบเบชเบฐเบซเบผเบฑเบเปเบฅเบฐเบเบปเบงเบเบฑเบเปเบเบเปเบเบทเบญเบเปเบฒเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเบฎเบนเบเปเบเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบทเบเบเปเบญเบเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบฑเบเบซเบกเบปเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเป. เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบฅเบฒเบงเบเบฐเบซเบเบฒเบเปเบซเบเปเบชเบฒเบกเบฒเบเบเบปเบเบชเบญเบเปเบฅเบฐเปเบเปเปเบเปเบเบทเบญเบเปเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเบเปเบเปเบเปเปเบง, เบซเบผเบธเบเบเปเบญเบเปเบงเบฅเบฒเปเบฅเบฐเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบเปเบเบญเบเปเบเบซเปเบญเบเบเบปเบเบฅเบญเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเปเบเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบฎเบฒเบเปเบงเบฅเบฒเบเบฒเปเบเบ.
เปเบเบเบเบฒเบเบเปเบฒเปเบเป P4, เบเบนเปเบเบฒเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบเบปเปเบงเปเบเปเบเบเบปเปเบงเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบฑเบเบซเบกเบปเบ, เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเปเบเปเบเบทเบเปเบซเบกเปเบเบญเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ, เบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบงเบเบฒเบเบเบธเปเบกเบเบญเบเบเปเบฒเบ, เปเบฅเบฐเปเบเบเบตเปเบชเบธเบเบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบฎเปเบงเบกเบเบฑเบ.
เปเบเปเบเบญเบ, P4 เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฝเบเปเบเบผเปเบเบผเบกเบเบตเปเบญเบฐเบเบดเบเบฒเบเบงเบดเบเบตเบเบฒเบเปเบซเบกเปเบขเปเบฒเบเบชเบปเบกเบเบนเบ. เบเบปเบงเบขเปเบฒเบ, P4 เบเบทเบเบเปเบฒเปเบเปเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบ telemetry เปเบฅเบฐเบเบฒเบเบงเบฑเบเปเบเบเปเบเบชเบนเบเบเปเปเบกเบนเบ, เบงเบดเบชเบฒเบซเบฐเบเบดเบเปเบฅเบฐเปเบเบทเบญเบเปเบฒเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบ.
เบเบธเบกเบเบปเบเบเบฒเบเบเบปเปเบเบเบงเปเบฒเบเบฑเบเปเบเปเบเปเบฒเบงเบเบถเปเบ. เบเบธเปเบกเบเบปเปเบเบเปเบงเบฒเปเบเบทเบญเบเปเบฒเบเบเบฒเบเบงเบดเบเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเบซเบผเบฒเบเบเบธเปเบกเปเบเปเปเบเบตเบเปเบเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบซเบกเปเบเบตเปเบซเบเปเบฒเบเบทเปเบเปเบเบฑเปเบเปเบเบเบญเบตเบเปเบชเปเปเบเบเบเบฒเบ P4, เบฅเบงเบกเบเบฑเบเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบ, เบญเบฐเบเบธเบชเบฑเบเบเบฒเปเบเบฑเบเปเบญเบเบฐเบชเบฑเบ, เปเบฅเบฐเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบกเบนเบเบเปเบฒเบเบตเปเบชเปเบฒเบเบฑเบ. เบฎเบนเบเปเบเบเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเปเบซเบกเปเบเปเบฒเบฅเบฑเบเบเบทเบเบชเปเบฒเบเบเบทเปเบ, เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเบเปเบฒเบเบเบฒเบเบฎเบฒเบเปเบงเปเบเบชเบนเปเบเบญเบเปเบง, เปเบฎเบฑเบเปเบซเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบตเปเบเปเปเบเบฒเบเบเบดเบ, เปเบซเบกเปเปเบฅเบฐ ingenious เบญเบญเบเบกเบฒ.
เบเบธเบกเบเบปเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเปเบเปเบเบฐเบเบญเบเบชเปเบงเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบฅเบฐเบซเบฑเบ, เบฅเบงเบกเบเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบก, เบเปเป, เบฎเบนเบเปเบเบเบเบถเบเบเบดเบเปเบฒ, APIs, เบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ, เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ, เปเบฅเบฐเบญเบทเปเบเป. เบเปเบฅเบดเบชเบฑเบเปเบเบฑเปเบ: 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:
เบเบงเบฒเบกเบชเบปเบเปเบชเบเปเบฒเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ
เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบชเบฒเปเบกเปเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบชเบฑเปเบเบเบฒเบ, เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเบญเบญเบเปเบเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบกเบทเปเบญเบเบฝเบเบเบฑเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบปเปเบงเปเบ. เบฅเบฑเบเบชเบฐเบเบฐเบเบปเปเบเบเปเบเบญเบเบเบฒเบชเบฒเปเบกเปเบ:
- เปเบญเบเบฐเบฅเบฒเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบ;
- เปเบญเบเบฐเบฅเบฒเบเบเบญเบเบเบดเบเบตเบเบฒเบ (s) เบเปเบฒเปเบเป;
- เบเบฒเบเบเบณเบเบปเบเบเปเบฒเบเบฒเบเบชเบฐเปเบฒเบกเบเบทเบเปเปเป.
เปเบญเบเบฐเบฅเบฒเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบ
เปเบเบฃเปเบเบก P4 เปเบเปเบเบทเบเบญเบญเบเปเบเบเปเบเบทเปเบญเปเบซเปเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบ, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเบเบฑเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบเบเบฐเปเบเบ, เปเบเบฑเปเบ: เปเบเปเบเบเปเบเบตเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเบเบปเปเบงเปเบ, FPGAs, system-on-chips, เปเบเปเบเบเปเบเบตเปเบเบทเบญเบเปเบฒเบ, เปเบฅเบฐ ASICs. เปเบเบทเปเบญเบเบเบฑเบเบเบฐเปเบเบเบเปเบฒเบเปเปเบซเบผเบปเปเบฒเบเบตเปเปเบญเบตเปเบเบงเปเบฒ P4 เปเบเบปเปเบฒเบซเบกเบฒเบ, เปเบฅเบฐเปเบเปเบฅเบฐเปเบเบปเปเบฒเบซเบกเบฒเบเบเปเบญเบเบเบฒเบ compiler เปเบเบทเปเบญเบเปเบฝเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ P4 เปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบปเปเบฒเบซเบกเบฒเบ. compiler เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเปเบฒเบเบเบถเปเบเปเบเบญเบธเบเบฐเบเบญเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฑเปเบเบเปเบฒเบง, เบเบญเบเปเบงเบเบฒเบเบเบญเบ, เบซเบผเบทเปเบกเปเบเบฐเบเบฑเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเปเบเป. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบซเบผเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบเบชเปเบฒเบฅเบฑเบเปเบเปเบเบก P4 เปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเบเบเบฒเบ, เบกเบฑเบเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบปเปเบงเปเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบเปเบเบดเบเบเปเบฒเบงเปเบฒ "P4 switch" เปเบเบดเบเปเบกเปเบเบงเปเบฒ "เปเบเบปเปเบฒเบซเบกเบฒเบ P4" เปเบกเปเบเบเบทเบเบเปเบญเบเบเบงเปเบฒ.
เปเบญเบเบฐเบฅเบฒเบเบเบญเบเบเบดเบเบตเบเบฒเบ (s) เบเบทเบเบเปเบฒเปเบเป
P4 เปเบกเปเบเบญเบฐเบเบธเบชเบฑเบเบเบฒเปเบญเบเบฐเบฅเบฒเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบฒเบชเบฒเบเปเปเบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบทเปเบเปเบกเบทเบญเบเบชเปเบฒเบฅเบฑเบเปเบเปเบเบเบญเบเบเบปเปเบงเปเบเปเบเบฑเปเบ IP, Ethernet, TCP, VxLAN เบซเบผเบท MPLS. เปเบเบเบเบตเปเบเบฐ, เปเบเบฅเปเบเบฅเบก P4 เบญเบฐเบเบดเบเบฒเบเบฎเบนเบเปเบเบเบชเปเบงเบเบซเบปเบงเปเบฅเบฐเบเบทเปเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเบญเบเปเบเปเบเบเบญเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบเปเบเบเบเบฒเบ, เปเบเบดเปเบเปเบเบเบฑเปเบเบเบทเบเบเบตเบเบงเบฒเบกเปเบฅเบฐเบเบฒเบเบเบธเบเปเบเปเบเปเบเบเปเบเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบฅเบฐเบญเบธเบเบฐเบเบญเบเปเบเบปเปเบฒเบซเบกเบฒเบ.
เบเบฒเบเบเบณเบเบปเบเบเปเบฒเบเบฒเบเบชเบฐเปเบฒเบกเบเบทเบเปเปเป
เบฎเบนเบเปเบเบเบเบฒเบชเบฒเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเบฃเปเบเบเป เปเบฅเบฐเปเบเบเบเปเปเบกเบตเบเบปเบงเบเบปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบกเบตเบเบฒเบเบเบณเบเบปเบเบเปเบฒเบเบทเบเปเปเปเปเบเปโเปเบเบปเปเบฒเปเบฒเบ P4 เบเบงเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเปเบเบฑเบเปเบเบฑเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบฅเบฐเบเบปเบเบเบทเบเบเบณเปเบเป. เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเปเบเปเบเบทเบเบเบนเบเบกเบฑเบเปเบเบเบเบฑเปเบเปเบเบตเบกเบเบฑเบเปเบชเบฑเปเบเบเบฒเบเบเปเบฒเบเปเบเปเบเบเปเบเบตเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเบเบปเปเบงเปเบเบซเบผเบทเปเบเปเบเบเปเบเบตเปเบเบทเบญเบเปเบฒเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบงเบปเบเบเบญเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบตเปเบกเบตเบซเบเปเบฒเบเบตเปเบเบปเบเบเบตเป.
เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเบกเบตเบซเบเบฑเบเปเบเบเบฒเบชเบฒเบเบตเปเบเบฐเบเปเบญเบเบเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเบเบธเบเปเบเปเบเบเบญเบเปเบเบเบชเบฐเปเบเบฒเบฐ, เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเปเปเบชเบฒเบกเบฒเบเปเบเบดเปเบเปเบซเบฑเบเปเบเปเปเบเบเบเบนเปเบเบฝเบเบเบฒเบชเบฒเปเบฅเบฐเปเบเบเบตเปเบชเบธเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบเบญเบเบฅเบฐเบเบปเบเปเบฅเบฐเปเบเบปเปเบฒเบซเบกเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒเบเบทเบเปเบซเบกเป.
เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบผเบปเปเบฒเบเบตเปเบเบญเบเบเบฒเบชเบฒเปเบเปเบเบทเบเบงเบฒเบเปเบงเปเปเบเปเบเบทเปเบญเบเบเบปเปเบเปเบเบเบเบนเปเบชเปเบฒเบเบเบญเบเบกเบฑเบเปเบเบเบชเบธเบกเปเบชเปเบเบฒเบเบเปเบฒเปเบเปเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบเปเบเบเบชเปเบฒเบเปเบเบทเบญเบเปเบฒเบ.
เบเบฒเบชเบฒเปเบเปเบเบทเบเปเบเปเปเบฅเปเบงเปเบเบเปเบฅเบดเบชเบฑเบเบเปเบฒเบเบงเบเบซเบผเบฒเบ:
1) เบชเบนเบเบเปเปเบกเบนเบ Hyperscale;
เบเปเบฅเบดเบชเบฑเบเบเบตเบ Tencent เปเบเบฑเบเบเปเบฅเบดเบชเบฑเบเบฅเบปเบเบเบถเบเบเบตเปเปเบซเบเปเบเบตเปเบชเบธเบเปเบเปเบฅเบเปเบฅเบฐเปเบเบฑเบเบซเบเบถเปเบเปเบเบเปเบฅเบดเบชเบฑเบเบฅเบปเบเบเบถเบเบเบตเปเปเบซเบเปเบเบตเปเบชเบธเบ. เบเปเบฅเบดเบชเบฑเบเบเปเบญเบเบเบญเบ Tencent, เบเบฑเบเบขเบนเปเปเบเบเบฐเปเบเบเบเบตเบเปเบฅเบฐเบเบฐเปเบเบเบญเบทเปเบเปเบเบปเปเบงเปเบฅเบ, เบกเบตเบเบงเบฒเบกเบเปเบฝเบงเบเบฒเบเปเบเบเปเบฒเบเบเปเบฒเบเปเบเบญเบเบเบธเบฅเบฐเบเบดเบเปเบเบฑเบเปเบเปเบฅเบขเบตเบชเบนเบ, เบฅเบงเบกเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบญเบดเบเปเบเบตเปเบเบฑเบเบเปเบฒเบเป, เบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบเปเบฒเบเบเบฑเบเบเบฒเบเบฐเบเบดเบเปเบฅเบฐเบเบฒเบเบเบฑเบเปเบเบตเบเบเบฒเบเปเบญเปเบฅเบฑเบเปเบเบฃเบเบดเบ.
P4 เปเบฅเบฐ routing programmable เปเบกเปเบเปเบเบฑเบเปเบเปเบฅเบเบตเบเปเบฒเบงเบซเบเปเบฒเบเบฒเบเบเปเบฒเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเปเบเบทเบญเบเปเบฒเบเบเบญเบเบเปเบฅเบดเบชเบฑเบ.
เปเบเบเบฒเบเบฐเปเบเบฑเบเบซเบเบถเปเบเปเบเบเบปเปเบเบเปเบฒเปเบเบตเบ, Google เบกเบตเบเบงเบฒเบกเบเบนเบกเปเบเบเบตเปเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบเบฒเบเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒ P4 เบขเปเบฒเบเปเบงเบงเบฒเปเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเปเบเบทเบญเบเปเบฒเบเปเบฅเบฐเปเบเบเบฒเบเบญเบญเบเปเบเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบญเบเบชเบนเบเบเปเปเบกเบนเบเปเบเบเบชเบฐเปเบเบฒเบฐ.
2) เบเปเบฅเบดเบชเบฑเบเบเบฒเบเบเปเบฒ;
Goldman Sachs เปเบเปเบเบฐเปเบซเบเบเบเบฒเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบธเบกเบเบปเบเปเบซเบผเปเบเปเบเบตเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบกเบฒเบเบเบฐเบเบฒเบเบเบปเปเบงเปเบเปเบฅเบฐเบงเบดเบเบตเปเบเปเปเบเปเบเบทเปเบญเบเบฐเบเบดเบเบชเปเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบญเบเปเบเบทเบญเบเปเบฒเบเปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเปเปเบเบเบตเปเบเบตเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบฅเบนเบเบเปเบฒ.
3) เบเบฒเบเบเบฐเบฅเบดเบ;
เบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเปเบเบทเบญเบเปเบฒเบเบเบฑเบเบซเบกเบปเบเบเบฐเปเบเปเบฎเบฑเบเบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบเบฒเบชเบฒเปเบเบฑเปเบ P4 เบเบตเปเบเปเบฒเบเบปเบเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบชเบปเปเบเบเปเป. Cisco เบเบฑเบเปเบเบทเปเบญเปเบเบเบฒเบเปเบญเบเบชเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบญเบเบเบปเบเปเบเบทเปเบญเปเบเปเบเบฒเบชเบฒเบเบตเป.
Juniper Networks เปเบเปเบฅเบงเบกเปเบญเบปเบฒ P4 เปเบฅเบฐ P4 Runtime เปเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเปเบฒเบเบงเบเบซเบเบถเปเบ, เปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบเบฒเบเบเบฑเบเปเบเปเบเบเปเบเบต Juniper เบเบฑเบเปเบฅเบฐเบฅเบฐเบซเบฑเบเบเบญเบเปเบงเบเบญเบเบกเบฑเบ.
Ruijie Networks เปเบเบฑเบเบเบนเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบตเปเปเบเบฑเปเบกเปเบเบเบเบญเบ P4 เปเบฅเบฐเบเบปเบเบเบฐเปเบซเบเบเบเบตเปเบกเบฑเบเบเปเบฒเบกเบฒเบชเบนเปเปเบเบทเบญเบเปเบฒเบ. เบเปเบงเบ P4, เบเปเบฅเบดเบชเบฑเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเปเปเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเปเบเบเบฑเปเบเบฎเบฝเบเปเบซเปเปเบเปเบฅเบนเบเบเปเบฒเบเบตเปเบซเบฅเบฒเบเบซเบฅเบฒเบ.
4) เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเบเปเบฒเบเปเบเบฅเบฐเบเบปเบกเบกเบฐเบเบฒเบเบปเบก;
AT&T เปเบเบฑเบเบเบนเปเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒเบเบปเปเบเปเบเบญเบ P4, เปเบถเปเบเปเบเบเบนเปเบเบณเบญเบดเบเบเบตเปเปเบเป P4 เปเบเบทเปเบญเบเบณเบเบปเบเบเบถเบเบเบดเบเบณเบเบตเปเบกเบฑเบเบขเบฒเบเปเบซเบฑเบเปเบเปเบเบทเบญเบเปเบฒเบเบเบญเบเบกเบฑเบ, เปเบฅเบฐ เบเบณเปเบเปเบญเบธเบเบฐเบเบญเบเบชเบปเปเบเบเปเปเปเบเบเปเบเบฃเปเบเบก P4 เปเบเปเบเบทเบญเบเปเบฒเบเบเบญเบเบกเบฑเบ.
เบขเบนเป Deutsche Telekom, เบเบฒเบชเบฒเบเบทเบเปเบเปเปเบเบทเปเบญเบเบปเปเบเปเบเบเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเปเบเบเบเบฒเบ Access 4.0.
5) เบญเบธเบเบชเบฒเบซเบฐเบเปเบฒ semiconductor;
เบเบฒเบชเบฒเบเบฑเปเบเบเปเบฒเบงเปเบเปเปเบเบตเบเปเบซเปเปเบเปเบเบตเบเปเบเบปเปเบฒเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฐเบเบงเบเบงเบดเบงเบฑเบเบญเบฑเบเปเปเปเบชเบณเบฅเบฑเบเบเบฒเบเบชเบฐเปเบญเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบเบเบญเบเปเบงเปเบซเปเบเบฑเบเปเบเบเบเบฒเบเบเบณเบเบปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบทเบญเบเปเบฒเบ.
Xilinx เปเบกเปเบเบซเบเบถเปเบเปเบเบเบนเปเบเปเปเบเบฑเปเบเบเบญเบ P4.org เปเบฅเบฐเบกเบตเบชเปเบงเบเบฎเปเบงเบกเบขเปเบฒเบเบเบดเบเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบชเบฒ P4 เปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบ FPGA-based programmable platforms เบชเปเบฒเบฅเบฑเบ SmartNIC เปเบฅเบฐ NFV hardware, เบเปเบญเบเบซเบเบถเปเบเปเบ P416 compilers เบเปเบฒเบญเบดเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเบญเบญเบเปเบเบ SDNet.
6) เบเบญเบเปเบง.
VMware เปเบเบทเปเบญเบงเปเบฒ P4 เบชเปเบฒเบเบเบฐเบฅเบฑเบเบเบฒเบเบญเบฑเบเปเบซเบเปเบซเบผเบงเบ, เบเบฐเบงเบฑเบเบเบฐเบเปเบฒ เปเบฅเบฐเบเบธเบกเบเบปเบเบเบตเปเบเปเบฒเบฅเบฑเบเบเบฑเบเปเบเบทเปเบญเบเบเบฒเบเบซเบฑเบเบเปเบฝเบเบเบตเปเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบ เปเบฅเบฐเบเปเบฒเปเบเบฑเบเปเบเปเบเบทเบญเบเปเบฒเบ. VMware เปเบเปเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเบเบตเปเบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ, เบเปเบญเบเบงเปเบฒเบเบทเปเบเปเบซเบกเปเบเบญเบเบเบฐเบงเบฑเบเบเปเบฒเปเบเปเบเบทเบเบเบฑเบเปเบเบทเปเบญเบเปเบเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบญเบตเบเปเบชเปเบเบญเบเปเบงเบเบตเปเบเบฐเบซเบเบฒเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเปเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบซเบฅเปเบฒเบชเบธเบ.
เบเบฑเปเบเบเบฑเปเบ, P4 เปเบกเปเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเปเบฅเบฐเปเบเปเบเบเบญเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเปเบฅเบฐเบเบฑเบเบงเบดเบเบฒเบเบฒเบเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบเบผเปเบเบผเบก, เปเบเบดเปเบเปเบเบเบฑเปเบเบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเบชเปเบฒเบฅเบฑเบเบซเบฅเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบ. เปเบเบกเบทเปเบเบตเป, เปเบเบปเปเบฒเบซเบกเบฒเบเบเบฐเบเบญเบเบกเบตเบชเบฐเบซเบผเบฑเบเบฎเบฒเบเปเบงเปเบฅเบฐเบเบญเบเปเบง, เบชเบฐเบซเบผเบฑเบ hypervisor, NPUs, GPUs, FPGAs, SmartNICs เปเบฅเบฐ ASICs.
เบฅเบฑเบเบชเบฐเบเบฐเบเบปเปเบเบเปเบเบญเบเบเบฒเบชเบฒเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบฐเบซเบเบฒเบเบเบญเบเปเบเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบกเบฑเบเปเบฅเบฐเบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเปเบงเบงเบฒเปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเบทเบญเบเปเบฒเบ.
เปเบเปเบฎเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ
P4 เปเบกเปเบเปเบเบเบเบฒเบเปเบเบตเบ, เบเปเปเบกเบนเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเป
เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ
เบเปเปเบซเปเปเบเบดเปเบเบเบปเบเบเบฑเบเบซเบเปเปเบเบปเปเบเบเปเบเบญเบเปเบเปเบ:
เบเบฒเบเบเปเบฒเบเบปเบเบซเบปเบง โ เบเปเบงเบโเบเบฒเบโเบเปเบงเบโเปเบซเบผเบทเบญโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒ, เบซเบปเบงโเปเบโเปเบโเบเบญเบโเปเบเปโเบเบทเบโเบเปเบฒโเบเบปเบโ.
เบเปเบฒเบเบดเบเบฒเบก header เบเปเบฒเบเบปเบ:
- เบฅเบฒเบโเบฅเบฐโเบญเบฝเบโเบเบญเบโเบฎเบนเบโเปเบเบโเบเบญเบโเปเบฅเบฐโเบเบทเปโเบเบฒเบโเบชเบฐโเบซเบเบฒเบก headerโ
- เบเปเบญเบเบเปเปเบกเบนเบเบเบปเบเบเบตเป เปเบฅเบฐเบเบปเบงเปเบเบเบตเปเบญเบฐเบเบธเบเบฒเบ
เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ
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;
}
เบเบปเบงเบงเบดเปเบเบฒเบฐ โ เบงเบฝเบโเบเบฒเบโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบกเปเบโเปเบเบทเปเบญโเปเบเบโเบซเบปเบงโเบเปเปโ.
เบเบปเบงเบขเปเบฒเบ parser เบเปเปเปเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบฒเบเบซเบฑเบเบเปเบฝเบเบเบญเบเบชเบฐเบเบฒเบเบฐเบชเบธเบเบเปเบฒเบเบเบญเบเปเบเบทเปเบญเบเบเบฑเบเบเบฒเบเบชเบฐเบเบฒเบเบฐเปเบเบทเปเบญเบเบเบปเปเบเบซเบเบถเปเบเปเบเบซเบฒเบซเบเบถเปเบเปเบเบชเบญเบเบชเบฐเบเบฒเบเบฐเบชเบธเบเบเปเบฒเบ:
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;
}
}โฆ
}
เบเบฒเบเบฐเบฅเบฒเบ โ เบเบฐโเบเบญเบโเบเปเบงเบโเบฅเบฑเบโเปเบเบทเปเบญเบโเบเบฑเบโเบเบตเปโเปเบเบทเปเบญเบกโเบเปเปโเบฅเบฐโเบซเบฑเบโเบเบนเปโเปเบเปโเบเบฑเบโเบเบฒเบโเบเบฐโเบเปเบฒโ. เบเบฒเบเบเบฐเบเปเบฒ โ เบฅเบฒเบโเบฅเบฐโเบญเบฝเบโเบเปเบฝเบงโเบเบฑเบโเบงเบดโเบเบตโเบเบฒเบโเบซเบธเปเบกโเบซเปเปโเบเบงเบโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฑเบโเบเบฒเบโ.
เบเบฒเบเบฐเบฅเบฒเบเบเบฐเบเบญเบเบเปเบงเบเบฅเบฑเบ (เบเปเบฒเบเบปเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบ) เบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบปเปเบเบเปเปเปเบเบฑเบเปเบเบฑเบ, เบญเบฐเบเบดเบเบฒเบเบซเบเปเบงเบเบเบฒเบ Match-Action
เปเบเบฑเบเปเบเบฑเบเบเบทเบเบเบฑเบเบเบนเปเปเบเบ:
- เบเบปเบเบเบฑเบเปเบเป
- เบเบฒเบเบเบฑเบเบเบนเปเบเบณเบเบณเปเปเบฒเบเบตเปเบเบฒเบงเบเบตเปเบชเบธเบ (LPM)
- เบเบฒเบเบเบฑเบเบเบนเปเบชเบฒเบกเปเบเบปเปเบฒ (เปเปเบฒเบเบฒเบ)
table ipv4_lpm{
reads{
ipv4.dstAddr: lpm;
} actions {
forward();
}
}
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเบเบฑเบเบซเบกเบปเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒเบเบปเบเบขเบนเปเปเบเบเบฒเบเบฐเบฅเบฒเบเบฅเปเบงเบเบซเบเปเบฒ.
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฐเบเบญเบเบเปเบงเบเบฅเบฐเบซเบฑเบเปเบฅเบฐเบเปเปเบกเบนเบ. เบเปเปเบกเบนเบเบกเบฒเบเบฒเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบ (เปเบเบฑเปเบ: เบเบตเปเบขเบนเป IP/เปเบฒเบเปเบฅเบเบเบญเบ). เปเบเบทเปเบญเบเบเบปเปเบเบเบตเปเปเบเปเบเบญเบ, เบเปเปเบกเบต loop เบชเบฒเบกเบฒเบเบเบทเบเบฅเบฐเบเบธเปเบเบเบเบปเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบเปเบเปเบฒเบเบงเบเบเบญเบเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฒเบเบเบฐเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบกเบต loops เบซเบผเบทเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ.
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;
}
เปเบกเบเบนเบ Match-Action โ เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเปเบเบทเปเบญโเบชเปเบฒเบโเบเบฐโเปเบโเบเบปเปเบโเบซเบฒโ, เบเบฒเบโเบเบปเปเบโเบซเบฒโเปเบโเบเบฒโเบเบฐโเบฅเบฒเบโ, เบเบฐโเบเบดโเบเบฑเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโ.
เบเบปเบงเบขเปเบฒเบเบเบปเบเบเบฐเบเบดเบเบญเบเปเบกเบเบนเบเปเบกเปเบเบชเบฐเปเบเบเบขเบนเปเปเบเบฎเบนเบ:
เบเบงเบเบเบธเบกเบเบฒเบเปเบซเบผ โ เบเบตเปเบเบญเบเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบกเบเบนเบ Match-Action เบเบทเบเบเปเบฒเปเบเป. เบเบตเปโเปเบกเปเบโเปเบเบโเบเบฒเบโเบเบตเปโเบเปเบฒโเปเบเบฑเบโเบเบตเปโเบเปเบฒโเบเบปเบโเบเบฒเบกโเปเบซเบโเบเบปเบโเบฅเบฐโเบเบฑเบโเบชเบนเบโเปเบฅเบฐโเบฅเปเบฒโเบเบฑเบ Match-Action. เบเบฒเบเปเบซเบผเบเบญเบเบเบฒเบเบเบงเบเบเบธเบกเปเบเบทเปเบญเบกเบเปเปเบงเบฑเบเบเบธเบเบฑเบเบซเบกเบปเบเปเบเบเบเบฒเบเบเปเบฒเบเบปเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบงเบเบเบธเบก.
เบงเบฑเบเบเบธเบเบฒเบเบเบญเบ เปเบกเปเบเบงเบฑเบเบเบธเบชเบฐเปเบเบฒเบฐเบเบตเปเบกเบตเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเบเปเบฒเบเบปเบเบขเปเบฒเบเบเบฑเบเปเบเบเปเบฅเบฐเบเบฒเบเปเบเปเบเบญเบ API. เบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบเบดเบเปเบฅเป checksum, เบเบฐเบเบฝเบ, เปเบเบปเบฒเปเบเบต, เปเบเบปเบฒเปเบเบต, เปเบฅเบฐเบญเบทเปเบเป.
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 เบเบฐเปเบเบเบเบญเบ metadata:
metadata เปเบเบเบเบณเบเบปเบเปเบญเบ (เปเบเบเบชเปเบฒเบเบซเบงเปเบฒเบเปเบเบปเปเบฒเบชเบณเบฅเบฑเบเบเบธเบเปเบเบฑเบเปเบเบฑเบ)
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบชเปเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบเบขเบนเปเบเบตเปเบเบตเป
เบกเบตเบขเบนเปเบเบปเปเบงเบเปเป
เบชเบฐเบเบงเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบเบเบญเบเบเปเบฒเบเปเบญเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบธเบ hash
metadata เบเบฒเบเปเบ - เบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบชเบฐเบเบฒเบเบฑเบเบเบฐ
เบเบญเบเบเบฒเปเบเบปเปเบฒ, เบเบญเบเบเบปเบเบเบฐเบฅเบดเบเปเบกเปเบเปเบเปเบเปเบฒเบเบปเบเบขเบนเปเบเบตเปเบเบตเป
เบเบฒเบเบเบฐเบเบฑเบเบเบฒเปเบงเบฅเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบเบธเบเบเบธเบเปเบเปเบเบทเบเบเบฑเบเปเบเบง, เบเบงเบฒเบกเปเบฅเบดเบเบเบญเบเปเบเบง
multicast hash / multicast เบเบดเบง
เบเบนเบฅเบดเบกเบฐเบชเบดเบเบเบญเบเบเบธเบ, เบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเบเบธเบ
เบเปเปเบกเบนเบเบเปเบฒเปเบเบฒเบฐเบเบญเบเบเบญเบเบเบปเบเบเบฐเบฅเบดเบ (เปเบเบฑเปเบ: เปเบเบงเบเบปเบเบเบฐเบฅเบดเบ)
P4 compiler
P4 compiler (P4C) เบชเปเบฒเบ:
- เปเบงเบฅเบฒเปเบฅเปเบเบเบปเบเบเปเปเบกเบนเบ
- API เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบชเบฐเบเบฒเบเบฐเปเบเบทเปเบญเบเบเบฑเบเปเบเบเบปเบเบเปเปเบกเบนเบ
เบเบปเบงเบขเปเบฒเบเบเบญเบเบชเบฐเบซเบผเบฑเบเบเบญเบเปเบงเปเบเบเบฒเบชเบฒ P4
เบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบชเบฒเบกเบฒเบเบเบฒเบงเปเบซเบผเบเปเบเปเบเบฒเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ.
p4lang/p4c-bm: เบชเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ JSON เบชเปเบฒเบฅเบฑเบ bmv2
p4lang/bmv2: เบชเบฐเบซเบผเบฑเบเบเบญเบเปเบงเบเบตเปเปเบเบปเปเบฒเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ JSON เบฅเบธเปเบ bmv2
เบเบปเบงเปเบฅเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบเบงเบฒเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบเบเบเบฒเบ:
เบเบฒเบโเบซเบกเบนเบโเปเบเปโเบเบฑเบโเบเบฒโเบเบฐโเบฅเบฒเบโ, เบเบฒเบโเบญเปเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบโ, countersโ:
- 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>
เบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบฐเบเบญเบเบกเบตเปเบเบเบเบฒเบ simple_switch_CLI เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบตเปเบชเบฐเบเบงเบเบเบญเบเบเบญเบเปเบงเบชเบฐเบซเบผเบฑเบ API.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฒเบงเปเบซเบฅเบเบเบตเปเปเบฅเบฐเบเบปเบงเบขเปเบฒเบเบญเบทเปเบเปเบเบฒเบ repository.
PS เปเบเบเบปเปเบเบฅเบฐเบเบนเบฎเปเบญเบเบเบตเป, Intel เปเบเปเบฅเบปเบเบเบฒเบกเปเบเบเปเปเบเบปเบเบฅเบปเบเบเบตเปเบเบฐเบเบทเป Barefoot Networks เปเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเบเบทเปเบญเบเบญเบเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเบเบนเปเปเบเป Hyperscale Cloud เบขเปเบฒเบเปเบงเบงเบฒ. เบเบฑเปเบเบเบตเป Navin Shenoy (เบฎเบญเบเบเบฐเบเบฒเบเบเปเบฅเบดเบซเบฒเบเปเบฅเบฐเบเบนเปเบเบฑเบเบเบฒเบเบเบปเปเบงเปเบเบเบญเบ Data Center Group เบเบตเป Intel Corporation) เบเปเบฒเบงเบงเปเบฒ, เบเบตเปเบเบฐเบเปเบงเบเปเบซเป Intel เบชเบฒเบกเบฒเบเบชเบฐเบซเบเบญเบเบงเบฝเบเบเบตเปเปเบซเบเปเบเบงเปเบฒเปเบฅเบฐเปเบญเบเบฒเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบฅเบนเบเบเปเบฒเบชเบนเบเบเปเปเบกเบนเบ.
เปเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบชเปเบงเบเบเบปเบงเบเบญเบเบเปเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเปเปเบเบงเบเบฅเบทเบกเบงเปเบฒ Intel เปเบเบฑเบเบเบนเปเบเปเบฒเปเบเบเบฒเบเบเบฐเบฅเบดเบเบเบดเบ FPGA เปเบฅเบฐเบกเบฑเบเบกเบตเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก Quartus เบเบตเปเบเบตเปเบฅเบตเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบฒเบเบกเบฒเบฎเบญเบเบเบญเบ Intel, Barefoot เบเปเปเบเบฝเบเปเบเปเบเบฐเบเบฐเบซเบเบฒเบเบชเบฒเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ, เปเบเปเบเบฑเบ Quartus เปเบฅเบฐ P4 Studio เบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเปเบฅเบฐเปเบเบตเปเบกเบขเปเบฒเบเบเบดเบเบเบฑเบเบเบฑเบเบชเบฒเบ Toffino เปเบฅเบฐ Toffino 2.
เบชเบฐเบกเบฒเบเบดเบเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบญเบเบเบธเบกเบเบปเบ P4 - เบเปเบฅเบดเบชเบฑเบ
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com