I was rereading ‘Fabric: A Retrospective on Evolving SDN’ research paper by Martin Casado from 2012 which discusses the limitations of an SDN based on OpenFlow. This description of three network interfaces jumped out at me:
Like any system, networks can be thought of in terms of interfaces; here we use that term not to refer to a formal programmatic interface, but to mean more generally and informally places where control information must be passed between network entities. There are three relevant interfaces we consider here:
Host — Network: The ﬁrst interface is how the hosts inform the network of their requirements; this is typically done in the packet header (for convenience, in the following we will focus on L3, but our comments apply more generally), which contains a destination address and (at least theoretically) some ToS bits. However, in some designs (such as IntServ), there is a more explicit interface for specifying service requirements.
Operator — Network: The second interface is how operators inform the network of their requirements; traditionally, this has been through per-box (and often manual) conﬁguration, but SDN (as we discuss later) has introduced a programmatic interface.
Packet — Switch: The third interface is how a packet identiﬁes itself to a switch. To forward a packet, a router uses some ﬁelds from the packet header as an index to its forwarding table; the third interface is the nature of this index.
I think I’ve forgotten the reality that host/network interface is key to network operation and that this three
This design structure is then used to highlight a key area of MPLS, namely the addition of yet another control plane that separates the core and network edge:
MPLS introduced an explicit distinction between the network edge and the network core. Edge routers inspect the incoming packet headers (which express the host’s requirements as to where to deliver the packet) and then attach a label onto the packet which is used for all forwarding within the core.
However, MPLS did not formalize the interface by which operators speciﬁed their control requirements. Thus, MPLS distinguished between the Host-Network and Packet-Switch interfaces, but did not develop a general Operator-Network interface.
Fabric: A Retrospective on Evolving SDN – http://yuba.stanford.edu/~casado/fabric.pdf) – Retrieved 5 Sep, 2017