diff options
Diffstat (limited to 'docs/refspec/open-o/vnfd')
-rwxr-xr-x | docs/refspec/open-o/vnfd/README.md | 27 | ||||
-rw-r--r-- | docs/refspec/open-o/vnfd/tosca-simple-nfv-1.1.yaml | 429 | ||||
-rw-r--r-- | docs/refspec/open-o/vnfd/tosca_definition_1.0.yaml | 892 | ||||
-rw-r--r-- | docs/refspec/open-o/vnfd/vNAT.yaml | 140 | ||||
-rwxr-xr-x | docs/refspec/open-o/vnfd/vnf-dm-sample.rst | 18 | ||||
-rwxr-xr-x | docs/refspec/open-o/vnfd/vnf-im-sample.rst | 18 |
6 files changed, 1524 insertions, 0 deletions
diff --git a/docs/refspec/open-o/vnfd/README.md b/docs/refspec/open-o/vnfd/README.md new file mode 100755 index 0000000..c3b60c8 --- /dev/null +++ b/docs/refspec/open-o/vnfd/README.md @@ -0,0 +1,27 @@ +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +1.nfv vnfd type definiton include three layer profile definitions. + + A.simple tosca profle : tosca_definition_1.0.yaml + refer:http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/os/TOSCA-Simple-Profile-YAML-v1.0-os.docx + + B.tosca nfv profile : tosca-simple-nfv-1.1.yaml + refer: draft-tosca-nfv-v1.0-wd04-rev06.doc + + C.openo extension profile: In the future + +2.nfv vnfd service template should import the profiles above.
\ No newline at end of file diff --git a/docs/refspec/open-o/vnfd/tosca-simple-nfv-1.1.yaml b/docs/refspec/open-o/vnfd/tosca-simple-nfv-1.1.yaml new file mode 100644 index 0000000..679b917 --- /dev/null +++ b/docs/refspec/open-o/vnfd/tosca-simple-nfv-1.1.yaml @@ -0,0 +1,429 @@ +# +# 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 ] diff --git a/docs/refspec/open-o/vnfd/tosca_definition_1.0.yaml b/docs/refspec/open-o/vnfd/tosca_definition_1.0.yaml new file mode 100644 index 0000000..2b87bc4 --- /dev/null +++ b/docs/refspec/open-o/vnfd/tosca_definition_1.0.yaml @@ -0,0 +1,892 @@ +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +tosca_definitions_version: tosca_simple_yaml_1_0 + +node_types: + 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.nodes.Compute: + derived_from: tosca.nodes.Root + attributes: + private_address: + type: string + public_address: + type: string + networks: + type: map + entry_schema: + type: tosca.datatypes.network.NetworkInfo + ports: + type: map + entry_schema: + type: tosca.datatypes.network.PortInfo + capabilities: + host: + type: tosca.capabilities.Container + binding: + type: tosca.capabilities.network.Bindable + os: + type: tosca.capabilities.OperatingSystem + scalable: + type: tosca.capabilities.Scalable + requirements: + - local_storage: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: [0, UNBOUNDED] + + tosca.nodes.SoftwareComponent: + derived_from: tosca.nodes.Root + properties: + # domain-specific software component version + component_version: + type: version + required: false + description: > + Software component version. + admin_credential: + type: tosca.datatypes.Credential + required: false + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.Compute + relationship: tosca.relationships.HostedOn + + tosca.nodes.DBMS: + derived_from: tosca.nodes.SoftwareComponent + properties: + port: + required: false + type: integer + description: > + The port the DBMS service will listen to for data and requests. + root_password: + required: false + type: string + description: > + The root password for the DBMS service. + capabilities: + host: + type: tosca.capabilities.Container + valid_source_types: [tosca.nodes.Database] + + tosca.nodes.Database: + derived_from: tosca.nodes.Root + properties: + user: + required: false + type: string + description: > + User account name for DB administration + port: + required: false + type: integer + description: > + The port the database service will use to listen for incoming data and requests. + name: + required: false + type: string + description: > + The name of the database. + password: + required: false + type: string + description: > + The password for the DB user account + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.DBMS + relationship: tosca.relationships.HostedOn + capabilities: + database_endpoint: + type: tosca.capabilities.Endpoint.Database + + tosca.nodes.WebServer: + derived_from: tosca.nodes.SoftwareComponent + capabilities: + data_endpoint: + type: tosca.capabilities.Endpoint + admin_endpoint: + type: tosca.capabilities.Endpoint.Admin + host: + type: tosca.capabilities.Container + valid_source_types: [tosca.nodes.WebApplication] + + tosca.nodes.WebApplication: + derived_from: tosca.nodes.Root + properties: + context_root: + type: string + required: false + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.WebServer + relationship: tosca.relationships.HostedOn + capabilities: + app_endpoint: + type: tosca.capabilities.Endpoint + + 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 + + tosca.nodes.network.Network: + derived_from: tosca.nodes.Root + description: > + The TOSCA Network node represents a simple, logical network service. + properties: + ip_version: + type: integer + required: false + default: 4 + constraints: + - valid_values: [ 4, 6 ] + description: > + The IP version of the requested network. Valid values are 4 for ipv4 + or 6 for ipv6. + cidr: + type: string + required: false + description: > + The cidr block of the requested network. + start_ip: + type: string + required: false + description: > + The IP address to be used as the start of a pool of addresses within + the full IP range derived from the cidr block. + end_ip: + type: string + required: false + description: > + The IP address to be used as the end of a pool of addresses within + the full IP range derived from the cidr block. + gateway_ip: + type: string + required: false + description: > + The gateway IP address. + network_name: + type: string + required: false + description: > + An identifier that represents an existing Network instance in the + underlying cloud infrastructure or can be used as the name of the + newly created network. If network_name is provided and no other + properties are provided (with exception of network_id), then an + existing network instance will be used. If network_name is provided + alongside with more properties then a new network with this name will + be created. + network_id: + type: string + required: false + description: > + An identifier that represents an existing Network instance in the + underlying cloud infrastructure. This property is mutually exclusive + with all other properties except network_name. This can be used alone + or together with network_name to identify an existing network. + segmentation_id: + type: string + required: false + description: > + A segmentation identifier in the underlying cloud infrastructure. + E.g. VLAN ID, GRE tunnel ID, etc.. + network_type: + type: string + required: false + description: > + It specifies the nature of the physical network in the underlying + cloud infrastructure. Examples are flat, vlan, gre or vxlan. + For flat and vlan types, physical_network should be provided too. + physical_network: + type: string + required: false + description: > + It identifies the physical network on top of which the network is + implemented, e.g. physnet1. This property is required if network_type + is flat or vlan. + dhcp_enabled: + type: boolean + required: false + default: true + description: > + Indicates should DHCP service be enabled on the network or not. + capabilities: + link: + type: tosca.capabilities.network.Linkable + + tosca.nodes.network.Port: + derived_from: tosca.nodes.Root + description: > + The TOSCA Port node represents a logical entity that associates between + Compute and Network normative types. The Port node type effectively + represents a single virtual NIC on the Compute node instance. + properties: + ip_address: + type: string + required: false + description: > + Allow the user to set a static IP. + order: + type: integer + required: false + default: 0 + constraints: + - greater_or_equal: 0 + description: > + The order of the NIC on the compute instance (e.g. eth2). + is_default: + type: boolean + required: false + default: false + description: > + If is_default=true this port will be used for the default gateway + route. Only one port that is associated to single compute node can + set as is_default=true. + ip_range_start: + type: string + required: false + description: > + Defines the starting IP of a range to be allocated for the compute + instances that are associated with this Port. + ip_range_end: + type: string + required: false + description: > + Defines the ending IP of a range to be allocated for the compute + instances that are associated with this Port. + attributes: + ip_address: + type: string + requirements: + - binding: + description: > + Binding requirement expresses the relationship between Port and + Compute nodes. Effectively it indicates that the Port will be + attached to specific Compute node instance + capability: tosca.capabilities.network.Bindable + relationship: tosca.relationships.network.BindsTo + node: tosca.nodes.Compute + - link: + description: > + Link requirement expresses the relationship between Port and Network + nodes. It indicates which network this port will connect to. + capability: tosca.capabilities.network.Linkable + relationship: tosca.relationships.network.LinksTo + node: tosca.nodes.network.Network + + tosca.nodes.ObjectStorage: + derived_from: tosca.nodes.Root + description: > + The TOSCA ObjectStorage node represents storage that provides the ability + to store data as objects (or BLOBs of data) without consideration for the + underlying filesystem or devices + properties: + name: + type: string + required: true + description: > + The logical name of the object store (or container). + size: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 GB + description: > + The requested initial storage size. + maxsize: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 GB + description: > + The requested maximum storage size. + capabilities: + storage_endpoint: + type: tosca.capabilities.Endpoint + + tosca.nodes.LoadBalancer: + derived_from: tosca.nodes.Root + properties: + algorithm: + type: string + required: false + status: experimental + capabilities: + client: + type: tosca.capabilities.Endpoint.Public + occurrences: [0, UNBOUNDED] + description: the Floating (IP) client’s on the public network can connect to + requirements: + - application: + capability: tosca.capabilities.Endpoint + relationship: tosca.relationships.RoutesTo + occurrences: [0, UNBOUNDED] + description: Connection to one or more load balanced applications + + tosca.nodes.Container.Application: + derived_from: tosca.nodes.Root + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.Container.Runtime + relationship: tosca.relationships.HostedOn + + tosca.nodes.Container.Runtime: + derived_from: tosca.nodes.SoftwareComponent + capabilities: + host: + type: tosca.capabilities.Container + scalable: + type: tosca.capabilities.Scalable + + tosca.nodes.Container.Application.Docker: + derived_from: tosca.nodes.Container.Application + requirements: + - host: + capability: tosca.capabilities.Container.Docker + +relationship_types: + tosca.relationships.Root: + description: > + The TOSCA root Relationship Type all other TOSCA base Relationship Types + derive from. + attributes: + tosca_id: + type: string + tosca_name: + type: string + interfaces: + Configure: + type: tosca.interfaces.relationship.Configure + + tosca.relationships.DependsOn: + derived_from: tosca.relationships.Root + + tosca.relationships.HostedOn: + derived_from: tosca.relationships.Root + valid_target_types: [ tosca.capabilities.Container ] + + tosca.relationships.ConnectsTo: + derived_from: tosca.relationships.Root + valid_target_types: [ tosca.capabilities.Endpoint ] + credential: + type: tosca.datatypes.Credential + required: false + + tosca.relationships.AttachesTo: + derived_from: tosca.relationships.Root + valid_target_types: [ tosca.capabilities.Attachment ] + properties: + location: + required: true + type: string + constraints: + - min_length: 1 + device: + required: false + type: string + + tosca.relationships.RoutesTo: + derived_from: tosca.relationships.ConnectsTo + valid_target_types: [ tosca.capabilities.Endpoint ] + + tosca.relationships.network.LinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.network.Linkable ] + + tosca.relationships.network.BindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.network.Bindable ] + +capability_types: + tosca.capabilities.Root: + description: > + The TOSCA root Capability Type all other TOSCA base Capability Types + derive from. + + tosca.capabilities.Node: + derived_from: tosca.capabilities.Root + + tosca.capabilities.Container: + derived_from: tosca.capabilities.Root + properties: + num_cpus: + required: false + type: integer + constraints: + - greater_or_equal: 1 + cpu_frequency: + required: false + type: scalar-unit.frequency + constraints: + - greater_or_equal: 0.1 GHz + disk_size: + required: false + type: scalar-unit.size + constraints: + - greater_or_equal: 0 MB + mem_size: + required: false + type: scalar-unit.size + constraints: + - greater_or_equal: 0 MB + + tosca.capabilities.Endpoint: + derived_from: tosca.capabilities.Root + properties: + protocol: + type: string + required: true + default: tcp + port: + type: tosca.datatypes.network.PortDef + required: false + secure: + type: boolean + required: false + default: false + url_path: + type: string + required: false + port_name: + type: string + required: false + network_name: + type: string + required: false + initiator: + type: string + required: false + default: source + constraints: + - valid_values: [source, target, peer] + ports: + type: map + required: false + constraints: + - min_length: 1 + entry_schema: + type: tosca.datatypes.network.PortSpec + attributes: + ip_address: + type: string + + tosca.capabilities.Endpoint.Admin: + derived_from: tosca.capabilities.Endpoint + properties: + secure: + type: boolean + default: true + constraints: + - equal: true + + tosca.capabilities.Endpoint.Public: + derived_from: tosca.capabilities.Endpoint + properties: + network_name: + type: string + default: PUBLIC + constraints: + - equal: PUBLIC + floating: + description: > + Indicates that the public address should be allocated from a pool of + floating IPs that are associated with the network. + type: boolean + default: false + status: experimental + dns_name: + description: The optional name to register with DNS + type: string + required: false + status: experimental + + tosca.capabilities.Scalable: + derived_from: tosca.capabilities.Root + properties: + min_instances: + type: integer + required: true + default: 1 + description: > + This property is used to indicate the minimum number of instances + that should be created for the associated TOSCA Node Template by + a TOSCA orchestrator. + max_instances: + type: integer + required: true + default: 1 + description: > + This property is used to indicate the maximum number of instances + that should be created for the associated TOSCA Node Template by + a TOSCA orchestrator. + default_instances: + type: integer + required: false + description: > + An optional property that indicates the requested default number + of instances that should be the starting number of instances a + TOSCA orchestrator should attempt to allocate. + The value for this property MUST be in the range between the values + set for min_instances and max_instances properties. + + tosca.capabilities.Endpoint.Database: + derived_from: tosca.capabilities.Endpoint + + tosca.capabilities.Attachment: + derived_from: tosca.capabilities.Root + + tosca.capabilities.network.Linkable: + derived_from: tosca.capabilities.Root + description: > + A node type that includes the Linkable capability indicates that it can + be pointed by tosca.relationships.network.LinksTo relationship type, which + represents an association relationship between Port and Network node types. + + tosca.capabilities.network.Bindable: + derived_from: tosca.capabilities.Root + description: > + A node type that includes the Bindable capability indicates that it can + be pointed by tosca.relationships.network.BindsTo relationship type, which + represents a network association relationship between Port and Compute node + types. + + tosca.capabilities.OperatingSystem: + derived_from: tosca.capabilities.Root + properties: + architecture: + required: false + type: string + description: > + The host Operating System (OS) architecture. + type: + required: false + type: string + description: > + The host Operating System (OS) type. + distribution: + required: false + type: string + description: > + The host Operating System (OS) distribution. Examples of valid values + for an “type” of “Linux” would include: + debian, fedora, rhel and ubuntu. + version: + required: false + type: version + description: > + The host Operating System version. + + tosca.capabilities.Container.Docker: + derived_from: tosca.capabilities.Container + properties: + version: + type: list + required: false + entry_schema: + type: version + description: > + The Docker version capability. + publish_all: + type: boolean + default: false + required: false + description: > + Indicates that all ports (ranges) listed in the dockerfile + using the EXPOSE keyword be published. + publish_ports: + type: list + entry_schema: + type: PortSpec + required: false + description: > + List of ports mappings from source (Docker container) + to target (host) ports to publish. + expose_ports: + type: list + entry_schema: + type: PortSpec + required: false + description: > + List of ports mappings from source (Docker container) to expose + to other Docker containers (not accessible outside host). + volumes: + type: list + entry_schema: + type: string + required: false + description: > + The dockerfile VOLUME command which is used to enable access + from the Docker container to a directory on the host machine. + host_id: + type: string + required: false + description: > + The optional identifier of an existing host resource + that should be used to run this container on. + volume_id: + type: string + required: false + description: > + The optional identifier of an existing storage volume (resource) + that should be used to create the container's mount point(s) on. + +interface_types: + 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. + + tosca.interfaces.relationship.Configure: + pre_configure_source: + description: Operation to pre-configure the source endpoint. + pre_configure_target: + description: Operation to pre-configure the target endpoint. + post_configure_source: + description: Operation to post-configure the source endpoint. + post_configure_target: + description: Operation to post-configure the target endpoint. + add_target: + description: Operation to add a target node. + remove_target: + description: Operation to remove a target node. + add_source: + description: Operation to notify the target node of a source node which + is now available via a relationship. + target_changed: + description: Operation to notify source some property or attribute of the + target changed + +data_types: + tosca.datatypes.Root: + description: > + The TOSCA root Data Type all other TOSCA base Data Types derive from + + tosca.datatypes.network.NetworkInfo: + derived_from: tosca.datatypes.Root + properties: + network_name: + type: string + network_id: + type: string + addresses: + type: list + entry_schema: + type: string + + tosca.datatypes.network.PortInfo: + derived_from: tosca.datatypes.Root + properties: + port_name: + type: string + port_id: + type: string + network_id: + type: string + mac_address: + type: string + addresses: + type: list + entry_schema: + type: string + + tosca.datatypes.network.PortDef: + derived_from: tosca.datatypes.Root + type: integer + constraints: + - in_range: [ 1, 65535 ] + + tosca.datatypes.network.PortSpec: + derived_from: tosca.datatypes.Root + properties: + protocol: + type: string + required: true + default: tcp + constraints: + - valid_values: [ udp, tcp, igmp ] + target: + type: PortDef + required: false + target_range: + type: range + required: false + constraints: + - in_range: [ 1, 65535 ] + source: + type: PortDef + required: false + source_range: + type: range + required: false + constraints: + - in_range: [ 1, 65535 ] + + tosca.datatypes.Credential: + derived_from: tosca.datatypes.Root + properties: + protocol: + type: string + required: false + token_type: + type: string + default: password + required: true + token: + type: string + required: true + keys: + type: map + entry_schema: + type: string + required: false + user: + type: string + required: false + +artifact_types: + tosca.artifacts.Root: + description: > + The TOSCA Artifact Type all other TOSCA Artifact Types derive from + properties: + version: version + + tosca.artifacts.File: + derived_from: tosca.artifacts.Root + + tosca.artifacts.Deployment: + derived_from: tosca.artifacts.Root + description: TOSCA base type for deployment artifacts + + tosca.artifacts.Deployment.Image: + derived_from: tosca.artifacts.Deployment + + tosca.artifacts.Deployment.Image.VM: + derived_from: tosca.artifacts.Deployment.Image + + tosca.artifacts.Implementation: + derived_from: tosca.artifacts.Root + description: TOSCA base type for implementation artifacts + + tosca.artifacts.Implementation.Bash: + derived_from: tosca.artifacts.Implementation + description: Script artifact for the Unix Bash shell + mime_type: application/x-sh + file_ext: [ sh ] + + tosca.artifacts.Implementation.Python: + derived_from: tosca.artifacts.Implementation + description: Artifact for the interpreted Python language + mime_type: application/x-python + file_ext: [ py ] + + tosca.artifacts.Deployment.Image.Container.Docker: + derived_from: tosca.artifacts.Deployment.Image + description: Docker container image + + tosca.artifacts.Deployment.Image.VM.ISO: + derived_from: tosca.artifacts.Deployment.Image + description: Virtual Machine (VM) image in ISO disk format + mime_type: application/octet-stream + file_ext: [ iso ] + + tosca.artifacts.Deployment.Image.VM.QCOW2: + derived_from: tosca.artifacts.Deployment.Image + description: Virtual Machine (VM) image in QCOW v2 standard disk format + mime_type: application/octet-stream + file_ext: [ qcow2 ] + +policy_types: + tosca.policies.Root: + description: The TOSCA Policy Type all other TOSCA Policy Types derive from. + + tosca.policies.Placement: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern + placement of TOSCA nodes or groups of nodes. + + tosca.policies.Scaling: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern + scaling of TOSCA nodes or groups of nodes. + + tosca.policies.Update: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern + update of TOSCA nodes or groups of nodes. + + tosca.policies.Performance: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to declare + performance requirements for TOSCA nodes or groups of nodes. + +group_types: + tosca.groups.Root: + description: The TOSCA Group Type all other TOSCA Group Types derive from + interfaces: + Standard: + type: tosca.interfaces.node.lifecycle.Standard + diff --git a/docs/refspec/open-o/vnfd/vNAT.yaml b/docs/refspec/open-o/vnfd/vNAT.yaml new file mode 100644 index 0000000..afb717c --- /dev/null +++ b/docs/refspec/open-o/vnfd/vNAT.yaml @@ -0,0 +1,140 @@ +#
+# Copyright 2017 ZTE Corporation.
+#
+# 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.
+#
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+metadata:
+ vnfProvider: intel
+ vnfProductName: openNAT
+ vnfSoftwareVersion: 1.0.0
+ vnfdVersion: 1.0.0
+ vnfProductInfoName: openNAT
+ vnfProductInfoDescription: openNAT
+ localizationLanguage: [english, chinese]
+ defaultLocalizationLanguage: english
+ vnfdId: openNAT-1.0
+ vnfmInfo: GVNFM
+
+imports:
+ - defintions/tosca-simple-nfv-1.1.yaml
+ - defintions/tosca-simple-1.0.yaml
+
+node_types:
+ tosca.nodes.nfv.VNF.vOpenNAT:
+ derived_from: tosca.nodes.nfv.VNF
+ requirements:
+ - sriov_plane:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ node: tosca.nodes.nfv.VnfVirtualLinkDesc
+ relationship: tosca.relationships.nfv.VirtualLinksTo
+
+topology_template:
+
+ substitution_mappings:
+ node_type: tosca.nodes.nfv.VNF.vOpenNAT
+ requirements:
+ sriov_plane: [SRIOV_Port, virtual_link]
+
+ node_templates:
+ vdu_vNat:
+ type: tosca.nodes.nfv.VDU.Compute
+ properties:
+ name: vNat
+ description: the virtual machine of vNat
+ boot_order:
+ - vNAT_Storage
+ configurable_properties:
+ test:
+ additional_vnfc_configurable_properties:
+ aaa: "1"
+
+ capabilities:
+ virtual_compute:
+ properties:
+ virtual_cpu:
+ cpu_architecture: X86
+ num_virtual_cpu: 6
+ virtual_memory:
+ virtual_mem_size: 2 GB
+ numa_enabled: true
+ requested_additional_capabilities:
+ numa:
+ support_mandatory: true
+ requested_additional_capability_name: numa
+ target_performance_parameters:
+ hw:numa_nodes: "2"
+ hw:numa_cpus.0: "0,1"
+ hw:numa_mem.0: "1024"
+ hw:numa_cpus.1: "2,3,4,5"
+ hw:numa_mem.1: "1024"
+
+ # hyper_threading:
+ # support_mandatory: true
+ # requested_additional_capability_name: hyper_threading
+ # target_performance_parameters:
+ # hw:cpu_sockets : "2"
+ # hw:cpu_threads : "2"
+ # hw:cpu_cores : "2"
+ # hw:cpu_threads_policy: "isolate"
+
+ ovs_dpdk:
+ support_mandatory: true
+ requested_additional_capability_name: ovs_dpdk
+ target_performance_parameters:
+ sw:ovs_dpdk: "true"
+ requirements:
+ - virtual_storage:
+ node: vNAT_Storage
+ relationship:
+ properties:
+ location: /mnt/volume_0
+
+ artifacts:
+ vNatVNFImage:
+ file: /swimages/xenial-snat.qcow2
+ type: tosca.artifacts.nfv.SwImage
+ properties:
+ name: vNatVNFImage
+ version: "1.0"
+ checksum: "5000"
+ container_format: bare
+ disk_format: qcow2
+ min_disk: 10 GB
+ min_ram: 1 GB
+ size: 10 GB
+ sw_image: /swimages/xenial-snat.qcow2
+ operating_system: ubuntu
+
+ vNAT_Storage:
+ type: tosca.nodes.nfv.VDU.VirtualStorage
+ properties:
+ type_of_storage: volume
+ size_of_storage: 10 GB
+ rdma_enabled: false
+
+ SRIOV_Port:
+ type: tosca.nodes.nfv.VduCpd
+ properties:
+ virtual_network_interface_requirements:
+ - name: sriov
+ description: sriov
+ support_mandatory: false
+ requirement:
+ SRIOV: "true"
+ layer_protocol: ipv4
+ description: sriov port
+ requirements:
+ - virtual_binding: vdu_vNat
diff --git a/docs/refspec/open-o/vnfd/vnf-dm-sample.rst b/docs/refspec/open-o/vnfd/vnf-dm-sample.rst new file mode 100755 index 0000000..c342c41 --- /dev/null +++ b/docs/refspec/open-o/vnfd/vnf-dm-sample.rst @@ -0,0 +1,18 @@ +.. ========================================================================
+.. Copyright 2017 CMCC Corporation.
+..
+.. 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.
+.. =========================================================================
+
+vnf dm sample
+=============
diff --git a/docs/refspec/open-o/vnfd/vnf-im-sample.rst b/docs/refspec/open-o/vnfd/vnf-im-sample.rst new file mode 100755 index 0000000..3acdd7e --- /dev/null +++ b/docs/refspec/open-o/vnfd/vnf-im-sample.rst @@ -0,0 +1,18 @@ +.. ========================================================================
+.. Copyright 2017 CMCC Corporation.
+..
+.. 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.
+.. =========================================================================
+
+vnf im sample
+=============
|