VNFD Specification V0.1 Catalog 1. 2. 3. 4. 5. Scope........................................................................................................................................ 4 Terms, Definitions and Abbreviations ............................................................................. 4 VNFD TOSCA Model ............................................................................................................... 4 VNFD TOSCA Definition ....................................................................................................... 5 TOSCA Type Definition ........................................................................................................ 9 5.1 COMMON .................................................................................................................. 9 5.1.1 tosca.artifacts.Root ...................................................................................... 9 5.1.2 tosca.nodes.Root........................................................................................... 9 5.1.3 tosca.capabilities.Root .............................................................................. 10 5.1.4 tosca.capabilities.Node ............................................................................. 10 5.1.5 tosca.capabilities.Container..................................................................... 10 5.1.6 tosca.relationships.DependsOn ............................................................... 11 5.1.7 tosca.relationships.HostedOn .................................................................. 11 5.1.8 tosca.relationships.ConnectsTo .............................................................. 11 5.1.9 tosca.relationships.RoutesTo ................................................................... 11 5.1.10 tosca.relationships.AttachesTo ....................................................... 12 5.1.11 tosca.interfaces.node.lifecycle.Standard ..................................... 12 5.2 VNF ......................................................................................................................... 12 5.2.1 tosca.nodes.nfv.ext.VNF ........................................................................... 12 5.2.2 tosca.nodes.nfv.VNF .................................................................................. 13 5.3 VDU ......................................................................................................................... 13 5.3.1 tosca.nodes.nfv.ext.VDU .......................................................................... 13 5.3.2 tosca.nodes.nfv.VDU .................................................................................. 14 5.3.3 tosca.nodes.nfv.ext.ImageFile ................................................................ 14 5.3.4 tosca.nodes.nfv.ext.BlockStorage.Local ............................................... 15 5.3.5 tosca.nodes.BlockStorage ......................................................................... 16 5.3.6 tosca.capabilities.Compute.Container.Architecture ......................... 16 5.3.7 tosca.capabilities.nfv.ext.ImageFile ...................................................... 16 5.3.8 tosca.capabilities.nfv.ext.GuestOs ......................................................... 16 5.3.9 tosca.capabilities.Attachment ................................................................. 17 5.3.10 tosca.capabilities.nfv.Metric ............................................................ 17 5.3.11 tosca.relationships.nfv.Monitor ...................................................... 17 5.4 Networking ........................................................................................................... 17 5.4.1 tosca.nodes.nfv.ext.CP ............................................................................. 17 5.4.2 tosca.nodes.nfv.CP ..................................................................................... 17 5.4.3 tosca.nodes.network.Port ........................................................................ 18 5.4.4 tosca.nodes.nfv.ext.VL.............................................. 错误!未定义书签。 5.4.5 tosca.nodes.nfv.VL ..................................................................................... 19 5.4.6 tosca.nodes.nfv.VL.ELine ......................................................................... 19 5.4.7 tosca.nodes.nfv.VL.ELAN .......................................................................... 19 6. 7. 5.4.8 tosca.nodes.nfv.VL.ETree......................................................................... 19 5.4.9 tosca.nodes.network.Network ................................................................ 19 5.4.10 tosca.capabilities.nfv.VirtualLinkable ........................................... 20 5.4.11 tosca.capabilities.network.Linkable .............................................. 21 5.4.12 tosca.capabilities.nfv.VirtualBindable ........................................... 21 5.4.13 tosca.capabilities.network.Bindable .............................................. 21 5.4.14 tosca.relationships.nfv.VirtualLinksTo .......................................... 21 5.4.15 tosca.relationships.network.LinksTo ............................................. 21 5.4.16 tosca.relationships.nfv.VirtualBindsTo.......................................... 21 5.4.17 tosca.relationships.network.BindsTo............................................. 21 VNFD Example...................................................................................................................... 22 Appendix ............................................................................................................................... 24 7.1 scalar-unit.size .................................................................................................... 25 7.2 scalar-unit.time ................................................................................................... 25 7.3 TOSCA version...................................................................................................... 25 1. Scope The scope of the present document is to describe the VNFD Specification. 2. Terms, Definitions and Abbreviations For the purposes of the present document, the following abbreviations apply: Abbreviation Definition CSAR Cloud Service Archive TOSCA Topology and Orchestration Specification for Cloud Applications VNF Virtual Network Function VNFD Virtual Network Function Descriptor Table 2-1 abbreviations 3. VNFD TOSCA Model A VNF is a subsystem in a network service, using A TOSCA Service Template (YAML) as VNF template, it can include: VDU, which is a subset of a VNF. A VDU can be mapped to a single VM; Connection point, some of connection points are only used to connect internal virtual link, while others are exposed to connect outside virtual link. A connection point has to bind with a VDU. Internal virtual link, the main functionalities are the same with the virtual link defined in the network service level, but it is only used within VNF to provide connectivity between VDUs. VNFD Data Model and TOSCA Template 4. VNFD TOSCA Definition TOSCA Service Template definition: Keyname Requir ed Type Description tosca_definitions_ver yes string Defines the version of the TOSCA Simple Profile sion metadata specification the template (grammar) complies with. no map of string Defines a section used to declare additional metadata information. Refers to Metadata keynames definition. description no description Declares a description for this Service Template and its contents. dsl_defintions no N/A Declares optional DSL-specific definitions and conventions. For example, in YAML, this allows defining reusable YAML macros (i.e., YAML alias anchors) for use throughout the TOSCA Service Template. Keyname Requir ed Type Description repositories no list of Declares the list of external repositories which contain Repository artifacts that are referenced in the service template definitions along with their addresses and necessary credential information used to connect to them in order to retrieve the artifacts. Reserved artifact_types no list of This section contains an optional list of artifact type Artifact Types definitions for use in the service template Reserved data_types capability_types interface_types no no no list of Declares a list of optional TOSCA Data Type definitions. Data Types Reserved list of This section contains an optional list of capability type Capability definitions for use in the service template. Types Reserved list of This section contains an optional list of interface type Interface Types definitions for use in the service template. Reserved relationship_types node_types group_types no no no list of This section contains a set of relationship type Relationship definitions for use in the service template. Types Reserved list of This section contains a set of node type definitions for Node Types use in the service template. list of This section contains a list of group type definitions for Group Types use in the service template. Reserved policy_types no list of This section contains a list of policy type definitions for Policy Types use in the service template. Reserved imports no list of Declares import statements external TOSCA Definitions Import documents. Definitions included in CSAR or in other server. The referenced TOSCA files can be 1. If basic TOSCA files are in the CSAR, the import file path can be relative path. 2. If basic TOSCA files are in other server, the import file path must be absolute path. Keyname Requir ed Type Description topology_template no Topology Defines the topology template of an application or Template service, consisting of node templates that represent the definition application’s or service’s components, as well as relationship templates representing relations between the components. Metadata keynames definition: Keyname Requir Type Description ed id YES string Declares ID of the VNF Descriptor. vendor YES string Declares the vendor of the template. Such as ZTE, HW, …… version YES string Declares the version string for the template. name YES string Declares the name of the VNF Descriptor. vnf_type YES string VNF application type. Such as: vFW, vNET, vBrasCP, vLB, …… vnfm_type no string VNFM type, which is used to choose which VNFM to manage the VNF. When the VNFM is registered, the VNFM type should be gotten. nsh_aware no string NSH aware in SFC function Topology Template definition: Keyname Required Type Description description no description The optional description for the Topology Template. inputs no list of An optional list of input parameters (i.e., as parameter parameter definitions) for the Topology Template. definitions node_templates no list of An optional list of node template definitions for the node Topology Template. templates relationship_templates no list of An optional list of relationship templates for the relationship Topology Template. templates Reserved Keyname Required Type Description groups no list of An optional list of Group definitions whose members are group node templates defined within this same Topology definitions Template. list of An optional list of Policy definitions for the Topology policy Template. definitions Reserved list of An optional list of output parameters (i.e., as parameter parameter definitions) for the Topology Template. policies no outputs no definitions substitution_mappings no N/A An optional declaration that exports the topology template as an implementation of a Node type. This also includes the mappings between the external Node Types named capabilities and requirements to existing implementations of those capabilities and requirements on Node templates declared within the topology template. Example: tosca_definitions_version: # Required TOSCA Definitions version string # Optional metadata keyname: value pairs metadata: id: #VNFD unique identifier vendor: #VNF vendor version: #VNF version name: #VNF name vnf_type: #VNF type vnfm_type: #VNFM type # Optional description of the definitions inside the file. description: <template_type_description> dsl_definitions: # list of YAML alias anchors (or macros) imports: # ordered list of import definitions node_types: # list of node type definitions topology_template: # topology template definition of the cloud application or service description: <template_description> inputs: <input_parameter_list> outputs: <output_parameter_list> node_templates: <node_template_list> groups: <group_definition_list> # Optional declaration that exports the Topology Template # as an implementation of a Node Type. substitution_mappings: node_type: <node_type_name> capabilities: <map_of_capability_mappings_to_expose> requirements: <map_of_requirement_mapping_to_expose> 5. TOSCA Type Definition The present clauses below descript the extension type definition for NFV VNF according to ETSI NFV IFA011 document, ”tosca_simple_yaml_1_0 protocol” and “tosca-nfv-v1.0-csd03” specifications. The VNF provider also can extend the TOSCA types based on this definition. 5.1 COMMON 5.1.1 tosca.artifacts.Root tosca.artifacts.Root: description: > The TOSCA Artifact Type all other TOSCA Artifact Types derive from properties: version: version 5.1.2 tosca.nodes.Root tosca.nodes.Root: description: > The TOSCA root node all other TOSCA base node types derive from. attributes: tosca_id: type: string tosca_name: type: string state: type: string capabilities: feature: type: tosca.capabilities.Node requirements: - dependency: capability: tosca.capabilities.Node node: tosca.nodes.Root relationship: tosca.relationships.DependsOn occurrences: [ 0, UNBOUNDED ] interfaces: Standard: type: tosca.interfaces.node.lifecycle.Standard tosca.artifacts.Root: description: > The TOSCA Artifact Type all other TOSCA Artifact Types derive from properties: version: version 5.1.3 tosca.capabilities.Root tosca.capabilities.Root: description: > The TOSCA root Capability Type all other TOSCA base Capability Types derive from. 5.1.4 tosca.capabilities.Node tosca.capabilities.Node: derived_from: tosca.capabilities.Root 5.1.5 tosca.capabilities.Container tosca.capabilities.Container: derived_from: tosca.capabilities.Root properties: num_cpus: type: integer required: false constraints: - greater_or_equal: 1 cpu_frequency: type: scalar-unit.frequency required: false constraints: - greater_or_equal: 0.1 GHz disk_size: type: scalar-unit.size required: false constraints: - greater_or_equal: 0 MB mem_size: type: scalar-unit.size required: false constraints: - greater_or_equal: 0 MB 5.1.6 tosca.relationships.DependsOn tosca.relationships.DependsOn: derived_from: tosca.relationships.Root valid_target_types: [ tosca.capabilities.Node ] 5.1.7 tosca.relationships.HostedOn tosca.relationships.HostedOn: derived_from: tosca.relationships.Root valid_target_types: [ tosca.capabilities.Container ] 5.1.8 tosca.relationships.ConnectsTo tosca.relationships.ConnectsTo: derived_from: tosca.relationships.Root valid_target_types: [ tosca.capabilities.Endpoint ] properties: credential: type: tosca.datatypes.Credential required: false 5.1.9 tosca.relationships.RoutesTo tosca.relationships.RoutesTo: derived_from: tosca.relationships.ConnectsTo valid_target_types: [ tosca.capabilities.Endpoint ] 5.1.10 tosca.relationships.AttachesTo tosca.relationships.AttachesTo: derived_from: tosca.relationships.Root valid_target_types: [ tosca.capabilities.Attachment ] properties: location: type: string constraints: - min_length: 1 device: type: string required: false 5.1.11 tosca.interfaces.node.lifecycle.Standard tosca.interfaces.node.lifecycle.Standard: create: description: Standard lifecycle create operation. configure: description: Standard lifecycle configure operation. start: description: Standard lifecycle start operation. stop: description: Standard lifecycle stop operation. delete: description: Standard lifecycle delete operation. 5.2 VNF 5.2.1 tosca.nodes.nfv.ext.VNF tosca.nodes.nfv.ext.VNF: derived_from: tosca.nodes.nfv.VNF properties: vnf_type: type: string required: false description: Type of this VNF. For example vFW,vNAT,… etc. request_reclassification: type: boolean required: false nsh_aware: type: boolean required: false vnfm_type: type: string required: true description: Type of this VNFM, Such as ZTE,HW,JUJU,… 5.2.2 tosca.nodes.nfv.VNF tosca.nodes.nfv.VNF: derived_from: tosca.nodes.Root properties: id: type: string description: ID of this VNF vendor: type: string description: name of the vendor who generate this VNF version: type: version description: version of the software for this VNF requirements: - virtualLink: capability: tosca.capabilities.nfv.VirtualLinkable 5.3 VDU 5.3.1 tosca.nodes.nfv.ext.VDU tosca.nodes.nfv.ext.VDU: derived_from: tosca.nodes.nfv.VDU requirements: - guest_os: capability: tosca.capabilities.nfv.ext.GuestOs node: tosca.nodes.nfv.ext.ImageFile relationship: tosca.relationships.DependsOn - block_storage: capability: tosca.capabilities.Attachment node: tosca.nodes.BlockStorage relationship: tosca.relationships.AttachesTo occurrences: [0, UNBOUNDED] - dependency: capability: tosca.capabilities.Node node: tosca.nodes.nfv.ext.VDU relationship: tosca.relationships.DependsOn occurrences: [ 0, UNBOUNDED ] 5.3.2 tosca.nodes.nfv.VDU tosca.nodes.nfv.VDU: derived_from: tosca.nodes.Root capabilities: nfv_compute: type: tosca.capabilities.Compute.Container.Architecture virtualbinding: type: tosca.capabilities.nfv.VirtualBindable monitoring_parameter: type: tosca.capabilities.nfv.Metric 5.3.3 tosca.nodes.nfv.ext.ImageFile tosca.nodes.nfv.ext.ImageFile: derived_from: tosca.nodes.Root properties: name: type: string required: true description: name of the vendor who generate this VL version: type: string required: true description: name of the vendor who generate this VL checksum: type: string required: true description: name of the vendor who generate this VL disk_format: type: string required: true default: qcow2 description: name of the vendor who generate this VL constraints: - valid_values: [ qcow2, raw, vmdk, vhd, vhi, iso, aki, ami, ari, ova ] file_url: type: string required: false description: name of the vendor who generate this VL capabilities: guest_os: type: tosca.capabilities.nfv.ext.GuestOs image_fle: type: tosca.capabilities.nfv.ext.ImageFile 5.3.4 tosca.nodes.nfv.ext.BlockStorage.Local tosca.nodes.nfv.ext.BlockStorage.Local: derived_from: tosca.nodes.BlockStorage description: Local storage information. properties: disk_type: type: string required: false default: data description: Local disk type,only support one swap disk and one boot disk. constraints: - valid_values: [ boot, swap, data ] 5.3.5 tosca.nodes.BlockStorage tosca.nodes.BlockStorage: derived_from: tosca.nodes.Root properties: size: type: scalar-unit.size constraints: - greater_or_equal: 1 MB volume_id: type: string required: false snapshot_id: type: string required: false attributes: volume_id: type: string capabilities: attachment: type: tosca.capabilities.Attachment 5.3.6 tosca.capabilities.Compute.Container.Architecture tosca.capabilities.Compute.Container.Architecture: derived_from: tosca.capabilities.Container properties: mem_page_size: type: scalar-unit.size required: false constraints: - [normal, huge] 5.3.7 tosca.capabilities.nfv.ext.ImageFile tosca.capabilities.nfv.ext.ImageFile: derived_from: tosca.capabilities.Root 5.3.8 tosca.capabilities.nfv.ext.GuestOs tosca.capabilities.nfv.ext.GuestOs: derived_from: tosca.capabilities.Root 5.3.9 tosca.capabilities.Attachment tosca.capabilities.Attachment: derived_from: tosca.capabilities.Root 5.3.10 tosca.capabilities.nfv.Metric tosca.capabilities.nfv.Metric: derived_from: tosca.capabilities.Root 5.3.11 tosca.relationships.nfv.Monitor tosca.relationships.nfv.Monitor: derived_from: tosca.relationships.ConnectsTo valid_target_types: [ tosca.capabilities.nfv.Metric] 5.4 Networking 5.4.1 tosca.nodes.nfv.ext.CP tosca.nodes.nfv.ext.CP: derived_from: tosca.nodes.nfv.CP properties: sfc_encapsulation: type: string required: false constraints: -valid_values: [ mac, vxlan-gpe, gre, mpls ] direction: type: string required: false constraints: - valid_values: [ input, output, bidirectional ] 5.4.2 tosca.nodes.nfv.CP tosca.nodes.nfv.CP: derived_from: tosca.nodes.network.Port properties: type: type: string required: false anti_spoof_protection: type: boolean required: false requirements: - virtualLink: capability: tosca.capabilities.nfv.VirtualLinkable relationship: tosca.relationships.nfv.VirtualLinksTo - virtualbinding: capability: tosca.capabilities.nfv.VirtualBindable relationship: tosca.relationships.nfv.VirtualBindsTo attributes: address: type: string 5.4.3 tosca.nodes.network.Port tosca.nodes.network.Port: derived_from: tosca.nodes.Root properties: ip_address: type: string required: false order: type: integer required: true default: 0 constraints: - greater_or_equal: 0 is_default: type: boolean required: false default: false ip_range_start: type: string required: false ip_range_end: type: string required: false requirements: - link: capability: tosca.capabilities.network.Linkable relationship: tosca.relationships.network.LinksTo - binding: capability: tosca.capabilities.network.Bindable relationship: tosca.relationships.network.BindsTo 5.4.4 tosca.nodes.nfv.VL tosca.nodes.nfv.VL: derived_from: tosca.nodes.network.Network properties: vendor: type: string required: true description: name of the vendor who generate this VL capabilities: virtual_linkable: type: tosca.capabilities.nfv.VirtualLinkable 5.4.5 tosca.nodes.nfv.VL.ELine tosca.nodes.nfv.VL.ELine: derived_from: tosca.nodes.nfv.VL capabilities: virtual_linkable: occurrences: 2 5.4.6 tosca.nodes.nfv.VL.ELAN tosca.nodes.nfv.VL.ELAN: derived_from: tosca.nodes.nfv.VL 5.4.7 tosca.nodes.nfv.VL.ETree tosca.nodes.nfv.VL.ETree: derived_from: tosca.nodes.nfv.VL 5.4.8 tosca.nodes.network.Network tosca.nodes.network.Network: derived_from: tosca.nodes.Root properties: ip_version: type: integer required: false default: 4 constraints: - valid_values: [ 4, 6 ] cidr: type: string required: false start_ip: type: string required: false end_ip: type: string required: false gateway_ip: type: string required: false network_name: type: string required: false network_id: type: string required: false segmentation_id: type: string required: false network_type: type: string required: false physical_network: type: string required: false capabilities: link: type: tosca.capabilities.network.Linkable 5.4.9 tosca.capabilities.nfv.VirtualLinkable tosca.capabilities.nfv.VirtualLinkable: derived_from: tosca.capabilities.Node 5.4.10 tosca.capabilities.network.Linkable tosca.capabilities.network.Linkable: derived_from: tosca.capabilities.Node 5.4.11 tosca.capabilities.nfv.VirtualBindable tosca.capabilities.nfv.VirtualBindable: derived_from: tosca.capabilities.Node 5.4.12 tosca.capabilities.network.Bindable tosca.capabilities.network.Bindable: derived_from: tosca.capabilities.Node 5.4.13 tosca.relationships.nfv.VirtualLinksTo tosca.relationships.nfv.VirtualLinksTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ] 5.4.14 tosca.relationships.network.LinksTo tosca.relationships.network.LinksTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca.capabilities.network.Linkable ] 5.4.15 tosca.relationships.nfv.VirtualBindsTo tosca.relationships.nfv.VirtualBindsTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca .capabilities.nfv.VirtualBindable] 5.4.16 tosca.relationships.network.BindsTo tosca.relationships.network.BindsTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca.capabilities.network.Bindable ] 6. VNFD Example tosca_definitions_version: tosca_simple_profile_for_nfv_1_0 description: example for VNF2 metadata: id: ZTE-vFW-1.0 vendor: zte version: 1.0 vnfd_version: 1.1 name: vFW_TIC_Edge vnf_type: vFW request_reclassification: false nsh_aware: true vnfm_type: zte topology_template: inputs: # omitted here for brivity subsititution_mappings: node_type: tosca.nodes.nfv.ext.VNF requirements: virtualLink1: [CP21, virtualLink] capabilities: forwarder1: [CP21, Forwarder] node_templates: image1: type: tosca.nodes.nfv.ext.ImageFile properties: name: centos.img version: 5.16.11 disk_format: qcow2 file_url: SoftwareImages/centos.img local_storage1: type: tosca.nodes.nfv.ext.BlockStorage.Local properties: size: 50 GB disk_type: boot local_storage2: type: tosca.nodes.nfv.ext.BlockStorage.Local properties: size: 100 GB disk_type: data local_storage3: type: tosca.nodes.nfv.ext.BlockStorage.Local properties: size: 1 GB disk_type: swap VDU1: type: tosca.nodes.nfv.ext.VDU properties: name:vFW requirements: - guest_os: image1 - block_storage: local_storage1 - block_storage: local_storage2 - block_storage: local_storage3 capabilities: nfv_compute: num_cpus: 4 mem_size: 4096 MB Interface: Standard: create:vdu1_install.sh configure: implementation: vdu1_configure.sh artifacts: software_version_file: AppSoftwares/appversion1.zip VDU2: type: tosca.nodes.nfv.VDU properties: # omitted here for brivity VDU3: type: tosca.nodes.nfv.VDU properties: # omitted here for brivity CP21: #endpoints of VNF2 type: tosca.nodes.nfv.ext.CP properties: sfc_encapsulation: gre direction: input requirements: virtualbinding: VDU1 CP22: type: tosca.nodes.nfv.ext.CP properties: # omitted here for brivity requirements: virtualbinding: VDU1 virtualLink: internal_VL CP23: type: tosca.nodes.nfv.ext.CP properties: # omitted here for brivity requirements: virtualbinding: VDU2 virtualLink: internal_VL CP24: type: tosca.nodes.nfv.ext.CP properties: # omitted here for brivity requirements: virtualbinding: VDU3 virtualLink: internal_VL internal_VL: type: tosca.nodes.nfv.VL.ELAN properties: name: VL1 vendor: zte network_type: vlan capabilities: - virtual_linkable occurrences: 5 7. Appendix 7.1 scalar-unit.size Unit Usage Description B size byte kB size kilobyte (1000 bytes) KiB size kibibytes (1024 bytes) MB size megabyte (1000000 bytes) MiB size mebibyte (1048576 bytes) GB size gigabyte (1000000000 bytes) GiB size gibibytes (1073741824 bytes) TB size terabyte (1000000000000 bytes) TiB size tebibyte (1099511627776 bytes) 7.2 scalar-unit.time Unit Usage Description d time days h time hours m time minutes s time seconds ms time milliseconds us time microseconds ns time nanoseconds 7.3 TOSCA version <major_version>.<minor_version>[.<fix_version>[.<qualifier>[-<build_version ] ] ] exmaple: # basic version strings 6.1 2.0.1 # version string with optional qualifier 3.1.0.beta # version string with optional qualifier and build version 1.0.0.alpha-10
© Copyright 2026 Paperzz