Interesting TCP issue

Steve Watt steve at Watt.COM
Sat Jan 20 09:18:49 UTC 2007

In <459AD141.5010502 at>, Julian Elischer wrote:

[ Snip discussion of symptoms of window scaling broken when
talking to at least the skype mail servers. ]

>we have seen this since 4.x
>I think a fix may be in 7.0 but I'm not sure..
>I thin kthere is a problem when the far end sets the window down to 1 
>but scales it by a factor of 2^{big number}.
>Andre, can you check out this problem and MFC the correct fix
>if it is indeed the same problem in 6.2?

It is the same problem; I took the (one-line) fix as indicated by


(well, not, which doesn't seem to exist at the moment),
and applied the diff from 1.84 to
1.85 and to a 6.2-PRERELEASE box updated around 25 Dec 06.
It works like a charm.

I would vote to MFC 1.85 now that 6.2 is out.

The diff, for those who are following along at home, is:

RCS file: /usr/local/www/cvsroot/FreeBSD/src/sys/netinet/tcp_syncache.c,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -p -r1.84 -r1.85
--- src/sys/netinet/tcp_syncache.c	2006/02/09 21:29:02	1.84
+++ src/sys/netinet/tcp_syncache.c	2006/02/28 23:05:59	1.85
@@ -682,7 +682,7 @@ syncache_socket(sc, lso, m)
 		tp->t_flags |= TF_NOOPT;
 	if (sc->sc_flags & SCF_WINSCALE) {
 		tp->t_flags |= TF_REQ_SCALE|TF_RCVD_SCALE;
-		tp->requested_s_scale = sc->sc_requested_s_scale;
+		tp->snd_scale = sc->sc_requested_s_scale;
 		tp->request_r_scale = sc->sc_request_r_scale;
 	if (sc->sc_flags & SCF_TIMESTAMP) {

Steve Watt KD6GGD  PP-ASEL-IA          ICBM: 121W 56' 57.5" / 37N 20' 15.3"
 Internet: steve @ Watt.COM                      Whois: SW32-ARIN
   Free time?  There's no such thing.  It just comes in varying prices...

More information about the freebsd-hackers mailing list