From 8f4a4772953e6df89326d3b8d7269389fd30b618 Mon Sep 17 00:00:00 2001 From: Alexey <4653240-dm38@users.noreply.gitlab.com> Date: Fri, 6 Nov 2020 14:08:13 +0300 Subject: [PATCH 1/7] kernel: netfilter: Introduce NF_CONNTRACK_CHAIN_EVENTS (Backport from chromiumos 3.18 (114594778f3a8a22f1c98f70aef74b778329da3f) & lede patchs) --- .../net/netfilter/nf_conntrack_ecache.h | 26 +++++++- .../linux-3.4.x/include/net/netns/conntrack.h | 4 ++ trunk/linux-3.4.x/net/netfilter/Kconfig | 8 +++ .../net/netfilter/nf_conntrack_core.c | 3 + .../net/netfilter/nf_conntrack_ecache.c | 59 +++++++++++++++++++ .../net/netfilter/nf_conntrack_netlink.c | 21 ++++++- 6 files changed, 118 insertions(+), 3 deletions(-) diff --git a/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h b/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h index ea6f8a48ffe..a697f90cb80 100644 --- a/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h +++ b/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h @@ -64,23 +64,30 @@ struct nf_ct_event { int report; }; +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +extern int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb); +extern int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb); +#else struct nf_ct_event_notifier { int (*fcn)(unsigned int events, struct nf_ct_event *item); }; extern int nf_conntrack_register_notifier(struct net *net, struct nf_ct_event_notifier *nb); extern void nf_conntrack_unregister_notifier(struct net *net, struct nf_ct_event_notifier *nb); +#endif extern void nf_ct_deliver_cached_events(struct nf_conn *ct); static inline void nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct) { - struct net *net = nf_ct_net(ct); struct nf_conntrack_ecache *e; +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + struct net *net = nf_ct_net(ct); if (net->ct.nf_conntrack_event_cb == NULL) return; +#endif e = nf_ct_ecache_find(ct); if (e == NULL) @@ -95,19 +102,27 @@ nf_conntrack_eventmask_report(unsigned int eventmask, u32 pid, int report) { + struct nf_conntrack_ecache *e; +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS int ret = 0; struct net *net = nf_ct_net(ct); struct nf_ct_event_notifier *notify; - struct nf_conntrack_ecache *e; rcu_read_lock(); notify = rcu_dereference(net->ct.nf_conntrack_event_cb); if (notify == NULL) goto out_unlock; +#else + struct net *net = nf_ct_net(ct); +#endif e = nf_ct_ecache_find(ct); if (e == NULL) +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS goto out_unlock; +#else + return 0; +#endif if (nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) { struct nf_ct_event item = { @@ -119,6 +134,7 @@ nf_conntrack_eventmask_report(unsigned int eventmask, unsigned long missed = e->pid ? 0 : e->missed; if (!((eventmask | missed) & e->ctmask)) +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS goto out_unlock; ret = notify->fcn(eventmask | missed, &item); @@ -141,6 +157,12 @@ nf_conntrack_eventmask_report(unsigned int eventmask, out_unlock: rcu_read_unlock(); return ret; +#else + return 0; + atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, eventmask | missed, &item); + } + return 0; +#endif } static inline int diff --git a/trunk/linux-3.4.x/include/net/netns/conntrack.h b/trunk/linux-3.4.x/include/net/netns/conntrack.h index 7a911eca0f1..bba7ff2aded 100644 --- a/trunk/linux-3.4.x/include/net/netns/conntrack.h +++ b/trunk/linux-3.4.x/include/net/netns/conntrack.h @@ -18,7 +18,11 @@ struct netns_ct { struct hlist_nulls_head unconfirmed; struct hlist_nulls_head dying; struct ip_conntrack_stat __percpu *stat; +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + struct atomic_notifier_head nf_conntrack_chain; +#else struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb; +#endif struct nf_exp_event_notifier __rcu *nf_expect_event_cb; int sysctl_events; unsigned int sysctl_events_retry_timeout; diff --git a/trunk/linux-3.4.x/net/netfilter/Kconfig b/trunk/linux-3.4.x/net/netfilter/Kconfig index 1d27ed8adb0..b665c4a18ba 100644 --- a/trunk/linux-3.4.x/net/netfilter/Kconfig +++ b/trunk/linux-3.4.x/net/netfilter/Kconfig @@ -117,6 +117,14 @@ config NF_CONNTRACK_EVENTS If unsure, say `N'. +config NF_CONNTRACK_CHAIN_EVENTS + bool "Register multiple callbacks to ct events" + select NF_CONNTRACK_EVENTS + help + Support multiple registrations. + + If unsure, say `N'. + config NF_CONNTRACK_TIMEOUT bool 'Connection tracking timeout' depends on NETFILTER_ADVANCED diff --git a/trunk/linux-3.4.x/net/netfilter/nf_conntrack_core.c b/trunk/linux-3.4.x/net/netfilter/nf_conntrack_core.c index 7243027d18c..ee13ccd6966 100644 --- a/trunk/linux-3.4.x/net/netfilter/nf_conntrack_core.c +++ b/trunk/linux-3.4.x/net/netfilter/nf_conntrack_core.c @@ -1834,6 +1834,9 @@ static int nf_conntrack_init_net(struct net *net) if (ret < 0) goto err_timeout; +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + ATOMIC_INIT_NOTIFIER_HEAD(&net->ct.nf_conntrack_chain); +#endif return 0; err_timeout: diff --git a/trunk/linux-3.4.x/net/netfilter/nf_conntrack_ecache.c b/trunk/linux-3.4.x/net/netfilter/nf_conntrack_ecache.c index 5bd3047ddee..8c4cfeddb19 100644 --- a/trunk/linux-3.4.x/net/netfilter/nf_conntrack_ecache.c +++ b/trunk/linux-3.4.x/net/netfilter/nf_conntrack_ecache.c @@ -16,6 +16,9 @@ #include #include #include +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +#include +#endif #include #include #include @@ -29,6 +32,47 @@ static DEFINE_MUTEX(nf_ct_ecache_mutex); /* deliver cached events and clear cache entry - must be called with locally * disabled softirqs */ +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +void nf_ct_deliver_cached_events(struct nf_conn *ct) +{ + unsigned long events, missed; + struct nf_conntrack_ecache *e; + struct nf_ct_event item; + struct net *net = nf_ct_net(ct); + + e = nf_ct_ecache_find(ct); + if (e == NULL) + return; + + events = xchg(&e->cache, 0); + + if (!nf_ct_is_confirmed(ct) || nf_ct_is_dying(ct) || !events) + return; + + /* We make a copy of the missed event cache without taking + * the lock, thus we may send missed events twice. However, + * this does not harm and it happens very rarely. */ + missed = e->missed; + + if (!((events | missed) & e->ctmask)) + return; + + item.ct = ct; + item.pid = 0; + item.report = 0; + + atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, + events | missed, + &item); + + if (likely(!missed)) + return; + + spin_lock_bh(&ct->lock); + e->missed &= ~missed; + spin_unlock_bh(&ct->lock); +} +#else void nf_ct_deliver_cached_events(struct nf_conn *ct) { struct net *net = nf_ct_net(ct); @@ -79,8 +123,15 @@ void nf_ct_deliver_cached_events(struct nf_conn *ct) out_unlock: rcu_read_unlock(); } +#endif EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events); +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb) +{ + return atomic_notifier_chain_register(&net->ct.nf_conntrack_chain, nb); +} +#else int nf_conntrack_register_notifier(struct net *net, struct nf_ct_event_notifier *new) { @@ -102,8 +153,15 @@ int nf_conntrack_register_notifier(struct net *net, mutex_unlock(&nf_ct_ecache_mutex); return ret; } +#endif EXPORT_SYMBOL_GPL(nf_conntrack_register_notifier); +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb) +{ + return atomic_notifier_chain_unregister(&net->ct.nf_conntrack_chain, nb); +} +#else void nf_conntrack_unregister_notifier(struct net *net, struct nf_ct_event_notifier *new) { @@ -116,6 +174,7 @@ void nf_conntrack_unregister_notifier(struct net *net, RCU_INIT_POINTER(net->ct.nf_conntrack_event_cb, NULL); mutex_unlock(&nf_ct_ecache_mutex); } +#endif EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier); int nf_ct_expect_register_notifier(struct net *net, diff --git a/trunk/linux-3.4.x/net/netfilter/nf_conntrack_netlink.c b/trunk/linux-3.4.x/net/netfilter/nf_conntrack_netlink.c index daced495c7a..6ac2017f3b7 100644 --- a/trunk/linux-3.4.x/net/netfilter/nf_conntrack_netlink.c +++ b/trunk/linux-3.4.x/net/netfilter/nf_conntrack_netlink.c @@ -28,6 +28,11 @@ #include #include #include + +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +#include +#endif + #include #include @@ -559,13 +564,22 @@ ctnetlink_nlmsg_size(const struct nf_conn *ct) ; } +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +static int +ctnetlink_conntrack_event(struct notifier_block *this, + unsigned long events, void *ptr) +#else static int ctnetlink_conntrack_event(unsigned int events, struct nf_ct_event *item) +#endif { struct net *net; struct nlmsghdr *nlh; struct nfgenmsg *nfmsg; struct nlattr *nest_parms; +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + struct nf_ct_event *item = ptr; +#endif struct nf_conn *ct = item->ct; struct sk_buff *skb; unsigned int type; @@ -2290,14 +2304,19 @@ ctnetlink_new_expect(struct sock *ctnl, struct sk_buff *skb, } #ifdef CONFIG_NF_CONNTRACK_EVENTS +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS +static struct notifier_block ctnl_notifier = { + .notifier_call = ctnetlink_conntrack_event, +#else /*CONFIG_NF_CONNTRACK_CHAIN_EVENTS*/ static struct nf_ct_event_notifier ctnl_notifier = { .fcn = ctnetlink_conntrack_event, +#endif /*CONFIG_NF_CONNTRACK_CHAIN_EVENTS*/ }; static struct nf_exp_event_notifier ctnl_notifier_exp = { .fcn = ctnetlink_expect_event, }; -#endif +#endif /*CONFIG_NF_CONNTRACK_EVENTS*/ static const struct nfnl_callback ctnl_cb[IPCTNL_MSG_MAX] = { [IPCTNL_MSG_CT_NEW] = { .call = ctnetlink_new_conntrack, From 1c75f17f07d77a46f6e155f87387c75d284e3f1d Mon Sep 17 00:00:00 2001 From: Yh793 Date: Wed, 25 Nov 2020 23:20:45 +0800 Subject: [PATCH 2/7] kernel:config add CONFIG_ NF_CONNTRACK_CHAIN_EVENTS New symbols c7116ad net: conntrack events, support multiple registrant Register multiple callbacks to ct events (NF_CONNTRACK_CHAIN_EVENTS) --- trunk/configs/boards/360P2/kernel-3.4.x.config | 1 + trunk/configs/boards/5K-W20/kernel-3.4.x.config | 1 + trunk/configs/boards/A3004NS/kernel-3.4.x.config | 1 + trunk/configs/boards/B70/kernel-3.4.x.config | 1 + trunk/configs/boards/DIR-878/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/DIR-878/kernel-3.4.x.config | 1 + trunk/configs/boards/DIR-882/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/DIR-882/kernel-3.4.x.config | 1 + trunk/configs/boards/E8820V2/kernel-3.4.x.config | 1 + trunk/configs/boards/HC5661A/kernel-3.4.x.config | 1 + trunk/configs/boards/HC5761A/kernel-3.4.x.config | 1 + trunk/configs/boards/HC5861B/kernel-3.4.x.config | 1 + trunk/configs/boards/JCG-836PRO/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/JCG-836PRO/kernel-3.4.x.config | 1 + trunk/configs/boards/JCG-AC860M/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/JCG-AC860M/kernel-3.4.x.config | 1 + trunk/configs/boards/JCG-Y2/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/JCG-Y2/kernel-3.4.x.config | 1 + trunk/configs/boards/K2P-USB/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/K2P-USB/kernel-3.4.x.config | 1 + trunk/configs/boards/K2P/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/K2P/kernel-3.4.x.config | 1 + trunk/configs/boards/MI-3/kernel-3.4.x.config | 1 + trunk/configs/boards/MI-MINI/kernel-3.4.x.config | 1 + trunk/configs/boards/MI-NANO/kernel-3.4.x.config | 1 + trunk/configs/boards/MI-R3G/kernel-3.4.x.config | 1 + trunk/configs/boards/MR2600/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/MR2600/kernel-3.4.x.config | 1 + trunk/configs/boards/MSG1500/kernel-3.4.x.config | 1 + trunk/configs/boards/MZ-R13/kernel-3.4.x.config | 1 + trunk/configs/boards/MZ-R13P/kernel-3.4.x.config | 1 + trunk/configs/boards/NEWIFI-MINI/kernel-3.4.x.config | 1 + trunk/configs/boards/NEWIFI3/kernel-3.4.x.config | 1 + trunk/configs/boards/OYE-001/kernel-3.4.x.config | 1 + trunk/configs/boards/PSG1208/kernel-3.4.x.config | 1 + trunk/configs/boards/PSG1218/kernel-3.4.x.config | 1 + trunk/configs/boards/R2100/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/RM2100/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/RT-AC1200GU/kernel-3.4.x.config | 1 + trunk/configs/boards/WDR7300/kernel-3.4.x-5.0.config | 1 + trunk/configs/boards/WR1200JS/kernel-3.4.x.config | 1 + trunk/configs/boards/XY-C1/kernel-3.4.x.config | 1 + 42 files changed, 42 insertions(+) diff --git a/trunk/configs/boards/360P2/kernel-3.4.x.config b/trunk/configs/boards/360P2/kernel-3.4.x.config index cbe79d1c877..5030e9edf93 100644 --- a/trunk/configs/boards/360P2/kernel-3.4.x.config +++ b/trunk/configs/boards/360P2/kernel-3.4.x.config @@ -462,6 +462,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/5K-W20/kernel-3.4.x.config b/trunk/configs/boards/5K-W20/kernel-3.4.x.config index 50d9945d7d4..59540ce4e7c 100644 --- a/trunk/configs/boards/5K-W20/kernel-3.4.x.config +++ b/trunk/configs/boards/5K-W20/kernel-3.4.x.config @@ -450,6 +450,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/A3004NS/kernel-3.4.x.config b/trunk/configs/boards/A3004NS/kernel-3.4.x.config index ecb96d4529b..be29d18439e 100644 --- a/trunk/configs/boards/A3004NS/kernel-3.4.x.config +++ b/trunk/configs/boards/A3004NS/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/B70/kernel-3.4.x.config b/trunk/configs/boards/B70/kernel-3.4.x.config index 7d8cf9ff0a5..d59d2de3492 100644 --- a/trunk/configs/boards/B70/kernel-3.4.x.config +++ b/trunk/configs/boards/B70/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/DIR-878/kernel-3.4.x-5.0.config b/trunk/configs/boards/DIR-878/kernel-3.4.x-5.0.config index 95d5c0e02e7..2e2056a6071 100644 --- a/trunk/configs/boards/DIR-878/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/DIR-878/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/DIR-878/kernel-3.4.x.config b/trunk/configs/boards/DIR-878/kernel-3.4.x.config index b0c4021b04b..d9c117cd5be 100644 --- a/trunk/configs/boards/DIR-878/kernel-3.4.x.config +++ b/trunk/configs/boards/DIR-878/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/DIR-882/kernel-3.4.x-5.0.config b/trunk/configs/boards/DIR-882/kernel-3.4.x-5.0.config index 99020cde3c6..150550ee541 100644 --- a/trunk/configs/boards/DIR-882/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/DIR-882/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/DIR-882/kernel-3.4.x.config b/trunk/configs/boards/DIR-882/kernel-3.4.x.config index afd1f3207ee..288ccf02376 100644 --- a/trunk/configs/boards/DIR-882/kernel-3.4.x.config +++ b/trunk/configs/boards/DIR-882/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/E8820V2/kernel-3.4.x.config b/trunk/configs/boards/E8820V2/kernel-3.4.x.config index 2f58ebf0d3a..b863dbf6892 100644 --- a/trunk/configs/boards/E8820V2/kernel-3.4.x.config +++ b/trunk/configs/boards/E8820V2/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/HC5661A/kernel-3.4.x.config b/trunk/configs/boards/HC5661A/kernel-3.4.x.config index 352253afd05..c62d545dadf 100644 --- a/trunk/configs/boards/HC5661A/kernel-3.4.x.config +++ b/trunk/configs/boards/HC5661A/kernel-3.4.x.config @@ -449,6 +449,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/HC5761A/kernel-3.4.x.config b/trunk/configs/boards/HC5761A/kernel-3.4.x.config index a7ac9ddd9b6..ca5a89b8b9a 100644 --- a/trunk/configs/boards/HC5761A/kernel-3.4.x.config +++ b/trunk/configs/boards/HC5761A/kernel-3.4.x.config @@ -462,6 +462,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/HC5861B/kernel-3.4.x.config b/trunk/configs/boards/HC5861B/kernel-3.4.x.config index f1fd9d664c5..87d3f4fa5dc 100644 --- a/trunk/configs/boards/HC5861B/kernel-3.4.x.config +++ b/trunk/configs/boards/HC5861B/kernel-3.4.x.config @@ -446,6 +446,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/JCG-836PRO/kernel-3.4.x-5.0.config b/trunk/configs/boards/JCG-836PRO/kernel-3.4.x-5.0.config index f206fc0b176..6fd9b839cc4 100644 --- a/trunk/configs/boards/JCG-836PRO/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/JCG-836PRO/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/JCG-836PRO/kernel-3.4.x.config b/trunk/configs/boards/JCG-836PRO/kernel-3.4.x.config index a5f1a65feb4..0ef6eb2f8b9 100644 --- a/trunk/configs/boards/JCG-836PRO/kernel-3.4.x.config +++ b/trunk/configs/boards/JCG-836PRO/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/JCG-AC860M/kernel-3.4.x-5.0.config b/trunk/configs/boards/JCG-AC860M/kernel-3.4.x-5.0.config index 200596df545..fc7c83355b9 100644 --- a/trunk/configs/boards/JCG-AC860M/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/JCG-AC860M/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/JCG-AC860M/kernel-3.4.x.config b/trunk/configs/boards/JCG-AC860M/kernel-3.4.x.config index d8c02440896..1e8e840ae00 100644 --- a/trunk/configs/boards/JCG-AC860M/kernel-3.4.x.config +++ b/trunk/configs/boards/JCG-AC860M/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/JCG-Y2/kernel-3.4.x-5.0.config b/trunk/configs/boards/JCG-Y2/kernel-3.4.x-5.0.config index f206fc0b176..6fd9b839cc4 100644 --- a/trunk/configs/boards/JCG-Y2/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/JCG-Y2/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/JCG-Y2/kernel-3.4.x.config b/trunk/configs/boards/JCG-Y2/kernel-3.4.x.config index a5f1a65feb4..0ef6eb2f8b9 100644 --- a/trunk/configs/boards/JCG-Y2/kernel-3.4.x.config +++ b/trunk/configs/boards/JCG-Y2/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/K2P-USB/kernel-3.4.x-5.0.config b/trunk/configs/boards/K2P-USB/kernel-3.4.x-5.0.config index 836f823cd60..8a4d4d44a2d 100644 --- a/trunk/configs/boards/K2P-USB/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/K2P-USB/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/K2P-USB/kernel-3.4.x.config b/trunk/configs/boards/K2P-USB/kernel-3.4.x.config index b1c2f4ba24d..5865a2f10d8 100644 --- a/trunk/configs/boards/K2P-USB/kernel-3.4.x.config +++ b/trunk/configs/boards/K2P-USB/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/K2P/kernel-3.4.x-5.0.config b/trunk/configs/boards/K2P/kernel-3.4.x-5.0.config index bb71c606252..7aa09972e46 100644 --- a/trunk/configs/boards/K2P/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/K2P/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/K2P/kernel-3.4.x.config b/trunk/configs/boards/K2P/kernel-3.4.x.config index 7fabf9ae470..174e1a2176e 100644 --- a/trunk/configs/boards/K2P/kernel-3.4.x.config +++ b/trunk/configs/boards/K2P/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MI-3/kernel-3.4.x.config b/trunk/configs/boards/MI-3/kernel-3.4.x.config index 0735b68f070..6a13b3049ff 100644 --- a/trunk/configs/boards/MI-3/kernel-3.4.x.config +++ b/trunk/configs/boards/MI-3/kernel-3.4.x.config @@ -463,6 +463,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MI-MINI/kernel-3.4.x.config b/trunk/configs/boards/MI-MINI/kernel-3.4.x.config index 2a129b6f6d1..9d8bff9be81 100644 --- a/trunk/configs/boards/MI-MINI/kernel-3.4.x.config +++ b/trunk/configs/boards/MI-MINI/kernel-3.4.x.config @@ -463,6 +463,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MI-NANO/kernel-3.4.x.config b/trunk/configs/boards/MI-NANO/kernel-3.4.x.config index 49416b472fe..73f84c712ac 100644 --- a/trunk/configs/boards/MI-NANO/kernel-3.4.x.config +++ b/trunk/configs/boards/MI-NANO/kernel-3.4.x.config @@ -432,6 +432,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MI-R3G/kernel-3.4.x.config b/trunk/configs/boards/MI-R3G/kernel-3.4.x.config index 5c7551f3ea7..b7688e2cd7f 100644 --- a/trunk/configs/boards/MI-R3G/kernel-3.4.x.config +++ b/trunk/configs/boards/MI-R3G/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MR2600/kernel-3.4.x-5.0.config b/trunk/configs/boards/MR2600/kernel-3.4.x-5.0.config index 99020cde3c6..150550ee541 100644 --- a/trunk/configs/boards/MR2600/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/MR2600/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MR2600/kernel-3.4.x.config b/trunk/configs/boards/MR2600/kernel-3.4.x.config index afd1f3207ee..288ccf02376 100644 --- a/trunk/configs/boards/MR2600/kernel-3.4.x.config +++ b/trunk/configs/boards/MR2600/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MSG1500/kernel-3.4.x.config b/trunk/configs/boards/MSG1500/kernel-3.4.x.config index 2f58ebf0d3a..b863dbf6892 100644 --- a/trunk/configs/boards/MSG1500/kernel-3.4.x.config +++ b/trunk/configs/boards/MSG1500/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MZ-R13/kernel-3.4.x.config b/trunk/configs/boards/MZ-R13/kernel-3.4.x.config index d2111cbf4b4..ecb7551bea4 100644 --- a/trunk/configs/boards/MZ-R13/kernel-3.4.x.config +++ b/trunk/configs/boards/MZ-R13/kernel-3.4.x.config @@ -432,6 +432,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/MZ-R13P/kernel-3.4.x.config b/trunk/configs/boards/MZ-R13P/kernel-3.4.x.config index 4ae2be39245..53f25254367 100644 --- a/trunk/configs/boards/MZ-R13P/kernel-3.4.x.config +++ b/trunk/configs/boards/MZ-R13P/kernel-3.4.x.config @@ -446,6 +446,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/NEWIFI-MINI/kernel-3.4.x.config b/trunk/configs/boards/NEWIFI-MINI/kernel-3.4.x.config index 5c479d4efb0..f92e9859927 100755 --- a/trunk/configs/boards/NEWIFI-MINI/kernel-3.4.x.config +++ b/trunk/configs/boards/NEWIFI-MINI/kernel-3.4.x.config @@ -463,6 +463,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/NEWIFI3/kernel-3.4.x.config b/trunk/configs/boards/NEWIFI3/kernel-3.4.x.config index 77bee5f2602..a6aa08b9017 100644 --- a/trunk/configs/boards/NEWIFI3/kernel-3.4.x.config +++ b/trunk/configs/boards/NEWIFI3/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/OYE-001/kernel-3.4.x.config b/trunk/configs/boards/OYE-001/kernel-3.4.x.config index 17d4fe46aaa..3a54656faf5 100644 --- a/trunk/configs/boards/OYE-001/kernel-3.4.x.config +++ b/trunk/configs/boards/OYE-001/kernel-3.4.x.config @@ -450,6 +450,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/PSG1208/kernel-3.4.x.config b/trunk/configs/boards/PSG1208/kernel-3.4.x.config index 7a841dabeaa..c5794773ee4 100644 --- a/trunk/configs/boards/PSG1208/kernel-3.4.x.config +++ b/trunk/configs/boards/PSG1208/kernel-3.4.x.config @@ -447,6 +447,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/PSG1218/kernel-3.4.x.config b/trunk/configs/boards/PSG1218/kernel-3.4.x.config index 3bfc72d3c26..675e9f87970 100644 --- a/trunk/configs/boards/PSG1218/kernel-3.4.x.config +++ b/trunk/configs/boards/PSG1218/kernel-3.4.x.config @@ -447,6 +447,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/R2100/kernel-3.4.x-5.0.config b/trunk/configs/boards/R2100/kernel-3.4.x-5.0.config index 4b02c251a48..0f780bc137c 100644 --- a/trunk/configs/boards/R2100/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/R2100/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/RM2100/kernel-3.4.x-5.0.config b/trunk/configs/boards/RM2100/kernel-3.4.x-5.0.config index 52ec32583c1..bb0856fd3d0 100644 --- a/trunk/configs/boards/RM2100/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/RM2100/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/RT-AC1200GU/kernel-3.4.x.config b/trunk/configs/boards/RT-AC1200GU/kernel-3.4.x.config index 7a20a19b522..3df74196d7f 100644 --- a/trunk/configs/boards/RT-AC1200GU/kernel-3.4.x.config +++ b/trunk/configs/boards/RT-AC1200GU/kernel-3.4.x.config @@ -495,6 +495,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/WDR7300/kernel-3.4.x-5.0.config b/trunk/configs/boards/WDR7300/kernel-3.4.x-5.0.config index ecd41766426..1ed5257902f 100644 --- a/trunk/configs/boards/WDR7300/kernel-3.4.x-5.0.config +++ b/trunk/configs/boards/WDR7300/kernel-3.4.x-5.0.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/WR1200JS/kernel-3.4.x.config b/trunk/configs/boards/WR1200JS/kernel-3.4.x.config index 2fd9dabfd3a..76b72e30ed8 100644 --- a/trunk/configs/boards/WR1200JS/kernel-3.4.x.config +++ b/trunk/configs/boards/WR1200JS/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set diff --git a/trunk/configs/boards/XY-C1/kernel-3.4.x.config b/trunk/configs/boards/XY-C1/kernel-3.4.x.config index 7316f7dc27c..4b7cdceac00 100644 --- a/trunk/configs/boards/XY-C1/kernel-3.4.x.config +++ b/trunk/configs/boards/XY-C1/kernel-3.4.x.config @@ -493,6 +493,7 @@ CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set From 6a531861648cd3bc530044facb490b0c90148896 Mon Sep 17 00:00:00 2001 From: Yh793 Date: Sat, 28 Nov 2020 08:16:34 +0800 Subject: [PATCH 3/7] shortcut-fe(SFE):enable CONFIG_NF_CONNTRACK_CHAIN_EVENTS at compile SFE --- trunk/build_firmware_modify | 1 + 1 file changed, 1 insertion(+) diff --git a/trunk/build_firmware_modify b/trunk/build_firmware_modify index a84f3a88a3a..f680fac0c9b 100755 --- a/trunk/build_firmware_modify +++ b/trunk/build_firmware_modify @@ -296,6 +296,7 @@ fi if [ "$CONFIG_FIRMWARE_INCLUDE_SFE" = "y" ] ; then func_enable_kernel_param "CONFIG_SHORTCUT_FE" func_enable_kernel_param "CONFIG_NF_CONNTRACK_EVENTS" + func_enable_kernel_param "CONFIG_NF_CONNTRACK_CHAIN_EVENTS" else func_disable_kernel_param "CONFIG_SHORTCUT_FE" fi From 1c5262ba57dc9970a9a02e65fa2614c083eae75d Mon Sep 17 00:00:00 2001 From: Yh793 Date: Tue, 1 Dec 2020 22:08:27 +0800 Subject: [PATCH 4/7] shortcut-fe(SFE):fix --- trunk/linux-3.4.x/net/core/dev.c | 39 ++++++++++++------- .../shortcut-fe/shortcut-fe/fast-classifier.c | 6 +-- trunk/user/shortcut-fe/shortcut-fe/sfe_cm.h | 2 +- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/trunk/linux-3.4.x/net/core/dev.c b/trunk/linux-3.4.x/net/core/dev.c index 5850fe7d2aa..714e9e12bd8 100644 --- a/trunk/linux-3.4.x/net/core/dev.c +++ b/trunk/linux-3.4.x/net/core/dev.c @@ -2235,23 +2235,31 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, */ if (dev->priv_flags & IFF_XMIT_DST_RELEASE) skb_dst_drop(skb); - +#ifndef CONFIG_SHORTCUT_FE #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) if (!list_empty(&ptype_all) && !(skb->imq_flags & IMQ_F_ENQUEUE)) #else -#ifdef CONFIG_SHORTCUT_FE - /* If this skb has been fast forwarded then we don't want it to - * go to any taps (by definition we're trying to bypass them). - */ - if (!skb->fast_forwarded) { -#endif if (!list_empty(&ptype_all)) #endif dev_queue_xmit_nit(skb, dev); +#endif + #ifdef CONFIG_SHORTCUT_FE - } + /* If this skb has been fast forwarded then we don't want it to + * go to any taps (by definition we're trying to bypass them). + */ + if (!skb->fast_forwarded) { +#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) + if (!list_empty(&ptype_all) && + !(skb->imq_flags & IMQ_F_ENQUEUE)) +#else + if (!list_empty(&ptype_all)) +#endif + dev_queue_xmit_nit(skb, dev); +} #endif + features = netif_skb_features(skb); if (vlan_tx_tag_present(skb) && @@ -3443,8 +3451,8 @@ void netdev_rx_handler_unregister(struct net_device *dev) EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister); #ifdef CONFIG_SHORTCUT_FE -int (*fast_nat_recv)(struct sk_buff *skb) __rcu __read_mostly; -EXPORT_SYMBOL_GPL(fast_nat_recv); +int (*athrs_fast_nat_recv)(struct sk_buff *skb) __rcu __read_mostly; +EXPORT_SYMBOL_GPL(athrs_fast_nat_recv); #endif static int __netif_receive_skb(struct sk_buff *skb) @@ -3497,10 +3505,13 @@ static int __netif_receive_skb(struct sk_buff *skb) #endif #ifdef CONFIG_SHORTCUT_FE - fast_recv = rcu_dereference(fast_nat_recv); - if (fast_recv && fast_recv(skb)) { - ret = NET_RX_SUCCESS; - goto out; + fast_recv = rcu_dereference(athrs_fast_nat_recv); + if (fast_recv) { + if (fast_recv(skb)) { + ret = NET_RX_SUCCESS; + rcu_read_unlock(); + return ret; + } } #endif diff --git a/trunk/user/shortcut-fe/shortcut-fe/fast-classifier.c b/trunk/user/shortcut-fe/shortcut-fe/fast-classifier.c index 400506eed7b..30c6ff5268b 100644 --- a/trunk/user/shortcut-fe/shortcut-fe/fast-classifier.c +++ b/trunk/user/shortcut-fe/shortcut-fe/fast-classifier.c @@ -1787,8 +1787,8 @@ static int __init fast_classifier_init(void) /* * Hook the receive path in the network stack. */ - BUG_ON(fast_nat_recv); - RCU_INIT_POINTER(fast_nat_recv, fast_classifier_recv); + BUG_ON(athrs_fast_nat_recv); + RCU_INIT_POINTER(athrs_fast_nat_recv, fast_classifier_recv); /* * Hook the shortcut sync callback. @@ -1846,7 +1846,7 @@ static void __exit fast_classifier_exit(void) /* * Unregister our receive callback. */ - RCU_INIT_POINTER(fast_nat_recv, NULL); + RCU_INIT_POINTER(athrs_fast_nat_recv, NULL); /* * Wait for all callbacks to complete. diff --git a/trunk/user/shortcut-fe/shortcut-fe/sfe_cm.h b/trunk/user/shortcut-fe/shortcut-fe/sfe_cm.h index 4f768002ba6..23cbde859ba 100644 --- a/trunk/user/shortcut-fe/shortcut-fe/sfe_cm.h +++ b/trunk/user/shortcut-fe/shortcut-fe/sfe_cm.h @@ -147,7 +147,7 @@ struct sfe_connection_mark { /* * Expose the hook for the receive processing. */ -extern int (*fast_nat_recv)(struct sk_buff *skb); +extern int (*athrs_fast_nat_recv)(struct sk_buff *skb); /* * Expose what should be a static flag in the TCP connection tracker. From cead894ac84532587296ff4bccf664dab718eaa2 Mon Sep 17 00:00:00 2001 From: Yh793 <69706356+Yh793@users.noreply.github.com> Date: Wed, 2 Dec 2020 01:56:30 +0800 Subject: [PATCH 5/7] shortcut-fe(SFE):fix --- trunk/linux-3.4.x/net/core/dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/trunk/linux-3.4.x/net/core/dev.c b/trunk/linux-3.4.x/net/core/dev.c index 714e9e12bd8..6224292c37f 100644 --- a/trunk/linux-3.4.x/net/core/dev.c +++ b/trunk/linux-3.4.x/net/core/dev.c @@ -3509,8 +3509,7 @@ static int __netif_receive_skb(struct sk_buff *skb) if (fast_recv) { if (fast_recv(skb)) { ret = NET_RX_SUCCESS; - rcu_read_unlock(); - return ret; + goto out; } } #endif From 1b26412de127b326747616cba1992c1909211fd3 Mon Sep 17 00:00:00 2001 From: Yh793 Date: Thu, 3 Dec 2020 23:02:23 +0800 Subject: [PATCH 6/7] kernel:net:revert something --- trunk/linux-3.4.x/net/core/dev.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/trunk/linux-3.4.x/net/core/dev.c b/trunk/linux-3.4.x/net/core/dev.c index 6224292c37f..6474c9074d4 100644 --- a/trunk/linux-3.4.x/net/core/dev.c +++ b/trunk/linux-3.4.x/net/core/dev.c @@ -2235,29 +2235,22 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, */ if (dev->priv_flags & IFF_XMIT_DST_RELEASE) skb_dst_drop(skb); -#ifndef CONFIG_SHORTCUT_FE -#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) - if (!list_empty(&ptype_all) && - !(skb->imq_flags & IMQ_F_ENQUEUE)) -#else - if (!list_empty(&ptype_all)) -#endif - dev_queue_xmit_nit(skb, dev); -#endif -#ifdef CONFIG_SHORTCUT_FE - /* If this skb has been fast forwarded then we don't want it to - * go to any taps (by definition we're trying to bypass them). - */ - if (!skb->fast_forwarded) { #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) if (!list_empty(&ptype_all) && !(skb->imq_flags & IMQ_F_ENQUEUE)) #else +#ifdef CONFIG_SHORTCUT_FE + /* If this skb has been fast forwarded then we don't want it to + * go to any taps (by definition we're trying to bypass them). + */ + if (!skb->fast_forwarded) { +#endif if (!list_empty(&ptype_all)) #endif dev_queue_xmit_nit(skb, dev); -} +#ifdef CONFIG_SHORTCUT_FE + } #endif features = netif_skb_features(skb); From 27722bc9aa3ff5b42d2603fdd1b5f8b6ccac8967 Mon Sep 17 00:00:00 2001 From: Yh793 Date: Fri, 4 Dec 2020 00:07:45 +0800 Subject: [PATCH 7/7] ecache:fix --- .../net/netfilter/nf_conntrack_ecache.h | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h b/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h index a697f90cb80..eb0fe31bf44 100644 --- a/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h +++ b/trunk/linux-3.4.x/include/net/netfilter/nf_conntrack_ecache.h @@ -96,6 +96,7 @@ nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct) set_bit(event, &e->cache); } +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS static inline int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, @@ -103,26 +104,49 @@ nf_conntrack_eventmask_report(unsigned int eventmask, int report) { struct nf_conntrack_ecache *e; -#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + struct net *net = nf_ct_net(ct); + + e = nf_ct_ecache_find(ct); + if (e == NULL) + return 0; + + if (nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) { + struct nf_ct_event item = { + .ct = ct, + .pid = e->pid ? e->pid : pid, + .report = report + }; + /* This is a resent of a destroy event? If so, skip missed */ + unsigned long missed = e->pid ? 0 : e->missed; + + if (!((eventmask | missed) & e->ctmask)) + return 0; + + atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, eventmask | missed, &item); + } + + return 0; +} +#else +static inline int +nf_conntrack_eventmask_report(unsigned int eventmask, + struct nf_conn *ct, + u32 pid, + int report) +{ int ret = 0; struct net *net = nf_ct_net(ct); struct nf_ct_event_notifier *notify; + struct nf_conntrack_ecache *e; rcu_read_lock(); notify = rcu_dereference(net->ct.nf_conntrack_event_cb); if (notify == NULL) goto out_unlock; -#else - struct net *net = nf_ct_net(ct); -#endif e = nf_ct_ecache_find(ct); if (e == NULL) -#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS goto out_unlock; -#else - return 0; -#endif if (nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) { struct nf_ct_event item = { @@ -134,7 +158,6 @@ nf_conntrack_eventmask_report(unsigned int eventmask, unsigned long missed = e->pid ? 0 : e->missed; if (!((eventmask | missed) & e->ctmask)) -#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS goto out_unlock; ret = notify->fcn(eventmask | missed, &item); @@ -157,13 +180,8 @@ nf_conntrack_eventmask_report(unsigned int eventmask, out_unlock: rcu_read_unlock(); return ret; -#else - return 0; - atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, eventmask | missed, &item); - } - return 0; -#endif } +#endif static inline int nf_conntrack_event_report(enum ip_conntrack_events event, struct nf_conn *ct,