summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2022-08-05 10:59:57 +0200
committerFlorian Westphal <fw@strlen.de>2022-08-11 18:09:54 +0200
commit0b2f3212b551a87fe936701fa0813032861a3308 (patch)
treebfa2c94a9c15a9a35aa9e1e8ef42063d684eaf55 /include/net
parent2024439bd5ceb145eeeb428b2a59e9b905153ac3 (diff)
downloadlinux-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.h2
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 */