The DCB tool will have commands that deal with buffers sizes and traffic rates. TC is another tool that has a number of such commands, and functions to support them: get_size(), get_rate/64(), s/print_size() and s/print_rate(). In this patchset, these functions are moved to lib/ for possible reuse.
s/print_rate() has a hidden parameter of a global variable use_iec, which made the conversion non-trivial. The parameter was made explicit, print_rate() converted to a mostly json_print-like function, and sprint_rate() retired in favor of the new print_rate. Patches #1 and #2 deal with this. The intention was to treat s/print_size() similarly, but unfortunately two use cases of sprint_size() cannot be converted to a json_print-like print_size(), and the function sprint_size() had to remain as a discouraged backdoor to print_size(). This is done in patch #3. Patches #4 and #5 handle a routine movement of, respectively, get_rate/64() and get_size() from tc to lib. Patch #6 fixes a buglet in formatting small rates in IEC mode. This patchset does not actually add any new uses of these functions. A follow-up patchset will add subtools for management of DCB buffer and DCB maxrate objects that will make use of them. Petr Machata (6): Move the use_iec declaration to the tools lib: Move print_rate() from tc here; modernize lib: Move sprint_size() from tc here, add print_size() lib: Move get_rate(), get_rate64() from tc here lib: Move get_size() from tc here lib: print_rate(): Fix formatting small rates in IEC mode include/json_print.h | 14 ++++ include/utils.h | 4 +- ip/ip_common.h | 2 + lib/json_print.c | 61 +++++++++++++++ lib/utils.c | 114 +++++++++++++++++++++++++++ tc/m_gate.c | 6 +- tc/m_police.c | 14 ++-- tc/q_cake.c | 44 +++++------ tc/q_cbq.c | 14 +--- tc/q_drr.c | 10 +-- tc/q_fifo.c | 10 +-- tc/q_fq.c | 34 +++----- tc/q_fq_codel.c | 5 +- tc/q_fq_pie.c | 9 +-- tc/q_gred.c | 39 ++-------- tc/q_hfsc.c | 4 +- tc/q_hhf.c | 9 +-- tc/q_htb.c | 23 +++--- tc/q_mqprio.c | 8 +- tc/q_netem.c | 4 +- tc/q_red.c | 13 +--- tc/q_sfq.c | 15 +--- tc/q_tbf.c | 32 +++----- tc/tc_common.h | 1 + tc/tc_util.c | 180 +++---------------------------------------- tc/tc_util.h | 8 +- 26 files changed, 307 insertions(+), 370 deletions(-) -- 2.25.1