summaryrefslogtreecommitdiffstats
path: root/sys/net/flowtable.h
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/net/flowtable.h
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/net/flowtable.h')
-rw-r--r--sys/net/flowtable.h28
1 files changed, 3 insertions, 25 deletions
diff --git a/sys/net/flowtable.h b/sys/net/flowtable.h
index de35287..504d28f 100644
--- a/sys/net/flowtable.h
+++ b/sys/net/flowtable.h
@@ -45,34 +45,12 @@ struct flowtable_stat {
#ifdef _KERNEL
-#define FL_HASH_ALL (1<<0) /* hash 4-tuple + protocol */
-#define FL_IPV6 (1<<9)
-
-#define FL_TCP (1<<11)
-#define FL_SCTP (1<<12)
-#define FL_UDP (1<<13)
-#define FL_DEBUG (1<<14)
-#define FL_DEBUG_ALL (1<<15)
-
-struct flowtable;
-struct flentry;
-struct route;
-struct route_in6;
-
/*
- * Given a flow table, look up the L3 and L2 information and
- * return it in the route.
- *
+ * Given a flow table, look up the L3 and L2 information
+ * and return it in the route.
*/
-struct flentry *flowtable_lookup(sa_family_t, struct mbuf *);
+int flowtable_lookup(sa_family_t, struct mbuf *, struct route *);
void flowtable_route_flush(sa_family_t, struct rtentry *);
-#ifdef INET
-void flow_to_route(struct flentry *fl, struct route *ro);
-#endif
-#ifdef INET6
-void flow_to_route_in6(struct flentry *fl, struct route_in6 *ro);
-#endif
-
#endif /* _KERNEL */
#endif /* !_NET_FLOWTABLE_H_ */
OpenPOWER on IntegriCloud