SDN and OpenFlow reshaped the way we configure forwarding devices and determine network behavior, by offering an open interface upon which apps like routing, monitoring, etc. can be built. SDN/OpenFlow helped break network "ossification" and unleash evolution, by enabling one to effectively think networking from top-down. It evidenced, however, a subtle but important problem: networking evolution is also hampered by the inability to change switch behavior, which forces one to build systems constrained from the bottom up. This scenario can change dramatically with the re-emergence of programmable data planes, and languages like POF and P4. Although recent, these languages proved to be very influential, powering several contributions towards flexible and customizable forwarding devices. In this paper, we survey the literature on data plane programmability, from early concepts (like Active Networks) to state-of-the-art solutions. We then dive into research questions that more recent work (especially P4) have uncovered: how to deploy and manage custom switch programs in large-scale networks? Can we improve services like monitoring and security with programmable data planes? Can we make network operation more dependable? As another contribution, we organize and discuss opportunities and challenges with potential to influence research in the field, from the perspective of network and service operations and management.
Read full abstract