Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



37 Commits

Repository files navigation


This page is created for newcomers to P4 who ask for "what hardware can one use to prototype P4 code?"


(a) A hardware target is a switching asic, FPGA, NPU, or generic compute.
(b) A hardware platform is a switch (using asic), smartNIC (using FPGA or NPU), or server/laptop machine.


The list covers hardware targets and platforms supporting P4-16 in abphabetical order. Supporting p4 entails the target supports a p4c (P4 compiler) backend. A hardware target is useles without a P4 compiler (p4c) - therefore compiler vendors are also listed. Lastly, a target that only supports p4runtime is not included.

For FPGA, Xilinx provides their P4 programming tools chain. There is also Netcope who has a tools chain for P4 programming FPGA from Intel and Xilinx.

  1. Barefoot Networks Tofino/Tofino2 asic in ODM switches - some ODM vendors are Edgecore (, Netberg (, Inventec (, Delta, WNC (, and Foxconn. Stordis and Kaloom use ODM switches with open or proprietary switch OS.

    Sample P4-16 programs for Tofino are at this repo:

  2. Open-source P4 compiler (p4c) has a P4 to DPDK backend: Please read the file at the above link to learn how to generate DPDK .spec file using the compiler.

  3. Mellanox has Spectrum/Spectrum2 asic. Their switches are SN2100, SN2700 (Spectrum) and SN3700 (Spectrum 2). Their Linux switch uses TC. Mellanox has a p4c with front-end and mid-end using open-source p4lang/p4c. Mellanox has a p4c backend they plan to open source (as soon as we get it modularized from our common backend infra). Marian presented this at this year's netdev conference.

  4. Netcope : Has tools chain to program FPGA with P4 (p4-16)

  5. Netronome NIC using NPU - has p4 compiler. Update, 04/07/2021: Netronome has closed its California Bay Area office. However, one can still buy their smart NICs from Colfax. See>. One NIC is CX 2x10GbE.

    Try shopping for Intel/Xilinx NIC which support P4.

    Also see:

  6. Orange: Has a p4c backend for linux user space. See

  7. Pensando has a service card that goes into a PCI slot of a computing machine. Also, see

  8. p4lang/p4c EBPF (Enhanced Berkeley Packet Filter). EBPF runs inside Linux kernel.

  9. Xilinx FPGA with P4 compiler.

  10. Development platform for $100. See and The platform converts P4 to C.

Specifically, no openwrt access point implementation for P4 exists.


No description, website, or topics provided.






No releases published


No packages published