diff options
author | melifaro <melifaro@FreeBSD.org> | 2015-11-07 11:12:00 +0000 |
---|---|---|
committer | melifaro <melifaro@FreeBSD.org> | 2015-11-07 11:12:00 +0000 |
commit | 595bcb4ce105d94c91a9045beea8a59ae9a64f39 (patch) | |
tree | 814c7d157de580df906def7cdb0e62992bf93266 /sys/netinet6 | |
parent | c2f5f67bd969f6441e91fc8cb611561eaef8426c (diff) | |
download | FreeBSD-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.c | 4 | ||||
-rw-r--r-- | sys/netinet6/nd6.c | 9 | ||||
-rw-r--r-- | sys/netinet6/nd6_nbr.c | 6 |
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); } |