Update the requirement R-26881 in VNFRQTS-587
[vnfrqts/requirements.git] / docs / Chapter7 / VNF-On-boarding-and-package-management.rst
1 .. Modifications Copyright © 2017-2018 AT&T Intellectual Property.
2
3 .. Licensed under the Creative Commons License, Attribution 4.0 Intl.
4    (the "License"); you may not use this documentation except in compliance
5    with the License. You may obtain a copy of the License at
6
7 .. https://creativecommons.org/licenses/by/4.0/
8
9 .. Unless required by applicable law or agreed to in writing, software
10    distributed under the License is distributed on an "AS IS" BASIS,
11    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12    See the License for the specific language governing permissions and
13    limitations under the License.
14
15
16 VNF On-boarding and package management
17 --------------------------------------
18
19 Design Definition
20 ^^^^^^^^^^^^^^^^^^
21
22 The ONAP Design Time Framework provides the ability to design NFV
23 resources including VNFs, Services, and products. The VNF provider must
24 provide VNF packages that include a rich set of recipes, management and
25 functional interfaces, policies, configuration parameters, and
26 infrastructure requirements that can be utilized by the ONAP Design
27 module to onboard and catalog these resources. Initially this
28 information may be provided in documents, but in the near future a
29 method will be developed to automate as much of the transfer of data as
30 possible to satisfy its long term requirements.
31
32 The current VNF Package Requirement is based on a subset of the
33 Requirements contained in the ETSI Document: ETSI GS NFV-MAN 001 v1.1.1
34 and GS NFV IFA011 V0.3.0 (2015-10) - Network Functions Virtualization
35 (NFV), Management and Orchestration, VNF Packaging Specification.
36
37 Resource Description
38 ^^^^^^^^^^^^^^^^^^^^^^
39
40
41 .. req::
42     :id: R-77707
43     :target: XNF
44     :keyword: MUST
45
46     The xNF provider **MUST** include a Manifest File that
47     contains a list of all the components in the xNF package.
48
49 .. req::
50     :id: R-66070
51     :target: XNF
52     :keyword: MUST
53
54     The xNF Package **MUST** include xNF Identification Data to
55     uniquely identify the resource for a given xNF provider. The identification
56     data must include: an identifier for the xNF, the name of the xNF as was
57     given by the xNF provider, xNF description, xNF provider, and version.
58
59 .. req::
60     :id: R-69565
61     :target: XNF
62     :keyword: MUST
63
64     The xNF Package **MUST** include documentation describing xNF
65     Management APIs, which must include information and tools for ONAP to
66     deploy and configure (initially and ongoing) the xNF application(s)
67     (e.g., NETCONF APIs) which includes a description of configurable
68     parameters for the xNF and whether the parameters can be configured
69     after xNF instantiation.
70
71 .. req::
72     :id: R-00156
73     :target: XNF
74     :keyword: MUST
75
76     The xNF Package **MUST** include documentation describing xNF
77     Management APIs, which must include information and tools for
78     ONAP to monitor the health of the xNF (conditions that require
79     healing and/or scaling responses).
80
81 .. req::
82     :id: R-00068
83     :target: XNF
84     :keyword: MUST
85
86     The xNF Package **MUST** include documentation which includes
87     a description of parameters that can be monitored for the xNF
88     and event records (status, fault, flow, session, call, control
89     plane, etc.) generated by the xNF after instantiation.
90
91 .. req::
92     :id: R-12678
93     :target: XNF
94     :keyword: MUST
95
96     The xNF Package **MUST** include documentation which includes a
97     description of runtime lifecycle events and related actions (e.g.,
98     control responses, tests) which can be performed for the xNF.
99
100 .. req::
101     :id: R-84366
102     :target: XNF
103     :keyword: MUST
104
105     The xNF Package **MUST** include documentation describing
106     xNF Functional APIs that are utilized to build network and
107     application services. This document describes the externally exposed
108     functional inputs and outputs for the xNF, including interface
109     format and protocols supported.
110
111 .. req::
112     :id: R-36280
113     :target: XNF
114     :keyword: MUST
115
116     The xNF provider **MUST** provide documentation describing
117     xNF Functional Capabilities that are utilized to operationalize the
118     xNF and compose complex services.
119
120 .. req::
121     :id: R-98617
122     :target: XNF
123     :keyword: MUST
124
125     The xNF provider **MUST** provide information regarding any
126     dependency (e.g., affinity, anti-affinity) with other xNFs and resources.
127
128 .. req::
129     :id: R-22346
130     :target: XNF PACKAGE
131     :keyword: MUST
132     :introduced: casablanca
133     :validation_mode: static
134
135     The xNF package MUST provide :doc:`VES Event Registration <../../../../vnfsdk/model.git/docs/files/VESEventRegistration_3_0>`
136     for all VES events provided by that xNF.
137
138 .. req::
139    :id: R-384337
140    :target: VNF
141    :keyword: MUST
142    :introduced: casablanca
143
144    The VNF documentation **MUST** contain a list of the files within the VNF
145    package that are static during the VNF's runtime.
146
147
148 Resource Configuration
149 ^^^^^^^^^^^^^^^^^^^^^^^
150
151
152 .. req::
153     :id: R-89571
154     :target: XNF
155     :keyword: MUST
156
157     The xNF **MUST** support and provide artifacts for configuration
158     management using at least one of the following technologies;
159     a) Netconf/YANG, b) Chef, or c) Ansible.
160
161     Note: The requirements for Netconf/YANG, Chef, and Ansible protocols
162     are provided separately and must be supported only if the corresponding
163     protocol option is provided by the xNF providor.
164
165
166 Configuration Management via NETCONF/YANG
167 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
168
169 .. req::
170     :id: R-30278
171     :target: XNF
172     :keyword: MUST
173
174     The xNF provider **MUST** provide a Resource/Device YANG model
175     as a foundation for creating the YANG model for configuration. This will
176     include xNF attributes/parameters and valid values/attributes configurable
177     by policy.
178
179 Configuration Management via Chef
180 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
181
182
183 .. req::
184     :id: R-13390
185     :target: XNF
186     :keyword: MUST
187
188     The xNF provider **MUST** provide cookbooks to be loaded
189     on the appropriate Chef Server.
190
191 .. req::
192     :id: R-18525
193     :target: XNF
194     :keyword: MUST
195
196     The xNF provider **MUST** provide a JSON file for each
197     supported action for the xNF. The JSON file must contain key value
198     pairs with all relevant values populated with sample data that illustrates
199     its usage. The fields and their description are defined in Tables A1
200     and A2 in the Appendix.
201
202     Note: Chef support in ONAP is not currently available and planned for 4Q 2017.
203
204
205 Configuration Management via Ansible
206 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207
208
209 .. req::
210     :id: R-75608
211     :target: XNF
212     :keyword: MUST
213
214     The xNF provider **MUST** provide playbooks to be loaded
215     on the appropriate Ansible Server.
216
217 .. req::
218     :id: R-16777
219     :target: XNF
220     :keyword: MUST
221
222     The xNF provider **MUST** provide a JSON file for each
223     supported action for the xNF. The JSON file must contain key value
224     pairs with all relevant values populated with sample data that illustrates
225     its usage. The fields and their description are defined in Table B1
226     in the Appendix.
227
228 .. req::
229     :id: R-46567
230     :target: XNF
231     :keyword: MUST
232
233     The xNF Package **MUST** include configuration scripts
234     for boot sequence and configuration.
235
236 .. req::
237     :id: R-16065
238     :target: XNF
239     :keyword: MUST
240
241     The xNF provider **MUST** provide configurable parameters
242     (if unable to conform to YANG model) including xNF attributes/parameters
243     and valid values, dynamic attributes and cross parameter dependencies
244     (e.g., customer provisioning data).
245
246 Resource Control Loop
247 ^^^^^^^^^^^^^^^^^^^^^^^
248
249
250 .. req::
251     :id: R-22888
252     :target: XNF
253     :keyword: MUST
254
255     The xNF provider **MUST** provide documentation for the xNF
256     Policy Description to manage the xNF runtime lifecycle. The document
257     must include a description of how the policies (conditions and actions)
258     are implemented in the xNF.
259
260 .. req::
261     :id: R-01556
262     :target: XNF
263     :keyword: MUST
264
265     The xNF Package **MUST** include documentation describing the
266     fault, performance, capacity events/alarms and other event records
267     that are made available by the xNF.
268
269 .. req::
270     :id: R-16875
271     :target: XNF
272     :keyword: MUST
273
274     The xNF Package **MUST** include documentation which must include
275     a unique identification string for the specific xNF, a description of
276     the problem that caused the error, and steps or procedures to perform
277     Root Cause Analysis and resolve the issue.
278
279 .. req::
280     :id: R-35960
281     :target: XNF
282     :keyword: MUST
283
284     The xNF Package **MUST** include documentation which must include
285     all events, severity level (e.g., informational, warning, error) and
286     descriptions including causes/fixes if applicable for the event.
287
288 .. req::
289     :id: R-42018
290     :target: XNF
291     :keyword: MUST
292
293     The xNF Package **MUST** include documentation which must include
294     all events (fault, measurement for xNF Scaling, Syslogs, State Change
295     and Mobile Flow), that need to be collected at each VM, VNFC (defined in `VNF Guidelines <https://onap.readthedocs.io/en/latest/submodules/vnfrqts/guidelines.git/docs/vnf_guidelines/vnf_guidelines.html>`__ ) and for the overall xNF.
296
297
298 .. req::
299     :id: R-01478
300     :target: XNF
301     :keyword: MUST
302
303     The xNF Package **MUST** include documentation describing all
304     parameters that are available to monitor the xNF after instantiation
305     (includes all counters, OIDs, PM data, KPIs, etc.) that must be
306     collected for reporting purposes.
307
308 .. req::
309     :id: R-73560
310     :target: XNF
311     :keyword: MUST
312
313     The xNF Package **MUST** include documentation about monitoring
314     parameters/counters exposed for virtual resource management and xNF
315     application management.
316
317 .. req::
318     :id: R-90632
319     :target: XNF
320     :keyword: MUST
321
322     The xNF Package **MUST** include documentation about KPIs and
323     metrics that need to be collected at each VM for capacity planning
324     and performance management purposes.
325
326 .. req::
327     :id: R-86235
328     :target: XNF
329     :keyword: MUST
330
331     The xNF Package **MUST** include documentation about the monitoring
332     parameters that must include latencies, success rates, retry rates, load
333     and quality (e.g., DPM) for the key transactions/functions supported by
334     the xNF and those that must be exercised by the xNF in order to perform
335     its function.
336
337 .. req::
338     :id: R-33904
339     :target: XNF
340     :keyword: MUST
341
342     The xNF Package **MUST** include documentation for each KPI, provide
343     lower and upper limits.
344
345 .. req::
346     :id: R-53598
347     :target: XNF
348     :keyword: MUST
349
350     The xNF Package **MUST** include documentation to, when relevant,
351     provide a threshold crossing alert point for each KPI and describe the
352     significance of the threshold crossing.
353
354 .. req::
355     :id: R-69877
356     :target: XNF
357     :keyword: MUST
358
359     The xNF Package **MUST** include documentation for each KPI,
360     identify the suggested actions that need to be performed when a
361     threshold crossing alert event is recorded.
362
363 .. req::
364     :id: R-22680
365     :target: XNF
366     :keyword: MUST
367
368     The xNF Package **MUST** include documentation that describes
369     any requirements for the monitoring component of tools for Network
370     Cloud automation and management to provide these records to components
371     of the xNF.
372
373 .. req::
374     :id: R-33694
375     :target: XNF
376     :keyword: MUST
377
378     The xNF Package **MUST** include documentation to when applicable,
379     provide calculators needed to convert raw data into appropriate reporting
380     artifacts.
381
382 .. req::
383     :id: R-56815
384     :target: XNF
385     :keyword: MUST
386
387     The xNF Package **MUST** include documentation describing
388     supported xNF scaling capabilities and capacity limits (e.g., number
389     of users, bandwidth, throughput, concurrent calls).
390
391 .. req::
392     :id: R-48596
393     :target: XNF
394     :keyword: MUST
395
396     The xNF Package **MUST** include documentation describing
397     the characteristics for the xNF reliability and high availability.
398
399 .. req::
400     :id: R-74763
401     :target: XNF
402     :keyword: MUST
403
404     The xNF provider **MUST** provide an artifact per xNF that contains
405     all of the xNF Event Records supported. The artifact should include
406     reference to the specific release of the xNF Event Stream Common Event
407     Data Model document it is based on. (e.g.,
408     `VES Event Listener <https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/files/VESEventListener.html>`__)
409
410 Compute, Network, and Storage Requirements
411 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
412
413
414 .. req::
415     :id: R-35851
416     :target: XNF
417     :keyword: MUST
418
419     The xNF Package **MUST** include xNF topology that describes
420     basic network and application connectivity internal and external to the
421     xNF including Link type, KPIs, Bandwidth, latency, jitter, QoS (if
422     applicable) for each interface.
423
424 .. req::
425     :id: R-97102
426     :target: VNF
427     :keyword: MUST
428
429     The VNF Package **MUST** include VM requirements via a Heat
430     template that provides the necessary data for VM specifications
431     for all VNF components - for hypervisor, CPU, memory, storage.
432
433 .. req::
434     :id: R-20204
435     :target: VNF
436     :keyword: MUST
437
438     The VNF Package **MUST** include VM requirements via a Heat
439     template that provides the necessary data for network connections,
440     interface connections, internal and external to VNF.
441
442 .. req::
443     :id: R-44896
444     :target: VNF
445     :keyword: MUST
446
447     The VNF Package **MUST** include VM requirements via a Heat
448     template that provides the necessary data for high availability
449     redundancy model.
450
451 .. req::
452     :id: R-55802
453     :target: VNF
454     :keyword: MUST
455
456     The VNF Package **MUST** include VM requirements via a Heat
457     template that provides the necessary data for scaling/growth VM
458     specifications.
459
460     Note: Must comply with the *Heat requirements in 5.b*.
461
462 .. req::
463     :id: R-26881
464     :target: VNF
465     :keyword: MUST
466
467     The VNF provider **MUST** provide the binaries and images
468     needed to instantiate the VNF (VNF and VNFC images).
469
470 .. req::
471     :id: R-96634
472     :target: XNF
473     :keyword: MUST
474
475     The xNF provider **MUST** describe scaling capabilities
476     to manage scaling characteristics of the xNF.
477
478 Testing
479 ^^^^^^^^^^
480
481
482 .. req::
483     :id: R-43958
484     :target: XNF
485     :keyword: MUST
486     :updated: casablanca
487
488     The xNF Package **MUST** include documentation describing
489     the tests that were conducted by the xNF provider and the test results.
490
491 .. req::
492     :id: R-04298
493     :target: XNF
494     :keyword: MUST
495
496     The xNF provider **MUST** provide their testing scripts to
497     support testing.
498
499 .. req::
500     :id: R-58775
501     :target: XNF
502     :keyword: MUST
503
504     The xNF provider **MUST** provide software components that
505     can be packaged with/near the xNF, if needed, to simulate any functions
506     or systems that connect to the xNF system under test. This component is
507     necessary only if the existing testing environment does not have the
508     necessary simulators.
509
510 Licensing Requirements
511 ^^^^^^^^^^^^^^^^^^^^^^^
512
513
514 .. req::
515     :id: R-85653
516     :target: XNF
517     :keyword: MUST
518
519     The xNF **MUST** provide metrics (e.g., number of sessions,
520     number of subscribers, number of seats, etc.) to ONAP for tracking
521     every license.
522
523 .. req::
524     :id: R-44125
525     :target: XNF
526     :keyword: MUST
527
528     The xNF provider **MUST** agree to the process that can
529     be met by Service Provider reporting infrastructure. The Contract
530     shall define the reporting process and the available reporting tools.
531
532 .. req::
533     :id: R-40827
534     :target: XNF
535     :keyword: MUST
536
537     The xNF provider **MUST** enumerate all of the open
538     source licenses their xNF(s) incorporate.
539
540 .. req::
541     :id: R-97293
542     :target: XNF
543     :keyword: MUST NOT
544
545     The xNF provider **MUST NOT** require audits
546     of Service Provider's business.
547
548 .. req::
549     :id: R-44569
550     :target: XNF
551     :keyword: MUST NOT
552
553     The xNF provider **MUST NOT** require additional
554     infrastructure such as a xNF provider license server for xNF provider
555     functions and metrics.
556
557 .. req::
558     :id: R-13613
559     :target: VNF
560     :keyword: MUST
561
562     The VNF **MUST** provide clear measurements for licensing
563     purposes to allow automated scale up/down by the management system.
564
565 .. req::
566     :id: R-27511
567     :target: VNF
568     :keyword: MUST
569
570     The VNF provider **MUST** provide the ability to scale
571     up a VNF provider supplied product during growth and scale down a
572     VNF provider supplied product during decline without "real-time"
573     restrictions based upon VNF provider permissions.
574
575 .. req::
576     :id: R-85991
577     :target: XNF
578     :keyword: MUST
579
580     The xNF provider **MUST** provide a universal license key
581     per xNF to be used as needed by services (i.e., not tied to a VM
582     instance) as the recommended solution. The xNF provider may provide
583     pools of Unique xNF License Keys, where there is a unique key for
584     each xNF instance as an alternate solution. Licensing issues should
585     be resolved without interrupting in-service xNFs.
586
587 .. req::
588     :id: R-47849
589     :target: XNF
590     :keyword: MUST
591
592     The xNF provider **MUST** support the metadata about
593     licenses (and their applicable entitlements) as defined in this
594     document for xNF software, and any license keys required to authorize
595     use of the xNF software.  This metadata will be used to facilitate
596     onboarding the xNF into the ONAP environment and automating processes
597     for putting the licenses into use and managing the full lifecycle of
598     the licenses. The details of this license model are described in
599     Tables C1 to C8 in the Appendix.
600
601     Note: License metadata support in ONAP is not currently available
602     and planned for 1Q 2018.
603