diff options
author | 2017-09-25 16:05:53 -0400 | |
---|---|---|
committer | 2017-09-25 20:34:48 +0000 | |
commit | fbc78ae725bd64fceb5d6acdaaeb2ad5c6f54e59 (patch) | |
tree | fc77cd1075e53e9cf91fec6a99a8afdf0f11dade /docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml | |
parent | fa2d7c391ff2982d580bf34b876c51bddbe6532b (diff) |
On-Board Modelspec to use RTD, convert wiki docs
Create top level docs folder
Move folders and files to docs folder
Create top level index structure
All exist rst files were connected
Convert 2 wiki documents to restructured text (listed in Jira Issue MODELING-22
Change-Id: I6f66524a27c7c19ffdee091f1e3da7f748bb6c1f
Issue-ID: MODELING-22
Signed-off-by: Rich Bennett <rb2745@att.com>
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 |