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 4 Current »

Description:

CCVPN Topology discovery aims at enabling physical network resources onboarding in ONAP. Topology discovery is performed for all the 3rd party SOTN controller's which are added to ONAP thereby enabling multi domain support.

Topology discovery is based on IETF's based ACTN models (draft-ietf-teas-yang-te-topo) using RESTCONF protocol (RFC 8040)

Topology Discovery Flow



1. Register the 3rd party SOTN Controller to ESR.
2. ESR trigger a 3rd Controller registered event to Dmaap.
3. SDNC subscribe the event and this event notified .
4. SDNC synchronize the topology from 3rd SOTN controller.
5. SDNC analyse the data from 3rd SDN controller.  Get the nodes, links, terminal points of the topology.
6. SDNC call A&AI to create the nodes, links terminal points to save the topology.
      Note: For multi 3rd SDN controllers, there will be several topologies notified.  The links across the domain topology should be discovered or created by ONAP. 

Sample Requests

ESR Request

This is a sample ESR request used for the 3rd party SOTN controller addition.

Sample ESR Request
<?xml version="1.0" encoding="UTF-8"?> 
<esr-thirdparty-sdnc xmlns="http://org.onap.aai.inventory/v14"> 
  <thirdparty-sdnc-id>NCETDomain51</thirdparty-sdnc-id> 
  <location>Core</location> 
  <product-name>SOTN</product-name> 
  <esr-system-info-list> 
    <esr-system-info> 
      <esr-system-info-id>NCETDomain51-ESR-1</esr-system-info-id> 
      <system-name>NCETDomain51</system-name> 
      <type>SOTN</type> 
      <vendor>Huawei</vendor> 
      <version>V3R1</version> 
      <service-url>https://172.60.51.51:26335</service-url> 
      <user-name>test123</user-name> 
      <password>Changeme_123</password> 
      <system-type>example-system-type-val-12078</system-type> 
      <protocol>RESTCONF</protocol> 
      <ssl-cacert>example-ssl-cacert-val-20589</ssl-cacert> 
      <ssl-insecure>true</ssl-insecure> 
      <ip-address>172.60.51.51</ip-address> 
      <port>26335</port> 
      <cloud-domain>example-cloud-domain-val-76077</cloud-domain> 
      <default-tenant>example-default-tenant-val-71148</default-tenant> 
      <passive>true</passive> 
      <remote-path>example-remotepath-val-5833</remote-path> 
      <system-status>example-system-status-val-23435</system-status> 
    </esr-system-info> 
  </esr-system-info-list> 
</esr-thirdparty-sdnc>

SDNC DataChangeProvider Request

On new ESR addition AAI will trigger the AAI-EVENT which will be consumed by SDNC's DMaap Consumer which will then invoke the DataChangeProvider API of SDNC. Below is a sample request of it.

Sample DataChangeProvider Request
{ 
  "DataChange:input": { 
    "DataChange:aai-event-id": "bf4df797-759a-4684-a63c-393b7d40ed55", 
    "DataChange:aai-node-type": "esr-thirdparty-sdnc", 
    "DataChange:aai-event-trigger": "Update", 
    "DataChange:key-data": [ 
      {"DataChange:key-name":"esr-system-info-id","DataChange:key-value":"NCETDomain51"}, 
      { "DataChange:key-name":"thirdparty-sdnc-id","DataChange:key-value":"NCETDomain51"}, 
            {"DataChange:key-name":"system-type","DataChange:key-value":"example-system-type-val-12078"}, 
            {"DataChange:key-name":"service-url","DataChange:key-value":"https://172.60.51.51:26335"}, 
            {"DataChange:key-name":"ssl-cacert","DataChange:key-value":"example-ssl-cacert-val-20589"}, 
            {"DataChange:key-name":"type","DataChange:key-value":"SOTN"}, 
            {"DataChange:key-name":"ssl-insecure","DataChange:key-value":true}, 
            {"DataChange:key-name":"system-status","DataChange:key-value":"example-system-status-val-23435"}, 
            {"DataChange:key-name":"version","DataChange:key-value":"V3R1"}, 
            {"DataChange:key-name":"passive","DataChange:key-value":true}, 
            {"DataChange:key-name":"password","DataChange:key-value":"Changeme_123"}, 
            {"DataChange:key-name":"protocol","DataChange:key-value":"RESTCONF"}, 
            {"DataChange:key-name":"ip-address","DataChange:key-value":"172.60.51.51"}, 
            {"DataChange:key-name":"cloud-domain","DataChange:key-value":"example-cloud-domain-val-76077"}, 
            {"DataChange:key-name":"user-name","DataChange:key-value":"test123"}, 
            {"DataChange:key-name":"system-name","DataChange:key-value":"NCETDomain59"}, 
            {"DataChange:key-name":"port","DataChange:key-value":"26335"}, 
            {"DataChange:key-name":"vendor","DataChange:key-value":"IP-WAN"}, 
            {"DataChange:key-name":"resource-version","DataChange:key-value":"1515059878666"}, 
            {"DataChange:key-name":"remote-path","DataChange:key-value":"example-remotepath-val-5833"}, 
            {"DataChange:key-name":"default-tenant","DataChange:key-value":"example-default-tenant-val-71148"} 
    ] 
  } 
}

SDNC Topology Discovery Request & Response

On receiving DataChangeProvider request corresponding to new 3rd party SOTN controller addition. SDNC triggers the topology disovery based on IETF's based ACTN models (draft-ietf-teas-yang-te-topo). Below is the sample request generated by SDNC and response received from SOTN controller.

Sample Request: https://172.60.51.51:26335/restconf/data/ietf-network:networks

Sample Response:

Sample SOTN Topology
{
  "ietf-network:networks": {
    "network": [
      {
        "ietf-te-topology:client-id": "6001",
        "network-id": "providerId/5001/clientId/6001/topologyId/101",
        "node": [
          {
            "node-id": "11.11.11.11",
            "ietf-te-topology:te": {
              "oper-status": "up",
              "te-node-attributes": {
                "admin-status": "up",
                "is-abstract": "null",
                "name": "Single Abstraction Node",
                "underlay-topology": {
                  "network-ref": "providerId/5001/clientId/6001/topologyId/34"
                }
              }
            },
            "ietf-te-topology:te-node-id": "11.11.11.11",
            "ietf-network-topology:termination-point": [
              {
                "supporting-termination-point": [
                  {
                    "network-ref": "providerId/5001/clientId/6001/topologyId/34",
                    "node-ref": "0.51.0.101",
                    "tp-ref": "4"
                  }
                ],
                "ietf-eth-te-topology:svc": {
                  "supported-classification": {
                    "transparent": "true"
                  }
                },
                "ietf-te-topology:te": {
                  "admin-status": "up",
                  "interface-switching-capability": [
                    {
                      "encoding": "lsp-encoding-ethernet",
                      "max-lsp-bandwidth": [
                        {
                          "priority": "7",
                          "te-bandwidth": {
                            "ietf-eth-te-topology:eth-bandwidth": "10000000"
                          }
                        }
                      ],
                      "switching-capability": "switching-l2sc"
                    }
                  ],
                  "name": "PhysicalPort{shelfId=0, boardId=5, subCardId=255, portId=1}",
                  "oper-status": "up"
                },
                "ietf-te-topology:te-tp-id": "1",
                "tp-id": "1"
              },
              {
                "supporting-termination-point": [
                  {
                    "network-ref": "providerId/5001/clientId/6001/topologyId/34",
                    "node-ref": "0.51.0.100",
                    "tp-ref": "28"
                  }
                ],
                "ietf-eth-te-topology:svc": {
                  "supported-classification": {
                    "transparent": "true"
                  }
                },
                "ietf-te-topology:te": {
                  "admin-status": "down",
                  "interface-switching-capability": [
                    {
                      "encoding": "lsp-encoding-ethernet",
                      "max-lsp-bandwidth": [
                        {
                          "priority": "7",
                          "te-bandwidth": {
                            "ietf-eth-te-topology:eth-bandwidth": "1000000"
                          }
                        }
                      ],
                      "switching-capability": "switching-l2sc"
                    }
                  ],
                  "name": "PhysicalPort{shelfId=0, boardId=4, subCardId=255, portId=8}",
                  "oper-status": "down"
                },
                "ietf-te-topology:te-tp-id": "9",
                "tp-id": "9"
              }
            ]
          }
        ],
        "ietf-te-topology:provider-id": "5001",
        "supporting-network": [
          {
            "network-ref": "providerId/5001/clientId/6001/topologyId/34"
          }
        ],
        "ietf-te-topology:te": {
          "name": "Abstract Ethernet Topology",
          "optimization-criterion": "not-optimized"
        },
        "ietf-te-topology:te-topology-id": "101"
      }
    ]
  }
}

Topology in AAI

On discovery of topology, SDNC adds the corresponding nodes, links, terminal points of the topology to AAI. Below is the sample topology in AAI.

Sample DataChangeProvider Request
https://172.60.2.21:30233/aai/v14/network/network-resources
{
    "network-resource": [
        {
            "network-id": "providerId-5001-clientId-6001-topologyId-101",
            "provider-id": "5001",
            "client-id": "6001",
            "te-topo-id": "101",
            "resource-version": "1542605343341",
            "relationship-list": {
                "relationship": [
                    {
                        "related-to": "pnf",
                        "relationship-label": "tosca.relationships.network.LinksTo",
                        "related-link": "/aai/v14/network/pnfs/pnf/11.11.11.11",
                        "relationship-data": [
                            {
                                "relationship-key": "pnf.pnf-name",
                                "relationship-value": "11.11.11.11"
                            }
                        ]
                    }
                ]
            }
        },
        {
            "network-id": "providerId-5002-clientId-6002-topologyId-105",
            "provider-id": "5002",
            "client-id": "6002",
            "te-topo-id": "105",
            "resource-version": "1542605724998",
            "relationship-list": {
                "relationship": [
                    {
                        "related-to": "pnf",
                        "relationship-label": "tosca.relationships.network.LinksTo",
                        "related-link": "/aai/v14/network/pnfs/pnf/12.12.12.12",
                        "relationship-data": [
                            {
                                "relationship-key": "pnf.pnf-name",
                                "relationship-value": "12.12.12.12"
                            }
                        ]
                    }
                ]
            }
        }
    ]
}
-----------------------------------------------------------------------------------------------------------------------------------
https://172.60.2.21:30233/aai/v14/network/pnfs/pnf/12.12.12.12?depth=all
{
  "pnf-name": "11.11.11.11",
  "pnf-id": "11.11.11.11",
  "in-maint": true,
  "resource-version": "1542606699578",
  "admin-status": "up",
  "operational-status": "up",
  "relationship-list": {
    "relationship": [
      {
        "related-to": "esr-thirdparty-sdnc",
        "relationship-label": "org.onap.relationships.inventory.AppliesTo",
        "related-link": "/aai/v14/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/NCETDomain51",
        "relationship-data": [
          {
            "relationship-key": "esr-thirdparty-sdnc.thirdparty-sdnc-id",
            "relationship-value": "NCETDomain51"
          }
        ]
      },
      {
        "related-to": "network-resource",
        "relationship-label": "tosca.relationships.network.LinksTo",
        "related-link": "/aai/v14/network/network-resources/network-resource/providerId-5001-clientId-6001-topologyId-101",
        "relationship-data": [
          {
            "relationship-key": "network-resource.network-id",
            "relationship-value": "providerId-5001-clientId-6001-topologyId-101"
          }
        ],
        "related-to-property": [
          {
            "property-key": "network-resource.network-id",
            "property-value": "providerId-5001-clientId-6001-topologyId-101"
          }
        ]
      }
    ]
  },
  "p-interfaces": {
    "p-interface": [
      {
        "interface-name": "nodeId-11.11.11.11-ltpId-15",
        "speed-value": "1000000",
        "resource-version": "1542606703826",
        "in-maint": true,
        "network-ref": "providerId/5001/clientId/6001/topologyId/34",
        "transparent": "true",
        "operational-status": "down"
      },
      {
        "interface-name": "nodeId-11.11.11.11-ltpId-17",
        "speed-value": "1000000",
        "resource-version": "1542606704886",
        "in-maint": true,
        "network-ref": "providerId/5001/clientId/6001/topologyId/34",
        "transparent": "true",
        "operational-status": "down"
      }
    ]
  }
}
  • No labels