From owner-svn-src-all@freebsd.org Sat Nov 7 11:12:03 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC13BA2708C; Sat, 7 Nov 2015 11:12:02 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF7E11970; Sat, 7 Nov 2015 11:12:02 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tA7BC1rg008212; Sat, 7 Nov 2015 11:12:01 GMT (envelope-from melifaro@FreeBSD.org) Received: (from melifaro@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tA7BC1X6008205; Sat, 7 Nov 2015 11:12:01 GMT (envelope-from melifaro@FreeBSD.org) Message-Id: <201511071112.tA7BC1X6008205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: melifaro set sender to melifaro@FreeBSD.org using -f From: "Alexander V. Chernikov" Date: Sat, 7 Nov 2015 11:12:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r290486 - in head/sys: net netinet netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Nov 2015 11:12:03 -0000 Author: melifaro Date: Sat Nov 7 11:12:00 2015 New Revision: 290486 URL: https://svnweb.freebsd.org/changeset/base/290486 Log: Unify setting lladdr for AF_INET[6]. Modified: head/sys/net/if_llatbl.c head/sys/net/if_llatbl.h head/sys/netinet/if_ether.c head/sys/netinet/in.c head/sys/netinet6/in6.c head/sys/netinet6/nd6.c head/sys/netinet6/nd6_nbr.c Modified: head/sys/net/if_llatbl.c ============================================================================== --- head/sys/net/if_llatbl.c Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/net/if_llatbl.c Sat Nov 7 11:12:00 2015 (r290486) @@ -277,6 +277,15 @@ lltable_drop_entry_queue(struct llentry return (pkts_dropped); } +void +lltable_set_entry_addr(struct ifnet *ifp, struct llentry *lle, + const char *lladdr) +{ + + bcopy(lladdr, &lle->ll_addr, ifp->if_addrlen); + lle->la_flags |= LLE_VALID; +} + /* * * Performes generic cleanup routines and frees lle. Modified: head/sys/net/if_llatbl.h ============================================================================== --- head/sys/net/if_llatbl.h Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/net/if_llatbl.h Sat Nov 7 11:12:00 2015 (r290486) @@ -207,6 +207,8 @@ struct llentry *llentry_alloc(struct if /* helper functions */ size_t lltable_drop_entry_queue(struct llentry *); +void lltable_set_entry_addr(struct ifnet *ifp, struct llentry *lle, + const char *lladdr); struct llentry *lltable_alloc_entry(struct lltable *llt, u_int flags, const struct sockaddr *l4addr); Modified: head/sys/netinet/if_ether.c ============================================================================== --- head/sys/netinet/if_ether.c Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/netinet/if_ether.c Sat Nov 7 11:12:00 2015 (r290486) @@ -141,8 +141,6 @@ static void in_arpinput(struct mbuf *); static void arp_check_update_lle(struct arphdr *ah, struct in_addr isaddr, struct ifnet *ifp, int bridged, struct llentry *la); -static void arp_update_lle(struct arphdr *ah, struct ifnet *ifp, - struct llentry *la); static void arp_mark_lle_reachable(struct llentry *la); @@ -820,7 +818,7 @@ match: la = lltable_alloc_entry(LLTABLE(ifp), 0, dst); if (la == NULL) goto drop; - arp_update_lle(ah, ifp, la); + lltable_set_entry_addr(ifp, la, ar_sha(ah)); IF_AFDATA_WLOCK(ifp); LLE_WLOCK(la); @@ -1038,7 +1036,7 @@ arp_check_update_lle(struct arphdr *ah, } /* Update data */ - arp_update_lle(ah, ifp, la); + lltable_set_entry_addr(ifp, la, ar_sha(ah)); IF_AFDATA_WUNLOCK(ifp); LLE_REMREF(la); @@ -1070,17 +1068,6 @@ arp_check_update_lle(struct arphdr *ah, LLE_WUNLOCK(la); } -/* - * Updates @la fields used by fast path code. - */ -static void -arp_update_lle(struct arphdr *ah, struct ifnet *ifp, struct llentry *la) -{ - - memcpy(&la->ll_addr, ar_sha(ah), ifp->if_addrlen); - la->la_flags |= LLE_VALID; -} - static void arp_mark_lle_reachable(struct llentry *la) { Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/netinet/in.c Sat Nov 7 11:12:00 2015 (r290486) @@ -1258,8 +1258,8 @@ in_lltable_alloc(struct lltable *llt, u_ } 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; } return (lle); Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/netinet6/in6.c Sat Nov 7 11:12:00 2015 (r290486) @@ -2261,8 +2261,8 @@ in6_lltable_alloc(struct lltable *llt, u } 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) Modified: head/sys/netinet6/nd6.c ============================================================================== --- head/sys/netinet6/nd6.c Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/netinet6/nd6.c Sat Nov 7 11:12:00 2015 (r290486) @@ -1738,10 +1738,8 @@ nd6_cache_lladdr(struct ifnet *ifp, stru * 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, stru * 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); Modified: head/sys/netinet6/nd6_nbr.c ============================================================================== --- head/sys/netinet6/nd6_nbr.c Sat Nov 7 11:08:19 2015 (r290485) +++ head/sys/netinet6/nd6_nbr.c Sat Nov 7 11:12:00 2015 (r290486) @@ -765,8 +765,7 @@ nd6_na_input(struct mbuf *m, int off, in /* * 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, in * 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); }