iproute2/lib
Petr Machata adbe5de966 lib: Move sprint_size() from tc here, add print_size()
When displaying sizes of various sorts, tc commonly uses the function
sprint_size() to format the size into a buffer as a human-readable string.
This string is then displayed either using print_string(), or in some code
even fprintf(). As a result, a typical sequence of code when formatting a
size is something like the following:

	SPRINT_BUF(b);
	print_uint(PRINT_JSON, "foo", NULL, foo);
	print_string(PRINT_FP, NULL, "foo %s ", sprint_size(foo, b));

For a concept as broadly useful as size, it would be better to have a
dedicated function in json_print.

To that end, move sprint_size() from tc_util to json_print. Add helpers
print_size() and print_color_size() that wrap arount sprint_size() and
provide the JSON dispatch as appropriate.

Since print_size() should be the preferred interface, convert vast majority
of uses of sprint_size() to print_size(). Two notable exceptions are:

- q_tbf, which does not show the size as such, but uses the string
  "$human_readable_size/$cell_size" even in JSON. There is simply no way to
  have print_size() emit the same text, because print_size() in JSON mode
  should of course just use the raw number, without human-readable frills.

- q_cake, which relies on the existence of sprint_size() in its macro-based
  formatting helpers. There might be ways to convert this particular case,
  but given q_tbf simply cannot be converted, leave it as is.

Signed-off-by: Petr Machata <me@pmachata.org>
Signed-off-by: David Ahern <dsahern@gmail.com>
2020-12-09 02:30:25 +00:00
..
Makefile Only compile mnl_utils when HAVE_MNL is defined 2020-12-04 16:19:05 +00:00
bpf_glue.c lib: make ipvrf able to use libbpf and fix function name conflicts 2020-11-24 22:14:04 -07:00
bpf_legacy.c lib: add libbpf support 2020-11-24 22:14:05 -07:00
bpf_libbpf.c lib: add libbpf support 2020-11-24 22:14:05 -07:00
cg_map.c lib: ignore invalid mounts in cg_init_map 2020-10-11 23:02:35 -07:00
color.c lib/color: make local functions static 2018-11-19 11:42:44 -08:00
coverity_model.c scrub out whitespace issues 2016-03-27 10:50:14 -07:00
exec.c netns: switch netns in the child when executing commands 2019-06-20 14:30:41 -07:00
fs.c lib: fix checking of returned file handle size for cgroup 2020-07-06 11:05:54 -07:00
inet_proto.c ip: add a new parameter -Numeric 2019-06-18 08:37:47 -07:00
json_print.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
json_writer.c json: fix backslash escape typo in jsonw_puts 2019-07-19 10:48:38 -07:00
libgenl.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
libnetlink.c libnetlink: define __aligned conditionally 2020-10-28 10:24:02 -07:00
ll_addr.c lib/ll_addr: whitespace and indent cleanup 2018-11-19 11:42:44 -08:00
ll_map.c ip: allow to use alternative names as handle 2019-10-28 07:35:29 -07:00
ll_proto.c m_mpls: add mac_push action 2020-10-20 08:57:08 -06:00
ll_types.c ip: add a new parameter -Numeric 2019-06-18 08:37:47 -07:00
mnl_utils.c lib: Extract from devlink/mnlg a helper, mnlu_socket_recv_run() 2020-11-13 19:43:15 -07:00
mpls_ntop.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
mpls_pton.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
names.c tc: drop unused name_to_id function 2018-11-19 11:42:44 -08:00
namespace.c netns: make netns_{save,restore} static 2019-06-20 14:30:41 -07:00
rt_names.c iplink: add support for protodown reason 2020-09-01 19:52:13 -06:00
utils.c lib: parse_mapping: Recognize a keyword "all" 2020-11-13 19:43:15 -07:00