[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ALTQ conditioners (openBSD 3.2 stable)



--- Kenjiro Cho <kjc@csl.sony.co.jp> wrote:
> 
> Mathew S <mathewsss@yahoo.com> wrote:
> > When I look at "altqstat -I xl0" the HTTP packets are never marked.
> > They are always passed through without any marking.
> > I also looked at the packet sniffer on the 20.0.1.0 network
> > and the HTTP packets coming from 10.0.1.5 are not marked.
> 
> It is my oversight.
> altq expects the ip_off field in the network byte order but the field
> is actually in the host byte order after the altq hook was moved below
> the pf hook.  As a result, when port numbers are specified, altq
> checks the ip_off filed and thinks the DF bit as a frag offset.
> 
> The attached patch to sys/netinet/ip_input.c should fix it.
> (3.3 doesn't have this part of the code.)
> 
> -Kenjiro

Thanks for your reply.
Does this problem exist in OpenBSD 3.1 too ?
If so, can I apply this patch to OpenBSD 3.1 ?
Would appreciate your reply.

-Mathew


> 
> --- ip_input.c-	Fri May  2 15:09:09 2003
> +++ ip_input.c	Fri May  2 15:11:01 2003
> @@ -402,9 +402,16 @@
>  #endif
>  
>  #ifdef ALTQ
> -	if (altq_input != NULL && (*altq_input)(m, AF_INET) == 0)
> -		/* packet is dropped by traffic conditioner */
> -		return;
> +	if (altq_input != NULL) {
> +		int	rv;
> +
> +		/* altq expects ip_off in the network order */
> +		HTONS(ip->ip_off);
> +		rv = (*altq_input)(m, AF_INET);
> +		NTOHS(ip->ip_off);
> +		if (rv == 0)
> +			/* packet is dropped by traffic conditioner */
> +			return;
>  #endif
>  
>  	/*


__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com