See the License for the specific language governing permissions and
limitations under the License.
-
Monitoring & Management
-----------------------
-This section addresses data collection and event processing functionality that
-is directly dependent on the interfaces provided by the VNFs' or PNFs' APIs.
-These can be in the form of asynchronous interfaces for event, fault
-notifications, and autonomous data streams. They can also be synchronous
-interfaces for on-demand requests to retrieve various performance, usage, and
-other event information. It should be understood that events are well
-structured packages of information, identified by an eventName, which are
-communicated to subscribers who are interested in the eventName. Events are
-simply a way of communicating well-structured packages of information to one
-or more instances of an Event Listener service.
-
-The target direction for these interfaces is to employ APIs that are
-implemented utilizing standardized messaging and modeling protocols over
-standardized transports. Standardized environments (physical, virtual) present
-a tremendous opportunity to eliminate the need for proprietary interfaces while
-removing the traditional boundaries between Network Management Systems and
-Element Management Systems. Additionally, virtualized NFs provide the ability
-to instrument networking applications by creating event records to test and
-monitor end-to-end data flow through the network, similar to what physical or
-virtual probes provide without the need to insert probes at various points in
-the network. Providers must be able to provide the aforementioned set of
-required data directly to the ONAP collection layer using standardized
-interfaces.
-
-
-Data Model for Event Records
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This section describes the data model for the collection of telemetry data from
-physical or virtual NFs by Service Providers (SPs) to manage NF health and
-run-time life cycle. This data model is referred to as the VES Data Model. The
-VES acronym originally stood for Virtual-function Event Streaming, but VES has
-been generalized to support network-function event streaming, whether
-virtualized or not.
-
-The VES Data Model describes a vendor-agnostic common vocabulary of event
-payloads. Vendor-specific, product-specific or service-specific data is
-supported by the inclusion of a flexible additional information field
-structure. The VES Data Models' common vocabulary is used to drive standard
-and automated data analytics (policy-driven analytics) within the ONAP
-DCAE Framework.
-
-While this document is focused on specifying some of the records from the
-ONAP perspective, there may be other external bodies using the same framework
-to specify additional records. For example, OPNFV has a VES project that is
-looking to specify records for OpenStack's internal telemetry to manage
-application (VNFs or PNFs), physical and virtual infrastructure (compute,
-storage, network devices, etc.) and virtual infrastructure managers (cloud
-controllers, SDN controllers). It uses ONAP's VES Agent to generate VES events
-from the NF and Intel's collectD agent to generate infrastructure VES events.
-Note that any configurable parameters for these data records (e.g., frequency,
-granularity, policy-based configuration) will be managed using the
-"Configuration" framework described in the prior sections of this document.
-The infrastructure metrics have been funneled via the ONAP Multi-VIM Project
-and are now included in current specifications.
-
-The Data Model consists of:
-
- - Common Header Record: This data structure precedes each of the
- Technology Independent and Technology Specific records sections of
- the data model.
-
- - Technology Independent Records: This version of the document specifies
- the model for fault, heartbeat, measurement, notification, perf3gpp,
- pnfRegistration, stateChange, syslog, and thresholdCrossingAlert (TCA)
- records. In the future, these may be extended to support other types of
- technology independent records. Each of these records allows additional
- fields (name/value pairs) for extensibility. The NF provider may use these
- NF provider-specific additional fields to provide additional information
- that may be relevant to the managing systems.
-
- - Technology Specific Records: This version of the document specifies the
- model for mobileFlow, sipSignaling and voiceQuality records. In the
- future, these may be extended to support other types of records (e.g.
- Network Fabric, Security records, etc.). Each of these records allows
- additional fields (name/value pairs) for extensibility. The NF provider can
- use these NF-specific additional fields to provide additional information
- that may be relevant to the managing systems. A placeholder for additional
- technology specific areas of interest to be defined in the future documents
- has been depicted.
-
-|image0|
-
-Figure 1. Data Model for Event Records
-
-Event Records - Data Structure Description
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The data structure for event records consists of:
-
-- a Common Event Header block; and
-
-- zero (heartbeat) or more technology independent domain blocks; or
-
- - e.g. fault, measurement, notification, perf3gpp, pnfRegistration,
- stateChange, syslog, TCA, otherFields etc.
-
-- technology specific domain blocks.
-
- - e.g. mobileFlow, sipSignaling, voiceQuality, etc.
-
-Common Event Header
-~~~~~~~~~~~~~~~~~~~~~
-
-The common header that precedes any of the domain-specific records contains
-information identifying the type of record to follow, information about the
-sender and other identifying characteristics related to the domain and event.
-(e.g., name, priority, sequence number, source, timestamp, type, etc.).
+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-528866
- :target: VNF
- :introduced: casablanca
- :validation_mode: in_service
- :impacts: dcae
+ :id: R-82909
+ :target: VNF or PNF
:keyword: MUST
- :updated: dublin
+ :introduced: guilin
- The VNF **MUST** produce VES events that include the following mandatory
- fields in the common event header.
-
- * ``domain`` - the event domain enumeration
- * ``eventId`` - the event key unique to the event source
- * ``eventName`` - the unique event name
- * ``lastEpochMicrosec`` - the latest unix time (aka epoch time) associated
- with the event
- * ``priority`` - the processing priority enumeration
- * ``reportingEntityName`` - name of the entity reporting the event or
- detecting a problem in another VNF or PNF
- * ``sequence`` - the ordering of events communicated by an event source
- * ``sourceName`` - name of the entity experiencing the event issue, which
- may be detected and reported by a separate reporting entity
- * ``startEpochMicrosec`` - the earliest unix time (aka epoch time)
- associated with the event
- * ``version`` - the version of the event header
- * ``vesEventListenerVersion`` - Version of the VES event listener API spec
- that this event is compliant with
-
-Technology Independent Records
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The current version of the data model supports the following technology
-independent event records:
-
- * ``fault`` - the fault record, describing a condition in the fault domain,
- contains information about device failures. The fault event provides data
- such as the entity experiencing a fault, the severity, resulting status,
- etc.
-
- * ``heartbeat`` - the heartbeat record provides an optional structure for
- communicating information about device health. Heartbeat records would
- only have the Common Event Header block. An optional heartbeat domain is
- available to specify information such as heartbeat interval and
- recommended action upon missing heartbeat interval. Heartbeat avoids the
- need to ping a device. A communication failure can be determined via
- missing heartbeat events being delivered to DCAE and appropriate action
- (e.g. restart VM, rebuild VNF or create ticket) can be taken by DCAE
- CLAMP.
-
- * ``Measurements`` - the Measurements Record contains information about
- PNF or VNF and PNF or VNF resource structure and its condition to help
- in the management of the resources for purposes of capacity planning,
- elastic scaling, performance management and service assurance. These
- are soft alarms providing an opportunity for proactive maintenance.
-
- * ``Notification`` - the Notification Record provides a structure for
- communicating notification information from the PNF or VNF. It can contain
- notification information related to the current operational state that is
- reported by the PNF or VNF. As an example, when cards or port name of the
- entity have changed state. (e.g., offline -> online) Other use cases
- include notification of file ready for collection using Bulk Data Transfer
- or notification on configuration changes to a device.
-
- * ``Other`` - the Other Record defines fields for events that do not have a
- defined domain but are needed to be collected and sent to DCAE. This
- record provides a mechanism to convey a complex set of fields (possibly
- nested or opaque) and is purely intended to address miscellaneous needs
- such as addressing time-to-market considerations or other proof-of-concept
- evaluations. Hence, use of this record type is discouraged and should be
- minimized. (Note: the Other domain could be used to create and test new
- domain ideas.)
-
- * ``perf3gpp`` - the perf3gpp record provides a structure for communicating
- information that supports 3GPP defined performance metrics. The perf3gpp
- record can contain information from vendors, including measurement name,
- measurement family, measured object class, description, collection method,
- value ranges, unit of measure, triggering conditions and other measurement
- information.
-
- * ``pnfRegistration`` - the pnfRegistration Record provides a structure for
- registration of a physical network function. The pnfRegistration Record
- can contain information about attributes related to the physical network
- function including serial number, software revision, unit type and vendor
- name.
-
- * ``stateChange`` - the State Change Record provides a structure for
- communicating information about data flow through the PNF or VNF. The
- State Change Record can contain information about state change related to
- physical device that is reported by the PNF or VNF. As an example, when
- cards or port name of the entity that has changed state. Note: The
- Notification Domain can also communicate similar information.
-
- * ``Syslog`` - the Syslog Record provides a structure for communicating any
- type of information that may be logged by the PNF or VNF. It can contain
- information about system internal events, status, errors, etc. It is
- recommended that low volume control or session logs are communicated via a
- push mechanism, while other large volume logs should be sent via file
- transfer.
-
- * ``thresholdCrossingAlert`` - the Threshold Crossing Alert (TCA) Record
- provides a structure for communicating information about threshold
- crossing alerts. It uses data from the Measurement or a similar domain to
- watch for a Key Performance Indicator (KPI) threshold that has been
- crossed. TCA provides alert definitions and types, actions, events,
- timestamps and physical or logical details.
-
-
-Technology Specific Records
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 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)
-The current version of the data model supports the following technology
-specific event records:
+.. req::
+ :id: R-554966
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
- * ``Mobile Flow`` - the Mobile Flow Record provides a structure for
- communicating information about data flow through the NF. It can contain
- information about connectivity and data flows between serving elements for
- mobile service, such as between LTE reference points, etc.
+ The VNF or PNF **MUST** report performance metrics using
+ :ref:`Virtual Function Event Streaming (VES) <ves_monitoring_requirements>`
+ or :ref:`bulk_performance_measurement`.
- * ``Signaling`` - the Signaling Record provides a structure for
- communicating information about signaling messages, parameters and
- signaling state. It can contain information about data flows for signaling
- and controlling multimedia communication sessions such as voice and video
- calls.
+.. req::
+ :id: R-69111
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
- * ``Voice Quality`` - the Voice Quality Record provides a structure for
- communicating information about voice quality statistics including media
- connection information, such as transmitted octet and packet counts,
- packet loss, packet delay variation, round-trip delay, QoS parameters and
- codec selection.
+ 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>`__ .
- * ``Future Domains`` - the Future Domains Record is a placeholder for
- additional technology specific areas of interest that will be defined and
- described in the future documents.
-Miscellaneous
-~~~~~~~~~~~~~
+.. req::
+ :id: R-209104
+ :target: VNF or PNF
+ :keyword: SHOULD
+ :introduced: guilin
-The event specification contains various extensible structures (e.g. hashMap)
-that enable event publishers to send information that has not been explicitly
-defined.
+ 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-283988
- :target: VNF
- :introduced: casablanca
- :validation_mode: in_service
+ :id: R-332680
+ :target: VNF or PNF
+ :keyword: SHOULD
:impacts: dcae
- :keyword: MUST NOT
+ :validation_mode: in_service
+ :introduced: casablanca
+ :updated: guilin
- The VNF, when publishing events, **MUST NOT** send information through
- extensible structures if the event specification has explicitly defined
- fields for that information.
+ 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-470963
- :target: VNF
+ :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
+ :impacts: DCAE
:validation_mode: in_service
- :impacts: dcae
- :keyword: MUST
- The VNF, when publishing events, **MUST** 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.
+ 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
+ `HV-VES Collector <https://onap-doc.readthedocs.io/projects/onap-dcaegen2/en/latest/sections/services/ves-hv/index.html>`__
+ service details for more information.
.. req::
- :id: R-408813
- :target: VNF
+ :id: R-857511
+ :target: VNF or PNF PROVIDER
:keyword: MUST
- :introduced: casablanca
+ :introduced: guilin
+ :impacts: DCAE
:validation_mode: none
- :impacts: dcae
- The VNF, when publishing 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.
+ VNF or PNF Provider **MUST** have agreement with the Service Provider before
+ utilizing the HV-VES option 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
+ :impacts: dcae, dmaap
+ :validation_mode: in_service
+ :updated: guilin
+
+ 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.
+.. _snmp_monitoring_requirements:
+
+SNMP Monitoring Requirements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. req::
+ :id: R-261501
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
-Data Structure Specification of the Event Record
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 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
:introduced: casablanca
:validation_mode: static
:impacts: dcae
- :updated: el alto
+ :updated: guilin
- 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>`
+ 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``
:target: VNF or PNF PROVIDER
:keyword: MUST
:introduced: casablanca
+ :updated: guilin
:validation_mode: static
:impacts: dcae
- :updated: el alto
-
- The VNF or PNF provider **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:
+ 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>`.
-* Threshold levels
-* Specified actions related to conditions
+ **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:
-
-.. req::
- :id: R-570134
- :target: VNF or PNF
- :keyword: MUST
- :introduced: casablanca
- :validation_mode: in_service
- :impacts: dcae
- :updated: frankfurt
-
- The events produced by the VNF or PNF **MUST** be compliant with the
- common event formats defined in either the
- :ref:`VES Event Listener 7.1.1<ves_event_listener_7_1>` or
- :ref:`VES Event Listener 5.4.1<ves_event_listener_5_4_1>`
- specifications. Version 7.1.1 should be preferred, and VES 5.4.1 is only
- provided for backwards compatibility.
+ * Threshold levels
+ * Specified actions related to conditions
.. req::
:id: R-123044
:impacts: dcae
:updated: dublin
- 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.
+ 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.
-
-Transports and Protocols Supporting Resource Interfaces
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Transport mechanisms and protocols have been selected to enable both high
-volume and moderate volume data sets, as well as asynchronous and synchronous
-communications over secure connections. The specified encoding provides
-self-documenting content, so data fields can be changed as needs evolve, while
-minimizing changes to data delivery.
-
-.. req::
- :id: R-798933
- :target: VNF or PNF
- :keyword: SHOULD
- :impacts: dcae
- :validation_mode: in_service
- :introduced: casablanca
- :updated: dublin
-
- The VNF or PNF **SHOULD** deliver event records that fall into the event domains
- supported by VES.
+Event Formatting and Usage
+~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
- :id: R-821839
+ :id: R-570134
:target: VNF or PNF
:keyword: MUST
- :impacts: dcae
- :validation_mode: in_service
:introduced: casablanca
- :updated: dublin
-
- The VNF or PNF **MUST** deliver event records to ONAP using the common
- transport mechanisms and protocols defined in this specification.
-
-The term 'Event Record' is used throughout this document to represent various
-forms of telemetry or instrumentation made available by the VNFs or PNFs
-including, faults, status events, various other types of VNF or PNF
-measurements and logs.
-
-Common structures and delivery protocols for other types of data will be given
-in future versions of this document as we gain more insight into data volumes
-and required processing.
-
-In the following sections, we provide options for encoding, serialization and
-data delivery. Agreements between Service Providers and VNF or PNF providers
-determine which encoding, serialization and delivery method to use for
-particular data sets.
-
-.. req::
- :id: R-932071
- :target: VNF or PNF
- :keyword: MUST
+ :updated: guilin
+ :validation_mode: in_service
:impacts: dcae
- :validation_mode: none
- :introduced: casablanca
- :updated: dublin
- The VNF or PNF provider **MUST** reach agreement with the Service Provider on
- the selected methods for encoding, serialization and data delivery
- prior to the on-boarding of the VNF or PNF into ONAP SDC Design Studio.
+ 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>`
-VNF or PNF Telemetry using VES/JSON Model
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ The latest version (7.2) should be preferred. Earlier versions are
+ provided for backwards compatibility.
.. req::
- :id: R-659655
+ :id: R-528866
:target: VNF or PNF
- :keyword: SHOULD
- :impacts: dcae
- :validation_mode: in_service
:introduced: casablanca
- :updated: dublin
-
- The VNF or PNF **SHOULD** leverage the JSON-driven model, as depicted in Figure 2,
- for data delivery unless there are specific performance or operational
- concerns agreed upon by the Service Provider that would warrant using an
- alternate model.
-
-|image1|
-
-Figure 2. VES/JSON Driven Model
+ :validation_mode: in_service
+ :impacts: dcae
+ :keyword: MUST
+ :updated: guilin
-VNF or PNF Telemetry using Google Protocol Buffers
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 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-697654
+ :id: R-283988
:target: VNF or PNF
- :keyword: MAY
- :impacts: dcae
- :validation_mode: in_service
:introduced: casablanca
- :updated: dublin
-
- The VNF or PNF **MAY** leverage the Google Protocol Buffers (GPB) delivery model
- depicted in Figure 3 to support real-time performance management (PM) data.
- In this model the VES events are streamed as binary-encoded GBPs over via
- TCP sockets.
-
-|image2|
-
-Figure 3. VNF or PNF Telemetry using Google Protocol Buffers
-
-
-**NOTE:** For high-volume VNF or PNF telemetry, native (binary) Google Protocol
-Buffers (GPB) is the preferred serialization method. While supporting the GPB
-telemetry delivery approach described above, the default delivery method
-is the VES/REST JSON based model in DCAE. The purpose of the diagram above
-is to illustrate the GPB delivery concept only and not to imply a specific
-implementation.
-
-For additional information and uses cases for Real Time Performance
-Management and High Volume Stream Data Collection, please refer to the
-`5G - Real Time PM and High Volume Stream Data Collection ONAP Development <https://wiki.onap.org/display/DW/5G+-+Real+Time+PM+and+High+Volume+Stream+Data+Collection>`__
-Wiki page.
+ :updated: guilin
+ :validation_mode: in_service
+ :impacts: dcae
+ :keyword: MUST NOT
-Bulk Telemetry Transmission
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 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-908291
+ :id: R-470963
:target: VNF or PNF
- :keyword: MAY
:introduced: casablanca
- :impacts: dcae, dmaap
+ :updated: guilin
:validation_mode: in_service
- :updated: dublin
-
- The VNF or PNF **MAY** leverage bulk VNF or PNF telemetry transmission mechanism, as
- depicted in Figure 4, in instances where other transmission methods are not
- practical or advisable.
-
-|image3|
-
-Figure 4. VNF or PNF Telemetry using Bulk Transmission
-
-**NOTE:** An optional VES mapper micro-service can be leveraged to to extract
-measurements and publish them as VES events.
-
-For additional information and use cases for the Bulk Telemetry Transmission
-Mechanism, please refer to the `5G - Bulk PM ONAP Development <https://wiki.onap.org/display/DW/5G+-+Bulk+PM>`__
-Wiki page.
-
-Monitoring & Management Requirements
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ :impacts: dcae
+ :keyword: SHOULD
-VNF telemetry via standardized interface
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 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-821473
+ :id: R-408813
:target: VNF or PNF
:keyword: MUST
:introduced: casablanca
+ :updated: guilin
+ :validation_mode: none
:impacts: dcae
- :validation_mode: in_service
- :updated: dublin
-
- The VNF or PNF MUST produce heartbeat indicators consisting of events containing
- the common event header only per the VES Listener Specification.
+ 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.
-JSON
-~~~~~~~~~~~~~~~~~~
+Configuration Requirements
+~~~~~~~~~~~~~~~~~~~~~~~~~~
-.. req::
- :id: R-19624
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+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.
- The VNF or PNF, when leveraging JSON for events, **MUST** encode and serialize
- content delivered to ONAP using JSON (RFC 7159) plain text format.
- High-volume data is to be encoded and serialized using
- `Avro <http://avro.apache.org/>`_, where the Avro data
- format are described using JSON.
-
-Note:
-
- - JSON plain text format is preferred for moderate volume data sets
- (option 1), as JSON has the advantage of having well-understood simple
- processing and being human-readable without additional decoding. Examples
- of moderate volume data sets include the fault alarms and performance
- alerts, heartbeat messages, measurements used for VNF scaling and syslogs.
-
- - Binary format using Avro is preferred for high volume data sets (option 2)
- such as mobility flow measurements and other high-volume streaming events
- (such as mobility signaling events, mobility trace data or SIP signaling)
- or bulk data, as this will significantly reduce the volume of data to be
- transmitted. As of the date of this document, all events are reported
- using plain text JSON and REST.
-
- - Avro content is self-documented, using a JSON schema. The JSON schema is
- delivered along with the data content
- (http://avro.apache.org/docs/current/ ). This means the presence and
- position of data fields can be recognized automatically, as well as the
- data format, definition and other attributes. Avro content can be
- serialized as JSON tagged text or as binary. In binary format, the JSON
- schema is included as a separate data block, so the content is not tagged,
- further compressing the volume. For streaming data, Avro will read the
- schema when the stream is established and apply the schema to the
- received content.
-
- - In addition to the preferred delivery format (JSON), content delivered
- from PNFs or VNFs to ONAP can be encoded and serialized using Google
- Protocol Buffers (GPB). Please refer to the next section of this document
- for additional information.
-
-In addition to the preferred method (JSON), content can be delivered
-from VNFs or PNFs to ONAP can be encoded and serialized using Google Protocol
-Buffers (GPB).
-
-Google Protocol Buffers (GPB)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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-257367
+ :id: R-460012
:target: VNF or PNF
:keyword: MUST
- :introduced: casablanca
- :validation_mode: in_service
- :updated: dublin
-
- The VNF or PNF, when leveraging Google Protocol Buffers for events, **MUST**
- serialize the events using native Google Protocol Buffers (GPB) according
- to the following guidelines:
+ :introduced: guilin
- * The keys are represented as integers pointing to the system resources
- for the VNF or PNF being monitored
- * The values correspond to integers or strings that identify the
- operational state of the VNF resource, such a statistics counters and
- the state of an VNF or PNF resource.
- * The required Google Protocol Buffers (GPB) metadata is provided in the
- form of .proto files.
+ 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-978752
- :target: VNF or PNF PROVIDER
+ :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: casablanca
- :validation_mode: static
- :updated: dublin
-
- The VNF or PNF providers **MUST** provide the Service Provider the following
- artifacts to support the delivery of high-volume VNF or PNF telemetry to
- DCAE via GPB over TLS/TCP:
-
- * A valid VES Event .proto definition file, to be used validate and
- decode an event
- * A valid high volume measurement .proto definition file, to be used for
- processing high volume events
- * A supporting PM content metadata file to be used by analytics
- applications to process high volume measurement events
+ :introduced: guilin
-Reporting Frequency
-~~~~~~~~~~~~~~~~~~~~~
+ 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-146931
+ :id: R-130645
:target: VNF or PNF
:keyword: MUST
- :introduced: casablanca
- :validation_mode: in_service
- :updated: dublin
-
- The VNF or PNF **MUST** report exactly one Measurement event per period
- per source name.
+ :introduced: guilin
-.. req::
- :id: R-98191
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ The VNF or PNF **MUST** respect the Time To Live provided by the DNS for
+ the VES Event Listener FQDN.
- The VNF or PNF **MUST** vary the frequency that asynchronous data
- is delivered based on the content and how data may be aggregated or
- grouped together.
-
- Note:
-
- - For example, alarms and alerts are expected to be delivered as
- soon as they appear. In contrast, other content, such as performance
- measurements, KPIs or reported network signaling may have various
- ways of packaging and delivering content. Some content should be
- streamed immediately; or content may be monitored over a time
- interval, then packaged as collection of records and delivered
- as block; or data may be collected until a package of a certain
- size has been collected; or content may be summarized statistically
- over a time interval, or computed as a KPI, with the summary or KPI
- being delivered.
- - We expect the reporting frequency to be configurable depending on
- the virtual network functions needs for management. For example,
- Service Provider may choose to vary the frequency of collection
- between normal and trouble-shooting scenarios.
- - Decisions about the frequency of data reporting will affect
- the size of delivered data sets, recommended delivery method,
- and how the data will be interpreted by ONAP. These considerations
- should not affect deserialization and decoding of the data, which
- will be guided by the accompanying JSON schema or GPB definition
- files.
-
-Addressing and Delivery Protocol
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-ONAP destinations can be addressed by URLs for RESTful data PUT. Future
-data sets may also be addressed by host name and port number for TCP
-streaming, or by host name and landing zone directory for SFTP transfer
-of bulk files.
-
-.. req::
- :id: R-88482
- :target: VNF or PNF
- :keyword: SHOULD
- :updated: dublin
-
- The VNF or PNF **SHOULD** use REST using HTTPS delivery of plain
- text JSON for moderate sized asynchronous data sets, and for high
- volume data sets when feasible.
+Event Delivery Requirements
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. req::
- :id: R-84879
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ :id: R-06924
+ :target: VNF or PNF
+ :keyword: MUST
+ :updated: guilin
- The VNF or PNF **MUST** have the capability of maintaining a primary
- and backup DNS name (URL) for connecting to ONAP collectors, with the
- ability to switch between addresses based on conditions defined by policy
- such as time-outs, and buffering to store messages until they can be
- delivered. At its discretion, the service provider may choose to populate
- only one collector address for a VNF or PNF. In this case, the network will
- promptly resolve connectivity problems caused by a collector or network
- failure transparently to the VNF or PNF.
+ 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-81777
+ :id: R-655209
:target: VNF or PNF
:keyword: MUST
- :updated: dublin
-
- The VNF or PNF **MUST** be configured with initial address(es) to use
- at deployment time. Subsequently, address(es) may be changed through
- ONAP-defined policies delivered from ONAP to the VNF or PNF using PUTs to a
- RESTful API, in the same manner that other controls over data reporting
- will be controlled by policy.
-
-.. req::
- :id: R-08312
- :target: VNF or PNF
- :keyword: MAY
- :updated: dublin
-
- The VNF or PNF **MAY** use another option which is expected to include REST
- delivery of binary encoded data sets.
-
-.. req::
- :id: R-79412
- :target: VNF or PNF
- :keyword: MAY
- :updated: dublin
-
- The VNF or PNF **MAY** use another option which is expected to include TCP
- for high volume streaming asynchronous data sets and for other high volume
- data sets. TCP delivery can be used for either JSON or binary encoded data
- sets.
-
-.. req::
- :id: R-01033
- :target: VNF or PNF
- :keyword: MAY
- :updated: dublin
+ :introduced: guilin
- The VNF or PNF **MAY** use another option which is expected to include SFTP
- for asynchronous bulk files, such as bulk files that contain large volumes
- of data collected over a long time interval or data collected across many
- VNFs or PNFs. (Preferred is to reorganize the data into more frequent or more focused
- data sets, and deliver these by REST or TCP as appropriate.)
+ 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-63229
- :target: VNF or PNF
- :keyword: MAY
- :updated: dublin
+ :id: R-176945
+ :target: VNF or PNF
+ :keyword: SHOULD NOT
+ :introduced: guilin
- The VNF or PNF **MAY** use another option which is expected to include REST
- for synchronous data, using RESTCONF (e.g., for VNF or PNF state polling).
+ 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.
-.. req::
- :id: R-03070
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+.. _ves_buffering_requirements:
- The VNF or PNF **MUST**, by ONAP Policy, provide the ONAP addresses
- as data destinations for each VNF or PNF, and may be changed by Policy while
- the VNF or PNF is in operation. We expect the VNF or PNF to be capable of redirecting
- traffic to changed destinations with no loss of data, for example from
- one REST URL to another, or from one TCP host and port to another.
+Buffering and Redelivery
+~~~~~~~~~~~~~~~~~~~~~~~~
-Asynchronous and Synchronous Data Delivery
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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-06924
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ :id: R-658596
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
- The VNF or PNF **MUST** deliver asynchronous data as data becomes
- available, or according to the configured frequency.
+ 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.
-.. req::
- :id: R-73285
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
-
- The VNF or PNF **MUST** must encode, address and deliver the data
- as described in the previous paragraphs.
+ * 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-42140
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ :id: R-636251
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
- The VNF or PNF **MUST** respond to data requests from ONAP as soon
- as those requests are received, as a synchronous response.
+ 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-34660
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ :id: R-498679
+ :target: VNF or PNF
+ :keyword: MAY
+ :introduced: guilin
- The VNF or PNF **MUST** use the RESTCONF/NETCONF framework used by
- the ONAP configuration subsystem for synchronous communication.
+ 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-86586
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ :id: R-346137
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
- The VNF or PNF **MUST** use the YANG configuration models and RESTCONF
- [RFC8040] (https://tools.ietf.org/html/rfc8040).
+ 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-11240
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
-
- The VNF or PNF **MUST** respond with content encoded in JSON, as
- described in the RESTCONF specification. This way the encoding of a
- synchronous communication will be consistent with Avro.
+ :id: R-379523
+ :target: VNF or PNF
+ :keyword: MUST
+ :introduced: guilin
-.. req::
- :id: R-70266
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ 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:
- The VNF or PNF **MUST** respond to an ONAP request to deliver the
- current data for any of the record types defined in
- `Event Records - Data Structure Description`_ by returning the requested
- record, populated with the current field values. (Currently the defined
- record types include fault fields, mobile flow fields, measurements for
- VNF or PNF scaling fields, and syslog fields. Other record types will be added
- in the future as they become standardized and are made available.)
+ * Deliver all previously buffered events before sending new events
+ * Deliver buffered events in the order they were received
.. req::
- :id: R-332680
+ :id: R-818859
:target: VNF or PNF
- :keyword: SHOULD
- :impacts: dcae
- :validation_mode: in_service
- :introduced: casablanca
- :updated: dublin
-
- The VNF or PNF **SHOULD** deliver all syslog messages to the VES Collector per the
- specifications in Monitoring and Management chapter.
-
-.. req::
- :id: R-46290
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
+ :keyword: MUST
+ :introduced: guilin
- The VNF or PNF **MUST** respond to an ONAP request to deliver granular
- data on device or subsystem status or performance, referencing the YANG
- configuration model for the VNF or PNF by returning the requested data elements.
+ 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-43327
- :target: VNF or PNF
- :keyword: SHOULD
- :updated: dublin
+ :id: R-103464
+ :target: VNF or PNF
+ :keyword: MAY
+ :introduced: guilin
- The VNF or PNF **SHOULD** use `Modeling JSON text with YANG
- <https://tools.ietf.org/html/rfc7951>`_, If YANG models need to be
- translated to and from JSON{RFC7951]. YANG configuration and content can
- be represented via JSON, consistent with Avro, as described in "Encoding
- and Serialization" section.
+ 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-42366
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
-
- The VNF or PNF **MUST** support secure connections and transports such as
- Transport Layer Security (TLS) protocol
- [`RFC5246 <https://tools.ietf.org/html/rfc5246>`_] and should adhere to
- the best current practices outlined in
- `RFC7525 <https://tools.ietf.org/html/rfc7525>`_.
-
-.. req::
- :id: R-44290
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
-
- The VNF or PNF **MUST** control access to ONAP and to VNFs or PNFs, and creation
- of connections, through secure credentials, log-on and exchange mechanisms.
-
-.. req::
- :id: R-47597
- :target: VNF or PNF
- :keyword: MUST
- :updated: dublin
-
- The VNF or PNF **MUST** carry data in motion only over secure connections.
-
.. req::
:id: R-68165
:target: VNF or PNF
Information (SPI) or certain proprietary data, in addition to applying the
regular procedures for securing access and delivery.
-.. req::
- :id: R-01427
- :target: VNF or PNF
- :keyword: MUST
- :introduced: casablanca
- :updated: el alto
-
- If the VNF or PNF is using Basic Authentication, then the VNF or
- PNF **MUST** support the provisioning of security and authentication
- parameters (HTTP username and password) in order to be able to
- authenticate with DCAE VES Event Listener.
-
- Note: The configuration management and provisioning software
- are specific to a vendor architecture.
-
-.. req::
- :id: R-894004
- :target: VNF or PNF
- :keyword: MUST
- :introduced: casablanca
- :updated: el alto
-
- If the VNF or PNF is using Basic Authentication, then when the VNF
- or PNF sets up a HTTPS connection to the DCAE VES Event Listener,
- the VNF or PNF **MUST** provide a username and password to the
- DCAE VES Event Listener in the Authorization header and the VNF
- or PNF MUST support one-way TLS authentication.
-
- Note: In one-way TLS authentication, the client (VNF or PNF)
- must authentication the server (DCAE) certificate.
-
-.. req::
- :id: R-55634
- :target: VNF or PNF
- :keyword: MUST
- :introduced: el alto
-
- If VNF or PNF is using Basic Authentication, then the VNF or PNF
- **MUST** be in compliance with
- `RFC7617 <https://tools.ietf.org/html/rfc7617>`_ for authenticating HTTPS
- connections to the DCAE VES Event Listener.
-
-.. req::
- :id: R-43387
- :target: VNF or PNF
- :keyword: MUST
- :introduced: el alto
-
- If the VNF or PNF is using Certificate Authentication, the
- VNF or PNF **MUST** support mutual TLS authentication and the Subject
- Name in the end-entity certificate MUST be used according to
- `RFC5280 <https://tools.ietf.org/html/rfc5280>`_.
-
- Note: In mutual TLS authentication, the client (VNF or PNF) must
- authenticate the server (DCAE) certificate and must provide its own
- X.509v3 end-entity certificate to the server for authentication.
.. req::
:id: R-33878
:target: VNF or PNF
:keyword: MUST
:introduced: el alto
+ :updated: guilin
- The VNF or PNF **MUST** support one of the following authentication
- methods for authenticating HTTPS connections to the DCAE VES Event
- Listener:
-
- - The preferred method is Certificate Authentication
-
- - The non-preferred option is Basic Authentication.
+ 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
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
Note: Recommended period is at least 24 hours.
-PM Dictionary
-^^^^^^^^^^^^^^
-
-The Performance Management (PM) Dictionary is used by analytics applications
-to interpret and process perf3gpp measurement information from vendors,
-including measurement name, measurement family, measured object class,
-description, collection method, value ranges, unit of measure, triggering
-conditions and other information. The ultimate goal is for analytics
-applications to dynamically process new and updated measurements based on
-information in the PM Dictionary.
-
-The PM dictionary is supplied by NF vendors in two parts:
-
- - PM Dictionary Schema: specifies meta-information about perf3gpp
- measurement events from that vendor. The meta-information is conveyed
- using standard meta-information keywords, and may be extended to include
- vendor-specific meta-information keywords. The PM Dictionary Schema may
- also convey a range of vendor-specific values for some of the keywords.
-
- - PM Dictionary: defines specific perf3gpp measurements sent by vendor VNFs
- or PNFs (each of which is compliant with a referenced PM Dictionary
- Schema).
-
-Note:
-
- - A vendor may provide multiple versions of the PM Dictionary Schema and
- refer to those versions from the PM Dictionary.
-
- - Please refer to the latest version of the VES Event Registration
- specification for the listing of the PM Dictionary schema keywords, PM
- Dictionary Schema example and PM Dictionary example.
-
-
-FM Meta Data
-^^^^^^^^^^^^^^
-
-FM Meta Data enables vendors to provide meta information about FM events using
-a set of standard keywords. FM Meta Data is conveyed in the YAML event
-registration using the YAML Comment qualifier. The FM Meta Data section is
-optional.
-
-FM Meta Data includes Alarm Meta Data and Fault Meta Data:
-
- - FM Meta Data keywords must be provided in 'hash format' as Keyword: Value.
-
- - FM Meta Data values containing whitespace must be enclosed in single
- quotes. Successive keywords must be separated by commas.
-
- - Alarm Meta Data, if provided, shall be placed in the YAML comments
- qualifier at the top of the event registration for the alarm.
-
- - Fault Meta Data, if provided, shall be placed in the YAML comments
- qualifier of faultFields.alarmAdditionalInformation within each alarm.
-
-The above conventions will make machine processing of FM Meta Data Keywords
-easier to perform.
-
-Note:
-
- - Please refer to the latest version of the VES Event Registration
- specification for the listing of the FM Alarm Meta Data keywords, Fault
- Meta Data keywords and FM Meta Data examples.
-
-
.. |image0| image:: ../Data_Model_For_Event_Records.png
.. |image1| image:: ../VES_JSON_Driven_Model.png
.. Copyright 2017 AT&T Intellectual Property, All rights reserved
.. Copyright 2017-2018 Huawei Technologies Co., Ltd.
-.. _ves_event_listener_7_1:
+.. _ves_event_listener_7_2:
-Service: VES Event Listener 7.1.1
----------------------------------
+Service: VES Event Listener 7.2
+-------------------------------
+-----------------------------------------------------------------------------+
| **Legal Disclaimer** |
:Document: VES Event Listener
-:Revision: 7.1.1
-:Revision Date: January 28th, 2020
-:Author: Rich Erickson
+:Revision: 7.2
+:Revision Date: May 6th, 2020
+:Author: Trevor Lovett
+-----------------+-----------------------------+
| Contributors: | **Min Chen – AT&T** |
| | **Tim Verall – Intel** |
| | |
| | **Sumit Verdi – VMWare** |
+| | |
+| | **Trevor Lovett – AT&T** |
+| | |
+| | **Rich Erickson – AT&T** |
+-----------------+-----------------------------+
.. contents:: Table of Contents
Listener. The VES acronym originally stood for Virtual-function Event
Streaming, but VES has been generalized to support network-function
event streaming, whether virtualized or not. The VES Event Listener is
-capable of receiving any event sent in the VES Common Event Format. The
-Common Event Format is expressed in JSON schema in section 4 of this
-document. In the Common Event Format, an event consists of a required
-Common Event Header block (i.e., object) accompanied by zero or more
-event domain blocks.
+capable of receiving any event sent in the VES
+:ref:`ves_common_event_format_7_2`. In the VES Common Event Format, an event
+consists of a required
+:ref:`Common Event Header <ves_common_event_header_7_2>` (i.e., object)
+accompanied by zero or more event domain blocks.
It should be understood that events are well structured packages of
-information, identified by an eventName, which are asynchronously
-communicated to subscribers who are interested in the eventName. Events
+information, identified by an ``eventName``, which are asynchronously
+communicated to subscribers who are interested in the ``eventName``. Events
can convey measurements, faults, syslogs, threshold crossing alerts and
other types of information. Events are simply a way of communicating
well-structured packages of information to one or more instances of an
-Event Listener service.
-
-This document describes a RESTful connectionless push event listener
-can receive single events or batches of events in the
-Common Event Format. In future, additional documents may describe other
-transports which make use of persistent TCP connections for high volumes
-of streaming events.
-
-Compatibility with ONAP
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Unless otherwise stated, this version of the Event Listener specification is
-compatible with the release of ONAP the specification is released under. In
-other words, if the specification is released under the Frankfurt ONAP Release,
-then the VES Event Collectors provided by DCAE will also be compatible with
-the specification.
-
-Event Registration
-~~~~~~~~~~~~~~~~~~
-
-All events must be compliant with the common event format, but specific
-events identified by their eventNames, may require that certain fields,
-which are optional in the common event format, be present when they are
-published. For example, a specific eventName may require that specific
-name-value pairs be present in the extensible structures provided within
-the Common Event Format.
-
-Events are registered using an extensible YAML format (defined in a
-separate document), which specifies, for each eventName, the fields that
-are required, what field values may be sent, and any special handling
-that should be performed on those eventNames.
-
-Naming Standards for eventName
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To prevent naming collisions, eventNames sent as part of the
-commonEventHeader, should conform to the following naming convention
-designed to summarize the purpose and type of the event, and to ensure
-the uniqueness of the eventName:
-
- {DomainAbbreviation}\_{PublisherName}\_{Description}
-
-Each underscore-separated subfield above should start with a capital
-letter and use camel-casing to separate words and acronyms. Acronyms
-should capitalize only the first letter of the acronym. Spaces and
-underscores should not appear within any subfield.
-
-The DomainAbbreviation subfield derives from the ‘domain’ field in the
-commonEventHeader, as specified below:
-
-- ‘Fault’ for the fault domain
-
-- ‘Heartbeat’ for the heartbeat domain
-
-- ‘Measurement’ for the measurement domain
-
-- ‘MobileFlow’ for the mobileFlow domain
-
-- ‘Notification’ for the notification domain
-
-- ‘Other’ for the other domain
-
-- ‘Perf3gpp’ for the perf3gpp domain
-
-- ‘PnfReg’ for the pnfRegistration domain
-
-- ‘SipSignaling’ for the sipSignaling domain
-
-- ‘StateChange’ for the stateChange domain
-
-- ‘Syslog’ for the syslog domain
-
-- ‘Tca’ for the thresholdCrossingAlert domain
-
-- ‘VoiceQuality’ for the voiceQuality domain
-
-The PublisherName subfield describes the vendor product or application
-publishing the event. This subfield conforms to the following
-conventions:
-
-- Vendor products are specified as:
-
- {productName}-{vendorName}
-
- For example: Visbc-Metaswitch or Vdbe-Juniper, where a hyphen is
- used to separate the productName and vendorName subfields. Note that
- the productName and vendorName subfields must not include hyphens
- themselves.
-
- Organizing the information in this way will cause an alphabetical
- listing of eventNames to sort similar network functions together,
- rather than to sort them by vendor.
-
- The productName subfield may describe a NF or a NFC. Where NFC names
- may be reused across different NF’s, they should be specified as:
-
- {NfName}:{NfcName}
-
- where a colon is used to separate the NfName and NfcName subfields.
- Note that the NfName and NfcName subfields must not include colons
- themselves.
-
- The ProductName may also describe other types of vendor modules or
- components such as a VM, application or hostname. As with NFs and
- NFCs, parent:child relationships may be communicated using colon as
- a subfield delimiter.
-
-- Service providers who adopt the VES Common Event Format for internal
- use, may provide PublisherName without the vendorName subfield. They
- would typically identify an application, system, service or
- microservice publishing the event (e.g., ‘Policy’, ‘So’,
- ‘MobileCallRecording’ or ‘Dkat’). As with NFs and NFCs, parent:child
- relationships may be communicated using colon as a subfield delimiter
- (e.g., ApplicationName:ApplicationComponent).
-
-The final subfield of the eventName name should describe, in a compact
-camel case format the specific information being conveyed by the event.
-In some cases, this final subfield may not be required (e.g., in the
-case of certain heartbeats).
-
-Examples of eventNames following the naming standards are provided
-below:
-
-- Tca\_Vdbe-Ericsson\_CpuThresholdExceeded
-
-- Heartbeat\_Visbc:Mmc-Metaswitch
-
-- Syslog\_Vdbe-Ericsson
-
-- Fault\_MobileCallRecording\_PilotNumberPoolExhaustion
-
-- Other\_So:WanBonding\_InstantiationPart1Complete
-
-EventId Use Cases Examples
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-eventId Examples:
-
-**NOTE**: Please note, the following are only *examples*, and other formats
-can be used provided they meet the requirement that the ``eventId`` is unique
-for all events or unique fault occurrence.
-
-**Example 1**: assumes a unique key for each domain consisting of domain
-followed by an integer domain<n> or domainId<n>, where <n> is a positive integer,
-e.g. fault000001, heartbeat000001, measurement000005,
-notification3gppPerfFileReady0005
-
-**Example 2**: assumes a unique integer key for all events across all domains
-<n>: 000000001, 00000002, 000000003
-
-Rules:
-
-1. All domains except Fault: each time a subsequent event is sent the
- integer part of eventId will increment by 1. Repeat of eventId
- assumes duplicate event. Sequence number is set to 0 for all domains
- except fault.
-
-2. eventId construction for Fault Events:
-
- a. Most likely scenario
-
- * The sourceName on each Fault event is the NF Instance Name
- (pnf-name or vnf-name or vm-name) as entered in A&AI uniquely
- identifying this instance of the NF.
-
- * The eventId on Fault events is the same every time a given
- fault is raised (including onset and re-raise)
-
- 1. The startEpochMicrosec value for the Fault event is the
- timestamp for when the fault onset occurs. Subsequent
- events for the same fault will keep the same startEpochMicrosec
- value.
-
- 2. lastEpochMicrosec indicates the current event time. This value
- will be updated for each subsequent event for a given fault.
-
- 3. The sequence number for each Fault event is set to 1 when the
- fault is raised and increments each time the same
- fault event is raised, until a clear is sent.
-
- * After the fault is cleared, a new eventId is used.
-
- .. image:: Use-Case-1.png
-
- b. **Alternative Scenario**: Network Function When Fault Event Status is Not
- Maintained.
-
- * The sourceName on each Fault event is the NF Instance Name
- (pnf-name or vnf-name or vm-name) as entered in A&AI uniquely
- identifying this instance of the NF.
-
- * The eventId on Fault events is the same every time a given
- fault is raised or cleared, even if it is re-raised after it
- had previously cleared. So, for example, if EMS loses
- contact with a particular device then a Fault event might be
- sent for a raise, re-raise (because EMS has re-tried and
- still can’t contact the device), clear (because EMS has
- re-tried and it can contact the device) and then raise again
- (because EMS has lost contact with the device again). The
- same eventId is used for all 4 of those Fault events.
-
- * The startEpochMicrosec value for each Fault event is the
- timestamp for when that event is generated, not when the
- fault first occurred. So all 4 of the Fault events in the
- previous bullet point would have a different timestamp.
-
- * lastEpochMicrosec indicates the current event time.
-
- * The sequence number for each Fault event is currently set to
- 0 on a raise and 1 on a clear. We could change that so that
- each Fault event is given a new monotonically increasing
- sequence number whether it is a raise or a clear if that is
- helpful (which is reset to 0 if the VM restarts) but they
- won’t be consecutive.
-
- * Normally, a clear is expected for each fault to be sent from a
- network function. However a few fault notification types will never
- be re-raised or cleared. In this case, general rules for VES events
- shall be followed with a new eventId for each event and sequence
- number set to 0.
-
- .. image:: Use-Case-2.png
-
-Measurement Expansion Fields
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When expansion fields are used, the goal is to avoid custom development
-by the service provider collecting the fields, since custom development
-adds obvious cost, delay and resource overhead. In the domain of
-measurements, it is expected that a high percentage (perhaps as high as
-90 percent) of use cases for extensible fields can be satisfied by using
-the additionalMeasurements arrayOfNamedHashMap data structure in
-combination with a YAML registration file (provided at design time). The
-YAML registration file conveys meta-information about the processing of
-additionalMeasurements. For more information, please see the VES Event
-Registration specification and in particular the aggregationRole, castTo
-and isHomogeneous keywords.
-
-Syslogs
-~~~~~~~~
-
-Syslog’s can be classified as either Control or Session/Traffic. They
-differ by message content and expected volume:
-
-- Control logs are generally free-form human-readable text used for
- reporting errors or warnings supporting the operation and
- troubleshooting of NFs. The volume of these logs is typically less
- than 2k per day.
-
-- Session logs use common structured fields to report normal NF
- processing such as DNS lookups or firewall rules processed. The
- volume of these logs is typically greater than 1k per hour (and
- sometimes as high as 10k per second).
-
-VES supports both classes of syslog, however VES is only recommended for
-control logs or for lower volume session logs, less than 60k per hour.
-High volume session logging should use a file-based transport solution.
-
-Support for Protocols Other Than HTTPS
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This API specification describes an HTTPS RESTful interface using the
-JSON content-type.
-
-Alternative API specifications may be provided in future using Google
-Protobuf, websockets, or Apache Avro.
-
-Configuration Requirements
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-This section provides network function configuration requirements for
-connectivity to a VES Event Listener via a RESTful API, using a VES JSON event.
-
-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.
-
-* **VES Event Listener IP Addresses or FQDNs resolved via DNS**: Two FQDNs
- and/or IP Addresses are required. NF shall select one of the 2 FQDNs/IP
- Addresses for sending events and if the NF is unable to get an
- acknowledgement within predefined configurable time interval
- or unable to establish a TCP connection due inability to resolve DNS query or
- if the VES Event Listener is unresponsive, then the NF shall attempt to use
- the other FQDN/IP Address to connect to VES Event Listener to deliver the
- VES Events. The events shall only be sent to one VES Event Listener at a time.
- Please note: If a FQDN is used, the DNS query would return a single IP
- address.
-* The active VES Event Listener (either the primary or secondary) will handle
- all VES events regardless of domain.
-* **VES Credentials**: If the NF is using Basic Authentication, then the NF
- must support the provisioning of security and authentication parameters
- (HTTP username and password) in order to be able to authenticate with the
- VES Event Listener. The Username and Password should be set unique per NF
- instance and should be configured during the NF deployment through a
- Controller or other means. The same password must also be configured into VES
- Event Listener instance for successful handshake.
-* **VES Heartbeat Interval**: This must be a configurable parameter; current
- default is 60 seconds. Note: the heartbeat interval should be greater than
- the ack timeout value.
-* **Measurement Interval**: For measurement events, the measurement interval
- must be configurable and a default of 300 seconds.
-* **ACK Timeout Interval**: Configurable, default 5 seconds.
-
-Event Domain Requirements/Expectations
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-* **Heartbeat**: Heartbeat events must be sent to VES Event Listener based on
- configurable parameter.
-* **Faults**: Fault events must be sent to the VES Event Listener as soon as
- they occur.
-* **Measurements**: All measurement events must be sent at the configured
- measurementInterval. If the NF provides both application and GuestOS
- metrics, then they must both use the same measurementInterval.
-* **Syslogs**: Syslog events should be sent to the VES Event Listener as soon as
- created, unless the NF is in debug mode (verbose logging enabled to get
- additional data to diagnose a problem), in which case the syslogs must be
- stored locally in the NF, for later access and possible secure transfer.
-* **Pre-defined Events Formats (Domain: Mobile Flow, TCA, State Chang, etc)**:
- Other events (State change, TCA, Mobile Flow, etc) may use other pre-defined
- VES domains from the VES Common Event Format specification based on the role
- of the NF.
-* **otherFields**: The otherFields Record defines fields for events belonging
- to the otherFields domain of the Technology Independent domain enumeration.
- This record provides a mechanism to convey a complex set of fields
- and is purely intended to address miscellaneous needs such as addressing
- time-to-market considerations or other proof-of-concept evaluations. Hence,
- use of this record type is discouraged and should be minimized.
-
-Use of Collector FQDNs and/or IP Address
-++++++++++++++++++++++++++++++++++++++++
-
-* The NF must support two configurable endpoints for the VES Event Listener.
- One will be the active, primary event listener endpoint. The other
- will be a standby event listener in the event the active endpoint is
- unavailable.
-* When sending an event (FM, PM, Syslog, HB), the NF shall establish an HTTPS
- connection to one VES Event Listener FQDN/IP Address (if not already
- established) and send a VES event to it. Note that connections are not
- persistent. The events shall only be sent to only one VES Event Listener at a
- time.
-* The NF must be able to detect that a VES Event Listener endpoint is
- unavailable, and trigger the fail-over to the backup endpoint. The mechanism
- for detecting unavailability must be configurable by the Service Operator
- (e.g. number of attempts, timeout value).
-* If the NF is sending events to the VES Event Listener backup endpoint, then
- the NF must poll the primary endpoint on a configurable interval to check
- if the primary endpoint is now available. The NF may use the Heartbeat
- event or another mechanism to test availability. If the primary endpoint
- becomes available, then the NF must fallback to the primary endpoint.
-* A NF must only send a unique event to a single VES Event Listener endpoint
- at a time. In other words, the NF must not send a duplicate event to the
- secondary endpoint unless the delivery to the primary endpoint failed.
-* If both Primary and Secondary endpoints are not available, then the NF shall
- buffer the events locally. Refer to the Buffering of Events section for full
- details.
-* If a NF is unable to establish a connection with a VES Event Listener or does
- not get an acknowledgement within a specified time, then it should log this
- failure and, optionally, send a fault event indicating
- connection/acknowledgement failure via the alternate FQDN/IP Address. The
- intent of this fault is to inform the Service Operator that the VES Event
- Listener endpoint has become unreachable by the NF.
+VES Event Listener service.
+This document describes a RESTful, connectionless, push event listener
+that can receive single events or batches of events in the
+:ref:`ves_common_event_format_7_2`.
Versioning
-~~~~~~~~~~~
+^^^^^^^^^^
Three types of version numbers supported by this specification:
to that block (e.g., a field name is added or text changes are made
to the field descriptions) will increment only the minor number.
+Client Requirements
+^^^^^^^^^^^^^^^^^^^
+
+Any NF or client library that is responsible for delivering VES events
+to a VES Event Listener must comply with this specification to ensure events are
+received, accepted, and processed properly.
+
+Because the VES specification relies on clients to push events to the
+VES Event Listener, the client assumes certain responsibilities such as:
+
+- Providing configuration options supporting integration into a
+ Service Provider environment
+- Ensuring reliable delivery of events
+- Customization of default behaviors based on Service Provider needs
+
+While the documentation of these expectations are beyond the Event Listener
+specification, these requirements are documented in the ONAP VNF Requirements
+for :ref:`VES Monitoring Requirements <ves_monitoring_requirements>`.
+
+
+Compatibility with ONAP
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Unless otherwise stated, this version of the Event Listener specification is
+compatible with the release of ONAP the specification is released under. In
+other words, if the specification is released under the Frankfurt ONAP release,
+then the VES Event Listeners provided by DCAE will also be compatible with
+this specification.
+
+Support for Protocols Other Than HTTPS
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This API specification describes an HTTPS RESTful interface using the
+JSON content-type.
+
+Alternative API specifications may be provided in future using Google
+Protocol Buffers, WebSockets, or Apache Avro.
+
Field Block Versions
-+++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^
A summary of the latest field block version enums as of this version of
the API spec is provided below:
- voiceQualityFieldsVersion: 4.0
-Security
-^^^^^^^^
-
-Event sources must identify themselves to the VES Event Listener.
-
-There are 2 methods of HTTP authentication supported: Certificate Authentication
-and Basic Authentication.
-
-Basic authentication is supported in VES Event Listener for backward
-compatibility for existing NFs that are already managed by ONAP. New NFs should
-support Certificate Authentication. Because the security is better, NFs may
-choose to only support Certificate Authentication and not support Basic
-Authentication.
-
-Basic Authentication
-~~~~~~~~~~~~~~~~~~~~
-
-When using Basic Authentication, the event source must not pass credentials on
-the query string. Credentials must be sent in an Authorization header as
-follows:
-
-1. The username and password are formed into one string as
- ``username:password``
-2. The resulting string is Base64 encoded to produce the encoded credential.
-3. The encoded credential is communicated in the header after the string
- ``Authorization: Basic``
-
-Because the credentials are merely encoded but not encrypted, HTTPS (rather
-than HTTP) should be used. HTTPS will also encrypt and protect event contents.
-
-Sample Request and Response
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Sample Request
-++++++++++++++
-
-.. code-block:: http
-
- POST /eventListener/v7 HTTP/1.1
- Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
- content-type: application/json
- content-length: 12345
- {
- "event": {
- "commonEventHeader": {
- "version": "4.1",
- "vesEventListenerVersion": "7.1.1",
- "domain": "heartbeat",
- "eventName": "Heartbeat_vIsbcMmc",
- "eventId": "heartbeat0000249",
- "sequence": 0,
- "priority": "Normal",
- "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
- "reportingEntityName": "ibcx0001vm002oam001",
- "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
- "sourceName": "ibcx0001vm002ssc001",
- "nfVendorName": "Ericsson",
- "nfNamingCode": "ibcx",
- "nfcNamingCode": "ssc",
- "startEpochMicrosec": 1413378172000000,
- "lastEpochMicrosec": 1413378172000000,
- "timeZoneOffset": "UTC-05:30"
- }
- }
- }
-
-
-Sample Success Response
-++++++++++++++++++++++++
-
-.. code-block:: http
-
- HTTPS/1.1 202 Accepted
- X-MinorVersion: 1
- X-PatchVersion: 1
- X-LatestVersion: 7.1
-
-
-Mutual TLS Certificate Authentication
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When using Certificate Authentication, the event source must initialize the
-HTTPS connection with TLS 1.2 or higher and execute mutual authentication
-procedures according to `RFC5246 <https://tools.ietf.org/html/rfc5246#section-7.4.6>`__.
-The event source must authenticate the VES Listener certificate and must
-provide its own X.509v3 end-entity certificate to the VES Listener for
-authentication. The Subject Name in the end-entity certificate must be used
-according to `RFC5280 <https://www.ietf.org/rfc/rfc5280.txt>`__. If a
-certificate is provided by the NF but it is invalid, the VES Listener is
-expected to reject the connection and not fall back to basic authentication.
-
-Resource Structure
-^^^^^^^^^^^^^^^^^^
-
-REST resources are defined with respect to a ServerRoot:
-
-ServerRoot = https://{Domain|IP}:{Port}/{optionalRoutingPath}
-
-The resource structure is provided below::
-
- {ServerRoot}
- |
- |--- /eventListener/v{apiVersion}
- |
- |--- /eventBatch
-
-**Figure 1**: REST Resource Structure
-
-The {Port} above is typically 8443.
+.. _ves_common_event_format_7_2:
Common Event Format
^^^^^^^^^^^^^^^^^^^^
A JSON schema describing the Common Event Format is provided below and
is reproduced in the tables that follow.
-:download:`JSON <CommonEventFormat_30.1.1_ONAP.json>`
+:download:`JSON <CommonEventFormat_30.2_ONAP.json>`
Note on optional fields:
Common Event Header Data Types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. _ves_common_event_header_7_2:
+
Datatype: commonEventHeader
++++++++++++++++++++++++++++
| | | | cases, eventId must be the same as the |
| | | | initial alarm (along with the same |
| | | | startEpochMicrosec but with a different |
-| | | | sequence number). Note: see section 1.3 |
-| | | | for eventId use case examples. |
+| | | | sequence number). |
+| | | | See :ref:`ves_eventid_usecases_7_2` for |
+| | | | additional guidance on eventId usage. |
+-----------+----------+-----------+-----------------------------------------+
-| eventName | string | Yes | |
+| eventName | string | Yes | See :ref:`ves_eventname_guidelines_7_2`|
+| | | | for additional information on naming |
+| | | | events |
+-----------+----------+-----------+-----------------------------------------+
| eventType | string | No | |
+-----------+----------+-----------+-----------------------------------------+
| | | | digits to use). |
+-----------+----------+-----------+-----------------------------------------+
-Datatype: internalHeaderFields
-++++++++++++++++++++++++++++++
+Datatype: internalHeaderFields
+++++++++++++++++++++++++++++++
+
+The internalHeaderFields datatype is an undefined object which can
+contain arbitrarily complex JSON structures. It is intended to be
+defined separately by each service provider (e.g., AT&T) implementing
+the VES Event Listener. The fields in internalHeaderFields are not
+provided by any event source but instead are added by the VES Event
+Listener service itself as part of an event enrichment process necessary
+for efficient internal processing of events received by the VES Event
+Listener.
+
+
+.. _ves_eventname_guidelines_7_2:
+
+Best Practices for eventName
+++++++++++++++++++++++++++++
+
+To prevent naming collisions, eventNames sent as part of the
+commonEventHeader, should conform to the following naming convention
+designed to summarize the purpose and type of the event, and to ensure
+the uniqueness of the eventName:
+
+ ``{DomainAbbreviation}_{PublisherName}_{Description}``
+
+Each underscore-separated subfield above should start with a capital
+letter and use camel-casing to separate words and acronyms. Acronyms
+should capitalize only the first letter of the acronym. Spaces and
+underscores should not appear within any subfield.
+
+The DomainAbbreviation subfield derives from the ‘domain’ field in the
+commonEventHeader, as specified below:
+
+- ‘Fault’ for the fault domain
+
+- ‘Heartbeat’ for the heartbeat domain
+
+- ‘Measurement’ for the measurement domain
+
+- ‘MobileFlow’ for the mobileFlow domain
+
+- ‘Notification’ for the notification domain
+
+- ‘Other’ for the other domain
+
+- ‘Perf3gpp’ for the perf3gpp domain
+
+- ‘PnfReg’ for the pnfRegistration domain
+
+- ‘SipSignaling’ for the sipSignaling domain
+
+- ‘StateChange’ for the stateChange domain
+
+- ‘Syslog’ for the syslog domain
+
+- ‘Tca’ for the thresholdCrossingAlert domain
+
+- ‘VoiceQuality’ for the voiceQuality domain
+
+The PublisherName subfield describes the vendor product or application
+publishing the event. This subfield conforms to the following
+conventions:
+
+- Vendor products are specified as: ``{productName}-{vendorName}``
+
+ For example: ``Visbc-Metaswitch`` or ``Vdbe-Juniper``, where a hyphen is
+ used to separate the ``productName`` and ``vendorName`` subfields. Note that
+ the ``productName`` and ``vendorName`` subfields must not include hyphens
+ themselves.
+
+ Organizing the information in this way will cause an alphabetical
+ listing of eventNames to sort similar network functions together,
+ rather than to sort them by vendor.
+
+ The ``productName`` subfield may describe a NF or a NFC. Where NFC names
+ may be reused across different NF’s, they should be specified as:
+
+ ``{NfName}:{NfcName}``
+
+ where a colon is used to separate the ``NfName`` and ``NfcName`` subfields.
+ Note that the ``NfName`` and ``NfcName`` subfields must not include colons
+ themselves.
+
+ The ``productName`` may also describe other types of vendor modules or
+ components such as a VM, application or hostname. As with NFs and
+ NFCs, parent:child relationships may be communicated using colon as
+ a subfield delimiter.
+
+- Service providers who adopt the VES Common Event Format for internal
+ use, may provide PublisherName without the vendorName subfield. They
+ would typically identify an application, system, service or
+ microservice publishing the event (e.g., ‘Policy’, ‘So’,
+ ‘MobileCallRecording’ or ‘Dkat’). As with NFs and NFCs, parent:child
+ relationships may be communicated using colon as a subfield delimiter
+ (e.g., ApplicationName:ApplicationComponent).
+
+The final subfield of the eventName name should describe, in a compact
+camel case format the specific information being conveyed by the event.
+In some cases, this final subfield may not be required (e.g., in the
+case of certain heartbeats).
+
+Examples of event names following the naming standards are provided
+below:
+
+- ``Tca_Vdbe-Ericsson_CpuThresholdExceeded``
+
+- ``Heartbeat_Visbc:Mmc-Metaswitch``
+
+- ``Syslog_Vdbe-Ericsson``
+
+- ``Fault_MobileCallRecording_PilotNumberPoolExhaustion``
+
+- ``Other_So:WanBonding_InstantiationPart1Complete``
+
+.. _ves_eventid_usecases_7_2:
+
+EventId Use Cases Examples
+++++++++++++++++++++++++++
+
+``eventId`` Examples:
+
+**NOTE**: Please note, the following are only *examples*, and other formats
+can be used provided they meet the requirement that the ``eventId`` is unique
+for all events or unique fault occurrence.
+
+**Example 1**: assumes a unique key for each domain consisting of domain
+followed by an integer domain<n> or domainId<n>, where <n> is a positive integer,
+e.g. fault000001, heartbeat000001, measurement000005,
+notification3gppPerfFileReady0005
+
+**Example 2**: assumes a unique integer key for all events across all domains
+<n>: 000000001, 00000002, 000000003
+
+Rules:
+
+1. All domains except Fault: each time a subsequent event is sent the
+ integer part of eventId will increment by 1. Repeat of eventId
+ assumes duplicate event. Sequence number is set to 0 for all domains
+ except fault.
+
+2. eventId construction for Fault Events:
+
+ a. Most likely scenario
+
+ * The sourceName on each Fault event is the NF Instance Name
+ (pnf-name or vnf-name or vm-name) as entered in A&AI uniquely
+ identifying this instance of the NF.
+
+ * The eventId on Fault events is the same every time a given
+ fault is raised (including onset and re-raise)
+
+ 1. The startEpochMicrosec value for the Fault event is the
+ timestamp for when the fault onset occurs. Subsequent
+ events for the same fault will keep the same startEpochMicrosec
+ value.
+
+ 2. lastEpochMicrosec indicates the current event time. This value
+ will be updated for each subsequent event for a given fault.
+
+ 3. The sequence number for each Fault event is set to 1 when the
+ fault is raised and increments each time the same
+ fault event is raised, until a clear is sent.
+
+ * After the fault is cleared, a new eventId is used.
+
+ .. image:: Use-Case-1.png
+
+ b. **Alternative Scenario**: Network Function When Fault Event Status is Not
+ Maintained.
+
+ * The sourceName on each Fault event is the NF Instance Name
+ (pnf-name or vnf-name or vm-name) as entered in A&AI uniquely
+ identifying this instance of the NF.
+
+ * The eventId on Fault events is the same every time a given
+ fault is raised or cleared, even if it is re-raised after it
+ had previously cleared. So, for example, if EMS loses
+ contact with a particular device then a Fault event might be
+ sent for a raise, re-raise (because EMS has re-tried and
+ still can’t contact the device), clear (because EMS has
+ re-tried and it can contact the device) and then raise again
+ (because EMS has lost contact with the device again). The
+ same eventId is used for all 4 of those Fault events.
+
+ * The startEpochMicrosec value for each Fault event is the
+ timestamp for when that event is generated, not when the
+ fault first occurred. So all 4 of the Fault events in the
+ previous bullet point would have a different timestamp.
+
+ * lastEpochMicrosec indicates the current event time.
+
+ * The sequence number for each Fault event is currently set to
+ 0 on a raise and 1 on a clear. We could change that so that
+ each Fault event is given a new monotonically increasing
+ sequence number whether it is a raise or a clear if that is
+ helpful (which is reset to 0 if the VM restarts) but they
+ won’t be consecutive.
+
+ * Normally, a clear is expected for each fault to be sent from a
+ network function. However a few fault notification types will never
+ be re-raised or cleared. In this case, general rules for VES events
+ shall be followed with a new eventId for each event and sequence
+ number set to 0.
+
+ .. image:: Use-Case-2.png
-The internalHeaderFields datatype is an undefined object which can
-contain arbitrarily complex JSON structures. It is intended to be
-defined separately by each service provider (e.g., AT&T) implementing
-the VES Event Listener. The fields in internalHeaderFields are not
-provided by any event source but instead are added by the VES Event
-Listener service itself as part of an event enrichment process necessary
-for efficient internal processing of events received by the VES Event
-Listener.
Technology Independent Datatypes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Datatype: measurementFields
****************************
-The measurementFields datatype consists of the following fields:
+The ``measurementFields`` datatype consists of the following fields:
+-------------+--------------+----------+-------------------------------------+
| Field | Type | Required?| Description |
| | | | measurementInterval |
+-------------+--------------+----------+-------------------------------------+
+
+Note on Measurement Expansion Fields
+""""""""""""""""""""""""""""""""""""
+
+The ``measurementFields`` data type provides fields that can be used to
+pass additional data with the event. These fields are listed below and
+referred to as expansion fields:
+
+* ``additionalFields``
+* ``additionalObjects``
+* ``additionalMeasurements``
+
+When expansion fields are used, the goal is to avoid custom development
+by the service provider collecting the fields, since custom development
+adds obvious cost, delay and resource overhead. In the domain of
+measurements, it is expected that a high percentage of use cases for
+extensible fields can be satisfied by using the ``additionalMeasurements``
+``arrayOfNamedHashMap`` data structure in combination with a YAML registration
+file (provided at design time). The YAML registration file conveys
+metadata about the processing of ``additionalMeasurements``. For more
+information, please see the VES Event Registration specification and in
+particular the ``aggregationRole``, ``castTo``, and ``isHomogeneous`` keywords.
+
Datatype: memoryUsage
**********************
| | | | to use. |
+--------------+-------------+----------+-------------------------------------+
+
+RESTful Web Services Definition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Security
+~~~~~~~~
+
+Event sources must identify themselves to the VES Event Listener.
+
+There are 2 methods of HTTP authentication supported: Certificate Authentication
+and Basic Authentication.
+
+Basic authentication is supported in VES Event Listener for backward
+compatibility for existing NFs that are already managed by ONAP. New NFs should
+support Certificate Authentication. Because the security is better, NFs may
+choose to only support Certificate Authentication and not support Basic
+Authentication.
+
+Basic Authentication
+++++++++++++++++++++
+
+When using Basic Authentication, the event source must not pass credentials on
+the query string. Credentials must be sent in an Authorization header as
+follows:
+
+1. The username and password are formed into one string as
+ ``username:password``
+2. The resulting string is Base64 encoded to produce the encoded credential.
+3. The encoded credential is communicated in the header after the string
+ ``Authorization: Basic``
+
+Because the credentials are merely encoded but not encrypted, HTTPS (rather
+than HTTP) should be used. HTTPS will also encrypt and protect event contents.
+
+Sample Request and Response
++++++++++++++++++++++++++++
+
+Sample Request
+**************
+
+.. code-block:: http
+
+ POST /eventListener/v7 HTTP/1.1
+ Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
+ content-type: application/json
+ content-length: 12345
+ {
+ "event": {
+ "commonEventHeader": {
+ "version": "4.1",
+ "vesEventListenerVersion": "7.2",
+ "domain": "heartbeat",
+ "eventName": "Heartbeat_vIsbcMmc",
+ "eventId": "heartbeat0000249",
+ "sequence": 0,
+ "priority": "Normal",
+ "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+ "reportingEntityName": "ibcx0001vm002oam001",
+ "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+ "sourceName": "ibcx0001vm002ssc001",
+ "nfVendorName": "Ericsson",
+ "nfNamingCode": "ibcx",
+ "nfcNamingCode": "ssc",
+ "startEpochMicrosec": 1413378172000000,
+ "lastEpochMicrosec": 1413378172000000,
+ "timeZoneOffset": "UTC-05:30"
+ }
+ }
+ }
+
+
+Sample Success Response
+***********************
+
+.. code-block:: http
+
+ HTTPS/1.1 202 Accepted
+ X-MinorVersion: 2
+ X-PatchVersion: 0
+ X-LatestVersion: 7.2
+
+
+Mutual TLS Certificate Authentication
++++++++++++++++++++++++++++++++++++++
+
+When using Certificate Authentication, the event source must initialize the
+HTTPS connection with TLS 1.2 or higher and execute mutual authentication
+procedures according to `RFC5246 <https://tools.ietf.org/html/rfc5246#section-7.4.6>`__.
+The event source must authenticate the VES Listener certificate and must
+provide its own X.509v3 end-entity certificate to the VES Listener for
+authentication. The Subject Name in the end-entity certificate must be used
+according to `RFC5280 <https://www.ietf.org/rfc/rfc5280.txt>`__. If a
+certificate is provided by the NF but it is invalid, the VES Listener is
+expected to reject the connection and not fall back to basic authentication.
+
+Resource Structure
+~~~~~~~~~~~~~~~~~~
+
+REST resources are defined with respect to a ServerRoot:
+
+ServerRoot = https://{Domain|IP}:{Port}/{optionalRoutingPath}
+
+The resource structure is provided below::
+
+ {ServerRoot}
+ |
+ |--- /eventListener/v{apiVersion}
+ |
+ |--- /eventBatch
+
+**Figure 1**: REST Resource Structure
+
Exceptions
-^^^^^^^^^^^
+~~~~~~~~~~
RESTful Web Services Exceptions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++++++++++++++++++++++++++++++++
RESTful services generate and send exceptions to clients in response to
invocation errors. Exceptions send HTTP status codes (specified later in
+-----------+---------------+-------------+-----------------------------------+
Service Exceptions
-~~~~~~~~~~~~~~~~~~~
+++++++++++++++++++
- When a service is not able to process a request, and retrying the
- request with the same information will also result in a failure, and
- the issue is not related to a service policy issue, then the service
- will issue a fault using the service exception fault message.
- Examples of service exceptions include invalid input, lack of
- availability of a required resource or a processing error.
+When a service is not able to process a request, and retrying the
+request with the same information will also result in a failure, and
+the issue is not related to a service policy issue, then the service
+will issue a fault using the service exception fault message.
+Examples of service exceptions include invalid input, lack of
+availability of a required resource or a processing error.
- A service exception uses the letters 'SVC' at the beginning of the
- message identifier. ‘SVC’ service exceptions used by the VES Event
- Listener API are defined below.
+A service exception uses the letters 'SVC' at the beginning of the
+message identifier. ‘SVC’ service exceptions used by the VES Event
+Listener API are defined below.
+----------+--------------+-----------------------+----------------+----------+
| MessageId| Description | Text | Variables | Parent |
| | | Error code is %2. | %2: error code | |
+----------+--------------+-----------------------+----------------+----------+
- Table - Service Exceptions
+Table - Service Exceptions
Policy Exceptions
-~~~~~~~~~~~~~~~~~~
++++++++++++++++++
- When a service is not able to complete because the request fails to
- meet a policy criteria, then the service will issue a fault using the
- policy exception fault message. To clarify how a policy exception
- differs from a service exception, consider that all the input to an
- operation may be valid as meeting the required input for the
- operation (thus no service exception), but using that input in the
- execution of the service may result in conditions that require the
- service not to complete. Examples of policy exceptions include
- privacy violations, requests not permitted under a governing service
- agreement or input content not acceptable to the service provider.
-
- A Policy Exception uses the letters 'POL' at the beginning of the
- message identifier. ‘POL’ policy exceptions used by the VES Event
- Listener API are defined below.
+When a service is not able to complete because the request fails to
+meet a policy criteria, then the service will issue a fault using the
+policy exception fault message. To clarify how a policy exception
+differs from a service exception, consider that all the input to an
+operation may be valid as meeting the required input for the
+operation (thus no service exception), but using that input in the
+execution of the service may result in conditions that require the
+service not to complete. Examples of policy exceptions include
+privacy violations, requests not permitted under a governing service
+agreement or input content not acceptable to the service provider.
+
+A Policy Exception uses the letters 'POL' at the beginning of the
+message identifier. ‘POL’ policy exceptions used by the VES Event
+Listener API are defined below.
+----------+---------------+-----------------------+---------------+----------+
| MessageId| Description |Text | Variables | Parent |
| | | limit | | |
+----------+---------------+-----------------------+---------------+----------+
- Table - Policy Exceptions
-
-RESTful Web Services Definition
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Table - Policy Exceptions
REST Operation Overview
~~~~~~~~~~~~~~~~~~~~~~~~~
to all requests. Additionally, clients may populate these headers on
requests to indicate the specific version they are interested in.
-- X-MinorVersion: 1
+- X-MinorVersion: 2
-- X-PatchVersion: 1
+- X-PatchVersion: 0
-- X-LatestVersion: 7.1
+- X-LatestVersion: 7.2
If a client requests major version 7 (per the REST resource URL) and
does not specify the above headers, then they will be provided with the
request major version 7 with X-MinorVersion: 1, they will get the latest
patch version of 7.1, which is 7.1.1.
-Buffering of Events
-+++++++++++++++++++
-
-``{ServerRoot}`` is defined in section 3 of this document, which defines the
-REST resource URL. One or more FQDNs may be provisioned in an event source
-when it is instantiated or updated. If an event source is unable to reach any
-of the provisioned FQDNs, it should buffer the event data specified below, up
-to a maximum of 1 hour, and re-transmit them once a connection has been
-established.
-
-The following events should be buffered:
-
-* Faults with eventSeverity of ``MINOR``, ``MAJOR``, ``NORMAL``, or ``CRITICAL``
- with following expected behavior:
-
- * NF keeps a First-In-First-Out buffer.
- * Until the collectors are working again, it is desired that the NF sends
- the final state events only, and not intermediate ones. However, it is
- acceptable to buffer all events and send them over to the collector in
- the same order in which they were generated/received.
-
-* When one VES Event Listener connectivity is re-established, NF should first
- send the buffered events and then start sending the new events.
-
- * Syslog with syslogSev of ``Emergency``, ``Alert``, ``Critical``,
- ``Error``, or ``Warning``
-
-* All measurements events
-
-publishEventBatch Requirements
-******************************
-
-Buffered events can be sent in batch using ``publishEventBatch``. However, a
-NF vendor must only include multiple events for the same domain in the
-``publishEventBatch``. The ``publishEventBatch`` event must also conform to
-event size limits.
-
-``publishEventBatch`` events are handled similarly to a single event. The
-acknowledgement from the VES Event Listener is for the ``publishEventBatch`` and
-not individual events within the ``publishEventBatch``.
-
-Debug Mode
-**********
-
-NFs acting as event sources should not send syslog events to the
-VES Event Listener during debug mode, but should store syslog events locally
-for access, and possible FTP transfer, via the NF console (e.g., command line
-interface).
-
-.. _msg-size:
+.. _ves_msg_size_7_2:
Message Size
++++++++++++
The maximum allowed message size is 2 megabytes of uncompressed text.
-However,messages of this size have been known to cause performance and data
-loss. It is strongly recommended,that messages not exceed 1 megabyte.
+However, messages of this size have been known to cause performance and data
+loss. It is strongly recommended, that messages not exceed 1 megabyte.
In a future version of the specification, a 1 megabyte limit will become
a mandatory requirement.
| | | | message shall be returned. |
+---------------+----------+----------+---------------------------------------+
| Content-length| integer | No | Note that content length is limited to|
-| | | | 2 Megabyte (see :ref:`msg-size`) |
+| | | | 2 Megabyte |
+| | | | (see :ref:`ves_msg_size_7_2`) |
+---------------+----------+----------+---------------------------------------+
| Content-type | string | Yes | Must be set to one of the following |
| | | | values: |
"event": {
"commonEventHeader": {
"version": "4.1",
- "vesEventListenerVersion": "7.1.1",
+ "vesEventListenerVersion": "7.2",
"domain": "fault",
"eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
"eventId": "fault0000245",
.. code-block:: http
HTTPS/1.1 202 Accepted
- X-MinorVersion: 1
- X-PatchVersion: 1
- X-LatestVersion: 7.1.1
+ X-MinorVersion: 2
+ X-PatchVersion: 0
+ X-LatestVersion: 7.2
Sample Error Responses
************************
Date: Thu, 04 Jun 2009 02:51:59 GMT
X-MinorVersion: 1
X-PatchVersion: 1
- X-LatestVersion: 7.1.1
+ X-LatestVersion: 7.2
{
"requestError": {
Date: Thu, 04 Jun 2009 02:51:59 GMT
X-MinorVersion: 1
X-PatchVersion: 1
- X-LatestVersion: 7.1.1
+ X-LatestVersion: 7.2
{
"requestError": {
- Provides HTTP response codes as well as Service and Policy error
messages
+``publishEventBatch`` events are handled similarly to a single event. The
+acknowledgement from the VES Event Listener is for the ``publishEventBatch`` and
+not individual events within the ``publishEventBatch``.
+
Call Flow
+++++++++++
| | | | returned. |
+---------------+----------+----------+---------------------------------------+
| Content-length| integer | No | Note that content length is limited to|
-| | | | 2 megabyte (see :ref:`msg-size`). |
+| | | | 2 megabyte |
+| | | | (see :ref:`ves_msg_size_7_2`). |
+---------------+----------+----------+---------------------------------------+
| Content-type | string | Yes | Must be set to one of the following |
| | | | values: |
| **Parameter**| **Data Type**| **Required?**| **Brief description** |
+--------------+--------------+--------------+-------------------------------+
| eventList | eventList | Yes | Array of events conforming to |
-| | | | the common event format. |
+| | | | the common event format. All |
+| | | | events must belong to a |
+| | | | single domain. |
+--------------+--------------+--------------+-------------------------------+
Output Parameters
{
"commonEventHeader": {
"version": "4.1",
- "vesEventListenerVersion": "7.1.1",
+ "vesEventListenerVersion": "7.2",
"domain": "fault",
"eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
"eventId": "fault0000250",
{
"commonEventHeader": {
"version": "4.1",
- "vesEventListenerVersion": "7.1.1",
+ "vesEventListenerVersion": "7.2",
"domain": "fault",
"eventName": " Fault_Vscf:Acs-Ericcson_RecordingServerUnreachable",
"eventId": "fault0000251",
.. code-block:: http
HTTPS/1.1 202 Accepted
- X-MinorVersion: 1
- X-PatchVersion: 1
- X-LatestVersion: 7.1.1
+ X-MinorVersion: 2
+ X-PatchVersion: 0
+ X-LatestVersion: 7.2
Sample Error Responses
************************
content-type: application/json
content-length: 12345
Date: Thu, 04 Jun 2009 02:51:59 GMT
- X-MinorVersion: 1
- X-PatchVersion: 1
- X-LatestVersion: 7.1.1
+ X-MinorVersion: 2
+ X-PatchVersion: 0
+ X-LatestVersion: 7.2
{
"requestError": {
content-type: application/json
content-length: 12345
Date: Thu, 04 Jun 2009 02:51:59 GMT
- X-MinorVersion: 1
- X-PatchVersion: 1
- X-LatestVersion: 7.1.1
+ X-MinorVersion: 2
+ X-PatchVersion: 0
+ X-LatestVersion: 7.2
{
"requestError": {
**APPC (formerly APP-C)**. Application Controller. Handles the life
cycle management of Virtual Network Functions (VNFs).
-**ASDC**. AT&T Service Design and Creation Platform: the original name
-for the SDC. Replaced by SDC.
-
**Common Event Format**. A JSON schema describing events sent to the VES
Event Listener.
‘keyName’, ‘value’: ‘keyValue’} was replaced with {‘keyName’:
‘keyValue’}).
-**ICE**. Incubation and Certification Environment. Facilitates vendors
-and third-party in developing virtual network functions using ONAP and a
-network cloud.
-
**IPMI**. The `Intelligent Platform Management
Interface <https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface>`__.
| | | - Changed the location of the doc to VNF |
| | | Requirements and changed the formatting |
+-----------+---------+-------------------------------------------------------+
-| 1/28/202 | v7.1.1 | - Changed event sizes from 2Mb to 1Mb |
+| 1/28/2020 | v7.1.1 | - Changed event sizes from 2Mb to 1Mb |
| | | - Configuration Requirement comments addressed |
| | | - Changed DCAE Collector to VES Event Listener |
| | | - Replaced VNF with NF where appropriate |
| | | - Relaxed various requirements related to camel |
| | | casing of values from 'must' to 'should' |
+-----------+---------+-------------------------------------------------------+
+| 5/27/2020 | v7.2 | - Re-organized sections to flow more logically |
+| | | - Moved NF requirements to VNF Requirements |
+| | | - Changed DCAE Collector to VES Event Listener |
++-----------+---------+-------------------------------------------------------+
.. _time_zone_abbreviations: https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations
.. _Common_definitions: http://technical.openmobilealliance.org/Technical/release_program/docs/REST_NetAPI_Common/V1_0-20120417-C/OMA-TS-REST_NetAPI_Common-V1_0-20120417-C.pdf