svn commit: r360866 - head/sys/net

Alexander V. Chernikov melifaro at FreeBSD.org
Sun May 10 09:34:49 UTC 2020


Author: melifaro
Date: Sun May 10 09:34:48 2020
New Revision: 360866
URL: https://svnweb.freebsd.org/changeset/base/360866

Log:
  Remove rtalloc1(_fib) KPI.
  
  Last user of rtalloc1() KPI has been eliminated in rS360631.
  As kernel is now fully switched to use new routing KPI defined in
  rS359823, remove old lookup functions.
  
  Differential Revision:	https://reviews.freebsd.org/D24776

Modified:
  head/sys/net/route.c
  head/sys/net/route.h

Modified: head/sys/net/route.c
==============================================================================
--- head/sys/net/route.c	Sun May 10 03:36:11 2020	(r360865)
+++ head/sys/net/route.c	Sun May 10 09:34:48 2020	(r360866)
@@ -420,76 +420,6 @@ sys_setfib(struct thread *td, struct setfib_args *uap)
 }
 
 /*
- * Look up the route that matches the address given
- * Or, at least try.. Create a cloned route if needed.
- *
- * The returned route, if any, is locked.
- */
-struct rtentry *
-rtalloc1(struct sockaddr *dst, int report, u_long ignflags)
-{
-
-	return (rtalloc1_fib(dst, report, ignflags, RT_DEFAULT_FIB));
-}
-
-struct rtentry *
-rtalloc1_fib(struct sockaddr *dst, int report, u_long ignflags,
-		    u_int fibnum)
-{
-	RIB_RLOCK_TRACKER;
-	struct rib_head *rh;
-	struct radix_node *rn;
-	struct rtentry *newrt;
-	struct rt_addrinfo info;
-	int err = 0, msgtype = RTM_MISS;
-
-	KASSERT((fibnum < rt_numfibs), ("rtalloc1_fib: bad fibnum"));
-	rh = rt_tables_get_rnh(fibnum, dst->sa_family);
-	newrt = NULL;
-	if (rh == NULL)
-		goto miss;
-
-	/*
-	 * Look up the address in the table for that Address Family
-	 */
-	if ((ignflags & RTF_RNH_LOCKED) == 0)
-		RIB_RLOCK(rh);
-#ifdef INVARIANTS
-	else
-		RIB_LOCK_ASSERT(rh);
-#endif
-	rn = rh->rnh_matchaddr(dst, &rh->head);
-	if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) {
-		newrt = RNTORT(rn);
-		RT_LOCK(newrt);
-		RT_ADDREF(newrt);
-		if ((ignflags & RTF_RNH_LOCKED) == 0)
-			RIB_RUNLOCK(rh);
-		return (newrt);
-
-	} else if ((ignflags & RTF_RNH_LOCKED) == 0)
-		RIB_RUNLOCK(rh);
-	/*
-	 * Either we hit the root or could not find any match,
-	 * which basically means: "cannot get there from here".
-	 */
-miss:
-	RTSTAT_INC(rts_unreach);
-
-	if (report) {
-		/*
-		 * If required, report the failure to the supervising
-		 * Authorities.
-		 * For a delete, this is not an error. (report == 0)
-		 */
-		bzero(&info, sizeof(info));
-		info.rti_info[RTAX_DST] = dst;
-		rt_missmsg_fib(msgtype, &info, 0, err, fibnum);
-	}
-	return (newrt);
-}
-
-/*
  * Remove a reference count from an rtentry.
  * If the count gets low enough, take it out of the routing table
  */

Modified: head/sys/net/route.h
==============================================================================
--- head/sys/net/route.h	Sun May 10 03:36:11 2020	(r360865)
+++ head/sys/net/route.h	Sun May 10 09:34:48 2020	(r360866)
@@ -392,8 +392,6 @@ struct sockaddr *rtsock_fix_netmask(const struct socka
 /*
  * Note the following locking behavior:
  *
- *    rtalloc1() returns a locked rtentry
- *
  *    rtfree() and RTFREE_LOCKED() require a locked rtentry
  *
  *    RTFREE() uses an unlocked entry.
@@ -414,14 +412,12 @@ void	rt_flushifroutes(struct ifnet *ifp);
 
 /* XXX MRT COMPAT VERSIONS THAT SET UNIVERSE to 0 */
 /* Thes are used by old code not yet converted to use multiple FIBS */
-struct rtentry *rtalloc1(struct sockaddr *, int, u_long);
 int	 rtinit(struct ifaddr *, int, int);
 
 /* XXX MRT NEW VERSIONS THAT USE FIBs
  * For now the protocol indepedent versions are the same as the AF_INET ones
  * but this will change.. 
  */
-struct rtentry *rtalloc1_fib(struct sockaddr *, int, u_long, u_int);
 int	 rtioctl_fib(u_long, caddr_t, u_int);
 int	 rtrequest_fib(int, struct sockaddr *,
 	    struct sockaddr *, struct sockaddr *, int, struct rtentry **, u_int);


More information about the svn-src-head mailing list