The switch.p4 program describes a data plane of an L2/L3 switch.
- Basic L2 Switching: Flooding, learning and STP
- L2 Multicast
- Basic L3 Routing (unicast): IPv4 and IPv6 and VRF
- L3 Multicast
- LAG
- ECMP
- Tunneling: VXLAN and NVGRE (including L2/L3 Gateway), Geneve, GRE and IPinIP
- Basic ACL: MAC and IP ACLs
- Unicast RPF check
- MPLS: LER, LSR, IPVPN, VPLS, L2VPN
- Host interface
- Mirroring: Ingress and egress mirroring with ERSPAN
- Counters/Statistics
- Ingress Policers
- Inband Network Telemetry (INT)
- NAT
- QoS