summaryrefslogtreecommitdiffstats
path: root/docs/refspec/open-o/vnfd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/refspec/open-o/vnfd')
-rwxr-xr-xdocs/refspec/open-o/vnfd/README.md27
-rw-r--r--docs/refspec/open-o/vnfd/tosca-simple-nfv-1.1.yaml429
-rw-r--r--docs/refspec/open-o/vnfd/tosca_definition_1.0.yaml892
-rw-r--r--docs/refspec/open-o/vnfd/vNAT.yaml140
-rwxr-xr-xdocs/refspec/open-o/vnfd/vnf-dm-sample.rst18
-rwxr-xr-xdocs/refspec/open-o/vnfd/vnf-im-sample.rst18
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
+=============