tocol-independent packet processors). OpenFlow is a "bottoms-up" approach that focused on packet pipelines that were well defined and with a relatively fixed set of standard protocols. In contrast, P4 is a domain-specific language that is compiled to the specific target packet pipeline, whether software or an ASIC, and controls switches "top-down" by first specifying their forward- ing behavior using the match action abstraction and then populating the forwarding tables (Bosshart et al. 2014). This led to a new level of abstraction that allowed network engineers to rapidly develop and validate new packet processing concepts. Another step forward is the Switch Abstraction Interface (SAI), which defines an abstraction interface for switching ASICs. The interface provides a means for the same software to control multiple suppliers' switching pipelines while keeping the programming interface consistent. This specification also allows exposing supplier-specific functionality and extensions to existing features (Subramaniam 2015). In a similar vein, Domino is an imperative language to program the data plane of high-speed programmable routers and help network engineers design such programmable routers in the first place. It also was a step forward from P4 in providing a construct for algorithms that require chang- ing switch state, or stateful processing, as it modifies or inspects the packet (header or data) while it transits the switch (Sivaraman et al. 2016). While there are many other packet programming advancements, we highlight these four, (Openl Flow, P4, SAI, and Domino) to illustrate an important principle in the evolution of network edge platforms. A key business principle in networking is backward compatibility SO that each advance should be able to replicate and maintain the previous state of the art. This does not mean each new applications should be the sum of the requirements of all previous applications but, if desired, backward compatibility can be maintained SO as to greatly simplify a user's transitio