]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/net/flowtable.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / net / flowtable.h
1 /*-
2  * Copyright (c) 2014 Gleb Smirnoff <glebius@FreeBSD.org>
3  * Copyright (c) 2008-2010, BitGravity Inc.
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  *  1. Redistributions of source code must retain the above copyright notice,
10  *     this list of conditions and the following disclaimer.
11  *
12  *  2. Neither the name of the BitGravity Corporation nor the names of its
13  *     contributors may be used to endorse or promote products derived from
14  *     this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  *
28  * $FreeBSD$
29  *
30  */
31
32 #ifndef _NET_FLOWTABLE_H_
33 #define _NET_FLOWTABLE_H_
34
35 struct flowtable_stat {
36         uint64_t        ft_collisions;
37         uint64_t        ft_misses;
38         uint64_t        ft_free_checks;
39         uint64_t        ft_frees;
40         uint64_t        ft_hits;
41         uint64_t        ft_lookups;
42         uint64_t        ft_fail_lle_invalid;
43         uint64_t        ft_inserts;
44 };
45
46 #ifdef  _KERNEL
47
48 /*
49  * Given a flow table, look up the L3 and L2 information
50  * and return it in the route.
51  */
52 int flowtable_lookup(sa_family_t, struct mbuf *, struct route *);
53 void flowtable_route_flush(sa_family_t, struct rtentry *);
54
55 #endif /* _KERNEL */
56 #endif /* !_NET_FLOWTABLE_H_ */