On Thu, Apr 23, 2020 at 11:24 PM Stephen Hemminger
<[email protected]> wrote:
>
> On Sat, 15 Feb 2020 01:40:27 +0800
> Xin Long <[email protected]> wrote:
>
> > On Sat, Feb 15, 2020 at 12:13 AM Stephen Hemminger
> > <[email protected]> wrote:
> > >
> > > On Fri, 14 Feb 2020 18:30:47 +0800
> > > Xin Long <[email protected]> wrote:
> > >
> > > > +
> > > > +     open_json_array(PRINT_JSON, name);
> > > > +     open_json_object(NULL);
> > > > +     print_uint(PRINT_JSON, "ver", NULL, ver);
> > > > +     print_uint(PRINT_JSON, "index", NULL, idx);
> > > > +     print_uint(PRINT_JSON, "dir", NULL, dir);
> > > > +     print_uint(PRINT_JSON, "hwid", NULL, hwid);
> > > > +     close_json_object();
> > > > +     close_json_array(PRINT_JSON, name);
> > > > +
> > > > +     print_nl();
> > > > +     print_string(PRINT_FP, name, "\t%s ", name);
> > > > +     sprintf(strbuf, "%02x:%08x:%02x:%02x", ver, idx, dir, hwid);
> > > > +     print_string(PRINT_FP, NULL, "%s ", strbuf);
> > > > +}
> > >
> > > Instead of having two sets of prints, is it possible to do this
> > >         print_nl();
> > >         print_string(PRINT_FP, NULL, "\t", NULL);
> > >
> > >         open_json_array(PRINT_ANY, name);
> > >         open_json_object(NULL);
> > >         print_0xhex(PRINT_ANY, "ver", " %02x", ver);
> > >         print_0xhex(PRINT_ANY, "idx", ":%08x", idx);
> > >         print_0xhex(PRINT_ANY, "dir", ":%02x", dir);
> > >         print_0xhex(PRINT_ANY, "hwid", ":%02x", hwid)
> > >         close_json_object();
> > >         close_json_array(PRINT_ANY, " ");
> > Hi Stephen,
> >
> > This's not gonna work. as the output will be:
> > {"ver":"0x2","idx":"0","dir":"0x1","hwid":"0x2"}  (string)
> > instead of
> > {"ver":2,"index":0,"dir":1,"hwid":2} (number)
> >
> > >
> > > Also, you seem to not hear the request to not use opaque hex values
> > > in the iproute2 interface. The version, index, etc should be distinct
> > > parameter values not a hex string.
> > The opts STRING, especially these like "XX:YY:ZZ" are represented
> > as hex string on both adding and dumping. It is to keep consistent with
> > geneve_opts in m_tunnel_key and f_flower,  see
>
> There are several different requests.
>
>  1. The format of the output must match the input.
>  2. Printing values in hex would be nice if they are bit fields
>  3. If non json uses hex, then json should use hex
>     json is type less so { "ver":2 } and { "ver":"0x2" } are the same
>
V4 has been posted, with respect to these 3 rules.
And all numbers are in uint type, no problems about { "ver":2 } and {
"ver":"0x2" } things.

Thanks.

Reply via email to