svn commit: r338253 - head/sbin/pfctl

Stefan Esser se at freebsd.org
Thu Aug 23 17:05:46 UTC 2018


Am 23.08.18 um 18:10 schrieb Patrick Kelsey:
> Author: pkelsey
> Date: Thu Aug 23 16:10:28 2018
> New Revision: 338253
> URL: https://svnweb.freebsd.org/changeset/base/338253
> 
> Log:
>   Extend tbrsize heuristic in pfctl(8) to provide a sensible value for
>   higher bandwidth interfaces.  The new value is used above 2.5 Gbps,
>   which is the highest standard rate that could be used prior to
>   r338209, so the default behavior for all existing systems should
>   remain the same.
>   
>   The value of 128 chosen is a balance between being big enough to
>   reduce potential precision/quantization effects stemming from frequent
>   bucket refills over small time intervals and being small enough to
>   prevent a greedy driver from burst dequeuing more packets than it has
>   available hardware ring slots for whenever altq transitions from idle
>   to backlogged.
>   
>   Reviewed by:	jmallett, kp
>   MFC after:	2 weeks
>   Sponsored by:	RG Nets
>   Differential Revision: https://reviews.freebsd.org/D16852
> 
> Modified:
>   head/sbin/pfctl/pfctl_altq.c
> 
> Modified: head/sbin/pfctl/pfctl_altq.c
> ==============================================================================
> --- head/sbin/pfctl/pfctl_altq.c	Thu Aug 23 15:01:27 2018	(r338252)
> +++ head/sbin/pfctl/pfctl_altq.c	Thu Aug 23 16:10:28 2018	(r338253)
> @@ -299,8 +299,10 @@ eval_pfaltq(struct pfctl *pf, struct pf_altq *pa, stru
>  			size = 4;
>  		else if (rate <= 200 * 1000 * 1000)
>  			size = 8;
> -		else
> +		else if (rate <= 2500 * 1000 * 1000)
>  			size = 24;
> +		else
> +			size = 128;
>  		size = size * getifmtu(pa->ifname);
>  		pa->tbrsize = size;
>  	}
> 

This breaks the build on my amd64 box:

/usr/svn/base/head/sbin/pfctl/pfctl_altq.c:302:32: error: overflow in
expression; result is -1794967296 with type 'int' [-Werror,-Winteger-overflow]
                else if (rate <= 2500 * 1000 * 1000)
                                             ^

While "rate" is unsigned long, the expression being calculated is not ...

Regards, STefan


More information about the svn-src-head mailing list