diff options
author | Florian Westphal <fw@strlen.de> | 2022-08-05 10:59:57 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2022-08-11 18:09:54 +0200 |
commit | 0b2f3212b551a87fe936701fa0813032861a3308 (patch) | |
tree | bfa2c94a9c15a9a35aa9e1e8ef42063d684eaf55 /include/net | |
parent | 2024439bd5ceb145eeeb428b2a59e9b905153ac3 (diff) | |
download | linux-0b2f3212b551a87fe936701fa0813032861a3308.tar.gz linux-0b2f3212b551a87fe936701fa0813032861a3308.tar.bz2 linux-0b2f3212b551a87fe936701fa0813032861a3308.zip |
netfilter: nfnetlink: re-enable conntrack expectation events
To avoid allocation of the conntrack extension area when possible,
the default behaviour was changed to only allocate the event extension
if a userspace program is subscribed to a notification group.
Problem is that while 'conntrack -E' does enable the event allocation
behind the scenes, 'conntrack -E expect' does not: no expectation events
are delivered unless user sets
"net.netfilter.nf_conntrack_events" back to 1 (always on).
Fix the autodetection to also consider EXP type group.
We need to track the 6 event groups (3+3, new/update/destroy for events and
for expectations each) independently, else we'd disable events again
if an expectation group becomes empty while there is still an active
event group.
Fixes: 2794cdb0b97b ("netfilter: nfnetlink: allow to detect if ctnetlink listeners exist")
Reported-by: Yi Chen <yiche@redhat.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/netns/conntrack.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h index 0677cd3de034..c396a3862e80 100644 --- a/include/net/netns/conntrack.h +++ b/include/net/netns/conntrack.h @@ -95,7 +95,7 @@ struct nf_ip_net { struct netns_ct { #ifdef CONFIG_NF_CONNTRACK_EVENTS - bool ctnetlink_has_listener; + u8 ctnetlink_has_listener; bool ecache_dwork_pending; #endif u8 sysctl_log_invalid; /* Log invalid packets */ |