diff: m_pkthdr.pf.hdr for default queue

"Ilya A. Kovalenko" <[email protected]>
Newsgroups gmane.os.openbsd.pf
Message-ID <[email protected]>
    Good time of day,

  Following diff removes testing queue id against zero, because
of which default queue packets (seems to) passed to ALTQ w/o header
hint (m_pkthdr.pf.hdr), so their headers can't be inspected or altered
by ALTQ (with RED/ECN, for example).

  Diff against -current. Tested on 4.5 

Index: pf.c
===================================================================
RCS file: /cvs/src/sys/net/pf.c,v
retrieving revision 1.680
diff -u -r1.680 pf.c
--- pf.c	24 Dec 2009 04:24:19 -0000	1.680
+++ pf.c	11 Jan 2010 05:57:38 -0000
@@ -1971,7 +1971,7 @@
 	m->m_pkthdr.rdomain = rdom;
 
 #ifdef ALTQ
-	if (r != NULL && r->qid) {
+	if (r != NULL) {
 		m->m_pkthdr.pf.qid = r->qid;
 		/* add hints for ecn */
 		m->m_pkthdr.pf.hdr = mtod(m, struct ip *);
@@ -2094,11 +2094,9 @@
 	m0->m_pkthdr.rdomain = rdomain;
 
 #ifdef ALTQ
-	if (r->qid) {
-		m0->m_pkthdr.pf.qid = r->qid;
-		/* add hints for ecn */
-		m0->m_pkthdr.pf.hdr = mtod(m0, struct ip *);
-	}
+	m0->m_pkthdr.pf.qid = r->qid;
+	/* add hints for ecn */
+	m0->m_pkthdr.pf.hdr = mtod(m0, struct ip *);
 #endif /* ALTQ */
 
 	switch (af) {
@@ -5712,7 +5710,7 @@
 		m->m_pkthdr.pf.statekey = s->key[PF_SK_STACK];
 
 #ifdef ALTQ
-	if (action == PF_PASS && qid) {
+	if (action == PF_PASS) {
 		m->m_pkthdr.pf.qid = qid;
 		m->m_pkthdr.pf.hdr = h;	/* hints for ecn */
 	}
@@ -6156,7 +6154,7 @@
 		m->m_pkthdr.pf.statekey = s->key[PF_SK_STACK];
 
 #ifdef ALTQ
-	if (action == PF_PASS && s && s->qid) {
+	if (action == PF_PASS && s) {
 		if (pd.tos & IPTOS_LOWDELAY)
 			m->m_pkthdr.pf.qid = s->pqid;
 		else

Kind regards,

Ilya A. Kovalenko
SA, SpecialEQ SW sections
JSC "Oganer-Service"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.