Bug 44034

Summary: Multiple sysctl variables are not documented
Product: Documentation Reporter: Greg Lehey <grog>
Component: Manual PagesAssignee: freebsd-bugs (Nobody) <bugs>
Status: Open ---    
Severity: Affects Some People CC: doc, emaste, pat, pauamma, ziaee
Priority: Normal Keywords: tracking
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263408
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231630
Bug Depends on: 259393, 259425, 254897    
Bug Blocks:    

Description Greg Lehey 2002-10-14 06:20:01 UTC
	A number of sysctl variables set in /etc/rc.network are not
	documented.  This includes variables which are set via other
	variables in /etc/rc.conf, including:

	rc.conf			   rc.network

	tcp_drop_synfin		   net.inet.tcp.drop_synfin
	tcp_restrict_rst	   net.inet.tcp.restrict_rst
				   net.inet.tcp.rfc1323
				   net.inet.tcp.rfc1644
				   net.inet.tcp.mssdflt
				   net.inet.tcp.sendspace
				   net.inet.tcp.recvspace
				   net.inet.tcp.v6mssdflt
				   net.inet.tcp.slowstart_flightsize
				   net.inet.tcp.local_slowstart_flightsize
				   net.inet.tcp.syncookies
				   net.inet.tcp.syncache.bucketlimit
				   net.inet.tcp.syncache.cachelimit   
				   net.inet.tcp.syncache.count
				   net.inet.tcp.syncache.hashsize
				   net.inet.tcp.syncache.rexmtlimit
				   net.inet.tcp.rexmit_min
				   net.inet.tcp.rexmit_slop

				   net.inet.icmp.maskrepl
				   net.inet.icmp.icmplim
	icmp_drop_redirect	   net.inet.icmp.drop_redirect
	icmp_log_redirect	   net.inet.icmp.log_redirect
				   net.inet.icmp.icmplim_output
	icmp_bmcastecho		   net.inet.icmp.bmcastecho
				   net.inet6.icmp6.rediraccept
				   net.inet6.icmp6.redirtimeout
				   net.inet6.icmp6.nd6_prune
				   net.inet6.icmp6.nd6_delay
				   net.inet6.icmp6.nd6_umaxtries
				   net.inet6.icmp6.nd6_mmaxtries
				   net.inet6.icmp6.nd6_useloopback
				   net.inet6.icmp6.nodeinfo
				   net.inet6.icmp6.errppslimit
				   net.inet6.icmp6.nd6_maxnudhint
				   net.inet6.icmp6.nd6_debug

	This is not an exhaustive list; indeed, I don't know how to
	find one.  But it's difficult to use an undocumented system,
	so we should do something about it.

	In addition, the tcp(4) man page contains descriptions of the
	(presumably obsolete) sysctls tcp.slowstart_flightsize and
	tcp.local_slowstart_flightsize.

Fix: 

This looks to be an issue for the people who implemented the
	sysctls.
How-To-Repeat: 	Create FreeBSD the way it has already been done.  Or don't
	bother trying to repeat.
Comment 1 Tom Rhodes freebsd_committer freebsd_triage 2002-10-15 01:28:23 UTC
Responsible Changed
From-To: freebsd-doc->trhodes

This looks like a challenge.  I'll take.
Comment 2 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 07:59:39 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped
Comment 3 Pau Amma 2021-01-17 00:05:18 UTC
Seem to no longer exist (or perhaps renamed) in GENERIC 12.1:

net.inet.tcp.restrict_rst
net.inet.tcp.rfc1644
net.inet.tcp.slowstart_flightsize
net.inet.tcp.local_slowstart_flightsize

Now documented in GENERIC 12.1 tcp(4) or icmp(4):

net.inet.tcp.rfc1323
net.inet.tcp.mssdflt
net.inet.tcp.sendspace
net.inet.tcp.recvspace
net.inet.tcp.syncookies (also in syncookies(4))
net.inet.tcp.rexmit_min
net.inet.tcp.rexmit_slop
net.inet.icmp.maskrepl
net.inet.icmp.icmplim
net.inet.icmp.drop_redirect
net.inet.icmp.log_redirect
net.inet.icmp.icmplim_output
net.inet.icmp.bmcastecho

Now documented in GENERIC 12.1 syncache(4):

net.inet.tcp.syncache.bucketlimit
net.inet.tcp.syncache.cachelimit
net.inet.tcp.syncache.count
net.inet.tcp.syncache.hashsize
net.inet.tcp.syncache.rexmtlimit

Still not documented in GENERIC 12.1 tcp(4), icmp(4), and icmp6(4):

net.inet.tcp.drop_synfin
net.inet.tcp.v6mssdflt
net.inet6.icmp6.rediraccept
net.inet6.icmp6.redirtimeout
net.inet6.icmp6.nd6_prune
net.inet6.icmp6.nd6_delay
net.inet6.icmp6.nd6_umaxtries
net.inet6.icmp6.nd6_mmaxtries
net.inet6.icmp6.nd6_useloopback
net.inet6.icmp6.nodeinfo
net.inet6.icmp6.errppslimit
net.inet6.icmp6.nd6_maxnudhint
net.inet6.icmp6.nd6_debug

>	In addition, the tcp(4) man page contains descriptions of the
>	(presumably obsolete) sysctls tcp.slowstart_flightsize and
>	tcp.local_slowstart_flightsize.

It no longer does.
Comment 4 Graham Perrin freebsd_committer freebsd_triage 2022-09-28 04:56:11 UTC
Will anything in this bug 44034 overlap with tuning(7) bug 218538?
Comment 5 Pau Amma 2022-09-29 02:56:35 UTC
(In reply to Graham Perrin from comment #4)

Maybe? This would add explanations of what these variables do, but not (or not necessarily) when and how to adjust their values. I don't know enough about their effects to say whether the latter belongs in tuning(7).
Comment 6 commit-hook freebsd_committer freebsd_triage 2023-10-10 02:49:52 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=75be7e30271bb192fd27698982f2c7e56831eeef

commit 75be7e30271bb192fd27698982f2c7e56831eeef
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-10-06 18:00:30 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-10-10 02:48:53 +0000

    sysctl: emit a newline after NULL node descriptions

    Previously when printing the sysctl description (via the -d flag) we
    omitted the newline if the node provided no description (i.e., NULL).
    This could be observed via e.g. `sysctl -d dev`.

    PR:             44034
    Reviewed by:    zlei
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D42112

 sbin/sysctl/sysctl.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Comment 7 commit-hook freebsd_committer freebsd_triage 2023-10-13 15:44:44 UTC
A commit in branch stable/14 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=ced9fe051e31f858a9d1dbec01cf6dec483fab19

commit ced9fe051e31f858a9d1dbec01cf6dec483fab19
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-10-06 18:00:30 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-10-13 14:12:34 +0000

    sysctl: emit a newline after NULL node descriptions

    Previously when printing the sysctl description (via the -d flag) we
    omitted the newline if the node provided no description (i.e., NULL).
    This could be observed via e.g. `sysctl -d dev`.

    PR:             44034
    Reviewed by:    zlei
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D42112

    (cherry picked from commit 75be7e30271bb192fd27698982f2c7e56831eeef)

 sbin/sysctl/sysctl.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Comment 8 Ed Maste freebsd_committer freebsd_triage 2023-10-13 17:44:04 UTC
Undocumented variables by top-level:

$ sysctl -ad | sed -nE 's/([^.]*)\..*: $/\1/p' | uniq -c | sort -rn
1998 vm
 188 dev
 176 debug
  74 sys
  38 net
  32 kern
  30 kstat
  27 hw
  24 p1003_1b
  10 vfs
   3 compat
   2 user
   2 security

grog created this PR for descriptionless sysctl variables set by (at the time) /etc/rc.network; it's sensible to limit the scope of this PR to the sysctls under net that lack a description. Other sysctls can be tracked in different PRs.
Comment 9 commit-hook freebsd_committer freebsd_triage 2023-10-14 00:04:23 UTC
A commit in branch releng/14.0 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=f0101a0ef9adac0d0ceb5b77de74f51cd24ea906

commit f0101a0ef9adac0d0ceb5b77de74f51cd24ea906
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-10-06 18:00:30 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-10-13 23:18:14 +0000

    sysctl: emit a newline after NULL node descriptions

    Previously when printing the sysctl description (via the -d flag) we
    omitted the newline if the node provided no description (i.e., NULL).
    This could be observed via e.g. `sysctl -d dev`.

    PR:             44034
    Reviewed by:    zlei
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D42112

    (cherry picked from commit 75be7e30271bb192fd27698982f2c7e56831eeef)
    (cherry picked from commit ced9fe051e31f858a9d1dbec01cf6dec483fab19)

    Approved by:    re (gjb)

 sbin/sysctl/sysctl.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)