Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »



Assumptions

  1. Below is the list of solvers used in OOF and its usage. The Route Optimiser package will be used for the MDONS use case as well.
  2. Policy is not going to be involved to list the constraints for now.
  3. Once config policies are defined for MDONS use case , OOF wil fetch these policies to get certain other constraints and apply them while running the algorithm.

OPTFRA-753 - Getting issue details... STATUS

Existing Solvers and Usage


SolverUsage
license optimizerVNF license optimization
pci optimizerPci optimization
placement optimizerVNF placement optimization
slice optimiserSlice selection and instantiation optimisation
route optimizer

Perform the route calculations and return the vpn-bindings

for CCVPN use case

Sequence Diagram



Request from SO or SDNC

IDL request
API: POST /api/oof/mdons/route/v1

BODY:
{
   "requestInfo":{
      "transactionId":"xxx-xxx-xxxx",
      "requestId":"yyy-yyy-yyyy",
      "callbackUrl":"",
      "sourceId":"SDNC",
      "requestType":"create",
      "numSolutions":1,
      "optimizers":[
         "route"
      ],
      "timeout":600
   },
   "routeInfo":{
      "routeRequest":{
         "srcDetails":{
            "interfaceId":"interface-id-1",
            "nodeId":"node-1",
            "controllerId":"Virtuora-TAPI1"
         },
         "dstDetails":{
            "interfaceId":"interface-id-2",
            "nodeId":"node-2",
            "controllerId":"Virtuora-TAPI2"
         },
         "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.

Response To SDNC

Response Example

Route Selection Response
{
   "transactionId":"xxx-xxx-xxxx",
   "requestId":"yyy-yyy-yyyy",
   "requestStatus":"completed",
   "statusMessage":"success",
   "solution":{
      "routeInfo":{
         "serviceRoute":[
            {
               "srcInterfaceId":"",
               "destInterfaceId":""
            }
         ],
         "linkList":[
            "link1",
            "link2"
         ]
      }
   }
}

State Diagram

OOF Impacts

  1. A new api should be defined in the osdfapp.py class in the optf-osdf repository for the MDONS route selection.
  2. Under the Route Optimizer section a new class has to be added to handle the MDONS route selection.
  3. 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.

Algorithm Details

  1. Identify if the A and Z are from the same domain controller, if yes, linkName is set to null.
  2. If not from the same domain, retrieve all the inter domain links across both the controllers from AAI.
  3. The links will have information such as admin-state and rate. (Note: For now we are considering only these two fields to select the appropriate inter-domain-link).
  4. Based on the bandwidth required and available bandwidth and the status of the links (of the end points, NNIs), the appropriate link is chosen.
  5. The link name along with the names of NNI 1 and NN2  are sent to SDNC and SDNC/DG send the details request for service-creation to the domain controller(s).

Example Inter Domain Paths

Non Multiplexing Between the Domains 

Multiplexing Between the Domains 

TBD

AAI API Dependency

Query to retrieve the interdomain links for a given Controller:

Controller Inter-Domain-Link Query
API: PUT /aai/v19/query?format=resource

BODY: 

{
"start" : ["external-system"],
"query" : "query/getInterDomainLink?linktype=inter-domain&controller=Virtuora-TAPI1"
} 

RESPONSE EXAMPLE:

{
  "results": [{
    "logical-link": {
      "link-name": "IDLLink1",
      "in-maint": false,
      "link-type": "inter-domain",
      "resource-version": "1588952379221",
      "operational-status": "available",
      "relationship-list": {
        "relationship": [{
          "related-to": "p-interface",
          "relationship-label": "tosca.relationships.network.LinksTo",
          "related-link": "/aai/v16/network/pnfs/pnf/f17ae566-6cb9-3907-9bb1-00d04ca5e9d9/p-interfaces/p-interface/641bb3d1-0817-3783-aba2-aa2129dfe1b1",
          "relationship-data": [{
            "relationship-key": "pnf.pnf-name",
            "relationship-value": "f17ae566-6cb9-3907-9bb1-00d04ca5e9d9"
          }, {
            "relationship-key": "p-interface.interface-name",
            "relationship-value": "641bb3d1-0817-3783-aba2-aa2129dfe1b1"
          }],
          "related-to-property": [{
            "property-key": "p-interface.prov-status"
          }]
        }, {
          "related-to": "p-interface",
          "relationship-label": "tosca.relationships.network.LinksTo",
          "related-link": "/aai/v16/network/pnfs/pnf/36bfbd31-e715-3312-9dd1-5a9e46d4b4d5/p-interfaces/p-interface/3cfaf6b4-7923-3258-bb72-e2a62c40fe5e",
          "relationship-data": [{
            "relationship-key": "pnf.pnf-name",
            "relationship-value": "36bfbd31-e715-3312-9dd1-5a9e46d4b4d5"
          }, {
            "relationship-key": "p-interface.interface-name",
            "relationship-value": "3cfaf6b4-7923-3258-bb72-e2a62c40fe5e"
          }],
          "related-to-property": [{
            "property-key": "p-interface.prov-status"
          }]
        }]
      }
    }
  }]
}





Query to find the esr controller given a p-interface id:

P-interface Query
API: /aai/v19/query?format=resource

BODY: 

{
"start" : ["external-system"],
"query" : "query/getDomainController?portid=49b3fb2a-6868-3a23-a833-79a3aa1dd24f"
} 

RESPONSE EXAMPLE:

{
  "results": [{
    "esr-thirdparty-sdnc": {
      "thirdparty-sdnc-id": "Virtuora-TAPI2",
      "location": "Core",
      "product-name": "VirtuoraNetworkController",
      "resource-version": "1588951277460",
      "esr-system-info-list": {
        "esr-system-info": [{
          "esr-system-info-id": "Virtuora-TAPI2",
          "system-name": "Virtuora-TAPI2",
          "type": "TAPI",
          "vendor": "Fujitsu",
          "version": "V2",
          "service-url": "https://167.254.204.66:9443",
          "user-name": "admin",
          "password": "admin",
          "system-type": "Controller",
          "protocol": "RESTAPI",
          "ssl-cacert": "example-ssl-cacert-val-20589",
          "ssl-insecure": true,
          "ip-address": "167.254.204.66",
          "port": "9443",
          "cloud-domain": "example-cloud-domain-val-76077",
          "default-tenant": "example-default-tenant-val-71148",
          "passive": true,
          "remote-path": "example-remotepath-val-5833",
          "system-status": "example-system-status-val-23435",
          "resource-version": "1588951277460"
        }]
      },
      "relationship-list": {
        "relationship": [{
          "related-to": "network-resource",
          "relationship-label": "org.onap.relationships.inventory.BelongsTo",
          "related-link": "/aai/v16/network/network-resources/network-resource/Virtuora-TAPI2-TAPI-754a91dc-dcd1-3530-8e95-a4880c298a1f",
          "relationship-data": [{
            "relationship-key": "network-resource.network-id",
            "relationship-value": "Virtuora-TAPI2-TAPI-754a91dc-dcd1-3530-8e95-a4880c298a1f"
          }],
          "related-to-property": [{
            "property-key": "network-resource.network-id",
            "property-value": "Virtuora-TAPI2-TAPI-754a91dc-dcd1-3530-8e95-a4880c298a1f"
          }]
        }]
      }
    }
  }]
}


API to retrieve all the inter-domain links:

Inter-domain Links retrieval
API: GET /aai/v19/logical-links?link-type=inter-domain

RESPONSE EXAMPLE:

{
  "logical-link": [{
    "link-name": "IDLLink1",
    "in-maint": false,
    "link-type": "inter-domain",
    "resource-version": "1588952379221",
    "operational-status": "available",
    "relationship-list": {
      "relationship": [{
        "related-to": "p-interface",
        "relationship-label": "tosca.relationships.network.LinksTo",
        "related-link": "/aai/v16/network/pnfs/pnf/f17ae566-6cb9-3907-9bb1-00d04ca5e9d9/p-interfaces/p-interface/641bb3d1-0817-3783-aba2-aa2129dfe1b1",
        "relationship-data": [{
          "relationship-key": "pnf.pnf-name",
          "relationship-value": "f17ae566-6cb9-3907-9bb1-00d04ca5e9d9"
        }, {
          "relationship-key": "p-interface.interface-name",
          "relationship-value": "641bb3d1-0817-3783-aba2-aa2129dfe1b1"
        }],
        "related-to-property": [{
          "property-key": "p-interface.prov-status"
        }]
      }, {
        "related-to": "p-interface",
        "relationship-label": "tosca.relationships.network.LinksTo",
        "related-link": "/aai/v16/network/pnfs/pnf/36bfbd31-e715-3312-9dd1-5a9e46d4b4d5/p-interfaces/p-interface/3cfaf6b4-7923-3258-bb72-e2a62c40fe5e",
        "relationship-data": [{
          "relationship-key": "pnf.pnf-name",
          "relationship-value": "36bfbd31-e715-3312-9dd1-5a9e46d4b4d5"
        }, {
          "relationship-key": "p-interface.interface-name",
          "relationship-value": "3cfaf6b4-7923-3258-bb72-e2a62c40fe5e"
        }],
        "related-to-property": [{
          "property-key": "p-interface.prov-status"
        }]
      }]
    }
  }]
}

There were errors rendering macro:

  • An unknown error occurred.

  • No labels