On Tue, 27 Nov 2012, Bruce Evans wrote:

On Mon, 26 Nov 2012, Garrett Cooper wrote:

As noted in a previous thread, I set out to better document the net.inet6 sysctls after having to tweak the knobs to get things to work for TAHI, and this is the resulting draft (so far). I also took the liberty of removing the ip6_rr_prune and icmp6_redirtimeout sysctls because they weren't in use anywhere else in the sys/... portion of the tree. I was wondering if there are any points that should be corrected/clarified before I submit a PR with the resulting patch.

It would be good to fix the style bugs when changing lots.

Index: sys/netinet6/in6_proto.c
===================================================================
--- sys/netinet6/in6_proto.c    (revision 242903)
+++ sys/netinet6/in6_proto.c    (working copy)
@@ -443,7 +441,6 @@

/* ICMPV6 parameters */
VNET_DEFINE(int, icmp6_rediraccept) = 1;/* accept and process redirects */
-VNET_DEFINE(int, icmp6_redirtimeout) = 10 * 60;        /* 10 minutes */
VNET_DEFINE(int, icmp6errppslim) = 100;         /* 100pps */
/* control how to respond to NI queries */
VNET_DEFINE(int, icmp6_nodeinfo) =
@@ -515,15 +512,20 @@
}

SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_FORWARDING, forwarding, CTLFLAG_RW,
-       &VNET_NAME(ip6_forwarding), 0, "");
+       &VNET_NAME(ip6_forwarding), 0,
+       "Forward IPv6 packets via node.");

All the sysctl names spell ipv6 without a v.  This is hard to fix.  This
bug is missing in the names of the sysctl numbers, but it is a bug to
used named numbers instead of OID_AUTO in code newer than OID_AUTO, and
ipv6 is much newer.

New style bug in almost every description.  Sysctl descriptions are not
normally terminated by a ".".

Old style bug in almost every ipv6 sysctl.  Large SYSCTL declarations are
normally normally-indented, with 4-space continuation indents.  This rule
is broken farily consistenly in ipv6 sysctl.  More ivp4 SYSCTL descriptions
are actually formatted normally.

@@ -594,35 +613,45 @@
#define V_ip6_output_flowtable_size VNET(ip6_output_flowtable_size)

SYSCTL_VNET_INT(_net_inet6_ip6, OID_AUTO, output_flowtable_size, CTLFLAG_RDTUN,
-    &VNET_NAME(ip6_output_flowtable_size), 2048,
-    "number of entries in the per-cpu output flow caches");
+       &VNET_NAME(ip6_output_flowtable_size), 2048,
+       "number of entries in the per-cpu output flow caches");
...

Here the formatting change is backwards (from normal continuation indent
to abnormal ipv6 continuation indent.

This and some other old sysctl descriptions have differnent style bugs:
they are normally terminated (not with a '.'), but are not normally
capitalized (with capaitals).

SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_PRUNE, nd6_prune, CTLFLAG_RW,

Some mailer mangled the formatting (the line isn't too long and shouldn't
have been mangled).

-       &VNET_NAME(nd6_prune), 0, "");
+       &VNET_NAME(nd6_prune), 0,
+       "Period (in seconds) for performing nd6 expiration checks of default "

More mangling by some mailer.

+       "routes and prefix lists");

However, the string is too long.  The message is obfuscated by splitting it.
This keeps the line length short in the source code, but it is still too
long in the output.  Sysctl descriptions should be no longer than 50 or
60 characters, since the sysctl name will expand the output by 20 or 30
characters.  sysctl names longer than 20 or 30 are a larger bug, since
they are hard to write as well as hard to read.

This sysctl description is normally terminated (not with a ".").

...
SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_UMAXTRIES, nd6_umaxtries,
-       CTLFLAG_RW, &VNET_NAME(nd6_umaxtries), 0, "");
+       CTLFLAG_RW, &VNET_NAME(nd6_umaxtries), 0,
+       "Maximum number of unicast queries to perform via nd6.");

Another type of sysctl misformatting is generated by names that are so
verbose that CTLFLAG* cannot be formatted normally (on the first line).

I missed earlier instances of these bugs.

Statistic on output style in sysctl descriptions: on freefall now:
sysctl -da:                    3546 lines
sysctl -da | grep -v ': *$':   3192 lines
   [this filters out sysctls with null descriptions.  The output is
   misformatted with a space before the null description]
sysctl -nda:                   3546 lines
sysctl -nda | grep -v '^: *$': 3192 lines
   [since this 3192 is the same as the number of sysctls with non-null
   descreiptions, there must be no multi-line descriptions with embedded
   newlines]
sysctl -nda | grep -v '^: *$' | grep -v '^[A-Z]':
                              1555 lines
   [most of non-capitalizations are style bugs.  The last 1395 of them
   are automatically generated for device sysctls.  This is part of 5
   lines of automatically generated spam for device sysctls (descriptions
   are duplicated ad spamium for %desc, %driver, %location, %pnpinfo and
   %parent).  A few are correct because they are for a proper name or
   keyword or a number]
sysctl -nda | grep -v '^: *$' | grep '\.$':
                                74 lines
   [the style bug of terminating with a '.' is uncommon.  In a few cases
   it goes with the larger style bug of a multi-line description]
sysctl -nda | grep -v '^: *$' | grep '.... [81 dots]':
                                11 lines
   [these lines are too long even without the sysctl names.  Abnormal
   termination is denser than usual in these lines (8 of 11)]
sysctl -nda | grep -v '^: *$' | grep '\..*\.':
                                 8 lines
   [2 of these are for multi-sentence descriptions].

Bruce,
Is this better? I tried to be consistent about using v6 properly when dealing with protocols in order to match what the IETF did and I believe I properly integrated in your comments.
Thanks!
-Garrett

Index: sys/netinet6/in6_proto.c
===================================================================
--- sys/netinet6/in6_proto.c    (revision 243557)
+++ sys/netinet6/in6_proto.c    (working copy)
@@ -131,7 +131,7 @@
 #endif

 /*
- * TCP/IP protocol family: IP6, ICMP6, UDP, TCP.
+ * TCP/IP protocol family: IPv6, ICMPv6, UDPv6, TCPv6.
  */
 FEATURE(inet6, "Internet Protocol version 6");

@@ -382,9 +382,9 @@
  */
 #ifndef        IPV6FORWARDING
 #ifdef GATEWAY6
-#define        IPV6FORWARDING  1       /* forward IP6 packets not for us */
+#define        IPV6FORWARDING  1       /* forward IPv6 packets */
 #else
-#define IPV6FORWARDING 0 /* don't forward IP6 packets not for us */
+#define        IPV6FORWARDING  0       /* don't forward IPv6 packets */
 #endif /* GATEWAY6 */
 #endif /* !IPV6FORWARDING */

@@ -409,8 +409,6 @@
 VNET_DEFINE(int, ip6_auto_flowlabel) = 1;
 VNET_DEFINE(int, ip6_use_deprecated) = 1;/* allow deprecated addr
                                         * (RFC2462 5.5.4) */
-VNET_DEFINE(int, ip6_rr_prune) = 5;    /* router renumbering prefix
-                                        * walk list every 5 sec. */
VNET_DEFINE(int, ip6_mcast_pmtu) = 0; /* enable pMTU discovery for multicast? */
 VNET_DEFINE(int, ip6_v6only) = 1;

@@ -431,7 +429,7 @@
 VNET_DEFINE(int, pmtu_expire) = 60*10;
 VNET_DEFINE(int, pmtu_probe) = 60*2;

-/* raw IP6 parameters */
+/* raw IPV6 parameters */
 /*
  * Nominal space allocated to a raw ip socket.
  */
@@ -443,13 +441,12 @@

 /* ICMPV6 parameters */
 VNET_DEFINE(int, icmp6_rediraccept) = 1;/* accept and process redirects */
-VNET_DEFINE(int, icmp6_redirtimeout) = 10 * 60;        /* 10 minutes */
 VNET_DEFINE(int, icmp6errppslim) = 100;                /* 100pps */
 /* control how to respond to NI queries */
 VNET_DEFINE(int, icmp6_nodeinfo) =
     (ICMP6_NODEINFO_FQDNOK|ICMP6_NODEINFO_NODEADDROK);

-/* UDP on IP6 parameters */
+/* UDP on IPv6 parameters */
 VNET_DEFINE(int, udp6_sendspace) = 9216;/* really max datagram size */
 VNET_DEFINE(int, udp6_recvspace) = 40 * (1024 + sizeof(struct sockaddr_in6));
                                        /* 40 1K datagrams */
@@ -461,12 +458,12 @@
        "Internet6 Family");

 /* net.inet6 */
-SYSCTL_NODE(_net_inet6,        IPPROTO_IPV6,   ip6,    CTLFLAG_RW, 0,  "IP6");
-SYSCTL_NODE(_net_inet6, IPPROTO_ICMPV6, icmp6, CTLFLAG_RW, 0, "ICMP6"); -SYSCTL_NODE(_net_inet6, IPPROTO_UDP, udp6, CTLFLAG_RW, 0, "UDP6"); -SYSCTL_NODE(_net_inet6, IPPROTO_TCP, tcp6, CTLFLAG_RW, 0, "TCP6"); +SYSCTL_NODE(_net_inet6, IPPROTO_IPV6, ip6, CTLFLAG_RW, 0, "IPv6"); +SYSCTL_NODE(_net_inet6, IPPROTO_ICMPV6, icmp6, CTLFLAG_RW, 0, "ICMPv6"); +SYSCTL_NODE(_net_inet6, IPPROTO_UDP, udp6, CTLFLAG_RW, 0, "UDPv6"); +SYSCTL_NODE(_net_inet6, IPPROTO_TCP, tcp6, CTLFLAG_RW, 0, "TCPv6");
 #ifdef SCTP
-SYSCTL_NODE(_net_inet6, IPPROTO_SCTP, sctp6, CTLFLAG_RW, 0, "SCTP6"); +SYSCTL_NODE(_net_inet6, IPPROTO_SCTP, sctp6, CTLFLAG_RW, 0, "SCTPv6");
 #endif
 #ifdef IPSEC
SYSCTL_NODE(_net_inet6, IPPROTO_ESP, ipsec6, CTLFLAG_RW, 0, "IPSEC6");
@@ -515,77 +512,99 @@
 }

 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_FORWARDING, forwarding, CTLFLAG_RW,
-       &VNET_NAME(ip6_forwarding), 0, "");
+    &VNET_NAME(ip6_forwarding), 0,
+    "Forward IPv6 packets via node");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_SENDREDIRECTS, redirect, CTLFLAG_RW,
-       &VNET_NAME(ip6_sendredirects), 0, "");
+    &VNET_NAME(ip6_sendredirects), 0,
+    "Redirect IPv6 packets via node");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_DEFHLIM, hlim, CTLFLAG_RW,
-       &VNET_NAME(ip6_defhlim), 0, "");
+    &VNET_NAME(ip6_defhlim), 0,
+    "Default hop limit for IPv6 unicast packets");
 SYSCTL_VNET_STRUCT(_net_inet6_ip6, IPV6CTL_STATS, stats, CTLFLAG_RW,
-       &VNET_NAME(ip6stat), ip6stat, "");
+    &VNET_NAME(ip6stat), ip6stat,
+    "IPv6 statistics");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGPACKETS, maxfragpackets,
-       CTLFLAG_RW, &VNET_NAME(ip6_maxfragpackets), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_maxfragpackets), 0,
+    "Maximum number of fragmented packets to process");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_ACCEPT_RTADV, accept_rtadv,
-       CTLFLAG_RW, &VNET_NAME(ip6_accept_rtadv), 0,
-       "Default value of per-interface flag for accepting ICMPv6 Router"
-       "Advertisement messages");
+    CTLFLAG_RW, &VNET_NAME(ip6_accept_rtadv), 0,
+    "Default value of per-interface flag for accepting ICMPv6 Router"
+    "Advertisement messages");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_NO_RADR, no_radr,
-       CTLFLAG_RW, &VNET_NAME(ip6_no_radr), 0,
-       "Default value of per-interface flag to control whether routers "
-       "sending ICMPv6 RA messages on that interface are added into the "
-       "default router list.");
+    CTLFLAG_RW, &VNET_NAME(ip6_no_radr), 0,
+    "Default value of per-interface flag to control whether routers "
+    "sending ICMPv6 RA messages on that interface are added into the "
+    "default router list");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_NORBIT_RAIF, norbit_raif, CTLFLAG_RW,
-       &VNET_NAME(ip6_norbit_raif), 0,
-       "Always set 0 to R flag in ICMPv6 NA messages when accepting RA"
-       " on the interface.");
+    &VNET_NAME(ip6_norbit_raif), 0,
+    "Always set 0 to R flag in ICMPv6 NA messages when accepting RA "
+    "on the interface");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_RFC6204W3, rfc6204w3,
-       CTLFLAG_RW, &VNET_NAME(ip6_rfc6204w3), 0,
-       "Accept the default router list from ICMPv6 RA messages even "
-       "when packet forwarding enabled.");
+    CTLFLAG_RW, &VNET_NAME(ip6_rfc6204w3), 0,
+    "Accept the default router list from ICMPv6 RA messages even when packet "
+    "forwarding enabled");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_KEEPFAITH, keepfaith, CTLFLAG_RW,
-       &VNET_NAME(ip6_keepfaith), 0, "");
+    &VNET_NAME(ip6_keepfaith), 0,
+    "");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_LOG_INTERVAL, log_interval,
-       CTLFLAG_RW, &VNET_NAME(ip6_log_interval), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_log_interval), 0,
+    "Period (in secs) for throttling logging for high-traffic operations");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_HDRNESTLIMIT, hdrnestlimit,
-       CTLFLAG_RW, &VNET_NAME(ip6_hdrnestlimit), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_hdrnestlimit), 0,
+    "Maximum number of nested header options to process");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_DAD_COUNT, dad_count, CTLFLAG_RW,
-       &VNET_NAME(ip6_dad_count), 0, "");
+    &VNET_NAME(ip6_dad_count), 0,
+    "Number of Duplicate Address Detection attempts to try before "
+    "disabling interface.  Setting the value to 0 disables DAD");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_AUTO_FLOWLABEL, auto_flowlabel,
-       CTLFLAG_RW, &VNET_NAME(ip6_auto_flowlabel), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_auto_flowlabel), 0,
+    "Automatically attach a flowlabel to IPv6 packets");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_DEFMCASTHLIM, defmcasthlim,
-       CTLFLAG_RW, &VNET_NAME(ip6_defmcasthlim), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_defmcasthlim), 0,
+    "Default hop limit for ip6 multicast packets");
 SYSCTL_STRING(_net_inet6_ip6, IPV6CTL_KAME_VERSION, kame_version,
-       CTLFLAG_RD, __KAME_VERSION, 0, "");
+    CTLFLAG_RD, __KAME_VERSION, 0,
+    "");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_USE_DEPRECATED, use_deprecated,
-       CTLFLAG_RW, &VNET_NAME(ip6_use_deprecated), 0, "");
-SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_RR_PRUNE, rr_prune, CTLFLAG_RW,
-       &VNET_NAME(ip6_rr_prune), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_use_deprecated), 0,
+    "Use deprecated IPv6 support");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_USETEMPADDR, use_tempaddr,
-       CTLFLAG_RW, &VNET_NAME(ip6_use_tempaddr), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_use_tempaddr), 0,
+    "Use a temporary address when establishing address via SLAAC");
 SYSCTL_VNET_PROC(_net_inet6_ip6, IPV6CTL_TEMPPLTIME, temppltime,
-       CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_preferred_lifetime), 0,
-       sysctl_ip6_temppltime, "I", "");
+    CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_preferred_lifetime), 0,
+    sysctl_ip6_temppltime, "I",
+    "Preferred lifetime (in secs) for a temporary address");
 SYSCTL_VNET_PROC(_net_inet6_ip6, IPV6CTL_TEMPVLTIME, tempvltime,
-       CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_valid_lifetime), 0,
-       sysctl_ip6_tempvltime, "I", "");
+    CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_valid_lifetime), 0,
+    sysctl_ip6_tempvltime, "I",
+    "Valid lifetime (in secs) for a temporary address");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_V6ONLY, v6only,        CTLFLAG_RW,
-       &VNET_NAME(ip6_v6only), 0, "");
+    &VNET_NAME(ip6_v6only), 0,
+    "Allow IPv4-mapped ip6 addresses per RFC 3493");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_AUTO_LINKLOCAL, auto_linklocal,
-       CTLFLAG_RW, &VNET_NAME(ip6_auto_linklocal), 0,
-       "Default value of per-interface flag for automatically adding an IPv6"
-       " link-local address to interfaces when attached");
-SYSCTL_VNET_STRUCT(_net_inet6_ip6, IPV6CTL_RIP6STATS, rip6stats, CTLFLAG_RW,
-       &VNET_NAME(rip6stat), rip6stat, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_auto_linklocal), 0,
+    "Default value of per-interface flag for automatically adding an ip6 "
+    "link-local address to interfaces when attached");
+SYSCTL_VNET_STRUCT(_net_inet6_ip6, IPV6CTL_RIPV6STATS, rip6stats, CTLFLAG_RW,
+    &VNET_NAME(rip6stat), rip6stat,
+    "RIP6 statistics");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_PREFER_TEMPADDR, prefer_tempaddr,
-       CTLFLAG_RW, &VNET_NAME(ip6_prefer_tempaddr), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_prefer_tempaddr), 0,
+    "Prefer the temporary address assigned when performing NUD");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE, use_defaultzone,
-       CTLFLAG_RW, &VNET_NAME(ip6_use_defzone), 0,"");
+    CTLFLAG_RW, &VNET_NAME(ip6_use_defzone), 0,
+    "Use the default scope zone if not explicitly provided");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGS, maxfrags, CTLFLAG_RW,
-       &VNET_NAME(ip6_maxfrags), 0, "");
+    &VNET_NAME(ip6_maxfrags), 0,
+    "Maximum number of fragments to hold in the reassembly queue");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_MCAST_PMTU, mcast_pmtu, CTLFLAG_RW,
-       &VNET_NAME(ip6_mcast_pmtu), 0, "");
+    &VNET_NAME(ip6_mcast_pmtu), 0,
+    "Enable multicast pMTU discovery");
 #ifdef IPSTEALTH
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_STEALTH, stealth, CTLFLAG_RW,
-       &VNET_NAME(ip6stealth), 0, "");
+    &VNET_NAME(ip6stealth), 0,
+    "IPv6 stealth mode. No hop limit decrementation on forwarding");
 #endif

 #ifdef FLOWTABLE
@@ -600,29 +619,39 @@

 /* net.inet6.icmp6 */
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRACCEPT, rediraccept,
-       CTLFLAG_RW, &VNET_NAME(icmp6_rediraccept), 0, "");
-SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRTIMEOUT, redirtimeout,
-       CTLFLAG_RW, &VNET_NAME(icmp6_redirtimeout), 0, "");
+    CTLFLAG_RW, &VNET_NAME(icmp6_rediraccept), 0,
+    "Accept and process router redirects");
 SYSCTL_VNET_STRUCT(_net_inet6_icmp6, ICMPV6CTL_STATS, stats, CTLFLAG_RW,
-       &VNET_NAME(icmp6stat), icmp6stat, "");
+    &VNET_NAME(icmp6stat), icmp6stat,
+    "ICMPv6 statistics");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_PRUNE, nd6_prune, CTLFLAG_RW,
-       &VNET_NAME(nd6_prune), 0, "");
+    &VNET_NAME(nd6_prune), 0,
+    "Period (in secs) for checking for stale router entries via nd6");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DELAY, nd6_delay, CTLFLAG_RW,
-       &VNET_NAME(nd6_delay), 0, "");
+    &VNET_NAME(nd6_delay), 0,
+    "Delay (in secs) before performing NUD on stale nodes");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_UMAXTRIES, nd6_umaxtries,
-       CTLFLAG_RW, &VNET_NAME(nd6_umaxtries), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_umaxtries), 0,
+    "Maximum number of unicast queries to perform via nd6");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_MMAXTRIES, nd6_mmaxtries,
-       CTLFLAG_RW, &VNET_NAME(nd6_mmaxtries), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_mmaxtries), 0,
+    "Maximum number of multicast queries to perform via nd6");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_USELOOPBACK, nd6_useloopback,
-       CTLFLAG_RW, &VNET_NAME(nd6_useloopback), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_useloopback), 0,
+    "Use loopback interface for local traffic");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_NODEINFO, nodeinfo, CTLFLAG_RW,
-       &VNET_NAME(icmp6_nodeinfo), 0, "");
+    &VNET_NAME(icmp6_nodeinfo), 0,
+    "Node information state");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ERRPPSLIMIT, errppslimit,
-       CTLFLAG_RW, &VNET_NAME(icmp6errppslim), 0, "");
+    CTLFLAG_RW, &VNET_NAME(icmp6errppslim), 0,
+    "Packets per second limit for ICMPv6 queries");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_MAXNUDHINT, nd6_maxnudhint,
-       CTLFLAG_RW, &VNET_NAME(nd6_maxnudhint), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_maxnudhint), 0,
+    "Maximum number of upper layer hints");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG, nd6_debug, CTLFLAG_RW,
-       &VNET_NAME(nd6_debug), 0, "");
+    &VNET_NAME(nd6_debug), 0,
+    "");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_ONLINKNSRFC4861,
-       nd6_onlink_ns_rfc4861, CTLFLAG_RW, &VNET_NAME(nd6_onlink_ns_rfc4861),
-       0, "Accept 'on-link' nd6 NS in compliance with RFC 4861.");
+    nd6_onlink_ns_rfc4861,
+    CTLFLAG_RW, &VNET_NAME(nd6_onlink_ns_rfc4861), 0,
+    "Accept 'on-link' nd6 NS in compliance with RFC 4861");
Index: sys/netinet6/in6_proto.c
===================================================================
--- sys/netinet6/in6_proto.c    (revision 243557)
+++ sys/netinet6/in6_proto.c    (working copy)
@@ -131,7 +131,7 @@
 #endif
 
 /*
- * TCP/IP protocol family: IP6, ICMP6, UDP, TCP.
+ * TCP/IP protocol family: IPv6, ICMPv6, UDPv6, TCPv6.
  */
 FEATURE(inet6, "Internet Protocol version 6");
 
@@ -382,9 +382,9 @@
  */
 #ifndef        IPV6FORWARDING
 #ifdef GATEWAY6
-#define        IPV6FORWARDING  1       /* forward IP6 packets not for us */
+#define        IPV6FORWARDING  1       /* forward IPv6 packets */
 #else
-#define        IPV6FORWARDING  0       /* don't forward IP6 packets not for us 
*/
+#define        IPV6FORWARDING  0       /* don't forward IPv6 packets */
 #endif /* GATEWAY6 */
 #endif /* !IPV6FORWARDING */
 
@@ -409,8 +409,6 @@
 VNET_DEFINE(int, ip6_auto_flowlabel) = 1;
 VNET_DEFINE(int, ip6_use_deprecated) = 1;/* allow deprecated addr
                                         * (RFC2462 5.5.4) */
-VNET_DEFINE(int, ip6_rr_prune) = 5;    /* router renumbering prefix
-                                        * walk list every 5 sec. */
 VNET_DEFINE(int, ip6_mcast_pmtu) = 0;  /* enable pMTU discovery for multicast? 
*/
 VNET_DEFINE(int, ip6_v6only) = 1;
 
@@ -431,7 +429,7 @@
 VNET_DEFINE(int, pmtu_expire) = 60*10;
 VNET_DEFINE(int, pmtu_probe) = 60*2;
 
-/* raw IP6 parameters */
+/* raw IPV6 parameters */
 /*
  * Nominal space allocated to a raw ip socket.
  */
@@ -443,13 +441,12 @@
 
 /* ICMPV6 parameters */
 VNET_DEFINE(int, icmp6_rediraccept) = 1;/* accept and process redirects */
-VNET_DEFINE(int, icmp6_redirtimeout) = 10 * 60;        /* 10 minutes */
 VNET_DEFINE(int, icmp6errppslim) = 100;                /* 100pps */
 /* control how to respond to NI queries */
 VNET_DEFINE(int, icmp6_nodeinfo) =
     (ICMP6_NODEINFO_FQDNOK|ICMP6_NODEINFO_NODEADDROK);
 
-/* UDP on IP6 parameters */
+/* UDP on IPv6 parameters */
 VNET_DEFINE(int, udp6_sendspace) = 9216;/* really max datagram size */
 VNET_DEFINE(int, udp6_recvspace) = 40 * (1024 + sizeof(struct sockaddr_in6));
                                        /* 40 1K datagrams */
@@ -461,12 +458,12 @@
        "Internet6 Family");
 
 /* net.inet6 */
-SYSCTL_NODE(_net_inet6,        IPPROTO_IPV6,   ip6,    CTLFLAG_RW, 0,  "IP6");
-SYSCTL_NODE(_net_inet6,        IPPROTO_ICMPV6, icmp6,  CTLFLAG_RW, 0,  
"ICMP6");
-SYSCTL_NODE(_net_inet6,        IPPROTO_UDP,    udp6,   CTLFLAG_RW, 0,  "UDP6");
-SYSCTL_NODE(_net_inet6,        IPPROTO_TCP,    tcp6,   CTLFLAG_RW, 0,  "TCP6");
+SYSCTL_NODE(_net_inet6,        IPPROTO_IPV6,   ip6,    CTLFLAG_RW, 0,  "IPv6");
+SYSCTL_NODE(_net_inet6,        IPPROTO_ICMPV6, icmp6,  CTLFLAG_RW, 0,  
"ICMPv6");
+SYSCTL_NODE(_net_inet6,        IPPROTO_UDP,    udp6,   CTLFLAG_RW, 0,  
"UDPv6");
+SYSCTL_NODE(_net_inet6,        IPPROTO_TCP,    tcp6,   CTLFLAG_RW, 0,  
"TCPv6");
 #ifdef SCTP
-SYSCTL_NODE(_net_inet6,        IPPROTO_SCTP,   sctp6,  CTLFLAG_RW, 0,  
"SCTP6");
+SYSCTL_NODE(_net_inet6,        IPPROTO_SCTP,   sctp6,  CTLFLAG_RW, 0,  
"SCTPv6");
 #endif
 #ifdef IPSEC
 SYSCTL_NODE(_net_inet6,        IPPROTO_ESP,    ipsec6, CTLFLAG_RW, 0,  
"IPSEC6");
@@ -515,77 +512,99 @@
 }
 
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_FORWARDING, forwarding, CTLFLAG_RW,
-       &VNET_NAME(ip6_forwarding), 0, "");
+    &VNET_NAME(ip6_forwarding), 0,
+    "Forward IPv6 packets via node");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_SENDREDIRECTS, redirect, CTLFLAG_RW,
-       &VNET_NAME(ip6_sendredirects), 0, "");
+    &VNET_NAME(ip6_sendredirects), 0,
+    "Redirect IPv6 packets via node");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_DEFHLIM, hlim, CTLFLAG_RW,
-       &VNET_NAME(ip6_defhlim), 0, "");
+    &VNET_NAME(ip6_defhlim), 0,
+    "Default hop limit for IPv6 unicast packets");
 SYSCTL_VNET_STRUCT(_net_inet6_ip6, IPV6CTL_STATS, stats, CTLFLAG_RW,
-       &VNET_NAME(ip6stat), ip6stat, "");
+    &VNET_NAME(ip6stat), ip6stat,
+    "IPv6 statistics");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGPACKETS, maxfragpackets,
-       CTLFLAG_RW, &VNET_NAME(ip6_maxfragpackets), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_maxfragpackets), 0,
+    "Maximum number of fragmented packets to process");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_ACCEPT_RTADV, accept_rtadv,
-       CTLFLAG_RW, &VNET_NAME(ip6_accept_rtadv), 0,
-       "Default value of per-interface flag for accepting ICMPv6 Router"
-       "Advertisement messages");
+    CTLFLAG_RW, &VNET_NAME(ip6_accept_rtadv), 0,
+    "Default value of per-interface flag for accepting ICMPv6 Router"
+    "Advertisement messages");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_NO_RADR, no_radr,
-       CTLFLAG_RW, &VNET_NAME(ip6_no_radr), 0,
-       "Default value of per-interface flag to control whether routers "
-       "sending ICMPv6 RA messages on that interface are added into the "
-       "default router list.");
+    CTLFLAG_RW, &VNET_NAME(ip6_no_radr), 0,
+    "Default value of per-interface flag to control whether routers "
+    "sending ICMPv6 RA messages on that interface are added into the "
+    "default router list");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_NORBIT_RAIF, norbit_raif, CTLFLAG_RW,
-       &VNET_NAME(ip6_norbit_raif), 0,
-       "Always set 0 to R flag in ICMPv6 NA messages when accepting RA"
-       " on the interface.");
+    &VNET_NAME(ip6_norbit_raif), 0,
+    "Always set 0 to R flag in ICMPv6 NA messages when accepting RA "
+    "on the interface");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_RFC6204W3, rfc6204w3,
-       CTLFLAG_RW, &VNET_NAME(ip6_rfc6204w3), 0,
-       "Accept the default router list from ICMPv6 RA messages even "
-       "when packet forwarding enabled.");
+    CTLFLAG_RW, &VNET_NAME(ip6_rfc6204w3), 0,
+    "Accept the default router list from ICMPv6 RA messages even when packet "
+    "forwarding enabled");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_KEEPFAITH, keepfaith, CTLFLAG_RW,
-       &VNET_NAME(ip6_keepfaith), 0, "");
+    &VNET_NAME(ip6_keepfaith), 0,
+    "");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_LOG_INTERVAL, log_interval,
-       CTLFLAG_RW, &VNET_NAME(ip6_log_interval), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_log_interval), 0,
+    "Period (in secs) for throttling logging for high-traffic operations");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_HDRNESTLIMIT, hdrnestlimit,
-       CTLFLAG_RW, &VNET_NAME(ip6_hdrnestlimit), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_hdrnestlimit), 0,
+    "Maximum number of nested header options to process");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_DAD_COUNT, dad_count, CTLFLAG_RW,
-       &VNET_NAME(ip6_dad_count), 0, "");
+    &VNET_NAME(ip6_dad_count), 0,
+    "Number of Duplicate Address Detection attempts to try before "
+    "disabling interface.  Setting the value to 0 disables DAD");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_AUTO_FLOWLABEL, auto_flowlabel,
-       CTLFLAG_RW, &VNET_NAME(ip6_auto_flowlabel), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_auto_flowlabel), 0,
+    "Automatically attach a flowlabel to IPv6 packets");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_DEFMCASTHLIM, defmcasthlim,
-       CTLFLAG_RW, &VNET_NAME(ip6_defmcasthlim), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_defmcasthlim), 0,
+    "Default hop limit for ip6 multicast packets");
 SYSCTL_STRING(_net_inet6_ip6, IPV6CTL_KAME_VERSION, kame_version,
-       CTLFLAG_RD, __KAME_VERSION, 0, "");
+    CTLFLAG_RD, __KAME_VERSION, 0,
+    "");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_USE_DEPRECATED, use_deprecated,
-       CTLFLAG_RW, &VNET_NAME(ip6_use_deprecated), 0, "");
-SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_RR_PRUNE, rr_prune, CTLFLAG_RW,
-       &VNET_NAME(ip6_rr_prune), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_use_deprecated), 0,
+    "Use deprecated IPv6 support");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_USETEMPADDR, use_tempaddr,
-       CTLFLAG_RW, &VNET_NAME(ip6_use_tempaddr), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_use_tempaddr), 0,
+    "Use a temporary address when establishing address via SLAAC");
 SYSCTL_VNET_PROC(_net_inet6_ip6, IPV6CTL_TEMPPLTIME, temppltime,
-       CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_preferred_lifetime), 0,
-       sysctl_ip6_temppltime, "I", "");
+    CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_preferred_lifetime), 0,
+    sysctl_ip6_temppltime, "I",
+    "Preferred lifetime (in secs) for a temporary address");
 SYSCTL_VNET_PROC(_net_inet6_ip6, IPV6CTL_TEMPVLTIME, tempvltime,
-       CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_valid_lifetime), 0,
-       sysctl_ip6_tempvltime, "I", "");
+    CTLTYPE_INT|CTLFLAG_RW, &VNET_NAME(ip6_temp_valid_lifetime), 0,
+    sysctl_ip6_tempvltime, "I",
+    "Valid lifetime (in secs) for a temporary address");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_V6ONLY, v6only,        CTLFLAG_RW,
-       &VNET_NAME(ip6_v6only), 0, "");
+    &VNET_NAME(ip6_v6only), 0,
+    "Allow IPv4-mapped ip6 addresses per RFC 3493");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_AUTO_LINKLOCAL, auto_linklocal,
-       CTLFLAG_RW, &VNET_NAME(ip6_auto_linklocal), 0,
-       "Default value of per-interface flag for automatically adding an IPv6"
-       " link-local address to interfaces when attached");
-SYSCTL_VNET_STRUCT(_net_inet6_ip6, IPV6CTL_RIP6STATS, rip6stats, CTLFLAG_RW,
-       &VNET_NAME(rip6stat), rip6stat, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_auto_linklocal), 0,
+    "Default value of per-interface flag for automatically adding an ip6 "
+    "link-local address to interfaces when attached");
+SYSCTL_VNET_STRUCT(_net_inet6_ip6, IPV6CTL_RIPV6STATS, rip6stats, CTLFLAG_RW,
+    &VNET_NAME(rip6stat), rip6stat,
+    "RIP6 statistics");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_PREFER_TEMPADDR, prefer_tempaddr,
-       CTLFLAG_RW, &VNET_NAME(ip6_prefer_tempaddr), 0, "");
+    CTLFLAG_RW, &VNET_NAME(ip6_prefer_tempaddr), 0,
+    "Prefer the temporary address assigned when performing NUD");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE, use_defaultzone,
-       CTLFLAG_RW, &VNET_NAME(ip6_use_defzone), 0,"");
+    CTLFLAG_RW, &VNET_NAME(ip6_use_defzone), 0,
+    "Use the default scope zone if not explicitly provided");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGS, maxfrags, CTLFLAG_RW,
-       &VNET_NAME(ip6_maxfrags), 0, "");
+    &VNET_NAME(ip6_maxfrags), 0,
+    "Maximum number of fragments to hold in the reassembly queue");
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_MCAST_PMTU, mcast_pmtu, CTLFLAG_RW,
-       &VNET_NAME(ip6_mcast_pmtu), 0, "");
+    &VNET_NAME(ip6_mcast_pmtu), 0,
+    "Enable multicast pMTU discovery");
 #ifdef IPSTEALTH
 SYSCTL_VNET_INT(_net_inet6_ip6, IPV6CTL_STEALTH, stealth, CTLFLAG_RW,
-       &VNET_NAME(ip6stealth), 0, "");
+    &VNET_NAME(ip6stealth), 0,
+    "IPv6 stealth mode. No hop limit decrementation on forwarding");
 #endif
 
 #ifdef FLOWTABLE
@@ -600,29 +619,39 @@
 
 /* net.inet6.icmp6 */
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRACCEPT, rediraccept,
-       CTLFLAG_RW, &VNET_NAME(icmp6_rediraccept), 0, "");
-SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_REDIRTIMEOUT, redirtimeout,
-       CTLFLAG_RW, &VNET_NAME(icmp6_redirtimeout), 0, "");
+    CTLFLAG_RW, &VNET_NAME(icmp6_rediraccept), 0,
+    "Accept and process router redirects");
 SYSCTL_VNET_STRUCT(_net_inet6_icmp6, ICMPV6CTL_STATS, stats, CTLFLAG_RW,
-       &VNET_NAME(icmp6stat), icmp6stat, "");
+    &VNET_NAME(icmp6stat), icmp6stat,
+    "ICMPv6 statistics");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_PRUNE, nd6_prune, CTLFLAG_RW,
-       &VNET_NAME(nd6_prune), 0, "");
+    &VNET_NAME(nd6_prune), 0,
+    "Period (in secs) for checking for stale router entries via nd6");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DELAY, nd6_delay, CTLFLAG_RW,
-       &VNET_NAME(nd6_delay), 0, "");
+    &VNET_NAME(nd6_delay), 0,
+    "Delay (in secs) before performing NUD on stale nodes");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_UMAXTRIES, nd6_umaxtries,
-       CTLFLAG_RW, &VNET_NAME(nd6_umaxtries), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_umaxtries), 0,
+    "Maximum number of unicast queries to perform via nd6");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_MMAXTRIES, nd6_mmaxtries,
-       CTLFLAG_RW, &VNET_NAME(nd6_mmaxtries), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_mmaxtries), 0,
+    "Maximum number of multicast queries to perform via nd6");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_USELOOPBACK, nd6_useloopback,
-       CTLFLAG_RW, &VNET_NAME(nd6_useloopback), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_useloopback), 0,
+    "Use loopback interface for local traffic");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_NODEINFO, nodeinfo, CTLFLAG_RW,
-       &VNET_NAME(icmp6_nodeinfo), 0, "");
+    &VNET_NAME(icmp6_nodeinfo), 0,
+    "Node information state");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ERRPPSLIMIT, errppslimit,
-       CTLFLAG_RW, &VNET_NAME(icmp6errppslim), 0, "");
+    CTLFLAG_RW, &VNET_NAME(icmp6errppslim), 0,
+    "Packets per second limit for ICMPv6 queries");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_MAXNUDHINT, nd6_maxnudhint,
-       CTLFLAG_RW, &VNET_NAME(nd6_maxnudhint), 0, "");
+    CTLFLAG_RW, &VNET_NAME(nd6_maxnudhint), 0,
+    "Maximum number of upper layer hints");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG, nd6_debug, CTLFLAG_RW,
-       &VNET_NAME(nd6_debug), 0, "");
+    &VNET_NAME(nd6_debug), 0,
+    "");
 SYSCTL_VNET_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_ONLINKNSRFC4861,
-       nd6_onlink_ns_rfc4861, CTLFLAG_RW, &VNET_NAME(nd6_onlink_ns_rfc4861),
-       0, "Accept 'on-link' nd6 NS in compliance with RFC 4861.");
+    nd6_onlink_ns_rfc4861,
+    CTLFLAG_RW, &VNET_NAME(nd6_onlink_ns_rfc4861), 0,
+    "Accept 'on-link' nd6 NS in compliance with RFC 4861");
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to