diff options
Diffstat (limited to 'docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml')
-rw-r--r-- | docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml | 756 |
1 files changed, 756 insertions, 0 deletions
diff --git a/docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml b/docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml new file mode 100644 index 0000000..e0ce37d --- /dev/null +++ b/docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml @@ -0,0 +1,756 @@ +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +tosca_definitions_version: tosca_simple_yaml_1_0 +description: undelay vpn type definitions + +# ***************************************************************************** +# underlay vpn type definitions, used for both L3vpn and l2vpn +# ***************************************************************************** + +metadata: + version: 0.1 + vendor: sdno + template_author: Huawei + +imports: + - sdno_type_definition.yaml + +# ***************************************************************************** +# DSL definitions +# ***************************************************************************** +dsl_definitions: + +# ***************************************************************************** +# data types +# ***************************************************************************** +data_types: + + + # Base SDNO Type for Specs - used in Underlay VPN only for now, check reuse and move to common if needed. May need to move iot from type to node + sdno.datatypes.Spec: + derived_from: tosca.datatypes.Root + properties: + uuid: + type: string + description: unique id, format maxLength36 + required: true + default: 'none' + additionalInfo: + type: list + #max size = 1000 + entry_schema: + type: AdditionalInfoRow + required: false + + # PW Schema Type + + PWSchema: + derived_from: sdno.datatypes.Spec + properties: + pwTech: + type: string + description: PW Technology + required: true + default: 'none' + + # Tunnel Schema Type + + TunnelSchema: + derived_from: sdno.datatypes.Spec + properties: + tunnelTech: + type: string + description: Technology used for the tunnel + constraints: + - valid_values: ['NOP','LDP','RSVP-TE','SR-TE','MPLS-TP','TE-ANY','TE','GRE'] + required: true + default: 'RSVP-TE' + pwTech: + type: PWSpec + description: Technology used for the pseudowire + required: true + tunnelLatency: + type: integer + description: this is integer, format int32, minimum 0 and maximum 60000000 + required: true + default: 0 + tunnelSelectMode: + type: string + description: Tunnel selection mode + constraints: + - valid_values: ['AutoCreate','AutoSelect','ManualSelect','NOP'] + required: true + default: 'AutoSelect' + tunnelCreatePolicy: + type: MplsTESpec + description: Policy for creating the tunnel + required: false + tunnelAutoSelectPolicy: + type: SelectTunnelPolicy + description: Policy for selecting the tunnel + required: false + + PWSpec: + derived_from: sdno.datatypes.Spec + properties: + controlWord: + type: boolean + description: enable control + required: true + default: false + pwVlanAction: + type: string + description: VLAN action on the pseudowire + constraints: + - valid_values: ['Raw','tagged'] + required: true + default: 'Raw' + + + MplsTESpec: + derived_from: sdno.datatypes.Spec + properties: + bestEffort: + type: string + description: max length 200 + required: true + default: 'true' + shareMode: + type: string + description: Tunnel sharing mode + constraints: + - valid_values: ['delegate','1:1','N:1'] + required: true + default: 'N:1' + coRoute: + type: boolean + description: max length 200 + required: true + default: false + bfdEnable: + type: boolean + description: max length 200 + required: true + default: true + pathConstraint: + type: TunnelPathConstraint + description: + required: false + tunnelProtectPolicy: + type: ProtectionSchema + description: + required: false + + TunnelPathConstraint: + derived_from: sdno.datatypes.Spec + properties: + setupPriority: + type: integer + description: format int32, min 0 max 7 + required: true + default: 5 + holdupPriority: + type: integer + description: format int32, min 0 max 7 + required: true + default: 5 + + ProtectionSchema: + derived_from: sdno.datatypes.Spec + properties: + layerRate: + type: string + description: Layer Rate + constraints: + - valid_values: ['LR_Ethernet','LR_IP','LR_Vxlan','LR_PW','LR_NOP','LR_MPLS_TE'] + required: true + default: 'LR_IP' + protectType: + type: string + description: type of protection + constraints: + - valid_values: ['nop','1:1','1+1','hot-standby'] + required: true + default: '1:1' + protectDetailType: + type: string + description: more detailed protection info + required: false + reversionMode: + type: string + description: Reversion Mode + constraints: + - valid_values: ['RM_UNKNOWN','RM_NON_REVERTIVE','RM_REVERTIVE'] + required: true + default: 'RM_REVERTIVE' + wtr: + type: integer + description: format int32 minimum 0, maximum 2592000 + required: true + default: 1 + + SelectTunnelPolicy: + derived_from: sdno.datatypes.Spec + properties: + loadBalanceNum: + type: integer + description: format int32, minimum 1 maximum 64 + required: true + default: 1 + selectTunnels: + type: list + entry_schema: + type: SelectTunnel + description: Tunnel Selection Policy + required: true + + SelectTunnel: + derived_from: sdno.datatypes.Spec + properties: + priority: + type: integer + description: Tunnel priority to be selected, format int32, minimum 1 maximum 3 + required: true + default: 1 + tunnelTech: + type: string + description: tunnel technology to be selected + constraints: + - valid_values: ['NOP','LDP','RSVP-TE','SR-TE','MPLS-TP','TE-ANY','TE','GRE'] + required: true + default: RSVP-TE + + # Path Constraints Type + PathConstraints: + derived_from: sdno.datatypes.Spec + properties: + tunnelConstraints: + type: list + entry_schema: + type: TunnelSpecificPathConstraint + pwConstraints: + type: list + entry_schema: + type: PWSpecPathConstraint + + TunnelSpecificPathConstraint: + derived_from: sdno.datatypes.Spec + properties: + pathConnection: + type: PathConnection + tunnelWorkMode: + type: string + constraints: + - valid_values: ['AutoCreate','AutoSelect','ManualSelect','NOP'] + required: true + tunnelTech: + type: string + constraints: + - valid_values: ['NOP','LDP','RSVP-TE','SR-TE','MPLS-TP','TE-ANY','TE','GRE'] + required: true + bodMode: + type: string + constraints: + - valid_values: ['realBod','renewBod'] + required: true + bandwidth: + type: integer + description: bandwidth int64, minimum 0 and max 4000000000 + required: true + latency: + type: integer + description: bandwidth int64, minimum 0 and max 60000000 + required: true + bindingTunnels: + type: list + entry_schema: + type: string + + PathConnection: + derived_from: sdno.datatypes.Spec + properties: + aObject: + type: ObjectIdentifier + required: true + zObject: + type: ObjectIdentifier + required: true + direction: + type: string + constraints: + - valid_values: ['CD_UNI','CD_BI'] + required: true + +# Object Identifier is currently only used in L3 VPN, should be moved to the common and re-used + ObjectIdentifier: + derived_from: tosca.datatypes.Root + properties: + uuid: + type: string + required: true + # format: maxLen36 + objectId: + type: string + required: true + # format: maxLen36 + roleLabel: + type: string + required: true + objectType: + type: string + constraints: + - valid_values: ['Nop','SEG-VPN','TP','TPL','BUSINESSTYPE','COMPOSED-VPN', 'RESOURCE-POOL', 'SUBNETWORK', 'TUNNEL-LSP'] + required: true + + PWSpecPathConstraint: + derived_from: sdno.datatypes.Spec + properties: + role: + type: string + constraints: + - valid_values: ['master','backup'] + required: true + tunnelWorkMode: + type: string + constraints: + - valid_values: ['AutoCreate','AutoSelect','ManualSelect','NOP'] + required: true + tunnelTech: + type: string + constraints: + - valid_values: ['NOP','LDP','RSVP-TE','SR-TE','MPLS-TP','TE-ANY','TE','GRE'] + required: true + + + # VPN TYPES + + DiffService: + derived_from: sdno.datatypes.Spec + properties: + diffServMode: + type: string + description: mode of diffservice + constraints: + - valid_values: ['Uniform','Pipe','ShortPipe'] + required: true + default: 'Uniform' + serviceClass: + type: string + description: class of service + constraints: + - valid_values: ['BE','AF1','AF2','AF3','AF4','EF','CS6','CS7'] + required: true + default: 'BE' + serviceColor: + type: string + description: Service Color + constraints: + - valid_values: ['Green','Yellow','Red'] + required: true + default: 'Green' + + IpVpnSpec: + derived_from: sdno.datatypes.Spec + properties: + labelMode: + type: string + description: label mode type + constraints: + - valid_values: ['PerInstance','PerRoute'] + required: true + default: 'PerInstance' + frrEnable: + type: boolean + description: frr enable + required: true + default: false + diffServ: + type: DiffService + description: diff service type + required: true + + VpnBasicInfo: + derived_from: sdno.datatypes.Spec + properties: + topology: + type: string + description: type of VPN topology + constraints: + - valid_values: ['full-mesh','point_to_multipoint','point_to_point','singlePoint','hubspoke','hubspoke_via_hubce','hubspoke_disjoint','ADD_DROP_Z'] + required: true + default: 'full-mesh' + serviceType: + type: string + description: type of VPN service + constraints: + - valid_values: ['l3vpn','l2vpn','other'] + required: true + default: 'l3vpn' + + technology: + type: string + description: type of VPN technology + constraints: + - valid_values: ['mpls','rosen multivpn','vxlan overlay l3vpn','eth over sdh','vlan'] + required: true + default: 'mpls' + ipMtu: + type: integer + description: IP MTU, format is int32, minimum 46 and maximum 9600 + required: true + default: 9600 + ipVpnSpec: + type: IpVpnSpec + description: IP VPN Spec + required: false + + # VPN TYPES + + TpTypeSpec: + derived_from: sdno.datatypes.Spec + properties: + layerRate: + type: string + description: Layer Rate + constraints: + - valid_values: ['LR_Ethernet','LR_IP','LR_Vxlan','LR_PW','LR_NOP','LR_MPLS_TE'] + required: true + default: 'LR_IP' + ethernetTpSpec: + required: false + type: EthernetTpSpec + ipTpSpec: + required: false + type: IpTpSpec + + + EthernetTpSpec: + derived_from: sdno.datatypes.Spec + properties: + accessType: + type: string + constraints: + - valid_values: ['dot1q','qinq','untag','default'] + required: true + default: 'default' + vlanAction: + type: string + constraints: + - valid_values: ['nop','untag','pass','pvlan','swap','stacking'] + required: true + default: 'pass' + actionValue: + type: string + required: true + default: 'none' + qinqCvlanList: + type: string + required: true + default: 'none' + qinqSvalList: + type: string + required: true + default: 'none' + dot1qVlanList: + type: string + required: true + default: 'none' + + IpTpSpec: + derived_from: sdno.datatypes.Spec + properties: + masterIp: + type: string + required: true + default: '0.0.0.0' + + CeTp: + derived_from: sdno.datatypes.Spec + properties: + todo: + type: string + required: true + default: 'none' + + + RouteProtocolSpec: + derived_from: sdno.datatypes.Spec + properties: + todo: + type: string + required: true + default: 'none' + + +# ***************************************************************************** +# node types +# ***************************************************************************** + +node_types: + + # ***************************************************************************** + # Underlay VPN Service Endpoints + # ***************************************************************************** + sdno.node.ServiceEndPoint.AC: + description: Attach Circuit + derived_from: sdno.node.ServiceEndPoint + properties: + port: + type: string + required: true + default: '0' + ip: + type: string + required: true + default: '0.0.0.0' + svlan: + type: integer + required: true + default: 0 + route: + type: string + required: true + default: 'none' + peerIp: + type: string + required: true + default: '0.0.0.0' + + # ***************************************************************************** + # Underlay VPN Connectivity Service + # ***************************************************************************** + + sdno.node.ConnectivityService.UnderlayVpn: + derived_from: sdno.node.ConnectivityService + interfaces: + standard: + type: sdno.interfaces.lifecycle.Standard + deploy: + description: "Deploy VPN" + implementation: + # primary: + dependencies: + - sdno.node.Connection.UnderlayVpn/deploy + + requirements: + - endPoint: + node: sdno.node.ServiceEndPoint.AC + capability: sdno.capability.ServiceEndPoint + relationship: sdno.relationship.ServiceEndPoint + occurrences: [2, UNBOUNDED] + - realizes: + node: sdno.node.Connection.UnderlayVpn + capability: sdno.capability.Realizes + relationship: sdno.relationship.RealizedBy + + # ***************************************************************************** + # Underlay VPN Connection Endpoints + # ***************************************************************************** + sdno.node.ConnectionEndPoint.Tp: + description: Attach Circuit + derived_from: sdno.node.ConnectionEndPoint + properties: + neId: + type: string + required: false + edgePointRole: + type: string + description: Role of the edge point + constraints: + - valid_values: [ASBR,nop] + required: false + hubSpoke: + type: string + description: Is the endpoint hub or spoke + constraints: + - valid_values: ['hub','spoke','spokeBridge','other'] + required: true + default: 'spoke' + type: + type: string + description: Type of the TP + constraints: + - valid_values: ['PTP','CTP','TRUNK','LoopBack','NetworkVNode','TPPool','nop'] + required: true + default: 'CTP' + workingLayer: + type: string + description: Working Layer Rate + constraints: + - valid_values: ['LR_Ethernet','LR_IP','LR_Vxlan','LR_PW','LR_NOP','LR_MPLS_TE'] + required: true + default: 'LR_IP' + typeSpecList: + type: list + #max size = 1000 + entry_schema: + type: TpTypeSpec + required: false + peerCpTp: + type: CeTp + required: false + qosProfileId: + type: string + required: false + inboundQosPolicyId: + type: string + required: false + outboundQosPolicyId: + type: string + required: false + inboundQueueProfileId: + type: string + required: false + outboundQueueProfileId: + type: string + required: false + containedMainTP: + type: string + required: false + routeProtocolSpecs: + type: list + #max size = 1000 + entry_schema: + type: RouteProtocolSpec + required: false + direction: + type: string + constraints: + - valid_values: ['IN','OUT','BI_DIRECTION'] + required: true + default: 'BI_DIRECTION' + tpRole: + type: string + constraints: + - valid_values: ['UNI','NNI'] + required: true + default: 'UNI' + + + + # ***************************************************************************** + # VPN Node Types + # ***************************************************************************** + sdno.node.Connection.UnderlayVpn: + derived_from: sdno.node.Connection + properties: + pwSchema: + type: PWSchema + required: false + tunnelSchema: + type: TunnelSchema + required: false + pathConstraints: + type: PathConstraints + required: false + vpnBasicInfo: + type: VpnBasicInfo + required: false + + requirements: + - endPoint: + node: sdno.node.ConnectionEndPoint.Tp + capability: sdno.capability.ConnectionEndPoint + relationship: sdno.relationship.ConnectionEndPoint + occurrences: [2, UNBOUNDED] + + + interfaces: + standard: + type: sdno.interfaces.lifecycle.Standard + create: + #implementation: 'POST /openoapi/sdnol3vpn/v1/l3vpns' + delete: + implementation: 'DELETE /openoapi/sdnol3vpn/v1/l3vpns/{uuid}' + get: + implementation: 'GET /openoapi/sdnol3vpn/v1/l3vpns/{uuid}' + deploy: + implementation: 'POST /openoapi/sdnol3vpn/v1/l3vpns' + undeploy: + implementation: 'DELETE /openoapi/sdnol3vpn/v1/l3vpns/{uuid}' + update: + #implementation: 'PUT /openoapi/sdnol3vpn/v1/l3vpns/{uuid}' + + # ***************************************************************************** + # Underlayvpn Node Types + # ***************************************************************************** + tosca.nodes.sdno.NS.underlayvpn: + properties: + id: + type: string + required: false + template_name: + type: string + required: false + version: + type: string + required: false + vendor: + type: string + required: false + template_author: + type: string + required: false + name: + type: string + required: false + description: + type: string + required: false + serviceType: + type: string + required: false + topology: + type: string + required: false + technology: + type: string + required: false + pe1_ip: + type: string + required: false + ac1_port: + type: string + required: false + ac1_svlan: + type: integer + required: false + ac1_ip: + type: string + required: false + ac1_peer_ip: + type: string + required: false + ac1_route: + type: string + required: false + pe2_ip: + type: string + required: false + ac2_port: + type: string + required: false + ac2_svlan: + type: integer + required: false + ac2_ip: + type: string + required: false + ac2_peer_ip: + type: string + required: false + ac2_route: + type: string + required: false
\ No newline at end of file |