X-Git-Url: https://gerrit.onap.org/r/gitweb?p=sdnc%2Fnorthbound.git;a=blobdiff_plain;f=generic-resource-api%2Fmodel%2Fsrc%2Fmain%2Fyang%2FGENERIC-RESOURCE-API.yang;h=78923516293d7f609dbae6581fa84bac9383d25c;hp=2a607cbecb5e41817a599f9bf6df870905619df2;hb=0e6f956f81b67e2e18c5972561552da55ea9838c;hpb=27b190ba58a8c66c7c807f7af3a72c2e0455401f diff --git a/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang b/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang index 2a607cbe..78923516 100644 --- a/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang +++ b/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang @@ -61,6 +61,12 @@ module GENERIC-RESOURCE-API { container vnf-data { uses vnf-operation-information; uses vnf-topology; + container vnf-network-collections { + uses vnf-network-collection; + } + container vnf-sub-interface-groups { + uses vnf-sub-interface-group; + } container vnf-provided-allotted-resources { leaf-list vnf-provided-ar-id { description "List of allotted resources using capacity from this vnf"; @@ -98,6 +104,29 @@ module GENERIC-RESOURCE-API { uses allotted-resource-info; } } + container provided-configurations { + list provided-configuration { + key "configuration-id"; + uses configuration-info; + } + } + container vnfc-instance-groups { + uses vnfc-instance-group; + } + container network-instance-groups { + uses network-instance-group; + } + container forwarding-paths { + list forwarding-path { + key "forwarding-path-id"; + leaf forwarding-path-id { + description "Generated by SDNC"; + type string; + mandatory true; + } + uses forwarding-path-information; + } + } } } grouping service-status { @@ -134,6 +163,7 @@ module GENERIC-RESOURCE-API { enum "delete"; enum "unassign"; enum "deactivate"; + enum "create"; } } leaf response-timestamp { @@ -225,6 +255,10 @@ module GENERIC-RESOURCE-API { leaf network-type { type string; } + leaf from-preload { + description "Indicates if source is preload data"; + type boolean; + } uses onap-model-information; } } @@ -237,6 +271,10 @@ module GENERIC-RESOURCE-API { container network-input-parameters { uses param; } + leaf network-instance-group-id { + description "When network has instance-group role in service model"; + type string; + } } } grouping network-topology { @@ -262,12 +300,14 @@ module GENERIC-RESOURCE-API { leaf network-type { type string; } + leaf network-instance-group-id { + description "When network is part of network instance-Group-data & instance Group in A&AI"; + type string; + } leaf network-technology { - description "should we keep this?"; type string; } leaf eipam-v4-address-plan { - description "??"; type string; } leaf eipam-v6-address-plan { @@ -292,6 +332,81 @@ module GENERIC-RESOURCE-API { } } } + grouping network-instance-group { + list network-instance-group { + key "network-instance-group-id"; + leaf network-instance-group-id { + description "Also a Key in Network Instance Group in A&AI"; + type string; + mandatory true; + } + leaf network-instance-group-function { + type string; + } + leaf service-instance-id { + type string; + } + uses onap-model-information; + container subnet-assignment-policy { + leaf subnet-use { + description "Current valid values - unique, shared (default)"; + type string; + } + } + container vpn-binding-policy { + leaf vpn-binding { + type string; + } + leaf vpn-name { + type string; + } + leaf vpn-type { + type string; + } + leaf vpn-platform { + type string; + } + leaf global-route-target { + type string; + } + leaf route-target-role { + type string; + } + } + uses subnets; + leaf subnet-key-value { + description "key-value provided to EIPAM when creating shared subnet"; + type string; + } + container networks { + list network { + key "network-id"; + leaf network-id { + description "Index into network-topology-identifier structure"; + type string; + mandatory true; + } + uses vpn-bindings; + leaf vlan-tag-id { + type uint32; + } + leaf network-status { + description "assigned, unassigned"; + type string; + } + container customer-bonding-requests { + list customer-bonding-request { + key "configuration-id"; + leaf configuration-id { + description "e.g. vlan network receptor configuration id"; + type string; + } + } + } + } + } + } + } grouping network-level-oper-status { container network-level-oper-status { uses oper-status-data; @@ -310,7 +425,9 @@ module GENERIC-RESOURCE-API { type string; } leaf vnf-type { - description "vnf-model-id in Pats model?in Pats vnf submodule, contained within vnf-instance-topology-identifier grouping (along with vnf-name and vnf-instance-id)"; + type string; + } + leaf vnf-name { type string; } uses onap-model-information; @@ -319,11 +436,9 @@ module GENERIC-RESOURCE-API { grouping vnf-request-input { container vnf-request-input { leaf request-version { - description "keep this? e.g. 1702"; type string; } leaf vnf-name { - description "in Pats vnf submodule, contained within vnf-instance-topology-identifier (along with vnf-model-id and vnf-instance-id)"; type string; } uses region-identifier; @@ -333,6 +448,13 @@ module GENERIC-RESOURCE-API { uses vnf-network-data; } } + list vnf-network-instance-group-ids { + key "vnf-network-instance-group-id"; + leaf vnf-network-instance-group-id { + description "List of vnf network-instance-group"; + type string; + } + } container vnf-input-parameters { uses param; } @@ -347,6 +469,10 @@ module GENERIC-RESOURCE-API { container vnf-parameters-data { uses param; } + leaf sdnc-generated-cloud-resources { + description "Indicate if source is sdnc generated cloud param"; + type boolean; + } } } grouping vnf-topology-identifier-structure { @@ -380,7 +506,7 @@ module GENERIC-RESOURCE-API { grouping vnf-resource-assignments { container vnf-resource-assignments { leaf vnf-status { - description "Do we need this?Orchestration status from AAI - to be set by SDNCWill not be used for vIPR."; + description "Orchestration status from AAI - to be set by SDNC"; type string; } container availability-zones { @@ -425,7 +551,19 @@ module GENERIC-RESOURCE-API { } container subnets-data { list subnet-data { - key "ip-version"; + key "sdnc-subnet-id"; + leaf sdnc-subnet-id { + description "Unique SDNC generated UUID of the subnet. Key into A&AI instance.This maps to ipv4-key-subnet-id and ipv6-key-subnet-id in VNF-API"; + type string; + } + leaf subnet-role { + description "Subnet Role for the subnet"; + type string; + } + leaf subnet-name { + description "Populated for preload only"; + type string; + } leaf ip-version { description "Should be ipv4 or ipv6"; type string; @@ -434,6 +572,13 @@ module GENERIC-RESOURCE-API { description "subnet UUID to be passed into the HEAT template"; type string; } + leaf dhcp-enabled { + description "Indicator to use this subnet for DHCP "; + type enumeration { + enum "Y"; + enum "N"; + } + } } } } @@ -458,6 +603,10 @@ module GENERIC-RESOURCE-API { leaf vf-module-type { type string; } + leaf from-preload { + description "Indicates if source is preload data"; + type boolean; + } uses onap-model-information; } } @@ -485,6 +634,10 @@ module GENERIC-RESOURCE-API { container vf-module-parameters { uses param; } + leaf sdnc-generated-cloud-resources { + description "Indicate if source is sdnc-generated-cloud-resources.When true, the parameters are literal HEAT template parameter names;When false, the parameters need to be converted to HEAT format"; + type boolean; + } } } grouping vf-module-topology-identifier { @@ -498,7 +651,6 @@ module GENERIC-RESOURCE-API { type string; } leaf vf-module-type { - description "In Pats model referred to as model-id"; type string; } } @@ -506,7 +658,7 @@ module GENERIC-RESOURCE-API { grouping vf-module-assignments { container vf-module-assignments { leaf vf-module-status { - description "Do we need this?Orchestration status from AAI - to be set by SDNCNot being used for vIPR."; + description "Orchestration status from AAI - to be set by SDNC"; type string; } container vms { @@ -515,6 +667,7 @@ module GENERIC-RESOURCE-API { uses vm-topology-data; } } + uses vlan-vnfc-instance-groups; } } grouping vm-topology-data { @@ -535,10 +688,18 @@ module GENERIC-RESOURCE-API { } container vm-names { leaf-list vm-name { - description "ordered-by: user"; type string; ordered-by user; } + list vnfc-names { + key "vnfc-name"; + leaf vnfc-name { + type string; + } + container vnfc-networks { + uses vnfc-network-data; + } + } } container vm-networks { list vm-network { @@ -547,6 +708,83 @@ module GENERIC-RESOURCE-API { } } } + grouping vnfc-network-data { + list vnfc-network-data { + key "vnfc-network-role"; + leaf vnfc-network-role { + description "e.g. dummy net - parent port network role "; + type string; + mandatory true; + } + leaf vnfc-type { + description "Vm-type e.g. FW,"; + type string; + } + container vnfc-ports { + list vnfc-port { + key "vnfc-port-id"; + leaf vnfc-port-id { + description "Port(s) with a given network-role are assigned vnfc-port-id from series - 01, 02, 03 ...Example: VM with two ports with network-role =X and another 2 ports with network-role=Y vnfc-port-ids:01 - 1st port with network-role=X02 - 2nd port with network-role=X01 - 1st port with network-role=Y02 - 2nd port with network-role=Y"; + type string; + mandatory true; + } + leaf common-sub-interface-role { + description "If sub-interfaces have common interface role (network role)"; + type string; + } + container vnic-sub-interfaces { + uses sub-interface-network-data; + } + } + } + list vnfc-subnet { + key "vnfc-subnet-role"; + leaf vnfc-subnet-role { + description "Default value if subnet role is not defined."; + type string; + mandatory true; + } + list vnfc-ip-assignments { + key "vnfc-address-family"; + leaf vnfc-address-family { + description "indicates if this is IpV4 or IpV6"; + type enumeration { + enum "ipv4"; + enum "ipv6"; + } + } + leaf vnfc-subnet-dhcp { + description "Indicator to use DHCP for IP assignment. Unless dhcp=N, we wouldnt have any IPs here, since they would not be SDNC assigned "; + type enumeration { + enum "Y"; + enum "N"; + } + } + leaf vnfc-subnet-ip-count { + description "The number of IP addresses to be assigned per vnfc for this subnet role"; + type uint8; + } + list vnfc-subnet-ip { + key "vnfc-ip-address"; + leaf vnfc-ip-address { + description "Either IpV4 IP or IpV6 IP addresses should be present"; + type inet:ip-address; + } + leaf vnfc-client-key { + type string; + } + leaf ip-type { + description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. "; + type enumeration { + enum "FIXED"; + enum "VIP"; + } + } + } + } + } + } + } grouping vm-network-data { leaf network-role { description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF"; @@ -576,7 +814,7 @@ module GENERIC-RESOURCE-API { } container network-ips { leaf-list network-ip { - description "List of assigned ip addresses of type ip-version on a network. Is there a way to specify format to indicate ipv4 or ipv6 format?"; + description "List of assigned ip addresses of type ip-version on a network"; type string; ordered-by user; } @@ -650,142 +888,647 @@ module GENERIC-RESOURCE-API { type string; } } - grouping contrail-route-operation-information { + grouping forwarding-path-operation-information { uses sdnc-request-header; uses request-information; uses service-information; - uses allotted-resource-information; - uses contrail-route-request-input; - } - grouping contrail-route-request-input { - container contrail-route-request-input { - container source-network { - uses network-info; - } - container dest-network { - uses network-info; - } - container contrail-applied-service-info { - leaf service-instance-id { - description "The service-instance-id of the service in which the resource(s) providing the applied-service are. For vIPR, this is the service-instance-id of the vIPR-ATM service in which the vIPR-ATM VNF Contrail service is the applied service. MSO will populate with the input data."; - type string; - } - leaf contrail-fqdn { - description "For future use by MSO on input; MSO not expected to populate in 1707. If MSO can identify the contrail-fqdn of the Contrail applied service for this contrail-route, then it would be specified here on input. Otherwise, SDN-C will look it up by the vIPR-ATM VNF in the service-instance-id of the contrail-applied-service-info grouing."; + uses forwarding-path-request-input; + } + grouping forwarding-path-request-input { + container forwarding-path-request-input { + list forwarding-paths { + key "forwarding-path-name"; + leaf forwarding-path-name { + description "Forwarding-path-name from tosca-model. "; type string; + mandatory true; } - } - container contrail-route-input-parameters { - uses param; + uses onap-model-information; } } } - grouping network-info { - leaf network-id { + grouping forwarding-path-information { + leaf forwarding-path-name { + description "Fowarding-path name from TOSCA model, or name generated by SDNC"; type string; } - leaf network-role { - type string; + leaf forwarding-path-type { + description "Based on MySQL Forwarding_Path tables path_type value from related TOSCA model"; + type enumeration { + enum "VNF"; + enum "Service"; + } } - } - grouping contrail-route-topology { - container contrail-route-topology { - uses allotted-resource-identifiers; - uses onap-model-information; - uses contrail-route-assignments; - container contrail-route-parameters { - uses param; + uses onap-model-information; + container service-paths { + list service-path { + key "service-path-instance-id"; + uses service-path-information; } } } - grouping contrail-route-assignments { - container contrail-route-assignments { - leaf fq-name { - description "The Contrail fq-name of the network policy"; - type string; - } - leaf contrail-id { - description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)"; + grouping service-path-information { + leaf service-path-instance-id { + description "Service path instance ID generated by SDNC. Identifies a service-path-instance within a forwarding-path definition"; + type string; + } + leaf service-path-instance-name { + description "A unique name generated by SDNC ( forwarding-path-name + service-path-instance-id )"; + type string; + } + leaf version { + description "Only one version of the service-path-instance data will be available in MD-SAL. version will be updated when the service-path-instance is reevaluated "; + type string; + } + list service { + key "service-instance-id"; + leaf service-instance-id { + description "service-instance-id of each service-instance in the service-path-instance"; type string; } - container source-network { - uses network-info; - } - container dest-network { - uses network-info; + leaf service-path-sequence-id { + description "e.g. S1S2S3S5seq id=1 S1-S2seq id=2 S2S3seq id=3 S3S5Incremental integer value"; + type uint32; } - container contrail-applied-service { - leaf service-instance-id { - description "The service-instance-id of the vnf from which the contrail applied service is coming"; - type string; - } - leaf vnf-id { - description "The vnf representing the contrail applied service"; - type string; - } - leaf contrail-fqdn { - description "This is the fq-name of the Contrail service instance through which the route is passing."; - type string; + container vnfs { + list vnf { + key "vnf-instance-id"; + uses vnf-path-information; } } - leaf vlan-tag { - description "Contrail-assigned vlan-tag to the vipr vm interface for this route."; - type string; - } } } - grouping security-zone-operation-information { - uses sdnc-request-header; - uses request-information; - uses service-information; - uses allotted-resource-information; - uses security-zone-request-input; - } - grouping security-zone-request-input { - container security-zone-request-input { - leaf vlan-tag { - type string; - } - leaf trusted-network-role { - description "In the case of vIPR, this is the landing networks network-role; used in naming"; + grouping vnf-path-information { + leaf vnf-instance-id { + description "VNF instance ID in the path"; + type string; + } + leaf vnf-path-sequence-id { + description "Sequence ID at the VNF instance levele.g. e.g. V1V2V3V5V6seq id=1 V1-V2seq id=2 V2V3seq id=3 V3V5seq id=4 V5V6incremental integer value."; + type uint32; + } + leaf left-network-name { + description "Every VNF instance in the path is connected to one or two VNFs."; + type string; + } + leaf left-network-role { + type string; + } + leaf right-network-name { + type string; + } + leaf right-network-role { + type string; + } + container vf-module-instance { + leaf vf-module-id { type string; } - leaf untrusted-network-role { - description "In the case of vIPR, this is the tenant oam networks network-role; used in naming"; + leaf vf-module-name { type string; } - container security-zone-input-parameters { - uses param; - } } } - grouping security-zone-topology { - container security-zone-topology { - uses allotted-resource-identifiers; - uses onap-model-information; - uses security-zone-assignments; - container security-zone-parameters { - uses param; - } + grouping forwarding-path-level-oper-status { + container forwarding-path-level-oper-status { + uses oper-status-data; + } + } + grouping configuration-info { + leaf configuration-id { + type string; + } + leaf configuration-type { + description "Not an enum, but expected values are port-mirror-configuration, , vlan-network-receptor"; + type string; + } + leaf configuration-sub-type { + description "Not an enum, but expected values are vprobe and pprobe"; + type string; + } + leaf configuration-topology-link { + description "Pointer to the configurations topology"; + type string; } } - grouping security-zone-assignments { - container security-zone-assignments { - leaf trusted-network-role { - description "In the case of vIPR, this is the landing networks network-role; used in naming"; + grouping vnfc-instance-group { + list vnfc-instance-group { + key "instance-group-role nfc-naming-code configuration-id"; + leaf instance-group-role { + description "i.e.TSBC_VNFC_group"; type string; + mandatory true; } - leaf security-zone-name-trusted { + leaf nfc-naming-code { + description "Set to nfc-naming-code from A&AI"; type string; + mandatory true; } - leaf untrusted-network-role { - description "In the case of vIPR, this is the tenant oam networks network-role; used in naming"; + leaf configuration-id { type string; + mandatory true; } - leaf security-zone-name-untrusted { + leaf group-type { + description " port-mirror-source or port-mirror-dest"; type string; } - leaf security-zone-service-instance-id { + uses vnfc-objects; + } + } + grouping vnfc-objects { + container vnfc-objects { + list vnfc-object { + key "vnfc-key"; + leaf vnfc-key { + type string; + } + leaf vnfc-name { + description "Vnfc name as key in A&AI"; + type string; + } + leaf vm-type { + type string; + } + leaf vnf-id { + type string; + } + leaf vserver-name { + type string; + } + leaf vserver-id { + type string; + } + container vnics { + list vnic { + key "vnic-port-name"; + leaf vnic-port-name { + type string; + } + leaf vnic-port-id { + type string; + } + container capacity { + leaf vnic-capacity { + type uint32; + } + leaf used-capacity { + description "Updated for destination port when source port is mapped/unmapped."; + type uint32; + } + } + container vnic-ip-addresses { + uses ip-addresses; + } + } + } + } + } + } + grouping vnfcs { + container vnfcs { + list vnfc { + key "vnfc-name"; + leaf vnfc-name { + description "Vnfc name as key in A&AI"; + type string; + } + leaf vserver-name { + type string; + } + leaf vserver-id { + type string; + } + uses vnics; + } + } + } + grouping vnics { + container vnics { + list vnic { + key "vnic-port-name"; + leaf vnic-port-name { + type string; + } + leaf vnic-port-id { + type string; + } + uses sub-interfaces; + } + } + } + grouping sub-interfaces { + container sub-interfaces { + list sub-interface { + key "sub-interface-port-name"; + leaf sub-interface-port-name { + type string; + } + leaf sub-interface-port-id { + type string; + } + container sub-interface-ip-addresses { + uses ip-addresses; + } + uses vlan-tags; + container sub-interface-network { + leaf network-name { + type string; + } + leaf network-id { + type string; + } + } + leaf sub-interface-status { + description "NULL, unassigned, assigned"; + type string; + } + } + } + } + grouping vlan-tags { + container vlan-tags { + leaf vlan-interface { + description "A&AI Key"; + type string; + } + leaf upper-tag-id { + type uint32; + } + leaf lower-tag-id { + type uint32; + } + } + } + grouping vlan-vnfc-instance-groups { + container vlan-vnfc-instance-groups { + list vlan-vnfc-instance-group { + key "instance-group-id"; + leaf instance-group-id { + description "A&AI ID"; + type string; + mandatory true; + } + leaf instance-group-function { + type string; + } + leaf vnf-id { + type string; + } + container vnfcs { + list vnfc { + key "vnfc-name"; + leaf vnfc-name { + type string; + } + uses vnic-groups; + } + } + } + } + } + grouping vnic-groups { + container vnic-groups { + list vnic-group { + key "vnic-interface-role"; + leaf vnic-interface-role { + description "Same as network-role of network where vnic is connected"; + type string; + mandatory true; + } + leaf network-instance-group-function { + description "network-instance-Group-function for network collection where vnics with vnic-interface-role will connect"; + type string; + } + leaf vlan-assignment-policy-name { + description "Policy name in ASDC model & policy definition in Policy Engine"; + type string; + } + leaf vlan-tag-index-next { + description "Next tag to be assigned"; + type uint32; + } + container vlan-common-ip-addresses { + uses ip-addresses; + } + container vlan-vnics { + list vlan-vnic { + key "vnic-port-id"; + leaf vnic-port-id { + type string; + mandatory true; + } + container vnic-sub-interfaces { + uses sub-interface-network-data; + } + } + } + } + } + } + grouping vnf-network-collection { + list vnf-network-collection { + key "network-instance-group-function"; + leaf network-instance-group-function { + description "Network Instance-Group function in A&AI"; + type string; + mandatory true; + } + leaf network-instance-group-id { + description "Network Instance-Group id in A&AI"; + type string; + } + leaf network-collection-service-instance-id { + description "Service-instance-id of service that created the network collection"; + type string; + } + leaf network-collection-customization-uuid { + description "network-collection-customization-uuid stored in Network IsntanceGroup.customization-uuid in A&AI"; + type string; + } + container vnf-floating-ip { + uses ip-addresses; + } + } + } + grouping vnf-sub-interface-group { + list vnf-sub-interface-group { + key "vnfc-instance-group-function network-instance-group-function parent-port-role"; + leaf vnfc-instance-group-function { + type string; + mandatory true; + } + leaf network-instance-group-function { + type string; + mandatory true; + } + leaf parent-port-role { + type string; + mandatory true; + } + uses vnfcs; + container customer-bonding-requests { + list customer-bonding-request { + key "configuration-id"; + leaf configuration-id { + description "e.g. vlan network receptor configuration id"; + type string; + } + } + } + } + } + grouping sub-interface-network-data { + list sub-interface-network-data { + key "network-id"; + leaf network-id { + description "Subinterface network id (UUID in A&AI)"; + type string; + mandatory true; + } + leaf network-name { + description "Subinterface network name"; + type uint32; + } + leaf vlan-tag-id { + description "Vlan tag assigned to subinterface port"; + type uint32; + } + leaf network-role { + description "e.g. untrusted "; + type string; + } + leaf network-role-tag { + description "Assuming HEAT template network role tag parameter - not used"; + type string; + } + container network-information-items { + list network-information-item { + key "ip-version"; + leaf ip-version { + description "Use ipv4 or ipv6"; + type string; + } + leaf use-dhcp { + description "Indicator to use DHCP on this network for this VM - set to N for Vlan tagging"; + type enumeration { + enum "Y"; + enum "N"; + } + } + leaf ip-count { + description "The number of ip addresses to be assigned per vm for this network role"; + type uint8; + } + container network-ips { + leaf-list network-ip { + description "List of assigned ip addresses of type ip-version on a network."; + type inet:ip-address; + ordered-by user; + } + } + } + } + container floating-ips { + leaf-list floating-ip-v4 { + description "Floating ipv4 for VMs of a given type on this network"; + type inet:ip-address; + ordered-by user; + } + leaf-list floating-ip-v6 { + description "Floating ipv6 for VMs of a given type on this network"; + type inet:ipv6-address; + ordered-by user; + } + } + } + } + grouping vnf-cloud-param { + leaf service-instance-id { + type string; + } + leaf service-instance-name { + type string; + } + list vnf { + key "vnf-id"; + leaf vnf-id { + type string; + } + leaf vnf-name { + type string; + } + uses param; + list vf-module { + key "vf-module-id"; + leaf vf-module-id { + type string; + } + uses param; + } + } + } + grouping vnf-get-resource-request-input-data { + list vnf { + key "vnf-id"; + leaf vnf-id { + type string; + } + list vf-module { + key "vf-module-id"; + leaf vf-module-id { + type string; + } + } + } + } + grouping pnf-information { + container pnf-information { + leaf pnf-name { + description "Key for A&AI query"; + type string; + } + leaf pnf-type { + type string; + } + uses onap-model-information; + } + } + grouping contrail-route-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses allotted-resource-information; + uses contrail-route-request-input; + } + grouping contrail-route-request-input { + container contrail-route-request-input { + container source-network { + uses network-info; + } + container dest-network { + uses network-info; + } + container contrail-applied-service-info { + leaf service-instance-id { + description "The service-instance-id of the service in which the resource(s) providing the applied-service are. For vIPR, this is the service-instance-id of the vIPR-ATM service in which the vIPR-ATM VNF Contrail service is the applied service. MSO will populate with the input data."; + type string; + } + leaf contrail-fqdn { + description "For future use by MSO on input; MSO not expected to populate in 1707. If MSO can identify the contrail-fqdn of the Contrail applied service for this contrail-route, then it would be specified here on input. Otherwise, SDN-C will look it up by the vIPR-ATM VNF in the service-instance-id of the contrail-applied-service-info grouing."; + type string; + } + } + container contrail-route-input-parameters { + uses param; + } + } + } + grouping network-info { + leaf network-id { + type string; + } + leaf network-role { + type string; + } + } + grouping contrail-route-topology { + container contrail-route-topology { + uses allotted-resource-identifiers; + uses onap-model-information; + uses contrail-route-assignments; + container contrail-route-parameters { + uses param; + } + } + } + grouping contrail-route-assignments { + container contrail-route-assignments { + leaf fq-name { + description "The Contrail fq-name of the network policy"; + type string; + } + leaf contrail-id { + description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)"; + type string; + } + container source-network { + uses network-info; + } + container dest-network { + uses network-info; + } + container contrail-applied-service { + leaf service-instance-id { + description "The service-instance-id of the vnf from which the contrail applied service is coming"; + type string; + } + leaf vnf-id { + description "The vnf representing the contrail applied service"; + type string; + } + leaf contrail-fqdn { + description "This is the fq-name of the Contrail service instance through which the route is passing."; + type string; + } + } + leaf vlan-tag { + description "Contrail-assigned vlan-tag to the vipr vm interface for this route."; + type string; + } + } + } + grouping security-zone-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses allotted-resource-information; + uses security-zone-request-input; + } + grouping security-zone-request-input { + container security-zone-request-input { + leaf vlan-tag { + type string; + } + leaf trusted-network-role { + description "In the case of vIPR, this is the landing networks network-role; used in naming"; + type string; + } + leaf untrusted-network-role { + description "In the case of vIPR, this is the tenant oam networks network-role; used in naming"; + type string; + } + container security-zone-input-parameters { + uses param; + } + } + } + grouping security-zone-topology { + container security-zone-topology { + uses allotted-resource-identifiers; + uses onap-model-information; + uses security-zone-assignments; + container security-zone-parameters { + uses param; + } + } + } + grouping security-zone-assignments { + container security-zone-assignments { + leaf trusted-network-role { + description "In the case of vIPR, this is the landing networks network-role; used in naming"; + type string; + } + leaf security-zone-name-trusted { + type string; + } + leaf untrusted-network-role { + description "In the case of vIPR, this is the tenant oam networks network-role; used in naming"; + type string; + } + leaf security-zone-name-untrusted { + type string; + } + leaf security-zone-service-instance-id { description "Will be the same as the parent-service-instance-id"; type string; } @@ -798,6 +1541,235 @@ module GENERIC-RESOURCE-API { } } } + grouping port-mirror-topology-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses configuration-information; + uses port-mirror-configuration-request-input; + } + grouping port-mirror-configuration-request-input { + container port-mirror-configuration-request-input { + container source-port { + uses port-info; + leaf source-port-id { + description "needed for srv-action=disable/enable"; + type string; + } + } + container dest-port { + uses port-info; + } + uses region-identifier; + container port-mirror-configuration-input-parameters { + uses param; + } + } + } + grouping port-info { + leaf service-instance-id { + description "May not be need."; + type string; + } + uses pnf-information; + uses vnf-information; + } + grouping port-mirror-configuration-topology { + container port-mirror-configuration-topology { + uses configuration-identifiers; + uses onap-model-information; + uses port-mirror-configuration-assignments; + container port-mirror-configuration-parameters { + uses param; + } + } + } + grouping port-mirror-configuration-assignments { + container port-mirror-configuration-assignments { + container contrail-vmi-params { + uses param; + } + leaf vnics-group-id { + type string; + } + leaf owning-entity { + type string; + } + leaf tenant-context { + description "From tenant object in A&AI"; + type string; + } + leaf tenant { + description "Tenant name from A&AI for source VNF"; + type string; + } + leaf tenant-id { + description "tenant-id from A&AI for source VNF"; + type string; + } + leaf dest-tenant { + description "Tenant name from A&AI for destination VNF"; + type string; + } + leaf dest-tenant-id { + description "tenant-id from A&AI for destination VNF"; + type string; + } + leaf cloud-region-id { + type string; + } + leaf cloud-owner { + type string; + } + leaf dest-network-fqdn { + type string; + } + leaf source-network-fqdn { + type string; + } + leaf source-capacity { + description "Source port pps (packets per second) rating from tosca model"; + type uint32; + } + leaf source-vnf-id { + type string; + } + leaf dest-vnf-id { + description "For vProbe"; + type string; + } + leaf dest-pnf-name { + description "For pProbe"; + type string; + } + leaf dest-p-interface { + description "For pProbe; from policy manager"; + type string; + } + leaf dest-pnf-port-policy-name { + description "For pProbe; from tosca model"; + type string; + } + leaf probe-type { + description "vprobe or pprobe; derived from configuration-information.configuration-sub-type"; + type string; + } + leaf route-allotted-resource-id { + description "For vProbe"; + type string; + } + container source-vnfc-instance-group-id { + leaf service-instance-id { + type string; + } + leaf nfc-naming-code { + type string; + } + leaf instance-group-role { + type string; + } + leaf configuration-id { + type string; + } + } + container dest-vnfc-instance-group-id { + leaf service-instance-id { + type string; + } + leaf nfc-naming-code { + type string; + } + leaf instance-group-role { + type string; + } + leaf configuration-id { + type string; + } + } + container source-to-dest-maps { + list source-to-dest-map { + key "source-port-id"; + leaf source-port-id { + type string; + mandatory true; + } + leaf source-port-name { + type string; + } + leaf source-vserver-id { + type string; + } + leaf dest-vserver-id { + type string; + } + leaf dest-port-id { + type string; + } + leaf dest-port-name { + type string; + } + leaf link-name { + type string; + } + container dest-ip-addresses { + uses ip-addresses; + } + } + } + } + } + grouping gc-topology-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses configuration-information; + uses gc-request-input; + } + grouping gc-request-input { + container gc-request-input { + leaf vnf-id { + type string; + } + container input-parameters { + uses param; + } + } + } + grouping vnr-parameters { + container vnr-parameters { + leaf vnf-id { + type string; + } + leaf vnf-service-instance-id { + type string; + } + leaf network-collection-service-instance-id { + description "service instance id that created network-collection"; + type string; + } + leaf network-instance-group-id { + type string; + } + leaf network-id { + type string; + } + leaf vnfc-instance-group-function { + type string; + } + leaf network-instance-group-function { + type string; + } + leaf parent-port-role { + type string; + } + leaf upper-tag-id { + type uint32; + } + leaf lower-tag-id { + type uint32; + } + } + } grouping tunnelxconn-operation-information { uses sdnc-request-header; uses request-information; @@ -880,7 +1852,6 @@ module GENERIC-RESOURCE-API { } } } - grouping connection-attachment-operation-information { uses sdnc-request-header; uses request-information; @@ -996,6 +1967,95 @@ module GENERIC-RESOURCE-API { } } } + grouping configuration-information { + container configuration-information { + leaf configuration-id { + type string; + } + leaf configuration-name { + type string; + } + leaf configuration-type { + description "Not an enum, but expected values are port-mirror-configuration, vlan-network-receptor"; + type string; + } + leaf configuration-sub-type { + description "e.g. vprobe and pprobe when configuration-type=port-mirror-configuration"; + type string; + } + uses onap-model-information; + } + } + grouping configuration-identifiers { + container configuration-identifiers { + leaf configuration-id { + type string; + } + leaf configuration-name { + type string; + } + leaf configuration-type { + description "Not an enum, but expected values are port-mirror-configuration."; + type string; + } + leaf configuration-sub-type { + description " vprobe and pprobe"; + type string; + } + leaf parent-service-instance-id { + description "Service-instance-id of the parent service to which this resource belongs."; + type string; + } + } + } + grouping configuration-oper-status { + container configuration-oper-status { + uses oper-status-data; + } + } + grouping configuration-status { + container configuration-status { + leaf response-code { + type string; + } + leaf response-message { + type string; + } + leaf final-indicator { + type string; + } + leaf request-status { + type enumeration { + enum "synccomplete"; + enum "asynccomplete"; + enum "notifycomplete"; + } + } + leaf action { + description "value would one of possible request-actions; match the list in service-data oper-status"; + type string; + } + leaf rpc-name { + type string; + } + leaf rpc-action { + description "this is the svc-action from the incoming request"; + type enumeration { + enum "assign"; + enum "activate"; + enum "create"; + enum "disable"; + enum "enable"; + enum "delete"; + enum "unassign"; + enum "deactivate"; + } + } + leaf response-timestamp { + type string; + } + } + } grouping topology-response-common { leaf svc-request-id { description "the request id from the request message for which this is the responseKeep as M"; @@ -1021,7 +2081,7 @@ module GENERIC-RESOURCE-API { type string; } leaf svc-action { - description "Enumerated listThis is the rpcAction"; + description "This is the rpcAction"; type enumeration { enum "reserve"; enum "assign"; @@ -1033,6 +2093,9 @@ module GENERIC-RESOURCE-API { enum "deactivate"; enum "unassign"; enum "create"; + enum "disable"; + enum "enable"; + enum "update"; } } leaf svc-notification-url { @@ -1083,6 +2146,18 @@ module GENERIC-RESOURCE-API { enum "ActivateSiteInstance"; enum "DeactivateSiteInstance"; enum "DeleteSiteInstance"; + enum "CreatePortMirrorConfigurationInstance"; + enum "DeletePortMirrorConfigurationInstance"; + enum "ChangePortMirrorConfigurationInstance"; + enum "CreateGenericConfigurationInstance"; + enum "DeleteGenericConfigurationInstance"; + enum "PreloadVfModuleRequest"; + enum "DeletePreloadVfModuleRequest"; + enum "PreloadNetworkRequest"; + enum "DeletePreloadNetworkRequest"; + enum "CreateForwardingPathInstance"; + enum "DeleteForwardingPathInstance"; + enum "UpdateForwardingPathInstance"; } } leaf source { @@ -1167,6 +2242,43 @@ module GENERIC-RESOURCE-API { leaf value { type string; } + container resource-resolution-data { + list resource-key { + key "name"; + leaf name { + type string; + } + leaf value { + type string; + } + } + leaf status { + description "SUCCESS, FAILED, or PENDING - RA returned data as capability"; + type string; + } + leaf capability-name { + description "Resource assignment resolution Capability name"; + type string; + } + } + } + } + grouping ip-addresses { + container ip-addresses { + leaf ipv4-address { + type inet:ip-address; + } + leaf ipv6-address { + type inet:ip-address; + } + leaf vipv4-address { + description "Virtual v4"; + type inet:ip-address; + } + leaf vipv6-address { + description "Virtual v6"; + type inet:ip-address; + } } } grouping instance-reference { @@ -1199,6 +2311,7 @@ module GENERIC-RESOURCE-API { enum "unassign"; enum "deactivate"; enum "create"; + enum "changeassign"; } } leaf last-action { @@ -1237,6 +2350,18 @@ module GENERIC-RESOURCE-API { enum "ActivateSiteInstance"; enum "DeactivateSiteInstance"; enum "DeleteSiteInstance"; + enum "CreatePortMirrorConfigurationInstance"; + enum "DeletePortMirrorConfigurationInstance"; + enum "ChangePortMirrorConfigurationInstance"; + enum "CreateGenericConfigurationInstance"; + enum "DeleteGenericConfigurationInstance"; + enum "PreloadVfModuleRequest"; + enum "DeletePreloadVfModuleRequest"; + enum "PreloadNetworkRequest"; + enum "DeletePreloadNetworkRequest"; + enum "CreateForwardingPathInstance"; + enum "DeleteForwardingPathInstance"; + enum "UpdateForwardingPathInstance"; } } leaf last-svc-request-id { @@ -1244,7 +2369,6 @@ module GENERIC-RESOURCE-API { type string; } leaf last-order-status { - description "fieldused by generic-resource-api"; type enumeration { enum "Active"; enum "PendingAssignment"; @@ -1278,18 +2402,33 @@ module GENERIC-RESOURCE-API { uses instance-reference; } } - grouping vf-module-response-information { - container vf-module-response-information { + grouping vf-module-response-information { + container vf-module-response-information { + uses instance-reference; + } + } + grouping contrail-route-response-information { + container contrail-route-response-information { + uses instance-reference; + } + } + grouping security-zone-response-information { + container security-zone-response-information { + uses instance-reference; + } + } + grouping getpathsegment-response-information { + container getpathsegment-response-information { uses instance-reference; } } - grouping contrail-route-response-information { - container contrail-route-response-information { + grouping port-mirror-response-information { + container port-mirror-response-information { uses instance-reference; } } - grouping security-zone-response-information { - container security-zone-response-information { + grouping gc-response-information { + container gc-response-information { uses instance-reference; } } @@ -1309,266 +2448,46 @@ module GENERIC-RESOURCE-API { } } grouping preload-model-information { - list vnf-preload-list { - key "vnf-name vnf-type"; - leaf vnf-name { + list preload-list { + key "preload-id preload-type"; + leaf preload-id { description "vf-module-name or network name"; type string; mandatory true; } - leaf vnf-type { - description "vf-module-type or network type"; + leaf preload-type { + description "network or vf-module"; type string; mandatory true; } uses preload-data; } } - grouping vnf-topology-response-body { - leaf svc-request-id { - type string; - } - leaf response-code { - type string; - } - leaf response-message { - type string; - } - leaf ack-final-indicator { - type string; - } - } grouping preload-data { container preload-data { - uses vnf-topology-information; - uses network-topology-information; - uses oper-status; - } - } - grouping vnf-topology-information { - container vnf-topology-information { - uses vnf-topology-identifier; - uses vnf-assignments; - uses vnf-parameters; - } - } - grouping vnf-topology-identifier { - container vnf-topology-identifier { - leaf service-type { - type string; - } - leaf service-id { - type string; - } - leaf vnf-name { - description "vf-module-name"; - type string; - } - leaf vnf-type { - description "vf-module-type"; - type string; - } - leaf generic-vnf-name { - type string; - } - leaf generic-vnf-type { - type string; - } - leaf generic-vnf-id { - type string; - } - } - } - grouping vnf-assignments { - container vnf-assignments { - leaf vnf-status { - description "Orchestration Status from AAI - to be set by SDNC"; - type string; - } - list availability-zones { - key "availability-zone"; - leaf availability-zone { - description "Openstack availability zone name or UUID"; - type string; - } - } - list vnf-networks { - key "network-role"; - uses vnf-network; - uses sriov-vlan-filter-list; - } - uses vm-topology; - } - } - grouping vm-topology { - list vnf-vms { - key "vm-type"; - leaf vm-type { - type string; - mandatory true; - } - leaf vm-count { - type uint8; - } - list vm-names { - key "vm-name"; - leaf vm-name { - type string; - } - } - list vm-networks { - key "network-role"; - uses vm-network; - } - } - } - grouping vnf-network { - leaf network-role { - description "A Network Role to which a VNF must connect"; - type string; - mandatory true; - } - leaf network-name { - description "Unique Neutron UUID of an instance of the network role "; - type string; - } - leaf neutron-id { - description "Unique Neutron UUID of an instance of the network role "; - type string; - } - leaf network-id { - description "Unique Neutron UUID of an instance of the network role "; - type string; - } - leaf subnet-id { - description "ipv4 subnet UUID to be passed into the HEAT template"; - type string; - } - leaf subnet-name { - description "ipv4 subnet-name that corresponds to the ipv4 subnet-id"; - type string; - } - leaf contrail-network-fqdn { - description "contrail network policy object"; - type string; - } - leaf ipv6-subnet-id { - description "ipv6 subnet UUID to be passed into the HEAT template"; - type string; - } - leaf ipv6-subnet-name { - description "ipv6 subnet-name that corresponds to the ipv6 subnet-id"; - type string; - } - } - grouping sriov-vlan-filter-list { - list sriov-vlan-filter-list { - key "sriov-vlan-filter"; - leaf sriov-vlan-filter { - type string; - } - } - } - grouping vm-network { - leaf network-role { - description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF"; - type string; - } - leaf use-dhcp { - description "Indicator to use DHCP on this network for this VM"; - type enumeration { - enum "Y"; - enum "N"; - } - } - leaf ip-count { - description "The number of ip addresses to be assigned per vm for this network role"; - type uint8; - } - list network-ips { - key "ip-address"; - leaf ip-address { - description "List of assigned ipv4 addresses on a network"; - type inet:ip-address; - } - } - list network-ips-v6 { - key "ip-address-ipv6"; - leaf ip-address-ipv6 { - description "List of assigned ipv6 addresses on a network"; - type inet:ipv6-address; - } - } - list network-macs { - key "mac-address"; - leaf mac-address { - description "List of network assignments for this VM (one per network)"; - type string; - } - } - leaf floating-ip { - description "Floating ipv4 for VMs of a given type on this network"; - type inet:ip-address; - } - leaf floating-ip-v6 { - description "Floating ipv6 for VMs of a given type on this network"; - type inet:ipv6-address; - } - list interface-route-prefixes { - key "interface-route-prefix-cidr"; - leaf interface-route-prefix-cidr { - description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes"; - type string; - mandatory true; - } - leaf interface-route-prefix { - description "route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes"; - type inet:ip-address; - } + uses preload-vf-module-topology-information; + uses preload-network-topology-information; + uses preload-oper-status; } } - grouping vnf-parameters { - list vnf-parameters { - key "vnf-parameter-name"; - leaf vnf-parameter-name { - description "The name of an arbitrary instance-specific vnf-parameters"; - type string; - } - leaf vnf-parameter-value { - description "The value of an arbitrary instance-specific vnf-parameters "; - type string; - } + grouping preload-vf-module-topology-information { + container preload-vf-module-topology-information { + uses vnf-topology-identifier-structure; + uses vnf-resource-assignments; + uses vf-module-topology; } } - grouping network-topology-information { - container network-topology-information { - uses network-topology-identifier; + grouping preload-network-topology-information { + container preload-network-topology-information { + uses network-topology-identifier-structure; uses subnets; uses vpn-bindings; uses network-policy; uses route-table-reference; + uses host-routes; uses provider-network-information; } } - grouping network-topology-identifier { - container network-topology-identifier { - leaf service-type { - type string; - } - leaf network-name { - type string; - } - leaf network-role { - type string; - } - leaf network-type { - type string; - } - leaf network-technology { - type string; - } - } - } grouping subnets { list subnets { key "start-address"; @@ -1596,9 +2515,22 @@ module GENERIC-RESOURCE-API { leaf dhcp-end-address { type string; } + leaf addr-from-start { + description "Default is N"; + type enumeration { + enum "Y"; + enum "N"; + } + } leaf subnet-name { type string; } + leaf subnet-role { + type string; + } + leaf subnet-sequence { + type uint8; + } } } grouping vpn-bindings { @@ -1607,9 +2539,19 @@ module GENERIC-RESOURCE-API { leaf vpn-binding-id { type string; } + leaf vpn-name { + type string; + } leaf global-route-target { type string; } + leaf route-target-role { + type string; + } + leaf aic-zone { + description "AIC Zone the route target associated with"; + type string; + } } } grouping network-policy { @@ -1645,12 +2587,24 @@ module GENERIC-RESOURCE-API { leaf is-shared-network { type boolean; } - leaf is-external-network { + leaf is-external-network { type boolean; } } - grouping oper-status { - container oper-status { + grouping host-routes { + list host-routes { + key "route-prefix"; + leaf route-prefix { + type string; + } + leaf next-hop { + description "Could be ip-address or hostname or service-instance"; + type string; + } + } + } + grouping preload-oper-status { + container preload-oper-status { leaf order-status { type enumeration { enum "Active"; @@ -1662,23 +2616,11 @@ module GENERIC-RESOURCE-API { } } leaf last-action { - description "this is preload request actions"; type enumeration { - enum "VNFActivateRequest"; - enum "ChangeVNFActivateRequest"; - enum "VnfInstanceActivateRequest"; - enum "ChangeVnfInstanceActivateRequest"; - enum "VfModuleActivateRequest"; - enum "ChangeVfModuleActivateRequest"; - enum "DisconnectVNFRequest"; - enum "DisconnectVnfInstanceRequest"; - enum "DisconnectVfModuleRequest"; - enum "PreloadVNFRequest"; - enum "DeletePreloadVNFRequest"; - enum "PreloadVnfInstanceRequest"; - enum "DeletePreloadVnfInstanceRequest"; enum "PreloadVfModuleRequest"; enum "DeletePreloadVfModuleRequest"; + enum "PreloadNetworkRequest"; + enum "DeletePreloadNetworkRequest"; } } leaf last-svc-request-id { @@ -1708,6 +2650,34 @@ module GENERIC-RESOURCE-API { } } } + grouping preload-topology-response-body { + leaf svc-request-id { + type string; + } + leaf response-code { + type string; + } + leaf response-message { + type string; + } + leaf ack-final-indicator { + type string; + } + } + rpc generic-configuration-notification { + input { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses configuration-information; + uses topology-response-common; + leaf configuration-topology-link { + description "Returns URL to generic-configuration-topology "; + type string; + } + uses vnr-parameters; + } + } container services { uses service-model-infrastructure; } @@ -1808,6 +2778,39 @@ module GENERIC-RESOURCE-API { uses allotted-resource-status; } } + container port-mirror-configurations { + list port-mirror-configuration { + key "configuration-id"; + leaf configuration-id { + type string; + mandatory true; + } + container configuration-data { + container configuration-operation-information { + uses port-mirror-topology-operation-information; + } + uses port-mirror-configuration-topology; + uses configuration-oper-status; + } + uses configuration-status; + } + } + container generic-configurations { + list gc-configuration { + key "configuration-id"; + leaf configuration-id { + type string; + mandatory true; + } + container configuration-data { + container configuration-operation-information { + uses gc-topology-operation-information; + } + uses configuration-oper-status; + } + uses configuration-status; + } + } rpc service-topology-operation { input { uses service-operation-information; @@ -1888,27 +2891,95 @@ module GENERIC-RESOURCE-API { uses service-response-information; } } - container preload-vnfs { + rpc policy-update-notify-operation { + input { + leaf policy-name { + type string; + mandatory true; + } + leaf version-id { + description "Map JSON versionNo to version-id"; + type string; + mandatory true; + } + leaf update-type { + type string; + mandatory true; + } + } + output { + leaf error-code { + type string; + } + leaf error-msg { + type string; + } + } + } + rpc getpathsegment-topology-operation { + input { + uses forwarding-path-operation-information; + } + output { + uses topology-response-common; + uses getpathsegment-response-information; + uses service-response-information; + } + } + rpc port-mirror-topology-operation { + input { + uses port-mirror-topology-operation-information; + } + output { + uses topology-response-common; + uses port-mirror-response-information; + uses service-response-information; + } + } + rpc generic-configuration-topology-operation { + input { + uses gc-topology-operation-information; + } + output { + uses topology-response-common; + uses gc-response-information; + uses service-response-information; + } + } + rpc vnf-get-resource-request { + input { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses vnf-get-resource-request-input-data; + } + output { + container vnf-get-resource-response-information { + uses vnf-cloud-param; + } + } + } + container preload-information { uses preload-model-information; } - rpc preload-vnf-topology-operation { + rpc preload-vf-module-topology-operation { input { uses sdnc-request-header; uses request-information; - uses vnf-topology-information; + uses preload-vf-module-topology-information; } output { - uses vnf-topology-response-body; + uses preload-topology-response-body; } } rpc preload-network-topology-operation { input { uses sdnc-request-header; uses request-information; - uses network-topology-information; + uses preload-network-topology-information; } output { - uses vnf-topology-response-body; + uses preload-topology-response-body; } }