diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -9525,6 +9525,9 @@ 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 @@ } 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;