git: dea41633e509 - main - pf: handle ACK prioritization for v6

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Thu, 19 Sep 2024 20:21:24 UTC
The branch main has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=dea41633e509489087b1d3e0fcb7404e4dbc5129

commit dea41633e509489087b1d3e0fcb7404e4dbc5129
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2024-09-04 15:09:28 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2024-09-19 20:20:14 +0000

    pf: handle ACK prioritization for v6
    
    Obtained from:  OpenBSD, sthen <sthen@openbsd.org>, 1a3657e9c6
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Differential Revision:  https://reviews.freebsd.org/D46592
---
 sys/netpfil/pf/pf.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index b0e857e55deb..c85c2e784cd9 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -9525,6 +9525,9 @@ pf_test6(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, struct inpcb
 			break;
 		}
 
+		if ((pd.hdr.tcp.th_flags & TH_ACK) && pd.p_len == 0)
+			use_2nd_queue = 1;
+
 		action = pf_normalize_tcp(kif, m, 0, off, h, &pd);
 		if (action == PF_DROP)
 			goto done;
@@ -9701,7 +9704,7 @@ done:
 		} else {
 			if (s != NULL)
 				pd.pf_mtag->qid_hash = pf_state_hash(s);
-			if (pd.tos & IPTOS_LOWDELAY)
+			if (use_2nd_queue || (pd.tos & IPTOS_LOWDELAY))
 				pd.pf_mtag->qid = pd.act.pqid;
 			else
 				pd.pf_mtag->qid = pd.act.qid;