svn commit: r287064 - projects/routing/sys/net
Alexander V. Chernikov
melifaro at FreeBSD.org
Sun Aug 23 18:26:43 UTC 2015
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;
More information about the svn-src-projects
mailing list