# # Copyright (c) 2017 ZTE All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # data_types: tosca.datatypes.nfv.L3AddressData: derived_from: tosca.datatypes.Root properties: ip_address_assignment: type: boolean required: true floating_ip_activated: type: boolean required: true ip_address_type: type: string required: false constraints: - valid_values: [ipv4, ipv6] number_of_ip_address: type: integer required: false tosca.datatypes.nfv.AddressData: derived_from: tosca.datatypes.Root properties: address_type: type: string required: true constraints: - valid_values: [mac_address, ip_address] #l2_address_data: # type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" # required: false l3_address_data: type: tosca.datatypes.nfv.L3AddressData required: false tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: derived_from: tosca.datatypes.Root properties: name: type: string required: false description: type: string required: false support_mandatory: type: boolean required: true requirement: type: map # not specified required: true entry_schema: type: string tosca.datatypes.nfv.ConnectivityType: derived_from: tosca.datatypes.Root properties: layer_protocol: type: string required: yes constraints: - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] flow_pattern: type: string required: false #line tree mesh tosca.datatypes.nfv.RequestedAdditionalCapability: derived_from: tosca.datatypes.Root properties: #name: # key of containing map support_mandatory: type: boolean required: true min_requested_additional_capability_version: type: string required: false preferred_requested_additional_capability_version: type: string required: false requested_additional_capability_name: type: string required: true target_performance_parameters: type: map entry_schema: type: string required: true tosca.datatypes.nfv.VirtualMemory: derived_from: tosca.datatypes.Root properties: virtual_mem_size: type: scalar-unit.size # Number required: true virtual_mem_oversubscription_policy: type: string required: false numa_enabled: type: boolean required: false tosca.datatypes.nfv.VirtualCpu: derived_from: tosca.datatypes.Root properties: cpu_architecture: type: string required: false num_virtual_cpu: type: integer required: true virtual_cpu_clock: type: scalar-unit.frequency required: false virtual_cpu_oversubscription_policy: type: string required: false virtual_cpu_pinning: type: tosca.datatypes.nfv.VirtualCpuPinning required: false tosca.datatypes.nfv.VirtualCpuPinning: derived_from: tosca.datatypes.Root properties: cpu_pinning_policy: type: string # CpuPinningPolicy constraints: - valid_values: [ static, dynamic ] required: false cpu_pinning_map: type: map entry_schema: type: string required: false tosca.datatypes.nfv.VnfcConfigurableProperties: derived_from: tosca.datatypes.Root properties: additional_vnfc_configurable_properties: type: map entry_schema: type: string required: false node_types: tosca.nodes.nfv.VDU.Compute: derived_from: tosca.nodes.Compute properties: name: type: string required: true description: type: string required: true boot_order: type: list # explicit index (boot index) not necessary, contrary to IFA011 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 #attributes: # 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 #monitoring_parameter: # modeled as ad hoc (named) capabilities in VDU node template # for example: #capabilities: # cpu_load: tosca.capabilities.nfv.Metric # memory_usage: tosca.capabilities.nfv.Metric #host: #Editor note: FFS. How this capabilities should be used in NFV Profile # type: tosca.capabilities.Container # valid_source_types: [tosca.nodes.SoftwareComponent] # occurrences: [0,UNBOUNDED] #note: [0,0] #endpoint: # occurrences: [0,0] #os: # occurrences: [0,0] scalable: #Editor note: FFS. How this capabilities should be used in NFV Profile type: tosca.capabilities.Scalable #binding: # 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 ] # - local_storage: #For NFV Profile, this requirement is deprecated. # occurrences: [0,0] #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 required: true size_of_storage: type: scalar-unit.size required: true rdma_enabled: type: boolean required: false capabilities: virtual_storage: type: tosca.capabilities.nfv.VirtualStorage #artifacts: # - sw_image: # file: # type: tosca.artifacts.Deployment.Image tosca.nodes.nfv.Cpd: derived_from: tosca.nodes.Root properties: layer_protocol: type: string 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 address_data: type: list entry_schema: type: tosca.datatypes.nfv.AddressData required: false tosca.nodes.nfv.VduCpd: derived_from: tosca.nodes.nfv.Cpd properties: bitrate_requirement: type: integer required: false virtual_network_interface_requirements: type: list entry_schema: type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements required: false requirements: - virtual_link: capability: tosca.capabilities.nfv.VirtualLinkable relationship: tosca.relationships.nfv.VirtualLinksTo node: tosca.nodes.nfv.VnfVirtualLinkDesc - virtual_binding: capability: tosca.capabilities.nfv.VirtualBindable relationship: tosca.relationships.nfv.VirtualBindsTo node: tosca.nodes.nfv.VDU.Compute #tosca.nodes.nfv.VDU tosca.nodes.nfv.VnfVirtualLinkDesc: 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_flavours: type: map entry_schema: type: string #tosca.datatypes.nfv.VlFlavour required: true capabilities: #monitoring_parameters: # modeled as ad hoc (named) capabilities in node template virtual_linkable: type: tosca.capabilities.nfv.VirtualLinkable tosca.nodes.nfv.VNF: description: >- The NFV VNF Node Type represents a Virtual Network Function as defined by [ETSI GS NFV-MAN 001 v1.1.1]. It is the default type that all other VNF Node Types derive from. This allows for all VNF nodes to have a consistent set of features for modeling and management (e.g., consistent definitions for requirements, capabilities and lifecycle interfaces). derived_from: tosca.nodes.Root properties: id: description: >- ID of this VNF. type: string vendor: description: >- Name of the vendor who generate this VNF. type: string version: description: >- Version of the software for this VNF. type: string requirements: - virtual_link: capability: tosca.capabilities.nfv.VirtualLinkable relationship: tosca.relationships.nfv.VirtualLinksTo capability_types: tosca.capabilities.nfv.Metric: derived_from: tosca.capabilities.Endpoint tosca.capabilities.nfv.VirtualStorage: #new derived_from: tosca.capabilities.Root tosca.capabilities.nfv.VirtualBindable: #new derived_from: tosca.capabilities.Node tosca.capabilities.nfv.VirtualLinkable: #new derived_from: tosca.capabilities.Node tosca.capabilities.nfv.VirtualCompute: derived_from: tosca.capabilities.Root properties: requested_additional_capabilities: type: map entry_schema: type: tosca.datatypes.nfv.RequestedAdditionalCapability required: false virtual_memory: type: tosca.datatypes.nfv.VirtualMemory required: true virtual_cpu: type: tosca.datatypes.nfv.VirtualCpu required: true artifact_types: tosca.artifacts.nfv.SwImage: derived_from: tosca.artifacts.Deployment.Image properties: # or metadata #id: # node name name: type: string required: true version: type: string required: true checksum: type: string required: true container_format: type: string required: true disk_format: type: string required: true min_disk: type: scalar-unit.size # Number required: true min_ram: type: scalar-unit.size # Number required: false size: type: scalar-unit.size # Number required: true sw_image: type: string required: true operating_system: type: string required: false supported_virtualisation_environments: type: list entry_schema: type: string required: false relationship_types: tosca.relationships.nfv.VirtualBindsTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] tosca.relationships.nfv.VDU.AttachedTo: derived_from: tosca.relationships.AttachesTo tosca.relationships.nfv.VirtualLinksTo: derived_from: tosca.relationships.DependsOn valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]