=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/systat/pftop.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- src/usr.bin/systat/pftop.c 2017/05/03 14:01:29 1.37 +++ src/usr.bin/systat/pftop.c 2017/05/16 22:29:07 1.38 @@ -1,4 +1,4 @@ -/* $OpenBSD: pftop.c,v 1.37 2017/05/03 14:01:29 mikeb Exp $ */ +/* $OpenBSD: pftop.c,v 1.38 2017/05/16 22:29:07 mikeb Exp $ */ /* * Copyright (c) 2001, 2007 Can Erkin Acar * Copyright (c) 2001 Daniel Hartmeier @@ -1608,7 +1608,7 @@ void print_queue_node(struct pfctl_queue_node *node) { - u_int rate; + u_int rate, rtmp; int i; double interval, pps, bps; static const char unit[] = " KMG"; @@ -1624,8 +1624,12 @@ // XXX: missing min, max, burst tb_start(); rate = node->qs.linkshare.m2.absolute; - for (i = 0; rate >= 1000 && i <= 3; i++) - rate /= 1000; + for (i = 0; rate > 9999 && i <= 3; i++) { + rtmp = rate / 1000; + if (rtmp <= 9999) + rtmp += (rate % 1000) / 500; + rate = rtmp; + } tbprintf("%u%c", rate, unit[i]); print_fld_tb(FLD_BANDW);