summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2015-11-07 11:12:00 +0000
committermelifaro <melifaro@FreeBSD.org>2015-11-07 11:12:00 +0000
commit595bcb4ce105d94c91a9045beea8a59ae9a64f39 (patch)
tree814c7d157de580df906def7cdb0e62992bf93266 /sys/netinet6
parentc2f5f67bd969f6441e91fc8cb611561eaef8426c (diff)
downloadFreeBSD-src-595bcb4ce105d94c91a9045beea8a59ae9a64f39.zip
FreeBSD-src-595bcb4ce105d94c91a9045beea8a59ae9a64f39.tar.gz
Unify setting lladdr for AF_INET[6].
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/in6.c4
-rw-r--r--sys/netinet6/nd6.c9
-rw-r--r--sys/netinet6/nd6_nbr.c6
3 files changed, 7 insertions, 12 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index af62ed1..65e7ab0 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -2261,8 +2261,8 @@ in6_lltable_alloc(struct lltable *llt, u_int flags,
}
lle->la_flags = flags;
if ((flags & LLE_IFADDR) == LLE_IFADDR) {
- bcopy(IF_LLADDR(ifp), &lle->ll_addr, ifp->if_addrlen);
- lle->la_flags |= (LLE_VALID | LLE_STATIC);
+ lltable_set_entry_addr(ifp, lle, IF_LLADDR(ifp));
+ lle->la_flags |= LLE_STATIC;
}
if ((lle->la_flags & LLE_STATIC) != 0)
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 23e7a9b..46f0923 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -1738,10 +1738,8 @@ nd6_cache_lladdr(struct ifnet *ifp, struct in6_addr *from, char *lladdr,
* Since we already know all the data for the new entry,
* fill it before insertion.
*/
- if (lladdr != NULL) {
- bcopy(lladdr, &ln->ll_addr, ifp->if_addrlen);
- ln->la_flags |= LLE_VALID;
- }
+ if (lladdr != NULL)
+ lltable_set_entry_addr(ifp, ln, lladdr);
IF_AFDATA_WLOCK(ifp);
LLE_WLOCK(ln);
/* Prefer any existing lle over newly-created one */
@@ -1799,8 +1797,7 @@ nd6_cache_lladdr(struct ifnet *ifp, struct in6_addr *from, char *lladdr,
* Record source link-layer address
* XXX is it dependent to ifp->if_type?
*/
- bcopy(lladdr, &ln->ll_addr, ifp->if_addrlen);
- ln->la_flags |= LLE_VALID;
+ lltable_set_entry_addr(ifp, ln, lladdr);
nd6_llinfo_setstate(ln, ND6_LLINFO_STALE);
EVENTHANDLER_INVOKE(lle_event, ln, LLENTRY_RESOLVED);
diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c
index 199dbee..93d5b58 100644
--- a/sys/netinet6/nd6_nbr.c
+++ b/sys/netinet6/nd6_nbr.c
@@ -765,8 +765,7 @@ nd6_na_input(struct mbuf *m, int off, int icmp6len)
/*
* Record link-layer address, and update the state.
*/
- bcopy(lladdr, &ln->ll_addr, ifp->if_addrlen);
- ln->la_flags |= LLE_VALID;
+ lltable_set_entry_addr(ifp, ln, lladdr);
EVENTHANDLER_INVOKE(lle_event, ln, LLENTRY_RESOLVED);
if (is_solicited)
nd6_llinfo_setstate(ln, ND6_LLINFO_REACHABLE);
@@ -832,8 +831,7 @@ nd6_na_input(struct mbuf *m, int off, int icmp6len)
* Update link-local address, if any.
*/
if (lladdr != NULL) {
- bcopy(lladdr, &ln->ll_addr, ifp->if_addrlen);
- ln->la_flags |= LLE_VALID;
+ lltable_set_entry_addr(ifp, ln, lladdr);
EVENTHANDLER_INVOKE(lle_event, ln,
LLENTRY_RESOLVED);
}
OpenPOWER on IntegriCloud