Module Name: src Committed By: ozaki-r Date: Wed Jul 21 07:34:44 UTC 2021
Modified Files: src/sys/altq: altq_cbq.c altq_rmclass.c Log Message: altq: fix CBQ with RED and/or pf To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/altq/altq_cbq.c cvs rdiff -u -r1.28 -r1.29 src/sys/altq/altq_rmclass.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_cbq.c diff -u src/sys/altq/altq_cbq.c:1.35 src/sys/altq/altq_cbq.c:1.36 --- src/sys/altq/altq_cbq.c:1.35 Wed Jul 21 06:33:30 2021 +++ src/sys/altq/altq_cbq.c Wed Jul 21 07:34:44 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_cbq.c,v 1.35 2021/07/21 06:33:30 ozaki-r Exp $ */ +/* $NetBSD: altq_cbq.c,v 1.36 2021/07/21 07:34:44 ozaki-r 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.35 2021/07/21 06:33:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_cbq.c,v 1.36 2021/07/21 07:34:44 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -306,6 +306,7 @@ cbq_remove_altq(struct pf_altq *a) return (0); } +#define NSEC_TO_PSEC(s) ((uint64_t)(s) * 1000 * 1000) int cbq_add_queue(struct pf_altq *a) { @@ -384,7 +385,7 @@ cbq_add_queue(struct pf_altq *a) */ if ((opts->flags & CBQCLF_ROOTCLASS) != 0) { error = rmc_init(cbqp->ifnp.ifq_, &cbqp->ifnp, - opts->ps_per_byte, cbqrestart, a->qlimit, RM_MAXQUEUED, + NSEC_TO_PSEC(opts->ns_per_byte), cbqrestart, a->qlimit, RM_MAXQUEUED, opts->maxidle, opts->minidle, opts->offtime, opts->flags); if (error != 0) @@ -392,7 +393,7 @@ cbq_add_queue(struct pf_altq *a) cl = cbqp->ifnp.root_; } else { cl = rmc_newclass(a->priority, - &cbqp->ifnp, opts->ps_per_byte, + &cbqp->ifnp, NSEC_TO_PSEC(opts->ns_per_byte), rmc_delay_action, a->qlimit, parent, borrow, opts->maxidle, opts->minidle, opts->offtime, opts->pktsize, opts->flags); Index: src/sys/altq/altq_rmclass.c diff -u src/sys/altq/altq_rmclass.c:1.28 src/sys/altq/altq_rmclass.c:1.29 --- src/sys/altq/altq_rmclass.c:1.28 Wed Jul 21 06:49:25 2021 +++ src/sys/altq/altq_rmclass.c Wed Jul 21 07:34:44 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_rmclass.c,v 1.28 2021/07/21 06:49:25 ozaki-r Exp $ */ +/* $NetBSD: altq_rmclass.c,v 1.29 2021/07/21 07:34:44 ozaki-r Exp $ */ /* $KAME: altq_rmclass.c,v 1.19 2005/04/13 03:44:25 suz Exp $ */ /* @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_rmclass.c,v 1.28 2021/07/21 06:49:25 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_rmclass.c,v 1.29 2021/07/21 07:34:44 ozaki-r Exp $"); /* #ident "@(#)rm_class.c 1.48 97/12/05 SMI" */ @@ -287,7 +287,7 @@ rmc_newclass(int pri, struct rm_ifdat *i if (flags & RMCF_CLEARDSCP) red_flags |= RIOF_CLEARDSCP; #endif - red_pkttime = nsecPerByte * pktsize / 1000; + red_pkttime = PSEC_TO_NSEC(psecPerByte) * pktsize / 1000; if (flags & RMCF_RED) { cl->red_ = red_alloc(0, 0,