Merge "VNFRQTS - Remove the needs JSON"
[vnfrqts/requirements.git] / docs / Chapter5 / Heat / ONAP Heat Networking.rst
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.
4
5 .. _ONAP Heat Networking:
6
7 ONAP Heat Networking
8 -----------------------
9
10 ONAP defines two types of networks: External Networks and Internal Networks.
11
12 External Networks
13 ^^^^^^^^^^^^^^^^^^^^
14
15 ONAP defines an external network in relation to the VNF and not with regard
16 to the Network Cloud site. External networks may also be referred to as
17 "inter-VNF" networks.  An external network must connect VMs in a VNF to
18 VMs in another VNF or an external gateway or external router.
19
20 An External Network may be a Neutron Network or a Contrail Network.
21
22
23 .. req::
24     :id: R-16968
25     :target: VNF
26     :keyword: MUST NOT
27     :validation_mode: static
28     :updated: casablanca
29
30     A VNF's Heat Orchestration Templates **MUST NOT** include heat
31     resources to create external networks.
32
33 External networks must be orchestrated separately, independent of the VNF.
34 This allows the network to be shared by multiple VNFs and managed
35 independently of VNFs.
36
37
38 .. req::
39     :id: R-00606
40     :target: VNF
41     :keyword: MAY
42     :updated: casablanca
43
44     A VNF **MAY** be connected to zero, one or more than one external
45     network.
46
47 .. req::
48     :id: R-57424
49     :target: VNF
50     :keyword: MUST
51     :validation_mode: none
52     :updated: casablanca
53
54     A VNF's port connected to an external network **MUST**
55     use the port for the purpose of reaching
56     VMs in another VNF and/or an external gateway and/or external router.
57     A VNF's port connected to an external network **MAY**
58     use the port for the purpose of reaching VMs in the same VNF.
59
60 .. req::
61     :id: R-99794
62     :target: VNF
63     :keyword: MUST
64     :validation_mode: none
65     :updated: casablanca
66
67     An external network **MUST** have one subnet. An external network
68     **MAY** have more than one subnet.
69
70 ONAP enforces a naming convention for
71 resource IDs and resource property
72 parameters associated with
73 external networks. :ref:`ONAP Heat Resource ID and Parameter Naming Convention`
74 provides additional details.
75
76 Internal Networks
77 ^^^^^^^^^^^^^^^^^^^^
78
79 ONAP defines an internal network in relation to the VNF and not with
80 regard to the Network Cloud site. Internal networks may also be referred
81 to as "intra-VNF" networks or "private" networks. An internal network
82 only connects VMs in a single VNF; it must not connect to other VNFs
83 or an external gateway or router
84
85
86 .. req::
87     :id: R-87096
88     :target: VNF
89     :keyword: MAY
90     :updated: casablanca
91
92     A VNF **MAY** contain zero, one or more than one internal network.
93
94 .. req::
95     :id: R-35666
96     :target: VNF
97     :keyword: MUST
98     :validation_mode: static
99     :updated: casablanca
100
101     If a VNF has an internal network, the VNF Heat Orchestration Template
102     **MUST** include the heat resources to create the internal network.
103
104 .. req::
105     :id: R-86972
106     :target: VNF
107     :keyword: SHOULD
108     :updated: casablanca
109
110     A VNF **SHOULD** create the internal network in the VNF's Heat
111     Orchestration Template Base Module.
112
113 An Internal Network may be created using Neutron Heat Resources and/or
114 Contrail Heat Resources.
115
116
117 .. req::
118     :id: R-52425
119     :target: VNF
120     :keyword: MUST
121     :validation_mode: none
122     :updated: casablanca
123
124     A VNF's port connected to an internal network **MUST**
125     use the port for the purpose of reaching VMs in the same VNF.
126
127 .. req::
128     :id: R-46461
129     :target: VNF
130     :keyword: MUST NOT
131     :validation_mode: none
132     :updated: casablanca
133
134     A VNF's port connected to an internal network **MUST NOT** use the port
135     for the purpose of reaching VMs in another VNF and/or an
136     external gateway and/or
137     external router.
138
139 .. req::
140     :id: R-16241
141     :target: VNF
142     :keyword: MUST
143     :validation_mode: static
144     :updated: casablanca
145
146     A VNF's internal network **MUST** have one subnet.
147     A VNF's internal network **MAY** have more than one subnet.
148
149 .. req::
150     :id: R-22688
151     :target: VNF
152     :keyword: MUST
153     :validation_mode: static
154     :updated: casablanca
155
156     If a VNF's port is connected to an internal network and the port is
157     created in an Incremental Module and the internal network is created
158     in the Base Module then the UUID of the internal network **MUST** be
159     exposed as a parameter in the ``outputs:`` section of the Base Module
160     and the port resource **MUST** use a ``get_param`` to obtain the network
161     UUID.
162
163 ONAP does not programmatically enforce a naming convention for
164 parameters for internal network. However, a naming convention is
165 provided that must be followed.
166 :ref:`ONAP Heat Resource ID and Parameter Naming Convention`
167 provides additional details.
168