f2184ae74b2ecdd312d2f0438d2344c7f0eadb28
[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: XNF
114     :keyword: MUST
115
116     The xNF provider **MUST** provide information regarding any
117     dependency (e.g., affinity, anti-affinity) with other xNFs 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 .. req::
289     :id: R-27711
290     :target: XNF
291     :keyword: MUST
292
293     The xNF provider **MUST** provide an XML file that contains a
294     list of xNF error codes, descriptions of the error, and possible
295     causes/corrective action.
296
297 .. req::
298     :id: R-01478
299     :target: XNF
300     :keyword: MUST
301
302     The xNF Package **MUST** include documentation describing all
303     parameters that are available to monitor the xNF after instantiation
304     (includes all counters, OIDs, PM data, KPIs, etc.) that must be
305     collected for reporting purposes.
306
307 .. req::
308     :id: R-73560
309     :target: XNF
310     :keyword: MUST
311
312     The xNF Package **MUST** include documentation about monitoring
313     parameters/counters exposed for virtual resource management and xNF
314     application management.
315
316 .. req::
317     :id: R-90632
318     :target: XNF
319     :keyword: MUST
320
321     The xNF Package **MUST** include documentation about KPIs and
322     metrics that need to be collected at each VM for capacity planning
323     and performance management purposes.
324
325 .. req::
326     :id: R-86235
327     :target: XNF
328     :keyword: MUST
329
330     The xNF Package **MUST** include documentation about the monitoring
331     parameters that must include latencies, success rates, retry rates, load
332     and quality (e.g., DPM) for the key transactions/functions supported by
333     the xNF and those that must be exercised by the xNF in order to perform
334     its function.
335
336 .. req::
337     :id: R-33904
338     :target: XNF
339     :keyword: MUST
340
341     The xNF Package **MUST** include documentation for each KPI, provide
342     lower and upper limits.
343
344 .. req::
345     :id: R-53598
346     :target: XNF
347     :keyword: MUST
348
349     The xNF Package **MUST** include documentation to, when relevant,
350     provide a threshold crossing alert point for each KPI and describe the
351     significance of the threshold crossing.
352
353 .. req::
354     :id: R-69877
355     :target: XNF
356     :keyword: MUST
357
358     The xNF Package **MUST** include documentation for each KPI,
359     identify the suggested actions that need to be performed when a
360     threshold crossing alert event is recorded.
361
362 .. req::
363     :id: R-22680
364     :target: XNF
365     :keyword: MUST
366
367     The xNF Package **MUST** include documentation that describes
368     any requirements for the monitoring component of tools for Network
369     Cloud automation and management to provide these records to components
370     of the xNF.
371
372 .. req::
373     :id: R-33694
374     :target: XNF
375     :keyword: MUST
376
377     The xNF Package **MUST** include documentation to when applicable,
378     provide calculators needed to convert raw data into appropriate reporting
379     artifacts.
380
381 .. req::
382     :id: R-56815
383     :target: XNF
384     :keyword: MUST
385
386     The xNF Package **MUST** include documentation describing
387     supported xNF scaling capabilities and capacity limits (e.g., number
388     of users, bandwidth, throughput, concurrent calls).
389
390 .. req::
391     :id: R-48596
392     :target: XNF
393     :keyword: MUST
394
395     The xNF Package **MUST** include documentation describing
396     the characteristics for the xNF reliability and high availability.
397
398 .. req::
399     :id: R-74763
400     :target: XNF
401     :keyword: MUST
402
403     The xNF provider **MUST** provide an artifact per xNF that contains
404     all of the xNF Event Records supported. The artifact should include
405     reference to the specific release of the xNF Event Stream Common Event
406     Data Model document it is based on. (e.g.,
407     `VES Event Listener <https://onap.readthedocs.io/en/latest/submodules/vnfsdk/model.git/docs/files/VESEventListener.html>`__)
408
409 Compute, Network, and Storage Requirements
410 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
411
412
413 .. req::
414     :id: R-35851
415     :target: XNF
416     :keyword: MUST
417
418     The xNF Package **MUST** include xNF topology that describes
419     basic network and application connectivity internal and external to the
420     xNF including Link type, KPIs, Bandwidth, latency, jitter, QoS (if
421     applicable) for each interface.
422
423 .. req::
424     :id: R-97102
425     :target: VNF
426     :keyword: MUST
427
428     The VNF Package **MUST** include VM requirements via a Heat
429     template that provides the necessary data for VM specifications
430     for all VNF components - for hypervisor, CPU, memory, storage.
431
432 .. req::
433     :id: R-20204
434     :target: VNF
435     :keyword: MUST
436
437     The VNF Package **MUST** include VM requirements via a Heat
438     template that provides the necessary data for network connections,
439     interface connections, internal and external to VNF.
440
441 .. req::
442     :id: R-44896
443     :target: VNF
444     :keyword: MUST
445
446     The VNF Package **MUST** include VM requirements via a Heat
447     template that provides the necessary data for high availability
448     redundancy model.
449
450 .. req::
451     :id: R-55802
452     :target: VNF
453     :keyword: MUST
454
455     The VNF Package **MUST** include VM requirements via a Heat
456     template that provides the necessary data for scaling/growth VM
457     specifications.
458
459     Note: Must comply with the *Heat requirements in 5.b*.
460
461 .. req::
462     :id: R-26881
463     :target: XNF
464     :keyword: MUST
465
466     The xNF provider **MUST** provide the binaries and images
467     needed to instantiate the xNF (xNF and VNFC images).
468
469 .. req::
470     :id: R-96634
471     :target: XNF
472     :keyword: MUST
473
474     The xNF provider **MUST** describe scaling capabilities
475     to manage scaling characteristics of the xNF.
476
477 Testing
478 ^^^^^^^^^^
479
480
481 .. req::
482     :id: R-43958
483     :target: XNF
484     :keyword: MUST
485     :updated: casablanca
486
487     The xNF Package **MUST** include documentation describing
488     the tests that were conducted by the xNF provider and the test results.
489
490 .. req::
491     :id: R-04298
492     :target: XNF
493     :keyword: MUST
494
495     The xNF provider **MUST** provide their testing scripts to
496     support testing.
497
498 .. req::
499     :id: R-58775
500     :target: XNF
501     :keyword: MUST
502
503     The xNF provider **MUST** provide software components that
504     can be packaged with/near the xNF, if needed, to simulate any functions
505     or systems that connect to the xNF system under test. This component is
506     necessary only if the existing testing environment does not have the
507     necessary simulators.
508
509 Licensing Requirements
510 ^^^^^^^^^^^^^^^^^^^^^^^
511
512
513 .. req::
514     :id: R-85653
515     :target: XNF
516     :keyword: MUST
517
518     The xNF **MUST** provide metrics (e.g., number of sessions,
519     number of subscribers, number of seats, etc.) to ONAP for tracking
520     every license.
521
522 .. req::
523     :id: R-44125
524     :target: XNF
525     :keyword: MUST
526
527     The xNF provider **MUST** agree to the process that can
528     be met by Service Provider reporting infrastructure. The Contract
529     shall define the reporting process and the available reporting tools.
530
531 .. req::
532     :id: R-40827
533     :target: XNF
534     :keyword: MUST
535
536     The xNF provider **MUST** enumerate all of the open
537     source licenses their xNF(s) incorporate.
538
539 .. req::
540     :id: R-97293
541     :target: XNF
542     :keyword: MUST NOT
543
544     The xNF provider **MUST NOT** require audits
545     of Service Provider's business.
546
547 .. req::
548     :id: R-44569
549     :target: XNF
550     :keyword: MUST NOT
551
552     The xNF provider **MUST NOT** require additional
553     infrastructure such as a xNF provider license server for xNF provider
554     functions and metrics.
555
556 .. req::
557     :id: R-13613
558     :target: VNF
559     :keyword: MUST
560
561     The VNF **MUST** provide clear measurements for licensing
562     purposes to allow automated scale up/down by the management system.
563
564 .. req::
565     :id: R-27511
566     :target: VNF
567     :keyword: MUST
568
569     The VNF provider **MUST** provide the ability to scale
570     up a VNF provider supplied product during growth and scale down a
571     VNF provider supplied product during decline without "real-time"
572     restrictions based upon VNF provider permissions.
573
574 .. req::
575     :id: R-85991
576     :target: XNF
577     :keyword: MUST
578
579     The xNF provider **MUST** provide a universal license key
580     per xNF to be used as needed by services (i.e., not tied to a VM
581     instance) as the recommended solution. The xNF provider may provide
582     pools of Unique xNF License Keys, where there is a unique key for
583     each xNF instance as an alternate solution. Licensing issues should
584     be resolved without interrupting in-service xNFs.
585
586 .. req::
587     :id: R-47849
588     :target: XNF
589     :keyword: MUST
590
591     The xNF provider **MUST** support the metadata about
592     licenses (and their applicable entitlements) as defined in this
593     document for xNF software, and any license keys required to authorize
594     use of the xNF software.  This metadata will be used to facilitate
595     onboarding the xNF into the ONAP environment and automating processes
596     for putting the licenses into use and managing the full lifecycle of
597     the licenses. The details of this license model are described in
598     Tables C1 to C8 in the Appendix.
599
600     Note: License metadata support in ONAP is not currently available
601     and planned for 1Q 2018.
602