Do not store unused ICMPv6 Option PREFIX_INFORMATION
authorkn <kn@openbsd.org>
Wed, 7 Dec 2022 17:34:20 +0000 (17:34 +0000)
committerkn <kn@openbsd.org>
Wed, 7 Dec 2022 17:34:20 +0000 (17:34 +0000)
Dead since 2017 sys/netinet6/nd6_rtr.c r1.163
    Remove sending of router solicitations and processing of router
    advertisements from the kernel. It's handled by slaacd(8) these days.

sysctl(2) net.inet6.icmp6.nd6_debug does not warn about it like it does
for, e.g., duplicate MTU options, so don't do anything with this option.

Remove access macros for other unused options while here.
Eventually, union nd_opts should be removed completely.
All under _KERNEL.

tcpdump(8)/rad(8)/slaacd(8) keep showing/sending/receiving this option when
running this diff on both router and client.

OK claudio

sys/netinet6/nd6.c
sys/netinet6/nd6.h

index e51b11f..0647837 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: nd6.c,v 1.257 2022/12/02 15:35:35 kn Exp $    */
+/*     $OpenBSD: nd6.c,v 1.258 2022/12/07 17:34:20 kn Exp $    */
 /*     $KAME: nd6.c,v 1.280 2002/06/08 19:52:07 itojun Exp $   */
 
 /*
@@ -249,13 +249,6 @@ nd6_options(union nd_opts *ndopts)
                        }
                        break;
                case ND_OPT_PREFIX_INFORMATION:
-                       if (ndopts->nd_opt_array[nd_opt->nd_opt_type] == 0) {
-                               ndopts->nd_opt_array[nd_opt->nd_opt_type]
-                                       = nd_opt;
-                       }
-                       ndopts->nd_opts_pi_end =
-                               (struct nd_opt_prefix_info *)nd_opt;
-                       break;
                case ND_OPT_DNSSL:
                case ND_OPT_RDNSS:
                        /* Don't warn */
index d096ccd..43a4c6a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: nd6.h,v 1.91 2022/12/02 15:35:35 kn Exp $     */
+/*     $OpenBSD: nd6.h,v 1.92 2022/12/07 17:34:20 kn Exp $     */
 /*     $KAME: nd6.h,v 1.95 2002/06/08 11:31:06 itojun Exp $    */
 
 /*
@@ -125,10 +125,6 @@ union nd_opts {
 };
 #define nd_opts_src_lladdr     nd_opt_each.src_lladdr
 #define nd_opts_tgt_lladdr     nd_opt_each.tgt_lladdr
-#define nd_opts_pi             nd_opt_each.pi_beg
-#define nd_opts_pi_end         nd_opt_each.pi_end
-#define nd_opts_rh             nd_opt_each.rh
-#define nd_opts_mtu            nd_opt_each.mtu
 #define nd_opts_search         nd_opt_each.search
 #define nd_opts_last           nd_opt_each.last
 #define nd_opts_done           nd_opt_each.done