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