All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Jiri Pirko <jiri@resnulli.us>
Cc: Aya Levin <ayal@mellanox.com>, David Ahern <dsahern@gmail.com>,
	netdev@vger.kernel.org, Jiri Pirko <jiri@mellanox.com>,
	Moshe Shemesh <moshe@mellanox.com>,
	Eran Ben Elisha <eranbe@mellanox.com>
Subject: Re: [PATCH v2 iproute2-next 04/11] devlink: Add helper functions for name and value separately
Date: Fri, 22 Feb 2019 10:01:25 -0800	[thread overview]
Message-ID: <20190222100125.20d8dd54@shemminger-XPS-13-9360> (raw)
In-Reply-To: <20190222085832.GA2254@nanopsycho>

On Fri, 22 Feb 2019 09:58:32 +0100
Jiri Pirko <jiri@resnulli.us> wrote:

> Thu, Feb 21, 2019 at 07:02:11PM CET, stephen@networkplumber.org wrote:
> >On Thu, 21 Feb 2019 15:42:40 +0200
> >Aya Levin <ayal@mellanox.com> wrote:
> >  
> >> Add a new helper functions which outputs only values (without name
> >> label) for different types: boolean, uint, uint64, string and binary.
> >> In addition add a helper function which prints only the name label.
> >> 
> >> Signed-off-by: Aya Levin <ayal@mellanox.com>
> >> Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
> >> ---
> >>  devlink/devlink.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>  1 file changed, 65 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/devlink/devlink.c b/devlink/devlink.c
> >> index b073ae020d52..5d69c4f24f29 100644
> >> --- a/devlink/devlink.c
> >> +++ b/devlink/devlink.c
> >> @@ -1588,7 +1588,6 @@ static void pr_out_port_handle_end(struct dl *dl)
> >>  		pr_out("\n");
> >>  }
> >>  
> >> -
> >>  static void pr_out_str(struct dl *dl, const char *name, const char *val)
> >>  {
> >>  	if (dl->json_output) {
> >> @@ -1636,6 +1635,71 @@ static void pr_out_u64(struct dl *dl, const char *name, uint64_t val)
> >>  	}
> >>  }
> >>  
> >> +static void pr_out_bool_value(struct dl *dl, bool value)
> >> +{
> >> +	if (dl->json_output)
> >> +		jsonw_bool(dl->jw, value);
> >> +	else
> >> +		pr_out(" %s", value ? "true" : "false");
> >> +}
> >> +
> >> +static void pr_out_uint_value(struct dl *dl, unsigned int value)
> >> +{
> >> +	if (dl->json_output)
> >> +		jsonw_uint(dl->jw, value);
> >> +	else
> >> +		pr_out(" %u", value);
> >> +}
> >> +
> >> +static void pr_out_uint64_value(struct dl *dl, uint64_t value)
> >> +{
> >> +	if (dl->json_output)
> >> +		jsonw_u64(dl->jw, value);
> >> +	else
> >> +		pr_out(" %lu", value);
> >> +}
> >> +
> >> +static void pr_out_binary_value(struct dl *dl, uint8_t *data, uint32_t len)
> >> +{
> >> +	int i = 1;
> >> +
> >> +	if (dl->json_output)
> >> +		jsonw_start_array(dl->jw);
> >> +	else
> >> +		pr_out("\n");
> >> +
> >> +	while (i < len) {
> >> +		if (dl->json_output) {
> >> +			jsonw_printf(dl->jw, "%d", data[i]);
> >> +		} else {
> >> +			pr_out(" %02x", data[i]);
> >> +			if (!(i % 16))
> >> +				pr_out("\n");
> >> +		}
> >> +		i++;
> >> +	}
> >> +	if (dl->json_output)
> >> +		jsonw_end_array(dl->jw);
> >> +	else if ((i - 1) % 16)
> >> +		pr_out("\n");
> >> +}
> >> +
> >> +static void pr_out_str_value(struct dl *dl, const char *value)
> >> +{
> >> +	if (dl->json_output)
> >> +		jsonw_string(dl->jw, value);
> >> +	else
> >> +		pr_out(" %s", value);
> >> +}
> >> +
> >> +static void pr_out_name(struct dl *dl, const char *name)
> >> +{
> >> +	if (dl->json_output)
> >> +		jsonw_name(dl->jw, name);
> >> +	else
> >> +		pr_out(" %s:", name);
> >> +}
> >> +
> >>  static void pr_out_region_chunk_start(struct dl *dl, uint64_t addr)
> >>  {
> >>  	if (dl->json_output) {  
> >
> >NAK
> >
> >Please convert devlink to use existing iproute2 json_print infrasructure
> >rather than reinventing it.  
> 
> That requires whole devlink/devlink.c code change. Could this be done as
> a follow-up?

There is a tradeoff, if more code creeps in it is harder to do the code change.
Can you commit to a timeframe to convert the JSON support code?


  reply	other threads:[~2019-02-22 18:01 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-21 13:42 [PATCH v2 iproute2-next 00/11] Add support for devlink health Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 01/11] devlink: Refactor validation of finding required arguments Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 02/11] devlink: Fix print of uint64_t Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 03/11] devlink: Fix boolean JSON print Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 04/11] devlink: Add helper functions for name and value separately Aya Levin
2019-02-21 14:08   ` Jiri Pirko
2019-02-24  8:07     ` Aya Levin
2019-02-21 18:02   ` Stephen Hemminger
2019-02-22  8:58     ` Jiri Pirko
2019-02-22 18:01       ` Stephen Hemminger [this message]
2019-02-22 17:59         ` Jiri Pirko
2019-02-21 13:42 ` [PATCH v2 iproute2-next 05/11] devlink: Add devlink health show command Aya Levin
2019-02-21 14:25   ` Jiri Pirko
2019-02-21 13:42 ` [PATCH v2 iproute2-next 06/11] devlink: Add devlink health recover command Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 07/11] devlink: Add devlink health diagnose command Aya Levin
2019-02-21 14:28   ` Jiri Pirko
2019-02-21 13:42 ` [PATCH v2 iproute2-next 08/11] devlink: Add devlink health dump show command Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 09/11] devlink: Add devlink health dump clear command Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 10/11] devlink: Add devlink health set command Aya Levin
2019-02-21 13:42 ` [PATCH v2 iproute2-next 11/11] devlink: Add devlink-health man page Aya Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190222100125.20d8dd54@shemminger-XPS-13-9360 \
    --to=stephen@networkplumber.org \
    --cc=ayal@mellanox.com \
    --cc=dsahern@gmail.com \
    --cc=eranbe@mellanox.com \
    --cc=jiri@mellanox.com \
    --cc=jiri@resnulli.us \
    --cc=moshe@mellanox.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.