svn commit: r204078 - user/kmacy/head_flowtable_v6/sys/net
Kip Macy
kmacy at FreeBSD.org
Fri Feb 19 01:09:08 UTC 2010
Author: kmacy
Date: Fri Feb 19 01:09:08 2010
New Revision: 204078
URL: http://svn.freebsd.org/changeset/base/204078
Log:
- move in6_localaddr check out of the fast path and only check destination
the source will of course be local if we're not forwarding
Modified:
user/kmacy/head_flowtable_v6/sys/net/flowtable.c
Modified: user/kmacy/head_flowtable_v6/sys/net/flowtable.c
==============================================================================
--- user/kmacy/head_flowtable_v6/sys/net/flowtable.c Thu Feb 18 23:20:15 2010 (r204077)
+++ user/kmacy/head_flowtable_v6/sys/net/flowtable.c Fri Feb 19 01:09:08 2010 (r204078)
@@ -1053,10 +1053,6 @@ flowtable_lookup(struct flowtable *ft, s
dsin6 = (struct sockaddr_in6 *)dsa;
ssin6 = (struct sockaddr_in6 *)ssa;
- if (in6_localaddr(&dsin6->sin6_addr) ||
- in6_localaddr(&ssin6->sin6_addr))
- return (NULL);
-
flags |= FL_IPV6;
hash = ipv6_flow_lookup_hash_internal(ssin6, dsin6, key, flags);
}
@@ -1133,6 +1129,15 @@ uncached:
}
#ifdef INET6
if (ssa->ss_family == AF_INET6) {
+ struct sockaddr_in6 *dsin6;
+
+ dsin6 = (struct sockaddr_in6 *)dsa;
+ if (in6_localaddr(&dsin6->sin6_addr)) {
+ RTFREE(rt);
+ ro->ro_rt = NULL;
+ return (NULL);
+ }
+
if (rt->rt_flags & RTF_GATEWAY)
l3addr = (struct sockaddr_storage *)rt->rt_gateway;
More information about the svn-src-user
mailing list