P4 แแบโแแถโแแถแแถโแแแแแโแแแแแแทแแธโแแแโแแแแผแโแแถแโแแ
แแถโแกแพแโแแพแแแแธโแแแแแโแแแแผแโแแแแโแแแแ
แแโแแแแแแทแแธแ แแทแแแผแ
แแถแแถแแแแแถแแแแแแแแแแผแแ
แแผแ
แแถ C แฌ Python แแ P4 แแบแแถแแถแแถแแถแแแแถแแแแแแแแแถแแฝแแแนแแแถแแแ
แแถแแฝแแ
แแแฝแแแแแแแแพแฑแแแแแแแพแแกแพแแแแแแถแแแแถแแแแแแแแแแผแแแแแแถแแ
P4 แแบแแถแแถแแถแแแแแแแพแแ
แแ แแแแแถแแขแถแแแแถแแแแแ แแทแแแแแแแแถแแแแขแแแแแถแแแทแแแแแแแถแแแ
แแแแแแแแ แ
แแถ P4 Language Consortiumแ แแถแแแแแแผแแแถแแแถแแแแแแแ Open Networking Foundation (ONF) แแทแ Linux Foundation (LF) แแแแแถแขแแแแแถแแแแแแแแแแถแแแแ
แแแฝแแแธแแแแแแถแแแแแแแแแแแแแถแแแแแแแแพแแ
แแ แ
แแถแแถแแแแแแแผแแแถแแแแแแพแแกแพแแแแแผแแแแแปแแแแแถแ 2013 แ แพแแแถแแแทแแแแแถแแ
แแแแปแแแแแแถแ SIGCOMM CCR แแแแถแ 2014 แแแแแถแแ
แแแแแพแแแถ "Protocol Independent, Packet Routing Processor Programming"แ
แ แถแแแแถแแแแธแแถแแ แถแแแแแแพแแแแแแแแแฝแ P4 แแถแแแธแแ แแแแพแ แแทแแแทแแแแแแแถแแขแแทแแขแแ แแแถแแแถแแแแ แแแแแแถแแแถแแแแแแแถแแแแแแถแแแแถแแแทแแแแแถแขแแแธแแถแแแแแแผแแแแแ แแแแแแแแถแแแแแงแแแแแแแแแแถแ แแฝแแแถแแแขแถแแถแแแแแแแแแแถแ แแปแแแถแแ แแทแแแแแแแแแ
แแแ Guru Parulkar แแถแแแแแแแทแแแแแทแแ Open Networking Foundation แแถแแแทแแถแแแถ "SDN แแถแแแแแถแแแแแแผแแงแแแแถแ แแแแแแแแแถแ แ แพแ P4 แแถแ SDN แแ แแถแแแแแแแทแแแแแแถแแแแแแแถแแแแแแแแแทแแธแแ แแถแแแแถแแแแแแผแแแแแ" แ
แแถแแถ P4 แแแแผแแแถแแแแแแพแแกแพแแแแแผแแแแแแแแปแแแทแแแแแ แแทแแขแแแแแแแถแแแแแถแแแแแธ Google, Intel, Microsoft Research, Barefoot, Princeton แแทแ Stanford แ แแแแแ แแบแแถแแแแแ แแแแแพแแแถแแถแแถแแแแแฝแแแแแพ แแแแขแแแแแแแแพแแแแแแแทแแธแขแถแ แแแแแแแปแแแฝแแแแแ แ แพแแแแแพแแพแแแแธแแทแแแแแถแแแถแแแแแนแแแแแผแแขแแแธแแแแแแแแแแแ แแแแแแแแถแแแแแผแแแถแแแแแพแแถแแแแแแถแแแถแแถแ
แแถแแแแธแแพแแแแแผแ P4 แแแแผแแแถแแแ แแถแกแพแแแพแแแแธแแถแแแแแ แฏแแแถแแแ (แงแแถแ แแแแแแแแแทแแธแแแแแแแแแแแแปแ 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 แแฝแแแถแแแแถแแแแแปแแแปแแแแแถแ แแทแแธแแถแแฏแแแถแ แแทแแแถแแแแแแถแแปแแแแแแแแแแแนแแ แแแแผแแแแถแแแแแแแแแแแแทแแธแแแแธแแฝแแแแแปแแแแแผแแแถแแแแแแพแแกแพแ แแถแแ แแแแแแแแทแแแแแปแแแแแถแแแแแแผแแแธแแแแแแแนแแแ แแแแแแแแ แแแแขแแปแแแแถแแฑแแแแถแแแแแทแแแแแแทแแแนแแแแแถแแแแ แแแแธ แแทแแแแแถแแแแแถแ แแแพแแแแ แกแพแแ
แแ แแแแแขแแแแขแแทแแแแแแแแถแแ แผแแแฝแแ แแแแแแแถแแแแแถแแแ แแแแแแถแแขแแทแแแแแแแแผแ แแฝแแแถแแแแแแแแทแแธแ แแแแแ แแแแแแแแแ แผแ แแแแผแขแถแแแแแแทแแทแแถ 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 แแแแแแแแแแ แแพแแแแแแแธแ แแแแแแแแแแแแพแแแถแแแแแแถแ แแทแ ASICs แ แแแแแแแแแแแแแแแถแแแแแถแแแธแแแถแแแแแแแแแผแแแถแแแแแแแถแแแแถแแถแแแแแ P4 แ แพแแแแแแ แแธแแฝแแแแแแแผแแฑแแแขแแแแ แแแแแแแพแแแแธแแแแแแแแแผแแแแแแ P4 แแ แแถแแแแผแแแแผแแแแแแ แ แแแแแแทแแธแ แแแแแแขแถแ แแแแผแแแถแแแแแแพแแกแพแแแ แแแแปแแงแแแแแแแแแแ แแแแแแทแแธแแถแแแแแ แฌแแผแแแแธแแแแแแถแแแแแแแแ แแแแแถแแแแแแแแ แแพแแแถแ แแแพแแแแแแถแแแแแแแแทแแธ P4 แแบแแแแแถแแแแถแแแแแผแแแแแ แแแแแแแแถแแแถแแแแ แแถแแถแแฟแแแแแแแถแแถแแแแแแปแแแถแแฎแแถแแแ "P4 switch" แแแแแธแแถ "P4 target" แแถแแแถแแแแแนแแแแแผแแแถแแแแแแแ
แฏแแแถแแแแแถแแแแแทแแธแแถแ (s) แแถแแแแแพ
P4 แแบแแถแแทแแธแแถแแฏแแแถแแแแ แแแแแถแแแแแแถแแถแแถแแทแแแถแแแถแแแถแแแแแแพแแแแแแถแแแแทแแธแแถแแแผแแ แแผแ แแถ IP, Ethernet, TCP, VxLAN แฌ MPLS แแแ แแแแปแแแ แแทแ แขแแแแแแแแแแแแแแทแแธ P4 แแทแแแแแถแขแแแธแแแแแแแแแแแแถ แแทแแแแแแแแถแแแแแทแแธแแถแแแแแแแแผแแแถแแแ แแแแปแแแแแแแทแแธ แแแแแ แแแแปแแแแแแแแผแแแถแแแแแแแถแ แแทแแแแแพแแแถแแแแแแแแแแทแแธแ แแแแแ แแทแแงแแแแแแแแแแ แ
แแถแแแแแแแแ แแถแแแแแแแแแแถแแกแพแแแทแ
แฏแแแถแแแถแแแแแทแแธแแถแ แแทแแแแแผแแถแแถแขแแผแแธแขแแปแแแแถแแฑแแแแแแแแแ แแถแแแแแแแแแกแพแแแทแ แแแแแ P4 แแฝแแแแขแถแ แแแแถแแแแแแผแแแแแพแแแถแแแแแ แแแแแแแแถแ แแแแแถแแแแธแแแแแแแแแแแแผแแแถแแแถแแแฑแแแแแแพแแแแถแแแ แแแแแแแถแแแแแแแแผแแแถแแแแแถแแแแถแแแแแแแธแแถแแฝแแแนแแแถแแแแแแผแแแถแแแแแแแแแแแแแแแแพแแแถแแแผแแ แฌแแแแแแแแแแแแพแแแถแแแแแแถแ แแถแแถแแแแแแแธแแฝแแแแแ แผแแแแแถแแแแแถแแแปแแแถแแแแแ
แแแแแธแแถแแทแแแถแแขแแแธแแ แแแแปแแแถแแถแแแแแนแแแถแแถแแแแถแแแแแแพแแแแแแทแแแแแถแแแแแแแพแแแถแแแแแแแปแแแถแแแแถแแแแแแทแแธแแถแแแแแแ แแถแแแแแแพแแแแแแทแแแแแถแแแถแแแแแแแบแแทแแขแถแ แแพแแแพแแแแแขแแแแแทแแแแแแถแแถ แ แพแแแธแแแแปแแขแถแ แแถแแแแแแแแแถแแแแแแแแแแแแแแแแแ แแทแแแแแแ แแทแแแถแแแแแแแแ แแถแแแแแแแแแกแพแแแทแแแแแแแฝแแแแ
แแแแแแแแแแถแแถแแถแแแแแแแแแผแแแถแแแถแแแ แแแแแแผแแแแแขแแแแแแแแพแแแแแแแถ แแแแแแแแแแพแแถแแแแแพแแแแถแแแแแถแแแผแแแแผแแถแแแ แแแแปแแ แแแแแถแแ แแถแแแแแแแแแแแแแถแแ
แแถแแถแแแแแแแผแแแถแแแแแพแแแแถแแแแฝแ แ แพแแแ แแแแปแแแแแปแแ แแปแแแถแ แแแพแแ
1) แแแแแแแแแแแทแแแแแแ Hyperscale;
แแแแปแแ แแปแแ แทแ Tencent แแบแแถแแแแปแแ แแปแแแทแแทแแแแแแแถแแแแแ แแพแแทแแแแแ แแทแแแถแแแแปแแ แแปแแแแแแถแแแแปแแแแแถแแแแแฝแแ แแแแปแแ แแปแแแปแแแแแแแแแแแแแแแ Tencent แแถแแแแ แแแแปแแแแแแแแ แทแ แแทแแแแแปแแแแแแแแแแแแแแแแแปแแแทแแแทแแแแแ แแถแแแแแถแแแแแปแแแทแแแแแแแแแแแแขแถแแธแแแแแแแ แแ แแแแทแแแแถแแแแแ แแฝแแแถแแแแแแถแขแแธแแแบแแทแแแแแแแ แแถแแขแแทแแแแแแแแแแปแแแทแแแแแแแแถแแทแแแแแทแแทแแแ แแทแแแถแแแแแแถแแแแขแแกแทแ แแแแผแแทแแ
P4 แแทแโแแถแโแแแแแโแแแแผแโแแแโแขแถแ โแแแแแโแแแแแแทแแธโแแถแโแแบโแแถโแแ แแ แแแแทแแแแถโแแแแพแโแแแโแแแแผแโแแถแโแแแแพโแแแแปแโแแแแถแแแแแแแแโแแแแแถแโแแแแโแแแแปแแ แแปแแ
แแแแปแแแถแแแถแขแแแแแแแแพแแแแแปแแ แแปแ 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;
แแถแแถแแแแแถแแแพแแแแแพแแแถแ Barefoot แแพแแแแธแขแแปแแแแแแแแผแแแแธแแแแแถแแแแถแแแแแแแแแแแแแถแแแแแแแแแแแ แแถแแแแแแแ แแแแแแแแแแแผแแแแแแถแแ
Xilinx แแบแแถแแแแถแแแทแแแแแถแแแแ P4.org แ แพแแแถแแ แผแแแฝแแแแถแแแแแแแแแแปแแแถแแขแแทแแแแแแแแถแแถ P4 แ แพแแแถแแขแแปแแแแแแถแแ แแแแปแแแแแแแทแแธแแแแแถแแแผแแแแแถแแแพ FPGA แแแแแถแแแแแแแแทแแธ SmartNIC แแทแ NFV hardware แแแแแแแ แแแแผแแแแแแแทแแธแ แแแแแ P416 แแแแผแแแแแขแแแแแแแถแแแแแแแฝแแแแแถแแแ แแถ SDNet แ
6) แแแแแแทแแธแ
VMware แแฟแแถแแแแถ P4 แแแแแพแแแถแแแ แแถแแ แแแแแแแแทแ แแทแแแ แแแแแแแขแแแ แถแแแ แแแแแแแปแแแถแแแแแถแแแแแแผแแแแแแแแแแขแแแแแแ แแทแแ แถแแแถแ แแแ แแแแปแแแแแแถแแ VMware แแบแแถแแแแแแแฝแแแแ แแแถแงแแแแถแ แแแแแแแแแถแแแแธแแพแแแ แแแแแถแแแแแแแแธแแแแถแแ แแแแแแแแทแแแแแผแแแถแแแแแปแแแแแแทแแธแแถแแแแแแแแขแแแแพแแแแแแทแแธแแแแแแแแธแแแแแแแแถแแ แแแแแถแแ แแถแแแแแแแแ แแทแแขแแปแแแแแแถแแ แแแแปแแแแทแแแแ แปแแแแแแแแแแปแแ
แแผแ แแแแ P4 แแบแแถแแถแแถแแแแแแแแแแแทแแธแฏแแแถแแแ แแทแแแแแผแแผแแผแ แแแแแแแผแแแถแแแแแพแแแแงแแแแถแ แแแแ แแทแแแแแแทแแแแแแถ แแพแแแแธแแแแแแแแถแแแทแแแแแผแแฅแแทแแถแแแแแแแแแแแผแแแแแแแ แแแแแแแแถแแแถแแแแแแทแแธ แแแแแ แแแแปแแแแแขแถแ แแแแผแแแถแแ แแแแแแแแแแถแแแแแแแ แ แแแพแแ แแแแแแแแแแแ แแแแแ แแฝแแแถแ Hardware แแทแ Software Switch, Hypervisor Switch, NPUs, GPUs, FPGAs, SmartNICs แแทแ ASICsแ
แแแแแแแแแแถแแแแแแถแแถแแแแแธแแแทแแถแแแถแแแแแแแแแทแแธแแแแแแถแแแถแแแแแถแแ แแทแแแถแแถแแถแแแผแแแถแแขแแปแแแแแแแถแแแถแแแแ แแแแแแแแถแแ แแแแปแแแแแถแแแแแแแแแแแแแถแแ
แแถแแ แถแแแแแแพแ
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;
}
แขแแแแแแ - แแถแแแทแ แแ แแแแแแฝแแแแแบแแพแแแแธแแแแ แแแแแพแแ
แงแแถแ แแแแแแแแถแแแแแแแแนแแแแแแแแถแแแแแถแแแแแแผแแแแแแแถแแแถแแ แปแแแแแแแแแแแแแถแแแธแแแธแแแแแแแแผแแแฝแแแ แแแแแ แปแแแแแแแแฝแแแแแปแแ แแแแแแแแแ แปแแแแแแแแธแแ
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/แแแแ แแแ)แ แแปแแแแ แแแปแแแแแทแแแถแแแแแแทแแแปแแแถแแแแถแแแขแถแ แแแแผแแแถแแแแแแถแแแแแแแแแถแแแแ แแแแปแแแแแแแแถแ แแแปแแแแแ แแแฝแแแถแแแแแถแแแแแผแแแแขแถแ แแแแถแแแแแแถแแ แแผแ แแแแ แแแแแแแถแแแทแแขแถแ แแถแแแแแแทแแแปแ แฌแแแ แแแแธแแแแแแแถแแแแแถแแแแแแแแแแแถแแแแ
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
}
แแทแแแแแแแแแแถ - แแ
แแถแแแแแแแแแแทแแแแแแแแแแแแแถแแแแถแแฝแแแแแ
แแแแธแแฝแแแ
แแทแแแแแแแแแแถแแถแ แข แแแแแแแ
แแทแแแแแแแแแแถแแแแถแแแแแแฝแ (แแ
แแถแแแแแแแแแแแแแแแแถแแแแแแ
แแแแถแแแขแแ)
แขแแแแขแถแ
แแถแแแขแแแธแแแแขแแแแ
แแแแถแแแ
แแธแแแ
แแถแแแ
แแผแแถแแแแแแแ
แแถแแแแแฝแแแแแแถแแแแแแพแแแแแถแแแแแแแแแแแแแถแแแแแแฝแแแแแแขแแแ แงแแถแ แแแแแแแแถแแแแถแแแแแแถแแปแแแแแ
แแ hash
แแทแแแแแแแแแแถแแถแแแแแปแ - แแแแแแแแแแแแถแแแแแแแแ
แ
แแแแแแแ
แผแ แ
แแแแ
แแแแแแผแแแถแแแแแแแแ
แแธแแแ
แแแแถแแแแแแแถแแ
แแแแแแแแแแ
แแแแแแแแถแแแแแผแแแถแแแถแแแแถแแฝแ แแแแแ
แแฝแ
แแฝแแแ แปแแถแ / แแ แปแแถแ
แขแถแแทแแถแแแแแ
แแ แแถแแแแแแถแแแแแแแแ
แแ
แแถแแแแแแแ
แแแแ
แแ (แง. แแฝแแแทแแแแแ)
แแแแแแทแแธแ แแแแแ P4
P4 compiler (P4C) แแแแแพแแ
- แแแแแแแถแแแแพแแแถแแแแแแ แแแแทแแแแแแ
- API แแแแแถแแแแแแแแแแแแแแแถแแแถแแแแถแแแธแแแ แแแแปแแแแแแ แแแแทแแแแแแ
แงแแถแ แแแแแแแถแแแแแถแแแแแแผแแแแแแแทแแธแแ แแแแปแแแถแแถ P4
แแผแแแแแแแขแถแ แแถแแแแแถแแแธแแแแถแแแ
p4lang/p4c-bmแ แแแแแพแแแถแแแแแแแแ
แแถแแแแแแแแ JSON แแแแแถแแ bmv2
p4lang/bmv2แ แแปแแแถแแแแแแแแทแแธแแแแแแแแธแแถแแแแแแแแ
แแถแแแแแแแแ JSON แแแแ bmv2
แแผแแแแแ แถแแแธแแแแถแแแแถแแ แแแแแแแแแแแแ
แงแแถแแแแแถแแฝแแแถแแถแ, แแถแแ แปแแแแแแแขแถแ, แแแแแแ
- 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 แ
แขแแแแขแถแ แแถแแแแแถ แแทแแงแแถแ แแแแแแแแแแแแแธแแแแถแแแ
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