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:
{
"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.
URL: https://172.60.50.193:18008/controller/campus/v1/baseservice/tenants
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"
}
URL: https://172.60.50.193:18008/controller/campus/v1/baseservice/tenants/authorization/{tenantId}
- Network Orchestration API
URL:
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=========================================="
}
}
URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/overlay-network/vpn
Template
{
"vpns": [
{
"name": ${prop.name},
"id": ${prop.vpn1Id},
"siteIds": [
${repeat:prop.siteIds_length:
${prop.siteIds[${1}]},
}
]
}
]
}
URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/overlay-network/(vpnId)/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
},
}
]
}
]
}
URL: https://172.60.50.193:18008/controller/campus/v3/devices
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
}
]
}
URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/net/sites
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---------------"
}
]
}
URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/net/ports
Template
{
"ports": [
{
"portType": ${prop.wan.portType},
"portNumber": ${prop.wan.portNumber},
"deviceId": ${prop.wan.deviceId},
"portSwitch": "layer3-port",
"linkInfo": {
"linkType": "Ethernet",
"ethernet": {
"negotiationMode": "auto"
}
}
}
]
}
URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/net/transport-network-ports
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}
}
]
}
URL: https://172.60.50.193:18008/controller/campus/v1/sdwan/routing-protocol/static
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
}
]
}