Linux-libre 4.15.7-gnu
[librecmc/linux-libre.git] / include / net / netfilter / xt_rateest.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _XT_RATEEST_H
3 #define _XT_RATEEST_H
4
5 #include <net/gen_stats.h>
6
7 struct xt_rateest {
8         /* keep lock and bstats on same cache line to speedup xt_rateest_tg() */
9         struct gnet_stats_basic_packed  bstats;
10         spinlock_t                      lock;
11
12
13         /* following fields not accessed in hot path */
14         unsigned int                    refcnt;
15         struct hlist_node               list;
16         char                            name[IFNAMSIZ];
17         struct gnet_estimator           params;
18         struct rcu_head                 rcu;
19
20         /* keep this field far away to speedup xt_rateest_mt() */
21         struct net_rate_estimator __rcu *rate_est;
22 };
23
24 struct xt_rateest *xt_rateest_lookup(const char *name);
25 void xt_rateest_put(struct xt_rateest *est);
26
27 #endif /* _XT_RATEEST_H */