NetBSD Problem Report #44254
From yasuoka@iij.ad.jp Mon Dec 20 07:30:28 2010
Return-Path: <yasuoka@iij.ad.jp>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id E2E0F63B87A
for <gnats-bugs@gnats.NetBSD.org>; Mon, 20 Dec 2010 07:30:27 +0000 (UTC)
Message-Id: <20101220.152746.250594949.yasuoka@iij.ad.jp>
Date: Mon, 20 Dec 2010 15:27:46 +0900 (JST)
From: yasuoka@iij.ad.jp
Reply-To: yasuoka@iij.ad.jp
To: gnats-bugs@gnats.NetBSD.org
Subject: sysctl -w net.inet.tcp.timestamps=0 does not work
X-Send-Pr-Version: 3.95
>Number: 44254
>Category: kern
>Synopsis: sysctl -w net.inet.tcp.timestamps=0 does not work
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: kefren
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Dec 20 07:35:00 +0000 2010
>Closed-Date: Sun Apr 13 02:23:31 +0000 2014
>Last-Modified: Sun Apr 13 02:23:31 +0000 2014
>Originator: yasuoka@iij.ad.jp
>Release: NetBSD 5.1
>Organization:
Internet Initiative Japan Inc.
>Environment:
System: NetBSD yasuoka-nb2 5.1 NetBSD 5.1 (GENERIC) #0: Sun Nov 7 14:39:56 UTC 2010 builds@b6.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/i386/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
"sysctl -w net.inet.tcp.timestamps=0" does not disable TCP
timestamp option.
>How-To-Repeat:
1. sysctl -w net.inet.tcp.timestamps=0
2. tcpdump -vni lo0 port 22 &&
3. telnet 127.0.0.1 22
Captured packets will be using tcp timestamp option.
>Fix:
Index: tcp_usrreq.c
===================================================================
RCS file: /cvsroot/NetBSD/src/sys/netinet/tcp_usrreq.c,v
retrieving revision 1.149.4.2
diff -u -p -r1.149.4.2 tcp_usrreq.c
--- tcp_usrreq.c 26 Sep 2009 18:34:29 -0000 1.149.4.2
+++ tcp_usrreq.c 20 Dec 2010 06:18:58 -0000
@@ -1038,6 +1038,7 @@ sysctl_net_inet_tcp_mssdflt(SYSCTLFN_ARG
if (mssdflt < 32)
return (EINVAL);
tcp_mssdflt = mssdflt;
+ tcp_tcpcb_template(); /* update the template */
return (0);
}
@@ -1634,6 +1635,20 @@ sysctl_net_inet_tcp_stats(SYSCTLFN_ARGS)
return (NETSTAT_SYSCTL(tcpstat_percpu, TCP_NSTATS));
}
+static int
+sysctl_update_tcpcb_template(SYSCTLFN_ARGS)
+{
+ int error;
+
+ error = sysctl_lookup(SYSCTLFN_CALL(rnode));
+ if (error || newp == NULL)
+ return (error);
+
+ tcp_tcpcb_template(); /* update the template */
+
+ return (0);
+}
+
/*
* this (second stage) setup routine is a replacement for tcp_sysctl()
* (which is currently used for ipv4 and ipv6)
@@ -1672,7 +1687,7 @@ sysctl_net_inet_tcp_setup2(struct sysctl
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
CTLTYPE_INT, "rfc1323",
SYSCTL_DESCR("Enable RFC1323 TCP extensions"),
- NULL, 0, &tcp_do_rfc1323, 0,
+ sysctl_update_tcpcb_template, 0, &tcp_do_rfc1323, 0,
CTL_NET, pf, IPPROTO_TCP, TCPCTL_RFC1323, CTL_EOL);
sysctl_createv(clog, 0, NULL, NULL,
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
@@ -1772,13 +1787,13 @@ sysctl_net_inet_tcp_setup2(struct sysctl
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
CTLTYPE_INT, "win_scale",
SYSCTL_DESCR("Use RFC1323 window scale options"),
- NULL, 0, &tcp_do_win_scale, 0,
+ sysctl_update_tcpcb_template, 0, &tcp_do_win_scale, 0,
CTL_NET, pf, IPPROTO_TCP, TCPCTL_WSCALE, CTL_EOL);
sysctl_createv(clog, 0, NULL, NULL,
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
CTLTYPE_INT, "timestamps",
SYSCTL_DESCR("Use RFC1323 time stamp options"),
- NULL, 0, &tcp_do_timestamps, 0,
+ sysctl_update_tcpcb_template, 0, &tcp_do_timestamps, 0,
CTL_NET, pf, IPPROTO_TCP, TCPCTL_TSTAMP, CTL_EOL);
sysctl_createv(clog, 0, NULL, NULL,
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
>Release-Note:
>Audit-Trail:
From: buhrow@lothlorien.nfbcal.org (Brian Buhrow)
To: gnats-bugs@gnats.netbsd.org
Cc: buhrow@lothlorien.nfbcal.org
Subject: Re: kern/44254: Also applies to all other net.inet.tcp.x variables
Date: Tue, 28 Dec 2010 22:36:53 -0800
Hello. This problem seems to afflict all net.inet.tcp variables. For
example, trying to change the value of tcp_init_win fails as well. This
looks to hav been broken from the introduction of these sysctl variables.
It doesn't work, for example, under NetBSD-4 either.
-Brian
Responsible-Changed-From-To: kern-bug-people->kefren
Responsible-Changed-By: kefren@NetBSD.org
Responsible-Changed-When: Tue, 03 Dec 2013 12:15:28 +0000
Responsible-Changed-Why:
Hi, I commited your patch and asked for a pullup on NetBSD 6 branch (#992).
Thank you for reporting !
State-Changed-From-To: open->pending-pullups
State-Changed-By: kefren@NetBSD.org
State-Changed-When: Tue, 03 Dec 2013 12:15:28 +0000
State-Changed-Why:
Pullup request #992
State-Changed-From-To: pending-pullups->closed
State-Changed-By: snj@NetBSD.org
State-Changed-When: Sun, 13 Apr 2014 02:23:31 +0000
State-Changed-Why:
Pulled up.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.