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