summaryrefslogtreecommitdiffstats
path: root/docs/sections/apis/ves-hv/supported-domains.rst
blob: 68d5d226d72d84982936b2990659ac884b6da90d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

.. _domains_supported_by_hvves:

Domains supported by HV-VES
===========================

.. _perf3gpp:

perf3gpp domain - delivery of equipment Performance Monitoring (PM) data, based on 3GPP specifications
------------------------------------------------------------------------------------------------------
The purpose of the **perf3gpp** domain is frequent periodic delivery of structured RAN PM data commonly referred to as Real Time PM (RTPM). The equipment sends an event right after collecting the PM data for a granularity period.

The characteristics of each event in the **perf3gpp** domain:

- Single measured entity, for example, BTS
- Single granularity period (collection *begin time* and *duration*)
- Optional top-level grouping in one or more PM groups
- Grouping in one or more measured objects, for example, cells
- One or more reported PM values for each measured object

Due to the single granularity period per event, single equipment supporting multiple concurrent granularity periods might send more than one event at a given reporting time.

The **perf3gpp** domain is based on 3GPP specifications:


- `3GPP TS 28.550 <http://www.3gpp.org/ftp//Specs/archive/28_series/28.550/>`_

- `3GPP TS 32.431 <http://www.3gpp.org/ftp//Specs/archive/32_series/32.431/>`_

- `3GPP TS 32.436 <http://www.3gpp.org/ftp//Specs/archive/32_series/32.436/>`_

The event structure is changed in comparison to the one presented in 3GPP technical specifications. The 3GPP structure is enhanced to provide support for efficient transport.

Definitions for the **perf3gpp** domain are stored in Perf3gppFields.proto and MeasDataCollection.proto, listed below:

.. literalinclude:: Perf3gppFields.proto
    :language: protobuf

.. literalinclude:: MeasDataCollection.proto
    :language: protobuf

Selecting Complimentary fields for population of **perf3gpp** event
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Context: at the upper level, *VesEvent.eventFields* is an opaque bytes field, and in the case of the **perf3gpp** domain (that is VesEvent.commonEventHeader.domain=="Perf3gpp"), *eventFields* maps to a structure defined by *Perf3gppFields*.

*Perf3gppFields* contains two main sub-structures:

  - *eventAddlFlds*: the usual optional VES per-event data (*HashMap*, name/value pairs)
  - *measDataCollection*: the actual payload, based on 3GPP specifications, but modified in order to optionaly reduce the size of the event

Usage of *measDataCollection*:

 The *measDataCollection* structure offers flexibility in the way an equipment provides the Performance Monitoring (PM) data.
 The following table gives an outline of the two main options:

- Following 3GPP standard as closely as possible
- Reducing the message size

Each row of the table corresponds to one field where a choice is to be made. For each main option it describes whether an optional field is relevant or not, or which subfield to provide for a "oneof" GPB field.

  +----------------------------+----------+-----------------------------+-----------------------------+----------+
  |                            |          | Focus 1: 3GPP compatibility | Focus 2: Minimum event size |          |
  | *MeasDataCollection* field | Type     | (send textual IDs)          | (send numerical IDs)        | Notes    |
  +============================+==========+=============================+=============================+==========+
  | MeasData.measObjInstIdList | optional | <not provided>              | <mandatory>                 | [1]_     |
  +----------------------------+----------+-----------------------------+-----------------------------+----------+
  | MeasValue.MeasObjInstId    | oneof    | sMeasObjInstId              | measObjInstIdListIdx        | [1]_     |
  +----------------------------+----------+-----------------------------+-----------------------------+----------+
  | MeasInfo.MeasInfoId        | oneof    | sMeasInfoId                 | iMeasInfoId                 | [2]_     |
  +----------------------------+----------+-----------------------------+-----------------------------+----------+
  | MeasInfo.MeasTypes         | oneof    | sMeasTypes                  | iMeasTypes                  | [2]_     |
  +----------------------------+----------+-----------------------------+-----------------------------+----------+
  | Notes:                                                                                                       |
  |   .. [1] *MeasData.measObjInstIdList* and *MeasValue.MeasObjInstId.measObjInstIdListIdx* are interdependent  |
  |   .. [2] Numerical IDs normally require the mapping to textual IDs to be provided offline in a PM dictionary |
  |                                                                                                              |
  +----------------------------+----------+-----------------------------+-----------------------------+----------+

.. note:: The division between focus 1 and focus 2 above is illustrative, and a mix of choices from both options is possible.

.. note:: *MeasResult.p* can be used to reduce the event size when more than half of the values in the event are zero values, and these values are not sent to ONAP. Only non-zero values are sent, together with their *MeasInfo.MeasTypes* index (*MeasResult.p*).