git: 1e8eb413f6c8 - main - netinet/icmp6: add PREF64 definitions (RFC 8781)

From: Warner Losh <imp_at_FreeBSD.org>
Date: Thu, 23 May 2024 20:41:45 UTC
The branch main has been updated by imp:

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

commit 1e8eb413f6c8b0d7c44b9779f59fd1d33d2e6ac8
Author:     Lexi Winter <lexi@le-Fay.ORG>
AuthorDate: 2024-04-26 21:33:13 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-05-23 20:40:11 +0000

    netinet/icmp6: add PREF64 definitions (RFC 8781)
    
    Reviewed by: imp, glebius (prior suggetions done)
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1206
---
 sys/netinet/icmp6.h | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sys/netinet/icmp6.h b/sys/netinet/icmp6.h
index 4368fd2a0fcf..05f4737e8fd9 100644
--- a/sys/netinet/icmp6.h
+++ b/sys/netinet/icmp6.h
@@ -307,7 +307,8 @@ struct nd_opt_hdr {		/* Neighbor discovery option header */
 #define ND_OPT_ROUTE_INFO		24	/* RFC 4191 */
 #define ND_OPT_RDNSS			25	/* RFC 6106 */
 #define ND_OPT_DNSSL			31	/* RFC 6106 */
-#define ND_OPT_MAX			31
+#define ND_OPT_PREF64			38	/* RFC 8781 */
+#define ND_OPT_MAX			38
 
 struct nd_opt_prefix_info {	/* prefix information */
 	u_int8_t	nd_opt_pi_type;
@@ -373,6 +374,14 @@ struct nd_opt_dnssl {		/* DNSSL option (RFC 6106) */
 	/* followed by list of DNS search domains */
 } __packed;
 
+struct nd_opt_pref64 {		/* PREF64 option (RFC 8781) */
+	u_int8_t	nd_opt_pref64_type;
+	u_int8_t	nd_opt_pref64_len;
+	/* bits 0-12 are the SL, bits 13-15 are the PLC */
+	u_int16_t	nd_opt_pref64_sl_plc;
+	char		nd_opt_prefix[12];
+} __packed;
+
 /*
  * icmp6 namelookup
  */