- Created by Weitao Gao, last modified by Michael Lando on Mar 28, 2018
this is the DM agreed to R2 and maintenance release page version 35.
the final R3 DM is still under discussion.
any change to this page done by someone other then Victor Gao or Michael Lando will be reverted thank you.
Node Types
tosca.nodes.nfv.VDU.Compute Expand source
tosca.nodes.nfv.Vdu.Compute: derived_from: tosca.nodes.Root properties: #id: # node name name: # align with the IM, please refer to https://wiki.onap.org/display/DW/Design+Time+Model+Clean+Version#DesignTimeModelCleanVersion-Class:VDU/VDUDesc 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 Expand source
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 Expand source
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 Expand source
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 Expand source
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 Expand source
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
- No labels
13 Comments
Thinh Nguyenphu
Per our sub modeling call today, I update all of the Node types to align with SOL001 v0.6.0. https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL001_TOSCA_desc/NFV-SOL001v060.zip
For the tosca.nodes.nfv.VDU.Composistion, I commented it out the entire node type definitions, without deleting it. this node type is no long applicable. the clean approach is described in SOL001 v0.6.0 Annex A.4, via using substitution_mapping method. My recommendation is to remove it from the wiki page.
Andrei Kojukhov
I agree with Thinh. Tks for the update.
Michela Bevilacqua
I agree with Thinh. This is not part of IM, it is not in SOL, Same properties defined in VDU.Compute
maopeng zhang
VDU.compute node:
1.In IFA 011 V2.4.1 boot order is a keyvaluepair.
2. Inject_files are string is not enough, in openstack is like this, please refer it.
VNF node:
1. does the
modifiable_attributes which is required true, but in fact the value is none, supported in tosca grammar?
I think false is possible.
2. Considering some vnfd do not need to have the flavor, is it possible to change the requirement of flavor id and description to false?
Thinh Nguyenphu
FYI. I just fixed couple grammar errors
shitao li
In ONAP R2 IM, it only contains the use case that an exteranl CP will be exposed by a Vdu CP, so the tosca.nodes.nfv.VnfExtCp is not needed for R2 DM.
maopeng zhang
FYI, all I modified, I have made a note, please check it.
1.I fixed some name conventions(vnicName(vnic_name)...)
2. some types of properties are needed to be aligned with IM.
3.Some properties also are needed to be TBD, for example inject_files structure,monitoring_parameter, etc.
4. To consider the compatiblity, please consider change some property requirements to be false
flavor related, profile related.
shitao li
tosca.capabilities.nfv.VirtualStorage in Vdu.VirtualStorage and the relaitonship type between Vdu.Compute and Vdu.VirtualStorage are missing, a proposal is needed.
Lianhao Lu
2 things are missing in tosca.nodes.nfv.VDU.Compute:
- a way to specify login information to the VDU VM, including ssh login username, ssh public/private keys. OpenStack need this when creating VMs for user to access.
- a way to specify the cloudinit user-data script. cloudinit user-data script is very useful when configuring VDU VM. In heat, it can be done as the followings:
The heat will first replace the user_data template script with params defined in str_replace, then pass the replaced user_data template script as cloudinit user-data script when creating the VDU VM.
We need a similar way in tosca to do this too. Some people suggest to use tosca.interfaces.node.lifecycle.Standard interface such as https://github.com/openstack/tosca-parser/blob/master/toscaparser/tests/data/CSAR/tosca_elk/Definitions/tosca_elk.yaml#L78 , but the standard interface will pass the params to scripts as envrionment variables, which is not supported by cloudinit.
Alexander Vul
Lianhao Lu -
Haibin Chu
user_data together with cloudinit capability is required by many applications today. Can we add the user_data property into node type tosca.nodes.nfv.VDU.Compute and follows the exactly same schema in HEAT?
shitao li
HI Alex
Regarding virtualStorage,
type_of_storage:
type: string
constraints:
- valid_values: [volume, object, root, block]
I think volume and block are the same thing.
maopeng zhang
local disk in the openstack is created with the VM, not a independent API or managed object. When define it as a node in TOSCA, how to manage the node via the tosca interfaces?