Goal
- scale up SDN-Controller/RESTconf interface for microserivces which are using only RESTconf (and optional websocket) interface, e.g. highstreet adapted transportPCE
Motivation
- due last stress tests we were able to connect max. 2000 active NETCONF connections to a SDNC
- to establish microservices over a whole provider network (like transportPCE for optical path calculation) we try to multiplex the the RESTconf interface for the nodes
- that means topology has to be rebuild on the microservice side but for all node related RESTconf requests it still looks like one single SDN-Controller is holding every single connection to the nodes of the network
Restrictions
- RESTconf only for the device requests (up to now)
- NodeIds have to be unique in the whole network (over multiple SDNCs /SDNC clusters)
- only implemented services (here named multirequest services) can also be forwarded
- things like network-topology are up to now not possible to forward (therefore the response data have to be combined)
How it works
Forwarding Rules
Uri | Description |
---|---|
^\/rests\/(data|operations)\/network-topology:network-topology\/topology=topology-netconf\/node=([a-zA-Z0-9\-_]+)[\?\/]+ | forward to odl of nodeId(match.group(2)) |
^\/restconf\/(config|operational)\/network-topology\/network-topology\/topology\/topology-netconf\/node\/([a-zA-Z0-9\-_]+) | forward to odl of nodeId(match.group(2)) |
^/odlux | handled by sdnc-web |
^/help | handled by sdnc-web |
^/yang-schema | multi request service (with caching?) |
^/odl/[a-zA-Z0-9\-](/.*)$ | forward to odl as match.group(1) |
^/jolokia | ??? can be handled with /odl/... rule |
Possible Improvements
- merge SDNCs topologies which are requested southbound to one overall topology northbound (e.g. for topology-netconf)