Module Name: src Committed By: knakahara Date: Wed Apr 20 08:58:48 UTC 2016
Modified Files: src/sys/altq: altq_blue.c altq_cbq.c altq_fifoq.c altq_hfsc.c altq_jobs.c altq_priq.c altq_red.c altq_rio.c altq_subr.c altq_wfq.c if_altq.h src/sys/net: if.h if_bridge.c if_ethersubr.c if_vlan.c src/sys/net80211: ieee80211_input.c Log Message: IFQ_ENQUEUE refactor (2/3) : eliminate pktattr argument from altq implemantation To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/altq/altq_blue.c cvs rdiff -u -r1.28 -r1.29 src/sys/altq/altq_cbq.c cvs rdiff -u -r1.16 -r1.17 src/sys/altq/altq_fifoq.c cvs rdiff -u -r1.25 -r1.26 src/sys/altq/altq_hfsc.c cvs rdiff -u -r1.8 -r1.9 src/sys/altq/altq_jobs.c cvs rdiff -u -r1.22 -r1.23 src/sys/altq/altq_priq.c cvs rdiff -u -r1.29 -r1.30 src/sys/altq/altq_red.c src/sys/altq/altq_subr.c cvs rdiff -u -r1.21 -r1.22 src/sys/altq/altq_rio.c cvs rdiff -u -r1.20 -r1.21 src/sys/altq/altq_wfq.c cvs rdiff -u -r1.14 -r1.15 src/sys/altq/if_altq.h cvs rdiff -u -r1.199 -r1.200 src/sys/net/if.h cvs rdiff -u -r1.115 -r1.116 src/sys/net/if_bridge.c cvs rdiff -u -r1.219 -r1.220 src/sys/net/if_ethersubr.c cvs rdiff -u -r1.84 -r1.85 src/sys/net/if_vlan.c cvs rdiff -u -r1.80 -r1.81 src/sys/net80211/ieee80211_input.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/altq/altq_blue.c diff -u src/sys/altq/altq_blue.c:1.23 src/sys/altq/altq_blue.c:1.24 --- src/sys/altq/altq_blue.c:1.23 Sat Nov 19 22:51:18 2011 +++ src/sys/altq/altq_blue.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_blue.c,v 1.23 2011/11/19 22:51:18 tls Exp $ */ +/* $NetBSD: altq_blue.c,v 1.24 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_blue.c,v 1.15 2005/04/13 03:44:24 suz Exp $ */ /* @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_blue.c,v 1.23 2011/11/19 22:51:18 tls Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_blue.c,v 1.24 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -112,7 +112,7 @@ __KERNEL_RCSID(0, "$NetBSD: altq_blue.c, static blue_queue_t *blue_list = NULL; /* internal function prototypes */ -static int blue_enqueue(struct ifaltq *, struct mbuf *, struct altq_pktattr *); +static int blue_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *blue_dequeue(struct ifaltq *, int); static int drop_early(blue_t *); static int mark_ecn(struct mbuf *, struct altq_pktattr *, int); @@ -391,12 +391,17 @@ blue_init(blue_t *rp, int flags, int pkt * ENOBUFS when drop occurs. */ static int -blue_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +blue_enqueue(struct ifaltq *ifq, struct mbuf *m) { + struct altq_pktattr pktattr; blue_queue_t *rqp = (blue_queue_t *)ifq->altq_disc; int error = 0; - if (blue_addq(rqp->rq_blue, rqp->rq_q, m, pktattr) == 0) + pktattr.pattr_class = m->m_pkthdr.pattr_class; + pktattr.pattr_af = m->m_pkthdr.pattr_af; + pktattr.pattr_hdr = m->m_pkthdr.pattr_hdr; + + if (blue_addq(rqp->rq_blue, rqp->rq_q, m, &pktattr) == 0) ifq->ifq_len++; else error = ENOBUFS; Index: src/sys/altq/altq_cbq.c diff -u src/sys/altq/altq_cbq.c:1.28 src/sys/altq/altq_cbq.c:1.29 --- src/sys/altq/altq_cbq.c:1.28 Sat Oct 18 08:33:24 2014 +++ src/sys/altq/altq_cbq.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_cbq.c,v 1.28 2014/10/18 08:33:24 snj Exp $ */ +/* $NetBSD: altq_cbq.c,v 1.29 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_cbq.c,v 1.21 2005/04/13 03:44:24 suz Exp $ */ /* @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_cbq.c,v 1.28 2014/10/18 08:33:24 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_cbq.c,v 1.29 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -82,8 +82,7 @@ static int cbq_class_destroy(cbq_state static struct rm_class *clh_to_clp(cbq_state_t *, u_int32_t); static int cbq_clear_interface(cbq_state_t *); static int cbq_request(struct ifaltq *, int, void *); -static int cbq_enqueue(struct ifaltq *, struct mbuf *, - struct altq_pktattr *); +static int cbq_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *cbq_dequeue(struct ifaltq *, int); static void cbqrestart(struct ifaltq *); static void get_class_stats(class_stats_t *, struct rm_class *); @@ -483,7 +482,7 @@ cbq_getqstats(struct pf_altq *a, void *u /* * int - * cbq_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pattr) + * cbq_enqueue(struct ifaltq *ifq, struct mbuf *m) * - Queue data packets. * * cbq_enqueue is set to ifp->if_altqenqueue and called by an upper @@ -497,8 +496,9 @@ cbq_getqstats(struct pf_altq *a, void *u */ static int -cbq_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +cbq_enqueue(struct ifaltq *ifq, struct mbuf *m) { + struct altq_pktattr pktattr; cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc; struct rm_class *cl; struct m_tag *t; @@ -516,8 +516,8 @@ cbq_enqueue(struct ifaltq *ifq, struct m if ((t = m_tag_find(m, PACKET_TAG_ALTQ_QID, NULL)) != NULL) cl = clh_to_clp(cbqp, ((struct altq_tag *)(t+1))->qid); #ifdef ALTQ3_COMPAT - else if ((ifq->altq_flags & ALTQF_CLASSIFY) && pktattr != NULL) - cl = pktattr->pattr_class; + else if (ifq->altq_flags & ALTQF_CLASSIFY) + cl = m->m_pkthdr.pattr_class; #endif if (cl == NULL) { cl = cbqp->ifnp.default_; @@ -527,9 +527,13 @@ cbq_enqueue(struct ifaltq *ifq, struct m } } #ifdef ALTQ3_COMPAT - if (pktattr != NULL) - cl->pktattr_ = pktattr; /* save proto hdr used by ECN */ - else + if (m->m_pkthdr.pattr_af != AF_UNSPEC) { + pktattr.pattr_class = m->m_pkthdr.pattr_class; + pktattr.pattr_af = m->m_pkthdr.pattr_af; + pktattr.pattr_hdr = m->m_pkthdr.pattr_hdr; + + cl->pktattr_ = &pktattr; /* save proto hdr used by ECN */ + } else #endif cl->pktattr_ = NULL; len = m_pktlen(m); Index: src/sys/altq/altq_fifoq.c diff -u src/sys/altq/altq_fifoq.c:1.16 src/sys/altq/altq_fifoq.c:1.17 --- src/sys/altq/altq_fifoq.c:1.16 Sun Mar 4 05:59:01 2007 +++ src/sys/altq/altq_fifoq.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_fifoq.c,v 1.16 2007/03/04 05:59:01 christos Exp $ */ +/* $NetBSD: altq_fifoq.c,v 1.17 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_fifoq.c,v 1.12 2003/07/10 12:07:48 kjc Exp $ */ /* @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_fifoq.c,v 1.16 2007/03/04 05:59:01 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_fifoq.c,v 1.17 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -70,8 +70,7 @@ __KERNEL_RCSID(0, "$NetBSD: altq_fifoq.c static fifoq_state_t *fifoq_list = NULL; /* internal function prototypes */ -static int fifoq_enqueue(struct ifaltq *, struct mbuf *, - struct altq_pktattr *); +static int fifoq_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *fifoq_dequeue(struct ifaltq *, int); static int fifoq_detach(fifoq_state_t *); static int fifoq_request(struct ifaltq *, int, void *); @@ -266,8 +265,7 @@ fifoqioctl(dev_t dev, ioctlcmd_t cmd, vo * ENOBUFS when drop occurs. */ static int -fifoq_enqueue(struct ifaltq *ifq, struct mbuf *m, - struct altq_pktattr *pktattr) +fifoq_enqueue(struct ifaltq *ifq, struct mbuf *m) { fifoq_state_t *q = (fifoq_state_t *)ifq->altq_disc; Index: src/sys/altq/altq_hfsc.c diff -u src/sys/altq/altq_hfsc.c:1.25 src/sys/altq/altq_hfsc.c:1.26 --- src/sys/altq/altq_hfsc.c:1.25 Fri Jan 22 18:19:54 2016 +++ src/sys/altq/altq_hfsc.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_hfsc.c,v 1.25 2016/01/22 18:19:54 christos Exp $ */ +/* $NetBSD: altq_hfsc.c,v 1.26 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_hfsc.c,v 1.26 2005/04/13 03:44:24 suz Exp $ */ /* @@ -43,7 +43,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_hfsc.c,v 1.25 2016/01/22 18:19:54 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_hfsc.c,v 1.26 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -90,8 +90,7 @@ static struct hfsc_class *hfsc_class_cre struct hfsc_class *, int, int, int); static int hfsc_class_destroy(struct hfsc_class *); static struct hfsc_class *hfsc_nextclass(struct hfsc_class *); -static int hfsc_enqueue(struct ifaltq *, struct mbuf *, - struct altq_pktattr *); +static int hfsc_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *hfsc_dequeue(struct ifaltq *, int); static int hfsc_addq(struct hfsc_class *, struct mbuf *); @@ -666,8 +665,9 @@ hfsc_nextclass(struct hfsc_class *cl) * (*altq_enqueue) in struct ifaltq. */ static int -hfsc_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +hfsc_enqueue(struct ifaltq *ifq, struct mbuf *m) { + struct altq_pktattr pktattr; struct hfsc_if *hif = (struct hfsc_if *)ifq->altq_disc; struct hfsc_class *cl; struct m_tag *t; @@ -685,8 +685,8 @@ hfsc_enqueue(struct ifaltq *ifq, struct if ((t = m_tag_find(m, PACKET_TAG_ALTQ_QID, NULL)) != NULL) cl = clh_to_clp(hif, ((struct altq_tag *)(t+1))->qid); #ifdef ALTQ3_COMPAT - else if ((ifq->altq_flags & ALTQF_CLASSIFY) && pktattr != NULL) - cl = pktattr->pattr_class; + else if ((ifq->altq_flags & ALTQF_CLASSIFY)) + cl = m->m_pkthdr.pattr_class; #endif if (cl == NULL || is_a_parent_class(cl)) { cl = hif->hif_defaultclass; @@ -696,9 +696,13 @@ hfsc_enqueue(struct ifaltq *ifq, struct } } #ifdef ALTQ3_COMPAT - if (pktattr != NULL) - cl->cl_pktattr = pktattr; /* save proto hdr used by ECN */ - else + if (m->m_pkthdr.pattr_af != AF_UNSPEC) { + pktattr.pattr_class = m->m_pkthdr.pattr_class; + pktattr.pattr_af = m->m_pkthdr.pattr_af; + pktattr.pattr_hdr = m->m_pkthdr.pattr_hdr; + + cl->cl_pktattr = &pktattr; /* save proto hdr used by ECN */ + } else #endif cl->cl_pktattr = NULL; len = m_pktlen(m); Index: src/sys/altq/altq_jobs.c diff -u src/sys/altq/altq_jobs.c:1.8 src/sys/altq/altq_jobs.c:1.9 --- src/sys/altq/altq_jobs.c:1.8 Fri Jan 22 18:19:54 2016 +++ src/sys/altq/altq_jobs.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_jobs.c,v 1.8 2016/01/22 18:19:54 christos Exp $ */ +/* $NetBSD: altq_jobs.c,v 1.9 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_jobs.c,v 1.11 2005/04/13 03:44:25 suz Exp $ */ /* * Copyright (c) 2001, the Rector and Board of Visitors of the @@ -59,7 +59,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_jobs.c,v 1.8 2016/01/22 18:19:54 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_jobs.c,v 1.9 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -103,7 +103,7 @@ static void jobs_purge(struct jobs_if *) static struct jobs_class *jobs_class_create(struct jobs_if *, int, int64_t, int64_t, int64_t, int64_t, int64_t, int); static int jobs_class_destroy(struct jobs_class *); -static int jobs_enqueue(struct ifaltq *, struct mbuf *, struct altq_pktattr *); +static int jobs_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *jobs_dequeue(struct ifaltq *, int); static int jobs_addq(struct jobs_class *, struct mbuf *, struct jobs_if*); @@ -490,7 +490,7 @@ jobs_class_destroy(struct jobs_class *cl * (*altq_enqueue) in struct ifaltq. */ static int -jobs_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +jobs_enqueue(struct ifaltq *ifq, struct mbuf *m) { struct jobs_if *jif = (struct jobs_if *)ifq->altq_disc; struct jobs_class *cl, *scan; @@ -533,7 +533,7 @@ jobs_enqueue(struct ifaltq *ifq, struct } /* grab class set by classifier */ - if (pktattr == NULL || (cl = pktattr->pattr_class) == NULL) + if ((cl = m->m_pkthdr.pattr_class) == NULL) cl = jif->jif_default; len = m_pktlen(m); Index: src/sys/altq/altq_priq.c diff -u src/sys/altq/altq_priq.c:1.22 src/sys/altq/altq_priq.c:1.23 --- src/sys/altq/altq_priq.c:1.22 Fri Jan 22 18:19:54 2016 +++ src/sys/altq/altq_priq.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_priq.c,v 1.22 2016/01/22 18:19:54 christos Exp $ */ +/* $NetBSD: altq_priq.c,v 1.23 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_priq.c,v 1.13 2005/04/13 03:44:25 suz Exp $ */ /* * Copyright (C) 2000-2003 @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_priq.c,v 1.22 2016/01/22 18:19:54 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_priq.c,v 1.23 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -76,7 +76,7 @@ static void priq_purge(struct priq_if *) static struct priq_class *priq_class_create(struct priq_if *, int, int, int, int); static int priq_class_destroy(struct priq_class *); -static int priq_enqueue(struct ifaltq *, struct mbuf *, struct altq_pktattr *); +static int priq_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *priq_dequeue(struct ifaltq *, int); static int priq_addq(struct priq_class *, struct mbuf *); @@ -438,8 +438,9 @@ priq_class_destroy(struct priq_class *cl * (*altq_enqueue) in struct ifaltq. */ static int -priq_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +priq_enqueue(struct ifaltq *ifq, struct mbuf *m) { + struct altq_pktattr pktattr; struct priq_if *pif = (struct priq_if *)ifq->altq_disc; struct priq_class *cl; struct m_tag *t; @@ -457,8 +458,8 @@ priq_enqueue(struct ifaltq *ifq, struct if ((t = m_tag_find(m, PACKET_TAG_ALTQ_QID, NULL)) != NULL) cl = clh_to_clp(pif, ((struct altq_tag *)(t+1))->qid); #ifdef ALTQ3_COMPAT - else if ((ifq->altq_flags & ALTQF_CLASSIFY) && pktattr != NULL) - cl = pktattr->pattr_class; + else if (ifq->altq_flags & ALTQF_CLASSIFY) + cl = m->m_pkthdr.pattr_class; #endif if (cl == NULL) { cl = pif->pif_default; @@ -468,9 +469,13 @@ priq_enqueue(struct ifaltq *ifq, struct } } #ifdef ALTQ3_COMPAT - if (pktattr != NULL) - cl->cl_pktattr = pktattr; /* save proto hdr used by ECN */ - else + if (m->m_pkthdr.pattr_af != AF_UNSPEC) { + pktattr.pattr_class = m->m_pkthdr.pattr_class; + pktattr.pattr_af = m->m_pkthdr.pattr_af; + pktattr.pattr_hdr = m->m_pkthdr.pattr_hdr; + + cl->cl_pktattr = &pktattr; /* save proto hdr used by ECN */ + } else #endif cl->cl_pktattr = NULL; len = m_pktlen(m); Index: src/sys/altq/altq_red.c diff -u src/sys/altq/altq_red.c:1.29 src/sys/altq/altq_red.c:1.30 --- src/sys/altq/altq_red.c:1.29 Sat Nov 19 22:51:18 2011 +++ src/sys/altq/altq_red.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_red.c,v 1.29 2011/11/19 22:51:18 tls Exp $ */ +/* $NetBSD: altq_red.c,v 1.30 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_red.c,v 1.20 2005/04/13 03:44:25 suz Exp $ */ /* @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_red.c,v 1.29 2011/11/19 22:51:18 tls Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_red.c,v 1.30 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -203,7 +203,7 @@ static int default_inv_pmax = INV_P_MAX; #ifdef ALTQ3_COMPAT /* internal function prototypes */ -static int red_enqueue(struct ifaltq *, struct mbuf *, struct altq_pktattr *); +static int red_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *red_dequeue(struct ifaltq *, int); static int red_request(struct ifaltq *, int, void *); static void red_purgeq(red_queue_t *); @@ -1011,11 +1011,16 @@ red_detach(red_queue_t *rqp) * ENOBUFS when drop occurs. */ static int -red_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +red_enqueue(struct ifaltq *ifq, struct mbuf *m) { + struct altq_pktattr pktattr; red_queue_t *rqp = (red_queue_t *)ifq->altq_disc; - if (red_addq(rqp->rq_red, rqp->rq_q, m, pktattr) < 0) + pktattr.pattr_class = m->m_pkthdr.pattr_class; + pktattr.pattr_af = m->m_pkthdr.pattr_af; + pktattr.pattr_hdr = m->m_pkthdr.pattr_hdr; + + if (red_addq(rqp->rq_red, rqp->rq_q, m, &pktattr) < 0) return ENOBUFS; ifq->ifq_len++; return 0; Index: src/sys/altq/altq_subr.c diff -u src/sys/altq/altq_subr.c:1.29 src/sys/altq/altq_subr.c:1.30 --- src/sys/altq/altq_subr.c:1.29 Sat May 17 20:44:24 2014 +++ src/sys/altq/altq_subr.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_subr.c,v 1.29 2014/05/17 20:44:24 rmind Exp $ */ +/* $NetBSD: altq_subr.c,v 1.30 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_subr.c,v 1.24 2005/04/13 03:44:25 suz Exp $ */ /* @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_subr.c,v 1.29 2014/05/17 20:44:24 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_subr.c,v 1.30 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -125,7 +125,7 @@ altq_lookup(char *name, int type) int altq_attach(struct ifaltq *ifq, int type, void *discipline, - int (*enqueue)(struct ifaltq *, struct mbuf *, struct altq_pktattr *), + int (*enqueue)(struct ifaltq *, struct mbuf *), struct mbuf *(*dequeue)(struct ifaltq *, int), int (*request)(struct ifaltq *, int, void *), void *clfier, void *(*classify)(void *, struct mbuf *, int)) Index: src/sys/altq/altq_rio.c diff -u src/sys/altq/altq_rio.c:1.21 src/sys/altq/altq_rio.c:1.22 --- src/sys/altq/altq_rio.c:1.21 Sat Apr 18 14:58:02 2009 +++ src/sys/altq/altq_rio.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_rio.c,v 1.21 2009/04/18 14:58:02 tsutsui Exp $ */ +/* $NetBSD: altq_rio.c,v 1.22 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_rio.c,v 1.19 2005/04/13 03:44:25 suz Exp $ */ /* @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_rio.c,v 1.21 2009/04/18 14:58:02 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_rio.c,v 1.22 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -190,7 +190,7 @@ static struct redparams default_rio_para /* internal function prototypes */ static int dscp2index(u_int8_t); #ifdef ALTQ3_COMPAT -static int rio_enqueue(struct ifaltq *, struct mbuf *, struct altq_pktattr *); +static int rio_enqueue(struct ifaltq *, struct mbuf *); static struct mbuf *rio_dequeue(struct ifaltq *, int); static int rio_request(struct ifaltq *, int, void *); static int rio_detach(rio_queue_t *); @@ -763,12 +763,17 @@ rio_request(struct ifaltq *ifq, int req, * ENOBUFS when drop occurs. */ static int -rio_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +rio_enqueue(struct ifaltq *ifq, struct mbuf *m) { + struct altq_pktattr pktattr; rio_queue_t *rqp = (rio_queue_t *)ifq->altq_disc; int error = 0; - if (rio_addq(rqp->rq_rio, rqp->rq_q, m, pktattr) == 0) + pktattr.pattr_class = m->m_pkthdr.pattr_class; + pktattr.pattr_af = m->m_pkthdr.pattr_af; + pktattr.pattr_hdr = m->m_pkthdr.pattr_hdr; + + if (rio_addq(rqp->rq_rio, rqp->rq_q, m, &pktattr) == 0) ifq->ifq_len++; else error = ENOBUFS; Index: src/sys/altq/altq_wfq.c diff -u src/sys/altq/altq_wfq.c:1.20 src/sys/altq/altq_wfq.c:1.21 --- src/sys/altq/altq_wfq.c:1.20 Thu Mar 20 20:51:54 2014 +++ src/sys/altq/altq_wfq.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_wfq.c,v 1.20 2014/03/20 20:51:54 christos Exp $ */ +/* $NetBSD: altq_wfq.c,v 1.21 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: altq_wfq.c,v 1.14 2005/04/13 03:44:25 suz Exp $ */ /* @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_wfq.c,v 1.20 2014/03/20 20:51:54 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_wfq.c,v 1.21 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -69,8 +69,7 @@ __KERNEL_RCSID(0, "$NetBSD: altq_wfq.c,v static int wfq_setenable(struct wfq_interface *, int); static int wfq_ifattach(struct wfq_interface *); static int wfq_ifdetach(struct wfq_interface *); -static int wfq_ifenqueue(struct ifaltq *, struct mbuf *, - struct altq_pktattr *); +static int wfq_ifenqueue(struct ifaltq *, struct mbuf *); static u_long wfq_hash(struct flowinfo *, int); static inline u_long wfq_hashbydstaddr(struct flowinfo *, int); static inline u_long wfq_hashbysrcaddr(struct flowinfo *, int); @@ -249,7 +248,7 @@ wfq_classify(void *clfier, struct mbuf * } static int -wfq_ifenqueue(struct ifaltq *ifq, struct mbuf *mp, struct altq_pktattr *pktattr) +wfq_ifenqueue(struct ifaltq *ifq, struct mbuf *mp) { wfq_state_t *wfqp; wfq *queue; @@ -259,7 +258,7 @@ wfq_ifenqueue(struct ifaltq *ifq, struct mp->m_nextpkt = NULL; /* grab a queue selected by classifier */ - if (pktattr == NULL || (queue = pktattr->pattr_class) == NULL) + if ((queue = mp->m_pkthdr.pattr_class) == NULL) queue = &wfqp->queue[0]; if (queue->tail == NULL) Index: src/sys/altq/if_altq.h diff -u src/sys/altq/if_altq.h:1.14 src/sys/altq/if_altq.h:1.15 --- src/sys/altq/if_altq.h:1.14 Tue Jul 1 10:16:02 2014 +++ src/sys/altq/if_altq.h Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: if_altq.h,v 1.14 2014/07/01 10:16:02 ozaki-r Exp $ */ +/* $NetBSD: if_altq.h,v 1.15 2016/04/20 08:58:48 knakahara Exp $ */ /* $KAME: if_altq.h,v 1.12 2005/04/13 03:44:25 suz Exp $ */ /* @@ -53,8 +53,7 @@ struct ifaltq { void *altq_disc; /* for discipline-specific use */ struct ifnet *altq_ifp; /* back pointer to interface */ - int (*altq_enqueue)(struct ifaltq *, struct mbuf *, - struct altq_pktattr *); + int (*altq_enqueue)(struct ifaltq *, struct mbuf *); struct mbuf *(*altq_dequeue)(struct ifaltq *, int); int (*altq_request)(struct ifaltq *, int, void *); @@ -146,8 +145,8 @@ struct tb_regulator { #define ALTQ_CLEAR_CNDTNING(ifq) ((ifq)->altq_flags &= ~ALTQF_CNDTNING) #define ALTQ_IS_ATTACHED(ifq) ((ifq)->altq_disc != NULL) -#define ALTQ_ENQUEUE(ifq, m, pa, err) \ - (err) = (*(ifq)->altq_enqueue)((ifq),(m),(pa)) +#define ALTQ_ENQUEUE(ifq, m, err) \ + (err) = (*(ifq)->altq_enqueue)((ifq),(m)) #define ALTQ_DEQUEUE(ifq, m) \ (m) = (*(ifq)->altq_dequeue)((ifq), ALTDQ_REMOVE) #define ALTQ_POLL(ifq, m) \ @@ -158,8 +157,7 @@ struct tb_regulator { #define TBR_IS_ENABLED(ifq) ((ifq)->altq_tbr != NULL) extern int altq_attach(struct ifaltq *, int, void *, - int (*)(struct ifaltq *, struct mbuf *, - struct altq_pktattr *), + int (*)(struct ifaltq *, struct mbuf *), struct mbuf *(*)(struct ifaltq *, int), int (*)(struct ifaltq *, int, void *), void *, @@ -170,7 +168,7 @@ extern int altq_disable(struct ifaltq *) extern struct mbuf *tbr_dequeue(struct ifaltq *, int); extern int (*altq_input)(struct mbuf *, int); #if 1 /* ALTQ3_CLFIER_COMPAT */ -void altq_etherclassify(struct ifaltq *, struct mbuf *, struct altq_pktattr *); +void altq_etherclassify(struct ifaltq *, struct mbuf *); #endif #endif /* _KERNEL */ Index: src/sys/net/if.h diff -u src/sys/net/if.h:1.199 src/sys/net/if.h:1.200 --- src/sys/net/if.h:1.199 Wed Apr 20 08:56:32 2016 +++ src/sys/net/if.h Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: if.h,v 1.199 2016/04/20 08:56:32 knakahara Exp $ */ +/* $NetBSD: if.h,v 1.200 2016/04/20 08:58:48 knakahara Exp $ */ /*- * Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc. @@ -761,13 +761,9 @@ struct if_addrprefreq { do { \ struct altq_pktattr *_unused __unused = unused; \ IFQ_LOCK((ifq)); \ - if (ALTQ_IS_ENABLED((ifq))) { \ - struct altq_pktattr pattr; \ - pattr.pattr_class = (m)->m_pkthdr.pattr_class; \ - pattr.pattr_af = (m)->m_pkthdr.pattr_af; \ - pattr.pattr_hdr = (m)->m_pkthdr.pattr_hdr; \ - ALTQ_ENQUEUE((ifq), (m), &pattr, (err)); \ - } else { \ + if (ALTQ_IS_ENABLED((ifq))) \ + ALTQ_ENQUEUE((ifq), (m), (err)); \ + else { \ if (IF_QFULL((ifq))) { \ m_freem((m)); \ (err) = ENOBUFS; \ Index: src/sys/net/if_bridge.c diff -u src/sys/net/if_bridge.c:1.115 src/sys/net/if_bridge.c:1.116 --- src/sys/net/if_bridge.c:1.115 Tue Apr 19 07:10:22 2016 +++ src/sys/net/if_bridge.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: if_bridge.c,v 1.115 2016/04/19 07:10:22 ozaki-r Exp $ */ +/* $NetBSD: if_bridge.c,v 1.116 2016/04/20 08:58:48 knakahara Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -80,7 +80,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_bridge.c,v 1.115 2016/04/19 07:10:22 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_bridge.c,v 1.116 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_bridge_ipf.h" @@ -1375,7 +1375,7 @@ bridge_enqueue(struct bridge_softc *sc, */ if (ALTQ_IS_ENABLED(&dst_ifp->if_snd)) { /* XXX IFT_ETHER */ - altq_etherclassify(&dst_ifp->if_snd, m, &pktattr); + altq_etherclassify(&dst_ifp->if_snd, m); } #endif /* ALTQ */ Index: src/sys/net/if_ethersubr.c diff -u src/sys/net/if_ethersubr.c:1.219 src/sys/net/if_ethersubr.c:1.220 --- src/sys/net/if_ethersubr.c:1.219 Wed Apr 20 08:56:32 2016 +++ src/sys/net/if_ethersubr.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ethersubr.c,v 1.219 2016/04/20 08:56:32 knakahara Exp $ */ +/* $NetBSD: if_ethersubr.c,v 1.220 2016/04/20 08:58:48 knakahara Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.219 2016/04/20 08:56:32 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.220 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -418,7 +418,7 @@ ether_output(struct ifnet * const ifp0, * address family/header pointer in the pktattr. */ if (ALTQ_IS_ENABLED(&ifp->if_snd)) - altq_etherclassify(&ifp->if_snd, m, NULL); + altq_etherclassify(&ifp->if_snd, m); #endif return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); @@ -435,8 +435,7 @@ bad: * classification engine understands link headers. */ void -altq_etherclassify(struct ifaltq *ifq, struct mbuf *m, - struct altq_pktattr *pktattr) +altq_etherclassify(struct ifaltq *ifq, struct mbuf *m) { struct ether_header *eh; uint16_t ether_type; Index: src/sys/net/if_vlan.c diff -u src/sys/net/if_vlan.c:1.84 src/sys/net/if_vlan.c:1.85 --- src/sys/net/if_vlan.c:1.84 Tue Feb 9 08:32:12 2016 +++ src/sys/net/if_vlan.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: if_vlan.c,v 1.84 2016/02/09 08:32:12 ozaki-r Exp $ */ +/* $NetBSD: if_vlan.c,v 1.85 2016/04/20 08:58:48 knakahara Exp $ */ /*- * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc. @@ -78,7 +78,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_vlan.c,v 1.84 2016/02/09 08:32:12 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_vlan.c,v 1.85 2016/04/20 08:58:48 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -709,7 +709,7 @@ vlan_start(struct ifnet *ifp) if (ALTQ_IS_ENABLED(&p->if_snd)) { switch (p->if_type) { case IFT_ETHER: - altq_etherclassify(&p->if_snd, m, &pktattr); + altq_etherclassify(&p->if_snd, m); break; #ifdef DIAGNOSTIC default: Index: src/sys/net80211/ieee80211_input.c diff -u src/sys/net80211/ieee80211_input.c:1.80 src/sys/net80211/ieee80211_input.c:1.81 --- src/sys/net80211/ieee80211_input.c:1.80 Tue Feb 9 08:32:12 2016 +++ src/sys/net80211/ieee80211_input.c Wed Apr 20 08:58:48 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: ieee80211_input.c,v 1.80 2016/02/09 08:32:12 ozaki-r Exp $ */ +/* $NetBSD: ieee80211_input.c,v 1.81 2016/04/20 08:58:48 knakahara Exp $ */ /*- * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting @@ -36,7 +36,7 @@ __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.81 2005/08/10 16:22:29 sam Exp $"); #endif #ifdef __NetBSD__ -__KERNEL_RCSID(0, "$NetBSD: ieee80211_input.c,v 1.80 2016/02/09 08:32:12 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ieee80211_input.c,v 1.81 2016/04/20 08:58:48 knakahara Exp $"); #endif #ifdef _KERNEL_OPT @@ -741,8 +741,7 @@ ieee80211_deliver_data(struct ieee80211c int len; #ifdef ALTQ if (ALTQ_IS_ENABLED(&ifp->if_snd)) { - altq_etherclassify(&ifp->if_snd, m1, - &pktattr); + altq_etherclassify(&ifp->if_snd, m1); } #endif len = m1->m_pkthdr.len;