summaryrefslogtreecommitdiffstats
path: root/docs/refspec/open-o/sdn-nsd/VoLTE_underlayVPN_type_definition.yaml
diff options
context:
space:
mode:
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.yaml756
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