Module Name:    src
Committed By:   roy
Date:           Mon Sep 14 15:09:57 UTC 2020

Modified Files:
        src/sys/net: if_llatbl.h nd.c nd.h
        src/sys/netinet: if_arp.c
        src/sys/netinet6: nd6.c

Log Message:
nd: Name l3addr union of llentry and use in-place of nd_addr.

Probably makes more sense and makes nd.h less messy.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/net/if_llatbl.h
cvs rdiff -u -r1.1 -r1.2 src/sys/net/nd.c src/sys/net/nd.h
cvs rdiff -u -r1.295 -r1.296 src/sys/netinet/if_arp.c
cvs rdiff -u -r1.272 -r1.273 src/sys/netinet6/nd6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/net/if_llatbl.h
diff -u src/sys/net/if_llatbl.h:1.17 src/sys/net/if_llatbl.h:1.18
--- src/sys/net/if_llatbl.h:1.17	Thu Jul 18 06:47:10 2019
+++ src/sys/net/if_llatbl.h	Mon Sep 14 15:09:57 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_llatbl.h,v 1.17 2019/07/18 06:47:10 ozaki-r Exp $	*/
+/*	$NetBSD: if_llatbl.h,v 1.18 2020/09/14 15:09:57 roy Exp $	*/
 /*
  * Copyright (c) 2004 Luigi Rizzo, Alessandro Cerri. All rights reserved.
  * Copyright (c) 2004-2008 Qing Li. All rights reserved.
@@ -63,7 +63,7 @@ extern krwlock_t lltable_rwlock;
  */
 struct llentry {
 	LIST_ENTRY(llentry)	 lle_next;
-	union {
+	union l3addr {
 		struct in_addr	addr4;
 		struct in6_addr	addr6;
 	} r_l3addr;
@@ -86,7 +86,7 @@ struct llentry {
 	uint16_t		 la_asked;
 	uint16_t		 la_preempt;
 	uint16_t		 ln_byhint;
-	int16_t			 ln_state;	/* IPv6 has ND6_LLINFO_NOSTATE == -2 */
+	int16_t			 ln_state;	/* ND_LLINFO_NOSTATE == -2 */
 	uint16_t		 ln_router;
 	time_t			 ln_ntick;
 	int			 lle_refcnt;

Index: src/sys/net/nd.c
diff -u src/sys/net/nd.c:1.1 src/sys/net/nd.c:1.2
--- src/sys/net/nd.c:1.1	Fri Sep 11 14:59:22 2020
+++ src/sys/net/nd.c	Mon Sep 14 15:09:57 2020
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nd.c,v 1.1 2020/09/11 14:59:22 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nd.c,v 1.2 2020/09/14 15:09:57 roy Exp $");
 
 #include <sys/callout.h>
 #include <sys/mbuf.h>
@@ -57,7 +57,7 @@ nd_timer(void *arg)
 	struct psref psref;
 	struct mbuf *m = NULL;
 	bool send_ns = false, missed = false;
-	union nd_addr taddr, *daddrp = NULL;
+	union l3addr taddr, *daddrp = NULL;
 
 	SOFTNET_KERNEL_LOCK_UNLESS_NET_MPSAFE();
 	LLE_WLOCK(ln);
@@ -158,7 +158,7 @@ nd_timer(void *arg)
 
 	if (send_ns) {
 		uint8_t lladdr[255], *lladdrp;
-		union nd_addr src, *psrc;
+		union l3addr src, *psrc;
 
 		nd_set_timer(ln, ND_TIMER_RETRANS);
 		if (ln->ln_state > ND_LLINFO_INCOMPLETE &&
@@ -353,7 +353,7 @@ nd_resolve(struct llentry *ln, const str
 	 */
 	if (!ND_IS_LLINFO_PERMANENT(ln) && ln->ln_asked == 0) {
 		struct psref psref;
-		union nd_addr dst, src, *psrc;
+		union l3addr dst, src, *psrc;
 
 		ln->ln_asked++;
 		nd_set_timer(ln, ND_TIMER_RETRANS);
Index: src/sys/net/nd.h
diff -u src/sys/net/nd.h:1.1 src/sys/net/nd.h:1.2
--- src/sys/net/nd.h:1.1	Fri Sep 11 14:59:22 2020
+++ src/sys/net/nd.h	Mon Sep 14 15:09:57 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nd.h,v 1.1 2020/09/11 14:59:22 roy Exp $	*/
+/*	$NetBSD: nd.h,v 1.2 2020/09/14 15:09:57 roy Exp $	*/
 
 /*
  * Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -65,12 +65,6 @@
 		((MIN_RANDOM_FACTOR * (x >> 10)) + (cprng_fast32() & \
 		((MAX_RANDOM_FACTOR - MIN_RANDOM_FACTOR) * (x >> 10))))
 
-#include <netinet/in.h>
-union nd_addr {
-	struct in_addr	nd_addr4;
-	struct in6_addr	nd_addr6;
-};
-
 struct nd_domain {
 	int nd_family;
 	int nd_delay;		/* delay first probe time in seconds */
@@ -81,10 +75,10 @@ struct nd_domain {
 	bool (*nd_nud_enabled)(struct ifnet *);
 	unsigned int (*nd_reachable)(struct ifnet *);	/* msec */
 	unsigned int (*nd_retrans)(struct ifnet *);	/* msec */
-	union nd_addr *(*nd_holdsrc)(struct llentry *, union nd_addr *);
-	void (*nd_output)(struct ifnet *, const union nd_addr *,
-	    const union nd_addr *, const uint8_t *, const union nd_addr *);
-	void (*nd_missed)(struct ifnet *, const union nd_addr *, struct mbuf *);
+	union l3addr *(*nd_holdsrc)(struct llentry *, union l3addr *);
+	void (*nd_output)(struct ifnet *, const union l3addr *,
+	    const union l3addr *, const uint8_t *, const union l3addr *);
+	void (*nd_missed)(struct ifnet *, const union l3addr *, struct mbuf *);
 	void (*nd_free)(struct llentry *, int);
 };
 

Index: src/sys/netinet/if_arp.c
diff -u src/sys/netinet/if_arp.c:1.295 src/sys/netinet/if_arp.c:1.296
--- src/sys/netinet/if_arp.c:1.295	Fri Sep 11 15:16:00 2020
+++ src/sys/netinet/if_arp.c	Mon Sep 14 15:09:57 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_arp.c,v 1.295 2020/09/11 15:16:00 roy Exp $	*/
+/*	$NetBSD: if_arp.c,v 1.296 2020/09/14 15:09:57 roy Exp $	*/
 
 /*
  * Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.295 2020/09/11 15:16:00 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.296 2020/09/14 15:09:57 roy Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -141,10 +141,10 @@ static int arp_perform_nud = 1;
 static bool arp_nud_enabled(struct ifnet *);
 static unsigned int arp_llinfo_reachable(struct ifnet *);
 static unsigned int arp_llinfo_retrans(struct ifnet *);
-static union nd_addr *arp_llinfo_holdsrc(struct llentry *, union nd_addr *);
-static void arp_llinfo_output(struct ifnet *, const union nd_addr *,
-    const union nd_addr *, const uint8_t *, const union nd_addr *);
-static void arp_llinfo_missed(struct ifnet *, const union nd_addr *,
+static union l3addr *arp_llinfo_holdsrc(struct llentry *, union l3addr *);
+static void arp_llinfo_output(struct ifnet *, const union l3addr *,
+    const union l3addr *, const uint8_t *, const union l3addr *);
+static void arp_llinfo_missed(struct ifnet *, const union l3addr *,
     struct mbuf *);
 static void arp_free(struct llentry *, int);
 
@@ -1305,8 +1305,8 @@ arp_llinfo_retrans(__unused struct ifnet
  * and stores it in @src.
  * Returns pointer to @src (if hold queue is not empty) or NULL.
  */
-static union nd_addr *
-arp_llinfo_holdsrc(struct llentry *ln, union nd_addr *src)
+static union l3addr *
+arp_llinfo_holdsrc(struct llentry *ln, union l3addr *src)
 {
 	struct ip *ip;
 
@@ -1319,7 +1319,7 @@ arp_llinfo_holdsrc(struct llentry *ln, u
 	ip = mtod(ln->ln_hold, struct ip *);
 	/* XXX pullup? */
 	if (sizeof(*ip) < ln->ln_hold->m_len)
-		src->nd_addr4 = ip->ip_src;
+		src->addr4 = ip->ip_src;
 	else
 		src = NULL;
 
@@ -1327,20 +1327,20 @@ arp_llinfo_holdsrc(struct llentry *ln, u
 }
 
 static void
-arp_llinfo_output(struct ifnet *ifp, __unused const union nd_addr *daddr,
-    const union nd_addr *taddr, const uint8_t *tlladdr,
-    const union nd_addr *hsrc)
+arp_llinfo_output(struct ifnet *ifp, __unused const union l3addr *daddr,
+    const union l3addr *taddr, const uint8_t *tlladdr,
+    const union l3addr *hsrc)
 {
-	struct in_addr tip = taddr->nd_addr4, sip = zeroin_addr;
+	struct in_addr tip = taddr->addr4, sip = zeroin_addr;
 	const uint8_t *slladdr = CLLADDR(ifp->if_sadl);
 
 	if (hsrc != NULL) {
 		struct in_ifaddr *ia;
 		struct psref psref;
 
-		ia = in_get_ia_on_iface_psref(hsrc->nd_addr4, ifp, &psref);
+		ia = in_get_ia_on_iface_psref(hsrc->addr4, ifp, &psref);
 		if (ia != NULL) {
-			sip = hsrc->nd_addr4;
+			sip = hsrc->addr4;
 			ia4_release(ia, &psref);
 		}
 	}
@@ -1373,7 +1373,8 @@ arp_llinfo_output(struct ifnet *ifp, __u
 
 
 static void
-arp_llinfo_missed(struct ifnet *ifp, const union nd_addr *taddr, struct mbuf *m)
+arp_llinfo_missed(struct ifnet *ifp, const union l3addr *taddr,
+    struct mbuf *m)
 {
 	struct in_addr mdaddr = zeroin_addr;
 	struct sockaddr_in dsin, tsin;
@@ -1395,7 +1396,7 @@ arp_llinfo_missed(struct ifnet *ifp, con
 	} else
 		sa = NULL;
 
-	sockaddr_in_init(&tsin, &taddr->nd_addr4, 0);
+	sockaddr_in_init(&tsin, &taddr->addr4, 0);
 	rt_clonedmsg(RTM_MISS, sa, sintosa(&tsin), NULL, ifp);
 }
 

Index: src/sys/netinet6/nd6.c
diff -u src/sys/netinet6/nd6.c:1.272 src/sys/netinet6/nd6.c:1.273
--- src/sys/netinet6/nd6.c:1.272	Fri Sep 11 15:03:33 2020
+++ src/sys/netinet6/nd6.c	Mon Sep 14 15:09:57 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nd6.c,v 1.272 2020/09/11 15:03:33 roy Exp $	*/
+/*	$NetBSD: nd6.c,v 1.273 2020/09/14 15:09:57 roy Exp $	*/
 /*	$KAME: nd6.c,v 1.279 2002/06/08 11:16:51 itojun Exp $	*/
 
 /*
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nd6.c,v 1.272 2020/09/11 15:03:33 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nd6.c,v 1.273 2020/09/14 15:09:57 roy Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -107,10 +107,10 @@ static void nd6_free(struct llentry *, i
 static bool nd6_nud_enabled(struct ifnet *);
 static unsigned int nd6_llinfo_reachable(struct ifnet *);
 static unsigned int nd6_llinfo_retrans(struct ifnet *);
-static union nd_addr *nd6_llinfo_holdsrc(struct llentry *, union nd_addr *);
-static void nd6_llinfo_output(struct ifnet *, const union nd_addr *,
-    const union nd_addr *, const uint8_t *, const union nd_addr *);
-static void nd6_llinfo_missed(struct ifnet *, const union nd_addr *,
+static union l3addr *nd6_llinfo_holdsrc(struct llentry *, union l3addr *);
+static void nd6_llinfo_output(struct ifnet *, const union l3addr *,
+    const union l3addr *, const uint8_t *, const union l3addr *);
+static void nd6_llinfo_missed(struct ifnet *, const union l3addr *,
     struct mbuf *);
 static void nd6_timer(void *);
 static void nd6_timer_work(struct work *, void *);
@@ -367,23 +367,23 @@ nd6_llinfo_get_holdsrc(struct llentry *l
 	return src;
 }
 
-static union nd_addr *
-nd6_llinfo_holdsrc(struct llentry *ln, union nd_addr *src)
+static union l3addr *
+nd6_llinfo_holdsrc(struct llentry *ln, union l3addr *src)
 {
 
-	if (nd6_llinfo_get_holdsrc(ln, &src->nd_addr6) == NULL)
+	if (nd6_llinfo_get_holdsrc(ln, &src->addr6) == NULL)
 		return NULL;
 	return src;
 }
 
 static void
-nd6_llinfo_output(struct ifnet *ifp, const union nd_addr *daddr,
-    const union nd_addr *taddr, __unused const uint8_t *tlladdr,
-    const union nd_addr *hsrc)
+nd6_llinfo_output(struct ifnet *ifp, const union l3addr *daddr,
+    const union l3addr *taddr, __unused const uint8_t *tlladdr,
+    const union l3addr *hsrc)
 {
 
-	nd6_ns_output(ifp, &daddr->nd_addr6, &taddr->nd_addr6,
-	    &hsrc->nd_addr6, NULL);
+	nd6_ns_output(ifp, &daddr->addr6, &taddr->addr6,
+	    &hsrc->addr6, NULL);
 }
 
 static bool
@@ -411,7 +411,7 @@ nd6_llinfo_retrans(struct ifnet *ifp)
 }
 
 static void
-nd6_llinfo_missed(struct ifnet *ifp, const union nd_addr *taddr, struct mbuf *m)
+nd6_llinfo_missed(struct ifnet *ifp, const union l3addr *taddr, struct mbuf *m)
 {
 	struct in6_addr mdaddr6 = zeroin6_addr;
 	struct sockaddr_in6 dsin6, tsin6;
@@ -426,7 +426,7 @@ nd6_llinfo_missed(struct ifnet *ifp, con
 	} else
 		sa = NULL;
 
-	sockaddr_in6_init(&tsin6, &taddr->nd_addr6, 0, 0, 0);
+	sockaddr_in6_init(&tsin6, &taddr->addr6, 0, 0, 0);
 	rt_clonedmsg(RTM_MISS, sa, sin6tosa(&tsin6), NULL, ifp);
 }
 

Reply via email to