VNFRQTS - Link consolidation
[vnfrqts/requirements.git] / docs / Chapter5 / Heat / ONAP Heat Resource ID and Parameter Naming Convention / {network-role}.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 {network-role}
6 -----------------------------
7
8 .. req::
9     :id: R-69014
10     :target: VNF
11     :keyword: MUST
12     :validation_mode: none
13     :updated: casablanca
14
15     When a VNF's port connects to an internal network or external network,
16     a network role, referred to
17     as the ``{network-role}`` **MUST** be assigned to the network for
18     use in the VNF's Heat Orchestration Template.  The ``{network-role}``
19     is used in the VNF's Heat Orchestration Template resource IDs
20     and resource property parameter names.
21
22 .. req::
23     :id: R-05201
24     :target: VNF
25     :keyword: MUST
26     :validation_mode: none
27     :updated: casablanca
28
29     When a VNF connects to two or more unique networks, each
30     network **MUST** be assigned a unique ``{network-role}``
31     in the context of the VNF for use in the VNF's Heat Orchestration
32     Template.
33
34 .. req::
35     :id: R-21330
36     :target: VNF
37     :keyword: MUST
38     :validation_mode: none
39     :updated: casablanca
40
41     A VNF's Heat Orchestration Template's Resource property parameter that is
42     associated with external network **MUST** include the ``{network-role}``
43     as part of the parameter name.
44
45 .. req::
46     :id: R-11168
47     :target: VNF
48     :keyword: MUST
49     :validation_mode: none
50     :updated: casablanca
51
52     A VNF's Heat Orchestration Template's Resource ID that is associated with
53     an external network **MUST** include the ``{network-role}`` as part
54     of the resource ID.
55
56 .. req::
57     :id: R-84322
58     :target: VNF
59     :keyword: MUST
60     :validation_mode: none
61     :updated: casablanca
62
63     A VNF's Heat Orchestration Template's Resource property parameter that
64     is associated with an internal network **MUST** include
65     ``int_{network-role}`` as part of the parameter name,
66     where ``int_`` is a hard coded string.
67
68 .. req::
69     :id: R-96983
70     :target: VNF
71     :keyword: MUST
72     :validation_mode: none
73     :updated: casablanca
74
75     A VNF's Heat Orchestration Template's Resource ID that is associated
76     with an internal network **MUST** include ``int_{network-role}`` as part
77     of the Resource ID, where ``int_`` is a hard coded string.
78
79 .. req::
80     :id: R-26506
81     :target: VNF
82     :keyword: MUST
83     :validation_mode: static
84     :updated: casablanca
85
86     A VNF's Heat Orchestration Template's ``{network-role}`` **MUST** contain
87     only alphanumeric characters and/or underscores '_' and
88     **MUST NOT** contain any of the following strings:
89     ``_int`` or ``int_`` or ``_int_``.
90
91 .. req::
92     :id: R-00977
93     :target: VNF
94     :keyword: MUST NOT
95     :validation_mode: static
96     :updated: casablanca
97
98     A VNF's Heat Orchestration Template's ``{network-role}``
99     **MUST NOT** be a substring of ``{vm-type}``.
100
101 For example, if a VNF has a '{vm-type}' of 'oam' and a
102 '{network-role}' of 'oam\_protected' would be a violation of the requirement.
103
104
105 .. req::
106     :id: R-58424
107     :target: VNF
108     :keyword: MUST
109     :validation_mode: none
110     :updated: casablanca
111
112     A VNF's Heat Orchestration Template's use of ``{network-role}``
113     in all Resource property parameter names **MUST** be the same case.
114
115 .. req::
116     :id: R-21511
117     :target: VNF
118     :keyword: MUST
119     :validation_mode: none
120     :updated: casablanca
121
122     A VNF's Heat Orchestration Template's use of ``{network-role}``
123     in all Resource IDs **MUST** be the same case.
124
125 .. req::
126     :id: R-86588
127     :target: VNF
128     :keyword: SHOULD
129     :updated: casablanca
130
131     A VNF's Heat Orchestration Template's ``{network-role}`` case in Resource
132     property parameter names **SHOULD** match the case of ``{network-role}``
133     in Resource IDs and vice versa.
134
135
136 Note that this document refers to ``{network-role}`` which in reality
137 is the ``{network-role-tag}``.  The value of the
138 ``{network-role}`` / ``{network-role-tag}``
139 is determined by the designer of the VNF's Heat Orchestration Template and
140 there is no requirement for ``{network-role}`` / ``{network-role-tag}``
141 uniqueness across Heat Orchestration Templates for
142 different VNFs.
143
144 When an external network is created by ONAP, the network is also assigned a
145 ``{network-role}``.  The ``{network-role}`` of the network is not required to
146 match the ``{network-role}`` of the VNF Heat Orchestration Template.
147
148 For example, the VNF Heat Orchestration Template can assign a
149 ``{network-role}``
150 of ``oam`` to a network which attaches to an external network with a
151 ``{network-role}`` of ``oam_protected`` .
152
153 When the Heat Orchestration Template is on-boarded into ONAP
154   * each ``{network-role}`` value in the Heat Orchestration Template
155     is mapped to the ``{network-role-tag}`` in the ONAP
156     data structure.
157   * each ``OS::Neutron::Port`` is associated with the external network it is
158     connecting to, thus creating the VNF Heat Orchestration Template
159     ``{network-role}`` / ``{network-role-tag}``
160     to external network ``{network-role}`` mapping.