summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroy <roy@NetBSD.org>2020-09-14 15:09:57 +0000
committerroy <roy@NetBSD.org>2020-09-14 15:09:57 +0000
commite158be47dc5dff4e69b11fa2fb255017f9657b51 (patch)
treef7dbfb1116f385b92267a2483a8eeed3a865944b
parent77a4d989f6c2cb633593ee0ff21c6c1fecd244a6 (diff)
nd: Name l3addr union of llentry and use in-place of nd_addr.
Probably makes more sense and makes nd.h less messy.
-rw-r--r--sys/net/if_llatbl.h6
-rw-r--r--sys/net/nd.c8
-rw-r--r--sys/net/nd.h16
-rw-r--r--sys/netinet/if_arp.c35
-rw-r--r--sys/netinet6/nd6.c32
5 files changed, 46 insertions, 51 deletions
diff --git a/sys/net/if_llatbl.h b/sys/net/if_llatbl.h
index 2c08ac225e7..ee5ebc9d685 100644
--- a/sys/net/if_llatbl.h
+++ b/sys/net/if_llatbl.h
@@ -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;
diff --git a/sys/net/nd.c b/sys/net/nd.c
index 9ecb27f58cf..d70d86eac28 100644
--- a/sys/net/nd.c
+++ b/sys/net/nd.c
@@ -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 struct rtentry *rt, struct mbuf *m,
*/
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);
diff --git a/sys/net/nd.h b/sys/net/nd.h
index 6b065d5772e..0165e322448 100644
--- a/sys/net/nd.h
+++ b/sys/net/nd.h
@@ -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);
};
diff --git a/sys/netinet/if_arp.c b/sys/netinet/if_arp.c
index 8adf7e363ed..2c42b4f8847 100644
--- a/sys/netinet/if_arp.c
+++ b/sys/netinet/if_arp.c
@@ -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 *ifp)
* 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, union nd_addr *src)
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, union nd_addr *src)
}
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, __unused const union nd_addr *daddr,
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, const union nd_addr *taddr, struct mbuf *m)
} 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);
}
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 67a24816c87..8d5d4618a27 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -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 *, int);
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 *ln, struct in6_addr *src)
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, const union nd_addr *taddr, struct mbuf *m)
} 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);
}