]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - net/netfilter/nf_conntrack_acct.c
UBUNTU: Ubuntu-5.11.0-22.23
[mirror_ubuntu-hirsute-kernel.git] / net / netfilter / nf_conntrack_acct.c
CommitLineData
d2912cb1 1// SPDX-License-Identifier: GPL-2.0-only
58401572
KPO
2/* Accouting handling for netfilter. */
3
4/*
5 * (C) 2008 Krzysztof Piotr Oledzki <ole@ans.pl>
58401572
KPO
6 */
7
5191d70f
AS
8#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
9
58401572 10#include <linux/netfilter.h>
5a0e3ad6 11#include <linux/slab.h>
58401572
KPO
12#include <linux/kernel.h>
13#include <linux/moduleparam.h>
bc3b2d7f 14#include <linux/export.h>
58401572
KPO
15
16#include <net/netfilter/nf_conntrack.h>
17#include <net/netfilter/nf_conntrack_extend.h>
18#include <net/netfilter/nf_conntrack_acct.h>
19
eb939922 20static bool nf_ct_acct __read_mostly;
58401572
KPO
21
22module_param_named(acct, nf_ct_acct, bool, 0644);
23MODULE_PARM_DESC(acct, "Enable connection tracking flow accounting.");
24
23f671a1 25static const struct nf_ct_ext_type acct_extend = {
f7b13e43
HE
26 .len = sizeof(struct nf_conn_acct),
27 .align = __alignof__(struct nf_conn_acct),
58401572
KPO
28 .id = NF_CT_EXT_ACCT,
29};
30
fc3893fd 31void nf_conntrack_acct_pernet_init(struct net *net)
d716a4df 32{
d716a4df 33 net->ct.sysctl_acct = nf_ct_acct;
b7ff3a1f 34}
d716a4df 35
b7ff3a1f
G
36int nf_conntrack_acct_init(void)
37{
38 int ret = nf_ct_extend_register(&acct_extend);
d716a4df 39 if (ret < 0)
5191d70f 40 pr_err("Unable to register extension\n");
d716a4df 41 return ret;
58401572
KPO
42}
43
b7ff3a1f 44void nf_conntrack_acct_fini(void)
58401572 45{
b7ff3a1f 46 nf_ct_extend_unregister(&acct_extend);
58401572 47}