Diagrams

Figure 1: Figure 1 - CCVPN model based on Beijiing release

Figure 3: Figure 3 - Site-Service diagram

Figure 5: Figure 5 - Cross-Domain ONAP diagram

Figure 7: Figure 7 - Intra-Domain p-interface link

Figure 9: Figure 9 - Cross-Domain p-interface link primary 3rd party

Figure 2: Figure 2 - SOTN Connectivity diagram

Figure 4: Figure 4 - Topology diagram

Figure 6: Figure 6 - Cross-domain link diagram

Figure 8: Figure 8 - Cross-Domain p-interface link peer

Figure 10: Figure 10 - SDWAN vpn diagram


Proposal

Reference IdCCVPN Use Case ReferenceAAI Schema ReferenceAAI Proposed Schema
AAI-1353-1

aai_schema_v13.xsd

  • "network"
  • "business"

Update existing "network" and "business" entry points to graph for new proposed elements:

Mockup Schema (OXM)
<java-type name="Network">
 <xml-root-element name="network"/>
 <java-attributes>
  <xml-element name="connectivities"
   type="inventory.aai.onap.org.v14.Connectivities"/>
  <xml-element name="lan-port-configs"
   type="inventory.aai.onap.org.v14.LanPortConfigs"/>
  <xml-element name="network-resources"
   type="inventory.aai.onap.org.v14.NetworkResources"/>
  <xml-element name="site-resources"
   type="inventory.aai.onap.org.v14.SiteResources"/>
  <xml-element name="sdwan-vpns"
   type="inventory.aai.onap.org.v14.SdwanVpns"/>
  <xml-element name="devices"
   type="inventory.aai.onap.org.v14.Devices"/>
  <xml-element name="wan-port-configs"
   type="inventory.aai.onap.org.v14.WanPortConfigs"/>
  <xml-element name="ext-aai-networks"
   type="inventory.aai.onap.org.v14.ExtAaiNetworks"/>
 </java-attributes>
</java-type>

<java-type name="Business">
 <xml-root-element name="business"/>
 <java-attributes>
  <xml-element name="sp-partners"
   type="inventory.aai.onap.org.v14.SpPartners"/>
 </java-attributes>
</java-type>
AAI-1353-2

SOTN Infra

Closed Loop

Site Service Instance

Notes:

See Figure 2 above.

Use existing class of objects.

Closed loop scenario:

  • SO will create “service-instance” object in AAI
  • SO will store “customer-request” string on service-instance object in AAI
  • When Closed Loop call recreates the “service-instance”, it will query “service-instance” information first, to get the “customer-request”

aai_schema_v13.xsd

  • "service-instance"
  • "service-instances"

add properties to existing "service-instance" object:

Mockup Schema (OXM)
<java-type name="ServiceInstance">
 <xml-root-element name="service-instance"/>
 <java-attributes>
  <xml-element name="input-parameters" type="java.lang.String"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/business
 /customers/customer/{global-customer-id}
 /service-subscriptions/service-subscription/{service-type}
 /service-instances/service-instance/{service-instance-id}
Method: PUT
Request Body:
{
    service-instance-id: "{service-instance-id}",
    service-instance-name: "instance name",
    service-type: "some type",
    service-role: "some role",
    resource-version: "some version",
    model-invariant-id: "model id",
    model-version-id: "model version",
    input-parameters: "request parameters"
}
AAI-1353-3

SOTN Connectivity

Notes:

See Figure 2 above.

Proposal for specific new class of "connectivity" objects.

aai_schema_v13.xsd

  • "service-instance"
  • "vpn-bindings"

new element "connectivity" and new element "connectivities":

Mockup Schema (OXM)
<java-type name="Connectivity">
 <xml-root-element name="connectivity"/>
 <java-attributes>
  <xml-element name="connectivity-id" type="java.lang.String"/>
  <xml-element name="bandwidth-profile-name" type="java.lang.String"/>
  <xml-element name="vpn-type" type="java.lang.String"/>
  <xml-element name="cir" type="java.lang.String"/>
  <xml-element name="eir" type="java.lang.String"/>
  <xml-element name="cbs" type="java.lang.String"/>
  <xml-element name="ebs" type="java.lang.String"/>
  <xml-element name="color-aware" type="java.lang.String"/>
  <xml-element name="coupling-flag" type="java.lang.String"/>
  <xml-element name="etht-svc-name" type="java.lang.String"/>
  <xml-element name="access-provider-id" type="java.lang.String"/>
  <xml-element name="access-client-id" type="java.lang.String"/>
  <xml-element name="access-topology-id" type="java.lang.String"/>
  <xml-element name="access-node-id" type="java.lang.String"/>
  <xml-element name="access-ltp-id" type="java.lang.String"/>
  <xml-element name="connectivity-selflink" type="java.lang.String"/>
  <xml-element name="cvlan" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="Connectivities">
 <xml-root-element name="connectivities"/>
 <java-attributes>
  <xml-element name="connectivity" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.Connectivity"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /connectivities/connectivity/{connectivityId}
Method: PUT
Request Body:
{
    "connectivity-id": "{connectivityId}",
    "bandwidth-profile-name": "a name",
    "vpn-type": "a type",
    "cir": "cir value",
    "eir": "eir value",
    "cbs": "cbs value",
    "ebs": "ebs value",
    "color-aware": "color value",
    "coupling-flag": "flag value",
    "etht-svc-name": "some name",
    "access-provider-id": "provider id",
    "access-client-id": "client id",
    "access-topology-id": "topology id",
    "access-node-id": "node id",
    "access-ltp-id": "ltp id",
    "connectivity-selflink": "some link",
    "cvlan": "some tag",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            },
            {
                "related-to": "vpn-binding",
                "related-link": "url of vpn-binding",
                "relationship-data": [
                    "relationship-key": "vpn-binding.vpn-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}
AAI-1353-4

VPN

Notes:

See Figure 2 above.

Update existing class of objects.


aai_schema_v13.xsd

  • "vpn-binding"
  • "vpn-bindings"

add properties to existing "vpn-binding" object:

Mockup Schema (OXM)
<java-type name="VpnBinding">
 <xml-root-element name="vpn-binding"/>
 <java-attributes>
  <xml-element name="access-provider-id" type="java.lang.String"/>
  <xml-element name="access-client-id" type="java.lang.String"/>
  <xml-element name="access-topology-id" type="java.lang.String"/>
  <xml-element name="access-node-id" type="java.lang.String"/>
  <xml-element name="access-ltp-id" type="java.lang.String"/>
  <xml-element name="src-access-node-id" type="java.lang.String"/>
  <xml-element name="src-access-ltp-id" type="java.lang.String"/>
  <xml-element name="dst-access-node-id" type="java.lang.String"/>
  <xml-element name="dst-access-ltp-id" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /vpn-bindings/vpn-binding/vpnId
Method: PUT
Request Body:
{
    "vpn-id": "vpnId",
    "vpn-name": "vpn name",
    "access-provider-id": "provider id",
    "access-client-id": "client id",
    "access-topology-id": "topology id",
    "src-access-node-id": "src node id",
    "src-access-ltp-id": "src ltp id",
    "dst-access-node-id": "dst node id",
    "dst-access-ltp-id": "dst ltp id",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant"
}

AAI-1353-5

SP Partner

Notes:

See Figure 2 above.

Proposal for specific new class of "sp-partner" objects.


aai_schema_v13.xsd

  • "service-instances"

new element "sp-partner" and new element "sp-partners":

Mockup Schema (OXM)
<java-type name="SpPartner">
 <xml-root-element name="sp-partner"/>
 <java-attributes>
  <xml-element name="sp-partner-id" type="java.lang.String"/>
  <xml-element name="url" type="java.lang.String"/>
  <xml-element name="callsource" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="SpPartners">
 <xml-root-element name="sp-partners"/>
 <java-attributes>
  <xml-element name="sp-partner"
   type="inventory.aai.onap.org.v14.SpPartner"/>
 </java-attributes>
</java-type>
Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/business
 /sp-partners/sp-partner/partnerId
Method: PUT
Request Body:
{
    "sp-partner-id": "partnerId",
    "url": "partner url",
    "callsource": "some source",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}

AAI-1353-6

SOTN Attachment

Notes:

See Figure 3 above.

Update existing class of objects.


aai_schema_v13.xsd

  • "allotted-resource"
  • "allotted-resources"

add properties to existing "allotted-resource" object:

Mockup Schema (OXM)
<java-type name="AllottedResource">
 <xml-root-element name="allotted-resource"/>
 <java-attributes>
  <xml-element name="allotted-resource-name" type="java.lang.String"/>
  <xml-element name="access-provider-id" type="java.lang.String"/>
  <xml-element name="access-client-id" type="java.lang.String"/>
  <xml-element name="access-topology-id" type="java.lang.String"/>
  <xml-element name="access-node-id" type="java.lang.String"/>
  <xml-element name="access-ltp-id" type="java.lang.String"/>
  <xml-element name="cvlan" type="java.lang.String"/>
  <xml-element name="vpn-name" type="java.lang.String"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/business
 /customers/customer/{global-customer-id}
 /service-subscriptions/service-subscription/{service-type}
 /service-instances/service-instance/{service-instance-id}
 /allotted-resources/allotted-resource/{id}
Method: PUT
Request Body:
{
    "allotted-resource-name": "some name",
    "access-provider-id": "provider id",
    "access-client-id": "client id",
    "access-topology-id": "topology id",
    "access-node-id": "node id",
    "access-ltp-id": "ltp id",
    "cvlan": "some tag",
    "vpn-name": "some name"
}
AAI-1353-7

LAN port config

Notes:

See Figure 3 above.

Proposal for specific new class of "lan-port-config" objects.


aai_schema_v13.xsd

  • "service-instances"

new element "lan-port-config" and new element "lan-port-configs":

Mockup Schema (OXM)
<java-type name="LanPortConfig">
 <xml-root-element name="lan-port-config"/>
 <java-attributes>
  <xml-element name="lan-port-config-id" type="java.lang.String"/>
  <xml-element name="lan-port-config-name" type="java.lang.String"/>
  <xml-element name="description" type="java.lang.String"/>
  <xml-element name="device-id" type="java.lang.String"/>
  <xml-element name="port-id" type="java.lang.String"/>
  <xml-element name="ip-address" type="java.lang.String"/>
  <xml-element name="vlan-tag" type="java.lang.String"/>
  <xml-element name="input-bandwidth" type="java.lang.String"/>
  <xml-element name="output-bandwidth" type="java.lang.String"/>
  <xml-element name="dhcp-services" 
   type="inventory.aai.onap.org.v14.DhcpServices"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="LanPortConfigs">
 <xml-root-element name="lan-port-configs"/>
 <java-attributes>
  <xml-element name="lan-port-config" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.LanPortConfigs"/>
 </java-attributes>
</java-type>
Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /lan-port-configs/lan-port-config/id
Method: PUT
Request Body:
{
    "lan-port-config-id": "id",
    "lan-port-config-name": "some name",
    "description": "some description",
    "device-id": "some device",
    "port-id": "some port",
    "ip-address": "some address",
    "vlan-tag": "some tag",
    "input-bandwidth": "some input",
    "output-bandwidth": "some output",
    "dhcp-services": {
        "dhcp-service": [
            {
                "service-enable": "some enable",
                "dhcp-service-type": "some service",
                "lease-time": "some time",
                "domain-name": "some domain",
                "dns": "some dns",
                "ntp-primary": "some ntp",
                "ntp-secondary": "some secondary",
                "nbns": "some nbns",
                "server-ip-address": "some server"
            }
        ]
    },
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}


AAI-1353-7bdhcp-service

new element "dhcp-service" and new element "dhcp-services", as sub-component of "lan-port-config":

Mockup Schema (OXM)
<java-type name="DhcpService">
 <xml-root-element name="dhcp-service"/>
 <java-attributes>
  <xml-element name="service-enable" type="java.lang.String"/>
  <xml-element name="dhcp-service-type" type="java.lang.String"/>
  <xml-element name="lease-time" type="java.lang.String"/>
  <xml-element name="domain-name" type="java.lang.String"/>
  <xml-element name="dns" type="java.lang.String"/>
  <xml-element name="ntp-primary" type="java.lang.String"/>
  <xml-element name="ntp-secondary" type="java.lang.String"/>
  <xml-element name="nbns" type="java.lang.String"/>
  <xml-element name="server-ip-address" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="DhcpServices">
 <xml-root-element name="dhcp-services"/>
 <java-attributes>
  <xml-element name="dhcp-service" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.DhcpService"/>
 </java-attributes>
</java-type>


AAI-1353-8

site-resource

Notes:

See Figure 3 above.


new element "site-resource" and new element "site-resources":

Mockup Schema (OXM)
<java-type name="SiteResource">
 <xml-root-element name="site-resource"/>
 <java-attributes>
  <xml-element name="site-resource-id" type="java.lang.String"/>
  <xml-element name="site-resource-name" type="java.lang.String"/>
  <xml-element name="description" type="java.lang.String"/>
  <xml-element name="type" type="java.lang.String"/>
  <xml-element name="role" type="java.lang.String"/>
  <xml-element name="generated-site-id" type="java.lang.String"/>
  <xml-element name="selflink" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="SiteResources">
 <xml-root-element name="site-resources"/>
 <java-attributes>
  <xml-element name="site-resource" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.SiteResource"/>
 </java-attributes>
</java-type>
Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /site-resources/site-resource/{id}
Method: PUT
Request Body:
{
    "site-resource-id": "{id}",
    "site-resource-name": "some name",
    "description": "some description",
    "type": "some type",
    "role": "some role",
    "generated-site-id": "some id",
    "selflink": "some URL",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            },
            {
                "related-to": "complex",
                "related-link": "url of complex",
                "relationship-data": [
                    "relationship-key": "complex.physical-location-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}

AAI-1353-9

physical location

Notes:

See Figure 3 above.

aai_schema_v13.xsd

  • "complex"

use existing element "complex" to represent "physical location".


AAI-1353-10

topo-network

Notes:

See Figure 4 above.

Proposal for specific new class of "network-resource" objects.


aai_schema_v13.xsd

  • "pnfs"
  • "p-interfaces"
  • "vpn-bindings"

new element "network-resource" and new element "network-resources":

Mockup Schema (OXM)
<java-type name="networkResource">
 <xml-root-element name="network-resource"/>
 <java-attributes>
  <xml-element name="network-id" type="java.lang.String"/>
  <xml-element name="provider-id" type="java.lang.String"/>
  <xml-element name="client-id" type="java.lang.String"/>
  <xml-element name="te-topo-id" type="java.lang.String"/>
  <xml-element name="selflink" type="java.lang.String"/>
  <xml-element name="pnfs"
   type="inventory.aai.onap.org.v14.Pnfs"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="networkResources">
 <xml-root-element name="network-resources"/>
 <java-attributes>
  <xml-element name="network-resource" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.NetworkResource"/>
 </java-attributes>
</java-type>
Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /network-resources/network-resource/{networkId}
Method: PUT
Request Body:
{
    "network-id": "{networkId}",
    "provider-id": "some provider",
    "client-id": "some client",
    "te-topo-id": "some topo",
    "selflink": "some URL",
    "pnfs": {
        "pnf" : [
            {
                "pnf-name": "name 1"
            },
            {
                "pnf-name": "name 2"
            }
        ]
    },
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "vpn-binding",
                "related-link": "url of vpn-binding",
                "relationship-data": [
                    "relationship-key": "vpn-binding.vpn-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}

AAI-1353-11

termination-point

Notes:

See Figure 4 above.

Update existing class of objects.


aai_schema_v13.xsd

  • "p-interface"
  • "vpn-bindings"

add properties to existing "p-interface" object:

Mockup Schema (OXM)
<java-type name="PInterface">
 <xml-root-element name="p-interface"/>
 <java-attributes>
  <xml-element name="network-ref" type="java.lang.String"/>
  <xml-element name="transparent" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /pnfs/pnf/{pnfName}
 /p-interfaces/p-interface/{tp-id}
Method: PUT
Request Body:
{
    "interface-name": "{tp-id}",
    "network-ref": "some network",
    "transparent": "some value",
    "operational-status": "some oper",
    "speed-value": "eth bandwidth",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "vpn-binding",
                "related-link": "url of vpn-binding",
                "relationship-data": [
                    "relationship-key": "vpn-binding.vpn-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}
AAI-1353-12

cross-domain link

Notes:

See Figures 5, 6, 7, 8 and 9 above.

Record information in AAI that crosses between ONAP Domain 1 and ONAP Domain 2


new proposed elements "external-aai-list" and "external-aai":

Mockup Schema (OXM)
<java-type name="ExtAaiNetworks">
  <xml-root-element name="ext-aai-networks" />
    <java-attributes>
      <xml-element name="ext-aai-network"
       type="inventory.aai.onap.org.v14.ExtAaiNetwork" />
    </java-attributes>
</java-type>

<java-type name="ExtAaiNetwork">
  <xml-root-element name="ext-aai-network" />
  <java-attributes>
    <xml-element name="aai-id" type="java.lang.String"
      required="true" xml-key="true">
    <xml-element name="schema-version" type="java.lang.String">
    <xml-element name="esr-system-info"
      type="inventory.aai.onap.org.v14.EsrSystemInfo" />
    <xml-element name="logical-links"
      type="inventory.aai.onap.org.v14.LogicalLinks" />
    <xml-element name="vpn-bindings"
      type="inventory.aai.onap.org.v14.VpnBindings" />
    <xml-element name="pnfs"
      type="inventory.aai.onap.org.v14.Pnfs" />

    <xml-element name="connectivities"
      type="inventory.aai.onap.org.v14.Connectivities" />
    <xml-element name="lan-port-configs"
      type="inventory.aai.onap.org.v14.LanPortConfigs" />
    <xml-element name="network-resources"
      type="inventory.aai.onap.org.v14.NetworkResources" />
    <xml-element name="site-resources"
      type="inventory.aai.onap.org.v14.SiteResources" />
    <xml-element name="sdwan-vpns"
     type="inventory.aai.onap.org.v14.SdwanVpns"/>
    <xml-element name="devices"
     type="inventory.aai.onap.org.v14.Devices"/>
    <xml-element name="wan-port-configs"
      type="inventory.aai.onap.org.v14.WanPortConfigs" />
  </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /ext-aai-networks/ext-aai-network/{aaiId}
 /p-interfaces/p-interface/{tp-id}
Method: PUT
Request Body:
{
    "aai-id-name": "{aaiId}",
    "schema-version": "some version",
    "esr-system-info": {
        "esr-system-info-id": "some id",
        "system-name": "some name"
    }
}
AAI-1353-13

SDWAN VPN

Notes:

See Figure 10 above.

Proposal for specific new class of "sdwan-vpn" objects.

aai_schema_v13.xsd

  • "service-instance"

new element "sdwan-vpn" and new element "sdwan-vpns":

Mockup Schema (OXM)
<java-type name="SdwanVpn">
 <xml-root-element name="sdwan-vpn"/>
 <java-attributes>
  <xml-element name="sdwan-vpn-id" type="java.lang.String"/>
  <xml-element name="sdwan-vpn-name" type="java.lang.String"/>
  <xml-element name="vxlan-id" type="java.lang.String"/>
  <xml-element name="topology" type="java.lang.String"/>
  <xml-element name="tenant-id" type="java.lang.String"/>
  <xml-element name="vpn-id" type="java.lang.String"/>
  <xml-element name="selflink" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="SdwanVpns">
 <xml-root-element name="sdwan-vpns"/>
 <java-attributes>
  <xml-element name="sdwan-vpn" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.SdwanVpn"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /sdwan-vpns/sdwan-vpn/{id}
Method: PUT
Request Body:
{
    "sdwan-vpn-id": "{id}",
    "sdwan-vpn-name": "a name",
    "vxlan-id": "an id",
    "topology": "topology value",
    "tenant-id": "tenant value",
    "vpn-id": "vpn value",
    "selflink": "some URL",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}
AAI-1353-14

SDWAN Device

Notes:

Proposal for specific new class of "device" objects.



new element "device" and new element "devices":

Mockup Schema (OXM)
<java-type name="Device">
 <xml-root-element name="device"/>
 <java-attributes>
  <xml-element name="device-id" type="java.lang.String"/>
  <xml-element name="esn" type="java.lang.String"/>
  <xml-element name="device-name" type="java.lang.String"/>
  <xml-element name="description" type="java.lang.String"/>
  <xml-element name="vendor" type="java.lang.String"/>
  <xml-element name="class" type="java.lang.String"/>
  <xml-element name="type" type="java.lang.String"/>
  <xml-element name="version" type="java.lang.String"/>
  <xml-element name="system-ip" type="java.lang.String"/>
  <xml-element name="selflink" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="Devices">
 <xml-root-element name="devices"/>
 <java-attributes>
  <xml-element name="device" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.Device"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /devices/device/{id}
Method: PUT
Request Body:
{
    "device-id": "{id}",
    "esn": "an esn",
    "device-name": "a name",
    "description": "a description",
    "vendor": "vendor value",
    "class": "a class",
    "type": "a type",
    "version": "version value",
    "system-ip": "ip value",
    "selflink": "some URL",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}
AAI-1353-15

SDWAN Port

Notes:

Proposal for specific new class of "wan-port-config" objects.


new element "wan-port-config" and new element "wan-port-configs":

Mockup Schema (OXM)
<java-type name="WanPortConfig">
 <xml-root-element name="wan-port-config"/>
 <java-attributes>
  <xml-element name="wan-port-config-id" type="java.lang.String"/>
  <xml-element name="wan-port-config-name" type="java.lang.String"/>
  <xml-element name="device-id" type="java.lang.String"/>
  <xml-element name="vlan-id" type="java.lang.String"/>
  <xml-element name="ip-address" type="java.lang.String"/>
  <xml-element name="provider-ip-address" type="java.lang.String"/>
  <xml-element name="input-bandwidth" type="java.lang.String"/>
  <xml-element name="output-bandwidth" type="java.lang.String"/>
  <xml-element name="description" type="java.lang.String"/>
  <xml-element name="port-type" type="java.lang.String"/>
  <xml-element name="port-number" type="java.lang.String"/>
  <xml-element name="transport-network-name" type="java.lang.String"/>
  <xml-element name="device-port-id" type="java.lang.String"/>
  <xml-element name="wan-port-id" type="java.lang.String"/>
  <xml-element name="selflink" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
  <xml-element name="relationship-list" 
   type="inventory.aai.onap.org.v14.RelationshipList"/>
 </java-attributes>
</java-type>

<java-type name="WanPortConfigs">
 <xml-root-element name="wan-port-configs"/>
 <java-attributes>
  <xml-element name="wan-port-config" container-type="java.lang.ArrayList"
   type="inventory.aai.onap.org.v14.WanPortConfig"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /wan-port-configs/wan-port-config/{id}
Method: PUT
Request Body:
{
    "wan-port-config-id": "{id}",
    "wan-port-config-name": "a name",
    "device-id": "id value",
    "vlan-id": "vlan value",
    "ip-address": "ip value",
    "provider-ip-address": "provider ip value",
    "input-bandwidth": "bandwidth value",
    "output-bandwidth": "bandwidth value",
    "description": "a description",
    "port-type": "type value",
    "port-number": "number value",
    "transport-network-name": "name value",
    "device-port-id": "id value",
    "wan-port-id": "id value",
    "selflink": "some URL",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant",
    "relationship-list": {
        "relationship" : [
            {
                "related-to": "service-instance",
                "related-link": "url of service-instance",
                "relationship-data": [
                    "relationship-key": "service-instance.service-instance-id",
                    "relationship-value": "some id"
                ]
            }
        ]
    }
}
AAI-1353-16pnf

aai_schema_v13.xsd

  • "pnf"

add properties to existing "pnf" object:

Mockup Schema (OXM)
<java-type name="Pnf">
 <xml-root-element name="pnf"/>
 <java-attributes>
  <xml-element name="admin-status" type="java.lang.String"/>
  <xml-element name="operational-status" type="java.lang.String"/>
  <xml-element name="model-customization-id" type="java.lang.String"/>
  <xml-element name="model-version-id" type="java.lang.String"/>
  <xml-element name="model-invariant-id" type="java.lang.String"/>
 </java-attributes>
</java-type>

Mockup API
URL: https://<AAI host>:<AAI port>/aai/v14/network
 /pnfs/pnf/{pnfName}
Method: PUT
Request Body:
{
    "interface-name": "{tp-id}",
    "admin-status": "some admin",
    "operational-status": "some status",
    "model-customization-id": "some customization",
    "model-version-id": "some version",
    "model-invariant-id": "some invariant",
}



11 Comments

  1. Comments from 2018-07-25 AAI Weekly Meeting Notes:

    • write-up proposed OXM schema for AAI (XSD is generated from that)

    • show example of customer-requests information from SO to CLAMP

    • enricher is being introduced in casablanca, maybe not ready to use it for cross-domain ONAP problem in CCVPN

    • enricher uses adaptors to get info from other system, adaptors are reusable

    • which other committees/people to consult on the cross-domain ONAP problem?

    1. Added OXM sections to each item. The OXM file contains Java-specific details, whereas the XSD is more neutral towards implementation language. The XSD is also exported to other components that are clients of the AAI API, so it seems like the more relevant specification to be designing and publishing.


    2. The AAI treats the "customer-requests" field as an opaque data string. Here is an example of the data that might appear in this field:

      {
          "service":{
              "name":"ONAP_223531",
              "description":"ONAP_1546",
              "serviceInvariantUuid":"4a09419a-c9fd-4a53-b1bd-b49603169ca1",
              "serviceUuid":"1bd0eae6-2dcc-4461-9ae6-56d641f369d6",
              "globalSubscriberId":"test_custormer",
              "serviceType":"example-service-type",
              "parameters":{
                  "locationConstraints":[
      
                  ],
                  "resources":[
                      {
                          "resourceName":"vEPC_ONAP01",
                          "resourceInvariantUuid":"36ebe421-283a-4ee8-92f1-d09e7c44b911",
                          "resourceUuid":"27a0e235-b67a-4ea4-a0cf-25761afed111",
                          "resourceCustomizationUuid":"47a0e235-b67a-4ea4-a0cf-25761afed231",
                          "parameters":{
                              "locationConstraints":[
                                  {
                                      "vnfProfileId":"b244d433-8c9c-49ad-9c70-8e34b8dc8328",
                                      "locationConstraints":{
                                          "vimId":"vmware_vio"
                                      }
                                  },
                                  {
                                      "vnfProfileId":"8a9f7c48-21ce-41b7-95b8-a8ac61ccb1ff",
                                      "locationConstraints":{
                                          "vimId":"core-dc_RegionOne"
                                      }
                                  }
                              ],
                              "resources":[
      
                              ],
                              "requestInputs":{
                                  "sdncontroller":""
                              }
                          }
                      },
                      {
                          "resourceName":"VL OVERLAYTUNNEL",
                          "resourceInvariantUuid":"184494cf-472f-436f-82e2-d83dddde21cb",
                          "resourceUuid":"95bc3e59-c9c5-458f-ad6e-78874ab4b3cc",
                          "resourceCustomizationUuid":"27a0e235-b67a-4ea4-a0cf-25761afed232",
                          "parameters":{
                              "locationConstraints":[
      
                              ],
                              "resources":[
      
                              ],
                              "requestInputs":{
      
                              }
                          }
                      }
                  ],
                  "requestInputs":{
                      "vlunderlayvpn0_name":"l3connect",
                      "vlunderlayvpn0_site1_id":"IP-WAN-Controller-1",
                      "vlunderlayvpn0_site2_id":"SPTNController",
                      "vlunderlayvpn0_site1_networkName":"network1,network2",
                      "vlunderlayvpn0_site2_networkName":"network3,network4",
                      "vlunderlayvpn0_site1_routerId":"a8098c1a-f86e-11da-bd1a-00112444be1a",
                      "vlunderlayvpn0_site2_routerId":"a8098c1a-f86e-11da-bd1a-00112444be1e",
                      "vlunderlayvpn0_site2_importRT1":"200:1,200:2",
                      "vlunderlayvpn0_site1_exportRT1":"300:1,300:2",
                      "vlunderlayvpn0_site2_exportRT1":"400:1,400:2",
                      "vlunderlayvpn0_site1_vni":"2000",
                      "vlunderlayvpn0_site2_vni":"3000",
                      "vlunderlayvpn0_tunnelType":"L3-DCI"
                  }
              }
          }
      }

      1. Keong Lim

        xing xiaocheng

        The 'customer-request' field is taken as a whole as the input of creating a service instance. Correct?

        In the 'closed loop' session, it is said : 

        • When Closed Loop call recreates the “service-instance”, it will query “service-instance” information first, to get the “customer-request”

        In CCVPN close loop,  link down event will trigger looking up for multiple service-instance-ids to be recreated.  How can exactly this looking up be accomplished by knowing only 'link id'? What else information is needed to be part of the search key?

        Xin Miao

        1. Referring to Figure 6 above, if you are starting with the id of the "logical-link" object, then it will have relationships to:

          • p-interface → vpn-binding → connectivity → service-instance

          so the simple method would be to fetch each object in turn to get the next one.

          A better method might be to write a Gremlin query which traverses those same relationships to return the service-instances directly. We are still seeking further documentation about how to write those Gremlin queries.


          1. Keong Lim

            Can you help to list out each of the API that need to be called to accomplish this look up? I tried to do it at the 'AAI Enrichment APIs' session on this page but I do not think I got all of them correctly and in the right order. I doubt I still miss something.

            Also, what exactly is the API we need to call for 'customer request ' by 'service instance id'?

            Thanks!

      • Discussing cross-domain ONAP problem at ONAP Arc sub-commitee.
      • ONAPARC-177 - Getting issue details... STATUS
      • July 31
  2. See AAI API for regenerating the schema too.

  3. Clarifications requested from code review:

    1. In the p-interface element, what is the meaning of "networkRef"? What is the sample data that would be stored there?

    2. In the p-interface element, is the existing inv-status property the same as "operational-status"? Can we reuse the inv-status instead?

    3. In the p-interface does the "transparent" attribute need to be indexed?

    4. In the p-interface element, can the "operational-status" field be renamed as "orchestration-status" instead? (this would probably change across all the elements that have operational-status added).

    1. Please see attached screenshot of an ietf-restconf-notification that contains a "network-ref" which identifies a "termination-point". In the mapping to AAI schema, this becomes the "network-ref" property of a "p-interface" object.