...
- Below is the list of solvers used in OOF and its usage. The Route Optimiser Optimizer package will be used for the MDONS use case as well.
- Policy is not going to be involved to list the constraints for now.
- Once config policies are defined for MDONS use case , OOF wil will fetch these policies to get certain other constraints and apply them while running the algorithm.
...
- If two links between two controllers have the same specification then minizinc automatically chooses one. The implementation for Guilin release is based out of this logic.
Existing Solvers and Usage
Solver | Usage |
---|---|
License Optimizer | VNF license optimization |
PCI Optimizer | Pci optimization |
Placement Optimizer | VNF placement optimization |
Slice Optimizer | Slice selection and instantiation optimization |
Route Optimizer | Perform the route calculations and return the vpn-bindings for CCVPN use case |
Jira server ONAP JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 425b2b0a-557c-3c0c-b515-579789cceedb key OPTFRA-
server | ONAP JIRA |
---|---|
columns | key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution |
serverId | 425b2b0a-557c-3c0c-b515-579789cceedb |
key | OPTFRA- |
...
Existing Solvers and Usage
...
Perform the route calculations and return the vpn-bindings
for CCVPN use case
753
753 |
Jira server ONAP JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 425b2b0a-557c-3c0c-b515-579789cceedb key OPTFRA-820
Sequence Diagram
Request from SO or SDNC
Code Block | ||||
---|---|---|---|---|
| ||||
API: POST /api/oof/mdons/route/v1 BODY: { "requestInfo":{ "transactionId":"xxx-xxx-xxxxxxx", "requestId":"yyy-yyy-yyyyyyy", "callbackUrl":"", "sourceIdcallbackHeader": "SDNC", "requestTypesourceId":"SDNC", "requestType":"create", "numSolutions":1, "optimizers":[ "route" ], "timeout":600 }, "routeInfo":{ "routeRequest":{ "srcDetails":{ "interfaceId":"interface-id-1int19", "nodeId":"node-1pnf1", "controllerId":"Virtuora-TAPI1Controller1" }, "dstDetails":{ "interfaceId":"interface-id-2int20", "nodeId":"node-2pnf4", "controllerId":"Virtuora-TAPI2Controller3" }, "serviceRate":"ODU2" } } } |
Note: "Callbackurl" field will be empty . Has been added to just follow the request format standard in OOF. When SDNC sends this request the field will be empty.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "transactionId "requestId":"123456", "requestId":"789101", "requestStatus":"completed", "statusMessage":"success", "solution":{ "startTime":"2016-10-01T00:30+01:00", "finishTime":"2016-10-01T00:40+01.00", "routeInfo":[ { "serviceRoute":[ { "srcInterfaceId":"id20", "destInterfaceId":"id8" }, { "srcInterfaceId":"id9", "destInterfaceId":"id10" }, { "srcInterfaceId":"id11", "destInterfaceId":"id21" } ], "linkList":[ "IDL-6", "IDL-7" ] } ] } } xxx-xxx-xxx, "transactionId":"yyy-yyy-yyy", "statusMessage":"SUCCESS", "requestStatus":"accepted", "solutions":{ "routeInfo":{ "serviceRoute":[ { "srcInterfaceId":"int19", "dstInterfaceId":"int1", "controllerId":"Controller1" }, { "srcInterfaceId":"int3", "dstInterfaceId":"int4", "controllerId":"Controller2" }, { "srcInterfaceId":"int5", "dstInterfaceId":"int20", "controllerId":"Controller3" } ], "linkList":[ "link1", "link2" ] } } } |
State Diagram
OOF Impacts
- A new api should be defined in the osdfapp.py class in the optf-osdf repository for the MDONS route selection.
- Under the Route Optimizer section a new class has to be added to handle the MDONS route selection.
- The standard minizinc template which gives the shortest path in a graph data structure will be used for this use case, same as the CCVPN use case.
...