Node Types

tosca.nodes.nfv.Vdu.Compute:
derived_from: tosca.nodes.Root
properties:
#id:
# node name
type: string
required: true
description:
type: string
required: true
boot_order:
type: map # explicit index (boot index) not necessary, contrary to IFA011. In the IM, it shoul be a array of KeyValuePair/NameValuePair
entry_schema:
type: string
required: false
nfvi_constraints:
type: map # Align with IM, it shoul be a array of KeyValuePair/NameValuePair
entry_schema:
type: string
required: false
configurable_properties:
type: map #In the IM, the multipilicity of VnfcConfigurableProperties is 1, not a map.
entry_schema:
type: tosca.datatypes.nfv.VnfcConfigurableProperties
required: true
vdu_profile:
type: tosca.datatypes.nfv.VduProfile
required: true
inject_files: # Used for vCPE usecase Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
type: tosca.datatypes.nfv.injectFile
required: false #Aligned with ONAP R2 IM. it should be false.
meta_data: #metadata attached to the VM or container
type: map
entry_schema:
type: string
required: false
user_data: #cloudinit userdata script support
type: string
required: false
#attributes: NOT DEFINED IN ONAP IM and SOL001
#private_address:
# status: deprecated
#public_address:
# status: deprecated
#networks:
# status: deprecated
#ports:
# status: deprecated
capabilities:
virtual_compute:
type: tosca.capabilities.nfv.VirtualCompute
virtual_binding:
type: tosca.capabilities.nfv.VirtualBindable
occurrences: [1, UNBOUND]
monitoring_parameter:
type: tosca.capabilities.nfv.Metric # this is not a very clear data structure enough to be coded, suggest to be annotated.
occurrences: [0,UNBOUND]
requirements:
- virtual_storage:
capability: tosca.capabilities.nfv.VirtualStorage
relationship: tosca.relationships.nfv.Vdu.AttachedTo
node: tosca.nodes.nfv.VDU.VirtualStorage
occurences: [ 0, UNBOUNDED ]
artifacts:
- sw_image:
file:
type: tosca.artifacts.nfv.SwImage


tosca.nodes.nfv.Vdu.VirtualStorage:
derived_from: tosca.nodes.Root
properties:
#id:
# node name
type_of_storage:
type: string
constraints:
- valid_values: [volume, object, root, block]
required: true
size_of_storage:
type: scalar-unit.size
required: true
vdu_storage_requirements:
type: map
required: false
rdma_enabled:
type: boolean
required: false
capabilities:
virtual_storage:
type: tosca.capabilities.nfv.VirtualStorage
artifacts:
- sw_image:
file:
type: tosca.artifacts.Deployment.Image
#interfaces: # not needed for virtualstroage. it doesn’t support cloudinit.
# cloudinit:
# type:tosca.interfaces.nfv.vdu.cloudinit


tosca.nodes.nfv.Cp:
derived_from: tosca.nodes.Root
properties:
layer_protocol:
type:list
entry_schema:
constraints:
- valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ]
required:true
role: #Name in ETSI NFV IFA011 v0.7.3 cpRole
type:string
constraints:
- valid_values: [ root, leaf ]
required:false
description:
type: string
required: false
protocol_data:
type: list
entry_schema:
type: tosca.datatypes.nfv.CpProtocolData
required:true
trunk_mode:
type: boolean
required: true
allowed_address_data: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
type: tosca.datatypes.nfv.AddressData # In the IM, it is a array, but here it is not a array. TBD.
required: false


tosca.nodes.nfv.VduCp:
derived_from: tosca.nodes.nfv.Cp
properties:
bitrate_requirement:
type: integer
required:false
vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
type: string
required:false
vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0.
type: integer
required:false
vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0
type: string
constraints:
- valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder]
required:false
virtual_network_interface_requirements:
type: list
entry_schema:
type: VirtualNetworkInterfaceRequirements
required:false
# order: #there is no this attribute in IM.
# type: integer
# required: false
# constraints:
# - greater_or_equal: 0
requirements:
- virtual_link:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
node: tosca.nodes.nfv.VnfVirtualLink
- virtual_binding:
capability: tosca.capabilities.nfv.VirtualBindable
relationship: tosca.relationships.nfv.VirtualBindsTo
node: tosca.nodes.nfv.Vdu.Compute


tosca.nodes.nfv.VnfVirtualLink:
derived_from: tosca.nodes.Root
properties:
connectivity_type:
type: tosca.datatypes.nfv.ConnectivityType
required: true
description:
type: string
required: false
test_access:
type: list
entry_schema:
type: string
required: false
vl_profile:
type: tosca.datatypes.nfv.VlProfile
required: true
capabilities:
monitoring_parameter: # this is not a very clear data structure enough to be coded, suggest to be annotated.
type: tosca.capabilities.nfv.Metric
occurrences: [0,UNBOUND]
virtual_linkable:
type: tosca.capabilities.nfv.VirtualLinkable


tosca.nodes.nfv.VNF:
derived_from: tosca.nodes.Root
properties:
descriptor_id: # instead of vnfd_id
type: string # GUID
required: true
descriptor_version: # instead of vnfd_version
type: string
required: true
provider: # instead of vnf_provider
type: string
required: true
product_name: # instead of vnf_product_name
type: string
required: true
software_version: # instead of vnf_software_version
type: string
required: true
product_info_name: # instead of vnf_product_info_name
type: string
required: false
product_info_description: # instead of vnf_product_info_description
type: string
required: false
vnfm_info:
type: list
entry_schema:
type: string
required: true
localization_languages:
type: list
entry_schema:
type: string
required: false
default_localization_language:
type: string
required: false
configurable_properties:
type: tosca.datatypes.nfv.VnfConfigurableProperties
required: false
modifiable_attributes:
type: tosca.datatypes.nfv.VnfInfoModifiableAttributes
required: false # true in IFA011, but all of members are false. Align with the IM, it is false
flavour_id:
type: string
required: true
flavour_description:
type: string
required: true
capabilities:
# monitoring_parameter:
# modelled as ad hoc capabilities in the VNF node template
requirements:
- virtual_link:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
node: tosca.nodes.nfv.VnfVirtualLink
occurrences: [ 0, UNBOUNDED ]
interfaces:
Nfv:
type: tosca.interfaces.nfv.vnf.lifecycle.Nfv