...
...
14
.../networking/nf_conntrack-sysctl.rst | 29 +++++++++++++++----
14
.../networking/nf_conntrack-sysctl.rst | 29 +++++++++++++++----
15
include/net/netfilter/nf_conntrack.h | 8 ++++-
15
include/net/netfilter/nf_conntrack.h | 8 ++++-
16
include/net/netns/conntrack.h | 1 +
16
include/net/netns/conntrack.h | 1 +
17
net/netfilter/nf_conntrack_core.c | 19 ++++++------
17
net/netfilter/nf_conntrack_core.c | 19 ++++++------
18
net/netfilter/nf_conntrack_netlink.c | 2 +-
18
net/netfilter/nf_conntrack_netlink.c | 2 +-
19
net/netfilter/nf_conntrack_standalone.c | 5 ++--
19
net/netfilter/nf_conntrack_standalone.c | 7 +++--
20
6 files changed, 44 insertions(+), 20 deletions(-)
20
6 files changed, 46 insertions(+), 20 deletions(-)
21
21
22
diff --git a/Documentation/networking/nf_conntrack-sysctl.rst b/Documentation/networking/nf_conntrack-sysctl.rst
22
diff --git a/Documentation/networking/nf_conntrack-sysctl.rst b/Documentation/networking/nf_conntrack-sysctl.rst
23
index XXXXXXX..XXXXXXX 100644
23
index XXXXXXX..XXXXXXX 100644
24
--- a/Documentation/networking/nf_conntrack-sysctl.rst
24
--- a/Documentation/networking/nf_conntrack-sysctl.rst
25
+++ b/Documentation/networking/nf_conntrack-sysctl.rst
25
+++ b/Documentation/networking/nf_conntrack-sysctl.rst
...
...
32
- Note that connection tracking entries are added to the table twice -- once
32
- Note that connection tracking entries are added to the table twice -- once
33
- for the original direction and once for the reply direction (i.e., with
33
- for the original direction and once for the reply direction (i.e., with
34
- the reversed address). This means that with default settings a maxed-out
34
- the reversed address). This means that with default settings a maxed-out
35
- table will have a average hash chain length of 2, not 1.
35
- table will have a average hash chain length of 2, not 1.
36
+ - 0 - disabled (unlimited)
36
+ - 0 - disabled (unlimited)
37
+    - not 0 - enabled
37
+ - not 0 - enabled
38
+
38
+
39
+ Maximum number of allowed connection tracking entries per netns. This value
39
+ Maximum number of allowed connection tracking entries per netns. This value
40
+ is set to nf_conntrack_buckets by default.
40
+ is set to nf_conntrack_buckets by default.
41
+
41
+
42
+ Note that connection tracking entries are added to the table twice -- once
42
+ Note that connection tracking entries are added to the table twice -- once
...
...
91
+++ b/include/net/netns/conntrack.h
91
+++ b/include/net/netns/conntrack.h
92
@@ -XXX,XX +XXX,XX @@ struct netns_ct {
92
@@ -XXX,XX +XXX,XX @@ struct netns_ct {
93
    u8            sysctl_acct;
93
    u8            sysctl_acct;
94
    u8            sysctl_tstamp;
94
    u8            sysctl_tstamp;
95
    u8            sysctl_checksum;
95
    u8            sysctl_checksum;
96
+    unsigned int sysctl_max;
96
+    unsigned int        sysctl_max;
97
97
98
    struct ip_conntrack_stat __percpu *stat;
98
    struct ip_conntrack_stat __percpu *stat;
99
    struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb;
99
    struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb;
100
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
100
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
101
index XXXXXXX..XXXXXXX 100644
101
index XXXXXXX..XXXXXXX 100644
...
...
213
        .maxlen        = sizeof(int),
213
        .maxlen        = sizeof(int),
214
        .mode        = 0644,
214
        .mode        = 0644,
215
        .proc_handler    = proc_dointvec_minmax,
215
        .proc_handler    = proc_dointvec_minmax,
216
@@ -XXX,XX +XXX,XX @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
216
@@ -XXX,XX +XXX,XX @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
217
217
218
    table[NF_SYSCTL_CT_COUNT].data = &cnet->count;
219
    table[NF_SYSCTL_CT_CHECKSUM].data = &net->ct.sysctl_checksum;
220
+    table[NF_SYSCTL_CT_MAX].data = &net->ct.sysctl_max;
221
    table[NF_SYSCTL_CT_LOG_INVALID].data = &net->ct.sysctl_log_invalid;
222
    table[NF_SYSCTL_CT_ACCT].data = &net->ct.sysctl_acct;
223
#ifdef CONFIG_NF_CONNTRACK_EVENTS
224
@@ -XXX,XX +XXX,XX @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
225
218
    /* Don't allow non-init_net ns to alter global sysctls */
226
    /* Don't allow non-init_net ns to alter global sysctls */
219
    if (!net_eq(&init_net, net)) {
227
    if (!net_eq(&init_net, net)) {
220
-        table[NF_SYSCTL_CT_MAX].mode = 0444;
228
-        table[NF_SYSCTL_CT_MAX].mode = 0444;
221
        table[NF_SYSCTL_CT_EXPECT_MAX].mode = 0444;
229
        table[NF_SYSCTL_CT_EXPECT_MAX].mode = 0444;
222
        table[NF_SYSCTL_CT_BUCKETS].mode = 0444;
230
        table[NF_SYSCTL_CT_BUCKETS].mode = 0444;
223
    }
231
    }
232
@@ -XXX,XX +XXX,XX @@ static int nf_conntrack_pernet_init(struct net *net)
233
    int ret;
234
235
    net->ct.sysctl_checksum = 1;
236
+    net->ct.sysctl_max = init_net.ct.sysctl_max;
237
238
    ret = nf_conntrack_standalone_init_sysctl(net);
239
    if (ret < 0)
224
--
240
--
225
2.40.1
241
2.40.1
diff view generated by jsdifflib