Shim layer abstraction in multi-protocol SDN controller
AssigneeCisco Technology, Inc.
InventorsBhushan Kanekar, Giovanni Meo, Madhu Venugopal
Life of this patent
Estimating the term…
Abstract
A Service Abstraction Layer (SAL) provides network level abstraction enabling applications to interface via multiple software-defined networking (SDN) protocols with network devices in a heterogeneous network (devices in the network support a variety of SDN protocols) and in an opaque fashion in order to fulfill desired services by one or more of the protocols. Abstraction is not limited or mapped to any particular protocol. Protocols can change and applications can vary. Support for new protocols can be added later as plug-ins.
Claims19
A method comprising:
- at a software defined network (SDN) controller, receiving from a plurality of applications via application programming interfaces (APIs) of different types requests for services to be performed by a plurality of network devices that communicate with the SDN controller by a plurality of different SDN protocols;
- mapping the requests for services to appropriate ones of the plurality of different SDN protocols to fulfil the services of the requests, wherein the mapping includes, for each request for services:
- generating a feature request from the request for services based on a service-to-feature-registry;
- storing information that maps network device capability based features to a plurality of plugins each for a respective one of the plurality of different SDN protocols;
- and
- dynamically selecting one of the plurality of plugins based on a feature contained in the feature request to a given network device or set of network devices,
- wherein the mapping between the requests for services and the plugins is performed in a services abstraction layer so as to provide network level abstraction enabling the plurality of applications to interface via the different SDN protocols with the network devices to implement a heterogeneous network in which the network devices support the different SDN protocols in an opaque fashion in order to fulfill the requests for services using the different SDN protocols;
- and
- sending from the SDN controller to respective ones of the plurality of network devices control messages from the selected plugins according to appropriate ones of the plurality of different SDN protocols.
An apparatus comprising:
- a network interface unit to send and receive communications over a network;
- a memory;
- and
- a processor coupled to the network interface and the memory, that:
- receives from a plurality of applications via application programming interfaces (APIs) of different types requests for services to be performed by a plurality of network devices that communicate with the network interface unit by a plurality of different SDN protocols;
- maps the requests for services to appropriate ones of the plurality of different SDN protocols to fulfil the services of the requests, wherein the processor is configured to map the requests by, for each request for services:
- generating a feature request from the request for services based on a service-to-feature-registry;
- storing information that maps network device capability based features to a plurality of plugins each for a respective one of the plurality of different SDN protocols;
- and
- dynamically selecting one of the plurality of plugins based on a feature contained in the feature request to a given network device or set of network devices,
- wherein the processor is configured to perform the map operation between the requests for services and the plugins in a services abstraction layer so as to provide network level abstraction enabling the plurality of applications to interface via the different SDN protocols with the network devices to implement a heterogeneous network in which the network devices support the different SDN protocols in an opaque fashion in order to fulfill the requests for services using the different SDN protocols;
- and
- sends, from the network interface unit to respective ones of the plurality of network devices, control messages from the selected plugins according to appropriate ones of the plurality of different SDN protocols.
One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and when the software is executed by a processor, cause the processor to:
- receive from a plurality of applications via application programming interfaces (APIs) of different types requests for services to be performed by a plurality of network devices that communicate by a plurality of different SDN protocols;
- map the requests for services to appropriate ones of the plurality of different SDN protocols to fulfil the services of the requests, wherein the instructions to cause the processor to map include instructions to cause the processor to, for each request for services:
- generate a feature request from the request for services based on a service-to-feature-registry in a service manager;
- store information that maps network device capability based features to a plurality of plugins each for a respective one of the plurality of different SDN protocols;
- and
- dynamically select one of the plurality of plugins based on a feature contained in the feature request to a given network device or set of network devices,
- wherein the instructions to cause the processor to map include instructions to cause the process to map between the requests for services and the plugins in a services abstraction layer so as to provide network level abstraction enabling the plurality of applications to interface via the different SDN protocols with the network devices to implement a heterogeneous network in which the network devices support the different SDN protocols in an opaque fashion in order to fulfill the requests for services using the different SDN protocols;
- and
- send to respective ones of the plurality of network devices control messages from the selected plugins according to appropriate ones of the plurality of different SDN protocols.
Dependencies are inferred from the claim text.