summaryrefslogtreecommitdiffstats
path: root/sbin/pfctl/pfctl_queue.c
diff options
context:
space:
mode:
authormikeb <mikeb@openbsd.org>2017-07-19 12:51:30 +0000
committermikeb <mikeb@openbsd.org>2017-07-19 12:51:30 +0000
commitb28abc6437903ba6bd4637f4ad2b9c044f61015a (patch)
tree53865dd90e290de4b1b0ebcec186aa99feb058ca /sbin/pfctl/pfctl_queue.c
parentmore depends gc / yacc rules overhaul (diff)
downloadwireguard-openbsd-b28abc6437903ba6bd4637f4ad2b9c044f61015a.tar.xz
wireguard-openbsd-b28abc6437903ba6bd4637f4ad2b9c044f61015a.zip
Rework HFSC vs FQ-CoDel checks
The selection mechanism introduced in pf_ioctl.c -r1.316 suffers from being too ambiguous and lacks robustness. Instead of relying on composition of multiple flags in the queue specification, it's easier to identify the root class (if it exists) and derive all further checks from it.
Diffstat (limited to 'sbin/pfctl/pfctl_queue.c')
-rw-r--r--sbin/pfctl/pfctl_queue.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sbin/pfctl/pfctl_queue.c b/sbin/pfctl/pfctl_queue.c
index feeeba33f8d..2b686defce7 100644
--- a/sbin/pfctl/pfctl_queue.c
+++ b/sbin/pfctl/pfctl_queue.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfctl_queue.c,v 1.5 2017/05/15 16:24:44 mikeb Exp $ */
+/* $OpenBSD: pfctl_queue.c,v 1.6 2017/07/19 12:51:30 mikeb Exp $ */
/*
* Copyright (c) 2003 - 2013 Henning Brauer <henning@openbsd.org>
@@ -212,7 +212,8 @@ pfctl_print_queue_nodestat(int dev, const struct pfctl_queue_node *node)
(unsigned long long)stats->xmit_cnt.bytes,
(unsigned long long)stats->drop_cnt.packets,
(unsigned long long)stats->drop_cnt.bytes);
- if (node->qs.flags & PFQS_FLOWQUEUE) {
+ if (node->qs.parent_qid == 0 && (node->qs.flags & PFQS_FLOWQUEUE) &&
+ !(node->qs.flags & PFQS_ROOTCLASS)) {
double avg = 0, dev = 0;
if (fqstats->flows > 0) {