svn commit: r230943 - projects/multi-fibv6/head/sys/netinet/ipfw
Bjoern A. Zeeb
bz at FreeBSD.org
Fri Feb 3 13:12:42 UTC 2012
Author: bz
Date: Fri Feb 3 13:12:42 2012
New Revision: 230943
URL: http://svn.freebsd.org/changeset/base/230943
Log:
Make ipfw verify_path6() multi-FIB aware.
The "fib" and "setfib" keywords implementations need no adjustments.
Sponsored by: Cisco Systems, Inc.
Modified:
projects/multi-fibv6/head/sys/netinet/ipfw/ip_fw2.c
Modified: projects/multi-fibv6/head/sys/netinet/ipfw/ip_fw2.c
==============================================================================
--- projects/multi-fibv6/head/sys/netinet/ipfw/ip_fw2.c Fri Feb 3 13:08:44 2012 (r230942)
+++ projects/multi-fibv6/head/sys/netinet/ipfw/ip_fw2.c Fri Feb 3 13:12:42 2012 (r230943)
@@ -496,7 +496,7 @@ search_ip6_addr_net (struct in6_addr * i
}
static int
-verify_path6(struct in6_addr *src, struct ifnet *ifp)
+verify_path6(struct in6_addr *src, struct ifnet *ifp, u_int fib)
{
struct route_in6 ro;
struct sockaddr_in6 *dst;
@@ -507,9 +507,8 @@ verify_path6(struct in6_addr *src, struc
dst->sin6_family = AF_INET6;
dst->sin6_len = sizeof(*dst);
dst->sin6_addr = *src;
- /* XXX MRT 0 for ipv6 at this time */
- rtalloc_ign((struct route *)&ro, 0);
+ in6_rtalloc_ign(&ro, 0, fib);
if (ro.ro_rt == NULL)
return 0;
@@ -1701,7 +1700,7 @@ do { \
#ifdef INET6
is_ipv6 ?
verify_path6(&(args->f_id.src_ip6),
- m->m_pkthdr.rcvif) :
+ m->m_pkthdr.rcvif, args->f_id.fib) :
#endif
verify_path(src_ip, m->m_pkthdr.rcvif,
args->f_id.fib)));
@@ -1713,7 +1712,7 @@ do { \
#ifdef INET6
is_ipv6 ?
verify_path6(&(args->f_id.src_ip6),
- NULL) :
+ NULL, args->f_id.fib) :
#endif
verify_path(src_ip, NULL, args->f_id.fib)));
break;
@@ -1731,7 +1730,8 @@ do { \
#ifdef INET6
is_ipv6 ? verify_path6(
&(args->f_id.src_ip6),
- m->m_pkthdr.rcvif) :
+ m->m_pkthdr.rcvif,
+ args->f_id.fib) :
#endif
verify_path(src_ip,
m->m_pkthdr.rcvif,
More information about the svn-src-projects
mailing list