etsi_nfv_sol001_nsd_types.yaml 19 KB
Newer Older
tosca_definitions_version: tosca_simple_yaml_1_2
admin_forge's avatar
admin_forge committed
description: ETSI NFV SOL 001 nsd types definitions version 2.7.1
metadata:
  template_name: etsi_nfv_sol001_nsd_types
  template_author: ETSI_NFV
admin_forge's avatar
admin_forge committed
  template_version: 2.7.1
admin_forge's avatar
admin_forge committed
     - 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


data_types:
  tosca.datatypes.nfv.ServiceAvailability:
    derived_from: tosca.datatypes.Root
admin_forge's avatar
admin_forge committed
    description: service availability 
    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 
  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
        required: false

  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:
        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.
        required: false
      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
admin_forge's avatar
admin_forge committed

  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

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:
admin_forge's avatar
admin_forge committed
      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:
admin_forge's avatar
admin_forge committed
      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:
admin_forge's avatar
admin_forge committed
      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:
admin_forge's avatar
admin_forge committed
      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 
      description: Postamble to the execution of the scale operation
    heal_start:
      description: Preamble to execution of the heal operation
    heal:
admin_forge's avatar
admin_forge committed
      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 
      description: Postamble to the execution of the heal operation
node_types:
  tosca.nodes.nfv.NS:
    derived_from: tosca.nodes.Root
    properties: 
      descriptor_id: 
admin_forge's avatar
admin_forge committed
        type: string # UUID
        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
admin_forge's avatar
admin_forge committed
      invariant_id: # UUID
admin_forge's avatar
admin_forge committed
        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
    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
admin_forge's avatar
admin_forge committed
          occurrences: [0, 1]
      - internal_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
admin_forge's avatar
admin_forge committed
          occurrences: [1, 1]

  tosca.nodes.nfv.NsVirtualLink:
    derived_from: tosca.nodes.Root
    description: node definition of Virtual Links
admin_forge's avatar
admin_forge committed
    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
admin_forge's avatar
admin_forge committed

  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:
    derived_from: tosca.policies.Placement
admin_forge's avatar
admin_forge committed
    description: The NsAffinityRule describes the affinity rules applicable for the defined targets
    properties:
      scope:
        type: string
admin_forge's avatar
admin_forge committed
        description: Specifies the scope of the local affinity rule.
        required: true
        constraints:
          - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
admin_forge's avatar
admin_forge committed
    targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]
admin_forge's avatar
admin_forge committed
  tosca.policies.nfv.NsAntiAffinityRule:
    derived_from: tosca.policies.Placement
admin_forge's avatar
admin_forge committed
    description: The NsAntiAffinityRule describes the anti-affinity rules applicable for the defined targets
    properties:
      scope:
        type: string
admin_forge's avatar
admin_forge committed
        description: Specifies the scope of the local affinity rule..
        required: true
        constraints:
          - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ]
admin_forge's avatar
admin_forge committed
    targets: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS, tosca.groups.nfv.NsPlacementGroup ]
admin_forge's avatar
admin_forge committed
  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:
    derived_from: tosca.policies.Root
admin_forge's avatar
admin_forge committed
    description: policy definition of NfpRule
admin_forge's avatar
admin_forge committed
      ether_destination_address:
        description: Indicates a destination Mac address.
admin_forge's avatar
admin_forge committed
        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.
admin_forge's avatar
admin_forge committed
        type: string
        constraints:
          - valid_values: [ ipv4, ipv6 ]
admin_forge's avatar
admin_forge committed
        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            
admin_forge's avatar
admin_forge committed
        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.
admin_forge's avatar
admin_forge committed
        required: false
      source_port_range:
        description: Indicates a range of source ports.
        type: range
        required: false
        constraints:
admin_forge's avatar
admin_forge committed
          - in_range: [0, 65535]
      destination_port_range:
        description: Indicates a range of destination ports.
        type: range
        required: false
        constraints:
admin_forge's avatar
admin_forge committed
          - 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
admin_forge's avatar
admin_forge committed
      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
admin_forge's avatar
admin_forge committed
          - 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 ]