On Thu, Dec 08, 2022 at 11:55:16AM +0100, Morten Brørup wrote: > +To: Bruce and Stephen might also have opinions on this. > > > From: Huisong Li [mailto:lihuis...@huawei.com] > > Sent: Thursday, 8 December 2022 09.06 > > > > The 'dev_flags', 'rx_offloads', 'tx_offloads' and 'rss_hf' are suitable > > for hexadecimal display. > > > > Like: > > -->old display by input /ethdev/info,0 > > "dev_flags": 3, > > "rx_offloads": 524288, > > "tx_offloads": 65536, > > "ethdev_rss_hf": 9100 > > > > --> now display > > "dev_flags": "0x3", > > "rx_offloads": "0x80000", > > "tx_offloads": "0x10000", > > "ethdev_rss_hf": "0x238c" > > This is certainly good for human consumption, but perhaps not for machine > consumption (where a number type is more appropriate than a string type). > > Unfortunately, the JSON format [RFC7159] does not allow hexadecimal numbers, > so hexadecimal values (if supported) have to be passed as strings. > > [RFC7159]: https://www.rfc-editor.org/rfc/rfc7159 > > This leaves us with the key question: > > Do we want to provide integer values like these as hexadecimal encoded > strings? > > If we do, then the telemetry library should provide the functions to do it, > rather than doing it here (and everywhere else, where relevant). >
My initial thought was "no, we shouldn't do that, and just treat numbers as numbers", and let the end-user display software worry about formatting it correctly. However, I have since changed my mind, in that: * Although these are numbers, they are not used for computation, or comparison * Having them as strings makes them more useful for "dumb-client" connections, like that of the telemetry script in DPDK * If display software is aware of the significance of these values and does want to do additional parsing of the flags, e.g. to map them to named flags, converting a string back to a number is not a difficult task. * These values are not changing between polls, so any convertion/processing of the flags to be done before display only needs to be done once (except in very rare circumstances of a port reconfiguration) So overall, I would tend to agree with your proposal, in that it would be good for telemetry lib to provide this functionality. Regards, /Bruce