NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/57163: IPv6 route MTU handled any more
On Thu, Jan 05, 2023 at 07:25:00PM +0000, bouyer%antioche.eu.org@localhost wrote:
> >Description:
> I have a pppoe over ADSL connection at home, with an MTU of 1492.
> The router advertises IPv6 with an MTU of 1492, per rtadvd.conf:
> default:\
> :chlim#64:raflags#0:rltime#1800:rtime#30000:retrans#1000:\
> :pinfoflags#192:vltime#3600000:pltime#3600000:mtu#1492:
>
> The client properly get its default route with the right MTU:
> rochebonne# netstat -rn -f inet6 |grep default
> default fe80::4a:6ff:fe41:9271 UG - - 1492 alc0
>
> This works fine with 9.x clients.
> But since I upgraded one client to 10.0_BETA TCP connections from this
> client stall when receiving large amount of data. tcpdump shows:
> 20:19:19.339688 IP6 (flowlabel 0xdfd4b, hlim 50, next-header TCP (6) payload length: 28) 2001:41d0:fe9d:1100:96de:80ff:fe21:bec0.65449 > 2001:660:3302:282a:204:75ff:fe9f:9e11.80: Flags [S], cksum 0x4100 (correct), seq 1784052849, win 32768, options [mss 1440,sackOK,eol], length 0
>
> that is, the client adverstises a MSS of 1440 instead of 1432.
> >How-To-Repeat:
> setup a IPv6 default route with MTU lower than the interface's MTU.
> Notice that the TCP mss sent on connection is too large.
I was wrong on this one. After reading the code, and testing, it appears that
a 9.3 client also sends a mss of 1440.
Further testing shows that the initial packet has different options
between -9 and -10:
NetBSD-9 sends
13:10:51.347038 IP6 2001:41d0:fe9d:1100:92d1:bf4e:6d13:758f.65533 > 2001:660:3302:282a:204:75ff:fe9f:9e11.80: Flags [S], seq 2687969843, win 32768, options [mss 1440,nop,wscale 3,sackOK,TS val 1 ecr 0], length 0
NetBSD-10 sends
13:11:52.466509 IP6 2001:41d0:fe9d:1100:96de:80ff:fe21:bec0.65401 > 2001:660:3302:282a:204:75ff:fe9f:9e11.80: Flags [S], seq 3955253542, win 32768, options [mss 1440,sackOK,eol], length 0
That is, -10 adds "eol" and miss "wscale 3" and "TS val 1 ecr 0"
It happens that I had net.inet.tcp.rfc1323=0 in my sysctl.conf, I don't
remember why. In netbsd-9, this turned rfc1323 for ipv4 only; but in
-10 this turns it off for ipv6 too. With rfc1323 back to 1 I get ipv6 working
again.
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index