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