diff --git a/sys/altq/altq_blue.c b/sys/altq/altq_blue.c index f5d9c64..11f57db 100644 --- a/sys/altq/altq_blue.c +++ b/sys/altq/altq_blue.c @@ -112,7 +112,7 @@ __KERNEL_RCSID(0, "$NetBSD: altq_blue.c,v 1.23 2011/11/19 22:51:18 tls Exp $"); 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,9 +391,10 @@ blue_init(blue_t *rp, int flags, int pkttime, int blue_max_pmark, * 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) { blue_queue_t *rqp = (blue_queue_t *)ifq->altq_disc; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; int error = 0; if (blue_addq(rqp->rq_blue, rqp->rq_q, m, pktattr) == 0) diff --git a/sys/altq/altq_cbq.c b/sys/altq/altq_cbq.c index 97e6d20..9d9f384 100644 --- a/sys/altq/altq_cbq.c +++ b/sys/altq/altq_cbq.c @@ -82,8 +82,7 @@ static int cbq_class_destroy(cbq_state_t *, struct rm_class *); 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 *ubuf, int *nbytes) /* * 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,11 +496,12 @@ cbq_getqstats(struct pf_altq *a, void *ubuf, int *nbytes) */ static int -cbq_enqueue(struct ifaltq *ifq, struct mbuf *m, struct altq_pktattr *pktattr) +cbq_enqueue(struct ifaltq *ifq, struct mbuf *m) { cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc; struct rm_class *cl; struct m_tag *t; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; int len; /* grab class set by classifier */ diff --git a/sys/altq/altq_fifoq.c b/sys/altq/altq_fifoq.c index ff98c17..a906f0d 100644 --- a/sys/altq/altq_fifoq.c +++ b/sys/altq/altq_fifoq.c @@ -70,8 +70,7 @@ __KERNEL_RCSID(0, "$NetBSD: altq_fifoq.c,v 1.16 2007/03/04 05:59:01 christos Exp 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, void *addr, int flag, * 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; diff --git a/sys/altq/altq_hfsc.c b/sys/altq/altq_hfsc.c index dd45ce6..73a54da 100644 --- a/sys/altq/altq_hfsc.c +++ b/sys/altq/altq_hfsc.c @@ -90,8 +90,7 @@ static struct hfsc_class *hfsc_class_create(struct hfsc_if *, 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,11 +665,12 @@ 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 hfsc_if *hif = (struct hfsc_if *)ifq->altq_disc; struct hfsc_class *cl; struct m_tag *t; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; int len; /* grab class set by classifier */ diff --git a/sys/altq/altq_jobs.c b/sys/altq/altq_jobs.c index fc5e00f..3324d03 100644 --- a/sys/altq/altq_jobs.c +++ b/sys/altq/altq_jobs.c @@ -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,10 +490,11 @@ 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; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; int len; int return_flag; int pri; diff --git a/sys/altq/altq_priq.c b/sys/altq/altq_priq.c index 10c376c..c1df067 100644 --- a/sys/altq/altq_priq.c +++ b/sys/altq/altq_priq.c @@ -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,11 +438,12 @@ 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 priq_if *pif = (struct priq_if *)ifq->altq_disc; struct priq_class *cl; struct m_tag *t; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; int len; /* grab class set by classifier */ diff --git a/sys/altq/altq_red.c b/sys/altq/altq_red.c index a01be07..38f84fa 100644 --- a/sys/altq/altq_red.c +++ b/sys/altq/altq_red.c @@ -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,9 +1011,10 @@ 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) { red_queue_t *rqp = (red_queue_t *)ifq->altq_disc; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; if (red_addq(rqp->rq_red, rqp->rq_q, m, pktattr) < 0) return ENOBUFS; diff --git a/sys/altq/altq_rio.c b/sys/altq/altq_rio.c index d43c4b9..019dae8 100644 --- a/sys/altq/altq_rio.c +++ b/sys/altq/altq_rio.c @@ -190,7 +190,7 @@ static struct redparams default_rio_params[RIO_NDROPPREC] = { /* 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,9 +763,10 @@ rio_request(struct ifaltq *ifq, int req, void *arg) * 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) { rio_queue_t *rqp = (rio_queue_t *)ifq->altq_disc; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; int error = 0; if (rio_addq(rqp->rq_rio, rqp->rq_q, m, pktattr) == 0) diff --git a/sys/altq/altq_subr.c b/sys/altq/altq_subr.c index 2d6409b..2bb8bd2 100644 --- a/sys/altq/altq_subr.c +++ b/sys/altq/altq_subr.c @@ -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)) diff --git a/sys/altq/altq_wfq.c b/sys/altq/altq_wfq.c index 5961144..b0a8752 100644 --- a/sys/altq/altq_wfq.c +++ b/sys/altq/altq_wfq.c @@ -69,8 +69,7 @@ __KERNEL_RCSID(0, "$NetBSD: altq_wfq.c,v 1.20 2014/03/20 20:51:54 christos Exp $ 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,10 +248,11 @@ wfq_classify(void *clfier, struct mbuf *m, int af) } 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; + struct altq_pktattr *pktattr = &mp->m_pkthdr.pattr; int byte, error = 0; wfqp = (wfq_state_t *)ifq->altq_disc; diff --git a/sys/altq/if_altq.h b/sys/altq/if_altq.h index 1858e9d..887f7a1 100644 --- a/sys/altq/if_altq.h +++ b/sys/altq/if_altq.h @@ -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 */ diff --git a/sys/dev/ic/hd64570.c b/sys/dev/ic/hd64570.c index 9d7deb9..69e3760 100644 --- a/sys/dev/ic/hd64570.c +++ b/sys/dev/ic/hd64570.c @@ -798,7 +798,6 @@ sca_output( struct ifqueue *ifq = NULL; int s, error, len; short mflags; - ALTQ_DECL(struct altq_pktattr pktattr;) error = 0; @@ -811,7 +810,7 @@ sca_output( * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); /* * determine address family, and priority for this packet @@ -876,7 +875,7 @@ sca_output( } else IF_ENQUEUE(ifq, m); } else - IFQ_ENQUEUE(&ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error != 0) { splx(s); ifp->if_oerrors++; diff --git a/sys/dev/pci/if_lmc.c b/sys/dev/pci/if_lmc.c index 1533f08..deca057 100644 --- a/sys/dev/pci/if_lmc.c +++ b/sys/dev/pci/if_lmc.c @@ -3375,7 +3375,7 @@ ifnet_output(struct ifnet *ifp, struct mbuf *m, /* Some BSD QUEUE routines are not interrupt-safe. */ { DISABLE_INTR; /* noop in FreeBSD */ - IFQ_ENQUEUE(&ifp->if_snd, m, NULL, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); ENABLE_INTR; /* noop in FreeBSD */ } diff --git a/sys/dev/ppbus/if_plip.c b/sys/dev/ppbus/if_plip.c index 9b617fd..210a26a 100644 --- a/sys/dev/ppbus/if_plip.c +++ b/sys/dev/ppbus/if_plip.c @@ -704,7 +704,6 @@ lpoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct lp_softc * sc = ifp->if_softc; device_t dev = sc->ppbus_dev.sc_dev; device_t ppbus = device_parent(dev); - ALTQ_DECL(struct altq_pktattr pktattr;) int err; int s; @@ -731,7 +730,7 @@ lpoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, goto endoutput; } - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); IFQ_ENQUEUE(&ifp->if_snd, m, NULL, err); if(err == 0) { if((ifp->if_flags & IFF_OACTIVE) == 0) diff --git a/sys/dev/qbus/if_dmc.c b/sys/dev/qbus/if_dmc.c index 619e664..e5943b3 100644 --- a/sys/dev/qbus/if_dmc.c +++ b/sys/dev/qbus/if_dmc.c @@ -762,14 +762,13 @@ dmcoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, int type, error, s; struct mbuf *m = m0; struct dmc_header *dh; - ALTQ_DECL(struct altq_pktattr pktattr;) if ((ifp->if_flags & IFF_UP) == 0) { error = ENETDOWN; goto bad; } - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); switch (dst->sa_family) { #ifdef INET @@ -807,7 +806,7 @@ dmcoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, * not yet active. */ s = splnet(); - IFQ_ENQUEUE(&ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error) { /* mbuf is already freed */ splx(s); diff --git a/sys/dev/usb/if_upl.c b/sys/dev/usb/if_upl.c index 20003a3..6a80a7f 100644 --- a/sys/dev/usb/if_upl.c +++ b/sys/dev/usb/if_upl.c @@ -998,7 +998,6 @@ upl_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct rtentry *rt0) { int s, len, error; - ALTQ_DECL(struct altq_pktattr pktattr;) DPRINTFN(10,("%s: %s: enter\n", device_xname(((struct upl_softc *)ifp->if_softc)->sc_dev), @@ -1008,7 +1007,7 @@ upl_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, * if the queueing discipline needs packet classification, * do it now. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); len = m->m_pkthdr.len; s = splnet(); @@ -1016,7 +1015,7 @@ upl_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, * Queue message on interface, and start output if interface * not yet active. */ - IFQ_ENQUEUE(&ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error) { /* mbuf is already freed */ splx(s); diff --git a/sys/dev/usb/uhso.c b/sys/dev/usb/uhso.c index fc7f75b..8805a69 100644 --- a/sys/dev/usb/uhso.c +++ b/sys/dev/usb/uhso.c @@ -2340,18 +2340,17 @@ Static int uhso_ifnet_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct rtentry *rt0) { - ALTQ_DECL(struct altq_pktattr pktattr); int error; if (!ISSET(ifp->if_flags, IFF_RUNNING)) return EIO; - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); switch (dst->sa_family) { #ifdef INET case AF_INET: - error = ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + error = ifq_enqueue(ifp, m); break; #endif diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index f2056da..7845d9a 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -612,6 +612,10 @@ m_gethdr(int nowait, int type) m->m_pkthdr.csum_data = 0; SLIST_INIT(&m->m_pkthdr.tags); + m->m_pkthdr.pattr.pattr_class = NULL; + m->m_pkthdr.pattr.pattr_af = AF_UNSPEC; + m->m_pkthdr.pattr.pattr_hdr = NULL; + return m; } diff --git a/sys/net/if.c b/sys/net/if.c index 32adf5c..de3f8c8 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -2672,15 +2672,14 @@ ifreq_setaddr(u_long cmd, struct ifreq *ifr, const struct sockaddr *sa) * not yet active. */ int -ifq_enqueue(struct ifnet *ifp, struct mbuf *m - ALTQ_COMMA ALTQ_DECL(struct altq_pktattr *pktattr)) +ifq_enqueue(struct ifnet *ifp, struct mbuf *m) { int len = m->m_pkthdr.len; int mflags = m->m_flags; int s = splnet(); int error; - IFQ_ENQUEUE(&ifp->if_snd, m, pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error != 0) goto out; ifp->if_obytes += len; @@ -2697,8 +2696,7 @@ out: * Queue message on interface, possibly using a second fast queue */ int -ifq_enqueue2(struct ifnet *ifp, struct ifqueue *ifq, struct mbuf *m - ALTQ_COMMA ALTQ_DECL(struct altq_pktattr *pktattr)) +ifq_enqueue2(struct ifnet *ifp, struct ifqueue *ifq, struct mbuf *m) { int error = 0; @@ -2715,7 +2713,7 @@ ifq_enqueue2(struct ifnet *ifp, struct ifqueue *ifq, struct mbuf *m } else IF_ENQUEUE(ifq, m); } else - IFQ_ENQUEUE(&ifp->if_snd, m, pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error != 0) { ++ifp->if_oerrors; return error; diff --git a/sys/net/if.h b/sys/net/if.h index f7bb337..95d0439 100644 --- a/sys/net/if.h +++ b/sys/net/if.h @@ -754,14 +754,11 @@ struct if_addrprefreq { #ifdef _KERNEL #ifdef ALTQ -#define ALTQ_DECL(x) x -#define ALTQ_COMMA , - -#define IFQ_ENQUEUE(ifq, m, pattr, err) \ +#define IFQ_ENQUEUE(ifq, m, err) \ do { \ IFQ_LOCK((ifq)); \ if (ALTQ_IS_ENABLED((ifq))) \ - ALTQ_ENQUEUE((ifq), (m), (pattr), (err)); \ + ALTQ_ENQUEUE((ifq), (m), (err)); \ else { \ if (IF_QFULL((ifq))) { \ m_freem((m)); \ @@ -815,23 +812,21 @@ do { \ (ifq)->altq_flags |= ALTQF_READY; \ } while (/*CONSTCOND*/ 0) -#define IFQ_CLASSIFY(ifq, m, af, pattr) \ +#define IFQ_CLASSIFY(ifq, m, af) \ do { \ IFQ_LOCK((ifq)); \ if (ALTQ_IS_ENABLED((ifq))) { \ + struct altq_pktattr *pattr = &(m)->m_pkthdr.pattr; \ if (ALTQ_NEEDS_CLASSIFY((ifq))) \ - (pattr)->pattr_class = (*(ifq)->altq_classify) \ + pattr->pattr_class = (*(ifq)->altq_classify) \ ((ifq)->altq_clfier, (m), (af)); \ - (pattr)->pattr_af = (af); \ - (pattr)->pattr_hdr = mtod((m), void *); \ + pattr->pattr_af = (af); \ + pattr->pattr_hdr = mtod((m), void *); \ } \ IFQ_UNLOCK((ifq)); \ } while (/*CONSTCOND*/ 0) #else /* ! ALTQ */ -#define ALTQ_DECL(x) /* nothing */ -#define ALTQ_COMMA - -#define IFQ_ENQUEUE(ifq, m, pattr, err) \ +#define IFQ_ENQUEUE(ifq, m, err) \ do { \ IFQ_LOCK((ifq)); \ if (IF_QFULL((ifq))) { \ @@ -869,7 +864,7 @@ do { \ #define IFQ_SET_READY(ifq) /* nothing */ -#define IFQ_CLASSIFY(ifq, m, af, pattr) /* nothing */ +#define IFQ_CLASSIFY(ifq, m, af) /* nothing */ #endif /* ALTQ */ @@ -945,10 +940,8 @@ void p2p_rtrequest(int, struct rtentry *, const struct rt_addrinfo *); void if_clone_attach(struct if_clone *); void if_clone_detach(struct if_clone *); -int ifq_enqueue(struct ifnet *, struct mbuf * ALTQ_COMMA - ALTQ_DECL(struct altq_pktattr *)); -int ifq_enqueue2(struct ifnet *, struct ifqueue *, struct mbuf * ALTQ_COMMA - ALTQ_DECL(struct altq_pktattr *)); +int ifq_enqueue(struct ifnet *, struct mbuf *); +int ifq_enqueue2(struct ifnet *, struct ifqueue *, struct mbuf *); int loioctl(struct ifnet *, u_long, void *); void loopattach(int); diff --git a/sys/net/if_arcsubr.c b/sys/net/if_arcsubr.c index c75d0f4..2f2c112 100644 --- a/sys/net/if_arcsubr.c +++ b/sys/net/if_arcsubr.c @@ -122,7 +122,6 @@ arc_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, int error, newencoding; uint8_t atype, adst, myself; int tfrags, sflag, fsflag, rsflag; - ALTQ_DECL(struct altq_pktattr pktattr;) if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) return (ENETDOWN); /* m, m1 aren't initialized yet */ @@ -138,7 +137,7 @@ arc_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, * if the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); switch (dst->sa_family) { #ifdef INET @@ -274,8 +273,7 @@ arc_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, ah->arc_flag = rsflag; ah->arc_seqid = ac->ac_seqid; - if ((error = ifq_enqueue(ifp, m ALTQ_COMMA - ALTQ_DECL(&pktattr))) != 0) + if ((error = ifq_enqueue(ifp, m)) != 0) return (error); m = m1; @@ -323,7 +321,7 @@ arc_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, ah->arc_shost = myself; } - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m1) diff --git a/sys/net/if_atmsubr.c b/sys/net/if_atmsubr.c index 8d1414a..50b6cc2 100644 --- a/sys/net/if_atmsubr.c +++ b/sys/net/if_atmsubr.c @@ -98,7 +98,6 @@ atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, struct mbuf *m = m0; struct atmllc *atmllc; uint32_t atm_flags; - ALTQ_DECL(struct altq_pktattr pktattr;) if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) senderr(ENETDOWN); @@ -108,7 +107,7 @@ atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, * do it before prepending link headers. */ IFQ_CLASSIFY(&ifp->if_snd, m, - (dst != NULL ? dst->sa_family : AF_UNSPEC), &pktattr); + (dst != NULL ? dst->sa_family : AF_UNSPEC)); /* * check for non-native ATM traffic (dst != NULL) @@ -179,7 +178,7 @@ atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, } } - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m) diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 02601b4..2d7de93 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -1345,7 +1345,6 @@ void bridge_enqueue(struct bridge_softc *sc, struct ifnet *dst_ifp, struct mbuf *m, int runfilt) { - ALTQ_DECL(struct altq_pktattr pktattr;) int len, error; short mflags; @@ -1374,14 +1373,14 @@ bridge_enqueue(struct bridge_softc *sc, struct ifnet *dst_ifp, struct mbuf *m, */ 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 */ len = m->m_pkthdr.len; mflags = m->m_flags; - IFQ_ENQUEUE(&dst_ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&dst_ifp->if_snd, m, error); if (error) { /* mbuf is already freed */ diff --git a/sys/net/if_ecosubr.c b/sys/net/if_ecosubr.c index 9cbaa59..d2b3610 100644 --- a/sys/net/if_ecosubr.c +++ b/sys/net/if_ecosubr.c @@ -178,7 +178,6 @@ eco_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, void *tha; struct eco_arp *ecah; #endif - ALTQ_DECL(struct altq_pktattr pktattr;) if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) senderr(ENETDOWN); @@ -186,7 +185,7 @@ eco_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); hdrcmplt = 0; retry_delay = hz / 16; @@ -294,7 +293,7 @@ eco_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, if (m == NULL) return (0); - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m) @@ -849,6 +848,6 @@ eco_retry(void *arg) ifp = er->er_ifp; m = er->er_packet; LIST_REMOVE(er, er_link); - (void)ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(NULL)); + (void)ifq_enqueue(ifp, m); free(er, M_TEMP); } diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 989abbe..04ae6ba 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -197,7 +197,6 @@ ether_output(struct ifnet * const ifp0, struct mbuf * const m0, struct mbuf *mcopy = NULL; struct ether_header *eh; struct ifnet *ifp = ifp0; - ALTQ_DECL(struct altq_pktattr pktattr;) #ifdef INET struct arphdr *ah; #endif /* INET */ @@ -418,9 +417,9 @@ ether_output(struct ifnet * const ifp0, struct mbuf * const m0, * address family/header pointer in the pktattr. */ if (ALTQ_IS_ENABLED(&ifp->if_snd)) - altq_etherclassify(&ifp->if_snd, m, &pktattr); + altq_etherclassify(&ifp->if_snd, m); #endif - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m) @@ -435,10 +434,10 @@ 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; + struct altq_pktattr *pktattr = &m->m_pkthdr.pattr; uint16_t ether_type; int hlen, af, hdrsize; void *hdr; diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 4962809..ac9b6d9 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -195,7 +195,6 @@ fddi_output(struct ifnet *ifp0, struct mbuf *m0, const struct sockaddr *dst, struct fddi_header *fh; struct mbuf *mcopy = NULL; struct ifnet *ifp = ifp0; - ALTQ_DECL(struct altq_pktattr pktattr;) MCLAIM(m, ifp->if_mowner); @@ -224,7 +223,7 @@ fddi_output(struct ifnet *ifp0, struct mbuf *m0, const struct sockaddr *dst, * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); switch (dst->sa_family) { @@ -400,7 +399,7 @@ fddi_output(struct ifnet *ifp0, struct mbuf *m0, const struct sockaddr *dst, if (ifp != ifp0) ifp0->if_obytes += m->m_pkthdr.len; #endif /* NCARP > 0 */ - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m) diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 83afafe..a0a3f76 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -310,10 +310,9 @@ gif_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, { struct gif_softc *sc = ifp->if_softc; int error = 0; - ALTQ_DECL(struct altq_pktattr pktattr;) int s; - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); if ((error = gif_check_nesting(ifp, m)) != 0) { m_free(m); @@ -344,7 +343,7 @@ gif_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, m->m_pkthdr.csum_data = 0; s = splnet(); - IFQ_ENQUEUE(&ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error) { splx(s); goto end; diff --git a/sys/net/if_hippisubr.c b/sys/net/if_hippisubr.c index 67ea509..f446810 100644 --- a/sys/net/if_hippisubr.c +++ b/sys/net/if_hippisubr.c @@ -94,7 +94,6 @@ hippi_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, struct hippi_header *hh; uint32_t *cci; uint32_t d2_len; - ALTQ_DECL(struct altq_pktattr pktattr;) if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING)) senderr(ENETDOWN); @@ -107,7 +106,7 @@ hippi_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); switch (dst->sa_family) { #ifdef INET @@ -185,7 +184,7 @@ hippi_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, m_copyback(m, m->m_pkthdr.len, 8 - d2_len % 8, (void *) buffer); } - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m) diff --git a/sys/net/if_ieee1394subr.c b/sys/net/if_ieee1394subr.c index 9812e90..2fdaa1c 100644 --- a/sys/net/if_ieee1394subr.c +++ b/sys/net/if_ieee1394subr.c @@ -92,7 +92,6 @@ ieee1394_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, struct mbuf *mcopy = NULL; struct ieee1394_hwaddr *hwdst, baddr; const struct ieee1394_hwaddr *myaddr; - ALTQ_DECL(struct altq_pktattr pktattr;) #ifdef INET struct arphdr *ah; #endif /* INET */ @@ -106,7 +105,7 @@ ieee1394_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m0, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m0, dst->sa_family); /* * For unicast, we make a tag to store the lladdr of the @@ -229,7 +228,7 @@ ieee1394_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, splx(s); senderr(ENOBUFS); } - IFQ_ENQUEUE(&ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); if (error) { /* mbuf is already freed */ splx(s); diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 1af29fb..5d36d29 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -241,14 +241,13 @@ looutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, */ if ((ALTQ_IS_ENABLED(&ifp->if_snd) || TBR_IS_ENABLED(&ifp->if_snd)) && ifp->if_start == lostart) { - struct altq_pktattr pktattr; int error; /* * If the queueing discipline needs packet classification, * do it before prepending the link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); M_PREPEND(m, sizeof(uint32_t), M_DONTWAIT); if (m == NULL) @@ -256,7 +255,7 @@ looutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, *(mtod(m, uint32_t *)) = dst->sa_family; s = splnet(); - IFQ_ENQUEUE(&ifp->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m, error); (*ifp->if_start)(ifp); splx(s); return (error); diff --git a/sys/net/if_ppp.c b/sys/net/if_ppp.c index 5863121..726f42a 100644 --- a/sys/net/if_ppp.c +++ b/sys/net/if_ppp.c @@ -851,7 +851,6 @@ pppoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, struct ifqueue *ifq; enum NPmode mode; int len; - ALTQ_DECL(struct altq_pktattr pktattr;) if (sc->sc_devp == NULL || (ifp->if_flags & IFF_RUNNING) == 0 || ((ifp->if_flags & IFF_UP) == 0 && dst->sa_family != AF_UNSPEC)) { @@ -859,7 +858,7 @@ pppoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, goto bad; } - IFQ_CLASSIFY(&ifp->if_snd, m0, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m0, dst->sa_family); /* * Compute PPP header. @@ -991,8 +990,7 @@ pppoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, sc->sc_npqtail = &m0->m_nextpkt; } else { ifq = (m0->m_flags & M_HIGHPRI) ? &sc->sc_fastq : NULL; - if ((error = ifq_enqueue2(&sc->sc_if, ifq, m0 - ALTQ_COMMA ALTQ_DECL(&pktattr))) != 0) { + if ((error = ifq_enqueue2(&sc->sc_if, ifq, m0)) != 0) { splx(s); sc->sc_if.if_oerrors++; sc->sc_stats.ppp_oerrors++; @@ -1045,8 +1043,7 @@ ppp_requeue(struct ppp_softc *sc) *mpp = m->m_nextpkt; m->m_nextpkt = NULL; ifq = (m->m_flags & M_HIGHPRI) ? &sc->sc_fastq : NULL; - if ((error = ifq_enqueue2(&sc->sc_if, ifq, m ALTQ_COMMA - ALTQ_DECL(NULL))) != 0) { + if ((error = ifq_enqueue2(&sc->sc_if, ifq, m)) != 0) { sc->sc_if.if_oerrors++; sc->sc_stats.ppp_oerrors++; } diff --git a/sys/net/if_sl.c b/sys/net/if_sl.c index 3fb55e2..f0a0886 100644 --- a/sys/net/if_sl.c +++ b/sys/net/if_sl.c @@ -439,9 +439,8 @@ sloutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct ip *ip; struct ifqueue *ifq = NULL; int s, error; - ALTQ_DECL(struct altq_pktattr pktattr;) - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); /* * `Cannot happen' (see slioctl). Someday we will extend @@ -492,8 +491,7 @@ sloutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, if ((ip->ip_tos & IPTOS_LOWDELAY) != 0) ifq = &sc->sc_fastq; #endif - if ((error = ifq_enqueue2(ifp, ifq, m ALTQ_COMMA - ALTQ_DECL(&pktattr))) != 0) { + if ((error = ifq_enqueue2(ifp, ifq, m)) != 0) { splx(s); return error; } diff --git a/sys/net/if_spppsubr.c b/sys/net/if_spppsubr.c index 5c71239..b5fce71 100644 --- a/sys/net/if_spppsubr.c +++ b/sys/net/if_spppsubr.c @@ -647,7 +647,6 @@ sppp_output(struct ifnet *ifp, struct mbuf *m, struct ifqueue *ifq = NULL; /* XXX */ int s, error = 0; uint16_t protocol; - ALTQ_DECL(struct altq_pktattr pktattr;) s = splnet(); @@ -675,7 +674,7 @@ sppp_output(struct ifnet *ifp, struct mbuf *m, * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); #ifdef INET if (dst->sa_family == AF_INET) { @@ -824,7 +823,7 @@ sppp_output(struct ifnet *ifp, struct mbuf *m, } - error = ifq_enqueue2(ifp, ifq, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + error = ifq_enqueue2(ifp, ifq, m); if (error == 0) { /* diff --git a/sys/net/if_strip.c b/sys/net/if_strip.c index 0cc79a5..1151758 100644 --- a/sys/net/if_strip.c +++ b/sys/net/if_strip.c @@ -730,7 +730,6 @@ stripoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, struct ifqueue *ifq; int s, error; u_char dl_addrbuf[STARMODE_ADDR_LEN+1]; - ALTQ_DECL(struct altq_pktattr pktattr;) /* * Verify tty line is up and alive. @@ -854,8 +853,7 @@ stripoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, splx(s); s = splnet(); - if ((error = ifq_enqueue2(ifp, ifq, m ALTQ_COMMA - ALTQ_DECL(&pktattr))) != 0) { + if ((error = ifq_enqueue2(ifp, ifq, m)) != 0) { splx(s); return error; } diff --git a/sys/net/if_tokensubr.c b/sys/net/if_tokensubr.c index bc1d40f..1e006e7 100644 --- a/sys/net/if_tokensubr.c +++ b/sys/net/if_tokensubr.c @@ -169,7 +169,6 @@ token_output(struct ifnet *ifp0, struct mbuf *m0, const struct sockaddr *dst, struct token_rif bcastrif; struct ifnet *ifp = ifp0; size_t riflen = 0; - ALTQ_DECL(struct altq_pktattr pktattr;) #if NCARP > 0 if (ifp->if_type == IFT_CARP) { @@ -197,7 +196,7 @@ token_output(struct ifnet *ifp0, struct mbuf *m0, const struct sockaddr *dst, * If the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); switch (dst->sa_family) { @@ -370,7 +369,7 @@ send: } #endif /* NCARP > 0 */ - return ifq_enqueue(ifp, m ALTQ_COMMA ALTQ_DECL(&pktattr)); + return ifq_enqueue(ifp, m); bad: if (m) m_freem(m); diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index e5778bb..753abb1 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -503,7 +503,6 @@ tun_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, int mlen; uint32_t *af; #endif - ALTQ_DECL(struct altq_pktattr pktattr;) s = splnet(); mutex_enter(&tp->tun_lock); @@ -520,7 +519,7 @@ tun_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, * if the queueing discipline needs packet classification, * do it before prepending link headers. */ - IFQ_CLASSIFY(&ifp->if_snd, m0, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m0, dst->sa_family); bpf_mtap_af(ifp, dst->sa_family, m0); @@ -564,7 +563,7 @@ tun_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, } /* FALLTHROUGH */ case AF_UNSPEC: - IFQ_ENQUEUE(&ifp->if_snd, m0, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m0, error); if (error) { ifp->if_collisions++; error = EAFNOSUPPORT; diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c index 936016b..e2d1793 100644 --- a/sys/net/if_vlan.c +++ b/sys/net/if_vlan.c @@ -686,7 +686,6 @@ vlan_start(struct ifnet *ifp) struct ethercom *ec = (void *) ifv->ifv_p; struct mbuf *m; int error; - ALTQ_DECL(struct altq_pktattr pktattr;) #ifndef NET_MPSAFE KASSERT(KERNEL_LOCKED_P()); @@ -709,7 +708,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: @@ -808,7 +807,7 @@ vlan_start(struct ifnet *ifp) * Send it, precisely as the parent's output routine * would have. We are already running at splnet. */ - IFQ_ENQUEUE(&p->if_snd, m, &pktattr, error); + IFQ_ENQUEUE(&p->if_snd, m, error); if (error) { /* mbuf is already freed */ ifp->if_oerrors++; diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c index 37bcb7b..576f122 100644 --- a/sys/net80211/ieee80211_input.c +++ b/sys/net80211/ieee80211_input.c @@ -698,7 +698,6 @@ ieee80211_deliver_data(struct ieee80211com *ic, { struct ether_header *eh = mtod(m, struct ether_header *); struct ifnet *ifp = ic->ic_ifp; - ALTQ_DECL(struct altq_pktattr pktattr;) int error; /* perform as a bridge within the AP */ @@ -741,12 +740,11 @@ ieee80211_deliver_data(struct ieee80211com *ic, 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; - IFQ_ENQUEUE(&ifp->if_snd, m1, &pktattr, error); + IFQ_ENQUEUE(&ifp->if_snd, m1, error); if (error) { ifp->if_omcasts++; m = NULL; diff --git a/sys/netisdn/i4b_ipr.c b/sys/netisdn/i4b_ipr.c index 238f748..e7dd856 100644 --- a/sys/netisdn/i4b_ipr.c +++ b/sys/netisdn/i4b_ipr.c @@ -421,7 +421,6 @@ iripoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, int s, rv; struct ifqueue *ifq = NULL; struct ip *ip; - ALTQ_DECL(struct altq_pktattr pktattr;) s = splnet(); @@ -515,7 +514,7 @@ iripoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, * else (i.e. ftp traffic) put it into the "normal" queue */ - IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family, &pktattr); + IFQ_CLASSIFY(&ifp->if_snd, m, dst->sa_family); ip = mtod(m, struct ip *); /* get ptr to ip header */ @@ -540,7 +539,7 @@ iripoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, } IF_ENQUEUE(ifq, m); } else { - IFQ_ENQUEUE(&sc->sc_if.if_snd, m, &pktattr, rv); + IFQ_ENQUEUE(&sc->sc_if.if_snd, m, rv); if (rv != 0) { sc->sc_if.if_oerrors++; splx(s); diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 75f4d64..113778c 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -73,6 +73,7 @@ #endif #include #include +#include #if defined(_KERNEL) #include #endif /* defined(_KERNEL) */ @@ -169,6 +170,9 @@ struct m_hdr { * be bit-wise inverted (the final step in the calculation of an IP * checksum) -- this is so we can accumulate the checksum for fragmented * packets during reassembly. + * + * Size ILP32: 36 + * LP64: 56 */ struct pkthdr { struct ifnet *rcvif; /* rcv interface */ @@ -177,6 +181,8 @@ struct pkthdr { int csum_flags; /* checksum flags */ uint32_t csum_data; /* checksum data */ u_int segsz; /* segment size */ + + struct altq_pktattr pattr; /* ALTQ packet attribute */ }; /*