Applications with Intents: Unlocking Innovations in SDN
November 8, 2015 Leave a comment
NorthBound Interface (NBI) that can consume applications’ intents for desired connectivity and traffic treatment is an elegant and powerful concept that can accelerate development of wide range of network applications on SDN. In this post, I will describe the idea and then fire-up a controller and a forwarding plane to get deeper insights into the potential of application intents.
Intent framework was introduced by ON.Lab in the first release of ONOS and the concept was validated when Open DayLight project also endorsed it for development. The key idea is that network applications that interact with the controller at the NBI should be decoupled from the protocols at the SouthBound Interface (SBI) of the controller. Basically, this means
- Network applications are mainly concerned with using (or avoiding) network resources, such as links, bandwidth and ports, to fulfill business requirements, e.g. policy based routing for security, quality of service and reliability etc. Applications express ‘what’ they desire or need as intents through the NBI.
- The controller receives the application intents then figures out ‘how’ to fulfill application intents by processing and translating intents into rules that can be delivered to the forwarding plane through appropriate protocol at the SBI.
- The forwarding plane, which could be MPLS or OpenFlow switches or ROADMs or some other technology, installs the rules received from the control plane.
Note the network applications are not burdened with dealing with the nuts and bolts of the protocols used at the SBI or forwarding technology in the forwarding plane. This separation of network applications from the networking technology will allow each to evolve independently and reduce complexity to make changes at each layer.
Known capabilities, e.g. traffic engineering, smart use of bandwidth (think SD-WAN), switching, routing, restoration etc., and many more not yet conceived are possible as applications with intents on SDN controllers.
ONOS comes with an implementation of Intent Framework, which I have been using to understand how they work. Below is a screen recording of 2 types of intents, (i) ‘Host Intent’ for connectivity between two hosts and (ii) ‘Point Intent’ for fine grained control over network resources for routing control.
Helpful Resources:
- The ONOS CLI page on the WIKI has syntax of host and point intents shown in the video, as well as other intents available in ONOS.
- I used the same ‘triangleTopo.py’ that was used in the ONOS: Getting Started Video, the topology file can be downloaded here and saved in a file with .py extension.
- The point intents, used in the second example can be downloaded here.