summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sbin/pfctl/pfctl_qstats.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/sbin/pfctl/pfctl_qstats.c b/sbin/pfctl/pfctl_qstats.c
index 12dc1615043..c80707ef04e 100644
--- a/sbin/pfctl/pfctl_qstats.c
+++ b/sbin/pfctl/pfctl_qstats.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfctl_qstats.c,v 1.17 2003/04/15 11:29:24 henning Exp $ */
+/* $OpenBSD: pfctl_qstats.c,v 1.18 2003/04/15 11:51:42 henning Exp $ */
/*
* Copyright (c) 2003 Henning Brauer
@@ -83,6 +83,8 @@ void pfctl_print_altq_node(int, const struct pf_altq_node *,
void print_cbqstats(struct queue_stats, struct queue_stats);
void print_priqstats(struct queue_stats,
struct queue_stats);
+void print_hfscstats(struct queue_stats,
+ struct queue_stats);
void pfctl_free_altq_node(struct pf_altq_node *);
void pfctl_print_altq_nodestat(int,
const struct pf_altq_node *);
@@ -268,6 +270,9 @@ pfctl_print_altq_nodestat(int dev, const struct pf_altq_node *a)
case ALTQT_PRIQ:
print_priqstats(a->qstats, a->qstats_last);
break;
+ case ALTQT_HFSC:
+ print_hfscstats(a->qstats, a->qstats_last);
+ break;
}
}
@@ -323,6 +328,31 @@ print_priqstats(struct queue_stats cur, struct queue_stats last)
}
void
+print_hfscstats(struct queue_stats cur, struct queue_stats last)
+{
+ double interval;
+
+ printf("[ pkts: %10llu bytes: %10llu "
+ "dropped pkts: %6llu bytes: %6llu ]\n",
+ cur.data.hfsc_stats.xmit_cnt.packets,
+ cur.data.hfsc_stats.xmit_cnt.bytes,
+ cur.data.hfsc_stats.drop_cnt.packets,
+ cur.data.hfsc_stats.drop_cnt.bytes);
+ printf("[ qlength: %3d/%3d ]\n",
+ cur.data.hfsc_stats.qlength, cur.data.hfsc_stats.qlimit);
+
+ if (!last.valid)
+ return;
+
+ interval = calc_interval(&cur.timestamp, &last.timestamp);
+ printf("[ measured: %7.1f packets/s, %s/s ]\n",
+ calc_pps(cur.data.hfsc_stats.xmit_cnt.packets,
+ last.data.hfsc_stats.xmit_cnt.packets, interval),
+ rate2str(calc_rate(cur.data.hfsc_stats.xmit_cnt.bytes,
+ last.data.hfsc_stats.xmit_cnt.bytes, interval)));
+}
+
+void
pfctl_free_altq_node(struct pf_altq_node *node)
{
while (node != NULL) {