CCVPN Services Introduction

In Casablanca Release, CCVPN use case is designed as three services. SOTNVPNInfraService, SDWANVPNInfraService and SIteService. In the actual scenario, a customer will have several sites locate at different locations. And the customer will also have different vpn's for different site LAN's. So when se use these templates, we will have one SOTNVPNInfraService, several SDWANVPNInfraServices, several SIteServices.

CCVPN Resources Introduction

Below diagram illustrates the different resources of CCVPN service.

CCVPN Resource Data Models are available as part of service design wiki page.

Service Provisioning Flows

Please refer Introduction Wiki Page to get details on provisioning flows.

Interface between ONAP and Domain Controller

SOTN

SOTN API's between ONAP and 3rd party controller is based on IETF standard YANG Model for Transport Network Client Signal (draft-zheng-ccamp-client-signal-yang)

Request URL: https://172.60.2.21:30233/aai/v14/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/NCETDomain51

Request Template:

SOTN Template
{
    "ietf-eth-tran-service:etht-svc": {
        "globals": {
            "etht-svc-bandwidth-profiles": [
                {
                    "bandwidth-profile-name": ${prop.global.sotn.bandwidth-profile-name},
                    "bandwidth-profile-type": "ietf-eth-tran-types:mef-10-bwp",
                    "CIR": ${prop.global.sotn.cir},
                    "EIR": ${prop.global.sotn.eir},
                    "color-aware": ${prop.global.sotn.colorAware},
                    "coupling-flag": ${prop.global.sotn.couplingFlag}
                }
            ]
        },
        "etht-svc-instances": [
            {
                "etht-svc-name": ${prop.global.sotn.etht-svc-name},
                "access-provider-id": ${oof.vpn.access-provider-id},
                "access-client-id": ${oof.vpn.access-client-id},
                "access-topology-id": ${oof.vpn.access-topology-id},
                "etht-svc-type": "ietf-eth-tran-types:p2p-svc",
                "admin-status": "ietf-te-types:tunnel-state-up",
                "etht-svc-access-ports": [
                    {
                        "access-port-id": "0",
                        "access-node-id": ${oof.vpn.access-node-id},
                        "access-ltp-id": ${oof.vpn.src-access-ltp-id},
                        "service-classification-type": "ietf-eth-tran-types:port-classification",
                        "ingress-egress-bandwidth-profile-name": ${prop.global.sotn.bandwidth-profile-name}
                    },
                    {
                        "access-port-id": "1",
                        "access-node-id": ${oof.vpn.access-node-id},
                        "access-ltp-id": ${oof.vpn.dst-access-ltp-id},
                        "service-classification-type": "ietf-eth-tran-types:port-classification",
                        "ingress-egress-bandwidth-profile-name": ${prop.global.sotn.bandwidth-profile-name}
                    }
                ]
            }
        ]
    }
}

SDWAN

Following are the list of SDWAN API's and there templates.

  • Tenant API

URL: https://172.60.50.193:18008/controller/campus/v1/baseservice/tenants

Template

Tenant Template
{
    "tenantName": ${prop.customer-id},
    "tenantEmail": ${prop.userEmail},
    "tenantPhone": "8888888888",
    "tenantDescription": "This is a test tenant created by ONAP",
    "tenantAddress": "Road123",
    "limitAccountNum": 1000,
    "userAccount": ${prop.userAccount},
    "userEmail": ${prop.userEmail},
    "sendInitEmailEnable": "false",
    "countryCode": "CN",
    "userPassword": "Test@12345"
}


  • Get tenant authorization

URL: https://172.60.50.193:18008/controller/campus/v1/baseservice/tenants/authorization/{tenantId}


  • Network Orchestration API

URL: 

Template

Network Orchestration Template
{
    "bpgAsNum": 65101,
    "vpnType": "dsvpn",
    "siteScale":"30",
    "dsvpnIPpool": ["100.1.0.0/16"],
    "innerTunnelIPpool": [
      "101.1.0.0/16"
    ],
    "interConnectIPpool": "102.1.0.0/16",
    "transportNetworks": [
      {
        "name": "net001",
        "routingDomain": "routing001",
        "description": "string"
      }
    ],
    "routingDomain":[{
        "name": "routing001",
        "ipsecEncryption":false
    }],
    "ipsecEncryptionParameter": {
      "encrptionAlgorithm":"AES128",
      "preSharedKey": "Admin@12134=========================================="
    }
}


  • VPN API

URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/overlay-network/vpn

Template

VPN Template
{
    "vpns": [
        {
            "name": ${prop.name},
            "id": ${prop.vpn1Id},
            "siteIds": [
                ${repeat:prop.siteIds_length:
                 ${prop.siteIds[${1}]},
                 }
            ]
        }
    ]
}


  • Topology API

URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/overlay-network/(vpnId)/topology

Template

Topology Template
{
    "vpnId": ${prop.vpn1Id},
    "areas": [
        {
            "name": "area1",
            "areaType": "backbone",
            "topologyType": ${prop.topology},
            "siteAttachments": [${repeat:prop.siteAttachements_length:
                    {"siteId": ${prop.siteAttachements[${1}].siteId},
                     "role": [${repeat:prop.siteAttachements[${1}].roles_length:
                               ${prop.siteAttachements[${1}].roles[${2}]},
                                }
                               ],
                     "workMode": "with-interconnection",
                     "sitePriority": "active",
                     "borders": null
                    },
                 }
            ]
        }
    ]
}


  • Device API

URL: https://172.60.50.193:18008/controller/campus/v3/devices

Template

Device Template
{
    "devices": [
        {
            "esn": ${prop.device.esn},
            "deviceModel": ${prop.device.deviceModel},
            "name": ${prop.device.name},
            "siteId": null,
            "description": ${prop.device.description},
            "systemIp": ${prop.device.systemIP},
            "tags": null
        }
    ]
}


  • Site API

URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/net/sites

Template

Site Template
{
    "sites": [
        {            
            "name": ${prop.site.name},
            "locations": [
                {
                     "name": ${prop.site.location-name},
                     "address": ${prop.site.location-address},
                     "postcode": ${prop.site.location-postcode}
                }
            ],
           "devices": [${repeat:prop.site.deviceId_length:
                  {
                      "deviceId": ${prop.site.deviceId[${1}]},
                      "locationName": ${prop.site.location-name},
                  },
                }
           ],
            "siteType": ${prop.site.type},
            "role": [${repeat:prop.site.roles_length:
                       ${prop.site.roles[${1}]},
                      }
                    ],               
            "controlPoints": [],            
            "description": "--------role:dsvpn-hub---------------"
        }
    ]
}


  • Port API

URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/net/ports

Template

Port Template
{
    "ports": [
        {
            "portType": ${prop.wan.portType},
            "portNumber": ${prop.wan.portNumber},
            "deviceId": ${prop.wan.deviceId},
            "portSwitch": "layer3-port",
            "linkInfo": {
                 "linkType": "Ethernet",
                 "ethernet": {
                      "negotiationMode": "auto"
                 }
            }
        }
    ]
}


  • WAN termination API

URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/net/transport-network-ports

Template

WAN Port Template
{
    "tnps": [
        {
            "name": ${prop.wan.name},
            "siteId": ${prop.wan.siteId},
            "deviceId": ${prop.wan.deviceId},
            "portId": ${prop.wan.devicePortId},
            "inSubInterface": false,
            "vlanId": "null",            
            "ipConnection": {
                "ipv4": {
                    "publicIP": ${prop.wan.ip-address},
                    "accessType": "IPoE",
                    "ipMode": "Static",
                    "customerAddress": ${prop.wan.ip-address},
                    "prefixLength": ${prop.wan.prefixLength},
                    "providerAddress": ${prop.wan.providerIpAddress},
                    "peerIp": "null",
                    "userName": "null",
                    "userKey": "null"
                }
             },
             "transportNetworkInfo": {
                 "transportNetworkId": ${prop.wan.transportNetworkId},
                 "workMode": "active"
             },
            "attributes": {
                "inputBandwidth": ${prop.wan.inputBandwidth},
                "outputBandwidth": ${prop.wan.outputBandwidth},
                "mtu": 1500,
                "TCPmss": 1200
            },
            "ntp": [
              {
                "serverIP": "11.11.11.11",
                "authentication": false,
                "mode": "MD5",
                "authKey": "123456",
                "authId": 123
              }
            ],
            "description": ${prop.wan.description}
        }
    ]
}


  • Route API

URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/routing-protocol/static

Template

Route Template
{
    "routes": [
        {
            "id": ${prop.route.id},
            "vpnId": ${prop.vpnId},
            "siteId": ${prop.route.siteId},
            "deviceId": ${prop.route.deviceId}, 
            "destinationAddressMask": ${prop.route.providerIpAddress},            
            "priority": 60,            
            "nextHopType": "ip-address",
            "ipAddress": ${prop.route.ipAddress},
            "track": false,
            "target": null
        }
    ]
}
  • No labels