:target: VNF
:keyword: MUST
:validation_mode: static
- :updated: casablanca
+ :updated: dublin
If a VNF has an internal network, the VNF Heat Orchestration Template
**MUST** include the heat resources to create the internal network.
-.. req::
- :id: R-86972
- :target: VNF
- :keyword: SHOULD
- :updated: casablanca
-
- A VNF **SHOULD** create the internal network in the VNF's Heat
- Orchestration Template Base Module.
-
-An Internal Network may be created using Neutron Heat Resources and/or
-Contrail Heat Resources.
+ A VNF's Internal Network is created using Neutron Heat Resources
+ (i.e., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``) and/or
+ Contrail Heat Resources (i.e., ``OS::ContrailV2::VirtualNetwork``,
+ ``ContrailV2::NetworkIpam``).
.. req::
A VNF's internal network **MUST** have one subnet.
A VNF's internal network **MAY** have more than one subnet.
+.. req::
+ :id: R-86972
+ :target: VNF
+ :keyword: SHOULD
+ :updated: casablanca
+
+ A VNF **SHOULD** create the internal network in the VNF's Heat
+ Orchestration Template Base Module.
+
+
.. req::
:id: R-22688
:target: VNF
:keyword: MUST
:validation_mode: static
- :updated: casablanca
-
- If a VNF's port is connected to an internal network and the port is
- created in an Incremental Module and the internal network is created
- in the Base Module then the UUID of the internal network **MUST** be
- exposed as a parameter in the ``outputs:`` section of the Base Module
- and the port resource **MUST** use a ``get_param`` to obtain the network
- UUID.
+ :updated: dublin
+
+ When a VNF's Heat Orchestration Template creates an internal network
+ (per the ONAP definition, see Requirements R-52425 and R-46461
+ and R-35666) and the internal network needs to be shared between modules
+ within a VNF, the internal network **MUST** be created either in the
+
+ * the base module
+ * a nested YAML file invoked by the base module
+
+ and the base module **MUST** contain an output parameter that provides
+ either the network UUID or network name.
+
+ * If the network UUID value is used to reference the network, the output
+ parameter name in the base module **MUST** follow the naming convention
+ ``int_{network-role}_net_id``
+ * If the network name in is used to reference the network, the output
+ parameter name in the base template **MUST** follow the naming convention
+ ``int_{network-role}_net_name``
+
+ ``{network-role}`` **MUST** be the network-role of the internal network
+ created in the Base Module.
+
+ ``The Base Module Output Parameter MUST be declared in the ``parameters:``
+ section of the Incremental Module(s) where the ``OS::Neutron::Port``
+ resource(s) is attaching to the internal network.
ONAP does not programmatically enforce a naming convention for
parameters for internal network. However, a naming convention is
:target: VNF
:keyword: MAY
- A VNF's Heat Orchestration Template's Resource ``OS::Heat::CinderVolume``
+ A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
**MAY** be defined in a Base Module.
.. req::
:target: VNF
:keyword: MAY
- A VNF's Heat Orchestration Template's Resource ``OS::Heat::CinderVolume``
+ A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
**MAY** be defined in an Incremental Module.
.. req::
:target: VNF
:keyword: MAY
- A VNF's Heat Orchestration Template's Resource ``OS::Heat::CinderVolume``
+ A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
**MAY** be defined in a Cinder Volume Module.
ONAP also supports the concept of an optional, independently deployed Cinder
:validation_mode: static
:updated: dublin
-
When the VNF's Heat Orchestration Template's Resource
``OS::Neutron::Port``
is in an incremental module and
is attaching to an internal network (per the
ONAP definition, see Requirements R-52425 and R-46461),
- and the internal network is created in
- the base module,
the ``network`` parameter name **MUST**
- * follow the naming convention ``int_{network-role}_net_id`` if the Neutron
+ * follow the naming convention ``int_{network-role}_net_id`` if the
network UUID value is used to reference the network
* follow the naming convention ``int_{network-role}_net_name`` if the
- OpenStack network name in is used to reference the network.
+ network name in is used to reference the network.
where ``{network-role}`` is the network-role of the internal network and
a ``get_param`` **MUST** be used as the intrinsic function.
Base Module (Heat Orchestration Template) and the parameter name is
declared in the Base Module's ``outputs`` section.
The output parameter name will be declared as a parameter in the
-``parameters`` section of the incremental module.
+``parameters`` section of the incremental module (See Requirement R-22688).
+
When the VNF's Heat Orchestration Template's resource
``OS::Neutron::Port`` is in the base module and