summaryrefslogtreecommitdiffstats
path: root/docs/developer
diff options
context:
space:
mode:
authorjulien zhang <zhang.jun3g@zte.com.cn>2017-02-28 07:24:24 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-02-28 07:24:24 +0000
commit9a2b86ff190a16822ec3f68b2c1d070d54a47da9 (patch)
tree7315aac40f9aed6c91f83429791f591b74e79cb3 /docs/developer
parent69e33063b3703ae4529b556b63b3c4cc239c3d9a (diff)
parente243c1f9c40c5acee4fb89d99fae05f7a46768be (diff)
Merge "Release D doc update"
Diffstat (limited to 'docs/developer')
-rw-r--r--docs/developer/design/examples/Simple_RNC.yaml457
-rw-r--r--docs/developer/design/examples/Simple_RNC_definition.yaml119
-rw-r--r--docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml627
-rw-r--r--docs/developer/design/examples/clearwater_tosca.yaml151
-rw-r--r--docs/developer/design/images/vRNC_Definition.pngbin0 -> 3935 bytes
-rw-r--r--docs/developer/design/images/vRNC_Topology.pngbin0 -> 33723 bytes
-rw-r--r--docs/developer/design/index.rst15
-rw-r--r--docs/developer/design/parser_new_keywords.rst117
-rw-r--r--docs/developer/design/policy2tosca.rst87
-rw-r--r--docs/developer/design/vRNC_tosca_intro.rst166
-rw-r--r--docs/developer/design/yang2tosca.rst98
-rw-r--r--docs/developer/overview/index.rst13
-rw-r--r--docs/developer/overview/overview.rst89
-rw-r--r--docs/developer/requirements/index.rst11
14 files changed, 1950 insertions, 0 deletions
diff --git a/docs/developer/design/examples/Simple_RNC.yaml b/docs/developer/design/examples/Simple_RNC.yaml
new file mode 100644
index 0000000..281b064
--- /dev/null
+++ b/docs/developer/design/examples/Simple_RNC.yaml
@@ -0,0 +1,457 @@
+## 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_profile_for_nfv_1_0_0
+
+metadata:
+ template_name: tosca_simple_profile_for_nfv_vRNC
+ template_author: opnfv_parser_project_from_zte
+ template_version: tosca_simple_profile_for_nfv_1_0
+
+# Optional description of the definitions inside the file.
+description: >
+ TOSCA simple profile for RNC
+ 1. Compute Node MM, CM, DM, LB...
+ 1.1 MM: MaintainModule;
+ 1.2 CM: Control Module;
+ 1.3 DM: Data Module;
+ 1.4 LB: LineCard Module
+ 2. Network Node VL and CP
+
+imports:
+ - Simple_RNC_definition.yaml
+
+# list of YAML alias anchors (or macros)
+dsl_definitions:
+ compute_props_os_DEF: &compute_props_os_DEF
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.10
+
+ compute_props_host_MM: &compute_props_host_MM
+ disk_size: 80 GB
+ iops: 300
+ num_cpus: 8
+ mem_size: 8192 MB
+ swap: 512 MB
+
+ compute_props_host_CM: &compute_props_host_CM
+ disk_size: 0 GB
+ num_cpus: 8
+ mem_size: 8192 MB
+
+ compute_props_host_DM: &compute_props_host_DM
+ disk_size: 0 GB
+ num_cpus: 8
+ mem_size: 8192 MB
+
+ compute_props_host_LB: &compute_props_host_LB
+ disk_size: 0 GB
+ num_cpus: 4
+ mem_size: 8192 MB
+
+# topology template definition of the cloud application or service
+topology_template:
+ # a description of the topology template
+ description: >
+ simple RNC template
+
+ inputs:
+ mm_storage_size:
+ type: integer
+ default: 40 GB
+ description: mm additional block storage size
+ constraints:
+ - in_range: [ 1, 200 ]
+
+ substitution_mappings:
+ node_type: rnc.nodes.VNF
+ requirements:
+ virtualLink_VNFM: [ MM_Port_CTRL, virtualLink ]
+ virtualLink_EMS: [ MM_Port_EMS, virtualLink ]
+ virtualLink_TRAFFIC: [ LB_Port_EXTERMEDIA, virtualLink ]
+
+ # definition of the node templates of the topology
+ node_templates:
+ MM_Active:
+ type: rnc.nodes.compute.MM
+ properties:
+ activestatus: 1
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_MM
+ requirements:
+ - local_storage:
+ node: MM_BlockStorage
+ relationship: Storage_attachesto
+ artifacts:
+ #the VM image of MM
+ vm_image: mm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: mm_install.sh
+ configure:
+ implementation: mm_active_configure.sh
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ MM_Passive:
+ type: rnc.nodes.compute.MM
+ properties:
+ activestatus: 0
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_MM
+ requirements:
+ - local_storage:
+ node: MM_BlockStorage
+ relationship: Storage_attachesto
+ - high_availability: MM_Active
+ artifacts:
+ #the VM image of MM
+ vm_image: mm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: mm_install.sh
+ configure:
+ implementation: mm_passvie_configure.sh
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ CM_Active:
+ type: rnc.nodes.compute.CM
+ properties:
+ activestatus: 1
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_CM
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 126
+ default_instances: 1
+ artifacts:
+ #the VM image of CM
+ vm_image: cm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: cm_install.sh
+ configure:
+ implementation: cm_active_configure.sh
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ CM_Passive:
+ type: rnc.nodes.compute.CM
+ properties:
+ activestatus: 0
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_CM
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 126
+ default_instances: 1
+ requirements:
+ - high_availability: CM_Active
+ artifacts:
+ #the VM image of CM
+ vm_image: mm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: cm_install.sh
+ configure:
+ implementation: cm_passvie_configure.sh
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ DM:
+ type: rnc.nodes.compute.DM
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_DM
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 120
+ default_instances: 1
+ artifacts:
+ vm_image: dm.image
+ interfaces:
+ Standard:
+ create:
+ implementation: dm_install.sh
+ configure:
+ implementation: dm_configure.sh
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ LB:
+ type: rnc.nodes.compute.LB
+ capabilities:
+ os:
+ properties: *compute_props_os_DEF
+ host:
+ properties: *compute_props_host_LB
+ scalable:
+ properties:
+ min_instances: 1
+ max_instances: 20
+ default_instances: 1
+ artifacts:
+ #the VM image of LB
+ vm_image: lb.image
+ interfaces:
+ Standard:
+ create:
+ implementation: lb_install.sh
+ configure:
+ implementation: lb_configure.sh
+ attributes:
+ ip_address: { get_attribute: [ SELF, private_address ] }
+
+ MM_BlockStorage:
+ type: rnc.nodes.BlockStorage
+ properties:
+ size: { get_input: mm_storage_size }
+ interfaces:
+ Configure:
+ post_configure_target:
+ implementation: default_script.sh
+
+ CTRL_Net:
+ type: rnc.nodes.VL
+ properties:
+ vendor: ZTE
+ cidr: "128.0.0.0/8"
+ network_name: Ctrl_Net
+ network_type: vlan
+ segmentation_id: 110
+ dhcp_enabled: false
+
+ INTERMEDIA_Net:
+ type: rnc.nodes.VL
+ properties:
+ vendor: ZTE
+ cidr: 10.0.0.0/8
+ start_ip: 10.1.0.1
+ end_ip: 10.1.2.254
+ network_name: InterMedia_Net
+ network_type: vlan
+ segmentation_id: 111
+ dhcp_enabled: false
+
+ EXTERMEDIA_Net:
+ type: rnc.nodes.VL
+ properties:
+ vendor: ZTE
+ cidr: 172.1.0.0/16
+ start_ip: 172.1.0.2
+ end_ip: 172.1.2.254
+ gateway_ip: 172.1.0.1
+ network_name: ExterMdedia_Net
+ network_type: vlan
+ segmentation_id: 100
+ dhcp_enabled: false
+
+ EMS_Net:
+ type: rnc.nodes.VL
+ properties:
+ vendor: ZTE
+ cidr: 129.0.0.0/24
+ start_ip: 129.0.0.2
+ end_ip: 129.0.0.64
+ gateway_ip: 129.0.0.1
+ network_name: Ems_Net
+ network_type: vlan
+ segmentation_id: 101
+ dhcp_enabled: false
+
+ MM_Port_EMS:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualBinding: MM_Active
+ - virtualLink: EMS_Net
+
+ MM_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualBinding: MM_Active
+ - virtualLink: CTRL_Net
+
+ MM_Port_EXTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 2
+ is_default: false
+ requirements:
+ - virtualBinding: MM_Active
+ - virtualLink: EXTERMEDIA_Net
+
+ CM_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualBinding: CM_Active
+ - virtualLink: CTRL_Net
+
+ CM_Port_INTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualBinding: CM_Active
+ - virtualLink: INTERMEDIA_Net
+
+ DM_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualBinding: DM
+ - virtualLink: CTRL_Net
+
+ DM_Port_INTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualBinding: DM
+ - virtualLink: INTERMEDIA_Net
+
+ LB_Port_CTRL:
+ type: rnc.nodes.CP
+ properties:
+ order: 0
+ is_default: true
+ requirements:
+ - virtualBinding: LB
+ - virtualLink: CTRL_Net
+
+ LB_Port_INTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 1
+ is_default: false
+ requirements:
+ - virtualBinding: LB
+ - virtualLink: INTERMEDIA_Net
+
+ LB_Port_EXTERMEDIA:
+ type: rnc.nodes.CP
+ properties:
+ order: 2
+ is_default: false
+ requirements:
+ - virtualBinding: LB
+ - virtualLink: EXTERMEDIA_Net
+
+ # definition of the relationship templates of the topology
+ relationship_templates:
+ Storage_attachesto:
+ type: tosca.relationships.AttachesTo
+ properties:
+ location: /data_location
+
+ # definition of output parameters for the topology template
+ outputs:
+ private_ip_of_MM:
+ description: The private IP address of the MM.
+ value: { get_attribute: [ MM_Active, private_address ] }
+
+ private_ip_of_CM:
+ description: The private IP address of the CM.
+ value: { get_attribute: [ CM_Active, private_address ] }
+
+ private_ip_of_DM:
+ description: The private IP address of the DM.
+ value: { get_attribute: [ DM, private_address ] }
+
+ private_ip_of_LB:
+ description: The private IP address of the LB.
+ value: { get_attribute: [ LB, private_address ] }
+
+ # definition of logical groups of node templates within the topology
+ # To be continue about this section
+ groups:
+ AnitAffinityServerGroup:
+ type: tosca.groups.Root
+ description: >
+ Logical component grouping for anti affinity placement,
+ MM_Acitve, MM_Passive, CM_Acitve, CM_Passive, LB must host
+ on different host to reduce the impact to each other.
+ members: [ MM_Active, MM_Passive, CM_Active, CM_Passive, LB ]
+ policies:
+ type: tosca.policy.placement.Antilocate
+
+ AffinityServerGroup:
+ type: tosca.groups.Root
+ description: >
+ Logical component grouping for affinity placement,
+ CM and DM will be host on the same host to get high performence
+ members: [ CM_Active, DM ]
+ policies:
+ type: tosca.policy.placement.Antilocate
+
+ policies:
+ - AnitAffinityPolicy:
+ type: tosca.policies.Placement.Antilocate
+ description: Apply anti-locate placement policy to group
+ targets: [ AnitAffinityServerGroup ]
+
+ - AffinityPolicy:
+ type: tosca.policies.Placement.Colocate
+ description: Apply anti-locate placement policy to group
+ targets: [ AffinityServerGroup ]
+
+ # ServerGroupScaling_DM: # added future
+ # members: [ DM, ]# only one, will be error
+ # policies:
+ # - name: MyScaleUpPolicy
+ # - type: tosca.policy.scale.up | tosca.policy.scale.down
+ # - rule: fn.utilizaton [ DM ], greater_than: 80
+ # - trigger: script_dm
+
+ # ServerGroupScaling_LB: # added future
+ # members: [ LB, ] # only one, will be error
+ # policies:
+ # - name: MyScaleUpPolicy
+ # - type: tosca.policy.scale.up | tosca.policy.scale.down
+ # - rule: fn.utilizaton [ LB ], greater_than: 80
+ # - trigger: script_lb
diff --git a/docs/developer/design/examples/Simple_RNC_definition.yaml b/docs/developer/design/examples/Simple_RNC_definition.yaml
new file mode 100644
index 0000000..7478d98
--- /dev/null
+++ b/docs/developer/design/examples/Simple_RNC_definition.yaml
@@ -0,0 +1,119 @@
+## 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_profile_for_nfv_1_0_0
+
+#metadata:
+# template_name: tosca_simple_profile_for_nfv_vRNC
+# template_author: opnfv_parser_project_from_zte
+# template_version: tosca_simple_profile_for_nfv_1_0
+
+# Optional description of the definitions inside the file.
+description: >
+ NFV TOSCA simple profile for RNC types
+ 1. Compute Node MM, CM, DM, LB...
+ 1.1 MM: MaintainModule;
+ 1.2 CM: Control Module;
+ 1.3 DM: Data Module;
+ 1.4 LB: LineCard Module.
+ 2. Network Node VL and CP
+
+# The import section shall be ignored if the value of tosca_definitions_version
+# is tosca_simple_profile_for_nfv_1_0_0, otherwise will be needed.
+#imports:
+# - TOSCA_nfv_definition_1_0.yaml
+
+# list of node type definitions
+node_types:
+ rnc.nodes.VNF:
+ derived_from: tosca.nodes.nfv.VNF
+ properties:
+ vnftype:
+ type: string
+ description: type of the RNC
+ default: UMTS
+ required: false
+ constraints:
+ - valid_values: [ TDS-CDMA, UMTS, CDMA ]
+ requirements:
+ - virtualLink_VNFM:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ relationship: tosca.relationships.nfv.VirtualLinksTo
+ node: rnc.nodes.VL
+ - virtualLink_EMS:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ relationship: tosca.relationships.nfv.VirtualLinksTo
+ node: rnc.nodes.VL
+ - virtualLink_TRAFFIC:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ relationship: tosca.relationships.nfv.VirtualLinksTo
+ node: rnc.nodes.VL
+
+ rnc.nodes.compute.MM:
+ derived_from: tosca.nodes.nfv.VDU
+ properties:
+ activestatus:
+ type: integer
+ description: 1 for active or 0 for passive
+ constraints:
+ - valid_values: [ 0, 1 ]
+ id:
+ type: string
+ defaule: MM
+ description: >
+ A identifier of this VDU within the scope of the VNFD,
+ including version functional description and other
+ identification information.
+
+ rnc.nodes.compute.CM:
+ derived_from: tosca.nodes.nfv.VDU
+ properties:
+ activestatus:
+ type: integer
+ description: 1 for active or 0 for passive
+ constraints:
+ - valid_values: [ 0, 1 ]
+
+ rnc.nodes.compute.DM:
+ derived_from: tosca.nodes.nfv.VDU
+
+ rnc.nodes.compute.LB:
+ derived_from: tosca.nodes.nfv.VDU
+
+ rnc.nodes.BlockStorage:
+ derived_from: tosca.nodes.BlockStorage
+
+ rnc.nodes.VL:
+ derived_from: tosca.nodes.nfv.VL
+
+ rnc.nodes.CP:
+ derived_from: tosca.nodes.nfv.CP
+
+# list of capability type definitions
+capability_types:
+ rnc.capabilities.Container:
+ derived_from: tosca.capabilities.Container
+ properties:
+ swap:
+ type: scalar-unit.size
+ description: swap info
+ required: false
+ default: 0
+ constraints:
+ - greater_or_equal: 0 MB
+ iops:
+ type: integer
+ description: IOPS for disk
+ required: false
+ default: 0
+ constraints:
+ - greater_than: 0
diff --git a/docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml b/docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml
new file mode 100644
index 0000000..c535144
--- /dev/null
+++ b/docs/developer/design/examples/TOSCA_nfv_definition_1_0.yaml
@@ -0,0 +1,627 @@
+# 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.
+
+##########################################################################
+# The content of this file reflects TOSCA NFV Profile in YAML version
+# 1.0.0, which is derived from TOSCA Simple Profile. It describes the
+# definition for nfv TOSCA types including Node Type,
+# Relationship Type, Capability Type and Interfaces.
+##########################################################################
+tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
+
+##########################################################################
+# Node Type.
+# A Node Type is a reusable entity that defines the type of one or more
+# Node Templates.
+##########################################################################
+
+tosca.nodes.nfv.VNF:
+ derived_from: tosca.nodes.Root
+ properties:
+ id:
+ type: string
+ description: ID of this VNF
+ vendor:
+ type: string
+ description: name of the vendor who generate this VNF
+ version:
+ type: version
+ description: version of the software for this VNF
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ relationship: tosca.relationships.nfv.VirtualLinksTo
+ node: tosca.nodes.nfv.VL
+
+tosca.nodes.nfv.VDU:
+ derived_from: tosca.nodes.Compute
+ properties:
+ id:
+ type: string
+ required: true
+ description: >
+ A unique identifier of this VDU within the scope
+ of the VNFD, including version functional
+ description and other identification information.
+ This will be used to refer to VDU when defining
+ relationships between them.
+ capabilities:
+ high_availability:
+ type: tosca.capabilities.nfv.HA
+ virtualbinding:
+ type: tosca.capabilities.nfv.VirtualBindable
+ monitoring_parameter:
+ type: tosca.capabilities.nfv.Metric
+ requirements:
+ - high_availability:
+ capability: tosca.capabilities.nfv.HA
+ relationship: tosca.relationships.nfv.HA
+ node: tosca.nodes.nfv.VDU
+ occurrences: [ 0, 1 ]
+
+tosca.nodes.nfv.CP:
+ derived_from: tosca.nodes.network.Port
+ description: >
+ The NFV CP node represents a logical connection point
+ entity as defined by ETSI GS NFV-MAN
+ properties:
+ type:
+ type: string
+ required: false
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ relationship: tosca.relationships.nfv.VirtualLinksTo
+ node: tosca.nodes.nfv.VL
+ - virtualBinding:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ relationship: tosca.relationships.nfv.VirtualBindsTo
+ node: tosca.nodes.nfv.VDU
+
+tosca.nodes.nfv.VL:
+ derived_from: tosca.nodes.network.Network
+ properties:
+ vendor:
+ type: string
+ required: true
+ description: name of the vendor who generate this VL
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.nfv.VirtualLinkable
+
+tosca.nodes.nfv.VL.ELine:
+ derived_from: tosca.nodes.nfv.VL
+ capabilities:
+ virtual_linkable:
+ occurrences: 2
+
+tosca.nodes.nfv.VL.ELAN:
+ derived_from: tosca.nodes.nfv.VL
+
+tosca.nodes.nfv.VL.ETree:
+ derived_from: tosca.nodes.nfv.VL
+
+tosca.nodes.nfv.FP:
+ derived_from: tosca.nodes.Root
+ properties:
+ policy:
+ type: string
+ required: false
+ description: name of the vendor who generate this VL
+ requirements:
+ - forwarder:
+ capability: tosca.capabilities.nfv.Forwarder
+ relationship: tosca.relationships.nfv.ForwardsTo
+
+##########################################################################
+# Relationship Type.
+# A Relationship Type is a reusable entity that defines the type of one
+# or more relationships between Node Types or Node Templates.
+##########################################################################
+
+tosca.relationships.nfv.VirtualLinksTo:
+ derived_from: tosca.relationships.network.LinksTo
+ valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
+
+tosca.relationships.nfv.VirtualBindsTo:
+ derived_from: tosca.relationships.network.BindsTo
+ valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ]
+
+tosca.relationships.nfv.HA:
+ derived_from: tosca.relationships.Root
+ valid_target_types: [ tosca.capabilities.nfv.HA ]
+
+tosca.relationships.nfv.Monitor:
+ derived_from: tosca.relationships.ConnectsTo
+ valid_target_types: [ tosca.capabilities.nfv.Metric ]
+
+tosca.relationships.nfv.ForwardsTo:
+ derived_from: tosca.relationships.root
+ valid_target_types: [ tosca.capabilities.nfv.Forwarder]
+
+##########################################################################
+# Capability Type.
+# A Capability Type is a reusable entity that describes a kind of
+# capability that a Node Type can declare to expose.
+##########################################################################
+
+tosca.capabilities.nfv.VirtualLinkable:
+ derived_from: tosca.capabilities.network.Linkable
+
+tosca.capabilities.nfv.VirtualBindable:
+ derived_from: tosca.capabilities.network.Bindable
+
+tosca.capabilities.nfv.HA:
+ derived_from: tosca.capabilities.Root
+ valid_source_types: [ tosca.nodes.nfv.VDU ]
+
+tosca.capabilities.nfv.HA.ActiveActive:
+ derived_from: tosca.capabilities.nfv.HA
+
+tosca.capabilities.nfv.HA.ActivePassive:
+ derived_from: tosca.capabilities.nfv.HA
+
+tosca.capabilities.nfv.Metric:
+ derived_from: tosca.capabilities.Root
+
+tosca.capabilities.nfv.Forwarder:
+ derived_from: tosca.capabilities.Root
+
+
+
+tosca.capabilities.nfv.CPU_extension:
+ derived_from: tosca.capabilities.Root
+ properties:
+ cpu_instruction_set_extension:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ Instruction sets are often enhanced with
+ instruction set extensions. This element
+ represents instruction set extensions that the
+ VDU has been developed, optimized or tested with
+ cpu_model:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ The CPU model for which the VDU has been
+ developed, compiled with CPU model specific
+ optimisations, optimized or validated on.
+ cpu_model_specification_binding:
+ type: string
+ required: false
+ description: >
+ VDUs may be developed, compiled, optimized
+ or validated on particular CPU models. Some
+ deployments may wish to permit the VDU to
+ be deployed on a platform with the specified
+ CPU only, or with an alternative CPU with the
+ same architecture, instruction set, and if
+ specified, instruction set extensions, or with a
+ CPU of equivalent or greater capability.
+ cpu_min_clock_speed:
+ type: string
+ required: false
+ description: >
+ The minimum CPU clock speed may be one of
+ the elements that the development and
+ validation of the VDU has been considered
+ with. This may be in conjunction with some of
+ the other CPU elements such as CPU Model.
+ Requiring a minimum clock speed may be part
+ of a deployment requirement necessary to
+ help ensure particular performance or timing
+ related characteristics are met in the
+ deployment.
+ cpu_core_reservation:
+ type: string
+ required: false
+ description: >
+ The number of CPU cores allocated to the
+ VDU. This may be necessary to help ensure
+ particular performance or timing related
+ characteristics are met in the deployment.
+ cpu_simultaneous_multi_threading_hw_thread_specification:
+ type: string
+ required: false
+ description: >
+ The use of Simultaneous Multi-Threading HW
+ is an efficient way to increase the compute
+ capacity of a platform. SMT HW threads share
+ some CPU core resources. In some VDU
+ implementations, it may be necessary to very
+ explicitly control the HW thread allocation on a
+ platform. This could be to help ensure locality
+ in data caches or as a mechanism to enhance
+ determinism.
+ cpu_core_oversubscription_policy:
+ type: string
+ required: false
+ description: >
+ The VDU may co-exist on a platform with
+ multiple VDUs or VMs and as such will be
+ sharing CPU core resources available in the
+ platform. It may be necessary to specify the
+ CPU core oversubscription policy in terms of
+ virtual cores to physical cores/threads on the
+ platform. This policy could be based on
+ required VDU deployment characteristics such
+ as high performance, low latency, and /or
+ deterministic behaviour.
+ cpu_core_and_hw_thread_allocation_topology_policy:
+ type: string
+ required: false
+ description: >
+ The VDU may be designed to use a specific
+ mapping of virtual CPUs to HW threads or
+ cores with a specific allocation topology in
+ order to ensure locality in data caches and
+ maximize performance. The VDU will not
+ specify which physical resources to use, but
+ may specify if virtual CPUs shall be coupled
+ together as HW threads belonging to the same
+ core, or as belonging to the same processor.
+ cpu_last_level_cache_size:
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 KB
+ description: >
+ The size of the last level cache may impact the
+ performance of the VDU, particularly for cache
+ intensive workloads.
+ cpu_direct_io_access_to_cache:
+ type: string
+ required: false
+ description: >
+ The ability of an I/O device to have direct
+ access to the CPU cache enables
+ considerable memory access savings and for
+ I/O intensive workloads can offer significant
+ performance benefits.
+ cpu_translation_look_aside_buffer_parameter:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ The Translation Look-aside Buffer (TLB) is a
+ cache for address translation typically used by
+ a hardware based memory management units.
+ The Input/Output TLB (IOTLB) is a cache for
+ address translation related to remapping
+ hardware. The availability of a TLB and an
+ IOTLB can significantly improve the
+ performance of a virtual machine.
+ A number of parameters of the TLBs impact
+ the performance potential. These include:
+ 1 TLB Size.
+ 2 TLB Large Page Support.
+ 3 IOTLB Size.
+ 4 IOTLB Large Page Support.
+ cpu_hot_add:
+ type: boolean
+ required: false
+ description: >
+ Hot add CPU is the ability to dynamically add
+ CPUs to a running system. The new CPU can
+ immediately replace a failing CPU via
+ migration or be brought on-line later.
+ cpu_support_accelerator:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ This capability refers to support by the CPU
+ and associated chipsets of a data processing
+ accelerator framework, together with its
+ libraries and drivers.
+
+tosca.capabilities.nfv.Memory_extension:
+ derived_from: tosca.capabilities.Root
+ properties:
+ memory_parameter:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ There are a number of memory related parameters that can have a
+ significant impact on the performance and/or reliability of the VDU.
+ These include:
+ • Memory Type.
+ • Memory Speed
+ • Number of memory channels.
+ • Size of available memory.
+ • Reliability characteristics such as Memory Error Correction
+ codes.
+ • Memory oversubscription policy.
+ • Memory bandwidth required per VDU.
+ • Number of large pages required per VDU
+ • Non-Uniform Memory Architecture (NUMA) Allocation Policy,
+ i.e. in NUMA architecture how you specify memory allocation
+ that is cognisant of the relevant process/core allocation. This
+ applies also to allocation of huge pages.
+ memory_hot_add:
+ type: boolean
+ required: false
+ description: >
+ Hot add memory is the ability to add physical memory while the system
+ is running. Added memory can immediately replace failing memory via
+ migration or be brought on-line later.
+
+tosca.capabilities.nfv.Hypervisors:
+ derived_from: tosca.capabilities.Root
+ properties:
+ hypervisors:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ There are a number of hypervisor related parameters that can have a
+ significant impact on the deployment and performance of the VDU.
+ These include:
+ • Hypervisor type
+ • Hypervisor version as a VDU may be validated with a particular
+ version.
+ • Hypervisor Address Translation support parameters including:
+ o Second Level Address Translation.
+ o Second Level Address Translation with Large page
+ support.
+ o Second Level Address Translation for I/O.
+ o Second Level Address Translation for I/O with Large page.
+ support. Where "Large" is considered to be 1 GB or
+ greater.
+ o Support for interrupt remapping, i.e. supporting the IOMMU
+ in the hypervisor.
+ o Support of data processing acceleration libraries in the
+ hypervisor, i.e. for acceleration libraries which require
+ hypervisor support for high performance.
+
+tosca.capabilities.nfv.PCIe:
+ derived_from: tosca.capabilities.Root
+ properties:
+ platform_pcie_parameter:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ There are a number of PCIe related parameters that can
+ have a significant impact on the deployment and
+ performance of the VDU. These include:
+ • PCIe generational capabilities.
+ • PCIe bandwidth.
+ • PCIe Device Pass-through.
+ • PCIe SR-IOV as the VDU may require that an SR-
+ IOV virtual vunction from the specified PCIe
+ device can be allocated to the VM.
+ • PCIe Device Assignment Affinity. The VDU may
+ require for performance reasons the ability to
+ allocate a partitionable PCIe Device capability
+ such as a NIC port, an entire NIC or a NIC virtual
+ function to the VDU while also ensuring that the
+ selected device is locally connected to the same
+ processor.
+ platform_pcie_parameter:
+ type: string
+ required: false
+ description: >
+ Detecting and reporting correctable and un-correctable
+ (fatal and non-fatal) PCIe errors to software for error
+ handling and remediation.
+ platform_acceleration_device:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ The VDU may have been developed, optimized or
+ tested with an acceleration device such as a crypto
+ accelerator that may typically be accessed over a PCIe
+ bus.
+
+tosca.capabilities.nfv.network.Interfaces:
+ derived_from: tosca.capabilities.Root
+ properties:
+ network_interface_card_capability:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ The VDU may have been developed, optimized or
+ tested with certain NIC capabilities to benefit items
+ such as performance or scalability. These include:
+ • TCP Large Segmentation Offload (LSO) for
+ offload the segmentation of large TCP
+ messages into MTU sized packets from the
+ CPU to the NIC.
+ • Large Receive Offload (LRO), i.e. the
+ inverse of LSO by coalescing incoming
+ TCP/IP packets into larger segments for
+ processing in the CPU.
+ • Checksum Offload.
+ • Receive Side Scaling (RSS), for packet
+ distribution between cores.
+ • Flow Director, for more fine grained (than
+ RSS) packet distribution between cores.
+ • Mirroring of packets between interfaces.
+ • Availability of Independent Rx/Tx queues for
+ VM so that queue pairs in the NIC can be
+ allocated to the VMs.
+ • Jumbo Frame support.
+ • VLAN tag stripping.
+ • RDMA support.
+ • SR-IOV support.
+ • Data processing acceleration software
+ library support, e.g. DPDK ® - see note.
+ network_interface_bandwidth:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ The network speed/bandwidth to be guaranteed
+ per requested NIC.
+ data_processing_acceleration_library:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ Name and version of the data processing
+ acceleration library used. Orchestration can match
+ any NIC that is known to be compatible with the
+ specified library
+
+tosca.capabilities.nfv.network.Virtual_switches:
+ derived_from: tosca.capabilities.Root
+ properties:
+ vswitch_capability:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - min_length: 1
+ description: >
+ The VDU may have been developed, optimized or tested with a
+ particular vSwitch and may require specifying the vSwitch type, version
+ and key features such as overlay tunnel termination support.
+
+tosca.capabilities.nfv.Storage:
+ derived_from: tosca.capabilities.Root
+ properties:
+ storage_requirement:
+ type: scalar-unit.size
+ required: false
+ constraints:
+ - greater_or_equal: 0 MB
+ description: >
+ Required storage characteristics (e.g. size), including Key Quality
+ Indicators (KQIs) for performance and reliability/availability.
+ rdma_support_bandwitdh:
+ type: integer
+ required: false
+ constraints:
+ - greater_or_equal: 0
+ description: >
+ The VDU may have been developed, optimized or tested with a
+ storage supporting RDMA over a given bandwidth.
+
+
+
+##########################################################################
+# Group Type.
+# Defined within the TOSCA nfv Simple Profile specification.
+##########################################################################
+tosca.groups.nfv.VNFFG:
+ derived_from: tosca.groups.Root
+ properties:
+ vendor:
+ type: string
+ required: true
+ description: name of the vendor who generate this VNFFG
+ version:
+ type: string
+ required: true
+ description: version of this VNFFG
+ number_of_endpoints:
+ type: integer
+ required: true
+ description: count of the external endpoints included in this VNFFG
+ dependent_virtual_link:
+ type: list
+ description: Reference to a VLD used in this Forwarding Graph
+ required: true
+ entry_schema:
+ type: string
+ connection_point:
+ type: list
+ description: Reference to Connection Points forming the VNFFG
+ required: true
+ entry_schema:
+ type: string
+ constituent_vnfs:
+ type: list
+ description: Reference to a list of VNFD used in this VNF Forwarding Graph
+ required: true
+ entry_schema:
+ type: string
+ targets:
+ type: list
+ required: false
+ description: list of Network Forwarding Path within the VNFFG
+ entry_schema:
+ type: string
+ requirements:
+ - forwarder:
+ capability: tosca.capabilities.nfv.Forwarder
+ relationship: tosca.relationships.nfv.ForwardsTo
+
+#data_types:
+##########################################################################
+# Data Type. To be continue
+# A Datatype is a complex data type declaration which contains other
+# complex or simple data types.
+# BWT: will be added future.
+##########################################################################
+#tosca.datatypes.network.XX:
+# properties:
+# network_name:
+# type: string
+# network_id:
+# type: string
+# addresses:
+# type: list
+# entry_schema:
+# type: string
+
+#artifact_types:
+##########################################################################
+# Artifact Type.To be continue
+# An Artifact Type is a reusable entity that defines the type of one or more
+# files which Node Types or Node Templates can have dependent relationships
+# and used during operations such as during installation or deployment.
+# BWT: will be added future.
+##########################################################################
+#tosca.artifacts.File.XXX:
+# derived_from: tosca.artifacts.Root
diff --git a/docs/developer/design/examples/clearwater_tosca.yaml b/docs/developer/design/examples/clearwater_tosca.yaml
new file mode 100644
index 0000000..2b4dd52
--- /dev/null
+++ b/docs/developer/design/examples/clearwater_tosca.yaml
@@ -0,0 +1,151 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+description: >
+ This module defines a VNF Deployment Unit.
+
+metadata:
+ template_name: clearwater
+ template_author: HP
+
+dsl_definitions:
+ compute_props_host_ellis: &compute_props_host_ellis
+ num_cpu: 4
+ mem_size: 4096
+ compute_props_host_bono: &compute_props_host_bono
+ num_cpu: 3
+ mem_size: 2048
+
+node_types:
+ tosca.nodes.compute.ellis:
+ derived_from: tosca.nodes.compute
+
+ tosca.nodes.compute.bono:
+ derived_from: tosca.nodes.compute
+
+topology_template:
+ # a description of the topology template
+ description: >
+
+
+ inputs:
+ storage_size:
+ type: scalar-unit.size
+ default: 2048 M
+ description: The required storage resource
+
+ storage_location:
+ type: string
+ description: >
+ Block storage mount point (filesystem path).
+
+ node_templates:
+ ellis:
+ type: tosca.nodes.compute.ellis
+ capabilities:
+ host:
+ properties: *compute_props_host_ellis
+ scalable:
+ properties:
+ min_instances: 1
+ default_instances: 1
+ requirements:
+ - local_storage:
+ node: ellis_BlockStorage
+ relationship:
+ type: AttachesTo
+ properties:
+ location: { get_input: storage_location }
+ interfaces:
+ Standard:
+ start:
+ implementation: start.sh
+ delete:
+ implementaion: stop.sh
+ stop:
+ implementaion: shutdown.sh
+
+ ellis_BlockStorage:
+ type: tosca.nodes.BlockStorage
+ properties:
+ size: { get_input: storage_size }
+
+ bono:
+ type: tosca.nodes.compute.bono
+ capabilities:
+ host:
+ properties: *compute_props_host_bono
+ scalable:
+ properties:
+ min_instances: 3
+ default_instances: 3
+ requirements:
+ - local_storage:
+ node: bono_BlockStorage
+ relationship:
+ type: AttachesTo
+ properties:
+ location: { get_input: storage_location }
+ interfaces:
+ Standard:
+ start:
+ implementation: start.sh
+ delete:
+ implementaion: stop.sh
+ stop:
+ implementaion: shutdown.sh
+
+ bono_BlockStorage:
+ type: tosca.nodes.BlockStorage
+ properties:
+ size: { get_input: storage_size }
+
+ clearwater_network1:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+
+ ellis_port1:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: ellis
+ - link:
+ node: clearwater_network1
+
+ clearwater_network2:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+
+ ellis_port2:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: ellis
+ - link:
+ node: clearwater_network2
+
+ clearwater_network1:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+
+ bono_port1:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: bono
+ - link:
+ node: clearwater_network1
+
+ clearwater_network2:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+
+ bono_port2:
+ type: tosca.nodes.network.Port
+ requirements:
+ - binding:
+ node: bono
+ - link:
+ node: clearwater_network2
diff --git a/docs/developer/design/images/vRNC_Definition.png b/docs/developer/design/images/vRNC_Definition.png
new file mode 100644
index 0000000..84d25e3
--- /dev/null
+++ b/docs/developer/design/images/vRNC_Definition.png
Binary files differ
diff --git a/docs/developer/design/images/vRNC_Topology.png b/docs/developer/design/images/vRNC_Topology.png
new file mode 100644
index 0000000..e4f04f1
--- /dev/null
+++ b/docs/developer/design/images/vRNC_Topology.png
Binary files differ
diff --git a/docs/developer/design/index.rst b/docs/developer/design/index.rst
new file mode 100644
index 0000000..ab83cec
--- /dev/null
+++ b/docs/developer/design/index.rst
@@ -0,0 +1,15 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+*********************************
+OPNFV Parser Design Documentation
+*********************************
+
+.. toctree::
+ :numbered:
+ :maxdepth: 6
+
+ yang2tosca.rst
+ policy2tosca.rst
+ parser_new_keywords.rst
+ vRNC_tosca_intro.rst
diff --git a/docs/developer/design/parser_new_keywords.rst b/docs/developer/design/parser_new_keywords.rst
new file mode 100644
index 0000000..f430b1d
--- /dev/null
+++ b/docs/developer/design/parser_new_keywords.rst
@@ -0,0 +1,117 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+===================
+New Parser keywords
+===================
+
+1.NFV-tosca new keywords
+------------------------
+
+All keywords in nfv tosca are not implemented in code, and will be
+implemented by parser.
+
+1.1 Nodes types
+~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.nodes.nfv.VDU
+* tosca.nodes.nfv.CP
+* tosca.nodes.nfv.VL
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.nodes.nfv.VL.ELine
+* tosca.nodes.nfv.VL.ELAN
+* tosca.nodes.nfv.VL.ETree
+* tosca.nodes.nfv.FP
+
+1.2 Capability types
+~~~~~~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.capabilities.nfv.VirtualBindable
+* tosca.capabilities.nfv.VirtualLinkable
+* tosca.capabilities.nfv.HA.ActiveActive
+* tosca.capabilities.nfv.HA.ActivePassive
+* tosca.capabilities.nfv.Metric
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.capabilities.nfv.Forwarder
+* tosca.capabilities.nfv.CPU\_extension
+* tosca.capabilities.nfv.Memory\_extension
+* tosca.capabilities.nfv.Hypervisors
+* tosca.capabilities.nfv.PCIe
+* tosca.capabilities.nfv.network.Interfaces
+* tosca.capabilities.nfv.network.Virtual\_switches
+* tosca.capabilities.nfv.Storage
+
+1.3 Relationship types
+~~~~~~~~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.relationships.nfv.VirtualBindsTo
+* tosca.relationships.nfv.VirtualLinksTo
+* tosca.relationships.nfv.HA
+* tosca.relationships.nfv.Monitor
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.relationships.nfv.ForwardsTo
+
+1.4 Group Types
+~~~~~~~~~~~~~~~
+
+* tosca.groups.nfv.VNFFG
+
+2.Simple-tosca new keywords
+---------------------------
+
+Some keywords are only defined in tosca simple profile,but are not
+supported in tosca-paser, and some keywords such as "policy type", are not yet defined
+completely so far.
+
+2.1 topology template keyname
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* "substitution\_mappings" syntax
+
+ An optional declaration that exports the topology template as an
+ impletmentation of a node type, which is not supported by tosca-parser.
+
+2.2 Group types
+~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.group.root
+
+2.3 Policy Types
+~~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.policies.Root
+* tosca.policies.Placement
+* tosca.policies.Scaling
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.policies.Update
+* tosca.policies.Performance
+* tosca.policy.placement.Antilocate
+* tosca.policy.placement.Colocate
+
diff --git a/docs/developer/design/policy2tosca.rst b/docs/developer/design/policy2tosca.rst
new file mode 100644
index 0000000..fa238b2
--- /dev/null
+++ b/docs/developer/design/policy2tosca.rst
@@ -0,0 +1,87 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+===================
+Parser POLICY2TOSCA
+===================
+
+Overview
+========
+
+Parser is an open source project and licensed under Apache 2. Parser will help
+to provide a tooling mechanism, by parsing Telecom operators’ VNF descriptors
+(YANG templates) into TOSCA templates and then further translate TOSCA
+templates into certain common templates, which could be used in IaaS orchestration
+projects like OpenStack Heat.
+
+Prerequisites
+=============
+
+Parser - POLICY2TOSCA requires the following to be installed.
+
+1. cliff
+--------
+
+Install cliff with the following links.
+::
+- `install <http://docs.openstack.org/developer/cliff/install.html>`
+or
+- `demoapp <http://docs.openstack.org/developer/cliff/demoapp.html>`
+
+Installation
+============================
+
+Please follow the below installation steps to install parser - POLICY2TOSCA.
+
+Step 1: Clone the parser project.
+
+.. code-block:: bash
+
+ git clone https://gerrit.opnfv.org/gerrit/parser
+
+Step 2: Install the policy2tosca module.
+
+.. code-block:: bash
+
+ cd parser/policy2tosca
+ python setup.py install
+
+Execution
+===========================
+
+Step 1: To see a list of commands available.
+
+.. code-block:: bash
+
+ policy2tosca --help
+
+Step 2: To see help for an individual command, include the command name on the command line
+
+.. code-block:: bash
+
+ policy2tosca help <service>
+
+Step 3: To inject/remove policy types/policy definitions provide the TOSCA file as input to policy2tosca command line.
+
+.. code-block:: bash
+
+ policy2tosca <service> [arguments]
+
+Example:
+
+.. code-block:: bash
+
+ policy2tosca add-definition --policy_name rule2 --policy_type tosca.policies.Placement.Geolocation --description "test description" --properties region:us-north-1,region:us-north-2,min_inst:2 --targets VNF2,VNF4 --metadata "map of strings" --triggers "1,2,3,4" --source example.yaml
+
+
+Step 4: Verify the TOSCA YAMl updated with the injection/removal executed.
+
+.. code-block:: bash
+
+ cat "<source tosca file>"
+
+Example:
+
+.. code-block:: bash
+
+ cat example_tosca.yaml
diff --git a/docs/developer/design/vRNC_tosca_intro.rst b/docs/developer/design/vRNC_tosca_intro.rst
new file mode 100644
index 0000000..11e1bdb
--- /dev/null
+++ b/docs/developer/design/vRNC_tosca_intro.rst
@@ -0,0 +1,166 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+======================================
+OPNFV Parser tosca2heat - New Keywords
+======================================
+
+1.NFV-tosca new keywords
+------------------------
+
+All keywords in nfv tosca are not implemented in code, and will be
+implemented by parser.
+
+1.1 Nodes types
+~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.nodes.nfv.VDU
+* tosca.nodes.nfv.CP
+* tosca.nodes.nfv.VL
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.nodes.nfv.VL.ELine
+* tosca.nodes.nfv.VL.ELAN
+* tosca.nodes.nfv.VL.ETree
+* tosca.nodes.nfv.FP
+
+1.2 Capability types
+~~~~~~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.capabilities.nfv.VirtualBindable
+* tosca.capabilities.nfv.VirtualLinkable
+* tosca.capabilities.nfv.HA.ActiveActive
+* tosca.capabilities.nfv.HA.ActivePassive
+* tosca.capabilities.nfv.Metric
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.capabilities.nfv.Forwarder
+* tosca.capabilities.nfv.CPU\_extension
+* tosca.capabilities.nfv.Memory\_extension
+* tosca.capabilities.nfv.Hypervisors
+* tosca.capabilities.nfv.PCIe
+* tosca.capabilities.nfv.network.Interfaces
+* tosca.capabilities.nfv.network.Virtual\_switches
+* tosca.capabilities.nfv.Storage
+
+1.3 Relationship types
+~~~~~~~~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.relationships.nfv.VirtualBindsTo
+* tosca.relationships.nfv.VirtualLinksTo
+* tosca.relationships.nfv.HA
+* tosca.relationships.nfv.Monitor
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.relationships.nfv.ForwardsTo
+
+1.4 Group Types
+~~~~~~~~~~~~~~~
+
+* tosca.groups.nfv.VNFFG
+
+2.Simple-tosca new keywords
+---------------------------
+
+Some keywords are only defined in tosca simple profile,but are not
+supported in tosca-paser, and some keywords such as "policy type", are not yet defined
+completely so far.
+
+2.1 topology template keyname
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* "substitution\_mappings" syntax
+
+ An optional declaration that exports the topology template as an
+ impletmentation of a node type, which is not supported by tosca-parser.
+
+2.2 Group types
+~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.group.root
+
+2.3 Policy Types
+~~~~~~~~~~~~~~~~
+
+Basic types
+^^^^^^^^^^^
+
+* tosca.policies.Root
+* tosca.policies.Placement
+* tosca.policies.Scaling
+
+Extend types
+^^^^^^^^^^^^
+
+* tosca.policies.Update
+* tosca.policies.Performance
+* tosca.policy.placement.Antilocate
+* tosca.policy.placement.Colocate
+
+
+=======================================
+OPNFV Parser tosca2heat - vRNC Topology
+=======================================
+
+The simple vRNC topology is shown below: :numref:`figure_topo`
+
+.. figure:: images/vRNC_Topology.png
+ :name: figure_topo
+ :width: 100%
+
+ vRNC Topology
+
+- vRNC includes four networks: EMS\_network, CTRL\_network,
+ Intermedia\_network and extermedia\_network;
+- vRNC includes four node types: MM, LB, CM and DM;
+- MM: Stands for Maintain Module, which links to EMS\_network,
+ CTRL\_network and extermedia\_network. It composes of active vdu and
+ standby vdu.
+- CM: Stands for Control Module, which links to CTRL\_network and
+ intermedia\_network. All CM nodes form resource pool and each node
+ composes of active vdu and standby vdu.
+- DM: Stands for Data Module, which links to CTRL\_network and
+ intermedia\_network. All DM nodes form resource pool and each node is
+ a vdu.
+- LB: Stands for LineCard Module, which links to CTRL\_network and
+ intermedia\_network and extermedia\_network. All LB nodes form
+ resource pool and each node is a vdu.
+
+=========================================
+OPNFV Parser tosca2heat - vRNC Definition
+=========================================
+
+The files dependency and correspoding specificaiton of vRNC definition
+are shown below: :numref:`figure_def`
+
+.. figure:: images/vRNC_Definition.png
+ :name: figure_def
+ :width: 100%
+
+ vRNC Definition
+
+- TOSCA\_definition\_1.0.yaml should be the lastest version, which is
+ updated by tosca-parser community, but some keywords (such as
+ substitution\_mappings) in the correspoding standard of
+ "TOSCA-simple-profile-YAML-v1.0" is not supported.
+- TOSCA\_nfv\_definition\_1.0.yaml is a new file, and not implemented
+ in code, and the correspoding standard of
+ "tosca-nfv-v1.0-wd02-rev02" is not complete now.
diff --git a/docs/developer/design/yang2tosca.rst b/docs/developer/design/yang2tosca.rst
new file mode 100644
index 0000000..5aaf463
--- /dev/null
+++ b/docs/developer/design/yang2tosca.rst
@@ -0,0 +1,98 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+=================
+Parser YANG2TOSCA
+=================
+
+Overview
+========
+
+Parser is an open source project and licensed under Apache 2. Parser will help
+to provide a tooling mechanism, by parsing Telecom operators’ VNF descriptors
+(YANG templates) into TOSCA templates and then further translate TOSCA
+templates into certain common templates, which could be used in IaaS orchestration
+projects like OpenStack Heat.
+
+Prerequisites
+=============
+
+Parser requires the following to be installed.
+
+1. PYANG
+--------
+
+Please follow the below installation steps.
+
+Step 1: Clone pyang tool or download the zip file from the following link.
+
+.. code-block:: bash
+
+ git clone https://github.com/mbj4668/pyang.git
+
+OR
+
+.. code-block:: bash
+
+ wget https://github.com/mbj4668/pyang/archive/master.zip
+
+Step 2: Change directory to the downloaded directory and run the setup file.
+
+.. code-block:: bash
+
+ cd pyang
+ python setup.py
+
+2. python-lxml
+--------------
+
+Please follow the below installation link. http://lxml.de/installation.html
+
+
+Installation
+============================
+
+Please follow the below installation steps to install parser.
+
+Step 1: Clone the parser project.
+
+.. code-block:: bash
+
+ git clone https://gerrit.opnfv.org/gerrit/parser
+
+Execution
+===========================
+
+Step 1: Change directory to where the scripts are present.
+
+.. code-block:: bash
+
+ cd parser/yang2tosca
+
+Step 2: Copy the YANG file which needs to be converted into TOSCA to
+ current (parser/yang2tosca) folder.
+
+Step 3: Run the python script "parser.py" with the YANG file as an input option.
+
+.. code-block:: bash
+
+ python parser.py -n "YANG filename"
+
+Example:
+
+.. code-block:: bash
+
+ python parser.py -n example.yaml
+
+Step 4: Verify the TOSCA YAMl which file has been created with the same name
+ as the YANG file with a “_tosca” suffix.
+
+.. code-block:: bash
+
+ cat "YANG filename_tosca.yaml"
+
+Example:
+
+.. code-block:: bash
+
+ cat example_tosca.yaml
diff --git a/docs/developer/overview/index.rst b/docs/developer/overview/index.rst
new file mode 100644
index 0000000..aff89d9
--- /dev/null
+++ b/docs/developer/overview/index.rst
@@ -0,0 +1,13 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+
+=============================================
+OPNFV Parser Danube Overview
+=============================================
+
+
+.. toctree::
+ :maxdepth: 1
+
+ overview
diff --git a/docs/developer/overview/overview.rst b/docs/developer/overview/overview.rst
new file mode 100644
index 0000000..d1cad64
--- /dev/null
+++ b/docs/developer/overview/overview.rst
@@ -0,0 +1,89 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+=========================================
+OPNFV Parser Danube Overview Doumentation
+=========================================
+
+.. contents::
+ :depth: 3
+ :local:
+
+Introduction
+---------------
+
+In NFV, various templates (such as descriptors, records and so on) are utilized
+to describe the deployment requirements (such as basic VM requirements – vCPU,
+memory, storage, as well as the NFV acceleration management requirement such as
+Huge Pages support, SR-IOV, NUMA affinity, DPDK support etc.),
+the post-instaniation records (such as storage usage report, CPU performance
+report etc.) or other purposes. However in order to make these templates
+adaptable and feasible for purpose like deployment orchestration/automation,
+certain tooling mechanism that provides template translation is necessary.
+
+Project Parser will help to provide such tooling mechanism, by parsing Telecom
+operators’ descriptors/records into TOSCA/CAMP templates and then further
+translate TOSCA/CAMP templates into certain common templates, which could be
+used in IaaS orchestration projects like OpenStack Heat.
+
+Upgrades from Arno
+------------------------
+
+For Release B, Parser offers the following additional capabilities:
+
+* Integration of Heat-Translator Liberty release code. (both heat in-tree code and standalone package are provided)
+
+* Yang2Tosca module which offers the capability to translate yang based
+ scriptors to tosca formate templates. Users could further use Heat-translator
+ module to translate this tosca template to Heat Orchestration template.
+ Yang2Tosca module could be installed seperately after user installed
+ OPNFV B release platform.
+
+* The "parser_new_keywords" document demonstrate a set of keywords concluded by
+ Parser team that need to be supported in tosca to heat translation. However
+ it should be noted that these keywords only serve as a roadmap. We will start
+ from Release C to indicate which specific set of keywords are supported in
+ Parser.
+
+* The "vRNC_tosca_intro" document describes Parser's use case analysis on vRNC scenario.
+ The "example" folder contains examples of tosca-nfv standard and vRNC scenario.
+ See also https://wiki.opnfv.org/parser.
+
+Upgrades from Brumapatra
+-----------------------
+
+For Release C, Parser offers the following additional capabilities:
+
+* Policy2Tosca module which enables policy related fields in tosca could be translated
+ into heat orchestration template correctly. Policy2Tosca module could be installed seperately
+ after user installed OPNFV C release platform.
+
+* Tosca2Heat enhancements which includes a set of feature addons (such as substitution mapping)
+for OpenStack tosca-parser module which is integrated in the OPNFV C release platform. And the
+main details are listed below:
+
+ ** support substitution mapping semantic in tosca-parser:
+ - support parse and validation about substitution mapping definition;
+ - support import nested template;
+ - support deployment a node which is substituted by a template;
+ - support deployment a template alone which has substitution mapping definition.
+
+ ** afinity and anti-affinity support when deploy servers:
+ - tosca.policies.Placement.Colocate;
+ - tosca.policies.Placement.Antilocate;
+
+ ** add validation about input parameters;
+
+ ** add high availability and block volume in compute translation;
+
+ ** add ip output in compute translation;
+
+ ** add deployment a whole vRNC testcase with parser.
+
+* Additional testing support.
+
+Upgrades from Colorado
+----------------------
+
+For Release D, Parser offers the following additional capabilities:
+
diff --git a/docs/developer/requirements/index.rst b/docs/developer/requirements/index.rst
new file mode 100644
index 0000000..7eddaae
--- /dev/null
+++ b/docs/developer/requirements/index.rst
@@ -0,0 +1,11 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+********************************
+OPNFV Parser Danube Requirements
+********************************
+
+.. toctree::
+ :maxdepth: 1
+
+