Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Apr 2009 12:19:59 +0200 (CEST)
From:      sthaug@nethelp.no
To:        bzeeb-lists@lists.zabbadoz.net
Cc:        freebsd-net@freebsd.org
Subject:   Re: IPv6 window scaling factor always 1 on initial SYN
Message-ID:  <20090406.121959.74751582.sthaug@nethelp.no>
In-Reply-To: <20090405215842.C15361@maildrop.int.zabbadoz.net>
References:  <20090405.231044.74688369.sthaug@nethelp.no> <20090405214757.E15361@maildrop.int.zabbadoz.net> <20090405215842.C15361@maildrop.int.zabbadoz.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> Ok, both versions had:	< so->so_rcv.sb_hiwat)
> 
> http://svn.freebsd.org/viewvc/base?view=revision&revision=166403
> 
> changed it for IPv4 the first time,
> 
> http://svn.freebsd.org/viewvc/base?view=revision&revision=172795
> 
> changed it a second time for IPv4.
> 
> Noone changed the IPv6 version.
> 
> The syncache already seems to do it for both v4/v6 (common code).
> 
> Can you try changing it to < sb_max) for IPv6 as well and see if
> things work (better) for you?

I changed it, and that worked like a dream. Now I get basically the
same throughput with IPv4 and IPv6. There are of course still issues
like lots of IPv6 tunnels that add extra latency - but that's not the
fault of FreeBSD.

Anyway, thanks for your work. Below is a context diff (against 7-STABLE
cvsupped last night). Do we need a PR to get this into FreeBSD?

Steinar Haug, Nethelp consulting, sthaug@nethelp.no
----------------------------------------------------------------------
*** tcp_usrreq.c.orig	Sun Apr  5 22:51:49 2009
--- tcp_usrreq.c	Mon Apr  6 11:15:11 2009
***************
*** 1153,1159 ****
  
  	/* Compute window scaling to request.  */
  	while (tp->request_r_scale < TCP_MAX_WINSHIFT &&
! 	    (TCP_MAXWIN << tp->request_r_scale) < so->so_rcv.sb_hiwat)
  		tp->request_r_scale++;
  
  	soisconnecting(so);
--- 1153,1159 ----
  
  	/* Compute window scaling to request.  */
  	while (tp->request_r_scale < TCP_MAX_WINSHIFT &&
! 	    (TCP_MAXWIN << tp->request_r_scale) < sb_max)
  		tp->request_r_scale++;
  
  	soisconnecting(so);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090406.121959.74751582.sthaug>