VNFRQTS - FM Meta data
[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: XNF
54     :keyword: MUST
55
56     The xNF Package **MUST** include documentation describing xNF
57     Management APIs, which must include information and tools for ONAP to
58     deploy and configure (initially and ongoing) the xNF application(s)
59     (e.g., NETCONF APIs) which includes a description of configurable
60     parameters for the xNF and whether the parameters can be configured
61     after xNF instantiation.
62
63 .. req::
64     :id: R-00156
65     :target: XNF
66     :keyword: MUST
67
68     The xNF Package **MUST** include documentation describing xNF
69     Management APIs, which must include information and tools for
70     ONAP to monitor the health of the xNF (conditions that require
71     healing and/or scaling responses).
72
73 .. req::
74     :id: R-00068
75     :target: XNF
76     :keyword: MUST
77
78     The xNF Package **MUST** include documentation which includes
79     a description of parameters that can be monitored for the xNF
80     and event records (status, fault, flow, session, call, control
81     plane, etc.) generated by the xNF after instantiation.
82
83 .. req::
84     :id: R-12678
85     :target: XNF
86     :keyword: MUST
87
88     The xNF Package **MUST** include documentation which includes a
89     description of runtime lifecycle events and related actions (e.g.,
90     control responses, tests) which can be performed for the xNF.
91
92 .. req::
93     :id: R-84366
94     :target: XNF
95     :keyword: MUST
96
97     The xNF Package **MUST** include documentation describing
98     xNF Functional APIs that are utilized to build network and
99     application services. This document describes the externally exposed
100     functional inputs and outputs for the xNF, including interface
101     format and protocols supported.
102
103 .. req::
104     :id: R-36280
105     :target: XNF
106     :keyword: MUST
107
108     The xNF provider **MUST** provide documentation describing
109     xNF Functional Capabilities that are utilized to operationalize the
110     xNF and compose complex services.
111
112 .. req::
113     :id: R-98617
114     :target: VNF PROVIDER
115     :keyword: MUST
116
117     The VNF Provider **MUST** provide documentation regarding any dependency
118     (e.g. affinity, anti-affinity) the VNF has on other VNFs and resources.
119
120 .. req::
121     :id: R-22346
122     :target: XNF PACKAGE
123     :keyword: MUST
124     :introduced: casablanca
125     :validation_mode: static
126
127     The xNF package MUST provide :doc:`VES Event Registration <../../../../vnfsdk/model.git/docs/files/VESEventRegistration_3_0>`
128     for all VES events provided by that xNF.
129
130 .. req::
131    :id: R-384337
132    :target: VNF
133    :keyword: MUST
134    :introduced: casablanca
135
136    The VNF documentation **MUST** contain a list of the files within the VNF
137    package that are static during the VNF's runtime.
138
139 .. req::
140    :id: R-025941
141    :target: VNF PROVIDER
142    :keyword: MUST
143    :introduced: dublin
144    :impacts: DCAE,Documentation,Integration,SDC
145    :validation_mode: static
146
147    The VNF or PNF PROVIDER **MUST** provide FM Meta Data to support the
148    analysis of fault events delivered to DCAE. The Meta Data must be
149    included in the VES Registration YAML file with each fault event
150    supported by that NF at onboarding time and the Meta Data must follow
151    the VES Event Listener and VES Event Registration Specifications.
152
153
154 Resource Configuration
155 ^^^^^^^^^^^^^^^^^^^^^^^
156
157
158 .. req::
159     :id: R-89571
160     :target: XNF
161     :keyword: MUST
162
163     The xNF **MUST** support and provide artifacts for configuration
164     management using at least one of the following technologies;
165     a) Netconf/YANG, b) Chef, or c) Ansible.
166
167     Note: The requirements for Netconf/YANG, Chef, and Ansible protocols
168     are provided separately and must be supported only if the corresponding
169     protocol option is provided by the xNF providor.
170
171
172 Configuration Management via NETCONF/YANG
173 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
174
175 .. req::
176     :id: R-30278
177     :target: VNF or PNF
178     :keyword: MUST
179     :updated: dublin
180
181     The VNF or PNF provider **MUST** provide a Resource/Device YANG model
182     as a foundation for creating the YANG model for configuration.
183
184 Configuration Management via Chef
185 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186
187
188 .. req::
189     :id: R-13390
190     :target: XNF
191     :keyword: MUST
192
193     The xNF provider **MUST** provide cookbooks to be loaded
194     on the appropriate Chef Server.
195
196 .. req::
197     :id: R-18525
198     :target: XNF
199     :keyword: MUST
200
201     The xNF provider **MUST** provide a JSON file for each
202     supported action for the xNF. The JSON file must contain key value
203     pairs with all relevant values populated with sample data that illustrates
204     its usage. The fields and their description are defined in Tables A1
205     and A2 in the Appendix.
206
207     Note: Chef support in ONAP is not currently available and planned for 4Q 2017.
208
209
210 Configuration Management via Ansible
211 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
212
213
214 .. req::
215     :id: R-75608
216     :target: XNF
217     :keyword: MUST
218
219     The xNF provider **MUST** provide playbooks to be loaded
220     on the appropriate Ansible Server.
221
222 .. req::
223     :id: R-16777
224     :target: XNF
225     :keyword: MUST
226
227     The xNF provider **MUST** provide a JSON file for each
228     supported action for the xNF. 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 Table B1
231     in the Appendix.
232
233 .. req::
234     :id: R-46567
235     :target: XNF
236     :keyword: MUST
237
238     The xNF Package **MUST** include configuration scripts
239     for boot sequence and configuration.
240
241 .. req::
242     :id: R-16065
243     :target: XNF
244     :keyword: MUST
245
246     The xNF provider **MUST** provide configurable parameters
247     (if unable to conform to YANG model) including xNF attributes/parameters
248     and valid values, dynamic attributes and cross parameter dependencies
249     (e.g., customer provisioning data).
250
251 Resource Control Loop
252 ^^^^^^^^^^^^^^^^^^^^^^^
253
254
255 .. req::
256     :id: R-22888
257     :target: XNF
258     :keyword: MUST
259
260     The xNF provider **MUST** provide documentation for the xNF
261     Policy Description to manage the xNF runtime lifecycle. The document
262     must include a description of how the policies (conditions and actions)
263     are implemented in the xNF.
264
265 .. req::
266     :id: R-01556
267     :target: XNF
268     :keyword: MUST
269
270     The xNF Package **MUST** include documentation describing the
271     fault, performance, capacity events/alarms and other event records
272     that are made available by the xNF.
273
274 .. req::
275     :id: R-16875
276     :target: XNF
277     :keyword: MUST
278
279     The xNF Package **MUST** include documentation which must include
280     a unique identification string for the specific xNF, a description of
281     the problem that caused the error, and steps or procedures to perform
282     Root Cause Analysis and resolve the issue.
283
284 .. req::
285     :id: R-35960
286     :target: XNF
287     :keyword: MUST
288
289     The xNF Package **MUST** include documentation which must include
290     all events, severity level (e.g., informational, warning, error) and
291     descriptions including causes/fixes if applicable for the event.
292
293 .. req::
294     :id: R-42018
295     :target: XNF
296     :keyword: MUST
297
298     The xNF Package **MUST** include documentation which must include
299     all events (fault, measurement for xNF Scaling, Syslogs, State Change
300     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.
301
302
303 .. req::
304     :id: R-01478
305     :target: XNF
306     :keyword: MUST
307
308     The xNF Package **MUST** include documentation describing all
309     parameters that are available to monitor the xNF after instantiation
310     (includes all counters, OIDs, PM data, KPIs, etc.) that must be
311     collected for reporting purposes.
312
313 .. req::
314     :id: R-73560
315     :target: XNF
316     :keyword: MUST
317
318     The xNF Package **MUST** include documentation about monitoring
319     parameters/counters exposed for virtual resource management and xNF
320     application management.
321
322 .. req::
323     :id: R-90632
324     :target: XNF
325     :keyword: MUST
326
327     The xNF Package **MUST** include documentation about KPIs and
328     metrics that need to be collected at each VM for capacity planning
329     and performance management purposes.
330
331 .. req::
332     :id: R-86235
333     :target: XNF
334     :keyword: MUST
335
336     The xNF Package **MUST** include documentation about the monitoring
337     parameters that must include latencies, success rates, retry rates, load
338     and quality (e.g., DPM) for the key transactions/functions supported by
339     the xNF and those that must be exercised by the xNF in order to perform
340     its function.
341
342 .. req::
343     :id: R-33904
344     :target: XNF
345     :keyword: MUST
346
347     The xNF Package **MUST** include documentation for each KPI, provide
348     lower and upper limits.
349
350 .. req::
351     :id: R-53598
352     :target: XNF
353     :keyword: MUST
354
355     The xNF Package **MUST** include documentation to, when relevant,
356     provide a threshold crossing alert point for each KPI and describe the
357     significance of the threshold crossing.
358
359 .. req::
360     :id: R-69877
361     :target: XNF
362     :keyword: MUST
363
364     The xNF Package **MUST** include documentation for each KPI,
365     identify the suggested actions that need to be performed when a
366     threshold crossing alert event is recorded.
367
368 .. req::
369     :id: R-22680
370     :target: XNF
371     :keyword: MUST
372
373     The xNF Package **MUST** include documentation that describes
374     any requirements for the monitoring component of tools for Network
375     Cloud automation and management to provide these records to components
376     of the xNF.
377
378 .. req::
379     :id: R-33694
380     :target: XNF
381     :keyword: MUST
382
383     The xNF Package **MUST** include documentation to when applicable,
384     provide calculators needed to convert raw data into appropriate reporting
385     artifacts.
386
387 .. req::
388     :id: R-56815
389     :target: XNF
390     :keyword: MUST
391
392     The xNF Package **MUST** include documentation describing
393     supported xNF scaling capabilities and capacity limits (e.g., number
394     of users, bandwidth, throughput, concurrent calls).
395
396 .. req::
397     :id: R-48596
398     :target: XNF
399     :keyword: MUST
400
401     The xNF Package **MUST** include documentation describing
402     the characteristics for the xNF reliability and high availability.
403
404
405
406 Compute, Network, and Storage Requirements
407 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
408
409
410 .. req::
411     :id: R-35851
412     :target: VNF HEAT PACKAGE
413     :keyword: MUST
414     :updated: dublin
415
416     The VNF HEAT Package **MUST** include VNF topology that describes basic
417     network and application connectivity internal and external to the VNF
418     including Link type, KPIs, Bandwidth, latency, jitter, QoS (if applicable)
419     for each interface.
420
421 .. req::
422     :id: R-97102
423     :target: VNF
424     :keyword: MUST
425
426     The VNF Package **MUST** include VM requirements via a Heat
427     template that provides the necessary data for VM specifications
428     for all VNF components - for hypervisor, CPU, memory, storage.
429
430 .. req::
431     :id: R-20204
432     :target: VNF
433     :keyword: MUST
434
435     The VNF Package **MUST** include VM requirements via a Heat
436     template that provides the necessary data for network connections,
437     interface connections, internal and external to VNF.
438
439 .. req::
440     :id: R-44896
441     :target: VNF
442     :keyword: MUST
443
444     The VNF Package **MUST** include VM requirements via a Heat
445     template that provides the necessary data for high availability
446     redundancy model.
447
448 .. req::
449     :id: R-55802
450     :target: VNF
451     :keyword: MUST
452
453     The VNF Package **MUST** include VM requirements via a Heat
454     template that provides the necessary data for scaling/growth VM
455     specifications.
456
457     Note: Must comply with the *Heat requirements in 5.b*.
458
459 .. req::
460     :id: R-26881
461     :target: VNF
462     :keyword: MUST
463
464     The VNF provider **MUST** provide the binaries and images
465     needed to instantiate the VNF (VNF and VNFC images).
466
467 .. req::
468     :id: R-96634
469     :target: VNF or PNF PROVIDER
470     :keyword: MUST
471     :updated: dublin
472
473     The VNF or PNF Provider **MUST** provide human readable documentation
474     (not in the on-boarding package) to describe scaling capabilities to manage
475     scaling characteristics of the VNF or PNF.
476
477
478 Testing
479 ^^^^^^^^^^
480
481 .. req::
482     :id: R-43958
483     :target: VNF
484     :keyword: MUST
485     :updated: casablanca
486
487     The VNF Package **MUST** include documentation describing
488     the tests that were conducted by the VNF provider and the test results.
489
490 .. req::
491     :id: R-04298
492     :target: VNF
493     :keyword: MUST
494
495     The VNF provider **MUST** provide their testing scripts to
496     support testing.
497
498 .. req::
499     :id: R-58775
500     :target: VNF
501     :keyword: MUST
502
503     The VNF provider **MUST** provide software components that
504     can be packaged with/near the VNF, if needed, to simulate any functions
505     or systems that connect to the VNF 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