mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Update NDPI patch
This commit is contained in:
parent
9ccde1ef2d
commit
eb899ee09f
2 changed files with 32 additions and 32 deletions
|
@ -5,9 +5,9 @@ diff -urpN linux-6.1.38.old/include/net/netfilter/nf_conntrack.h linux-6.1.38/in
|
||||||
return net_generic(net, nf_conntrack_net_id);
|
return net_generic(net, nf_conntrack_net_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+void register_ndpi_hook(void (*hook)(struct nf_conn *));
|
+void register_nf_ct_destroy_hook(void (*hook)(struct nf_conn *));
|
||||||
+void unregister_ndpi_hook(void);
|
+void unregister_nf_ct_destroy_hook(void);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
#define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count)
|
#define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count)
|
||||||
|
@ -20,7 +20,7 @@ diff -urpN linux-6.1.38.old/net/netfilter/Kconfig linux-6.1.38/net/netfilter/Kco
|
||||||
If this option is enabled, the kernel will include support
|
If this option is enabled, the kernel will include support
|
||||||
for passive OS fingerprint via NFNETLINK.
|
for passive OS fingerprint via NFNETLINK.
|
||||||
|
|
||||||
+config NDPI_HOOK
|
+config NF_CONNTRACK_DESTROY_HOOK
|
||||||
+ bool
|
+ bool
|
||||||
+
|
+
|
||||||
config NF_CONNTRACK
|
config NF_CONNTRACK
|
||||||
|
@ -28,7 +28,7 @@ diff -urpN linux-6.1.38.old/net/netfilter/Kconfig linux-6.1.38/net/netfilter/Kco
|
||||||
default m if NETFILTER_ADVANCED=n
|
default m if NETFILTER_ADVANCED=n
|
||||||
select NF_DEFRAG_IPV4
|
select NF_DEFRAG_IPV4
|
||||||
select NF_DEFRAG_IPV6 if IPV6 != n
|
select NF_DEFRAG_IPV6 if IPV6 != n
|
||||||
+ select NDPI_HOOK
|
+ select NF_CONNTRACK_DESTROY_HOOK
|
||||||
help
|
help
|
||||||
Connection tracking keeps a record of what packets have passed
|
Connection tracking keeps a record of what packets have passed
|
||||||
through your machine, in order to figure out how they are related
|
through your machine, in order to figure out how they are related
|
||||||
|
@ -39,28 +39,28 @@ diff -urpN linux-6.1.38.old/net/netfilter/nf_conntrack_core.c linux-6.1.38/net/n
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+
|
+
|
||||||
+static void (*ndpi_hook)(struct nf_conn *) __rcu __read_mostly = NULL;
|
+static void (*nf_ct_destroy_hook)(struct nf_conn *) __rcu __read_mostly = NULL;
|
||||||
+
|
+
|
||||||
+void register_ndpi_hook(void (*hook)(struct nf_conn *))
|
+void register_nf_ct_destroy_hook(void (*hook)(struct nf_conn *))
|
||||||
+{
|
+{
|
||||||
+ rcu_assign_pointer(ndpi_hook, hook);
|
+ rcu_assign_pointer(nf_ct_destroy_hook, hook);
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(register_ndpi_hook);
|
+EXPORT_SYMBOL(register_nf_ct_destroy_hook);
|
||||||
+
|
+
|
||||||
+void unregister_ndpi_hook(void)
|
+void unregister_nf_ct_destroy_hook(void)
|
||||||
+{
|
+{
|
||||||
+ rcu_assign_pointer(ndpi_hook, NULL);
|
+ rcu_assign_pointer(nf_ct_destroy_hook, NULL);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+EXPORT_SYMBOL(unregister_ndpi_hook);
|
+EXPORT_SYMBOL(unregister_nf_ct_destroy_hook);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
void nf_ct_destroy(struct nf_conntrack *nfct)
|
void nf_ct_destroy(struct nf_conntrack *nfct)
|
||||||
{
|
{
|
||||||
struct nf_conn *ct = (struct nf_conn *)nfct;
|
struct nf_conn *ct = (struct nf_conn *)nfct;
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+ void (*hook)(struct nf_conn *);
|
+ void (*hook)(struct nf_conn *);
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ diff -urpN linux-6.1.38.old/net/netfilter/nf_conntrack_core.c linux-6.1.38/net/n
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+ hook = rcu_dereference(ndpi_hook);
|
+ hook = rcu_dereference(nf_ct_destroy_hook);
|
||||||
+ if (hook)
|
+ if (hook)
|
||||||
+ hook(ct);
|
+ hook(ct);
|
||||||
+#endif
|
+#endif
|
||||||
|
|
|
@ -5,9 +5,9 @@ diff -urpN linux-6.1.38.old/include/net/netfilter/nf_conntrack.h linux-6.1.38/in
|
||||||
return net_generic(net, nf_conntrack_net_id);
|
return net_generic(net, nf_conntrack_net_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+void register_ndpi_hook(void (*hook)(struct nf_conn *));
|
+void register_nf_ct_destroy_hook(void (*hook)(struct nf_conn *));
|
||||||
+void unregister_ndpi_hook(void);
|
+void unregister_nf_ct_destroy_hook(void);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
#define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count)
|
#define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count)
|
||||||
|
@ -20,7 +20,7 @@ diff -urpN linux-6.1.38.old/net/netfilter/Kconfig linux-6.1.38/net/netfilter/Kco
|
||||||
If this option is enabled, the kernel will include support
|
If this option is enabled, the kernel will include support
|
||||||
for passive OS fingerprint via NFNETLINK.
|
for passive OS fingerprint via NFNETLINK.
|
||||||
|
|
||||||
+config NDPI_HOOK
|
+config NF_CONNTRACK_DESTROY_HOOK
|
||||||
+ bool
|
+ bool
|
||||||
+
|
+
|
||||||
config NF_CONNTRACK
|
config NF_CONNTRACK
|
||||||
|
@ -28,7 +28,7 @@ diff -urpN linux-6.1.38.old/net/netfilter/Kconfig linux-6.1.38/net/netfilter/Kco
|
||||||
default m if NETFILTER_ADVANCED=n
|
default m if NETFILTER_ADVANCED=n
|
||||||
select NF_DEFRAG_IPV4
|
select NF_DEFRAG_IPV4
|
||||||
select NF_DEFRAG_IPV6 if IPV6 != n
|
select NF_DEFRAG_IPV6 if IPV6 != n
|
||||||
+ select NDPI_HOOK
|
+ select NF_CONNTRACK_DESTROY_HOOK
|
||||||
help
|
help
|
||||||
Connection tracking keeps a record of what packets have passed
|
Connection tracking keeps a record of what packets have passed
|
||||||
through your machine, in order to figure out how they are related
|
through your machine, in order to figure out how they are related
|
||||||
|
@ -39,28 +39,28 @@ diff -urpN linux-6.1.38.old/net/netfilter/nf_conntrack_core.c linux-6.1.38/net/n
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+
|
+
|
||||||
+static void (*ndpi_hook)(struct nf_conn *) __rcu __read_mostly = NULL;
|
+static void (*nf_ct_destroy_hook)(struct nf_conn *) __rcu __read_mostly = NULL;
|
||||||
+
|
+
|
||||||
+void register_ndpi_hook(void (*hook)(struct nf_conn *))
|
+void register_nf_ct_destroy_hook(void (*hook)(struct nf_conn *))
|
||||||
+{
|
+{
|
||||||
+ rcu_assign_pointer(ndpi_hook, hook);
|
+ rcu_assign_pointer(nf_ct_destroy_hook, hook);
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(register_ndpi_hook);
|
+EXPORT_SYMBOL(register_nf_ct_destroy_hook);
|
||||||
+
|
+
|
||||||
+void unregister_ndpi_hook(void)
|
+void unregister_nf_ct_destroy_hook(void)
|
||||||
+{
|
+{
|
||||||
+ rcu_assign_pointer(ndpi_hook, NULL);
|
+ rcu_assign_pointer(nf_ct_destroy_hook, NULL);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+EXPORT_SYMBOL(unregister_ndpi_hook);
|
+EXPORT_SYMBOL(unregister_nf_ct_destroy_hook);
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
void nf_ct_destroy(struct nf_conntrack *nfct)
|
void nf_ct_destroy(struct nf_conntrack *nfct)
|
||||||
{
|
{
|
||||||
struct nf_conn *ct = (struct nf_conn *)nfct;
|
struct nf_conn *ct = (struct nf_conn *)nfct;
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+ void (*hook)(struct nf_conn *);
|
+ void (*hook)(struct nf_conn *);
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ diff -urpN linux-6.1.38.old/net/netfilter/nf_conntrack_core.c linux-6.1.38/net/n
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
+#ifdef CONFIG_NDPI_HOOK
|
+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK
|
||||||
+ hook = rcu_dereference(ndpi_hook);
|
+ hook = rcu_dereference(nf_ct_destroy_hook);
|
||||||
+ if (hook)
|
+ if (hook)
|
||||||
+ hook(ct);
|
+ hook(ct);
|
||||||
+#endif
|
+#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue