telemetry: support array values in data object
authorCiara Power <ciara.power@intel.com>
Wed, 23 Sep 2020 11:12:26 +0000 (12:12 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 6 Oct 2020 20:55:00 +0000 (22:55 +0200)
commitc933bb5177cac5fbf4533e357d466cff1f3e6c97
tree5b549e5fd89a796d95e4b806041aa262c2f41f8c
parent5514319e7b437a6a252e84d7d67d728f3082cd97
telemetry: support array values in data object

Arrays of type uint64_t/int/string can now be included within an array
or dict. One level of embedded containers is supported. This is
necessary to allow for instances such as the ethdev queue stats to be
reported as a list of uint64_t values, rather than having multiple dict
entries with one uint64_t value for each queue stat.

The memory management APIs provided by telemetry simplify the memory
allocation/free aspect of the embedded container. The rte_tel_data_alloc
function is called in the library/app callback to return a pointer to a
container that has been allocated memory. When adding this container
to an array/dict, a parameter is passed to indicate if the memory
should be freed by telemetry after use. This will allow reuse of the
allocated memory if the library/app wishes to do so.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_telemetry/rte_telemetry.h
lib/librte_telemetry/rte_telemetry_version.map
lib/librte_telemetry/telemetry.c
lib/librte_telemetry/telemetry_data.c
lib/librte_telemetry/telemetry_data.h
lib/librte_telemetry/telemetry_json.h