The VDU design as decscribed in latest tosca-nfv-profile-wd05-rev03 follows the IM of VDU as defined from ETSI NFV.
The main design also follows the resource concept in ONAP. TOSCA composition feature has been used as the main design pattern.
Simple Resource
-A node without associated topology template (can’t be further decomposed)
-Simple resource used to compose a composite resource or a service
-Virtual Link, Connection Point, Virtual Storage, Virtual Compute, etc.
•Composite Resource
-A resource which is composed from other resources (simple, composite)
-A node which substituted by a topology template
-VDU, VNF, etc.
VDU model in tosca-nfv-profile
in which, the tosca.nodes.nfv.VDU.Composition node type represents the VDU which is the collection of VDU.compute, VDU.storage and VduCpd.
The definition of tosca.nodes.nfv.VDU.Composition node type
Data type
tosca.nodes.nfv.VDU.Composition:
derived_from: tosca.nodes.root
properties:
name:
type: string
required: true
description:
type: string
required: true
boot_order:
type: list
entry_schema:
type: string
required: false
nfvi_constraints:
type: list
entry_schema:
type: string
required: false
configurable_properties:
type: map
entry_schema:
type: tosca.datatypes.nfv.VnfcConfigurableProperties
required: true
capabilities:
virtual_compute:
type: tosca.capabilities.nfv.VirtualCompute
virtual_storage:
type: tosca.capabilities.nfv.VirtualStorage
occurrences: [0,UNBOUNDED][L1]
requirements:
- virtual_link:
capability: tosca.capabilities.nfv.VirtualLinkable
relationship: tosca.relationships.nfv.VirtualLinksTo
node: tosca.nodes.nfv.VnfVirtualLinkDesc
occurrences: [1,UNBOUNDED[L2] ]
An example of a VDU service template
VDU example
tosca_definitions _version: tosca_simple_profile_1_1
description: service template of a VDU # Human readable description of the Vdu.
topology_template:
inputs:
subsititution_mappings:
node_type: tosca.nodes.nfv.VNF. VDUComposition.vduC
requirements:
virtualLinkable: [interanlCpd_001, virtualLinkable]
capabilities:
virtual_compute: [vduC_compute, virtual_compute]
virtual_storage: [vduC_storage, virtual_storage]
node_templates:
vduC_compute:
type: tosca.nodes.nfv.VDU.Compute
properties:
# omitted here for brevity
capabilities:
virtual_compute:
artifacts:
- sw_image:
requirements:
- virtual_storage: virtualStorage_001
vduC_storage:
type: tosca.nodes.nfv.VDU.VirtualStorage
properties:
# omitted here for brevity
capabilities:
virtual_storage:
internalCpd: #ID of this internalCpd
type: tosca.nodes.nfv.VduCpd
properties:
# omitted here for brevity
requirements:
- VirtualLinkable:
- VirtualBindable: vduC_compute
A VNFD example with 3VDUs
VNFD example
tosca_definitions_version: tosca_simple_profile_1_1
topology_template:
description: Template of a VNFD example
node_templates:
VDU_A:
type: tosca.nodes.nfv.VDUComposition.vduA
properties:
# omitted here for brevity
requirements:
- virtual_link:VL_1
- virtual_link:VL_2
VDU_B:
type: tosca.nodes.nfv.VDUComposition.vduB
properties:
# omitted here for brevity
requirements:
- virtual_link:VL_2
VDU_C:
# it can be substituted with a topology provided by another template
# that exports a virtual_link type’s requirement.
type: tosca.nodes.nfv.VDUComposition.vduC
properties:
# omitted here for brevity
requirements:
- virtual_link:VL_1
VL_1:
type: tosca.nodes.nfv.VnfVirtualLinkDesc
properties:
# omitted here for brevity
capabilities:
- virtual_link
VL_2:
type: tosca.nodes.nfv.VnfVirtualLinkDesc
properties:
# omitted here for brevity
capabilities:
- virtual_link