summaryrefslogtreecommitdiffstats
path: root/docs/Chapter7/Monitoring-And-Management.rst
blob: 2e0fe43718a42aa6131759c1767548d3f3063ef4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
.. Modifications Copyright © 2017-2018 AT&T Intellectual Property
   Modifications Copyright © 2020 Nokia Solutions and Networks

.. Licensed under the Creative Commons License, Attribution 4.0 Intl.
   (the "License"); you may not use this documentation except in compliance
   with the License. You may obtain a copy of the License at

.. https://creativecommons.org/licenses/by/4.0/

.. Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Monitoring & Management
-----------------------

In ONAP, DCAE is responsible of collecting, receiving, and analyzing
NF monitoring data. This data serves the basis for tracking the health,
performance, and operational status of the NF. DCAE provides a
number of predefined interfaces based upon accepted, open standards to support
monitoring data ingestion. Some of these interfaces collect data by polling or
pulling data from the NF using standard protocols. Other DCAE interfaces receive
monitoring data (such as VES events) that are pushed from the NFs.

A NF that produces monitoring data and uses protocols that are compatible with
ONAP's predefined monitoring ingestion capabilities can easily be integrated
with ONAP through simple configuration rather than custom development.

This chapter will define the expected requirements for a NF to easily integrate
with an instance of ONAP.

Monitoring and Fault Protocol Selection
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This section provides the proper guidance on how a NF should determine the
protocol and data format for providing a specific types of telemetry data to
ONAP.

.. req::
   :id: R-82909
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF **MUST** report faults and alarms using either
   :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
   or :ref:`SNMP <snmp_monitoring_requirements>`. (NOTE: See relevant sections
   for more detailed requirements)

.. req::
   :id: R-554966
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF **MUST** report performance metrics using
   :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
   or :ref:`bulk_performance_measurement`.

.. req::
   :id: R-69111
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF **MUST** report application logs using either
   :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
   or Syslog in compliance with
   `RFC 5424 <https://tools.ietf.org/html/rfc5424>`__ .


.. req::
   :id: R-209104
   :target: VNF or PNF
   :keyword: SHOULD
   :introduced: guilin

   The VNF or PNF producing VES syslog events **SHOULD** restrict these
   events to those that convey significant errors or warnings needed to support
   the operation or troubleshooting of the VNF or PNF. It is expected the
   volume of such events would be lower (e.g. less than 2000 per day) than
   more detailed events produced in the course of normal operations.

.. req::
   :id: R-332680
   :target: VNF or PNF
   :keyword: SHOULD
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: dcae

   The VNF or PNF producing VES events **SHOULD** deliver syslog messages
   that meet the criteria in R-209104 to the VES Event Listener using the
   ``syslog`` VES domain.

.. req::
   :id: R-935717
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF **MUST** report heartbeats using
   :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`.

.. req::
   :id: R-697654
   :target: VNF or PNF
   :keyword: MAY
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: DCAE

   The VNF or PNF **MAY** leverage ONAP's High Volume VNF Event Streaming
   (HV-VES) when there is a need to deliver large volumes of real-time
   performance management metrics. See
   :doc:`HV-VES collector <dcae:sections/services/ves-hv/index>`
   service details for more information.

.. req::
   :id: R-857511
   :target: VNF or PNF PROVIDER
   :keyword: MUST
   :introduced: guilin
   :validation_mode: none
   :impacts: DCAE

   VNF or PNF Provider **MUST** have agreement with the Service Provider before
   utilizing the :doc:`HV-VES option <dcae:sections/services/ves-hv/index>`
   for monitoring as this option does not fully integrate with the ONAP's DCAE
   event processing capabilities.

.. req::
   :id: R-908291
   :target: VNF or PNF
   :keyword: MAY
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: dcae, dmaap

   The VNF or PNF **MAY** leverage a bulk VNF or PNF telemetry transmission
   mechanism in instances where other transmission
   methods are not practical or advisable.

   NOTE: For additional information and use cases for the Bulk Telemetry
   Transmission Mechanism, please refer to
   the :ref:`bulk_performance_measurement` requirements and the
   `5G - Bulk PM ONAP Development <https://wiki.onap.org/display/DW/5G+-+Bulk+PM>`__
   Wiki page.

.. req::
   :id: R-63105
   :target: VNF or PNF
   :keyword: MAY
   :introduced: guilin
   :impacts: dcae

   The VNF or PNF **MAY** produce telemetry data using the
   :doc:`RESTConf Collector <dcae:sections/services/restconf/index>`, but this
   requires additional coordination with the operator to appropriately
   map the data internally to a VES-like structure used within ONAP. If this
   option is needed, then the VNF or PNF Provider must coordinate with with the
   Operator for the data to be successfully collected and processed by DCAE.

.. _snmp_monitoring_requirements:

SNMP Monitoring Requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. req::
   :id: R-261501
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   If the VNF or PNF is using SNMP, then the VNF or PNF Provider **MUST**
   provide a Management Information Base (MIB) file that uniquely identifies
   and describes all SNMP events exposed by the network function.

.. req::
   :id: R-233922
   :target: VNF or PNF
   :keyword: SHOULD
   :introduced: guilin

   If the VNF or PNF is using SNMP, then the VNF or PNF Provider **SHOULD**
   provide examples of all SNMP alarms.

.. _ves_monitoring_requirements:

Virtual Function Event Streaming (VES) Client Requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The VES protocol enables NFs to transmit telemetry data in a non-proprietary,
extensible format to ONAP using the HTTP protocol. This chapter will define
the requirements for a NF to deliver events to ONAP's VES event listeners in
a manner that conforms with the appropriate VES Event Listener specifications,
and ensures the NF can be configured to maximize the reliability of telemetry
data delivery.


Event Definition and Registration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. req::
   :id: R-520802
   :target: VNF or PNF PROVIDER
   :keyword: MUST
   :introduced: casablanca
   :updated: guilin
   :validation_mode: static
   :impacts: dcae

   If the VNF or PNF is using VES, then the VNF or PNF Provider **MUST** provide
   a YAML file formatted in adherence with the
   :ref:`VES Event Registration specification <ves_event_registration_3_2>`
   that defines the following information for each event produced by the VNF:

   * ``eventName``
   * Required fields
   * Optional fields
   * Any special handling to be performed for that event

.. req::
   :id: R-120182
   :target: VNF or PNF PROVIDER
   :keyword: MUST
   :introduced: casablanca
   :updated: guilin
   :validation_mode: static
   :impacts: dcae

   A VNF or PNF Provider utilizing VES **MUST** indicate specific conditions
   that may arise, and recommend actions that may be taken at specific
   thresholds, or if specific conditions repeat within a specified time
   interval, using the semantics and syntax described by the
   :ref:`VES Event Registration specification <ves_event_registration_3_2>`.

   **NOTE:** The Service Provider may override VNF or PNF provider Event
   Registrations using the ONAP SDC Design Studio to finalizes Service
   Provider engineering rules for the processing of the VNF or PNF events.
   These changes may modify any of the following:

   * Threshold levels
   * Specified actions related to conditions

.. req::
   :id: R-123044
   :target: VNF or PNF PROVIDER
   :keyword: MAY
   :introduced: casablanca
   :updated: dublin
   :validation_mode: in_service
   :impacts: dcae

   The VNF or PNF Provider **MAY** require that specific events, identified by
   their ``eventName``, require that certain fields, which are optional in the
   common event format, must be present when they are published.

Event Formatting and Usage
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. req::
   :id: R-570134
   :target: VNF or PNF
   :keyword: MUST
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: dcae

   The VES events produced by the VNF or PNF **MUST** be compliant with the
   common event formats defined in one of the following specifications:

   * :ref:`VES Event Listener 5.4.1<ves_event_listener_5_4_1>`
   * :ref:`VES Event Listener 7.1.1<ves_event_listener_7_1>`
   * :ref:`VES Event Listener 7.2<ves_event_listener_7_2>`

   The latest version (7.2) should be preferred. Earlier versions are
   provided for backwards compatibility.

.. req::
   :id: R-528866
   :target: VNF or PNF
   :keyword: MUST
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: dcae

   The VES events produced by the VNF or PNF **MUST** conform to the schema and
   other formatting requirements specified in the relevant VES Event Listener
   specification.

.. req::
   :id: R-283988
   :target: VNF or PNF
   :keyword: MUST NOT
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: dcae

   A VNF or PNF producing VES events **MUST NOT** send information through
   extensible structures if the event specification has explicitly defined
   fields for that information.

.. req::
   :id: R-470963
   :target: VNF or PNF
   :keyword: SHOULD
   :introduced: casablanca
   :updated: guilin
   :validation_mode: in_service
   :impacts: dcae

   A VNF or PNF producing VES events **SHOULD** leverage camel case to
   separate words and acronyms used as keys that will be sent through extensible
   fields. When an acronym is used as the key, then only the first letter shall
   be capitalized.

.. req::
   :id: R-408813
   :target: VNF or PNF
   :keyword: MUST
   :introduced: casablanca
   :updated: guilin
   :validation_mode: none
   :impacts: dcae

   A VNF or PNF producing VES events **MUST** pass all information it is
   able to collect even if the information field is identified as optional.
   However, if the data cannot be collected, then optional fields can be
   omitted.
 
.. req::
   :id: R-408814
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin
   :validation_mode: none
   :impacts: dcae

   The VNF or a PNF producing VES stndDefined domain events to report
   standards-organization defined events to ONAP, **MUST** set the
   event.stndDefinedNamespace property. By default, ONAP ships with support
   for the following:

   * 3GPP-Provisioning
   * 3GPP-Heartbeat
   * 3GPP-FaultSupervision
   * 3GPP-PerformanceAssurance

   Another namespace, outside of the list provided, needs to registered in ONAP in coordination
   with the operator before it can be used.

.. req::
   :id: R-408815
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin
   :validation_mode: none
   :impacts: dcae
   
   If the VNF or PNF producing VES stndDefined domain events provides
   the event.stndDefinedFields.schemaReference then it **MUST** set its value
   to the publicUrl value in DCAE's VES Collector `etc/externalRepo/schema-map.json <https://github.com/onap/dcaegen2-collectors-ves/blob/guilin/etc/externalRepo/schema-map.json/>`_ 
   that describes the data being sent in event.stndDefinedFields.data.

.. req::
   :id: R-408816
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin
   :validation_mode: none
   :impacts: dcae
   
   If the VNF or PNF producing VES stndDefined domain events provides
   the event.stndDefinedFields.schemaReference then it **MUST** only pass events
   that conform to schema references previously registered with DCAE otherwise
   the event will be rejected. By default, ONAP ships with support for schemas 
   found in DCAE's VES Collector `etc/externalRepo/schema-map.json <https://github.com/onap/dcaegen2-collectors-ves/blob/guilin/etc/externalRepo/schema-map.json/>`_.

.. req::
   :id: R-408817
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin
   :validation_mode: none
   :impacts: dcae
   
   The VNF or PNF Provider producing stndDefined events **MUST** coordinate with
   the operator, willing to validate stndDefined events, to configure DCAE to 
   accept any new event schema prior to sending those events or the events 
   will be rejected.

.. req::
   :id: R-408818
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin
   :validation_mode: none
   :impacts: dcae
      
   If the VNF or PNF producing VES stndDefined domain events provides 
   the event.stndDefinedFields.schemaReference then it **MUST** set the 
   event.stndDefined.schemaReference property to an exact structure, 
   from supported schemaReference, describing the notification within 
   an openAPI specification, using JSON Pointer as URI fragment  e.g.
   “https://forge.3gpp.org/.../faultMnS.yaml#/components/schemas/notifyNewAlarm"

Configuration Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~

This section defines the types the configuration options and defaults a NF
producing VES events should provide to ensure the NF can be configured properly
for the Service Provider's ONAP environment and ensure reliable delivery of
VES events.

There are several methods available to provide configuration settings to a
network function. This document does not specify the exact manner in which
the configuration elements described below must be required. The
configuration can be provided during instantiation (e.g. preload), provided by
an ONAP controller action, or provided manually.

.. req::
   :id: R-460012
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF producing VES events **MUST** allow the configuration of
   the attributes defined in Table 1 and utilize the provided default value
   (where applicable) when the configuration value is not provided by the
   Service Provider.

.. req::
   :id: R-940591
   :target: VNF or PNF
   :keyword: SHOULD
   :introduced: guilin

   A VNF or PNF producing VES events **SHOULD** use the recommended parameter
   name for the configurable value from Table 1.

.. table:: **Table 1**: VES Configurable Values

   +----------------------+-----------------------------------+----------------+-------------------------------------+
   |Parameter             | Description                       |  Default       | Parameter Name (VES 7.2+)           |
   +======================+===================================+================+=====================================+
   |VES Listener Endpoint | FQDN or IP of the Event Listener  |       n/a      | ves_listener_endpoint               |
   +----------------------+-----------------------------------+----------------+-------------------------------------+
   |Heartbeat Interval    | Frequency in seconds the NF must  |        60      | ves_heartbeat_interval_seconds      |
   |                      | send a heartbeat to the event     |                |                                     |
   |                      | listener                          |                |                                     |
   +----------------------+-----------------------------------+----------------+-------------------------------------+
   |Timeout Value         | Duration in seconds the NF should |         5      | ves_timeout_seconds                 |
   |                      | wait for ACK from the event       |                |                                     |
   |                      | listener before timeout           |                |                                     |
   +----------------------+-----------------------------------+----------------+-------------------------------------+
   |Measurement Interval  | Window size in seconds to use for |        300     | ves_measurement_interval_seconds    |
   |                      | aggregated measurements           |                |                                     |
   +----------------------+-----------------------------------+----------------+-------------------------------------+
   |HTTP Username         | Required if NF supports HTTP      |        n/a     | ves_http_username                   |
   |                      | Basic Authentication with the     |                |                                     |
   |                      | VES Event Listener                |                |                                     |
   +----------------------+-----------------------------------+----------------+-------------------------------------+
   |HTTP Password         | Required if NF supports HTTP      |        n/a     | ves_http_password                   |
   |                      | Basic Authentication with the     |                |                                     |
   |                      | VES Event Listener                |                |                                     |
   +----------------------+-----------------------------------+----------------+-------------------------------------+


VES Listener Endpoint and DNS Resolution
++++++++++++++++++++++++++++++++++++++++

In a high availability deployment of a VES Event Listener, a round-robin DNS or
dynamic DNS may be used to either load balance or provide fault tolerance of
the Event Listener.  Adherence to the following requirements ensure the VNF or
PNF interacts properly with this deployment configuration.

.. req::
   :id: R-70492
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF **MUST** support DNS resolution of the VES Listener Endpoint
   if a Fully Qualified Domain Name (FQDN) is provided.

.. req::
   :id: R-130645
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF **MUST** respect the Time To Live provided by the DNS for
   the VES Event Listener FQDN.

Event Delivery Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. req::
   :id: R-06924
   :target: VNF or PNF
   :keyword: MUST
   :updated: guilin

   The VNF or PNF producing VES events **MUST** deliver VES events as it
   becomes available or according to the configured measurement interval.

.. req::
    :id: R-655209
    :target: VNF or PNF
    :keyword: MUST
    :introduced: guilin

    The VNF or PNF producing VES events **MUST** respect the configured
    VES Timeout Value when delivering VES events, and abort any call where
    the VES Event Listener does not successfully acknowledge the delivery of
    event(s) within the Timeout Value. These failed transactions should be
    buffered and retried in accordance with the
    :ref:`ves_buffering_requirements` Requirements.

.. req::
   :id: R-176945
   :target: VNF or PNF
   :keyword: SHOULD NOT
   :introduced: guilin

   The VNF or PNF producing VES events **SHOULD NOT** send syslog events to the
   VES Event Listener during debug mode, but rather store syslog events locally
   for access or possible file transfer.

.. _ves_buffering_requirements:

Buffering and Redelivery
~~~~~~~~~~~~~~~~~~~~~~~~

To maximize the reliable delivery of VES events when the VES Listener becomes
unavailable or unhealthy, the NF must adhere to these requirements.

.. req::
   :id: R-658596
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   A VNF or PNF producing VES events **MUST** buffer events that meet the
   following criteria if the VES Event Listener is unreachable or the request
   encounters a timeout.

   * Faults with eventSeverity of ``MINOR``, ``MAJOR``, ``NORMAL``, or
     ``CRITICAL``
   * Syslog with syslogSev of ``Emergency``, ``Alert``, ``Critical``,
     ``Error``, or ``Warning``
   * All measurement events

.. req::
   :id: R-636251
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   A VNF or PNF producing VES events **MUST** size the event buffer
   referenced in R-658596 such that it can buffer a minimum of 1 hours of
   events under nominal load.

.. req::
   :id: R-498679
   :target: VNF or PNF
   :keyword: MAY
   :introduced: guilin

   A VNF or PNF producing VES events **MAY** discard buffered events older
   than a maximum retention period, not less than 1 hour, even if the event
   was never successfully delivered to the event listener. While discarding
   based on this retention period is supported for backwards compatibility, it
   is recommended to retain events until the maximum buffer size is reached per
   R-346137 as that will maximize the number of events delivered.

.. req::
   :id: R-346137
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   A VNF or PNF producing VES events that is buffering events per R-658596
   **MUST** store in-scope events even when the maximum capacity of the
   buffer (defined in R-636251) has been reached. To make room for new events
   in this situation, hte oldest event in the buffer shall be removed
   as necessary. (i.e. First In First Out)

.. req::
   :id: R-379523
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   A VNF or PNF producing VES events that is buffering events due to an
   unavailable VES Event Listener **MUST** redeliver all buffered events
   according to the following rules when the VNF or PNF detects the VES Event
   Listener has become available:

   * Deliver all previously buffered events before sending new events
   * Deliver buffered events in the order they were received

.. req::
   :id: R-818859
   :target: VNF or PNF
   :keyword: MUST
   :introduced: guilin

   The VNF or PNF producing VES events **MUST** not allow an unavailable or
   timing out VES Event Listener to impact the performance, stability, or
   correct execution of network function.

.. req::
   :id: R-103464
   :target: VNF or PNF
   :keyword: MAY
   :introduced: guilin

   A VNF or PNF producing VES events that is buffering events due to an
   unavailable VES Event Listener **MAY** leverage to ``publishEventBatch``
   operation to redeliver buffered events. Please note this can only be
   used when all buffered events belong to the same domain due to the
   restrictions in place for the operation.

Security
~~~~~~~~

.. req::
    :id: R-68165
    :target: VNF or PNF
    :keyword: MUST
    :updated: dublin

    The VNF or PNF **MUST** encrypt any content containing Sensitive Personal
    Information (SPI) or certain proprietary data, in addition to applying the
    regular procedures for securing access and delivery.


.. req::
   :id: R-33878
   :target: VNF or PNF
   :keyword: MUST
   :introduced: el alto
   :updated: guilin

   The VNF or PNF **MUST** utilize one of the authentication methods
   prescribed by the relevant VES Event Listener specification.

.. _bulk_performance_measurement:

Bulk Performance Measurement
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. req::
    :id: R-841740
    :target: VNF or PNF
    :keyword: SHOULD
    :introduced: casablanca
    :updated: dublin
    :impacts: dcae, dmaap

    The VNF or PNF **SHOULD** support FileReady VES event for event-driven bulk transfer
    of monitoring data.

.. req::
    :id: R-440220
    :target: VNF or PNF
    :keyword: SHOULD
    :introduced: casablanca
    :updated: dublin
    :impacts: dcae, dmaap

    The VNF or PNF **SHOULD** support File transferring protocol, such as FTPES or SFTP,
    when supporting the event-driven bulk transfer of monitoring data.

.. req::
    :id: R-75943
    :target: VNF or PNF
    :keyword: SHOULD
    :introduced: casablanca
    :updated: guilin
    :impacts: dcae, dmaap

    The VNF or PNF **SHOULD** support the data schema defined in 3GPP TS 32.435 or 3GPP TS 28.532, when
    supporting the event-driven bulk transfer of monitoring data.

.. req::
    :id: R-807129
    :target: VNF or PNF
    :keyword: SHOULD
    :introduced: dublin
    :impacts: dcae, dmaap

    The VNF or PNF **SHOULD** report the files in FileReady for as long as they are
    available at VNF or PNF.

    Note: Recommended period is at least 24 hours.


.. |image0| image:: ../Data_Model_For_Event_Records.png

.. |image1| image:: ../VES_JSON_Driven_Model.png
      :width: 5in
      :height: 3in

.. |image2| image:: ../Protocol_Buffers_Driven_Model.png
      :width: 4.74in
      :height: 3.3in

.. |image3| image:: ../Bulk_Data_Transfer_Mechv1.png
      :width: 4.74in
      :height: 3.3in