etsi_nfv_sol001_nsd_types.yaml 19 KB
Newer Older
1
tosca_definitions_version: tosca_simple_yaml_1_2
ETSI CTI's avatar
ETSI CTI committed
2
description: ETSI NFV SOL 001 nsd types definitions version 2.7.1
3
4
5
metadata:
  template_name: etsi_nfv_sol001_nsd_types
  template_author: ETSI_NFV
ETSI CTI's avatar
ETSI CTI committed
6
  template_version: 2.7.1
7
8

imports:
ETSI CTI's avatar
ETSI CTI committed
9
10
11
     - https://forge.etsi.org/rep/nfv/SOL001/raw/v2.7.1/etsi_nfv_sol001_common_types.yaml
     # editor's note: During the development of the SOL001ed271 GS, to enable this file to be verified by a TOSCA parser, the imports statement has to be replaced with a reference to a local copy of the common definitions YAML file

12
13
14
15

data_types:
  tosca.datatypes.nfv.ServiceAvailability:
    derived_from: tosca.datatypes.Root
ETSI CTI's avatar
ETSI CTI committed
16
    description: service availability 
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    properties:
      level:
        type: string
        description: service availability levels
        required: true
        constraints:
          - valid_values: [ level1, level2, level3 ]

  tosca.datatypes.nfv.NsVlProfile:
    derived_from: tosca.datatypes.Root
    description: Describes additional instantiation data for a given NsVirtualLink used in a specific NS deployment flavour.
    properties:
      max_bitrate_requirements:
        type: tosca.datatypes.nfv.LinkBitrateRequirements
        description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
        required: true
      min_bitrate_requirements:
        type: tosca.datatypes.nfv.LinkBitrateRequirements
        description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile.
        required: true
      qos:
        type: tosca.datatypes.nfv.NsVirtualLinkQos
        description: Specifies the QoS requirements of a VL instantiated according to this profile.
        required: false
      service_availability:
        type: tosca.datatypes.nfv.ServiceAvailability
        description: Network service virtual link service availability levels, as described in ETSI GS NFV-REL 001
        required: false 
ETSI CTI's avatar
ETSI CTI committed
45

46
47
48
49
50
51
  tosca.datatypes.nfv.NsVirtualLinkQos:
    derived_from: tosca.datatypes.nfv.Qos
    description: describes QoS data for a given VL used in a VNF deployment flavour 
    properties:
      priority:
        type: integer
52
53
        constraints:
          - greater_or_equal: 0
54
55
56
        description: Specifies the priority level in case of congestion on the underlying physical links
        required: false

57
  tosca.datatypes.nfv.NsProfile:
58
    derived_from: tosca.datatypes.Root
59
60
61
    description: describes a profile for instantiating NSs of a particular NS DF according to a specific NSD and NS DF.
    properties: 
      ns_instantiation_level:
62
        type: string
63
        description: Identifier of the instantiation level of the NS DF to be used for instantiation. If not present, the default instantiation level as declared in the NSD shall be used.
64
65
66
        required: false
      min_number_of_instances:
        type: integer
67
        description: Minimum number of instances of the NS based on this NSD that is permitted to exist for this NsProfile.
68
69
70
71
72
        required: true
        constraints:
          - greater_or_equal: 0
      max_number_of_instances:
        type: integer
73
        description: Maximum number of instances of the NS based on this NSD that is permitted to exist for this NsProfile.
74
75
76
        required: true
        constraints:
          - greater_or_equal: 0
77
78
79
      flavour_id:
        type: string
        description: Identifies the applicable network service DF within the scope of the NSD.
80
        required: true
ETSI CTI's avatar
ETSI CTI committed
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

  tosca.datatypes.nfv.Mask:
    derived_from: tosca.datatypes.Root
    properties:  
      starting_point: 
        description: Indicates the offset between the last bit of the source mac address and the first bit of the sequence of bits to be matched.
        type: integer
        required: true    
      length: 
        description: Indicates the number of bits to be matched.
        type: integer
        required: true
      value:
        description: Provide the sequence of bit values to be matched.
        type: string
        required: true 

  tosca.datatypes.nfv.NsOperationAdditionalParameters:
    derived_from: tosca.datatypes.Root
    description: Is an empty base type for deriving data types for describing NS-specific additional parameters to be passed when invoking NS lifecycle management operations 
    #properties:
 
  tosca.datatypes.nfv.NsMonitoringParameter:
    derived_from: tosca.datatypes.Root
    description: Represents information on virtualised resource related performance metrics applicable to the NS.
    properties:
      name:
        type: string
        description: Human readable name of the monitoring parameter
        required: true
      performance_metric:
        type: string
        description: Identifies a performance metric to be monitored, according to ETSI GS NFV-IFA 027. 
        required: true
        constraints:
           - valid_values: [byte_incoming_sap, byte_outgoing_sap, packet_incoming_sap, packet_outgoing_sap, byte_incoming, byte_outgoing, packet_incoming, packet_outgoing ] 
      collection_period:  
        type: scalar-unit.time
        description: Describes the periodicity at which to collect the performance information.
        required: false

122
123
124
125
126
127
128
interface_types:
  tosca.interfaces.nfv.Nslcm:
    derived_from: tosca.interfaces.Root
    description: This interface encompasses a set of TOSCA operations corresponding to NS LCM operations defined in ETSI GS NFV-IFA 013. as well as to preamble and postamble procedures to the execution of the NS LCM operations.
    instantiate_start:
      description: Preamble to execution of the instantiate operation
    instantiate:
ETSI CTI's avatar
ETSI CTI committed
129
130
131
132
133
      description: Base procedure for instantiating an NS, corresponding to the Instantiate NS operation defined in ETSI GS NFV-IFA 013.
      # inputs:
        # additional_parameters:
        #   type: tosca.datatypes.nfv.NsOperationAdditionalParameters
        #   required: false 
134
135
136
137
138
    instantiate_end:
      description: Postamble to the execution of the instantiate operation
    terminate_start:
      description: Preamble to execution of the terminate operation
    terminate:
ETSI CTI's avatar
ETSI CTI committed
139
      description: Base procedure for terminating an NS, corresponding to the Terminate NS operation defined in ETSI GS NFV-IFA 013. 
140
    terminate_end:
141
142
143
144
      description: Postamble to the execution of the terminate operation
    update_start:
      description: Preamble to execution of the update operation
    update:
ETSI CTI's avatar
ETSI CTI committed
145
      description: Base procedure for updating an NS, corresponding to the Update NS operation defined in ETSI GS NFV-IFA 013. 
146
147
148
149
150
    update_end:
      description: Postamble to the execution of the update operation
    scale_start:
      description: Preamble to execution of the scale operation
    scale:
ETSI CTI's avatar
ETSI CTI committed
151
152
153
154
155
      description: Base procedure for scaling an NS, corresponding to the Scale NS operation defined in ETSI GS NFV-IFA 013.
      # inputs:
        # additional_parameters:
        #   type: tosca.datatypes.nfv.NsOperationAdditionalParameters
        #   required: false 
156
    scale_end:
157
158
159
160
      description: Postamble to the execution of the scale operation
    heal_start:
      description: Preamble to execution of the heal operation
    heal:
ETSI CTI's avatar
ETSI CTI committed
161
162
163
164
165
      description: Base procedure for healing an NS, corresponding to the Heal NS operation defined in ETSI GS NFV-IFA 013.
      # inputs:
        # additional_parameters:
        #   type: tosca.datatypes.nfv.NsOperationAdditionalParameters
        #   required: false 
166
    heal_end:
167
      description: Postamble to the execution of the heal operation
168

169
170
171
172
173
node_types:
  tosca.nodes.nfv.NS:
    derived_from: tosca.nodes.Root
    properties: 
      descriptor_id: 
ETSI CTI's avatar
ETSI CTI committed
174
        type: string # UUID
175
176
177
178
179
180
181
182
183
184
185
186
187
188
        description: Identifier of this NS descriptor
        required: true
      designer:
        type: string
        description: Identifies the designer of the NSD.
        required: true
      version:
        type: string
        description: Identifies the version of the NSD.
        required: true
      name:
        type: string
        description: Provides the human readable name of the NSD.
        required: true
ETSI CTI's avatar
ETSI CTI committed
189
      invariant_id: # UUID
190
        type: string
ETSI CTI's avatar
ETSI CTI committed
191
        description: Identifies an NSD in a version independent manner. This attribute is invariant across versions of NSD
192
        required: true
193
194
195
196
197
198
199
200
      flavour_id:
        type: string
        description: Identifier of the NS Deployment Flavour within the NSD
        required: true
      ns_profile:
        type: tosca.datatypes.nfv.NsProfile
        description: Specifies a profile of a NS, when this NS is used as nested NS within another NS.
        required: false
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
          node: tosca.nodes.nfv.NsVirtualLink
          occurrences: [ 0, 1 ]
    interfaces:
      Nslcm:
        type: tosca.interfaces.nfv.Nslcm

  tosca.nodes.nfv.Sap:
    derived_from: tosca.nodes.nfv.Cp
    description: node definition of SAP.
    requirements:
      - external_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
ETSI CTI's avatar
ETSI CTI committed
218
          occurrences: [0, 1]
219
220
221
      - internal_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
ETSI CTI's avatar
ETSI CTI committed
222
          occurrences: [1, 1]
223
224
225
226

  tosca.nodes.nfv.NsVirtualLink:
    derived_from: tosca.nodes.Root
    description: node definition of Virtual Links
ETSI CTI's avatar
ETSI CTI committed
227
    properties: 
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
      vl_profile:
        type: tosca.datatypes.nfv.NsVlProfile # only covers min/max bitrate requirements
        description: Specifies instantiation parameters for a virtual link of a particular NS deployment flavour.
        required: true
      connectivity_type:
        type: tosca.datatypes.nfv.ConnectivityType
        required: true
      test_access:
        type: list
        description: Test access facilities available on the VL 
        required: false
        entry_schema:
          type: string
          constraints:
            - valid_values: [ passive_monitoring, active_loopback ]
      description:
        type: string
        required: false
        description: Human readable information on the purpose of the virtual link (e.g. VL for control plane traffic).
    capabilities:
      virtual_linkable:
        type: tosca.capabilities.nfv.VirtualLinkable
ETSI CTI's avatar
ETSI CTI committed
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336

  tosca.nodes.nfv.NfpPositionElement:
    derived_from: tosca.nodes.Root
    description: node definition of NfpPositionElement
    capabilities:
      forwarding: 
        type: tosca.capabilities.nfv.Forwarding
    requirements:
      - profile_element:
          capability: tosca.capabilities.nfv.Forwarding
          relationship: tosca.relationships.nfv.ForwardTo
          occurrences: [ 1, 2 ] # When the number of occurrences is 1, the ingress and egress traffic is associated to a single VnfExtCp or Sap; When the number of occurrences is 2, the ingress VnfExtCp or Sap is associated to the first value and the egress VnfExtCp or Sap is associated to the second value.

  tosca.nodes.nfv.NfpPosition:
    derived_from: tosca.nodes.Root
    description: node definition of NFP position
    properties:
      forwarding_behaviour: 
        type: string
        description: Identifies a rule to apply to forward traffic to CP or SAP instances corresponding to the referenced NfpPositionElement(s). 
        constraints:
          - valid_values: [ all, lb, ff ]
        required: false
#     forwarding_behaviour_input_parameters: 
#       description: Provides input parameters to configure the forwarding behaviour.
#       type: map
#       required: false
#       entry_schema:
#         type: strin

    capabilities:
      forwarding: 
        type: tosca.capabilities.nfv.Forwarding
    requirements:
      - element:
          capability: tosca.capabilities.nfv.Forwarding
          node: tosca.nodes.nfv.NfpPositionElement
          relationship: tosca.relationships.nfv.ForwardTo
          occurrences: [ 1, UNBOUNDED ]

  tosca.nodes.nfv.NFP:
    derived_from: tosca.nodes.Root
    description: node definition of NFP
    requirements:
      - nfp_position:
          capability: tosca.capabilities.nfv.Forwarding
          node: tosca.nodes.nfv.NfpPosition
          relationship: tosca.relationships.nfv.ForwardTo
          occurrences: [ 1, UNBOUNDED ]

  tosca.nodes.nfv.Forwarding:
    derived_from: tosca.nodes.Root
    capabilities:
      virtual_linkable:
        type: tosca.capabilities.nfv.VirtualLinkable
      forwarding:
        type: tosca.capabilities.nfv.Forwarding
        occurrences: [ 1, 2 ]  #When the number of occurrences is 1, the ingress and egress traffic is associated to a single VnfExtCp, PnfExtCp or Sap; When the number of occurrences is 2, the ingress VnfExtCp, PnfExtCp or Sap is associated to the first value and the egress VnfExtCp, PnfExtCp or Sap is associated to the second value.
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo

group_types:
  tosca.groups.nfv.NsPlacementGroup:
    derived_from: tosca.groups.Root
    description: NsPlacementGroup is used for describing the affinity or anti-affinity relationship applicable between VNF instances created using different VNFDs, the Virtual Link instances created using different VLDs or the nested NS instances created using different NSDs when used in a NSD.
    properties:
      description:
        type: string
        description: Human readable description of the group
        required: true
    members: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS]

  tosca.groups.nfv.VNFFG:
    derived_from: tosca.groups.Root
    description: the VNFFG group type describes a topology of the NS or a portion of the NS, and optionally forwarding rules, applicable to the traffic conveyed over this topology
    properties:
      description:
        type: string
        description: Human readable description of the group
        required: true
    members: [ tosca.nodes.nfv.NFP, tosca.nodes.nfv.VNF, tosca.nodes.nfv.PNF, tosca.nodes.nfv.NS, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NfpPositionElement ]


policy_types:
  tosca.policies.nfv.NsAffinityRule:
337
    derived_from: tosca.policies.Placement
ETSI CTI's avatar
ETSI CTI committed
338
    description: The NsAffinityRule describes the affinity rules applicable for the defined targets
339
340
341
    properties:
      scope:
        type: string
ETSI CTI's avatar
ETSI CTI committed
342
        description: Specifies the scope of the local affinity rule.
343
344
345
        required: true
        constraints:
          - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
ETSI CTI's avatar
ETSI CTI committed
346
    targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]
347

ETSI CTI's avatar
ETSI CTI committed
348
  tosca.policies.nfv.NsAntiAffinityRule:
349
    derived_from: tosca.policies.Placement
ETSI CTI's avatar
ETSI CTI committed
350
    description: The NsAntiAffinityRule describes the anti-affinity rules applicable for the defined targets
351
352
353
    properties:
      scope:
        type: string
ETSI CTI's avatar
ETSI CTI committed
354
        description: Specifies the scope of the local affinity rule..
355
356
357
        required: true
        constraints:
          - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
ETSI CTI's avatar
ETSI CTI committed
358
    targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]
359

ETSI CTI's avatar
ETSI CTI committed
360
361
362
363
364
365
  tosca.policies.nfv.NsSecurityGroupRule:
    derived_from: tosca.policies.nfv.Abstract.SecurityGroupRule
    description: The NsSecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited SAPs.
    targets: [ tosca.nodes.nfv.Sap ]

  tosca.policies.nfv.NfpRule:
366
    derived_from: tosca.policies.Root
ETSI CTI's avatar
ETSI CTI committed
367
    description: policy definition of NfpRule
368
    properties:
ETSI CTI's avatar
ETSI CTI committed
369
370
      ether_destination_address:
        description: Indicates a destination Mac address.
371
        type: string
ETSI CTI's avatar
ETSI CTI committed
372
373
374
        required: false    
      ether_source_address:
        description: Indicates a source Mac address.
375
376
377
378
        type: string
        required: false
      ether_type:
        description: Indicates the protocol carried over the Ethernet layer.
ETSI CTI's avatar
ETSI CTI committed
379
        type: string
380
381
        constraints:
          - valid_values: [ ipv4, ipv6 ]
ETSI CTI's avatar
ETSI CTI committed
382
383
384
385
386
387
388
        required: false
      vlan_tag:
        description: Indicates a VLAN identifier in an IEEE 802.1Q-2014 tag [14]. Multiple tags can be included for QinQ stacking.
        type: list
        entry_schema:
          type: string
        required: false            
389
      protocol:
ETSI CTI's avatar
ETSI CTI committed
390
391
392
393
394
        description: 'Indicates the L4 protocol, For IPv4 [15] this corresponds to the field called "Protocol" to identify the next level protocol. For IPv6 [16] this corresponds to the field is called the "Next Header" field. Permitted values: Any keyword defined in the IANA [17] protocol registry.'
        type: string
        required: false
      dscp:
        description: For IPv4 [15] a string of "0" and "1" digits that corresponds to the 6-bit Differentiated Services Code Point (DSCP) field of the IP header. For IPv6 [16] a string of "0" and "1" digits that corresponds to the 6 differentiated services bits of the traffic class header field.
395
        type: string
ETSI CTI's avatar
ETSI CTI committed
396
397
398
399
        required: false
      source_port_range:
        description: Indicates a range of source ports.
        type: range
400
401
        required: false
        constraints:
ETSI CTI's avatar
ETSI CTI committed
402
403
404
405
          - in_range: [0, 65535]
      destination_port_range:
        description: Indicates a range of destination ports.
        type: range
406
407
        required: false
        constraints:
ETSI CTI's avatar
ETSI CTI committed
408
409
410
411
412
413
414
415
          - in_range: [0, 65535]
      source_ip_address_prefix:
        description: Indicates the source IP address range in CIDR format.
        type: string
        required: false   
      destination_ip_address_prefix:
        description: Indicates the destination IP address range in CIDR format.
        type: string
416
        required: false
ETSI CTI's avatar
ETSI CTI committed
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
      extended_criteria:
        description: Indicates values of specific bits in a frame.
        type: list
        entry_schema:
          type: tosca.datatypes.nfv.Mask
        required: false
    targets: [ tosca.nodes.nfv.NFP ]

  tosca.policies.nfv.NsMonitoring:
    derived_from: tosca.policies.Root
    description: Policy type is used to identify information to be monitored during the lifetime of a network service instance as defined in ETSI GS NFV-IFA 014 [2].
    properties:
      ns_monitoring_parameters:
        type: list
        description: Specifies a virtualised resource related performance metric to be monitored on the NS level.
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.NsMonitoringParameter
435
        constraints:
ETSI CTI's avatar
ETSI CTI committed
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
          - min_length: 1
    targets: [ tosca.nodes.nfv.NS ]

  tosca.policies.nfv.VnfMonitoring:
    derived_from: tosca.policies.Root
    description: Policy type is used to identify information to be monitored during the lifetime of a VNF instance as defined in ETSI GS NFV-IFA 014 [2].
    properties:
      vnf_monitoring_parameters:
        type: list
        description: Specifies a virtualised resource related performance metric to be monitored on the NS level.
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.VnfMonitoringParameter
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.VNF ]