1 .. Licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright 2017 AT&T Intellectual Property. All rights reserved.
5 .. _ONAP Heat Networking:
8 -----------------------
10 ONAP defines two types of networks: External Networks and Internal Networks.
15 An ONAP external network is created by using VID or by invoking SO directly
16 to instantiate the network.
17 External networks are orchestrated separately, independent of VNFs.
18 A network instantiated via VID or by invoking SO directly is managed by
19 ONAP and is inventoried in AAI.
21 An external network can be created by using one of the following
24 - ``OS::Neutron::Net``
25 - ``OS::Neutron::ProviderNet``
26 - ``OS::ContrailV2::VirtualNetwork``
28 An external network **MAY** be used to
30 - Connect a VM in a VNF to VMs in another VNF
31 - Connect a VM in a VNF to an external gateway or external router
32 - Connect a VM in a VNF to other VMs in the same VNF
34 An external network may be designed to perform
36 - All three functions listed above or
37 - Perform only two functions listed above or
38 - Perform only one function listed above
44 :validation_mode: static
47 A VNF's Heat Orchestration Templates **MUST NOT** include heat
48 resources to create an ONAP external network.
50 An ONAP external network **MUST** be instantiated by using VID
51 or by invoking SO directly.
60 A VNF **MAY** be connected to zero, one or more than one ONAP external
67 :validation_mode: none
70 A VNF's port connected to an ONAP external network **MAY**
71 use the port for the purpose of
73 - Connecting a VM in the VNF to VMs in another VNF and/or
74 - Connecting a VM in the VNF to an external gateway or external router
76 - Connecting a VM in the VNF to other VMs in the same VNF
82 :validation_mode: none
85 An ONAP external network **MUST** have one subnet. An external network
86 **MAY** have more than one subnet.
88 ONAP enforces a naming convention for
89 resource IDs and resource property
90 parameters associated with
91 external networks. :ref:`ONAP Heat Resource ID and Parameter Naming Convention`
92 provides additional details.
97 An ONAP internal network is created by the VNF's Heat Orchestration Template.
98 That is, the VNF's Heat Orchestration Template contains the heat resources to
99 instantiate the network.
100 An ONAP internal network is not inventoried by AAI and can not be managed
101 independently of the VNF.
103 An ONAP internal network MUST only be used for connecting a VM in the
104 VNF to other VMs in the same VNF.
106 An ONAP internal network MUST NOT be used for connecting a VM in the VNF to
107 VMs in another VNF or connecting a VM in the VNF to an external gateway and/or
110 The reason for this is for operational simplicity. An ONAP internal network
111 will be deleted when the VNF that created the network (referred to as VNF A)
112 is deleted. If a different VNF (referred to as VNF B) attaches to the ONAP
113 internal network created by VNF A, then VNF B must be deleted prior VNF A.
115 In addition, if an ONAP internal network is used to connect two (or more) VNFs,
116 there is no record in AAI inventory. This could lead to additional
117 operational complications.
125 A VNF **MAY** contain zero, one or more than one ONAP internal network.
131 :validation_mode: static
134 If a VNF has an ONAP internal network, the VNF's Heat Orchestration
135 Template **MUST** include the heat resources to create the
136 ONAP internal network.
138 A VNF's ONAP internal network is created using Neutron Heat Resources
139 (e.g., ``OS::Neutron::Net``, ``OS::Neutron::Subnet``,
140 ``OS::Neutron::ProviderNet``) and/or
141 Contrail Heat Resources (e.g., ``OS::ContrailV2::VirtualNetwork``,
142 ``OS::ContrailV2::NetworkIpam``).
149 :validation_mode: none
152 A VNF's port connected to an ONAP internal network **MUST**
153 use the port for the purpose of reaching VMs in the same VNF.
159 :validation_mode: none
162 A VNF's port connected to an ONAP internal network **MUST NOT**
164 for the purpose of reaching VMs in another VNF and/or an
165 external gateway and/or
172 :validation_mode: static
175 A VNF's ONAP internal network **MUST** have one subnet.
176 A VNF's ONAP internal network **MAY** have more than one subnet.
184 A VNF **SHOULD** create the ONAP internal network in the VNF's Heat
185 Orchestration Template's Base Module.
192 :validation_mode: static
195 When a VNF's Heat Orchestration Template creates an ONAP internal network
196 (per the ONAP definition, see Requirements R-52425 and R-46461
197 and R-35666) and the ONAP internal network needs to be shared between
198 modules within a VNF, the ONAP
199 internal network **MUST** be created either in the
202 * a nested YAML file invoked by the base module
204 and the base module **MUST** contain an output parameter that provides
205 either the network UUID or network name.
207 * If the network UUID value is used to reference the network, the output
208 parameter name in the base module **MUST** follow the naming convention
209 ``int_{network-role}_net_id``
210 * If the network name in is used to reference the network, the output
211 parameter name in the base template **MUST** follow the naming convention
212 ``int_{network-role}_net_name``
214 The ``{network-role}`` **MUST** be the network-role of the ONAP
215 internal network created in the Base Module.
217 The Base Module Output Parameter MUST be declared in the ``parameters:``
218 section of the Incremental Module(s) where the ``OS::Neutron::Port``
219 resource(s) is attaching to the ONAP internal network.
221 ONAP does not programmatically enforce a naming convention for
222 parameters for internal network. However, a naming convention is
223 provided that must be followed.
224 :ref:`ONAP Heat Resource ID and Parameter Naming Convention`
225 provides additional details.