Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Aug 2015 18:26:43 +0000 (UTC)
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r287064 - projects/routing/sys/net
Message-ID:  <201508231826.t7NIQhci047260@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: melifaro
Date: Sun Aug 23 18:26:42 2015
New Revision: 287064
URL: https://svnweb.freebsd.org/changeset/base/287064

Log:
  Convert stf to use new routing api.

Modified:
  projects/routing/sys/net/if_stf.c

Modified: projects/routing/sys/net/if_stf.c
==============================================================================
--- projects/routing/sys/net/if_stf.c	Sun Aug 23 18:26:23 2015	(r287063)
+++ projects/routing/sys/net/if_stf.c	Sun Aug 23 18:26:42 2015	(r287064)
@@ -114,6 +114,8 @@
 
 #include <netinet/ip_encap.h>
 
+#include <net/rt_nhops.h>
+
 #include <machine/stdarg.h>
 
 #include <net/bpf.h>
@@ -558,26 +560,12 @@ stf_checkaddr4(struct stf_softc *sc, str
 	 * perform ingress filter
 	 */
 	if (sc && (STF2IFP(sc)->if_flags & IFF_LINK2) == 0 && inifp) {
-		struct sockaddr_in sin;
-		struct rtentry *rt;
+		struct nhop4_basic nh4;
 
-		bzero(&sin, sizeof(sin));
-		sin.sin_family = AF_INET;
-		sin.sin_len = sizeof(struct sockaddr_in);
-		sin.sin_addr = *in;
-		rt = rtalloc1_fib((struct sockaddr *)&sin, 0,
-		    0UL, sc->sc_fibnum);
-		if (!rt || rt->rt_ifp != inifp) {
-#if 0
-			log(LOG_WARNING, "%s: packet from 0x%x dropped "
-			    "due to ingress filter\n", if_name(STF2IFP(sc)),
-			    (u_int32_t)ntohl(sin.sin_addr.s_addr));
-#endif
-			if (rt)
-				RTFREE_LOCKED(rt);
-			return -1;
-		}
-		RTFREE_LOCKED(rt);
+		if (fib4_lookup_nh_basic(sc->sc_fibnum, *in, 0, &nh4) != 0)
+			return (-1);
+		if (nh4.nh_ifp != inifp)
+			return (-1);
 	}
 
 	return 0;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508231826.t7NIQhci047260>