From owner-freebsd-net@FreeBSD.ORG Sat Dec 1 06:20:35 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 115922C3 for ; Sat, 1 Dec 2012 06:20:35 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id CB7508FC08 for ; Sat, 1 Dec 2012 06:20:34 +0000 (UTC) Received: by mail-pb0-f54.google.com with SMTP id wz12so923222pbc.13 for ; Fri, 30 Nov 2012 22:20:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:user-agent:mime-version :content-type; bh=dtR43koguK9lL9M5UlolV6kbkeO+sC5vTH8ktgHjuuk=; b=nwbsYYirXiB8gfPuTC9ZIZVOoR65NG+XVOoKApMjkBR3uox+ez1Dcv7BhYsuL+kWIs 6ZR3Mn772g4aD9X8rX+fzvk11rAh1zdLY1cHShtJHZnqjAPvd4eCuHxyubev45rhiAd3 hGWZhX/AIP4Z3D/V0LYN2ijj9yzXCS4wI0soHKx9ZmVOl24wxB4/u17L3avk49KhZxxk 5VAXDy6UdCcURSG9oc1q9iMKc557yozuxLHdNuioyKdYby690tpAOziRFGYbklzQe84h fzrkqENxibxSHjcw7hAe92G+sEWYTQ07JFMYcw560fAJQeswlIcY6NKFXu+gdHkxSggL 9eSg== Received: by 10.66.75.232 with SMTP id f8mr9405273paw.23.1354342833449; Fri, 30 Nov 2012 22:20:33 -0800 (PST) Received: from c-24-19-191-56.hsd1.wa.comcast.net (c-24-19-191-56.hsd1.wa.comcast.net. [24.19.191.56]) by mx.google.com with ESMTPS id gv9sm4271209pbc.21.2012.11.30.22.20.31 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 30 Nov 2012 22:20:32 -0800 (PST) Date: Fri, 30 Nov 2012 22:20:24 -0800 (PST) From: Garrett Cooper To: bruce@toaster.local Subject: Re: [RFC] Better document net.inet6 sysctls and prune dead sysctls (fwd) Message-ID: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="967339439-1681226068-1354342829=:57210" Cc: freebsd-net@FreeBSD.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Dec 2012 06:20:35 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --967339439-1681226068-1354342829=:57210 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed 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"); --967339439-1681226068-1354342829=:57210 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=document-netinet6_sysctls.patch.txt Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=document-netinet6_sysctls.patch.txt SW5kZXg6IHN5cy9uZXRpbmV0Ni9pbjZfcHJvdG8uYw0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KLS0tIHN5cy9uZXRpbmV0Ni9pbjZfcHJvdG8uYwkocmV2 aXNpb24gMjQzNTU3KQ0KKysrIHN5cy9uZXRpbmV0Ni9pbjZfcHJvdG8uYwko d29ya2luZyBjb3B5KQ0KQEAgLTEzMSw3ICsxMzEsNyBAQA0KICNlbmRpZg0K IA0KIC8qDQotICogVENQL0lQIHByb3RvY29sIGZhbWlseTogSVA2LCBJQ01Q NiwgVURQLCBUQ1AuDQorICogVENQL0lQIHByb3RvY29sIGZhbWlseTogSVB2 NiwgSUNNUHY2LCBVRFB2NiwgVENQdjYuDQogICovDQogRkVBVFVSRShpbmV0 NiwgIkludGVybmV0IFByb3RvY29sIHZlcnNpb24gNiIpOw0KIA0KQEAgLTM4 Miw5ICszODIsOSBAQA0KICAqLw0KICNpZm5kZWYJSVBWNkZPUldBUkRJTkcN CiAjaWZkZWYgR0FURVdBWTYNCi0jZGVmaW5lCUlQVjZGT1JXQVJESU5HCTEJ LyogZm9yd2FyZCBJUDYgcGFja2V0cyBub3QgZm9yIHVzICovDQorI2RlZmlu ZQlJUFY2Rk9SV0FSRElORwkxCS8qIGZvcndhcmQgSVB2NiBwYWNrZXRzICov DQogI2Vsc2UNCi0jZGVmaW5lCUlQVjZGT1JXQVJESU5HCTAJLyogZG9uJ3Qg Zm9yd2FyZCBJUDYgcGFja2V0cyBub3QgZm9yIHVzICovDQorI2RlZmluZQlJ UFY2Rk9SV0FSRElORwkwCS8qIGRvbid0IGZvcndhcmQgSVB2NiBwYWNrZXRz ICovDQogI2VuZGlmIC8qIEdBVEVXQVk2ICovDQogI2VuZGlmIC8qICFJUFY2 Rk9SV0FSRElORyAqLw0KIA0KQEAgLTQwOSw4ICs0MDksNiBAQA0KIFZORVRf REVGSU5FKGludCwgaXA2X2F1dG9fZmxvd2xhYmVsKSA9IDE7DQogVk5FVF9E RUZJTkUoaW50LCBpcDZfdXNlX2RlcHJlY2F0ZWQpID0gMTsvKiBhbGxvdyBk ZXByZWNhdGVkIGFkZHINCiAJCQkJCSAqIChSRkMyNDYyIDUuNS40KSAqLw0K LVZORVRfREVGSU5FKGludCwgaXA2X3JyX3BydW5lKSA9IDU7CS8qIHJvdXRl ciByZW51bWJlcmluZyBwcmVmaXgNCi0JCQkJCSAqIHdhbGsgbGlzdCBldmVy eSA1IHNlYy4gKi8NCiBWTkVUX0RFRklORShpbnQsIGlwNl9tY2FzdF9wbXR1 KSA9IDA7CS8qIGVuYWJsZSBwTVRVIGRpc2NvdmVyeSBmb3IgbXVsdGljYXN0 PyAqLw0KIFZORVRfREVGSU5FKGludCwgaXA2X3Y2b25seSkgPSAxOw0KIA0K QEAgLTQzMSw3ICs0MjksNyBAQA0KIFZORVRfREVGSU5FKGludCwgcG10dV9l eHBpcmUpID0gNjAqMTA7DQogVk5FVF9ERUZJTkUoaW50LCBwbXR1X3Byb2Jl KSA9IDYwKjI7DQogDQotLyogcmF3IElQNiBwYXJhbWV0ZXJzICovDQorLyog cmF3IElQVjYgcGFyYW1ldGVycyAqLw0KIC8qDQogICogTm9taW5hbCBzcGFj ZSBhbGxvY2F0ZWQgdG8gYSByYXcgaXAgc29ja2V0Lg0KICAqLw0KQEAgLTQ0 MywxMyArNDQxLDEyIEBADQogDQogLyogSUNNUFY2IHBhcmFtZXRlcnMgKi8N CiBWTkVUX0RFRklORShpbnQsIGljbXA2X3JlZGlyYWNjZXB0KSA9IDE7Lyog YWNjZXB0IGFuZCBwcm9jZXNzIHJlZGlyZWN0cyAqLw0KLVZORVRfREVGSU5F KGludCwgaWNtcDZfcmVkaXJ0aW1lb3V0KSA9IDEwICogNjA7CS8qIDEwIG1p bnV0ZXMgKi8NCiBWTkVUX0RFRklORShpbnQsIGljbXA2ZXJycHBzbGltKSA9 IDEwMDsJCS8qIDEwMHBwcyAqLw0KIC8qIGNvbnRyb2wgaG93IHRvIHJlc3Bv bmQgdG8gTkkgcXVlcmllcyAqLw0KIFZORVRfREVGSU5FKGludCwgaWNtcDZf bm9kZWluZm8pID0NCiAgICAgKElDTVA2X05PREVJTkZPX0ZRRE5PS3xJQ01Q Nl9OT0RFSU5GT19OT0RFQUREUk9LKTsNCiANCi0vKiBVRFAgb24gSVA2IHBh cmFtZXRlcnMgKi8NCisvKiBVRFAgb24gSVB2NiBwYXJhbWV0ZXJzICovDQog Vk5FVF9ERUZJTkUoaW50LCB1ZHA2X3NlbmRzcGFjZSkgPSA5MjE2Oy8qIHJl YWxseSBtYXggZGF0YWdyYW0gc2l6ZSAqLw0KIFZORVRfREVGSU5FKGludCwg dWRwNl9yZWN2c3BhY2UpID0gNDAgKiAoMTAyNCArIHNpemVvZihzdHJ1Y3Qg c29ja2FkZHJfaW42KSk7DQogCQkJCQkvKiA0MCAxSyBkYXRhZ3JhbXMgKi8N CkBAIC00NjEsMTIgKzQ1OCwxMiBAQA0KIAkiSW50ZXJuZXQ2IEZhbWlseSIp Ow0KIA0KIC8qIG5ldC5pbmV0NiAqLw0KLVNZU0NUTF9OT0RFKF9uZXRfaW5l dDYsCUlQUFJPVE9fSVBWNiwJaXA2LAlDVExGTEFHX1JXLCAwLAkiSVA2Iik7 DQotU1lTQ1RMX05PREUoX25ldF9pbmV0NiwJSVBQUk9UT19JQ01QVjYsCWlj bXA2LAlDVExGTEFHX1JXLCAwLAkiSUNNUDYiKTsNCi1TWVNDVExfTk9ERShf bmV0X2luZXQ2LAlJUFBST1RPX1VEUCwJdWRwNiwJQ1RMRkxBR19SVywgMCwJ IlVEUDYiKTsNCi1TWVNDVExfTk9ERShfbmV0X2luZXQ2LAlJUFBST1RPX1RD UCwJdGNwNiwJQ1RMRkxBR19SVywgMCwJIlRDUDYiKTsNCitTWVNDVExfTk9E RShfbmV0X2luZXQ2LAlJUFBST1RPX0lQVjYsCWlwNiwJQ1RMRkxBR19SVywg MCwJIklQdjYiKTsNCitTWVNDVExfTk9ERShfbmV0X2luZXQ2LAlJUFBST1RP X0lDTVBWNiwJaWNtcDYsCUNUTEZMQUdfUlcsIDAsCSJJQ01QdjYiKTsNCitT WVNDVExfTk9ERShfbmV0X2luZXQ2LAlJUFBST1RPX1VEUCwJdWRwNiwJQ1RM RkxBR19SVywgMCwJIlVEUHY2Iik7DQorU1lTQ1RMX05PREUoX25ldF9pbmV0 NiwJSVBQUk9UT19UQ1AsCXRjcDYsCUNUTEZMQUdfUlcsIDAsCSJUQ1B2NiIp Ow0KICNpZmRlZiBTQ1RQDQotU1lTQ1RMX05PREUoX25ldF9pbmV0NiwJSVBQ Uk9UT19TQ1RQLAlzY3RwNiwJQ1RMRkxBR19SVywgMCwJIlNDVFA2Iik7DQor U1lTQ1RMX05PREUoX25ldF9pbmV0NiwJSVBQUk9UT19TQ1RQLAlzY3RwNiwJ Q1RMRkxBR19SVywgMCwJIlNDVFB2NiIpOw0KICNlbmRpZg0KICNpZmRlZiBJ UFNFQw0KIFNZU0NUTF9OT0RFKF9uZXRfaW5ldDYsCUlQUFJPVE9fRVNQLAlp cHNlYzYsCUNUTEZMQUdfUlcsIDAsCSJJUFNFQzYiKTsNCkBAIC01MTUsNzcg KzUxMiw5OSBAQA0KIH0NCiANCiBTWVNDVExfVk5FVF9JTlQoX25ldF9pbmV0 Nl9pcDYsIElQVjZDVExfRk9SV0FSRElORywgZm9yd2FyZGluZywgQ1RMRkxB R19SVywNCi0JJlZORVRfTkFNRShpcDZfZm9yd2FyZGluZyksIDAsICIiKTsN CisgICAgJlZORVRfTkFNRShpcDZfZm9yd2FyZGluZyksIDAsDQorICAgICJG b3J3YXJkIElQdjYgcGFja2V0cyB2aWEgbm9kZSIpOw0KIFNZU0NUTF9WTkVU X0lOVChfbmV0X2luZXQ2X2lwNiwgSVBWNkNUTF9TRU5EUkVESVJFQ1RTLCBy ZWRpcmVjdCwgQ1RMRkxBR19SVywNCi0JJlZORVRfTkFNRShpcDZfc2VuZHJl ZGlyZWN0cyksIDAsICIiKTsNCisgICAgJlZORVRfTkFNRShpcDZfc2VuZHJl ZGlyZWN0cyksIDAsDQorICAgICJSZWRpcmVjdCBJUHY2IHBhY2tldHMgdmlh IG5vZGUiKTsNCiBTWVNDVExfVk5FVF9JTlQoX25ldF9pbmV0Nl9pcDYsIElQ VjZDVExfREVGSExJTSwgaGxpbSwgQ1RMRkxBR19SVywNCi0JJlZORVRfTkFN RShpcDZfZGVmaGxpbSksIDAsICIiKTsNCisgICAgJlZORVRfTkFNRShpcDZf ZGVmaGxpbSksIDAsDQorICAgICJEZWZhdWx0IGhvcCBsaW1pdCBmb3IgSVB2 NiB1bmljYXN0IHBhY2tldHMiKTsNCiBTWVNDVExfVk5FVF9TVFJVQ1QoX25l dF9pbmV0Nl9pcDYsIElQVjZDVExfU1RBVFMsIHN0YXRzLCBDVExGTEFHX1JX LA0KLQkmVk5FVF9OQU1FKGlwNnN0YXQpLCBpcDZzdGF0LCAiIik7DQorICAg ICZWTkVUX05BTUUoaXA2c3RhdCksIGlwNnN0YXQsDQorICAgICJJUHY2IHN0 YXRpc3RpY3MiKTsNCiBTWVNDVExfVk5FVF9JTlQoX25ldF9pbmV0Nl9pcDYs IElQVjZDVExfTUFYRlJBR1BBQ0tFVFMsIG1heGZyYWdwYWNrZXRzLA0KLQlD VExGTEFHX1JXLCAmVk5FVF9OQU1FKGlwNl9tYXhmcmFncGFja2V0cyksIDAs ICIiKTsNCisgICAgQ1RMRkxBR19SVywgJlZORVRfTkFNRShpcDZfbWF4ZnJh Z3BhY2tldHMpLCAwLA0KKyAgICAiTWF4aW11bSBudW1iZXIgb2YgZnJhZ21l bnRlZCBwYWNrZXRzIHRvIHByb2Nlc3MiKTsNCiBTWVNDVExfVk5FVF9JTlQo X25ldF9pbmV0Nl9pcDYsIElQVjZDVExfQUNDRVBUX1JUQURWLCBhY2NlcHRf cnRhZHYsDQotCUNUTEZMQUdfUlcsICZWTkVUX05BTUUoaXA2X2FjY2VwdF9y dGFkdiksIDAsDQotCSJEZWZhdWx0IHZhbHVlIG9mIHBlci1pbnRlcmZhY2Ug ZmxhZyBmb3IgYWNjZXB0aW5nIElDTVB2NiBSb3V0ZXIiDQotCSJBZHZlcnRp c2VtZW50IG1lc3NhZ2VzIik7DQorICAgIENUTEZMQUdfUlcsICZWTkVUX05B TUUoaXA2X2FjY2VwdF9ydGFkdiksIDAsDQorICAgICJEZWZhdWx0IHZhbHVl IG9mIHBlci1pbnRlcmZhY2UgZmxhZyBmb3IgYWNjZXB0aW5nIElDTVB2NiBS b3V0ZXIiDQorICAgICJBZHZlcnRpc2VtZW50IG1lc3NhZ2VzIik7DQogU1lT Q1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaXA2LCBJUFY2Q1RMX05PX1JBRFIs IG5vX3JhZHIsDQotCUNUTEZMQUdfUlcsICZWTkVUX05BTUUoaXA2X25vX3Jh ZHIpLCAwLA0KLQkiRGVmYXVsdCB2YWx1ZSBvZiBwZXItaW50ZXJmYWNlIGZs YWcgdG8gY29udHJvbCB3aGV0aGVyIHJvdXRlcnMgIg0KLQkic2VuZGluZyBJ Q01QdjYgUkEgbWVzc2FnZXMgb24gdGhhdCBpbnRlcmZhY2UgYXJlIGFkZGVk IGludG8gdGhlICINCi0JImRlZmF1bHQgcm91dGVyIGxpc3QuIik7DQorICAg IENUTEZMQUdfUlcsICZWTkVUX05BTUUoaXA2X25vX3JhZHIpLCAwLA0KKyAg ICAiRGVmYXVsdCB2YWx1ZSBvZiBwZXItaW50ZXJmYWNlIGZsYWcgdG8gY29u dHJvbCB3aGV0aGVyIHJvdXRlcnMgIg0KKyAgICAic2VuZGluZyBJQ01QdjYg UkEgbWVzc2FnZXMgb24gdGhhdCBpbnRlcmZhY2UgYXJlIGFkZGVkIGludG8g dGhlICINCisgICAgImRlZmF1bHQgcm91dGVyIGxpc3QiKTsNCiBTWVNDVExf Vk5FVF9JTlQoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfTk9SQklUX1JBSUYs IG5vcmJpdF9yYWlmLCBDVExGTEFHX1JXLA0KLQkmVk5FVF9OQU1FKGlwNl9u b3JiaXRfcmFpZiksIDAsDQotCSJBbHdheXMgc2V0IDAgdG8gUiBmbGFnIGlu IElDTVB2NiBOQSBtZXNzYWdlcyB3aGVuIGFjY2VwdGluZyBSQSINCi0JIiBv biB0aGUgaW50ZXJmYWNlLiIpOw0KKyAgICAmVk5FVF9OQU1FKGlwNl9ub3Ji aXRfcmFpZiksIDAsDQorICAgICJBbHdheXMgc2V0IDAgdG8gUiBmbGFnIGlu IElDTVB2NiBOQSBtZXNzYWdlcyB3aGVuIGFjY2VwdGluZyBSQSAiDQorICAg ICJvbiB0aGUgaW50ZXJmYWNlIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRf aW5ldDZfaXA2LCBJUFY2Q1RMX1JGQzYyMDRXMywgcmZjNjIwNHczLA0KLQlD VExGTEFHX1JXLCAmVk5FVF9OQU1FKGlwNl9yZmM2MjA0dzMpLCAwLA0KLQki QWNjZXB0IHRoZSBkZWZhdWx0IHJvdXRlciBsaXN0IGZyb20gSUNNUHY2IFJB IG1lc3NhZ2VzIGV2ZW4gIg0KLQkid2hlbiBwYWNrZXQgZm9yd2FyZGluZyBl bmFibGVkLiIpOw0KKyAgICBDVExGTEFHX1JXLCAmVk5FVF9OQU1FKGlwNl9y ZmM2MjA0dzMpLCAwLA0KKyAgICAiQWNjZXB0IHRoZSBkZWZhdWx0IHJvdXRl ciBsaXN0IGZyb20gSUNNUHY2IFJBIG1lc3NhZ2VzIGV2ZW4gd2hlbiBwYWNr ZXQgIg0KKyAgICAiZm9yd2FyZGluZyBlbmFibGVkIik7DQogU1lTQ1RMX1ZO RVRfSU5UKF9uZXRfaW5ldDZfaXA2LCBJUFY2Q1RMX0tFRVBGQUlUSCwga2Vl cGZhaXRoLCBDVExGTEFHX1JXLA0KLQkmVk5FVF9OQU1FKGlwNl9rZWVwZmFp dGgpLCAwLCAiIik7DQorICAgICZWTkVUX05BTUUoaXA2X2tlZXBmYWl0aCks IDAsDQorICAgICIiKTsNCiBTWVNDVExfVk5FVF9JTlQoX25ldF9pbmV0Nl9p cDYsIElQVjZDVExfTE9HX0lOVEVSVkFMLCBsb2dfaW50ZXJ2YWwsDQotCUNU TEZMQUdfUlcsICZWTkVUX05BTUUoaXA2X2xvZ19pbnRlcnZhbCksIDAsICIi KTsNCisgICAgQ1RMRkxBR19SVywgJlZORVRfTkFNRShpcDZfbG9nX2ludGVy dmFsKSwgMCwNCisgICAgIlBlcmlvZCAoaW4gc2VjcykgZm9yIHRocm90dGxp bmcgbG9nZ2luZyBmb3IgaGlnaC10cmFmZmljIG9wZXJhdGlvbnMiKTsNCiBT WVNDVExfVk5FVF9JTlQoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfSERSTkVT VExJTUlULCBoZHJuZXN0bGltaXQsDQotCUNUTEZMQUdfUlcsICZWTkVUX05B TUUoaXA2X2hkcm5lc3RsaW1pdCksIDAsICIiKTsNCisgICAgQ1RMRkxBR19S VywgJlZORVRfTkFNRShpcDZfaGRybmVzdGxpbWl0KSwgMCwNCisgICAgIk1h eGltdW0gbnVtYmVyIG9mIG5lc3RlZCBoZWFkZXIgb3B0aW9ucyB0byBwcm9j ZXNzIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaXA2LCBJUFY2 Q1RMX0RBRF9DT1VOVCwgZGFkX2NvdW50LCBDVExGTEFHX1JXLA0KLQkmVk5F VF9OQU1FKGlwNl9kYWRfY291bnQpLCAwLCAiIik7DQorICAgICZWTkVUX05B TUUoaXA2X2RhZF9jb3VudCksIDAsDQorICAgICJOdW1iZXIgb2YgRHVwbGlj YXRlIEFkZHJlc3MgRGV0ZWN0aW9uIGF0dGVtcHRzIHRvIHRyeSBiZWZvcmUg Ig0KKyAgICAiZGlzYWJsaW5nIGludGVyZmFjZS4gIFNldHRpbmcgdGhlIHZh bHVlIHRvIDAgZGlzYWJsZXMgREFEIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9u ZXRfaW5ldDZfaXA2LCBJUFY2Q1RMX0FVVE9fRkxPV0xBQkVMLCBhdXRvX2Zs b3dsYWJlbCwNCi0JQ1RMRkxBR19SVywgJlZORVRfTkFNRShpcDZfYXV0b19m bG93bGFiZWwpLCAwLCAiIik7DQorICAgIENUTEZMQUdfUlcsICZWTkVUX05B TUUoaXA2X2F1dG9fZmxvd2xhYmVsKSwgMCwNCisgICAgIkF1dG9tYXRpY2Fs bHkgYXR0YWNoIGEgZmxvd2xhYmVsIHRvIElQdjYgcGFja2V0cyIpOw0KIFNZ U0NUTF9WTkVUX0lOVChfbmV0X2luZXQ2X2lwNiwgSVBWNkNUTF9ERUZNQ0FT VEhMSU0sIGRlZm1jYXN0aGxpbSwNCi0JQ1RMRkxBR19SVywgJlZORVRfTkFN RShpcDZfZGVmbWNhc3RobGltKSwgMCwgIiIpOw0KKyAgICBDVExGTEFHX1JX LCAmVk5FVF9OQU1FKGlwNl9kZWZtY2FzdGhsaW0pLCAwLA0KKyAgICAiRGVm YXVsdCBob3AgbGltaXQgZm9yIGlwNiBtdWx0aWNhc3QgcGFja2V0cyIpOw0K IFNZU0NUTF9TVFJJTkcoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfS0FNRV9W RVJTSU9OLCBrYW1lX3ZlcnNpb24sDQotCUNUTEZMQUdfUkQsIF9fS0FNRV9W RVJTSU9OLCAwLCAiIik7DQorICAgIENUTEZMQUdfUkQsIF9fS0FNRV9WRVJT SU9OLCAwLA0KKyAgICAiIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5l dDZfaXA2LCBJUFY2Q1RMX1VTRV9ERVBSRUNBVEVELCB1c2VfZGVwcmVjYXRl ZCwNCi0JQ1RMRkxBR19SVywgJlZORVRfTkFNRShpcDZfdXNlX2RlcHJlY2F0 ZWQpLCAwLCAiIik7DQotU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaXA2 LCBJUFY2Q1RMX1JSX1BSVU5FLCBycl9wcnVuZSwgQ1RMRkxBR19SVywNCi0J JlZORVRfTkFNRShpcDZfcnJfcHJ1bmUpLCAwLCAiIik7DQorICAgIENUTEZM QUdfUlcsICZWTkVUX05BTUUoaXA2X3VzZV9kZXByZWNhdGVkKSwgMCwNCisg ICAgIlVzZSBkZXByZWNhdGVkIElQdjYgc3VwcG9ydCIpOw0KIFNZU0NUTF9W TkVUX0lOVChfbmV0X2luZXQ2X2lwNiwgSVBWNkNUTF9VU0VURU1QQUREUiwg dXNlX3RlbXBhZGRyLA0KLQlDVExGTEFHX1JXLCAmVk5FVF9OQU1FKGlwNl91 c2VfdGVtcGFkZHIpLCAwLCAiIik7DQorICAgIENUTEZMQUdfUlcsICZWTkVU X05BTUUoaXA2X3VzZV90ZW1wYWRkciksIDAsDQorICAgICJVc2UgYSB0ZW1w b3JhcnkgYWRkcmVzcyB3aGVuIGVzdGFibGlzaGluZyBhZGRyZXNzIHZpYSBT TEFBQyIpOw0KIFNZU0NUTF9WTkVUX1BST0MoX25ldF9pbmV0Nl9pcDYsIElQ VjZDVExfVEVNUFBMVElNRSwgdGVtcHBsdGltZSwNCi0JQ1RMVFlQRV9JTlR8 Q1RMRkxBR19SVywgJlZORVRfTkFNRShpcDZfdGVtcF9wcmVmZXJyZWRfbGlm ZXRpbWUpLCAwLA0KLSAgIAlzeXNjdGxfaXA2X3RlbXBwbHRpbWUsICJJIiwg IiIpOw0KKyAgICBDVExUWVBFX0lOVHxDVExGTEFHX1JXLCAmVk5FVF9OQU1F KGlwNl90ZW1wX3ByZWZlcnJlZF9saWZldGltZSksIDAsDQorICAgIHN5c2N0 bF9pcDZfdGVtcHBsdGltZSwgIkkiLA0KKyAgICAiUHJlZmVycmVkIGxpZmV0 aW1lIChpbiBzZWNzKSBmb3IgYSB0ZW1wb3JhcnkgYWRkcmVzcyIpOw0KIFNZ U0NUTF9WTkVUX1BST0MoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfVEVNUFZM VElNRSwgdGVtcHZsdGltZSwNCi0JQ1RMVFlQRV9JTlR8Q1RMRkxBR19SVywg JlZORVRfTkFNRShpcDZfdGVtcF92YWxpZF9saWZldGltZSksIDAsDQotICAg CXN5c2N0bF9pcDZfdGVtcHZsdGltZSwgIkkiLCAiIik7DQorICAgIENUTFRZ UEVfSU5UfENUTEZMQUdfUlcsICZWTkVUX05BTUUoaXA2X3RlbXBfdmFsaWRf bGlmZXRpbWUpLCAwLA0KKyAgICBzeXNjdGxfaXA2X3RlbXB2bHRpbWUsICJJ IiwNCisgICAgIlZhbGlkIGxpZmV0aW1lIChpbiBzZWNzKSBmb3IgYSB0ZW1w b3JhcnkgYWRkcmVzcyIpOw0KIFNZU0NUTF9WTkVUX0lOVChfbmV0X2luZXQ2 X2lwNiwgSVBWNkNUTF9WNk9OTFksIHY2b25seSwJQ1RMRkxBR19SVywNCi0J JlZORVRfTkFNRShpcDZfdjZvbmx5KSwgMCwgIiIpOw0KKyAgICAmVk5FVF9O QU1FKGlwNl92Nm9ubHkpLCAwLA0KKyAgICAiQWxsb3cgSVB2NC1tYXBwZWQg aXA2IGFkZHJlc3NlcyBwZXIgUkZDIDM0OTMiKTsNCiBTWVNDVExfVk5FVF9J TlQoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfQVVUT19MSU5LTE9DQUwsIGF1 dG9fbGlua2xvY2FsLA0KLQlDVExGTEFHX1JXLCAmVk5FVF9OQU1FKGlwNl9h dXRvX2xpbmtsb2NhbCksIDAsDQotCSJEZWZhdWx0IHZhbHVlIG9mIHBlci1p bnRlcmZhY2UgZmxhZyBmb3IgYXV0b21hdGljYWxseSBhZGRpbmcgYW4gSVB2 NiINCi0JIiBsaW5rLWxvY2FsIGFkZHJlc3MgdG8gaW50ZXJmYWNlcyB3aGVu IGF0dGFjaGVkIik7DQotU1lTQ1RMX1ZORVRfU1RSVUNUKF9uZXRfaW5ldDZf aXA2LCBJUFY2Q1RMX1JJUDZTVEFUUywgcmlwNnN0YXRzLCBDVExGTEFHX1JX LA0KLQkmVk5FVF9OQU1FKHJpcDZzdGF0KSwgcmlwNnN0YXQsICIiKTsNCisg ICAgQ1RMRkxBR19SVywgJlZORVRfTkFNRShpcDZfYXV0b19saW5rbG9jYWwp LCAwLA0KKyAgICAiRGVmYXVsdCB2YWx1ZSBvZiBwZXItaW50ZXJmYWNlIGZs YWcgZm9yIGF1dG9tYXRpY2FsbHkgYWRkaW5nIGFuIGlwNiAiDQorICAgICJs aW5rLWxvY2FsIGFkZHJlc3MgdG8gaW50ZXJmYWNlcyB3aGVuIGF0dGFjaGVk Iik7DQorU1lTQ1RMX1ZORVRfU1RSVUNUKF9uZXRfaW5ldDZfaXA2LCBJUFY2 Q1RMX1JJUFY2U1RBVFMsIHJpcDZzdGF0cywgQ1RMRkxBR19SVywNCisgICAg JlZORVRfTkFNRShyaXA2c3RhdCksIHJpcDZzdGF0LA0KKyAgICAiUklQNiBz dGF0aXN0aWNzIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaXA2 LCBJUFY2Q1RMX1BSRUZFUl9URU1QQUREUiwgcHJlZmVyX3RlbXBhZGRyLA0K LQlDVExGTEFHX1JXLCAmVk5FVF9OQU1FKGlwNl9wcmVmZXJfdGVtcGFkZHIp LCAwLCAiIik7DQorICAgIENUTEZMQUdfUlcsICZWTkVUX05BTUUoaXA2X3By ZWZlcl90ZW1wYWRkciksIDAsDQorICAgICJQcmVmZXIgdGhlIHRlbXBvcmFy eSBhZGRyZXNzIGFzc2lnbmVkIHdoZW4gcGVyZm9ybWluZyBOVUQiKTsNCiBT WVNDVExfVk5FVF9JTlQoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfVVNFX0RF RkFVTFRaT05FLCB1c2VfZGVmYXVsdHpvbmUsDQotCUNUTEZMQUdfUlcsICZW TkVUX05BTUUoaXA2X3VzZV9kZWZ6b25lKSwgMCwiIik7DQorICAgIENUTEZM QUdfUlcsICZWTkVUX05BTUUoaXA2X3VzZV9kZWZ6b25lKSwgMCwNCisgICAg IlVzZSB0aGUgZGVmYXVsdCBzY29wZSB6b25lIGlmIG5vdCBleHBsaWNpdGx5 IHByb3ZpZGVkIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaXA2 LCBJUFY2Q1RMX01BWEZSQUdTLCBtYXhmcmFncywgQ1RMRkxBR19SVywNCi0J JlZORVRfTkFNRShpcDZfbWF4ZnJhZ3MpLCAwLCAiIik7DQorICAgICZWTkVU X05BTUUoaXA2X21heGZyYWdzKSwgMCwNCisgICAgIk1heGltdW0gbnVtYmVy IG9mIGZyYWdtZW50cyB0byBob2xkIGluIHRoZSByZWFzc2VtYmx5IHF1ZXVl Iik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaXA2LCBJUFY2Q1RM X01DQVNUX1BNVFUsIG1jYXN0X3BtdHUsIENUTEZMQUdfUlcsDQotCSZWTkVU X05BTUUoaXA2X21jYXN0X3BtdHUpLCAwLCAiIik7DQorICAgICZWTkVUX05B TUUoaXA2X21jYXN0X3BtdHUpLCAwLA0KKyAgICAiRW5hYmxlIG11bHRpY2Fz dCBwTVRVIGRpc2NvdmVyeSIpOw0KICNpZmRlZiBJUFNURUFMVEgNCiBTWVND VExfVk5FVF9JTlQoX25ldF9pbmV0Nl9pcDYsIElQVjZDVExfU1RFQUxUSCwg c3RlYWx0aCwgQ1RMRkxBR19SVywNCi0JJlZORVRfTkFNRShpcDZzdGVhbHRo KSwgMCwgIiIpOw0KKyAgICAmVk5FVF9OQU1FKGlwNnN0ZWFsdGgpLCAwLA0K KyAgICAiSVB2NiBzdGVhbHRoIG1vZGUuIE5vIGhvcCBsaW1pdCBkZWNyZW1l bnRhdGlvbiBvbiBmb3J3YXJkaW5nIik7DQogI2VuZGlmDQogDQogI2lmZGVm IEZMT1dUQUJMRQ0KQEAgLTYwMCwyOSArNjE5LDM5IEBADQogDQogLyogbmV0 LmluZXQ2LmljbXA2ICovDQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZf aWNtcDYsIElDTVBWNkNUTF9SRURJUkFDQ0VQVCwgcmVkaXJhY2NlcHQsDQot CUNUTEZMQUdfUlcsICZWTkVUX05BTUUoaWNtcDZfcmVkaXJhY2NlcHQpLCAw LCAiIik7DQotU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaWNtcDYsIElD TVBWNkNUTF9SRURJUlRJTUVPVVQsIHJlZGlydGltZW91dCwNCi0JQ1RMRkxB R19SVywgJlZORVRfTkFNRShpY21wNl9yZWRpcnRpbWVvdXQpLCAwLCAiIik7 DQorICAgIENUTEZMQUdfUlcsICZWTkVUX05BTUUoaWNtcDZfcmVkaXJhY2Nl cHQpLCAwLA0KKyAgICAiQWNjZXB0IGFuZCBwcm9jZXNzIHJvdXRlciByZWRp cmVjdHMiKTsNCiBTWVNDVExfVk5FVF9TVFJVQ1QoX25ldF9pbmV0Nl9pY21w NiwgSUNNUFY2Q1RMX1NUQVRTLCBzdGF0cywgQ1RMRkxBR19SVywNCi0JJlZO RVRfTkFNRShpY21wNnN0YXQpLCBpY21wNnN0YXQsICIiKTsNCisgICAgJlZO RVRfTkFNRShpY21wNnN0YXQpLCBpY21wNnN0YXQsDQorICAgICJJQ01QdjYg c3RhdGlzdGljcyIpOw0KIFNZU0NUTF9WTkVUX0lOVChfbmV0X2luZXQ2X2lj bXA2LCBJQ01QVjZDVExfTkQ2X1BSVU5FLCBuZDZfcHJ1bmUsIENUTEZMQUdf UlcsDQotCSZWTkVUX05BTUUobmQ2X3BydW5lKSwgMCwgIiIpOw0KKyAgICAm Vk5FVF9OQU1FKG5kNl9wcnVuZSksIDAsDQorICAgICJQZXJpb2QgKGluIHNl Y3MpIGZvciBjaGVja2luZyBmb3Igc3RhbGUgcm91dGVyIGVudHJpZXMgdmlh IG5kNiIpOw0KIFNZU0NUTF9WTkVUX0lOVChfbmV0X2luZXQ2X2ljbXA2LCBJ Q01QVjZDVExfTkQ2X0RFTEFZLCBuZDZfZGVsYXksIENUTEZMQUdfUlcsDQot CSZWTkVUX05BTUUobmQ2X2RlbGF5KSwgMCwgIiIpOw0KKyAgICAmVk5FVF9O QU1FKG5kNl9kZWxheSksIDAsDQorICAgICJEZWxheSAoaW4gc2VjcykgYmVm b3JlIHBlcmZvcm1pbmcgTlVEIG9uIHN0YWxlIG5vZGVzIik7DQogU1lTQ1RM X1ZORVRfSU5UKF9uZXRfaW5ldDZfaWNtcDYsIElDTVBWNkNUTF9ORDZfVU1B WFRSSUVTLCBuZDZfdW1heHRyaWVzLA0KLQlDVExGTEFHX1JXLCAmVk5FVF9O QU1FKG5kNl91bWF4dHJpZXMpLCAwLCAiIik7DQorICAgIENUTEZMQUdfUlcs ICZWTkVUX05BTUUobmQ2X3VtYXh0cmllcyksIDAsDQorICAgICJNYXhpbXVt IG51bWJlciBvZiB1bmljYXN0IHF1ZXJpZXMgdG8gcGVyZm9ybSB2aWEgbmQ2 Iik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaWNtcDYsIElDTVBW NkNUTF9ORDZfTU1BWFRSSUVTLCBuZDZfbW1heHRyaWVzLA0KLQlDVExGTEFH X1JXLCAmVk5FVF9OQU1FKG5kNl9tbWF4dHJpZXMpLCAwLCAiIik7DQorICAg IENUTEZMQUdfUlcsICZWTkVUX05BTUUobmQ2X21tYXh0cmllcyksIDAsDQor ICAgICJNYXhpbXVtIG51bWJlciBvZiBtdWx0aWNhc3QgcXVlcmllcyB0byBw ZXJmb3JtIHZpYSBuZDYiKTsNCiBTWVNDVExfVk5FVF9JTlQoX25ldF9pbmV0 Nl9pY21wNiwgSUNNUFY2Q1RMX05ENl9VU0VMT09QQkFDSywgbmQ2X3VzZWxv b3BiYWNrLA0KLQlDVExGTEFHX1JXLCAmVk5FVF9OQU1FKG5kNl91c2Vsb29w YmFjayksIDAsICIiKTsNCisgICAgQ1RMRkxBR19SVywgJlZORVRfTkFNRShu ZDZfdXNlbG9vcGJhY2spLCAwLA0KKyAgICAiVXNlIGxvb3BiYWNrIGludGVy ZmFjZSBmb3IgbG9jYWwgdHJhZmZpYyIpOw0KIFNZU0NUTF9WTkVUX0lOVChf bmV0X2luZXQ2X2ljbXA2LCBJQ01QVjZDVExfTk9ERUlORk8sIG5vZGVpbmZv LCBDVExGTEFHX1JXLA0KLQkmVk5FVF9OQU1FKGljbXA2X25vZGVpbmZvKSwg MCwgIiIpOw0KKyAgICAmVk5FVF9OQU1FKGljbXA2X25vZGVpbmZvKSwgMCwN CisgICAgIk5vZGUgaW5mb3JtYXRpb24gc3RhdGUiKTsNCiBTWVNDVExfVk5F VF9JTlQoX25ldF9pbmV0Nl9pY21wNiwgSUNNUFY2Q1RMX0VSUlBQU0xJTUlU LCBlcnJwcHNsaW1pdCwNCi0JQ1RMRkxBR19SVywgJlZORVRfTkFNRShpY21w NmVycnBwc2xpbSksIDAsICIiKTsNCisgICAgQ1RMRkxBR19SVywgJlZORVRf TkFNRShpY21wNmVycnBwc2xpbSksIDAsDQorICAgICJQYWNrZXRzIHBlciBz ZWNvbmQgbGltaXQgZm9yIElDTVB2NiBxdWVyaWVzIik7DQogU1lTQ1RMX1ZO RVRfSU5UKF9uZXRfaW5ldDZfaWNtcDYsIElDTVBWNkNUTF9ORDZfTUFYTlVE SElOVCwgbmQ2X21heG51ZGhpbnQsDQotCUNUTEZMQUdfUlcsICZWTkVUX05B TUUobmQ2X21heG51ZGhpbnQpLCAwLCAiIik7DQorICAgIENUTEZMQUdfUlcs ICZWTkVUX05BTUUobmQ2X21heG51ZGhpbnQpLCAwLA0KKyAgICAiTWF4aW11 bSBudW1iZXIgb2YgdXBwZXIgbGF5ZXIgaGludHMiKTsNCiBTWVNDVExfVk5F VF9JTlQoX25ldF9pbmV0Nl9pY21wNiwgSUNNUFY2Q1RMX05ENl9ERUJVRywg bmQ2X2RlYnVnLCBDVExGTEFHX1JXLA0KLQkmVk5FVF9OQU1FKG5kNl9kZWJ1 ZyksIDAsICIiKTsNCisgICAgJlZORVRfTkFNRShuZDZfZGVidWcpLCAwLA0K KyAgICAiIik7DQogU1lTQ1RMX1ZORVRfSU5UKF9uZXRfaW5ldDZfaWNtcDYs IElDTVBWNkNUTF9ORDZfT05MSU5LTlNSRkM0ODYxLA0KLQluZDZfb25saW5r X25zX3JmYzQ4NjEsIENUTEZMQUdfUlcsICZWTkVUX05BTUUobmQ2X29ubGlu a19uc19yZmM0ODYxKSwNCi0JMCwgIkFjY2VwdCAnb24tbGluaycgbmQ2IE5T IGluIGNvbXBsaWFuY2Ugd2l0aCBSRkMgNDg2MS4iKTsNCisgICAgbmQ2X29u bGlua19uc19yZmM0ODYxLA0KKyAgICBDVExGTEFHX1JXLCAmVk5FVF9OQU1F KG5kNl9vbmxpbmtfbnNfcmZjNDg2MSksIDAsDQorICAgICJBY2NlcHQgJ29u LWxpbmsnIG5kNiBOUyBpbiBjb21wbGlhbmNlIHdpdGggUkZDIDQ4NjEiKTsN Cg== --967339439-1681226068-1354342829=:57210--