summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2014-02-17 11:50:56 +0000
committerglebius <glebius@FreeBSD.org>2014-02-17 11:50:56 +0000
commitf62415c4677178be00f736c9eb6c9fc271121739 (patch)
treeb63b57e43a7903a2401548fb2721cb98f2bd2dcd /sys/netinet6
parent3b760d926d3b01cc21a48d4cfb5633c6d4397609 (diff)
downloadFreeBSD-src-f62415c4677178be00f736c9eb6c9fc271121739.zip
FreeBSD-src-f62415c4677178be00f736c9eb6c9fc271121739.tar.gz
o Remove at compile time the HASH_ALL code, that was never
tested and is unfinished. However, I've tested my version, it works okay. As before it is unfinished: timeout aren't driven by TCP session state. To enable the HASH_ALL mode, one needs in kernel config: options FLOWTABLE_HASH_ALL o Reduce the alignment on flentry to 64 bytes. Without the FLOWTABLE_HASH_ALL option, twice less memory would be consumed by flows. o API to ip_output()/ip6_output() got even more thin: 1 liner. o Remove unused unions. Simply use fle->f_key[]. o Merge all IPv4 code into flowtable_lookup_ipv4(), and do same flowtable_lookup_ipv6(). Stop copying data to on stack sockaddr structures, simply use key[] on stack. o Move code from flowtable_lookup_common() that actually works on insertion into flowtable_insert(). Sponsored by: Netflix Sponsored by: Nginx, Inc.
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/ip6_output.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c
index 00528ef..4f06a46 100644
--- a/sys/netinet6/ip6_output.c
+++ b/sys/netinet6/ip6_output.c
@@ -522,19 +522,8 @@ skip_ipsec2:;
ro = &opt->ip6po_route;
dst = (struct sockaddr_in6 *)&ro->ro_dst;
#ifdef FLOWTABLE
- if (ro->ro_rt == NULL) {
- struct flentry *fle;
-
- /*
- * The flow table returns route entries valid for up to 30
- * seconds; we rely on the remainder of ip_output() taking no
- * longer than that long for the stability of ro_rt. The
- * flow ID assignment must have happened before this point.
- */
- fle = flowtable_lookup(AF_INET6, m);
- if (fle != NULL)
- flow_to_route_in6(fle, ro);
- }
+ if (ro->ro_rt == NULL)
+ (void )flowtable_lookup(AF_INET6, m, (struct route *)ro);
#endif
again:
/*
OpenPOWER on IntegriCloud