Intent NBI for Software Defined Networking
Total Page:16
File Type:pdf, Size:1020Kb
Intent NBI for Software Defined Networking Intent NBI for Software Defined Networking 1 SDN NBI Challenges According to the architecture definition in Open Networking Foundation (ONF), a Software Defined Network (SDN) includes three vertically separated layers: infrastructure, control and application. The North-Bound Interface (NBI), located between the control plane and the applications, is essential to enable the application innovations and nourish the eco-system of SDN by abstracting the network capabilities/information and opening the abstract/logic network to applications. Traditional NBI used to pay more attention on the function layer. The Functional NBI is usually designed by the network domain experts from the network system point of view. The network capabilities are abstracted and encapsulated from bottom up. This kind of design does not take care of the requirement from user side, but expose network information and capability as much as possible. In this way, applications can get maximum programmability from the functional NBI. The examples of functional NBI include: device and link discovery, ID assignment for network interfaces, configuration of forwarding rules, and management of tens of thousands of network state information. However, let’s look from the application developer’s point of view, and assume that they are not familiar with the complex network concepts and configurations. The application developers want to focus on the functionality of the application and the friendly interaction with application users. The network service is required to be used as easy and automatic as the cloud services. The network function is required to be flexible, available and scalable. All this requires the network to have a set of service oriented, declarative, and intent based NBI. For instance, “create a connection between site A and B”, “provide the Service Level Agreement (SLA) for my Data Center Interconnection (DCI)”, “apply a Service Function Chain (SFC) for my internet access from my Virtual Data Center (vDC)”. The complexity of the network service interface is the pain point of the application developers. Complexity is the enemy of the scalability. Complexity makes the interface not easy to use. Intent NBI for Software Defined Networking Complexity makes the application development error-prone. Complexity blocks the innovation of network service related applications. The way to solve the complexity is to add a declarative network middle-ware on top of the controller platform, and tell the controller what the application want but not how to do by using the Intent NBI. It captures the application intent, converts to the domain and dedicated technique specific configuration details, while concealing the complex translation. Application Application Application Application Application Application Application Application Intent … … Declarative Network Middleware Specific Domain Controller Platform Controller Platform Details Data path Data path Data path Data path Data path Data path 2 What’s Intent NBI? In order to simplify the interaction between the network service consuming application and the controller, the control plane should provide an Intent NBI level. Intent NBI is independent with specific network technology, while providing application related terms and vocabulary, so that users do not see VPN, MPLS, and any other routing protocols. Intent NBI abstracts the network objects and capabilities, and expresses the user’s intent on what to do declaratively, but not how to do. Intent NBI express the expected service that the controller delivers. The SDN controller is a “black box” for resource allocation and management. Let’s take the taxi service in real life for example. One passenger wants to take the taxi from A place to B place. He does not have to know how to go there, but to tell the driver: “Hey, I want to go to B.” That’s it. The message only carries what the passenger want. The passenger also does not have to tell the driver why he wants to go to B, because this is not the passenger’s intent. We Intent NBI for Software Defined Networking can also find similar examples in network domain. Intent NBI benefits applications and the development. • Intent description is declarative, not designates the way for execution. The SDN controller can calculate the optimal result to fulfill the intent request. • Intent request is independent of the controller platforms and implementations. It only expresses the requirements for the application layer, and uses application related vocabulary and information. One intent request can be implemented on different controller with various algorithms. This enables portable applications. • Intent NBI helps applications to reduce conflict on higher level, so that increases the success of requests. For example, a typical connection needs to assign the network elements on the connection path. And then, the SDN controller sets associated network elements with configurations. However, if there are some governance rules that limit the application to touch one element, the deployment will fail. If we apply intent, the application only express the requirement to create a connection between site A and site B, the SDN controller can automatically calculate an optimal path to avoid the network element. The deployment succeeds! 3 Intent Expression Modeling In order that the SDN controller can understand the intent requests, formalize models are required for intent expression. Let’s firstly conclude the intent expression from our real life. There will be two expression patterns: • The Operation expression, expresses what I want to do. • The Result expression, expresses the expected final state. We can also find the following network domain intents: • I want to CREATE a Network for HR (Customer Facing Node) • I want to BLOCK the http flow (Flow) • I want to ADJUST the bandwidth (Connection) to 10G • I want to AVOID the bandwidth utilization on the connection greater than 80%. (Result) Intent NBI for Software Defined Networking We can generate the following OOR (Object-Operation-Result) model for the intent expression according to above network examples. Intent CFN (Customer Facing Node) Expect State Connection Object Operation Result ServiceFlow Avoid State Condition Action Constraint There are two patterns for intent expression: the Object+Operation and the Object+Result. On the network service layer: • Object, includes: Customer Facing Node (CFN), Connection, and Service Flow. • Operation, describes the expected behavior. It can be generally formalized with “on condition, do action, with the constraint”. • Result, describes the expected state. We can use the clause “expect to achieve the state” or “avoid the state”. 4 Huawei Practice on Intent NBI The NEMO project initiated by Huawei and leading operators keeps leading the Intent NBI practice. It provides life cycle solutions for the intent implementation. NEMO project developed a network service oriented programming language as a novel SDN NBI fashion. It breaks the “funnel” like scenario based NBI by a set of network service oriented primitives based on the above intent expression model. The NEMO language includes 15 simple statements instead of thousands of API, and can flexibly compose most scenarios. NEMO language expresses the user intent with a more intuitive way, so that application developers can only tell the SDN controller what to do, rather than how to do. The NEMO execution engine implements an intelligent network service middleware by concealing the complexity of network implementation and deployment. It translates the high level Intent NBI for Software Defined Networking service intent into the real network deployments, and solves the network conflict on resource and policy. The three layer translation framework innovation simplifies the mapping from intent to deployment. The mapping on each layer is clear, so that third party and new functions and algorithms can be easily integrated into the framework. Moreover, NEMO provides a set of supporting tools, e.g. the sandbox, facilitating testing, simulation, and deployment. Service customization and innovation is one pain point from operators. Based on the generic network operation pattern, NEMO project provides operator business designer with an easy to use network service template functionality. The NEMO language captures the customer intent from various domains, and describes the network requirements. While leaving all the complexities to the SDN controller, NEMO simplifies network design and expedites the service innovation and deployment by optimized software system, automatic resource allocation, network performance monitoring, and conflict solving for both resource and policy. Huawei is working with standard development organizations, e.g., IETF, ONF, and open-source communities to design and development the Intent NBI, intent model, NEMO language syntax, and intent execution engine. .