Leveraging P4 Flexibility to Expose Target-specific Features

P416 was designed with extensibility and flexibility in mind to accommodate evolving and domain-specific needs as its adoption grows over time. Such design has proven effective and beneficial based on our experience in using P4 to program the datapath of the Pensando distributed services processor conceived to deliver performance and scale in the implementation of network, security, storage, and visibility services at the network edge. This paper presents how table properties, annotations, and externs can be successfully (and quite naturally) leveraged to enable developers (and the Pensando P4 compiler) to take advantage of powerful hardware-specific features.