summaryrefslogtreecommitdiffstats
path: root/docs/Chapter5.rst
diff options
context:
space:
mode:
authorstark, steven <ss820f@att.com>2018-06-06 14:29:20 -0700
committerstark, steven <ss820f@att.com>2018-06-06 14:36:37 -0700
commitbe09fadb27034cca498634b4e69ae751f2ac6b2e (patch)
tree90ab11c0158c9887e20413e8de8a3ad966f2940e /docs/Chapter5.rst
parent32e783e3cc2110f16a9d9c2c3cb4dcec8cb9df50 (diff)
[VNFRQTS] update heat section [5.2.5.6 5.2.5.6.5)
Change-Id: I675408035669651ea8072bc71901d057abafa7d5 Issue-ID: VNFRQTS-237 Signed-off-by: stark, steven <ss820f@att.com>
Diffstat (limited to 'docs/Chapter5.rst')
-rw-r--r--docs/Chapter5.rst1189
1 files changed, 688 insertions, 501 deletions
diff --git a/docs/Chapter5.rst b/docs/Chapter5.rst
index 1d1ffe0..8496360 100644
--- a/docs/Chapter5.rst
+++ b/docs/Chapter5.rst
@@ -3151,671 +3151,858 @@ Four properties of the resource OS::Neutron::Port that must follow the
ONAP parameter naming convention. The four properties are:
1. network
+2. fixed_ips, ip_address
+3. fixed_ips, subnet_id or fixed_ips, subnet
+ * Note that in many examples in this document fixed_ips, subnet_id is used.
+4. allowed_address_pairs, ip_address
-2. fixed\_ips, ip\_address
+Below is a generic example. Note that for some parameters
+comma_delimited_list are supported in addition to String.
-3. fixed\_ips, subnet\_id
+.. code-block:: python
+
+ resources:
-4. allowed\_address\_pairs, ip\_address
+ ...
+
+ <resource ID>:
+ type: OS::Neutron::Port
+ properties:
+ allowed_address_pairs: [{"ip_address": String, "mac_address": String},
+ {"ip_address": String, "mac_address": String}, ...]
+ fixed_ips: [{"ip_address": String, "subnet_id": String, "subnet":
+ String}, {"ip_address": String, "subnet_id": String, "subnet": String},
+ ...]
+ network: String
The parameters associated with these properties may reference an
external network or internal network. External networks and internal
networks are defined in `Networking`_.
-External Networks
-_________________
+When the OS::Neutron::Port is attaching to an external network, all
+property values are parameters that are retrieved via the intrinsic
+function 'get_param'.
-When the parameter references an external network
-
-- R-72050 The VNF Heat Orchestration Template **MUST** contain {network-role} in the parameter name
-
-- the parameter must not be enumerated in the Heat environment file
-
-- the parameter is classified as an ONAP Orchestration Parameter
-
-+----------------------+---------------------------+--------------------------+
-| Property Name | ONAP Parameter Name | Parameter Type |
-+======================+===========================+==========================+
-| network | {network-role}\_net\_id | string |
-| +---------------------------+--------------------------+
-| | {network-role}\_net\_name | string |
-+----------------------+---------------------------+--------------------------+
-| fixed\_ips, | {vm-type}\_{network-role}\| string |
-| ip\_address | _ip\_{index} | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| comma\_delimited\_list |
-| | _ips | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| string |
-| | _v6\_ip\_{index} | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| comma\_delimited\_list |
-| | _v6\_ips | |
-+----------------------+---------------------------+--------------------------+
-| fixed\_ips, subnet | {network-role}\ | string |
-| | _subnet\_id | |
-| +---------------------------+--------------------------+
-| | {network-role}\ | string |
-| | _v6\_subnet\_id | |
-+----------------------+---------------------------+--------------------------+
-| allowed\_address | {vm-type}\_{network-role}\| string |
-| \_pairs, ip\_address | _floating\_ip | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| string |
-| | _floating\_v6\_ip | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| string |
-| | _ip\_{index} | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| comma\_delimited\_list |
-| | _ips | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| string |
-| | _v6\_ip\_{index} | |
-| +---------------------------+--------------------------+
-| | {vm-type}\_{network-role}\| comma\_delimited\_list |
-| | _v6\_ips | |
-+----------------------+---------------------------+--------------------------+
-
-Table 5: OS::Neutron::Port Resource Property Parameters (External
-Networks)
+When the OS::Neutron::Port is attaching to an internal network, a
+property value maybe retrieved via the intrinsic
+function 'get_param', 'get_resource', or 'get_attr'.
-Internal Networks
-_________________
+This will be described in the forth coming sections.
-When the parameter references an internal network
-
-- R-57576 The VNF Heat Orchestration Template **MUST** contain int\_{network-role}
- in the parameter name.
-
-- the parameter may be enumerated in the environment file.
-
-+-------------------------+--------------------------------+-----------------+
-| Property | Parameter Name for | Parameter Type |
-| | Internal Networks | |
-+=========================+================================+=================+
-| network | int\_{network-role}\ | string |
-| | _net\_id | |
-| +--------------------------------+-----------------+
-| | int\_{network-role}\ | string |
-| | _net\_name | |
-+-------------------------+--------------------------------+-----------------+
-| fixed\_ips, ip\_address | {vm-type}\_int\_{network-role}\| string |
-| | _ip\_{index} | |
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| comma\ |
-| | _ips | _delimited\_list|
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| string |
-| | _v6\_ip\_{index} | |
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| comma\ |
-| | _v6\_ips | _delimited\_list|
-+-------------------------+--------------------------------+-----------------+
-| fixed\_ips, subnet | int\_{network-role}\ | string |
-| | _subnet\_id | |
-| +--------------------------------+-----------------+
-| | int\_{network-role}\ | string |
-| | _v6\_subnet\_id | |
-+-------------------------+--------------------------------+-----------------+
-| allowed\_address\_pairs,| {vm-type}\_int\_{network-role}\| string |
-| ip\_address | _floating\_ip | |
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| string |
-| | _floating\_v6\_ip | |
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| string |
-| | _ip\_{index} | |
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| comma\ |
-| | _ips | _delimited\_list|
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| string |
-| | _v6\_ip\_{index} | |
-| +--------------------------------+-----------------+
-| | {vm-type}\_int\_{network-role}\| comma\ |
-| | _v6\_ips | _delimited\_list|
-+-------------------------+--------------------------------+-----------------+
-
-Table 6: Port Resource Property Parameters (Internal Networks)
+Items to Note
+_____________
+
+A network (internal or external) may contain one or or more subnets.
+
+A VNF can have one or more ports connected to the same network.
+
+A port can have one or more IP addresses assigned.
+
+The IP address assignments can be IPv4 addresses and/or IPv6 addresses.
+
+The IP addresses assignments for a unique external network **MUST**
+be all Cloud Assigned addresses OR **MUST** be all ONAP
+SDN-C assigned IP addresses.
+
+If the IP addresses are Cloud Assigned, all the IPv4 Addresses **MUST**
+be from
+the same subnet and all the IPv6 Addresses **MUST** be from the
+same subnet.
+
+If the IP addresses are ONAP SDN-C assigned,
+the IPv4 Addresses **MAY**
+be from
+different subnets and the IPv6 Addresses **MAY** be from different
+subnets.
+
+If a VNF's Port is attached to an external network the IP addresses **MAY**
+either be assigned by
+ 1. ONAP's SDN-Controller (SDN-C)
+ 2. Cloud Assigned by OpenStack’s DHCP Service
+
+If a VNF's Port is attached to an external network and the port's IP addresses
+are assigned by ONAP's SDN-Controller, the 'OS::Neutron::Port' Resource's
+ * property 'fixed_ips' map property 'ip_address' **MUST** be used
+ * property 'fixed_ips' map property 'subnet'/'subnet_id'
+ **MUST NOT** be used
+
+If a VNF's Port is attached to an external network and the port's IP addresses
+are Cloud Assigned by OpenStack’s DHCP Service,
+the 'OS::Neutron::Port' Resource's
+ * property 'fixed_ips' map property 'ip_address' **MUST NOT** be used
+ * property fixed_ips' map property 'subnet'/'subnet_id' **MAY** be used
+
+If a VNF's Port is attached to an internal network and the port's IP addresses
+are assigned by the VNF's Heat Orchestration Template
+(i.e., enumerated in the Heat Orchestration Template's environment file),
+the 'OS::Neutron::Port' Resource's
+ * property 'fixed_ips' map property 'ip_address' **MUST** be used
+ * property 'fixed_ips' map property 'subnet'/'subnet_id'
+ **MUST NOT** be used
+
+If a VNF's Port is attached to an internal network and the port's IP addresses
+are Cloud Assigned by OpenStack’s DHCP Service,
+the 'OS::Neutron::Port' Resource's
+ * property 'fixed_ips' map property 'ip_address' **MUST NOT** be used
+ * property 'fixed_ips' map property 'subnet'/'subnet_id'
+ **MAY** be used
+
+If a VNF's Heat Orchestration Template 'OS::Neutron::Port' Resource property
+'fixed_ips' map property 'ip_address' is specified, then the
+'fixed_ips' map property 'subnet'/'subnet_id' **MUST NOT**
+be specified.
+
+If a VNF's Heat Orchestration Template 'OS::Neutron::Port' Resource property
+'fixed_ips' map property 'subnet'/'subnet_id' is specified, then the
+'fixed_ips' map property 'ip_address' **MUST NOT**
+be specified.
+
+.. csv-table:: **Table 4 OS::Nova::Server Resource Property Parameter Naming Convention**
+ :header: Resource,Property,Parameter Type,Parameter Name,Parameter Value Provided to Heat
+ :align: center
+ :widths: auto
+
+ OS::Nova::Server, image, string, {vm-type}_image_name, Environment File
Property: network
+++++++++++++++++
-The property networks in the resource OS::Neutron::Port must be
-referenced by Neutron Network ID, a UUID value, or by the network name
-defined in OpenStack.
+The Resource 'OS::Neutron::Port' property 'network' determines what network
+the port is attached to.
-External Networks
-_________________
-R-93272 The VNF Heat Orchestration Template **MUST** adhere to the following parameter naming
-convention in the Heat Orchestration Template, when the parameter
-associated with the property network is referencing an “external” network:
+R-18008 The VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+property ‘network’ parameter **MUST** be declared as type: ‘string’.
-- {network-role}\_net\_id for the Neutron network ID
+R-62983 When the VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+is attaching to an external network, the ‘network’ parameter name **MUST**
-- {network-role}\_net\_name for the network name in OpenStack
+- follow the naming convention ‘{network-role}_net_id’ if the Neutron
+ network UUID value is used to reference the network
+- follow the naming convention ‘{network-role}_net_name’ if the OpenStack
+ network name is used to reference the network.
-The parameter must be declared as type: string
+where ‘{network-role}’ is the network-role of the external network and
+a ‘get_param’ **MUST** be used as the intrinsic function.
-The parameter must not be enumerated in the Heat environment file.
+R-86182 When the VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+is attaching to an internal network, and the internal network is created in a different
+Heat Orchestration Template than the ‘OS::Neutron::Port’, the ‘network’
+parameter name **MUST**
-*Example Parameter Definition*
+- follow the naming convention ‘int\_{network-role}_net_id’ if the Neutron
+ 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.
-.. code-block:: yaml
+where ‘{network-role}’ is the network-role of the internal network and a ‘get_param’ **MUST** be used as the intrinsic function.
- parameters:
- {network-role}_net_id:
- type: string
- description: Neutron UUID for the {network-role} network
- {network-role}_net_name:
- type: string
- description: Neutron name for the {network-role} network
+In Requirement R-86182, the internal network is created in the VNF's
+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.
-*Example: One Cloud Assigned IP Address (DHCP) assigned to a network
-that has only one subnet*
+R-93177 When the VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+is attaching to an internal network, and the internal network is created in the same Heat
+Orchestration Template than the ‘OS::Neutron::Port’, the ‘network’
+parameter name **MUST** obtain the UUID of the internal network by using
+the intrinsic function ‘get_resource’ or ‘get_attr’ and referencing the
+Resource ID of the internal network.
-In this example, the {network-role} has been defined as oam to represent
-an oam network and the {vm-type} has been defined as lb for load
-balancer. The Cloud Assigned IP Address uses the OpenStack DHCP service
-to assign IP addresses.
+R-29872 The VNF’s Heat Orchestration Template’s Resource ‘OS::Nova::Server’
+property ‘network’ parameter **MUST NOT** be enumerated in the Heat
+Orchestration Template’s Environment File.
-.. code-block:: yaml
+The parameter values for external networks are provided by ONAP
+to the VNF's Heat Orchestration Template at orchestration time.
- parameters:
- oam_net_id:
- type: string
- description: Neutron UUID for the oam network
+The parameter values for internal networks created in the VNF's Base Module
+Heat Orchestration Template
+are provided to the VNF's Incremental Module Heat Orchestration Template
+at orchestration time.
- resources:
- lb_port_1:
- type: OS::Neutron::Port
- network: { get_param: oam_net_id }
+*Example Parameter Definition of External Networks*
-Internal Networks
-_________________
+.. code-block:: python
-R-65373 The VNF Heat Orchestration Template **MUST** adhere to the following parameter naming
-convention, when the parameter associated with the property network is
-referencing an “internal” network:
+ parameters:
-- int\_{network-role}\_net\_id for the Neutron network ID
+ {network-role}_net_id:
+ type: string
+ description: Neutron UUID for the external {network-role} network
-- int\_{network-role}\_net\_name for the network name in OpenStack
+ {network-role}_net_name:
+ type: string
+ description: Neutron name for the external {network-role} network
-The parameter must be declared as type: string
-The assumption is that internal networks are created in the base module.
-The Neutron Network ID will be passed as an output parameter (e.g., ONAP
-Base Module Output Parameter) to the incremental modules. In the
-incremental modules, it will be defined as input parameter.
+*Example Parameter Definition of Internal Networks in an Incremental Module*
-*Example Parameter Definition*
+.. code-block:: python
-.. code-block:: yaml
+ parameters:
- parameters:
- int_{network-role}_net_id:
- type: string
- description: Neutron UUID for the {network-role} network
- int_{network-role}_net_name:
- type: string
- description: Neutron name for the {network-role} network
+ int_{network-role}_net_id:
+ type: string
+ description: Neutron UUID for the internal int_{network-role} network
-Property: fixed\_ips, Map Property: subnet\_id
-++++++++++++++++++++++++++++++++++++++++++++++
+ int_{network-role}_net_name:
+ type: string
+ description: Neutron name for the internal int_{network-role} network
-The property fixed\_ips is used to assign IPs to a port. The Map
-Property subnet\_id specifies the subnet the IP is assigned from.
+Property: fixed_ips, Map Property: ip_address
++++++++++++++++++++++++++++++++++++++++++++++
-The property fixed\_ips and Map Property subnet\_id must be used if a
-Cloud (i.e., DHCP) IP address assignment is being requested and the
-Cloud IP address assignment is targeted at a specific subnet when two or
-more subnets exist.
+The resource 'OS::Neutron::Port' property 'fixed_ips'
+map property 'ip_address'
+is used to assign one IPv4 or IPv6
+addresses to port.
-The property fixed\_ips and Map Property subnet\_id should not be used
-if all IP assignments are fixed, or if the Cloud IP address assignment
-does not target a specific subnet or there is only one subnet.
+One 'OS::Neutron::Port' resource may assign one or more
+IPv4 and/or IPv6 addresses.
-Note that DHCP assignment of IP addresses is also referred to as cloud
-assigned IP addresses.
+R-34037 The VNF’s Heat Orchestration Template’s resource ‘OS::Neutron::Port’
+property ‘fixed_ips’ map property ‘ip_address’ parameter **MUST** be declared as
+either type ‘string’ or type ‘comma_delimited_list’.
-Subnet of an External Networks
-______________________________
+R-40971 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an external network, and an IPv4 address is
+assigned using the property
+‘fixed_ips’ map property ‘ip_address’ and the parameter type is defined
+as a string, the parameter name **MUST** follow the naming
+convention ‘{vm-type}_{network-role}\_ip\_{index}’, where
-R-47716 The VNF Heat Orchestration Template **MUST** adhere to the following parameter naming
-convention for the property fixed\_ips and Map Property subnet\_id
-parameter, when the parameter is referencing a subnet of an
-“external” network.
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the external network
+- the value for {index} must start at zero (0) and increment by one
-- {network-role}\_subnet\_id if the subnet is an IPv4 subnet
+R-39841 The VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+property ‘fixed_ips’ map property ‘ip_address’ parameter
+‘{vm-type}_{network-role}\_ip\_{index}’ **MUST NOT** be enumerated in the
+VNF’s Heat Orchestration Template’s Environment File.
-- {network-role}\_v6\_subnet\_id if the subnet is an IPv6 subnet
+ONAP's SDN-Controller assigns the IP Address and ONAP provides
+the value at orchestration to the Heat Orchestration Template.
-The parameter must be declared as type: string
+*Example External Network IPv4 Address string Parameter Definition*
-The parameter must not be enumerated in the Heat environment file.
+.. code-block:: python
-*Example Parameter Definition*
+ parameters:
-.. code-block:: yaml
+ {vm-type}_{network-role}_ip_{index}:
+ type: string
+ description: Fixed IPv4 assignment for {vm-type} VM {index} on the{network-role} network
- parameters:
- {network-role}_subnet_id:
- type: string
- description: Neutron subnet UUID for the {network-role} network
+R-04697 When the VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+is attaching to an external network, and an IPv4 address is assigned using
+the property ‘fixed_ips’ map property ‘ip_address’ and the parameter type
+is defined as a comma_delimited_list, the parameter name **MUST** follow the
+naming convention ‘{vm-type}_{network-role}_ips’, where
- {network-role}_v6_subnet_id:
- type: string
- description: Neutron subnet UUID for the {network-role} network
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the external network
-*Example: One Cloud Assigned IPv4 Address (DHCP) assigned to a network
-that has two or more subnets subnet:*
+R-98905 The VNF’s Heat Orchestration Template’s Resource ‘OS::Neutron::Port’
+property ‘fixed_ips’ map property ‘ip_address’ parameter
+‘{vm-type}_{network-role}_ips’ **MUST NOT** be enumerated in the VNF’s
+Heat Orchestration Template’s Environment File.
-In this example, the {network-role} has been defined as oam to represent
-an oam network and the {vm-type} has been defined as lb for load
-balancer. The Cloud Assigned IP Address uses the OpenStack DHCP service
-to assign IP addresses.
+ONAP's SDN-Controller assigns the IP Address and ONAP provides
+the value at orchestration to the Heat Orchestration Template.
-.. code-block:: yaml
+*Example External Network IPv4 Address comma_delimited_list
+Parameter Definition*
- parameters:
- oam_net_id:
- type: string
- description: Neutron UUID for the oam network
+.. code-block:: python
- oam_subnet_id:
- type: string
- description: Neutron subnet UUID for the oam network
+ parameters:
- resources:
- lb_port_1:
- type: OS::Neutron::Port
- network: { get_param: oam_net_id }
- fixed_ips:
- - subnet_id: { get_param: oam_subnet_id }
+ {vm-type}_{network-role}_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 assignments for {vm-type} VMs on the {network-role} network
-*Example: One Cloud Assigned IPv4 address and one Cloud Assigned IPv6
-address assigned to a network that has at least one IPv4 subnet and one
-IPv6 subnet*
+R-71577 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an external network, and an IPv6 address
+is assigned using the property ‘fixed_ips’ map property ‘ip_address’ and
+the parameter type is defined as a string, the parameter name **MUST** follow
+the naming convention ‘{vm-type}_{network-role}\_v6\_ip\_{index}’, where
-In this example, the {network-role} has been defined as oam to represent
-an oam network and the {vm-type} has been defined as lb for load
-balancer.
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the external network
+- the value for {index} must start at zero (0) and increment by one
-.. code-block:: yaml
- parameters:
- oam_net_id:
- type: string
- description: Neutron UUID for the oam network
+R-87123 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter ‘{vm-type}_{network-role}\_v6\_ip\_{index}’ **MUST NOT** be enumerated
+in the VNF’s Heat Orchestration Template’s Environment File.
- oam_subnet_id:
- type: string
- description: Neutron subnet UUID for the oam network
+ONAP's SDN-Controller assigns the IP Address and ONAP provides
+the value at orchestration to the Heat Orchestration Template.
- oam_v6_subnet_id:
- type: string
- description: Neutron subnet UUID for the oam network
+*Example External Network IPv6 Address string Parameter Definition*
- resources:
- lb_port_1:
- type: OS::Neutron::Port
- properties:
- network: { get_param: oam_net_id }
- fixed_ips:
- - subnet_id: { get_param: oam_subnet_id }
- - subnet_id: { get_param: oam_v6_subnet_id }
+.. code-block:: python
-Internal Networks
-_________________
+ parameters:
-R-20106 The VNF Heat Orchestration Template **MUST** adhere to the following naming convention for
-the property fixed\_ips and Map Property subnet\_id parameter,
-when the parameter is referencing the subnet of an “internal” network:
+ {vm-type}_{network-role}_v6_ip_{index}:
+ type: string
+ description: Fixed IPv6 assignment for {vm-type} VM {index} on the {network-role} network
-- int\_{network-role}\_subnet\_id if the subnet is an IPv4 subnet
+R-23503 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an external network, and an IPv6
+address is assigned using the property ‘fixed_ips’ map property ‘ip_address’
+and the parameter type is defined as a comma_delimited_list, the parameter
+name **MUST** follow the naming convention ‘{vm-type}_{network-role}_v6_ips’, where
-- int\_{network-role}\_v6\_subnet\_id if the subnet is an IPv6 subnet
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the external network
-The parameter must be declared as type: string
+R-93030 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter ‘{vm-type}_{network-role}_v6_ips’ **MUST NOT** be enumerated in the
+VNF’s Heat Orchestration Template’s Environment File.
-The assumption is that internal networks are created in the base module.
-The Neutron subnet network ID will be passed as an output parameter
-(e.g., ONAP Base Module Output Parameter) to the incremental modules. In
-the incremental modules, it will be defined as input parameter.
+ONAP's SDN-Controller assigns the IP Address and ECOMP provides
+the value at orchestration to the Heat Orchestration Template.
-*Example Parameter Definition*
+*Example External Network IPv6 Address comma_delimited_list Parameter
+Definition*
-.. code-block:: yaml
+.. code-block:: python
- parameters:
- int_{network-role}_subnet_id:
- type: string
- description: Neutron subnet UUID for the {network-role} network
+ parameters:
- int_{network-role}_v6_subnet_id:
- type: string
- description: Neutron subnet UUID for the {network-role} network
+ {vm-type}_{network-role}_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 assignments for {vm-type} VMs on the {network-role} network
-Property: fixed\_ips, Map Property: ip\_address
-+++++++++++++++++++++++++++++++++++++++++++++++
+R-78380 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an internal network, and an IPv4 address
+is assigned using the property ‘fixed_ips’ map property ‘ip_address’ and
+the parameter type is defined as a string, the parameter name **MUST** follow
+the naming convention ‘{vm-type}\_int\_{network-role}\_ip\_{index}’, where
-The property fixed\_ips is used to assign IPs to a port. The Map
-Property ip\_address specifies the IP address to be assigned to the
-port.
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the internal network
+- the value for {index} must start at zero (0) and increment by one
-The property fixed\_ips and Map Property ip\_address must be used when
-statically assigning one or more IP addresses to a port. This is also
-referred to as ONAP SDN-C IP address assignment. ONAP’s SDN-C provides
-the IP address assignment.
+R-28795 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter ‘{vm-type}\_int\_{network-role}\_ip\_{index}’ **MUST** be enumerated
+in the VNF’s Heat Orchestration Template’s Environment File.
-An IP address is assigned to a port on a VM (referenced by {vm-type})
-that is connected to an external network (referenced by {network-role})
-or internal network (referenced by int\_{network-role}).
+The IP address is local to the VNF's internal network and is (re)used
+in every VNF spin up, thus the constant value is declared in the VNF's
+Heat Orchestration Template's Environment File.
-R-41177 The VNF Heat Orchestration Template **MUST** include {vm-type} and {network-role}
-in the parameter name, when a SDN-C IP assignment is made to a
-port connected to an external network.
+*Example Internal Network IPv4 Address string Parameter Definition*
-When a SDN-C IP assignment is made to a port connected to an internal
-network, the parameter name must contain {vm-type} and
-int\_{network-role}.
+.. code-block:: python
-IP Address Assignments on External Networks
-___________________________________________
+ parameters:
-When the property fixed\_ips and Map Property ip\_address is used to
-assign IP addresses to an external network, the parameter name is
-dependent on the parameter type (comma\_delimited\_list or string) and
-IP address type (IPv4 or IPv6).
+ {vm-type}_int_{network-role}_ip_{index}:
+ type: string
+ description: Fixed IPv4 assignment for {vm-type} VM {index} on the int_{network-role} network
-R-84898 The VNF Heat Orchestration Template **MUST** adhere to the following naming convention,
-when the parameter for property fixed\_ips and Map Property ip\_address
-is declared type: comma\_delimited\_list:
+R-85235 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an internal network, and an IPv4
+address is assigned using the property ‘fixed_ips’ map property ‘ip_address’
+and the parameter type is defined as a comma_delimited_list, the parameter
+name **MUST** follow the naming convention ‘{vm-type}\_int\_{network-role}_ips’, where
-- {vm-type}\_{network-role}\_ips for IPv4 address
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the internal network
-- {vm-type}\_{network-role}\_v6\_ips for IPv6 address
+R-90206 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter ‘{vm-type}\_int\_{network-role}_int_ips’ **MUST** be enumerated in
+the VNF’s Heat Orchestration Template’s Environment File.
-Each element in the IP list should be assigned to successive instances
-of {vm-type} on {network-role}.
+The IP address is local to the VNF's internal network and is (re)used
+in every VNF spin up, thus the constant value is declared in the VNF's
+Heat Orchestration Template's Environment File.
-The parameter must not be enumerated in the Heat environment file.
+.. code-block:: python
-*Example Parameter Definition*
+ parameters:
-.. code-block:: yaml
+ {vm-type}_int_{network-role}_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 assignments for {vm-type} VMs on the int_{network-role} network
- parameters:
+R-27818 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an internal network, and an IPv6 address
+is assigned using the property ‘fixed_ips’ map property ‘ip_address’ and
+the parameter type is defined as a string, the parameter name **MUST** follow
+the naming convention ‘{vm-type}\_int\_{network-role}\_v6\_ip\_{index}’, where
- {vm-type}_{network-role}_ips:
- type: comma_delimited_list
- description: Fixed IPv4 assignments for {vm-type} VMs on the {Network-role} network
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the internal network
+- the value for {index} must start at zero (0) and increment by one
- {vm-type}_{network-role}_v6_ips:
- type: comma_delimited_list
- description: Fixed IPv6 assignments for {vm-type} VMs on the {network-role} network
+R-97201 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter ‘{vm-type}\_int\_{network-role}\_v6\_ip\_{index}’ **MUST** be enumerated
+in the VNF’s Heat Orchestration Template’s Environment File.
-*Example: comma\_delimited\_list parameters for IPv4 and IPv6 Address
-Assignments to an external network*
+The IP address is local to the VNF's internal network and is (re)used
+in every VNF spin up, thus the constant value is declared in the VNF's
+Heat Orchestration Template's Environment File.
-In this example, the {network-role} has been defined as oam to represent
-an oam network and the {vm-type} has been defined as db for database.
+*Example Internal Network IPv6 Address string Parameter Definition*
-.. code-block:: yaml
+.. code-block:: python
- parameters:
- oam_net_id:
- type: string
- description: Neutron UUID for a oam network
+ parameters:
- db_oam_ips:
- type: comma_delimited_list
- description: Fixed IPv4 assignments for db VMs on the oam network
+ {vm-type}_int_{network-role}_v6_ip_{index}:
+ type: string
+ description: Fixed IPv6 assignment for {vm-type} VM {index} on the int_{network-role} network
- db_oam_v6_ips:
- type: comma_delimited_list
- description: Fixed IPv6 assignments for db VMs on the oam network
+R-29765 When the VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ is attaching to an internal network, and an IPv6
+address is assigned using the property ‘fixed_ips’ map property ‘ip_address’
+and the parameter type is defined as a comma_delimited_list, the parameter
+name **MUST** follow the naming convention ‘{vm-type}\_int\_{network-role}_v6_ips’, where
- resources:
- db_0_port_1:
- type: OS::Neutron::Port
- network: { get_param: oam_net_id }
- fixed_ips: [ { “ip_address”: {get_param: [ db_oam_ips, 0 ]}}, {“ip_address”: {get_param: [ db_oam_v6_ips, 0 ]}}]
+- ‘{vm-type}’ is the {vm-type} associated with the OS::Nova::Server
+- ‘{network-role}’ is the {network-role} of the internal network
- db_1_port_1:
- type: OS::Neutron::Port
- properties:
- network: { get_param: oam_net_id }
- fixed_ips:
- - “ip_address”: {get_param: [ db_oam_ips, 1 ]}
- - “ip_address”: {get_param: [ db_oam_v6_ips, 1 ]}
+*Example Internal Network IPv6 Address comma_delimited_list Parameter
+Definition*
-R-34960 The VNF Heat Orchestration Template **MUST** adhere to the following
-naming convention,
-when the parameter for property fixed\_ips and Map Property ip\_address
-is declared type: string:
+.. code-block:: python
-- {vm-type}\_{network-role}\_ip\_{index} for an IPv4 address
+ parameters:
-- {vm-type}\_{network-role}\_v6\_ip\_{index} for an IPv6 address
+ {vm-type}_int_{network-role}_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 assignments for {vm-type} VMs on the int_{network-role} network
-The value for {index} must start at zero (0) and increment by one.
+R-98569 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter ‘{vm-type}\_int\_{network-role}_v6_ips’ **MUST** be enumerated in
+the VNF’s Heat Orchestration Template’s Environment File.
-The parameter must not be enumerated in the Heat environment file.
+The IP address is local to the VNF's internal network and is (re)used
+in every VNF spin up, thus the constant value is declared in the VNF's
+Heat Orchestration Template's Environment File.
-*Example Parameter Definition*
+R-62590 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter associated with an external network, i.e.,
-.. code-block:: yaml
+- {vm-type}_{network-role}\_ip\_{index}
+- {vm-type}_{network-role}\_ip\_v6\_{index}
+- {vm-type}_{network-role}_ips
+- {vm-type}_{network-role}_v6_ips
- parameters:
- {vm-type}_{network-role}_ip_{index}:
- type: string
- description: Fixed IPv4 assignment for {vm-type} VM {index} on the{network-role} network
+**MUST NOT** be enumerated in the Heat Orchestration Template’s Environment File.
+ONAP provides the IP address assignments at orchestration time.
- {vm-type}_{network-role}_v6_ip_{index}:
- type: string
- description: Fixed IPv6 assignment for {vm-type} VM {index} on the{network-role} network
+R-93496 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property ‘ip_address’
+parameter associated with an internal network, i.e.,
+
+- {vm-type}\_int\_{network-role}\_ip\_{index}
+- {vm-type}\_int\_{network-role}\_ip\_v6\_{index}
+- {vm-type}\_int\_{network-role}_ips
+- {vm-type}\_int\_{network-role}_v6_ips
+
+**MUST** be enumerated in the Heat Orchestration Template’s Environment
+File and IP addresses **MUST** be assigned.
+
+Summary Table
+_____________
+
+.. csv-table:: **Table # OS::Neutron::Port Property fixed_ips map property ip_address Parameter Naming Convention**
+ :header: Resource,Property,Map Property,Network Type,IP Address,Parameter Type,Parameter Name, Environment File
+ :align: center
+ :widths: auto
+
+ OS::Neutron::Port, fixed_ips, ip_address, external, IPv4, string, {vm-type}\_{network-role}\_ip\_{index}, NO
+ OS::Neutron::Port, fixed_ips, ip_address, external, IPv4, comma\_delimited\_list, {vm-type}\_{network-role}\_ips, NO
+ OS::Neutron::Port, fixed_ips, ip_address, external, IPv6, string, {vm-type}\_{network-role}\_v6\_ip\_{index}, NO
+ OS::Neutron::Port, fixed_ips, ip_address, external, IPv6, comma\_delimited\_list, {vm-type}\_{network-role}\_v6\_ips, NO
+ OS::Neutron::Port, fixed_ips, ip_address, internal, IPv4, string, {vm-type}\_int\_{network-role}\_ip\_{index}, YES
+ OS::Neutron::Port, fixed_ips, ip_address, internal, IPv4, comma\_delimited\_list, {vm-type}\_int\_{network-role}\_ips, YES
+ OS::Neutron::Port, fixed_ips, ip_address, internal, IPv6, string, {vm-type}\_int\_{network-role}\_v6\_ip\_{index}, YES
+ OS::Neutron::Port, fixed_ips, ip_address, internal, IPv6, comma\_delimited\_list, {vm-type}\_int\_{network-role}\_v6\_ips, YES
+
+
+Examples
+________
-*Example: string parameters for IPv4 and IPv6 Address Assignments
-to an external network*
+*Example: comma_delimited_list parameters for IPv4 and IPv6 Address
+Assignments to an external network*
+
+In this example, the '{network-role}' has been defined as 'oam' to represent
+an oam network and the '{vm-type}' has been defined as 'db' for database.
+
+.. code-block:: python
-In this example, the {network-role} has been defined as “oam” to
-represent an oam network and the {vm-type} has been defined as “db” for
+ parameters:
+ oam_net_id:
+ type: string
+ description: Neutron UUID for a oam network
+ db_oam_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 assignments for db VMs on the oam network
+ db_oam_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 assignments for db VMs on the oam network
+ resources:
+ db_0_oam_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips: [ { “ip_address”: {get_param: [ db_oam_ips, 0 ]}}, {
+ “ip_address”: {get_param: [ db_oam_v6_ips, 0 ]}}]
+ db_1_oam_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - “ip_address”: {get_param: [ db_oam_ips, 1 ]}
+ - “ip_address”: {get_param: [ db_oam_v6_ips, 1 ]}
+
+*Example: string parameters for IPv4 and IPv6 Address Assignments to an
+external network*
+
+In this example, the '{network-role}' has been defined as 'oam' to
+represent an oam network and the '{vm-type}' has been defined as 'db' for
database.
-.. code-block:: yaml
+.. code-block:: python
- parameters:
+ parameters:
oam_net_id:
- type: string
- description: Neutron UUID for an OAM network
+ type: string
+ description: Neutron UUID for an OAM network
+ db_oam_ip_0:
+ type: string
+ description: Fixed IPv4 assignment for db VM 0 on the OAM network
+ db_oam_ip_1:
+ type: string
+ description: Fixed IPv4 assignment for db VM 1 on the OAM network
+ db_oam_v6_ip_0:
+ type: string
+ description: Fixed IPv6 assignment for db VM 0 on the OAM network
+ db_oam_v6_ip_1:
+ type: string
+ description: Fixed IPv6 assignment for db VM 1 on the OAM network
+ resources:
+ db_0_oam_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips: [ { “ip_address”: {get_param: db_oam_ip_0}}, { “ip_address”: {get_param: db_oam_v6_ip_0 ]}}]
+ db_1_oam_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - “ip_address”: {get_param: db_oam_ip_1}}]
+ - “ip_address”: {get_param: db_oam_v6_ip_1}}]
- db_oam_ip_0:
- type: string
- description: Fixed IPv4 assignment for db VM 0 on the OAM network
- db_oam_ip_1:
- type: string
- description: Fixed IPv4 assignment for db VM 1 on the OAM network
+*Example: comma_delimited_list parameters for IPv4 and IPv6 Address
+Assignments to an internal network*
- db_oam_v6_ip_0:
- type: string
- description: Fixed IPv6 assignment for db VM 0 on the OAM network
+In this example, the '{network-role}' has been defined as 'ctrl' to
+represent an ctrl network internal to the vnf.
+The '{vm-type}' has been defined as 'db' for
+database.
- db_oam_v6_ip_1:
- type: string
- description: Fixed IPv6 assignment for db VM 1 on the OAM network
+.. code-block:: python
- resources:
- db_0_port_1:
- type: OS::Neutron::Port
- properties:
- network: { get_param: oam_net_id }
- fixed_ips: [ { “ip_address”: {get_param: db_oam_ip_0}}, {“ip_address”: {get_param: db_oam_v6_ip_0 ]}}]
+ parameters:
+ int_ctrl_net_id:
+ type: string
+ description: Neutron UUID for the ctrl internal network
+ db_int_ctrl_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 assignments for db VMs on the ctrl internal
+ network
+ db_int_ctrl_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 assignments for db VMs on the ctrl internal
+ network
+ resources:
+ db_0_int_ctrl_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: int_ctrl_net_id }
+ fixed_ips: [ { “ip_address”: {get_param: [ db_int_ctrl_ips, 0 ]}}, {
+ “ip_address”: {get_param: [ db_int_ctrl_v6_ips, 0 ]}}]
+ db_1_int_ctrl_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: int_ctrl_net_id }
+ fixed_ips:
+ - “ip_address”: {get_param: [ db_int_ctrl_ips, 1 ]}
+ - “ip_address”: {get_param: [ db_int_ctrl_v6_ips, 1 ]}
- db_1_port_1:
- type: OS::Neutron::Port
- properties:
- network: { get_param: oam_net_id }
- fixed_ips:
- - “ip_address”: {get_param: db_oam_ip_1}}]
- - “ip_address”: {get_param: db_oam_v6_ip_1}}]
-IP Address Assignment on Internal Networks
-__________________________________________
+*Example: string parameters for IPv4 and IPv6 Address Assignments to an
+internal network*
-When the property fixed\_ips and Map Property ip\_address is used to
-assign IP addresses to an internal network, the parameter name is
-dependent on the parameter type (comma\_delimited\_list or string) and
-IP address type (IPv4 or IPv6).
+In this example, the int\_{network-role} has been defined as
+int_ctrl to represent a control network internal to the vnf.
+The {vm-type} has been defined as db for database.
-R-62584 The VNF Heat Orchestration Template **MUST** adhere to
-the following naming convention,
-when the parameter for property fixed\_ips and Map Property ip\_address
-is declared type: comma\_delimited\_list:
+.. code-block:: python
-- {vm-type}\_int\_{network-role}\_ips for IPv4 address
+ parameters:
+ int_ctrl_net_id:
+ type: string
+ description: Neutron UUID for an OAM internal network
+ db_int_ctrl_ip_0:
+ type: string
+ description: Fixed IPv4 assignment for db VM on the oam_int network
+ db_int_ctrl_ip_1:
+ type: string
+ description: Fixed IPv4 assignment for db VM 1 on the oam_int network
+ db_int_ctrl_v6_ip_0:
+ type: string
+ description: Fixed IPv6 assignment for db VM 0 on the oam_int network
+ db_int_ctrl_v6_ip_1:
+ type: string
+ description: Fixed IPv6 assignment for db VM 1 on the oam_int network
+ resources:
+ db_0_int_ctrl_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: int_oam_int_net_id }
+ fixed_ips: [ { “ip_address”: {get_param: db_oam_int_ip_0}}, {
+ “ip_address”: {get_param: db_oam_int_v6_ip_0 ]}}]
+ db_1_int_ctrl_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: int_oam_int_net_id }
+ fixed_ips:
+ - “ip_address”: {get_param: db_oam_int_ip_1}}]
+ - “ip_address”: {get_param: db_oam_int_v6_ip_1}}]
+
+
+Property: fixed\_ips, Map Property: subnet\_id
+++++++++++++++++++++++++++++++++++++++++++++++
+
+The resource 'OS::Neutron::Port' property 'fixed_ips' map
+property 'subnet'/'subnet_id' is used when a
+port is requesting an IP assignment via
+OpenStack’s DHCP Service (i.e., Cloud Assigned).
+
+The IP address assignment will be made from the specified subnet.
+
+Specifying the subnet is not required; it is optional.
+
+If the network (external or internal) that the port is attaching
+to only contains one subnet, specifying the subnet is
+superfluous. The IP address will be assigned from the one existing
+subnet.
+
+If the network (external or internal) that the port is attaching
+to contains two or more subnets, specifying the subnet in the
+'fixed_ips' map property 'subnet'/'subnet_id' determines which
+subnet the IP address will be assigned from.
-- {vm-type}\_int\_{network-role}\_v6\_ips for IPv6 address
+If the network (external or internal) that the port is attaching
+to contains two or more subnets, and the subnet is not is not
+specified, OpenStack will randomly(?) determine which subnet
+the IP address will be assigned from.
-Each element in the IP list should be assigned to successive instances
-of {vm-type} on {network-role}.
+The property fixed_ips is used to assign IPs to a port. The Map Property
+subnet_id specifies the subnet the IP is assigned from.
-The parameter must be enumerated in the Heat environment file. Since an
-internal network is local to the VNF, IP addresses can be re-used at
-every VNF instance.
+R-38236 The VNF’s Heat Orchestration Template’s resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property
+‘subnet’/’subnet_id’ parameter **MUST** be declared type ‘string’.
+
+R-62802 When the VNF’s Heat Orchestration Template’s resource
+‘OS::Neutron::Port’ is attaching to an external network, and an IPv4
+address is being Cloud Assigned by OpenStack’s DHCP Service and the
+external network IPv4 subnet is to be specified using the property
+‘fixed_ips’ map property ‘subnet’/’subnet_id’, the parameter **MUST**
+follow the naming convention ‘{network-role}_subnet_id’, where
+‘{network-role}’ is the network role of the network.
+
+R-83677 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property
+subnet’/’subnet_id’ parameter ‘{network-role}_subnet_id’
+**MUST NOT** be enumerated in the VNF’s Heat Orchestration Template’s
+Environment File.
+
+ONAP's SDN-Controller provides the network's subnet's UUID
+value at orchestration to the Heat Orchestration Template.
*Example Parameter Definition*
-.. code-block:: yaml
+.. code-block:: python
- parameters:
+ parameters:
- {vm-type}_int_{network-role}_ips:
- type: comma_delimited_list
- description: Fixed IPv4 assignments for {vm-type} VMs on the int_{network-role} network
+ {network-role}_subnet_id:
+ type: string
+ description: Neutron IPv4 subnet UUID for the {network-role} network
- {vm-type}_int_{network-role}_v6_ips:
- type: comma_delimited_list
- description: Fixed IPv6 assignments for {vm-type} VMs on the int_{network-role} network
+R-15287 When the VNF’s Heat Orchestration Template’s resource
+‘OS::Neutron::Port’ is attaching to an external network, and an IPv6
+address is being Cloud Assigned by OpenStack’s DHCP Service and the
+external network IPv6 subnet is to be specified using the property
+‘fixed_ips’ map property ‘subnet’/’subnet_id’, the parameter **MUST**
+follow the naming convention ‘{network-role}_subnet_v6_id’, where
+‘{network-role}’ is the network role of the network.
-*Example: comma\_delimited\_list parameters for IPv4 and IPv6 Address
-Assignments to an internal network*
+R-80829 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property
+subnet’/’subnet_id’ parameter ‘{network-role}_subnet_v6_id’
+**MUST NOT** be enumerated in the VNF’s Heat Orchestration Template’s
+Environment File.
-In this example, the {network-role} has been defined as oam\_int to
-represent an oam network internal to the vnf. The role oam\_int was
-picked to differentiate from an external oam network with a
-{network-role} of oam. The {vm-type} has been defined as db for
-database.
+ONAP's SDN-Controller provides the network's subnet's UUID
+value at orchestration to the Heat Orchestration Template.
-.. code-block:: yaml
+*Example Parameter Definition*
- parameters:
- int_oam_int_net_id:
- type: string
- description: Neutron UUID for the oam internal network
+.. code-block:: python
- db_int_oam_int_ips:
- type: comma_delimited_list
- description: Fixed IPv4 assignments for db VMs on the oam internal network
+ parameters:
- db_int_oam_int_v6_ips:
- type: comma_delimited_list
- description: Fixed IPv6 assignments for db VMs on the oam internal network
+ {network-role}_v6_subnet_id:
+ type: string
+ description: Neutron IPv6 subnet UUID for the {network-role} network
- resources:
- db_0_port_1:
- type: OS::Neutron::Port
- properties:
- network: { get_param: int_oam_int_net_id }
- fixed_ips: [ { “ip_address”: {get_param: [ db_int_oam_int_ips, 0]}}, { “ip_address”: {get_param: [ db_int_oam_int_v6_ips, 0 ]}}]
- db_1_port_1:
- type: OS::Neutron::Port
- properties:
- network: { get_param: int_oam_int_net_id }
- fixed_ips:
- - “ip_address”: {get_param: [ db_int_oam_int_ips, 1 ]}
- - “ip_address”: {get_param: [ db_int_oam_int_v6_ips, 1 ]}
+*Example: One Cloud Assigned IPv4 Address (DHCP) assigned to a network
+that has two or more IPv4 subnets*
-R-29256 The VNF Heat Orchestration Template **MUST** must adhere to the following
-naming convention,
-when the parameter for property fixed\_ips and Map Property ip\_address
-is declared type: string:
+In this example, the '{network-role}' has been defined as 'oam' to represent
+an oam network and the '{vm-type}' has been defined as 'lb' for load
+balancer. The Cloud Assigned IP Address uses the OpenStack DHCP service
+to assign IP addresses.
-- {vm-type}\_int\_{network-role}\_ip\_{index} for an IPv4 address
+.. code-block:: python
-- {vm-type}\_int\_{network-role}\_v6\_ip\_{index} for an IPv6 address
+ parameters:
+ oam_net_id:
+ type: string
+ description: Neutron UUID for the oam network
+ oam_subnet_id:
+ type: string
+ description: Neutron IPv4 subnet UUID for the oam network
+ resources:
+ lb_0_oam_port_0:
+ type: OS::Neutron::Port
+ parameters:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - subnet_id: { get_param: oam_subnet_id }
-The value for {index} must start at zero (0) and increment by one.
+*Example: One Cloud Assigned IPv4 address and one Cloud Assigned IPv6
+address assigned to a network that has at least one IPv4 subnet and one
+IPv6 subnet*
-The parameter must be enumerated in the Heat environment file. Since an
-internal network is local to the VNF, IP addresses can be re-used at
-every VNF instance.
+In this example, the '{network-role}' has been defined as 'oam' to represent
+an oam network and the '{vm-type}' has been defined as 'lb' for load
+balancer.
-*Example Parameter Definition*
+.. code-block:: python
-.. code-block:: yaml
+ parameters:
+ oam_net_id:
+ type: string
+ description: Neutron UUID for the oam network
+ oam_subnet_id:
+ type: string
+ description: Neutron IPv4 subnet UUID for the oam network
+ oam_v6_subnet_id:
+ type: string
+ description: Neutron IPv6 subnet UUID for the oam network
+ resources:
+ lb_0_oam_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - subnet_id: { get_param: oam_subnet_id }
+ - subnet_id: { get_param: oam_v6_subnet_id }
- parameters:
+R-84123 When
- {vm-type}_int_{network-role}_ip_{index}:
- type: string
- description: Fixed IPv4 assignment for {vm-type} VM {index} on the{network-role} network
+- the VNF’s Heat Orchestration Template’s resource ‘OS::Neutron::Port’
+ in an Incremental Module is attaching to an internal network
+ that is created in the Base Module, AND
+- an IPv4 address is being Cloud Assigned by OpenStack’s DHCP Service AND
+- the internal network IPv4 subnet is to be specified using the
+ property ‘fixed_ips’ map property ‘subnet’/’subnet_id’,
- {vm-type}_int_{network-role}_v6_ip_{index}:
- type: string
- description: Fixed IPv6 assignment for {vm-type} VM {index} on the{network-role} network
+the parameter **MUST** follow the naming convention
+‘int\_{network-role}_subnet_id’, where ‘{network-role}’ is the
+network role of the internal network
-*Example: string parameters for IPv4 and IPv6 Address Assignments
-to an internal network*
+- Note that the parameter **MUST** be defined as an ‘output’ parameter in
+ the base module.
-In this example, the {network-role} has been defined as oam\_int to
-represent an oam network internal to the vnf. The role oam\_int was
-picked to differentiate from an external oam network with a
-{network-role} of oam. The {vm-type} has been defined as db for
-database.
+R-69634 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property
+subnet’/’subnet_id’ parameter ‘int\_{network-role}_subnet_id’
+**MUST NOT** be enumerated in the VNF’s Heat Orchestration Template’s
+Environment File.
-.. code-block:: yaml
+The assumption is that internal networks are created in the base module.
+The Neutron subnet network ID will be passed as an output parameter
+(e.g., ECOMP Base Module Output Parameter) to the incremental modules.
+In the incremental modules, the output parameter name will be defined as
+input parameter.
- parameters:
- int_oam_int_net_id:
- type: string
- description: Neutron UUID for an OAM internal network
+*Example Parameter Definition*
- db_oam_int_ip_0:
- type: string
- description: Fixed IPv4 assignment for db VM on the oam_int network
+.. code-block:: python
- db_oam_int_ip_1:
- type: string
- description: Fixed IPv4 assignment for db VM 1 on the oam_int network
+ parameters:
- db_oam_int_v6_ip_0:
- type: string
- description: Fixed IPv6 assignment for db VM 0 on the oam_int network
+ int_{network-role}_subnet_id:
+ type: string
+ description: Neutron IPv4 subnet UUID for the int_{network-role} network
- db_oam_int_v6_ip_1:
- type: string
- description: Fixed IPv6 assignment for db VM 1 on the oam_int network
+R-76160 When
- resources:
- db_0_port_0:
- type: OS::Neutron::Port
- properties:
- network: { get_param: int_oam_int_net_id }
- fixed_ips: [ { “ip_address”: {get_param: db_oam_int_ip_0}}, {“ip_address”: {get_param: db_oam_int_v6_ip_0 ]}}]
+- the VNF’s Heat Orchestration Template’s resource
+ ‘OS::Neutron::Port’ in an Incremental Module is attaching to an
+ internal network that is created in the Base Module, AND
+- an IPv6 address is being Cloud Assigned by OpenStack’s DHCP Service AND
+- the internal network IPv6 subnet is to be specified using the property
+ ‘fixed_ips’ map property ‘subnet’/’subnet_id’,
+
+the parameter **MUST** follow the naming convention
+‘int\_{network-role}_v6_subnet_id’, where ‘{network-role}’
+is the network role of the internal network
+
+- Note that the parameter **MUST** be defined as an ‘output’ parameter in
+ the base module.
+
+R-22288 The VNF’s Heat Orchestration Template’s Resource
+‘OS::Neutron::Port’ property ‘fixed_ips’ map property
+‘subnet’/’subnet_id’ parameter ‘int\_{network-role}_v6_subnet_id’
+**MUST NOT** be enumerated in the VNF’s Heat Orchestration Template’s
+Environment File.
+
+*Example Parameter Definition*
+
+.. code-block:: python
+
+ parameters:
+
+ int_{network-role}_v6_subnet_id:
+ type: string
+ description: Neutron subnet UUID for the int_{network-role} network
- db_1_port_0:
- type: OS::Neutron::Port
- properties:
- network: { get_param: int_oam_int_net_id }
- fixed_ips:
- - “ip_address”: {get_param: db_oam_int_ip_1}}]
- - “ip_address”: {get_param: db_oam_int_v6_ip_1}}]
Property: allowed\_address\_pairs, Map Property: ip\_address
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++