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