etsi_nfv_sol001_pnfd_2_5_1_types.yaml 10.7 KB
Newer Older
tosca_definitions_version: tosca_simple_yaml_1_2
description: ETSI NFV SOL 001 pnfd types definitions version 2.5.1

imports:
  - etsi_nfv_sol001_vnfd_2_5_1_types.yaml

data_types:  
  tosca.datatypes.nfv.L2AddressData:
    derived_from: tosca.datatypes.Root
    description: Describes the information on the MAC addresses to be assigned to a connection point. 
    properties:
      mac_address_assignment:
        type: boolean
        description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility
        required: true 
  
  tosca.datatypes.nfv.L3AddressData:
    derived_from: tosca.datatypes.Root
    description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP 
    properties:
      ip_address_assignment:
        type: boolean
        description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility
        required: true
      floating_ip_activated:
        type: boolean
        description: Specifies if the floating IP scheme is activated on the Connection Point or not 
        required: true
      ip_address_type:
        type: string
        description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp
        required: false
        constraints:
          - valid_values: [ ipv4, ipv6 ]
      number_of_ip_address:
        type: integer
        description: Minimum number of IP addresses to be assigned 
        required: false
        constraints:
          - greater_than: 0

  tosca.datatypes.nfv.AddressData:
    derived_from: tosca.datatypes.Root
    description: Describes information about the addressing scheme and parameters applicable to a CP 
    properties:
      address_type:
        type: string
        description: Describes the type of the address to be assigned to a connection point. The content type shall be aligned with the address type supported by the layerProtocol property of the connection point
        required: true
        constraints:
          - valid_values: [ mac_address, ip_address ]
      l2_address_data:
        type: tosca.datatypes.nfv.L2AddressData
        description: Provides the information on the MAC addresses to be assigned to a connection point.
        required: false
      l3_address_data:
        type: tosca.datatypes.nfv.L3AddressData
        description: Provides the information on the IP addresses to be assigned to a connection point 
        required: false
 
  tosca.datatypes.nfv.CpProtocolData:
    derived_from: tosca.datatypes.Root
    description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information
    properties:
      associated_layer_protocol:
        type: string
        required: true
        description: One of the values of the property layer_protocols of the CP 
        constraints:
          - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
      address_data:
        type: list
        description: Provides information on the addresses to be assigned to the CP
        entry_schema: 
          type: tosca.datatypes.nfv.AddressData
  
  tosca.datatypes.nfv.LocationInfo:
    derived_from: tosca.datatypes.Root
    description:  Represents geographical information on the location where a PNF is deployed.
    properties:
      country_code:
        type: string # two-letter ISO 3166 country code
        description: Country code
        required: true
      civic_address_element:
        type: list
        entry_schema:
          type: tosca.datatypes.nfv.CivicAddressElement
        description: Elements composing the civic address where the PNF is deployed.
        required: false

  tosca.datatypes.nfv.CivicAddressElement:
    derived_from: tosca.datatypes.Root
    description:  Represents an element of a civic location as specified in IETF RFC 4776 [11]. 
    properties:
      ca_type:
        type: string # RFC4776
        description: caType as per RFC4776
        required: true
      ca_value:
        type: string # RFC4776
        description: caValue as per RFC4776.
        required: true

capability_types:
  tosca.capabilities.nfv.VirtualLinkable:
    derived_from: tosca.capabilities.Node
    description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type
  
relationship_types:
  tosca.relationships.nfv.VirtualLinksTo:
    derived_from: tosca.relationships.DependsOn
    description: Represents an association relationship between the VNF or PNF or Sap of a Nested NS and NsVirtualLink node types 
    valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]  
  
node_types:
  tosca.nodes.nfv.Cp:
    derived_from: tosca.nodes.Root
    description:  Provides information regarding the purpose of the connection point 
    properties:
      layer_protocols:
        type: list
        description: Identifies which protocol the connection point uses for connectivity purposes 
        required: true
        entry_schema:
          type: string
          constraints:
            - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
      role: #Name in ETSI NFV IFA011 v0.7.3: cpRole
        type: string
        description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS 
        required: false
        constraints:
          - valid_values: [ root, leaf ]
      description:
        type: string
        description: Provides human-readable information on the purpose of the connection point 
        required: false
      protocol:
        type: list
        description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor 
        required: true
        entry_schema:
          type: tosca.datatypes.nfv.CpProtocolData
      trunk_mode:
        type: boolean
        description: Provides information about whether the CP instantiated from this Cp is in Trunk mode (802.1Q or other)
        required: true

  tosca.nodes.nfv.PNF:
    derived_from: tosca.nodes.Root
    properties: 
      descriptor_id: # instead of pnfd_id
        type: string # GUID
        required: true
      function_description:
        type: string
        required: true
      provider:
        type: string
        required: true
      version:
        type: string
        required: true
      descriptor_invariant_id: # instead of pnfd-invariant-id
        type: string # GUID
        required: true
      name:
        type: string
        required: true
      geographical_location_info: 
        type: tosca.datatypes.nfv.LocationInfo
        required: false
    requirements:
      - virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo
          occurrences: [ 0, 1 ]
  # Additional requirements shall be defined in the PNF specific node type (deriving from tosca.nodes.nfv.PNF) corresponding to NS virtual links that need to connect to PnfExtCps

  tosca.nodes.nfv.PnfExtCp:
    derived_from: tosca.nodes.nfv.Cp
    description: node definition of PnfExtCp.
    requirements:
      - external_virtual_link:
          capability: tosca.capabilities.nfv.VirtualLinkable
          relationship: tosca.relationships.nfv.VirtualLinksTo  
  
policy_types: 
  tosca.policies.nfv.SecurityGroupRule:
    derived_from: tosca.policies.Root
    description: The SecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited connection points as defined in ETSI GS NFV-IFA 011 [1].
    properties:
      description:
        type: string
        description: Human readable description of the security group rule.
        required: false
      direction:
        type: string
        description: The direction in which the security group rule is applied. The direction of 'ingress' or 'egress' is specified against the associated CP. I.e., 'ingress' means the packets entering a CP, while 'egress' means the packets sent out of a CP.
        required: false
        constraints:
          - valid_values: [ ingress, egress ]
        default: ingress
      ether_type:
        type: string
        description: Indicates the protocol carried over the Ethernet layer.
        required: false
        constraints:
          - valid_values: [ ipv4, ipv6 ]
        default: ipv4
      protocol:
        type: string
        description: Indicates the protocol carried over the IP layer. Permitted values include any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc.
        required: false
        constraints:
          - valid_values: [ hopopt, icmp, igmp, ggp, ipv4, st, tcp, cbt, egp, igp, bbn_rcc_mon, nvp_ii, pup, argus, emcon, xnet, chaos, udp, mux, dcn_meas, hmp, prm, xns_idp, trunk_1, trunk_2, leaf_1, leaf_2, rdp, irtp, iso_tp4, netblt, mfe_nsp, merit_inp, dccp, 3pc, idpr, xtp, ddp, idpr_cmtp, tp++, il, ipv6, sdrp, ipv6_route, ipv6_frag, idrp, rsvp, gre, dsr, bna, esp, ah, i_nlsp, swipe, narp, mobile, tlsp, skip, ipv6_icmp, ipv6_no_nxt, ipv6_opts, cftp, sat_expak, kryptolan, rvd, ippc, sat_mon, visa, ipcv, cpnx, cphb, wsn, pvp, br_sat_mon, sun_nd, wb_mon, wb_expak, iso_ip, vmtp, secure_vmtp, vines, ttp, iptm, nsfnet_igp, dgp, tcf, eigrp, ospfigp, sprite_rpc, larp, mtp, ax.25, ipip, micp, scc_sp, etherip, encap, gmtp, ifmp, pnni, pim, aris, scps, qnx, a/n, ip_comp, snp, compaq_peer, ipx_in_ip, vrrp, pgm, l2tp, ddx, iatp, stp, srp, uti, smp, sm, ptp, isis, fire, crtp, crudp, sscopmce, iplt, sps, pipe, sctp, fc, rsvp_e2e_ignore, mobility, udp_lite, mpls_in_ip, manet, hip, shim6, wesp, rohc ]
        default: tcp
      port_range_min:
        type: integer
        description: Indicates minimum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints.
        required: false
        constraints:
          - greater_or_equal: 0
          - less_or_equal: 65535
        default: 0
      port_range_max:
        type: integer
        description: Indicates maximum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints.
        required: false
        constraints:
          - greater_or_equal: 0
          - less_or_equal: 65535
        default: 65535
    targets: [ tosca.nodes.nfv.PnfExtCp ]