[PATCH] telemetry: correct json empty dictionaries

Power, Ciara ciara.power at intel.com
Fri Jan 19 10:56:23 CET 2024



> -----Original Message-----
> From: Jonathan Erb <jonathan.erb at threater.com>
> Sent: Thursday, January 18, 2024 5:26 PM
> To: Power, Ciara <ciara.power at intel.com>
> Cc: dev at dpdk.org; Richardson, Bruce <bruce.richardson at intel.com>;
> Jonathan Erb <jonathan.erb at threater.com>
> Subject: [PATCH] telemetry: correct json empty dictionaries
> 
> Fix to allow telemetry to handle empty dictionaries correctly.
> 
> This patch resolves an issue where empty dictionaries are reported by
> telemetry as '[]' rather than '{}'. Initializing the output buffer based on the
> container type resolves the issue.
> 
> Signed-off-by: Jonathan Erb <jonathan.erb at threater.com>
> ---
>  .mailmap                  | 2 +-
>  lib/telemetry/telemetry.c | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/.mailmap b/.mailmap
> index ab0742a382..a6b66ab3ad 100644
> --- a/.mailmap
> +++ b/.mailmap
> @@ -675,7 +675,7 @@ John Ousterhout <ouster at cs.stanford.edu>  John
> Romein <romein at astron.nl>  John W. Linville <linville at tuxdriver.com>  Jonas
> Pfefferle <jpf at zurich.ibm.com> <pepperjo at japf.ch> -Jonathan Erb
> <jonathan.erb at threatblockr.com> <jonathan.erb at banduracyber.com>
> +Jonathan Erb <jonathan.erb at threater.com>
> +<jonathan.erb at threatblockr.com> <jonathan.erb at banduracyber.com>
>  Jonathan Tsai <jonathan1.tsai at intel.com>  Jon DeVree <nuxi at vault24.org>
> Jon Loeliger <jdl at netgate.com> diff --git a/lib/telemetry/telemetry.c
> b/lib/telemetry/telemetry.c index 92982842a8..eef4ac7bb7 100644
> --- a/lib/telemetry/telemetry.c
> +++ b/lib/telemetry/telemetry.c
> @@ -169,7 +169,11 @@ container_to_json(const struct rte_tel_data *d, char
> *out_buf, size_t buf_len)
>  		d->type != TEL_ARRAY_INT && d->type !=
> TEL_ARRAY_STRING)
>  		return snprintf(out_buf, buf_len, "null");
> 
> -	used = rte_tel_json_empty_array(out_buf, buf_len, 0);
> +	if (d->type == TEL_DICT)
> +		used = rte_tel_json_empty_obj(out_buf, buf_len, 0);
> +	else
> +		used = rte_tel_json_empty_array(out_buf, buf_len, 0);
> +
>  	if (d->type == TEL_ARRAY_UINT)
>  		for (i = 0; i < d->data_len; i++)
>  			used = rte_tel_json_add_array_uint(out_buf,
> --
> 2.34.1

Acked-by: Ciara Power <ciara.power at intel.com>



More information about the dev mailing list