etsi_nfv_sol001_nsd_types.yaml 33.8 KB
Newer Older
1
tosca_definitions_version: tosca_simple_yaml_1_3
2
description: ETSI NFV SOL 001 nsd types definitions version 3.5.1
3
metadata:
4
  template_name: etsi_nfv_sol001_nsd_types
5
  template_author: ETSI_NFV
6
  template_version: 3.5.1
7 8

imports:
9
     - https://forge.etsi.org/rep/nfv/SOL001/raw/v3.5.1/etsi_nfv_sol001_common_types.yaml
10 11 12
     - https://forge.etsi.org/rep/nfv/SOL001/raw/v3.5.1/etsi_nfv_sol001_vnfd_types.yaml
     - https://forge.etsi.org/rep/nfv/SOL001/raw/v3.5.1/etsi_nfv_sol001_pnfd_types.yaml
# editor's note: During the development of the SOL001ed351 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
13 14

data_types:
15
  tosca.datatypes.nfv.NsVlProfile:
16
    derived_from: tosca.datatypes.Root
17
    description: Describes additional instantiation data for a given NsVirtualLink used in a specific NS deployment flavour.
18
    properties:
19 20 21
      max_bitrate_requirements:
        type: tosca.datatypes.nfv.LinkBitrateRequirements
        description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile.
22
        required: true
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
      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_level:
        type: integer
        description: Specifies the service availability level for the VL instance created from this profile
        required: false 
        constraints:
          - greater_or_equal: 1
      virtual_link_protocol_data:
38
        type: list
39 40
        description: Specifies the protocol data for a virtual link.
        required: false
41
        entry_schema:
42 43 44 45 46 47 48 49 50 51 52
          type: tosca.datatypes.nfv.NsVirtualLinkProtocolData

  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
        constraints:
          - greater_or_equal: 0
        description: Specifies the priority level in case of congestion on the underlying physical links
53
        required: false
54 55 56 57 58 59 60 61

  tosca.datatypes.nfv.NsProfile:
    derived_from: tosca.datatypes.Root
    description: describes a profile for instantiating NSs of a particular NS DF according to a specific NSD and NS DF.
    properties: 
      ns_instantiation_level:
        type: string
        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.
62
        required: false
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
      min_number_of_instances:
        type: integer
        description: Minimum number of instances of the NS based on this NSD that is permitted to exist for this NsProfile.
        required: true
        constraints:
          - greater_or_equal: 0
      max_number_of_instances:
        type: integer
        description: Maximum number of instances of the NS based on this NSD that is permitted to exist for this NsProfile.
        required: true
        constraints:
          - greater_or_equal: 0
      flavour_id:
        type: string
        description: Identifies the applicable network service DF within the scope of the NSD.
        required: true

  tosca.datatypes.nfv.Mask:
81
    derived_from: tosca.datatypes.Root
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
    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:
ETSI CTI's avatar
ETSI CTI committed
102
    derived_from: tosca.datatypes.Root
103
    description: Represents information on virtualised resource related performance metrics applicable to the NS.
ETSI CTI's avatar
ETSI CTI committed
104
    properties:
105 106 107 108 109 110 111
      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. 
ETSI CTI's avatar
ETSI CTI committed
112
        required: true
113 114 115 116 117
        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.
118
        required: false
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179

  tosca.datatypes.nfv.NsVirtualLinkProtocolData:
    derived_from: tosca.datatypes.Root
    description: describes one protocol layer and associated protocol data for a given virtual link used in a specific NS deployment flavour
    properties:
      associated_layer_protocol:
         type: string
         description: Identifies one of the protocols a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire) as specified by the connectivity_type property.
         required: true
         constraints:
           - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
      l2_protocol_data:
         type: tosca.datatypes.nfv.NsL2ProtocolData
         description: Specifies the L2 protocol data for a virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L2 protocol and shall be absent otherwise.
         required: false
      l3_protocol_data:
         type: tosca.datatypes.nfv.NsL3ProtocolData
         description: Specifies the L3 protocol data for this virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L3 protocol and shall be absent otherwise.
         required: false

  tosca.datatypes.nfv.NsL2ProtocolData:
    derived_from: tosca.datatypes.Root
    description: describes L2 protocol data for a given virtual link used in a specific NS deployment flavour.
    properties:
      name:
        type: string
        description: Identifies the network name associated with this L2 protocol.
        required: false
      network_type:
        type: string
        description: Specifies the network type for this L2 protocol. The value may be overridden at run-time.
        required: false
        constraints:
          - valid_values: [ flat, vlan, vxlan, gre ]
      vlan_transparent:
        type: boolean
        description: Specifies whether to support VLAN transparency for this L2 protocol or not.
        required: false
        default: false
      mtu:
        type: integer
        description: Specifies the maximum transmission unit (MTU) value for this L2 protocol.
        required: false
        constraints:
          - greater_than: 0 
      segmentation_id:
        type: string
        description: Specifies a specific virtualised network segment, which depends on the network type. For e.g., VLAN ID for VLAN network type and tunnel ID for GRE/VXLAN network types
        required: false

  tosca.datatypes.nfv.NsL3ProtocolData:
    derived_from: tosca.datatypes.Root
    description: describes L3 protocol data for a given virtual link used in a specific NS deployment flavour.
    properties:
      name:
        type: string
        description: Identifies the network name associated with this L3 protocol.
        required: false
      ip_version:
        type: string
        description: Specifies IP version of this L3 protocol. The value of the ip_version property shall be consistent with the value of the layer_protocol in the connectivity_type property of the virtual link node.
ETSI CTI's avatar
ETSI CTI committed
180
        required: true
181 182 183 184 185 186 187 188 189
        constraints:
          - valid_values: [ ipv4, ipv6 ]
      cidr:
        type: string
        description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time.
        required: true  
      ip_allocation_pools:
        type: list
        description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time.
ETSI CTI's avatar
ETSI CTI committed
190
        required: false
191 192 193 194 195 196 197 198 199 200 201 202 203 204
        entry_schema:
          type: tosca.datatypes.nfv.NsIpAllocationPool

  tosca.datatypes.nfv.NsIpAllocationPool:
    derived_from: tosca.datatypes.Root
    description: Specifies a range of IP addresses
    properties:
      start_ip_address:
        type: string
        description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range
        required: true
      end_ip_address:
        type: string
        description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range
205
        required: true
206

207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 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 337 338 339 340 341 342 343
  tosca.datatypes.nfv.NsScalingAspect:
    derived_from: tosca.datatypes.Root
    description: describes the details of an aspect used for horizontal scaling
    properties:
      name:
        type: string
        description: Human readable name of the aspect
        required: true
      description:
        type: string
        description: Human readable description of the aspect
        required: true
      ns_scale_levels: 
        type: map
        description: Description of the NS levels for this scaling aspect.
        required: true
        key_schema: 
          type: integer # Integer type in order to number the levels. First level is level 0.
        entry_schema:
          type: tosca.datatypes.nfv.NsLevels

  tosca.datatypes.nfv.NsLevels:
    derived_from: tosca.datatypes.Root
    description: describes the Ns levels
    properties:
      description:
        type: string
        description: Human readable description of the Ns level
        required: true

  tosca.datatypes.nfv.scaleNsByStepsData:
    derived_from: tosca.datatypes.Root
    description: describes the information needed to scale an NS instance by one or more scaling steps, with respect to a particular NS scaling aspect
    properties:
      scaling_direction:
        type: string
        description: Indicates the type of the scale operation requested.
        required: true
        constraints:
          - valid_values: [ scale_out, scale_in ]
      aspect:
        type: string
        description: Identifier of the scaling aspect.
        required: true
      number_of_steps:
        type: integer
        description: Number of scaling steps to be executed.
        required: true
        constraints:
          - greater_than: 0
        default: 1

  tosca.datatypes.nfv.scaleNsToLevelData:
    derived_from: tosca.datatypes.Root
    description: describes the information needed to scale an NS instance to a target size.
    properties:
      instantiation_level:
        type: string
        description: Identifier of the target instantiation level of the current deployment flavour to which the NS is requested to be scaled. Either instantiation_level or ns_scale_info shall be provided.
        required: false
      ns_scale_info:
        type: map # key: aspectId
        description: For each scaling aspect of the current deployment flavour, indicates the target scale level to which the NS is to be scaled. Either instantiation_level or ns_scale_info shall be provided.
        required: false
        entry_schema:
          type: integer
        
capability_types:
  tosca.capabilities.nfv.Forwarding:
    derived_from: tosca.capabilities.Root

relationship_types:
  tosca.relationships.nfv.ForwardTo:
    derived_from: tosca.relationships.Root
    valid_target_types: [ tosca.capabilities.nfv.Forwarding ]

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.
    operations:
      instantiate_start:
        description: Preamble to execution of the instantiate operation
      instantiate:
        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 
      instantiate_end:
        description: Postamble to the execution of the instantiate operation
      terminate_start:
        description: Preamble to execution of the terminate operation
      terminate:
        description: Base procedure for terminating an NS, corresponding to the Terminate NS operation defined in ETSI GS NFV-IFA 013. 
      terminate_end:
        description: Postamble to the execution of the terminate operation
      update_start:
        description: Preamble to execution of the update operation
      update:
        description: Base procedure for updating an NS, corresponding to the Update NS operation defined in ETSI GS NFV-IFA 013. 
      update_end:
        description: Postamble to the execution of the update operation
      scale_start:
        description: Preamble to execution of the scale operation
      scale:
        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 
        inputs:
          scale_ns_by_steps_data:
            type: tosca.datatypes.nfv.scaleNsByStepsData
            description: Describes the information needed to scale an NS instance by one or more scaling steps, with respect to a particular NS scaling aspect as defined in ETSI GS NFV-IFA 013. Either scale_ns_by_steps_data or scale_ns_to_level_data shall be provided.
            required: false
          scale_ns_to_level_data:
            type: tosca.datatypes.nfv.scaleNsToLevelData
            description: Describes the information needed to scale an NS instance to a target size as defined in ETSI GS NFV-IFA 013. Either scale_ns_by_steps_data or scale_ns_to_level_data shall be provided.
            required: false          
      scale_end:
        description: Postamble to the execution of the scale operation
      heal_start:
        description: Preamble to execution of the heal operation
      heal:
        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 
      heal_end:
        description: Postamble to the execution of the heal operation
        
  tosca.interfaces.nfv.NsVnfIndicator:
    derived_from: tosca.interfaces.Root
    description: This interface is an empty base interface type for deriving NS specific interface types that include VNF indicator specific notifications which will be used in a NS.

344
node_types:
345
  tosca.nodes.nfv.NS:
346 347
    derived_from: tosca.nodes.Root
    properties: 
348 349 350 351 352 353 354 355
      descriptor_id: 
        type: string # UUID
        description: Identifier of this NS descriptor
        required: true
      designer:
        type: string
        description: Identifies the designer of the NSD.
        required: true
356
      version:
357 358 359
        type: string
        description: Identifies the version of the NSD.
        required: true
360
      name:
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393
        type: string
        description: Provides the human readable name of the NSD.
        required: true
      invariant_id: # UUID
        type: string
        description: Identifies an NSD in a version independent manner. This attribute is invariant across versions of NSD
        required: true
      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
      service_availability_level:
        type: integer
        description: Specifies the service availability level for the NS instance.
        required: false
        constraints:
          - greater_or_equal: 1
      priority:
        type: integer
        description: Specifies the priority for the NS instance. Examples for the usage of priority include conflict resolution in case of resource shortage.
        required: false
        constraints:
          - greater_or_equal: 0
    attributes:
      scale_status:
        type: map # key: aspectId
        description: Scale status of the NS, one entry per aspect. Represents for every scaling aspect how "big" the NS has been scaled w.r.t. that aspect.
        entry_schema:
          type: integer
394 395 396 397
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
398
          node: tosca.nodes.nfv.NsVirtualLink
399
          occurrences: [ 0, 1 ]
400 401 402
    interfaces:
      Nslcm:
        type: tosca.interfaces.nfv.Nslcm
403

404
  tosca.nodes.nfv.Sap:
405
    derived_from: tosca.nodes.nfv.Cp
406
    description: node definition of SAP.
407 408 409 410
    requirements:
      - external_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
ETSI CTI's avatar
ETSI CTI committed
411
          occurrences: [0, 1]
412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
      - internal_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
          occurrences: [1, 1]

  tosca.nodes.nfv.NsVirtualLink:
    derived_from: tosca.nodes.Root
    description: node definition of Virtual Links
    properties: 
      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

  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 ]

ETSI CTI's avatar
ETSI CTI committed
526 527

policy_types:
528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552
  tosca.policies.nfv.NsAffinityRule:
    derived_from: tosca.policies.Placement
    description: The NsAffinityRule describes the affinity rules applicable for the defined targets
    properties:
      scope:
        type: string
        description: Specifies the scope of the local affinity rule.
        required: true
        constraints:
          - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop, network_link_and_node ]
    targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]

  tosca.policies.nfv.NsAntiAffinityRule:
    derived_from: tosca.policies.Placement
    description: The NsAntiAffinityRule describes the anti-affinity rules applicable for the defined targets
    properties:
      scope:
        type: string
        description: Specifies the scope of the local affinity rule..
        required: true
        constraints:
          - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop, network_link_and_node ]
    targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]

  tosca.policies.nfv.NsSecurityGroupRule:
ETSI CTI's avatar
ETSI CTI committed
553
    derived_from: tosca.policies.nfv.Abstract.SecurityGroupRule
554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781
    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:
    derived_from: tosca.policies.Root
    description: policy definition of NfpRule
    properties:
      ether_destination_address:
        description: Indicates a destination Mac address.
        type: string
        required: false    
      ether_source_address:
        description: Indicates a source Mac address.
        type: string
        required: false
      ether_type:
        description: Indicates the protocol carried over the Ethernet layer.
        type: string
        constraints:
          - valid_values: [ ipv4, ipv6 ]
        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            
      protocol:
        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.
        type: string
        required: false
      source_port_range:
        description: Indicates a range of source ports.
        type: range
        required: false
        constraints:
          - in_range: [0, 65535]
      destination_port_range:
        description: Indicates a range of destination ports.
        type: range
        required: false
        constraints:
          - 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
        required: false
      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: map #key: id
        description: Specifies a virtualised resource related performance metric to be monitored on the NS level.
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.NsMonitoringParameter
        constraints:
          - 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: map #key: id
        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 ]

  tosca.policies.nfv.NsScalingAspects:
    derived_from: tosca.policies.Root
    description: The ScalingAspects type is a policy type representing the scaling aspects used for horizontal scaling as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      aspects:
        type: map # key: aspectId
        description: Describe the details of a particular aspect including the corresponding NS levels.
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.NsScalingAspect
        constraints:
          - min_length: 1

  tosca.policies.nfv.VnfToLevelMapping:
    derived_from: tosca.policies.Root
    description: The VnfToLevelMapping type is a policy type representing the number of VNF instances to be deployed at each NS level, as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      aspect:
        type: string
        description: Represents the scaling aspect to which this policy applies
        required: true
      number_of_instances:
        type: map # key: Ns level
        description: Number of VNF instances to be deployed for each NS level.
        required: true
        key_schema: 
          type: integer # First level is level 0.
        entry_schema:
          type: integer  
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.VNF ]

  tosca.policies.nfv.NsToLevelMapping:
    derived_from: tosca.policies.Root
    description: The NsToLevelMapping type is a policy type representing the number of NS instances of a nested NS to be deployed at each NS level of the composite NS, as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      aspect:
        type: string
        description: Represents the scaling aspect to which this policy applies
        required: true
      number_of_instances:
        type: map # key: Ns level
        description: Number of NS instances of a nested NS to be deployed for each NS level of the composite NS.
        required: true
        key_schema: 
          type: integer # First level is level 0.
        entry_schema:
          type: integer 
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.NS ]

  tosca.policies.nfv.VirtualLinkToLevelMapping:
    derived_from: tosca.policies.Root
    description: The VirtualLinkToLevelMapping type is a policy type representing the number of NS instances of a nested NS to be deployed at each NS level of the composite NS, as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      aspect:
        type: string
        description: Represents the scaling aspect to which this policy applies
        required: true
      bit_rate_requirements:
        type: map # key: Ns level
        description: Bitrate requirements of a VL for each NS level.
        required: true
        key_schema:
          type: integer # First level is level 0.
        entry_schema:
          type: tosca.datatypes.nfv.LinkBitrateRequirements 
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.NsVirtualLink ]

  tosca.policies.nfv.NsInstantiationLevels:
    derived_from: tosca.policies.Root
    description: The NsInstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour and including default instantiation level in term of the number of VNF and nested NS instances to be created as defined in ETSI GS NFV-IFA 014 [2].
    properties:
      ns_levels:
        type: map # key: levelId
        description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour.
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.NsLevels
        constraints:
          - min_length: 1
      default_level:
        type: string # levelId
        description: The default instantiation level for this flavour.
        required: false # required if multiple entries in ns_levels

  tosca.policies.nfv.VnfToInstantiationLevelMapping:
    derived_from: tosca.policies.Root
    description: The VnfToInstantiationLevelMapping type is a policy type representing the number of VNF instances to be deployed at each NS instantiation level, as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      number_of_instances:
        type: map # key: Ns instantiation level
        description: Number of VNF instances to be deployed for each NS instantiation level.
        required: true
        entry_schema:
          type: integer
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.VNF ]

  tosca.policies.nfv.NsToInstantiationLevelMapping:
    derived_from: tosca.policies.Root
    description: The NsToInstantiationLevelMapping type is a policy type representing the number of NS instances of a nested NS to be deployed at each NS instantiation level of the composite NS, as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      number_of_instances:
        type: map # key: Ns instantiation level
        description: Number of NS instances of a nested NS to be deployed for each NS instantiation level of the composite NS.
        required: true
        entry_schema:
          type: integer 
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.NS ]

  tosca.policies.nfv.VirtualLinkToInstantiationLevelMapping:
    derived_from: tosca.policies.Root
    description: The VirtualLinkToInstantiationLevelMapping type is a policy type describing the bitrate requirements of a VL at each NS instantiation level of the composite NS, as defined in ETSI GS NFV-IFA 014 [2]
    properties:
      bit_rate_requirements:
        type: map # key: Ns instantiation level
        description: Bitrate requirements of a VL for each NS instantiation level.
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.LinkBitrateRequirements 
        constraints:
          - min_length: 1
    targets: [ tosca.nodes.nfv.NsVirtualLink ]

  tosca.policies.nfv.NsAutoScale:
    derived_from: tosca.policies.Root
    description: The NsAutoScale policy type is a base policy type for defining NS auto-scale specific policies as defined in ETSI GS NFV-IFA 014 [2].
    targets: [ tosca.nodes.nfv.NS ]