Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Aug 2007 16:50:47 +0200
From:      Daniel Hartmeier <daniel@benzedrine.cx>
To:        Jacek Zapala <jacek@ipv6.jacek.it.pl>
Cc:        freebsd-net@freebsd.org
Subject:   Re: kern/115413: [ipv6] ipv6 pmtu not working
Message-ID:  <20070821145047.GC32421@insomnia.benzedrine.cx>
In-Reply-To: <1187707117.846.3.camel@localhost.localdomain>
References:  <200708211010.l7LAA6V7082258@freefall.freebsd.org> <20070821121118.GF27160@insomnia.benzedrine.cx> <1187703472.22531.4.camel@localhost.localdomain> <20070821135048.GA32421@insomnia.benzedrine.cx> <1187705811.30269.5.camel@localhost.localdomain> <20070821143125.GB32421@insomnia.benzedrine.cx> <1187707117.846.3.camel@localhost.localdomain>

next in thread | previous in thread | raw e-mail | index | archive | help
Could you possibly try the patch below, and see if it fixes the problem
(with rfc1323 enabled again)?

We're accessing th_flags from the TCP header embedded in the ICMPv6
packet, even though we only pulled up the first 8 bytes of the mbuf,
because the sender doesn't have to provide more of the header.

There could be random garbage there, and the bit corresponding to
TH_SYN might be set, so the window scale factor is not applied. Not sure
if that would be reproducable so reliably, but it sure is a bug ;)

Daniel

Index: pf.c
===================================================================
RCS file: /cvs/freebsd/src/sys/contrib/pf/net/pf.c,v
retrieving revision 1.34.2.4
diff -u -r1.34.2.4 pf.c
--- pf.c	19 Sep 2006 15:45:20 -0000	1.34.2.4
+++ pf.c	21 Aug 2007 14:42:59 -0000
@@ -5118,8 +5118,7 @@
 				dst = &(*state)->dst;
 			}
 
-			if (src->wscale && dst->wscale &&
-			    !(th.th_flags & TH_SYN))
+			if (src->wscale && dst->wscale)
 				dws = dst->wscale & PF_WSCALE_MASK;
 			else
 				dws = 0;



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