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