qca-nss-ecm: update to 12.4.r1

Signed-off-by: bitthief <bitthief@protonmail.ch>
This commit is contained in:
bitthief 2023-06-14 20:42:04 +03:00
parent 08daa5dfaa
commit b4275fd896
14 changed files with 150 additions and 300 deletions

View File

@ -1,14 +1,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=qca-nss-ecm PKG_NAME:=qca-nss-ecm
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE=1
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-nss-ecm.git PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-nss-ecm.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2023-01-20 PKG_SOURCE_DATE:=2023-04-26
PKG_SOURCE_VERSION:=db66c472e07990600bec9f01fb79e103540b0ca3 PKG_SOURCE_VERSION:=f9b52bfceedca844c61e2e3df2078be8ee736853
PKG_MIRROR_HASH:=613fa9f8ff20984db5296763c35dea8a9ac0a5f507a0c125ea2814a6d4047a3a PKG_MIRROR_HASH:=16d6d10b9544be68758736dee1c0e5c616fb1cf406646fbdf3e7a8db3844e7b3
PKG_RELEASE=1
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
PKG_FLAGS:=nonshared PKG_FLAGS:=nonshared

View File

@ -12,11 +12,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
frontends/ecm_front_end_common.c | 7 ++++ frontends/ecm_front_end_common.c | 7 ++++
5 files changed, 72 insertions(+), 12 deletions(-) 5 files changed, 72 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
index a59cbce..f7e40f8 100644
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -125,9 +125,17 @@ ccflags-$(ECM_INTERFACE_BOND_ENABLE) += -DECM_INTERFACE_BOND_ENABLE @@ -130,10 +130,18 @@ ccflags-$(ECM_INTERFACE_BOND_ENABLE) +=
# Define ECM_INTERFACE_PPPOE_ENABLE=y in order # Define ECM_INTERFACE_PPPOE_ENABLE=y in order
# to enable support for PPPoE acceleration. # to enable support for PPPoE acceleration.
# ############################################################################# # #############################################################################
@ -26,29 +24,30 @@ index a59cbce..f7e40f8 100644
+endif +endif
ccflags-$(ECM_INTERFACE_PPPOE_ENABLE) += -DECM_INTERFACE_PPPOE_ENABLE ccflags-$(ECM_INTERFACE_PPPOE_ENABLE) += -DECM_INTERFACE_PPPOE_ENABLE
+# ############################################################################# # #############################################################################
+# Define ECM_INTERFACE_L2TPV2_PPTP_ENABLE=y in order +# Define ECM_INTERFACE_L2TPV2_PPTP_ENABLE=y in order
+# to enable support for l2tpv2 or PPTP detection. +# to enable support for l2tpv2 or PPTP detection.
+# ############################################################################# +# #############################################################################
+ccflags-$(ECM_INTERFACE_L2TPV2_PPTP_ENABLE) += -DECM_INTERFACE_L2TPV2_PPTP_ENABLE +ccflags-$(ECM_INTERFACE_L2TPV2_PPTP_ENABLE) += -DECM_INTERFACE_L2TPV2_PPTP_ENABLE
+ +
# ############################################################################# +# #############################################################################
# Define ECM_INTERFACE_L2TPV2_ENABLE=y in order # Define ECM_INTERFACE_L2TPV2_ENABLE=y in order
# to enable support for l2tpv2 acceleration. # to enable support for l2tpv2 acceleration.
@@ -154,6 +162,12 @@ endif # #############################################################################
endif @@ -160,6 +168,12 @@ endif
ccflags-$(ECM_INTERFACE_PPP_ENABLE) += -DECM_INTERFACE_PPP_ENABLE ccflags-$(ECM_INTERFACE_PPP_ENABLE) += -DECM_INTERFACE_PPP_ENABLE
+# ############################################################################# # #############################################################################
+# Define ECM_INTERFACE_GRE_ENABLE=y in order +# Define ECM_INTERFACE_GRE_ENABLE=y in order
+# to enable support for GRE detection. +# to enable support for GRE detection.
+# ############################################################################# +# #############################################################################
+ccflags-$(ECM_INTERFACE_GRE_ENABLE) += -DECM_INTERFACE_GRE_ENABLE +ccflags-$(ECM_INTERFACE_GRE_ENABLE) += -DECM_INTERFACE_GRE_ENABLE
+ +
# ############################################################################# +# #############################################################################
# Define ECM_INTERFACE_GRE_TAP_ENABLE=y in order # Define ECM_INTERFACE_GRE_TAP_ENABLE=y in order
# to enable support for GRE TAP interface. # to enable support for GRE TAP interface.
@@ -237,7 +251,9 @@ ccflags-$(ECM_INTERFACE_OVS_BRIDGE_ENABLE) += -DECM_INTERFACE_OVS_BRIDGE_ENABLE # #############################################################################
@@ -242,7 +256,9 @@ ccflags-$(ECM_INTERFACE_OVS_BRIDGE_ENABL
# ############################################################################# # #############################################################################
# Define ECM_INTERFACE_VLAN_ENABLE=y in order to enable support for VLAN # Define ECM_INTERFACE_VLAN_ENABLE=y in order to enable support for VLAN
# ############################################################################# # #############################################################################
@ -59,7 +58,7 @@ index a59cbce..f7e40f8 100644
ccflags-$(ECM_INTERFACE_VLAN_ENABLE) += -DECM_INTERFACE_VLAN_ENABLE ccflags-$(ECM_INTERFACE_VLAN_ENABLE) += -DECM_INTERFACE_VLAN_ENABLE
# ############################################################################# # #############################################################################
@@ -279,7 +295,9 @@ ccflags-$(ECM_CLASSIFIER_OVS_ENABLE) += -DECM_CLASSIFIER_OVS_ENABLE @@ -284,7 +300,9 @@ ccflags-$(ECM_CLASSIFIER_OVS_ENABLE) +=
# ############################################################################# # #############################################################################
# Define ECM_CLASSIFIER_MARK_ENABLE=y in order to enable mark classifier. # Define ECM_CLASSIFIER_MARK_ENABLE=y in order to enable mark classifier.
# ############################################################################# # #############################################################################
@ -70,7 +69,7 @@ index a59cbce..f7e40f8 100644
ecm-$(ECM_CLASSIFIER_MARK_ENABLE) += ecm_classifier_mark.o ecm-$(ECM_CLASSIFIER_MARK_ENABLE) += ecm_classifier_mark.o
ccflags-$(ECM_CLASSIFIER_MARK_ENABLE) += -DECM_CLASSIFIER_MARK_ENABLE ccflags-$(ECM_CLASSIFIER_MARK_ENABLE) += -DECM_CLASSIFIER_MARK_ENABLE
@@ -303,7 +321,9 @@ ccflags-$(ECM_CLASSIFIER_NL_ENABLE) += -DECM_CLASSIFIER_NL_ENABLE @@ -308,7 +326,9 @@ ccflags-$(ECM_CLASSIFIER_NL_ENABLE) += -
# ############################################################################# # #############################################################################
# Define ECM_CLASSIFIER_DSCP_ENABLE=y in order to enable DSCP classifier. # Define ECM_CLASSIFIER_DSCP_ENABLE=y in order to enable DSCP classifier.
# ############################################################################# # #############################################################################
@ -81,7 +80,7 @@ index a59cbce..f7e40f8 100644
ecm-$(ECM_CLASSIFIER_DSCP_ENABLE) += ecm_classifier_dscp.o ecm-$(ECM_CLASSIFIER_DSCP_ENABLE) += ecm_classifier_dscp.o
ccflags-$(ECM_CLASSIFIER_DSCP_ENABLE) += -DECM_CLASSIFIER_DSCP_ENABLE ccflags-$(ECM_CLASSIFIER_DSCP_ENABLE) += -DECM_CLASSIFIER_DSCP_ENABLE
ccflags-$(ECM_CLASSIFIER_DSCP_IGS) += -DECM_CLASSIFIER_DSCP_IGS ccflags-$(ECM_CLASSIFIER_DSCP_IGS) += -DECM_CLASSIFIER_DSCP_IGS
@@ -322,7 +342,9 @@ ccflags-$(ECM_CLASSIFIER_HYFI_ENABLE) += -DECM_CLASSIFIER_HYFI_ENABLE @@ -327,7 +347,9 @@ ccflags-$(ECM_CLASSIFIER_HYFI_ENABLE) +=
# the Parental Controls subsystem classifier in ECM. Currently disabled until # the Parental Controls subsystem classifier in ECM. Currently disabled until
# customers require it / if they need to integrate their Parental Controls with it. # customers require it / if they need to integrate their Parental Controls with it.
# ############################################################################# # #############################################################################
@ -92,7 +91,7 @@ index a59cbce..f7e40f8 100644
ecm-$(ECM_CLASSIFIER_PCC_ENABLE) += ecm_classifier_pcc.o ecm-$(ECM_CLASSIFIER_PCC_ENABLE) += ecm_classifier_pcc.o
ccflags-$(ECM_CLASSIFIER_PCC_ENABLE) += -DECM_CLASSIFIER_PCC_ENABLE ccflags-$(ECM_CLASSIFIER_PCC_ENABLE) += -DECM_CLASSIFIER_PCC_ENABLE
@@ -363,27 +385,36 @@ ccflags-$(ECM_NON_PORTED_SUPPORT_ENABLE) += -DECM_NON_PORTED_SUPPORT_ENABLE @@ -368,27 +390,36 @@ ccflags-$(ECM_NON_PORTED_SUPPORT_ENABLE)
# ############################################################################# # #############################################################################
# Define ECM_STATE_OUTPUT_ENABLE=y to support XML state output # Define ECM_STATE_OUTPUT_ENABLE=y to support XML state output
# ############################################################################# # #############################################################################
@ -132,7 +131,7 @@ index a59cbce..f7e40f8 100644
ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE) += -DECM_TRACKER_DPI_SUPPORT_ENABLE ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE) += -DECM_TRACKER_DPI_SUPPORT_ENABLE
# ############################################################################# # #############################################################################
@@ -391,14 +422,18 @@ ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE) += -DECM_TRACKER_DPI_SUPPORT_ENABLE @@ -396,14 +427,18 @@ ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE
# support for the database keeping lists of connections that are assigned # support for the database keeping lists of connections that are assigned
# on a per TYPE of classifier basis. # on a per TYPE of classifier basis.
# ############################################################################# # #############################################################################
@ -153,7 +152,7 @@ index a59cbce..f7e40f8 100644
ccflags-$(ECM_BAND_STEERING_ENABLE) += -DECM_BAND_STEERING_ENABLE ccflags-$(ECM_BAND_STEERING_ENABLE) += -DECM_BAND_STEERING_ENABLE
# ############################################################################# # #############################################################################
@@ -468,7 +503,6 @@ ccflags-y += -DECM_TRACKER_UDP_DEBUG_LEVEL=1 @@ -479,7 +514,6 @@ ccflags-y += -DECM_TRACKER_UDP_DEBUG_LEV
ccflags-y += -DECM_BOND_NOTIFIER_DEBUG_LEVEL=1 ccflags-y += -DECM_BOND_NOTIFIER_DEBUG_LEVEL=1
ccflags-y += -DECM_INTERFACE_DEBUG_LEVEL=1 ccflags-y += -DECM_INTERFACE_DEBUG_LEVEL=1
ccflags-y += -DECM_STATE_DEBUG_LEVEL=1 ccflags-y += -DECM_STATE_DEBUG_LEVEL=1
@ -161,11 +160,9 @@ index a59cbce..f7e40f8 100644
ccflags-y += -DECM_NOTIFIER_DEBUG_LEVEL=1 ccflags-y += -DECM_NOTIFIER_DEBUG_LEVEL=1
ccflags-y += -DECM_AE_CLASSIFIER_DEBUG_LEVEL=1 ccflags-y += -DECM_AE_CLASSIFIER_DEBUG_LEVEL=1
diff --git a/ecm_db/ecm_db_connection.c b/ecm_db/ecm_db_connection.c
index 6d0bff4..77e5f3f 100644
--- a/ecm_db/ecm_db_connection.c --- a/ecm_db/ecm_db_connection.c
+++ b/ecm_db/ecm_db_connection.c +++ b/ecm_db/ecm_db_connection.c
@@ -441,7 +441,9 @@ EXPORT_SYMBOL(ecm_db_connection_make_defunct); @@ -446,7 +446,9 @@ EXPORT_SYMBOL(ecm_db_connection_make_def
*/ */
void ecm_db_connection_data_totals_update(struct ecm_db_connection_instance *ci, bool is_from, uint64_t size, uint64_t packets) void ecm_db_connection_data_totals_update(struct ecm_db_connection_instance *ci, bool is_from, uint64_t size, uint64_t packets)
{ {
@ -175,7 +172,7 @@ index 6d0bff4..77e5f3f 100644
DEBUG_CHECK_MAGIC(ci, ECM_DB_CONNECTION_INSTANCE_MAGIC, "%px: magic failed\n", ci); DEBUG_CHECK_MAGIC(ci, ECM_DB_CONNECTION_INSTANCE_MAGIC, "%px: magic failed\n", ci);
@@ -540,7 +542,9 @@ EXPORT_SYMBOL(ecm_db_connection_data_totals_update); @@ -545,7 +547,9 @@ EXPORT_SYMBOL(ecm_db_connection_data_tot
*/ */
void ecm_db_connection_data_totals_update_dropped(struct ecm_db_connection_instance *ci, bool is_from, uint64_t size, uint64_t packets) void ecm_db_connection_data_totals_update_dropped(struct ecm_db_connection_instance *ci, bool is_from, uint64_t size, uint64_t packets)
{ {
@ -185,7 +182,7 @@ index 6d0bff4..77e5f3f 100644
DEBUG_CHECK_MAGIC(ci, ECM_DB_CONNECTION_INSTANCE_MAGIC, "%px: magic failed\n", ci); DEBUG_CHECK_MAGIC(ci, ECM_DB_CONNECTION_INSTANCE_MAGIC, "%px: magic failed\n", ci);
@@ -1526,6 +1530,7 @@ void ecm_db_connection_defunct_all(void) @@ -1539,6 +1543,7 @@ void ecm_db_connection_defunct_all(void)
} }
EXPORT_SYMBOL(ecm_db_connection_defunct_all); EXPORT_SYMBOL(ecm_db_connection_defunct_all);
@ -193,7 +190,7 @@ index 6d0bff4..77e5f3f 100644
/* /*
* ecm_db_connection_defunct_by_classifier() * ecm_db_connection_defunct_by_classifier()
* Make defunct based on masked fields * Make defunct based on masked fields
@@ -1692,6 +1697,7 @@ next_ci: @@ -1705,6 +1710,7 @@ next_ci:
ECM_IP_ADDR_TO_OCTAL(dest_addr_mask), dest_port_mask, proto_mask, cnt); ECM_IP_ADDR_TO_OCTAL(dest_addr_mask), dest_port_mask, proto_mask, cnt);
} }
} }
@ -201,7 +198,7 @@ index 6d0bff4..77e5f3f 100644
/* /*
* ecm_db_connection_defunct_by_port() * ecm_db_connection_defunct_by_port()
@@ -1981,6 +1987,7 @@ struct ecm_db_node_instance *ecm_db_connection_node_get_and_ref(struct ecm_db_co @@ -1994,6 +2000,7 @@ struct ecm_db_node_instance *ecm_db_conn
} }
EXPORT_SYMBOL(ecm_db_connection_node_get_and_ref); EXPORT_SYMBOL(ecm_db_connection_node_get_and_ref);
@ -209,7 +206,7 @@ index 6d0bff4..77e5f3f 100644
/* /*
* ecm_db_connection_mapping_get_and_ref_next() * ecm_db_connection_mapping_get_and_ref_next()
* Return reference to next connection in the mapping chain in the specified direction. * Return reference to next connection in the mapping chain in the specified direction.
@@ -2022,6 +2029,7 @@ struct ecm_db_connection_instance *ecm_db_connection_iface_get_and_ref_next(stru @@ -2035,6 +2042,7 @@ struct ecm_db_connection_instance *ecm_d
return nci; return nci;
} }
EXPORT_SYMBOL(ecm_db_connection_iface_get_and_ref_next); EXPORT_SYMBOL(ecm_db_connection_iface_get_and_ref_next);
@ -217,37 +214,35 @@ index 6d0bff4..77e5f3f 100644
/* /*
* ecm_db_connection_mapping_get_and_ref() * ecm_db_connection_mapping_get_and_ref()
diff --git a/ecm_db/ecm_db_node.c b/ecm_db/ecm_db_node.c
index c3d70be..89b386f 100644
--- a/ecm_db/ecm_db_node.c --- a/ecm_db/ecm_db_node.c
+++ b/ecm_db/ecm_db_node.c +++ b/ecm_db/ecm_db_node.c
@@ -227,8 +227,10 @@ EXPORT_SYMBOL(ecm_db_node_get_and_ref_next); @@ -227,9 +227,11 @@ EXPORT_SYMBOL(ecm_db_node_get_and_ref_ne
*/ */
int ecm_db_node_deref(struct ecm_db_node_instance *ni) int ecm_db_node_deref(struct ecm_db_node_instance *ni)
{ {
+#ifdef ECM_DB_XREF_ENABLE +#ifdef ECM_DB_XREF_ENABLE
#if (DEBUG_LEVEL >= 1) #if (DEBUG_LEVEL >= 1)
int dir; int dir;
+#endif
#endif #endif
+#endif
DEBUG_CHECK_MAGIC(ni, ECM_DB_NODE_INSTANCE_MAGIC, "%px: magic failed\n", ni); DEBUG_CHECK_MAGIC(ni, ECM_DB_NODE_INSTANCE_MAGIC, "%px: magic failed\n", ni);
@@ -489,8 +491,10 @@ EXPORT_SYMBOL(ecm_db_node_iface_get_and_ref); spin_lock_bh(&ecm_db_lock);
@@ -489,9 +491,11 @@ EXPORT_SYMBOL(ecm_db_node_iface_get_and_
void ecm_db_node_add(struct ecm_db_node_instance *ni, struct ecm_db_iface_instance *ii, uint8_t *address, void ecm_db_node_add(struct ecm_db_node_instance *ni, struct ecm_db_iface_instance *ii, uint8_t *address,
ecm_db_node_final_callback_t final, void *arg) ecm_db_node_final_callback_t final, void *arg)
{ {
+#ifdef ECM_DB_XREF_ENABLE +#ifdef ECM_DB_XREF_ENABLE
#if (DEBUG_LEVEL >= 1) #if (DEBUG_LEVEL >= 1)
int dir; int dir;
+#endif
#endif #endif
+#endif
ecm_db_node_hash_t hash_index; ecm_db_node_hash_t hash_index;
struct ecm_db_listener_instance *li; struct ecm_db_listener_instance *li;
diff --git a/ecm_interface.c b/ecm_interface.c
index d7ca169..2ca02bc 100644
--- a/ecm_interface.c --- a/ecm_interface.c
+++ b/ecm_interface.c +++ b/ecm_interface.c
@@ -1424,6 +1424,7 @@ struct neighbour *ecm_interface_ipv6_neigh_get(struct ecm_front_end_connection_i @@ -1483,6 +1483,7 @@ struct neighbour *ecm_interface_ipv6_nei
*/ */
bool ecm_interface_is_pptp(struct sk_buff *skb, const struct net_device *out) bool ecm_interface_is_pptp(struct sk_buff *skb, const struct net_device *out)
{ {
@ -255,7 +250,7 @@ index d7ca169..2ca02bc 100644
struct net_device *in; struct net_device *in;
/* /*
@@ -1448,6 +1449,7 @@ bool ecm_interface_is_pptp(struct sk_buff *skb, const struct net_device *out) @@ -1507,6 +1508,7 @@ bool ecm_interface_is_pptp(struct sk_buf
} }
dev_put(in); dev_put(in);
@ -263,7 +258,7 @@ index d7ca169..2ca02bc 100644
return false; return false;
} }
@@ -1460,6 +1462,7 @@ bool ecm_interface_is_pptp(struct sk_buff *skb, const struct net_device *out) @@ -1519,6 +1521,7 @@ bool ecm_interface_is_pptp(struct sk_buf
*/ */
bool ecm_interface_is_l2tp_packet_by_version(struct sk_buff *skb, const struct net_device *out, int ver) bool ecm_interface_is_l2tp_packet_by_version(struct sk_buff *skb, const struct net_device *out, int ver)
{ {
@ -271,7 +266,7 @@ index d7ca169..2ca02bc 100644
uint32_t flag = 0; uint32_t flag = 0;
struct net_device *in; struct net_device *in;
@@ -1492,6 +1495,7 @@ bool ecm_interface_is_l2tp_packet_by_version(struct sk_buff *skb, const struct n @@ -1551,6 +1554,7 @@ bool ecm_interface_is_l2tp_packet_by_ver
} }
dev_put(in); dev_put(in);
@ -279,7 +274,7 @@ index d7ca169..2ca02bc 100644
return false; return false;
} }
@@ -1504,6 +1508,7 @@ bool ecm_interface_is_l2tp_packet_by_version(struct sk_buff *skb, const struct n @@ -1563,6 +1567,7 @@ bool ecm_interface_is_l2tp_packet_by_ver
*/ */
bool ecm_interface_is_l2tp_pptp(struct sk_buff *skb, const struct net_device *out) bool ecm_interface_is_l2tp_pptp(struct sk_buff *skb, const struct net_device *out)
{ {
@ -287,7 +282,7 @@ index d7ca169..2ca02bc 100644
struct net_device *in; struct net_device *in;
/* /*
@@ -1526,6 +1531,7 @@ bool ecm_interface_is_l2tp_pptp(struct sk_buff *skb, const struct net_device *ou @@ -1585,6 +1590,7 @@ bool ecm_interface_is_l2tp_pptp(struct s
} }
dev_put(in); dev_put(in);
@ -295,7 +290,7 @@ index d7ca169..2ca02bc 100644
return false; return false;
} }
@@ -6898,6 +6904,7 @@ static void ecm_interface_regenerate_connections(struct ecm_db_iface_instance *i @@ -7120,6 +7126,7 @@ static void ecm_interface_regenerate_con
return; return;
} }
@ -303,7 +298,7 @@ index d7ca169..2ca02bc 100644
for (dir = 0; dir < ECM_DB_OBJ_DIR_MAX; dir++) { for (dir = 0; dir < ECM_DB_OBJ_DIR_MAX; dir++) {
/* /*
* Re-generate all connections associated with this interface * Re-generate all connections associated with this interface
@@ -6913,6 +6920,7 @@ static void ecm_interface_regenerate_connections(struct ecm_db_iface_instance *i @@ -7135,6 +7142,7 @@ static void ecm_interface_regenerate_con
ci[dir] = cin; ci[dir] = cin;
} }
} }
@ -311,19 +306,17 @@ index d7ca169..2ca02bc 100644
#ifdef ECM_MULTICAST_ENABLE #ifdef ECM_MULTICAST_ENABLE
/* /*
diff --git a/frontends/ecm_front_end_common.c b/frontends/ecm_front_end_common.c
index 3b33c41..e21ca24 100644
--- a/frontends/ecm_front_end_common.c --- a/frontends/ecm_front_end_common.c
+++ b/frontends/ecm_front_end_common.c +++ b/frontends/ecm_front_end_common.c
@@ -460,6 +460,7 @@ bool ecm_front_end_gre_proto_is_accel_allowed(struct net_device *indev, @@ -491,6 +491,7 @@ bool ecm_front_end_gre_proto_is_accel_al
struct nf_conntrack_tuple *tuple, struct nf_conntrack_tuple *tuple,
int ip_version, uint16_t offset) int ip_version, uint16_t offset)
{ {
+#ifdef ECM_INTERFACE_GRE_ENABLE +#ifdef ECM_INTERFACE_GRE_ENABLE
struct net_device *dev; struct net_device *dev;
struct gre_base_hdr *greh; struct gre_base_hdr *greh;
@@ -471,10 +472,12 @@ bool ecm_front_end_gre_proto_is_accel_allowed(struct net_device *indev, @@ -502,10 +503,12 @@ bool ecm_front_end_gre_proto_is_accel_al
/* /*
* Case 1: PPTP locally terminated * Case 1: PPTP locally terminated
*/ */
@ -336,7 +329,7 @@ index 3b33c41..e21ca24 100644
/* /*
* Case 2: PPTP pass through * Case 2: PPTP pass through
@@ -582,6 +585,10 @@ bool ecm_front_end_gre_proto_is_accel_allowed(struct net_device *indev, @@ -613,6 +616,10 @@ bool ecm_front_end_gre_proto_is_accel_al
*/ */
DEBUG_TRACE("%px: GRE IPv%d pass through - allow acceleration\n", skb, ip_version); DEBUG_TRACE("%px: GRE IPv%d pass through - allow acceleration\n", skb, ip_version);
return true; return true;

View File

@ -1,6 +1,6 @@
--- a/ecm_interface.c --- a/ecm_interface.c
+++ b/ecm_interface.c +++ b/ecm_interface.c
@@ -336,7 +336,7 @@ static struct net_device *ecm_interface_dev_find_by_local_addr_ipv6(ip_addr_t ad @@ -336,7 +336,7 @@ static struct net_device *ecm_interface_
struct net_device *dev; struct net_device *dev;
ECM_IP_ADDR_TO_NIN6_ADDR(addr6, addr); ECM_IP_ADDR_TO_NIN6_ADDR(addr6, addr);
@ -9,7 +9,7 @@
return dev; return dev;
} }
#endif #endif
@@ -737,7 +737,7 @@ static bool ecm_interface_mac_addr_get_ipv6_no_route(struct net_device *dev, ip_ @@ -779,7 +779,7 @@ static bool ecm_interface_mac_addr_get_i
* Get the MAC address that corresponds to IP address given. * Get the MAC address that corresponds to IP address given.
*/ */
ECM_IP_ADDR_TO_NIN6_ADDR(daddr, addr); ECM_IP_ADDR_TO_NIN6_ADDR(daddr, addr);
@ -18,11 +18,9 @@
if (local_dev) { if (local_dev) {
DEBUG_TRACE("%pi6 is a local address\n", &daddr); DEBUG_TRACE("%pi6 is a local address\n", &daddr);
memcpy(mac_addr, dev->dev_addr, ETH_ALEN); memcpy(mac_addr, dev->dev_addr, ETH_ALEN);
diff --git a/frontends/ecm_front_end_common.c b/frontends/ecm_front_end_common.c
index 8142be1..927e548 100644
--- a/frontends/ecm_front_end_common.c --- a/frontends/ecm_front_end_common.c
+++ b/frontends/ecm_front_end_common.c +++ b/frontends/ecm_front_end_common.c
@@ -101,6 +101,10 @@ @@ -102,6 +102,10 @@
#endif #endif
#endif #endif
@ -33,7 +31,7 @@ index 8142be1..927e548 100644
/* /*
* Sysctl table header * Sysctl table header
*/ */
@@ -547,7 +551,7 @@ bool ecm_front_end_gre_proto_is_accel_allowed(struct net_device *indev, @@ -578,7 +582,7 @@ bool ecm_front_end_gre_proto_is_accel_al
} }
} else { } else {
#ifdef ECM_IPV6_ENABLE #ifdef ECM_IPV6_ENABLE
@ -42,7 +40,7 @@ index 8142be1..927e548 100644
if (dev) { if (dev) {
/* /*
* Source IP address is local * Source IP address is local
@@ -557,7 +561,7 @@ bool ecm_front_end_gre_proto_is_accel_allowed(struct net_device *indev, @@ -588,7 +592,7 @@ bool ecm_front_end_gre_proto_is_accel_al
return false; return false;
} }
@ -50,4 +48,4 @@ index 8142be1..927e548 100644
+ dev = ipv6_dev_find_and_hold(&init_net, &(tuple->dst.u3.in6), 1); + dev = ipv6_dev_find_and_hold(&init_net, &(tuple->dst.u3.in6), 1);
if (dev) { if (dev) {
/* /*
* Destination IP address is local * Destination IP address is local

View File

@ -38,11 +38,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
frontends/sfe/ecm_sfe_ported_ipv6.c | 8 +--- frontends/sfe/ecm_sfe_ported_ipv6.c | 8 +---
31 files changed, 122 insertions(+), 330 deletions(-) 31 files changed, 122 insertions(+), 330 deletions(-)
diff --git a/ecm_classifier_default.c b/ecm_classifier_default.c
index 39315a9..1dad277 100644
--- a/ecm_classifier_default.c --- a/ecm_classifier_default.c
+++ b/ecm_classifier_default.c +++ b/ecm_classifier_default.c
@@ -760,26 +760,14 @@ int ecm_classifier_default_init(struct dentry *dentry) @@ -760,26 +760,14 @@ int ecm_classifier_default_init(struct d
return -1; return -1;
} }
@ -75,11 +73,9 @@ index 39315a9..1dad277 100644
return 0; return 0;
} }
diff --git a/ecm_classifier_dscp.c b/ecm_classifier_dscp.c
index 4f0caeb..6c9401e 100644
--- a/ecm_classifier_dscp.c --- a/ecm_classifier_dscp.c
+++ b/ecm_classifier_dscp.c +++ b/ecm_classifier_dscp.c
@@ -816,12 +816,8 @@ int ecm_classifier_dscp_init(struct dentry *dentry) @@ -816,12 +816,8 @@ int ecm_classifier_dscp_init(struct dent
return -1; return -1;
} }
@ -94,11 +90,9 @@ index 4f0caeb..6c9401e 100644
return 0; return 0;
} }
diff --git a/ecm_classifier_emesh.c b/ecm_classifier_emesh.c
index 72cf2e1..f8aecec 100644
--- a/ecm_classifier_emesh.c --- a/ecm_classifier_emesh.c
+++ b/ecm_classifier_emesh.c +++ b/ecm_classifier_emesh.c
@@ -1954,33 +1954,17 @@ int ecm_classifier_emesh_sawf_init(struct dentry *dentry) @@ -2059,33 +2059,17 @@ int ecm_classifier_emesh_sawf_init(struc
return -1; return -1;
} }
@ -138,13 +132,11 @@ index 72cf2e1..f8aecec 100644
+ debugfs_create_u32("cake_enabled", S_IRUGO | S_IWUSR, ecm_classifier_emesh_sawf_dentry, + debugfs_create_u32("cake_enabled", S_IRUGO | S_IWUSR, ecm_classifier_emesh_sawf_dentry,
+ (u32 *)&ecm_classifier_sawf_cake_enabled); + (u32 *)&ecm_classifier_sawf_cake_enabled);
/* if (!debugfs_create_file("udp_ipsec_port", S_IRUGO | S_IWUSR, ecm_classifier_emesh_sawf_dentry,
* Register for service prioritization notification update. NULL, &ecm_classifier_sawf_emesh_udp_ipsec_port_fops)) {
diff --git a/ecm_classifier_hyfi.c b/ecm_classifier_hyfi.c
index a57a13e..fad7209 100644
--- a/ecm_classifier_hyfi.c --- a/ecm_classifier_hyfi.c
+++ b/ecm_classifier_hyfi.c +++ b/ecm_classifier_hyfi.c
@@ -1111,11 +1111,8 @@ int ecm_classifier_hyfi_rules_init(struct dentry *dentry) @@ -1111,11 +1111,8 @@ int ecm_classifier_hyfi_rules_init(struc
goto classifier_task_cleanup; goto classifier_task_cleanup;
} }
@ -158,11 +150,9 @@ index a57a13e..fad7209 100644
if (!debugfs_create_file("cmd", S_IWUSR, ecm_classifier_hyfi_dentry, if (!debugfs_create_file("cmd", S_IWUSR, ecm_classifier_hyfi_dentry,
NULL, &ecm_classifier_hyfi_cmd_fops)) { NULL, &ecm_classifier_hyfi_cmd_fops)) {
diff --git a/ecm_classifier_mark.c b/ecm_classifier_mark.c
index d054d8e..65dd1e1 100644
--- a/ecm_classifier_mark.c --- a/ecm_classifier_mark.c
+++ b/ecm_classifier_mark.c +++ b/ecm_classifier_mark.c
@@ -753,12 +753,8 @@ int ecm_classifier_mark_init(struct dentry *dentry) @@ -753,12 +753,8 @@ int ecm_classifier_mark_init(struct dent
return -1; return -1;
} }
@ -177,11 +167,9 @@ index d054d8e..65dd1e1 100644
return 0; return 0;
} }
diff --git a/ecm_classifier_ovs.c b/ecm_classifier_ovs.c
index b9d98d4..16a2ea9 100644
--- a/ecm_classifier_ovs.c --- a/ecm_classifier_ovs.c
+++ b/ecm_classifier_ovs.c +++ b/ecm_classifier_ovs.c
@@ -2265,12 +2265,8 @@ int ecm_classifier_ovs_init(struct dentry *dentry) @@ -2265,12 +2265,8 @@ int ecm_classifier_ovs_init(struct dentr
return -1; return -1;
} }
@ -196,11 +184,9 @@ index b9d98d4..16a2ea9 100644
return 0; return 0;
} }
diff --git a/ecm_classifier_pcc.c b/ecm_classifier_pcc.c
index 6c6fcd4..af13357 100644
--- a/ecm_classifier_pcc.c --- a/ecm_classifier_pcc.c
+++ b/ecm_classifier_pcc.c +++ b/ecm_classifier_pcc.c
@@ -1246,12 +1246,8 @@ int ecm_classifier_pcc_init(struct dentry *dentry) @@ -1246,12 +1246,8 @@ int ecm_classifier_pcc_init(struct dentr
return -1; return -1;
} }
@ -215,11 +201,9 @@ index 6c6fcd4..af13357 100644
return 0; return 0;
} }
diff --git a/ecm_conntrack_notifier.c b/ecm_conntrack_notifier.c
index f4f2c60..7b20132 100644
--- a/ecm_conntrack_notifier.c --- a/ecm_conntrack_notifier.c
+++ b/ecm_conntrack_notifier.c +++ b/ecm_conntrack_notifier.c
@@ -429,12 +429,8 @@ int ecm_conntrack_notifier_init(struct dentry *dentry) @@ -429,12 +429,8 @@ int ecm_conntrack_notifier_init(struct d
return -1; return -1;
} }
@ -234,11 +218,9 @@ index f4f2c60..7b20132 100644
#ifdef CONFIG_NF_CONNTRACK_EVENTS #ifdef CONFIG_NF_CONNTRACK_EVENTS
/* /*
diff --git a/ecm_db/ecm_db_connection.c b/ecm_db/ecm_db_connection.c
index 77e5f3f..4bd47c3 100644
--- a/ecm_db/ecm_db_connection.c --- a/ecm_db/ecm_db_connection.c
+++ b/ecm_db/ecm_db_connection.c +++ b/ecm_db/ecm_db_connection.c
@@ -3776,11 +3776,8 @@ static struct file_operations ecm_db_connection_count_simple_fops = { @@ -4378,11 +4378,8 @@ static struct file_operations ecm_db_con
*/ */
bool ecm_db_connection_init(struct dentry *dentry) bool ecm_db_connection_init(struct dentry *dentry)
{ {
@ -252,8 +234,6 @@ index 77e5f3f..4bd47c3 100644
if (!debugfs_create_file("connection_count_simple", S_IRUGO, dentry, if (!debugfs_create_file("connection_count_simple", S_IRUGO, dentry,
NULL, &ecm_db_connection_count_simple_fops)) { NULL, &ecm_db_connection_count_simple_fops)) {
diff --git a/ecm_db/ecm_db_host.c b/ecm_db/ecm_db_host.c
index 8820576..38a21b4 100644
--- a/ecm_db/ecm_db_host.c --- a/ecm_db/ecm_db_host.c
+++ b/ecm_db/ecm_db_host.c +++ b/ecm_db/ecm_db_host.c
@@ -771,11 +771,8 @@ EXPORT_SYMBOL(ecm_db_host_alloc); @@ -771,11 +771,8 @@ EXPORT_SYMBOL(ecm_db_host_alloc);
@ -270,8 +250,6 @@ index 8820576..38a21b4 100644
ecm_db_host_table = vzalloc(sizeof(struct ecm_db_host_instance *) * ECM_DB_HOST_HASH_SLOTS); ecm_db_host_table = vzalloc(sizeof(struct ecm_db_host_instance *) * ECM_DB_HOST_HASH_SLOTS);
if (!ecm_db_host_table) { if (!ecm_db_host_table) {
diff --git a/ecm_db/ecm_db_iface.c b/ecm_db/ecm_db_iface.c
index 53c254c..f9ad269 100644
--- a/ecm_db/ecm_db_iface.c --- a/ecm_db/ecm_db_iface.c
+++ b/ecm_db/ecm_db_iface.c +++ b/ecm_db/ecm_db_iface.c
@@ -3706,11 +3706,8 @@ EXPORT_SYMBOL(ecm_db_iface_alloc); @@ -3706,11 +3706,8 @@ EXPORT_SYMBOL(ecm_db_iface_alloc);
@ -288,8 +266,6 @@ index 53c254c..f9ad269 100644
return true; return true;
} }
diff --git a/ecm_db/ecm_db_mapping.c b/ecm_db/ecm_db_mapping.c
index 1d06ef4..8574d20 100644
--- a/ecm_db/ecm_db_mapping.c --- a/ecm_db/ecm_db_mapping.c
+++ b/ecm_db/ecm_db_mapping.c +++ b/ecm_db/ecm_db_mapping.c
@@ -807,11 +807,8 @@ EXPORT_SYMBOL(ecm_db_mapping_alloc); @@ -807,11 +807,8 @@ EXPORT_SYMBOL(ecm_db_mapping_alloc);
@ -306,8 +282,6 @@ index 1d06ef4..8574d20 100644
ecm_db_mapping_table = vzalloc(sizeof(struct ecm_db_mapping_instance *) * ECM_DB_MAPPING_HASH_SLOTS); ecm_db_mapping_table = vzalloc(sizeof(struct ecm_db_mapping_instance *) * ECM_DB_MAPPING_HASH_SLOTS);
if (!ecm_db_mapping_table) { if (!ecm_db_mapping_table) {
diff --git a/ecm_db/ecm_db_node.c b/ecm_db/ecm_db_node.c
index 89b386f..513fb84 100644
--- a/ecm_db/ecm_db_node.c --- a/ecm_db/ecm_db_node.c
+++ b/ecm_db/ecm_db_node.c +++ b/ecm_db/ecm_db_node.c
@@ -1211,11 +1211,8 @@ keep_sni_conn: @@ -1211,11 +1211,8 @@ keep_sni_conn:
@ -324,11 +298,9 @@ index 89b386f..513fb84 100644
ecm_db_node_table = vzalloc(sizeof(struct ecm_db_node_instance *) * ECM_DB_NODE_HASH_SLOTS); ecm_db_node_table = vzalloc(sizeof(struct ecm_db_node_instance *) * ECM_DB_NODE_HASH_SLOTS);
if (!ecm_db_node_table) { if (!ecm_db_node_table) {
diff --git a/ecm_state.c b/ecm_state.c
index b4348a8..2424b58 100644
--- a/ecm_state.c --- a/ecm_state.c
+++ b/ecm_state.c +++ b/ecm_state.c
@@ -894,17 +894,11 @@ int ecm_state_init(struct dentry *dentry) @@ -894,17 +894,11 @@ int ecm_state_init(struct dentry *dentry
return -1; return -1;
} }
@ -350,11 +322,9 @@ index b4348a8..2424b58 100644
/* /*
* Register a char device that we will use to provide a dump of our state * Register a char device that we will use to provide a dump of our state
diff --git a/frontends/cmn/ecm_bond_notifier.c b/frontends/cmn/ecm_bond_notifier.c
index ca7fb45..f7e75e7 100644
--- a/frontends/cmn/ecm_bond_notifier.c --- a/frontends/cmn/ecm_bond_notifier.c
+++ b/frontends/cmn/ecm_bond_notifier.c +++ b/frontends/cmn/ecm_bond_notifier.c
@@ -241,12 +241,8 @@ int ecm_bond_notifier_init(struct dentry *dentry) @@ -241,12 +241,8 @@ int ecm_bond_notifier_init(struct dentry
return -1; return -1;
} }
@ -369,8 +339,6 @@ index ca7fb45..f7e75e7 100644
/* /*
* Register Link Aggregation callbacks with the bonding driver * Register Link Aggregation callbacks with the bonding driver
diff --git a/frontends/ecm_front_end_ipv4.c b/frontends/ecm_front_end_ipv4.c
index 8bf040b..3b060f1 100644
--- a/frontends/ecm_front_end_ipv4.c --- a/frontends/ecm_front_end_ipv4.c
+++ b/frontends/ecm_front_end_ipv4.c +++ b/frontends/ecm_front_end_ipv4.c
@@ -383,11 +383,8 @@ void ecm_front_end_ipv4_stop(int num) @@ -383,11 +383,8 @@ void ecm_front_end_ipv4_stop(int num)
@ -387,8 +355,6 @@ index 8bf040b..3b060f1 100644
return ecm_ipv4_init(dentry); return ecm_ipv4_init(dentry);
} }
diff --git a/frontends/ecm_front_end_ipv6.c b/frontends/ecm_front_end_ipv6.c
index c6f09a8..2450346 100644
--- a/frontends/ecm_front_end_ipv6.c --- a/frontends/ecm_front_end_ipv6.c
+++ b/frontends/ecm_front_end_ipv6.c +++ b/frontends/ecm_front_end_ipv6.c
@@ -262,11 +262,8 @@ void ecm_front_end_ipv6_stop(int num) @@ -262,11 +262,8 @@ void ecm_front_end_ipv6_stop(int num)
@ -405,11 +371,9 @@ index c6f09a8..2450346 100644
return ecm_ipv6_init(dentry); return ecm_ipv6_init(dentry);
} }
diff --git a/frontends/nss/ecm_nss_ipv4.c b/frontends/nss/ecm_nss_ipv4.c
index 0fee3e8..5b0ce29 100644
--- a/frontends/nss/ecm_nss_ipv4.c --- a/frontends/nss/ecm_nss_ipv4.c
+++ b/frontends/nss/ecm_nss_ipv4.c +++ b/frontends/nss/ecm_nss_ipv4.c
@@ -1009,41 +1009,23 @@ int ecm_nss_ipv4_init(struct dentry *dentry) @@ -1009,41 +1009,23 @@ int ecm_nss_ipv4_init(struct dentry *den
return result; return result;
} }
@ -463,7 +427,7 @@ index 0fee3e8..5b0ce29 100644
if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_nss_ipv4_dentry, if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_nss_ipv4_dentry,
NULL, &ecm_nss_ipv4_accel_limit_mode_fops)) { NULL, &ecm_nss_ipv4_accel_limit_mode_fops)) {
@@ -1074,11 +1056,8 @@ int ecm_nss_ipv4_init(struct dentry *dentry) @@ -1074,11 +1056,8 @@ int ecm_nss_ipv4_init(struct dentry *den
goto task_cleanup; goto task_cleanup;
} }
@ -477,11 +441,9 @@ index 0fee3e8..5b0ce29 100644
#ifdef ECM_NON_PORTED_SUPPORT_ENABLE #ifdef ECM_NON_PORTED_SUPPORT_ENABLE
if (!ecm_nss_non_ported_ipv4_debugfs_init(ecm_nss_ipv4_dentry)) { if (!ecm_nss_non_ported_ipv4_debugfs_init(ecm_nss_ipv4_dentry)) {
diff --git a/frontends/nss/ecm_nss_ipv6.c b/frontends/nss/ecm_nss_ipv6.c
index ee6b434..8d13f68 100644
--- a/frontends/nss/ecm_nss_ipv6.c --- a/frontends/nss/ecm_nss_ipv6.c
+++ b/frontends/nss/ecm_nss_ipv6.c +++ b/frontends/nss/ecm_nss_ipv6.c
@@ -986,41 +986,23 @@ int ecm_nss_ipv6_init(struct dentry *dentry) @@ -986,41 +986,23 @@ int ecm_nss_ipv6_init(struct dentry *den
return result; return result;
} }
@ -535,7 +497,7 @@ index ee6b434..8d13f68 100644
if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_nss_ipv6_dentry, if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_nss_ipv6_dentry,
NULL, &ecm_nss_ipv6_accel_limit_mode_fops)) { NULL, &ecm_nss_ipv6_accel_limit_mode_fops)) {
@@ -1051,11 +1033,8 @@ int ecm_nss_ipv6_init(struct dentry *dentry) @@ -1051,11 +1033,8 @@ int ecm_nss_ipv6_init(struct dentry *den
goto task_cleanup; goto task_cleanup;
} }
@ -549,8 +511,6 @@ index ee6b434..8d13f68 100644
#ifdef ECM_NON_PORTED_SUPPORT_ENABLE #ifdef ECM_NON_PORTED_SUPPORT_ENABLE
if (!ecm_nss_non_ported_ipv6_debugfs_init(ecm_nss_ipv6_dentry)) { if (!ecm_nss_non_ported_ipv6_debugfs_init(ecm_nss_ipv6_dentry)) {
diff --git a/frontends/nss/ecm_nss_multicast_ipv4.c b/frontends/nss/ecm_nss_multicast_ipv4.c
index a3dcb79..c9e92de 100644
--- a/frontends/nss/ecm_nss_multicast_ipv4.c --- a/frontends/nss/ecm_nss_multicast_ipv4.c
+++ b/frontends/nss/ecm_nss_multicast_ipv4.c +++ b/frontends/nss/ecm_nss_multicast_ipv4.c
@@ -2619,14 +2619,8 @@ find_next_tuple: @@ -2619,14 +2619,8 @@ find_next_tuple:
@ -569,7 +529,7 @@ index a3dcb79..c9e92de 100644
return true; return true;
} }
@@ -2645,11 +2639,8 @@ void ecm_nss_multicast_ipv4_stop(int num) @@ -2645,11 +2639,8 @@ void ecm_nss_multicast_ipv4_stop(int num
*/ */
int ecm_nss_multicast_ipv4_init(struct dentry *dentry) int ecm_nss_multicast_ipv4_init(struct dentry *dentry)
{ {
@ -585,7 +545,7 @@ index a3dcb79..c9e92de 100644
* Register multicast update callback to MCS snooper * Register multicast update callback to MCS snooper
--- a/frontends/nss/ecm_nss_multicast_ipv6.c --- a/frontends/nss/ecm_nss_multicast_ipv6.c
+++ b/frontends/nss/ecm_nss_multicast_ipv6.c +++ b/frontends/nss/ecm_nss_multicast_ipv6.c
@@ -2554,14 +2554,8 @@ static void ecm_nss_multicast_ipv6_mfc_update_event_callback(struct in6_addr *gr @@ -2554,14 +2554,8 @@ static void ecm_nss_multicast_ipv6_mfc_u
*/ */
bool ecm_nss_multicast_ipv6_debugfs_init(struct dentry *dentry) bool ecm_nss_multicast_ipv6_debugfs_init(struct dentry *dentry)
{ {
@ -601,7 +561,7 @@ index a3dcb79..c9e92de 100644
return true; return true;
} }
@@ -2580,11 +2574,8 @@ void ecm_nss_multicast_ipv6_stop(int num) @@ -2580,11 +2574,8 @@ void ecm_nss_multicast_ipv6_stop(int num
*/ */
int ecm_nss_multicast_ipv6_init(struct dentry *dentry) int ecm_nss_multicast_ipv6_init(struct dentry *dentry)
{ {
@ -615,11 +575,9 @@ index a3dcb79..c9e92de 100644
/* /*
* Register multicast update callback to MCS snooper * Register multicast update callback to MCS snooper
diff --git a/frontends/nss/ecm_nss_non_ported_ipv4.c b/frontends/nss/ecm_nss_non_ported_ipv4.c
index ec4f365..77de341 100644
--- a/frontends/nss/ecm_nss_non_ported_ipv4.c --- a/frontends/nss/ecm_nss_non_ported_ipv4.c
+++ b/frontends/nss/ecm_nss_non_ported_ipv4.c +++ b/frontends/nss/ecm_nss_non_ported_ipv4.c
@@ -1830,11 +1830,8 @@ struct ecm_front_end_connection_instance *ecm_nss_non_ported_ipv4_connection_ins @@ -1830,11 +1830,8 @@ struct ecm_front_end_connection_instance
*/ */
bool ecm_nss_non_ported_ipv4_debugfs_init(struct dentry *dentry) bool ecm_nss_non_ported_ipv4_debugfs_init(struct dentry *dentry)
{ {
@ -633,11 +591,9 @@ index ec4f365..77de341 100644
return true; return true;
} }
diff --git a/frontends/nss/ecm_nss_non_ported_ipv6.c b/frontends/nss/ecm_nss_non_ported_ipv6.c
index 13e0cc5..91ad7aa 100644
--- a/frontends/nss/ecm_nss_non_ported_ipv6.c --- a/frontends/nss/ecm_nss_non_ported_ipv6.c
+++ b/frontends/nss/ecm_nss_non_ported_ipv6.c +++ b/frontends/nss/ecm_nss_non_ported_ipv6.c
@@ -1656,11 +1656,8 @@ struct ecm_front_end_connection_instance *ecm_nss_non_ported_ipv6_connection_ins @@ -1656,11 +1656,8 @@ struct ecm_front_end_connection_instance
*/ */
bool ecm_nss_non_ported_ipv6_debugfs_init(struct dentry *dentry) bool ecm_nss_non_ported_ipv6_debugfs_init(struct dentry *dentry)
{ {
@ -651,11 +607,9 @@ index 13e0cc5..91ad7aa 100644
return true; return true;
} }
diff --git a/frontends/nss/ecm_nss_ported_ipv4.c b/frontends/nss/ecm_nss_ported_ipv4.c
index 6375b6b..ea997e3 100644
--- a/frontends/nss/ecm_nss_ported_ipv4.c --- a/frontends/nss/ecm_nss_ported_ipv4.c
+++ b/frontends/nss/ecm_nss_ported_ipv4.c +++ b/frontends/nss/ecm_nss_ported_ipv4.c
@@ -1896,21 +1896,11 @@ struct ecm_front_end_connection_instance *ecm_nss_ported_ipv4_connection_instanc @@ -1896,21 +1896,11 @@ struct ecm_front_end_connection_instance
*/ */
bool ecm_nss_ported_ipv4_debugfs_init(struct dentry *dentry) bool ecm_nss_ported_ipv4_debugfs_init(struct dentry *dentry)
{ {
@ -669,24 +623,22 @@ index 6375b6b..ea997e3 100644
- DEBUG_ERROR("Failed to create ecm nss ipv4 udp_accelerated_count file in debugfs\n"); - DEBUG_ERROR("Failed to create ecm nss ipv4 udp_accelerated_count file in debugfs\n");
- return false; - return false;
- } - }
- + debugfs_create_u32("tcp_accelerated_count", S_IRUGO, dentry,
+ &ecm_nss_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_TCP]);
- if (!debugfs_create_u32("tcp_accelerated_count", S_IRUGO, dentry, - if (!debugfs_create_u32("tcp_accelerated_count", S_IRUGO, dentry,
- &ecm_nss_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_TCP])) { - &ecm_nss_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_TCP])) {
- DEBUG_ERROR("Failed to create ecm nss ipv4 tcp_accelerated_count file in debugfs\n"); - DEBUG_ERROR("Failed to create ecm nss ipv4 tcp_accelerated_count file in debugfs\n");
- debugfs_remove(udp_dentry); - debugfs_remove(udp_dentry);
- return false; - return false;
- } - }
+ debugfs_create_u32("tcp_accelerated_count", S_IRUGO, dentry, -
+ &ecm_nss_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_TCP]);
- return true; - return true;
+ return true; + return true;
} }
diff --git a/frontends/nss/ecm_nss_ported_ipv6.c b/frontends/nss/ecm_nss_ported_ipv6.c
index 1be8a58..451a557 100644
--- a/frontends/nss/ecm_nss_ported_ipv6.c --- a/frontends/nss/ecm_nss_ported_ipv6.c
+++ b/frontends/nss/ecm_nss_ported_ipv6.c +++ b/frontends/nss/ecm_nss_ported_ipv6.c
@@ -1809,21 +1809,11 @@ struct ecm_front_end_connection_instance *ecm_nss_ported_ipv6_connection_instanc @@ -1809,21 +1809,11 @@ struct ecm_front_end_connection_instance
*/ */
bool ecm_nss_ported_ipv6_debugfs_init(struct dentry *dentry) bool ecm_nss_ported_ipv6_debugfs_init(struct dentry *dentry)
{ {
@ -712,11 +664,9 @@ index 1be8a58..451a557 100644
return true; return true;
} }
diff --git a/frontends/sfe/ecm_sfe_ipv4.c b/frontends/sfe/ecm_sfe_ipv4.c
index 2076bad..3f30821 100644
--- a/frontends/sfe/ecm_sfe_ipv4.c --- a/frontends/sfe/ecm_sfe_ipv4.c
+++ b/frontends/sfe/ecm_sfe_ipv4.c +++ b/frontends/sfe/ecm_sfe_ipv4.c
@@ -925,48 +925,27 @@ int ecm_sfe_ipv4_init(struct dentry *dentry) @@ -949,48 +949,27 @@ int ecm_sfe_ipv4_init(struct dentry *den
} }
#ifdef CONFIG_XFRM #ifdef CONFIG_XFRM
@ -779,11 +729,9 @@ index 2076bad..3f30821 100644
if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_sfe_ipv4_dentry, if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_sfe_ipv4_dentry,
NULL, &ecm_sfe_ipv4_accel_limit_mode_fops)) { NULL, &ecm_sfe_ipv4_accel_limit_mode_fops)) {
diff --git a/frontends/sfe/ecm_sfe_ipv6.c b/frontends/sfe/ecm_sfe_ipv6.c
index e8981ee..54fdbf3 100644
--- a/frontends/sfe/ecm_sfe_ipv6.c --- a/frontends/sfe/ecm_sfe_ipv6.c
+++ b/frontends/sfe/ecm_sfe_ipv6.c +++ b/frontends/sfe/ecm_sfe_ipv6.c
@@ -917,48 +917,27 @@ int ecm_sfe_ipv6_init(struct dentry *dentry) @@ -944,48 +944,27 @@ int ecm_sfe_ipv6_init(struct dentry *den
} }
#ifdef CONFIG_XFRM #ifdef CONFIG_XFRM
@ -846,11 +794,9 @@ index e8981ee..54fdbf3 100644
if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_sfe_ipv6_dentry, if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_sfe_ipv6_dentry,
NULL, &ecm_sfe_ipv6_accel_limit_mode_fops)) { NULL, &ecm_sfe_ipv6_accel_limit_mode_fops)) {
diff --git a/frontends/sfe/ecm_sfe_non_ported_ipv4.c b/frontends/sfe/ecm_sfe_non_ported_ipv4.c
index d7cad2a..696bd13 100644
--- a/frontends/sfe/ecm_sfe_non_ported_ipv4.c --- a/frontends/sfe/ecm_sfe_non_ported_ipv4.c
+++ b/frontends/sfe/ecm_sfe_non_ported_ipv4.c +++ b/frontends/sfe/ecm_sfe_non_ported_ipv4.c
@@ -1908,11 +1908,8 @@ struct ecm_front_end_connection_instance *ecm_sfe_non_ported_ipv4_connection_ins @@ -1908,11 +1908,8 @@ struct ecm_front_end_connection_instance
*/ */
bool ecm_sfe_non_ported_ipv4_debugfs_init(struct dentry *dentry) bool ecm_sfe_non_ported_ipv4_debugfs_init(struct dentry *dentry)
{ {
@ -864,11 +810,9 @@ index d7cad2a..696bd13 100644
return true; return true;
} }
diff --git a/frontends/sfe/ecm_sfe_non_ported_ipv6.c b/frontends/sfe/ecm_sfe_non_ported_ipv6.c
index a9fb637..fe06de4 100644
--- a/frontends/sfe/ecm_sfe_non_ported_ipv6.c --- a/frontends/sfe/ecm_sfe_non_ported_ipv6.c
+++ b/frontends/sfe/ecm_sfe_non_ported_ipv6.c +++ b/frontends/sfe/ecm_sfe_non_ported_ipv6.c
@@ -1726,11 +1726,8 @@ struct ecm_front_end_connection_instance *ecm_sfe_non_ported_ipv6_connection_ins @@ -1726,11 +1726,8 @@ struct ecm_front_end_connection_instance
*/ */
bool ecm_sfe_non_ported_ipv6_debugfs_init(struct dentry *dentry) bool ecm_sfe_non_ported_ipv6_debugfs_init(struct dentry *dentry)
{ {
@ -882,11 +826,9 @@ index a9fb637..fe06de4 100644
return true; return true;
} }
diff --git a/frontends/sfe/ecm_sfe_ported_ipv4.c b/frontends/sfe/ecm_sfe_ported_ipv4.c
index fc2c4ba..53f5b07 100644
--- a/frontends/sfe/ecm_sfe_ported_ipv4.c --- a/frontends/sfe/ecm_sfe_ported_ipv4.c
+++ b/frontends/sfe/ecm_sfe_ported_ipv4.c +++ b/frontends/sfe/ecm_sfe_ported_ipv4.c
@@ -2035,12 +2035,8 @@ bool ecm_sfe_ported_ipv4_debugfs_init(struct dentry *dentry) @@ -2070,12 +2070,8 @@ bool ecm_sfe_ported_ipv4_debugfs_init(st
return false; return false;
} }
@ -901,11 +843,9 @@ index fc2c4ba..53f5b07 100644
return true; return true;
} }
diff --git a/frontends/sfe/ecm_sfe_ported_ipv6.c b/frontends/sfe/ecm_sfe_ported_ipv6.c
index 90d642d..ae04cb4 100644
--- a/frontends/sfe/ecm_sfe_ported_ipv6.c --- a/frontends/sfe/ecm_sfe_ported_ipv6.c
+++ b/frontends/sfe/ecm_sfe_ported_ipv6.c +++ b/frontends/sfe/ecm_sfe_ported_ipv6.c
@@ -1982,12 +1982,8 @@ bool ecm_sfe_ported_ipv6_debugfs_init(struct dentry *dentry) @@ -2018,12 +2018,8 @@ bool ecm_sfe_ported_ipv6_debugfs_init(st
return false; return false;
} }

View File

@ -13,11 +13,9 @@ Signed-off-by: Dirk Buchwalder buchwalder@posteo.de
frontends/nss/ecm_nss_ipv6.c | 4 ++-- frontends/nss/ecm_nss_ipv6.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-) 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/frontends/nss/ecm_nss_ipv4.c b/frontends/nss/ecm_nss_ipv4.c
index 5b0ce29..719a747 100644
--- a/frontends/nss/ecm_nss_ipv4.c --- a/frontends/nss/ecm_nss_ipv4.c
+++ b/frontends/nss/ecm_nss_ipv4.c +++ b/frontends/nss/ecm_nss_ipv4.c
@@ -700,7 +700,7 @@ static void ecm_nss_ipv4_stats_sync_req_work(struct work_struct *work) @@ -700,7 +700,7 @@ static void ecm_nss_ipv4_stats_sync_req_
} }
spin_unlock_bh(&ecm_nss_ipv4_lock); spin_unlock_bh(&ecm_nss_ipv4_lock);
@ -26,7 +24,7 @@ index 5b0ce29..719a747 100644
/* /*
* If index is 0, we are starting a new round, but if we still have time remain * If index is 0, we are starting a new round, but if we still have time remain
@@ -714,7 +714,7 @@ static void ecm_nss_ipv4_stats_sync_req_work(struct work_struct *work) @@ -714,7 +714,7 @@ static void ecm_nss_ipv4_stats_sync_req_
} }
if (time_after(ecm_nss_ipv4_next_req_time, current_jiffies)) { if (time_after(ecm_nss_ipv4_next_req_time, current_jiffies)) {
@ -35,11 +33,9 @@ index 5b0ce29..719a747 100644
} }
ecm_nss_ipv4_roll_check_jiffies = jiffies; ecm_nss_ipv4_roll_check_jiffies = jiffies;
ecm_nss_ipv4_next_req_time = ecm_nss_ipv4_roll_check_jiffies + ECM_NSS_IPV4_STATS_SYNC_PERIOD; ecm_nss_ipv4_next_req_time = ecm_nss_ipv4_roll_check_jiffies + ECM_NSS_IPV4_STATS_SYNC_PERIOD;
diff --git a/frontends/nss/ecm_nss_ipv6.c b/frontends/nss/ecm_nss_ipv6.c
index 8d13f68..67ee364 100644
--- a/frontends/nss/ecm_nss_ipv6.c --- a/frontends/nss/ecm_nss_ipv6.c
+++ b/frontends/nss/ecm_nss_ipv6.c +++ b/frontends/nss/ecm_nss_ipv6.c
@@ -676,7 +676,7 @@ static void ecm_nss_ipv6_stats_sync_req_work(struct work_struct *work) @@ -676,7 +676,7 @@ static void ecm_nss_ipv6_stats_sync_req_
} }
spin_unlock_bh(&ecm_nss_ipv6_lock); spin_unlock_bh(&ecm_nss_ipv6_lock);
@ -48,7 +44,7 @@ index 8d13f68..67ee364 100644
/* /*
* If index is 0, we are starting a new round, but if we still have time remain * If index is 0, we are starting a new round, but if we still have time remain
@@ -690,7 +690,7 @@ static void ecm_nss_ipv6_stats_sync_req_work(struct work_struct *work) @@ -690,7 +690,7 @@ static void ecm_nss_ipv6_stats_sync_req_
} }
if (time_after(ecm_nss_ipv6_next_req_time, current_jiffies)) { if (time_after(ecm_nss_ipv6_next_req_time, current_jiffies)) {

View File

@ -11,11 +11,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
ecm_interface.c | 9 +++++++++ ecm_interface.c | 9 +++++++++
1 file changed, 9 insertions(+) 1 file changed, 9 insertions(+)
diff --git a/ecm_interface.c b/ecm_interface.c
index b461456..6be872a 100644
--- a/ecm_interface.c --- a/ecm_interface.c
+++ b/ecm_interface.c +++ b/ecm_interface.c
@@ -7775,9 +7775,13 @@ static int ecm_interface_wifi_event_handler(unsigned char *buf, int len) @@ -8012,9 +8012,13 @@ static int ecm_interface_wifi_event_hand
static int ecm_interface_wifi_event_rx(struct socket *sock, struct sockaddr_nl *addr, unsigned char *buf, int len) static int ecm_interface_wifi_event_rx(struct socket *sock, struct sockaddr_nl *addr, unsigned char *buf, int len)
{ {
struct msghdr msg; struct msghdr msg;
@ -30,7 +28,7 @@ index b461456..6be872a 100644
iov.iov_base = buf; iov.iov_base = buf;
iov.iov_len = len; iov.iov_len = len;
@@ -7787,7 +7791,8 @@ static int ecm_interface_wifi_event_rx(struct socket *sock, struct sockaddr_nl * @@ -8024,7 +8028,8 @@ static int ecm_interface_wifi_event_rx(s
msg.msg_namelen = sizeof(struct sockaddr_nl); msg.msg_namelen = sizeof(struct sockaddr_nl);
msg.msg_control = NULL; msg.msg_control = NULL;
msg.msg_controllen = 0; msg.msg_controllen = 0;
@ -40,7 +38,7 @@ index b461456..6be872a 100644
set_fs(KERNEL_DS); set_fs(KERNEL_DS);
iov_iter_init(&msg.msg_iter, READ, &iov, 1, len); iov_iter_init(&msg.msg_iter, READ, &iov, 1, len);
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0))
@@ -7798,6 +7803,9 @@ static int ecm_interface_wifi_event_rx(struct socket *sock, struct sockaddr_nl * @@ -8035,6 +8040,9 @@ static int ecm_interface_wifi_event_rx(s
set_fs(oldfs); set_fs(oldfs);
return size; return size;

View File

@ -7,8 +7,6 @@ Subject: [PATCH] treewide: rework notifier changes for 5.15
ecm_conntrack_notifier.c | 35 +++++++++++++++-------------------- ecm_conntrack_notifier.c | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-) 1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/ecm_conntrack_notifier.c b/ecm_conntrack_notifier.c
index 5f802b7..50e8566 100644
--- a/ecm_conntrack_notifier.c --- a/ecm_conntrack_notifier.c
+++ b/ecm_conntrack_notifier.c +++ b/ecm_conntrack_notifier.c
@@ -332,15 +332,8 @@ EXPORT_SYMBOL(ecm_conntrack_ipv4_event); @@ -332,15 +332,8 @@ EXPORT_SYMBOL(ecm_conntrack_ipv4_event);
@ -28,7 +26,7 @@ index 5f802b7..50e8566 100644
struct nf_conn *ct = item->ct; struct nf_conn *ct = item->ct;
/* /*
@@ -387,23 +380,17 @@ static int ecm_conntrack_event(unsigned int events, struct nf_ct_event *item) @@ -387,23 +380,17 @@ static int ecm_conntrack_event(unsigned
return NOTIFY_DONE; return NOTIFY_DONE;
} }
@ -57,7 +55,7 @@ index 5f802b7..50e8566 100644
#endif #endif
/* /*
@@ -436,12 +423,16 @@ int ecm_conntrack_notifier_init(struct dentry *dentry) @@ -436,12 +423,16 @@ int ecm_conntrack_notifier_init(struct d
/* /*
* Eventing subsystem is available so we register a notifier hook to get fast notifications of expired connections * Eventing subsystem is available so we register a notifier hook to get fast notifications of expired connections
*/ */
@ -72,13 +70,13 @@ index 5f802b7..50e8566 100644
+#else +#else
+ nf_conntrack_register_notifier(&init_net, &ecm_conntrack_notifier); + nf_conntrack_register_notifier(&init_net, &ecm_conntrack_notifier);
+#endif +#endif
#endif
return 0; /*
@@ -455,7 +446,11 @@ void ecm_conntrack_notifier_exit(void) * Hold netns reference to keep the basic conntrack alive and
{ @@ -483,7 +474,11 @@ void ecm_conntrack_notifier_exit(void)
DEBUG_INFO("ECM Conntrack Notifier exit\n"); #ifdef ECM_IPV6_ENABLE
#ifdef CONFIG_NF_CONNTRACK_EVENTS nf_ct_netns_put(&init_net, NFPROTO_IPV6);
#endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0))
nf_conntrack_unregister_notifier(&init_net, &ecm_conntrack_notifier); nf_conntrack_unregister_notifier(&init_net, &ecm_conntrack_notifier);
+#else +#else

View File

@ -10,15 +10,12 @@ Subject: [PATCH] frontends: drop use of static be_liberal and no_window_check
frontends/sfe/ecm_sfe_ported_ipv6.c | 22 ++++++++-------------- frontends/sfe/ecm_sfe_ported_ipv6.c | 22 ++++++++--------------
4 files changed, 31 insertions(+), 55 deletions(-) 4 files changed, 31 insertions(+), 55 deletions(-)
diff --git a/frontends/nss/ecm_nss_ported_ipv4.c b/frontends/nss/ecm_nss_ported_ipv4.c
index 6375b6b..ed9c10b 100644
--- a/frontends/nss/ecm_nss_ported_ipv4.c --- a/frontends/nss/ecm_nss_ported_ipv4.c
+++ b/frontends/nss/ecm_nss_ported_ipv4.c +++ b/frontends/nss/ecm_nss_ported_ipv4.c
@@ -99,14 +99,6 @@ @@ -100,14 +100,6 @@ static int ecm_nss_ported_ipv4_accelerat
static int ecm_nss_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0};
/* Array of Number of TCP and UDP connections currently offloaded */ /* Array of Number of TCP and UDP connections currently offloaded */
-/* /*
- * Expose what should be a static flag in the TCP connection tracker. - * Expose what should be a static flag in the TCP connection tracker.
- */ - */
-#ifdef ECM_OPENWRT_SUPPORT -#ifdef ECM_OPENWRT_SUPPORT
@ -26,10 +23,11 @@ index 6375b6b..ed9c10b 100644
-#endif -#endif
-extern int nf_ct_tcp_be_liberal; -extern int nf_ct_tcp_be_liberal;
- -
/* -/*
* ecm_nss_ported_ipv4_connection_callback() * ecm_nss_ported_ipv4_connection_callback()
* Callback for handling create ack/nack calls. * Callback for handling create ack/nack calls.
@@ -343,6 +335,12 @@ static void ecm_nss_ported_ipv4_connection_accelerate(struct ecm_front_end_conne */
@@ -343,6 +335,12 @@ static void ecm_nss_ported_ipv4_connecti
uint8_t dest_mac_xlate[ETH_ALEN]; uint8_t dest_mac_xlate[ETH_ALEN];
ecm_db_direction_t ecm_dir; ecm_db_direction_t ecm_dir;
ecm_front_end_acceleration_mode_t result_mode; ecm_front_end_acceleration_mode_t result_mode;
@ -40,9 +38,9 @@ index 6375b6b..ed9c10b 100644
+ tn = nf_tcp_pernet(net); + tn = nf_tcp_pernet(net);
+ } + }
DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci);
@@ -1212,12 +1210,8 @@ static void ecm_nss_ported_ipv4_connection_accelerate(struct ecm_front_end_conne @@ -1212,12 +1210,8 @@ static void ecm_nss_ported_ipv4_connecti
nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin; nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin;
nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end; nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end;
nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend; nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend;
@ -57,15 +55,12 @@ index 6375b6b..ed9c10b 100644
|| (ct->proto.tcp.seen[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { || (ct->proto.tcp.seen[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) {
nircm->rule_flags |= NSS_IPV4_RULE_CREATE_FLAG_NO_SEQ_CHECK; nircm->rule_flags |= NSS_IPV4_RULE_CREATE_FLAG_NO_SEQ_CHECK;
} }
diff --git a/frontends/nss/ecm_nss_ported_ipv6.c b/frontends/nss/ecm_nss_ported_ipv6.c
index 1be8a58..3062c12 100644
--- a/frontends/nss/ecm_nss_ported_ipv6.c --- a/frontends/nss/ecm_nss_ported_ipv6.c
+++ b/frontends/nss/ecm_nss_ported_ipv6.c +++ b/frontends/nss/ecm_nss_ported_ipv6.c
@@ -100,14 +100,6 @@ @@ -101,14 +101,6 @@ static int ecm_nss_ported_ipv6_accelerat
static int ecm_nss_ported_ipv6_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0};
/* Array of Number of TCP and UDP connections currently offloaded */ /* Array of Number of TCP and UDP connections currently offloaded */
-/* /*
- * Expose what should be a static flag in the TCP connection tracker. - * Expose what should be a static flag in the TCP connection tracker.
- */ - */
-#ifdef ECM_OPENWRT_SUPPORT -#ifdef ECM_OPENWRT_SUPPORT
@ -73,10 +68,11 @@ index 1be8a58..3062c12 100644
-#endif -#endif
-extern int nf_ct_tcp_be_liberal; -extern int nf_ct_tcp_be_liberal;
- -
/* -/*
* ecm_nss_ported_ipv6_connection_callback() * ecm_nss_ported_ipv6_connection_callback()
* Callback for handling create ack/nack calls. * Callback for handling create ack/nack calls.
@@ -348,6 +340,12 @@ static void ecm_nss_ported_ipv6_connection_accelerate(struct ecm_front_end_conne */
@@ -348,6 +340,12 @@ static void ecm_nss_ported_ipv6_connecti
ip_addr_t src_ip; ip_addr_t src_ip;
ip_addr_t dest_ip; ip_addr_t dest_ip;
ecm_front_end_acceleration_mode_t result_mode; ecm_front_end_acceleration_mode_t result_mode;
@ -87,9 +83,9 @@ index 1be8a58..3062c12 100644
+ tn = nf_tcp_pernet(net); + tn = nf_tcp_pernet(net);
+ } + }
DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci);
@@ -1138,11 +1136,7 @@ static void ecm_nss_ported_ipv6_connection_accelerate(struct ecm_front_end_conne @@ -1138,11 +1136,7 @@ static void ecm_nss_ported_ipv6_connecti
nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin; nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin;
nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end; nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end;
nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend; nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend;
@ -102,15 +98,12 @@ index 1be8a58..3062c12 100644
|| (ct->proto.tcp.seen[flow_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL) || (ct->proto.tcp.seen[flow_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)
|| (ct->proto.tcp.seen[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { || (ct->proto.tcp.seen[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) {
nircm->rule_flags |= NSS_IPV6_RULE_CREATE_FLAG_NO_SEQ_CHECK; nircm->rule_flags |= NSS_IPV6_RULE_CREATE_FLAG_NO_SEQ_CHECK;
diff --git a/frontends/sfe/ecm_sfe_ported_ipv4.c b/frontends/sfe/ecm_sfe_ported_ipv4.c
index 6e375f8..e5ae593 100644
--- a/frontends/sfe/ecm_sfe_ported_ipv4.c --- a/frontends/sfe/ecm_sfe_ported_ipv4.c
+++ b/frontends/sfe/ecm_sfe_ported_ipv4.c +++ b/frontends/sfe/ecm_sfe_ported_ipv4.c
@@ -92,14 +92,6 @@ @@ -93,14 +93,6 @@ static int ecm_sfe_ported_ipv4_accelerat
static int ecm_sfe_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0};
/* Array of Number of TCP and UDP connections currently offloaded */ /* Array of Number of TCP and UDP connections currently offloaded */
-/* /*
- * Expose what should be a static flag in the TCP connection tracker. - * Expose what should be a static flag in the TCP connection tracker.
- */ - */
-#ifdef ECM_OPENWRT_SUPPORT -#ifdef ECM_OPENWRT_SUPPORT
@ -118,16 +111,17 @@ index 6e375f8..e5ae593 100644
-#endif -#endif
-extern int nf_ct_tcp_be_liberal; -extern int nf_ct_tcp_be_liberal;
- -
/* -/*
* ecm_sfe_ported_ipv4_connection_callback() * ecm_sfe_ported_ipv4_connection_callback()
* Callback for handling create ack/nack calls. * Callback for handling create ack/nack calls.
@@ -336,11 +328,17 @@ static void ecm_sfe_ported_ipv4_connection_accelerate(struct ecm_front_end_conne */
@@ -339,11 +331,17 @@ static void ecm_sfe_ported_ipv4_connecti
uint8_t dest_mac_xlate[ETH_ALEN]; uint8_t dest_mac_xlate[ETH_ALEN];
ecm_db_direction_t ecm_dir; ecm_db_direction_t ecm_dir;
ecm_front_end_acceleration_mode_t result_mode; ecm_front_end_acceleration_mode_t result_mode;
+ struct nf_tcp_net *tn; + struct nf_tcp_net *tn;
struct ecm_classifier_instance *aci; struct ecm_classifier_instance *aci;
struct ecm_classifier_rule_create ecrc; struct ecm_classifier_rule_create ecrc;
uint32_t l2_accel_bits = (ECM_SFE_COMMON_FLOW_L2_ACCEL_ALLOWED | ECM_SFE_COMMON_RETURN_L2_ACCEL_ALLOWED); uint32_t l2_accel_bits = (ECM_SFE_COMMON_FLOW_L2_ACCEL_ALLOWED | ECM_SFE_COMMON_RETURN_L2_ACCEL_ALLOWED);
ecm_sfe_common_l2_accel_check_callback_t l2_accel_check; ecm_sfe_common_l2_accel_check_callback_t l2_accel_check;
@ -136,10 +130,10 @@ index 6e375f8..e5ae593 100644
+ tn = nf_tcp_pernet(net); + tn = nf_tcp_pernet(net);
+ } + }
+ +
DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci);
/* /*
@@ -1286,11 +1284,7 @@ static void ecm_sfe_ported_ipv4_connection_accelerate(struct ecm_front_end_conne @@ -1309,11 +1307,7 @@ static void ecm_sfe_ported_ipv4_connecti
nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin; nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin;
nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end; nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end;
nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend; nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend;
@ -152,15 +146,12 @@ index 6e375f8..e5ae593 100644
|| (ct->proto.tcp.seen[flow_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL) || (ct->proto.tcp.seen[flow_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)
|| (ct->proto.tcp.seen[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { || (ct->proto.tcp.seen[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) {
nircm->rule_flags |= SFE_RULE_CREATE_FLAG_NO_SEQ_CHECK; nircm->rule_flags |= SFE_RULE_CREATE_FLAG_NO_SEQ_CHECK;
diff --git a/frontends/sfe/ecm_sfe_ported_ipv6.c b/frontends/sfe/ecm_sfe_ported_ipv6.c
index f1885aa..4a6fdbd 100644
--- a/frontends/sfe/ecm_sfe_ported_ipv6.c --- a/frontends/sfe/ecm_sfe_ported_ipv6.c
+++ b/frontends/sfe/ecm_sfe_ported_ipv6.c +++ b/frontends/sfe/ecm_sfe_ported_ipv6.c
@@ -92,14 +92,6 @@ @@ -93,14 +93,6 @@ static int ecm_sfe_ported_ipv6_accelerat
static int ecm_sfe_ported_ipv6_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0};
/* Array of Number of TCP and UDP connections currently offloaded */ /* Array of Number of TCP and UDP connections currently offloaded */
-/* /*
- * Expose what should be a static flag in the TCP connection tracker. - * Expose what should be a static flag in the TCP connection tracker.
- */ - */
-#ifdef ECM_OPENWRT_SUPPORT -#ifdef ECM_OPENWRT_SUPPORT
@ -168,12 +159,13 @@ index f1885aa..4a6fdbd 100644
-#endif -#endif
-extern int nf_ct_tcp_be_liberal; -extern int nf_ct_tcp_be_liberal;
- -
/* -/*
* ecm_sfe_ported_ipv6_connection_callback() * ecm_sfe_ported_ipv6_connection_callback()
* Callback for handling create ack/nack calls. * Callback for handling create ack/nack calls.
@@ -342,9 +334,15 @@ static void ecm_sfe_ported_ipv6_connection_accelerate(struct ecm_front_end_conne */
struct ecm_classifier_instance *aci; @@ -345,9 +337,15 @@ static void ecm_sfe_ported_ipv6_connecti
struct ecm_classifier_rule_create ecrc; struct ecm_classifier_instance *aci;
struct ecm_classifier_rule_create ecrc;
ecm_front_end_acceleration_mode_t result_mode; ecm_front_end_acceleration_mode_t result_mode;
- uint32_t l2_accel_bits = (ECM_SFE_COMMON_FLOW_L2_ACCEL_ALLOWED | ECM_SFE_COMMON_RETURN_L2_ACCEL_ALLOWED); - uint32_t l2_accel_bits = (ECM_SFE_COMMON_FLOW_L2_ACCEL_ALLOWED | ECM_SFE_COMMON_RETURN_L2_ACCEL_ALLOWED);
+ struct nf_tcp_net *tn; + struct nf_tcp_net *tn;
@ -185,10 +177,10 @@ index f1885aa..4a6fdbd 100644
+ tn = nf_tcp_pernet(net); + tn = nf_tcp_pernet(net);
+ } + }
+ +
DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci);
/* /*
@@ -1247,11 +1245,7 @@ static void ecm_sfe_ported_ipv6_connection_accelerate(struct ecm_front_end_conne @@ -1271,11 +1269,7 @@ static void ecm_sfe_ported_ipv6_connecti
nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin; nircm->tcp_rule.return_max_window = ct->proto.tcp.seen[return_dir].td_maxwin;
nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end; nircm->tcp_rule.return_end = ct->proto.tcp.seen[return_dir].td_end;
nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend; nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend;

View File

@ -10,11 +10,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
ecm_tracker_datagram.c | 8 ++++---- ecm_tracker_datagram.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-) 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ecm_tracker_datagram.c b/ecm_tracker_datagram.c
index 9c04d73..ae14146 100644
--- a/ecm_tracker_datagram.c --- a/ecm_tracker_datagram.c
+++ b/ecm_tracker_datagram.c +++ b/ecm_tracker_datagram.c
@@ -203,7 +203,7 @@ static void ecm_tracker_datagram_datagram_discard(struct ecm_tracker_datagram_in @@ -203,7 +203,7 @@ static void ecm_tracker_datagram_datagra
* ecm_tracker_datagram_discard_all() * ecm_tracker_datagram_discard_all()
* Discard all tracked data * Discard all tracked data
*/ */
@ -23,7 +21,7 @@ index 9c04d73..ae14146 100644
{ {
int32_t src_count; int32_t src_count;
int32_t dest_count; int32_t dest_count;
@@ -364,7 +364,7 @@ static void ecm_tracker_datagram_datagram_discard_callback(struct ecm_tracker_in @@ -364,7 +364,7 @@ static void ecm_tracker_datagram_datagra
* ecm_tracker_datagram_datagram_size_get() * ecm_tracker_datagram_datagram_size_get()
* Return size in bytes of datagram at index i that was sent to the target * Return size in bytes of datagram at index i that was sent to the target
*/ */
@ -31,8 +29,8 @@ index 9c04d73..ae14146 100644
+int32_t ecm_tracker_datagram_datagram_size_get(struct ecm_tracker_datagram_instance *uti, ecm_tracker_sender_type_t sender, int32_t i) +int32_t ecm_tracker_datagram_datagram_size_get(struct ecm_tracker_datagram_instance *uti, ecm_tracker_sender_type_t sender, int32_t i)
{ {
struct ecm_tracker_datagram_internal_instance *dtii = (struct ecm_tracker_datagram_internal_instance *)uti; struct ecm_tracker_datagram_internal_instance *dtii = (struct ecm_tracker_datagram_internal_instance *)uti;
@@ -412,7 +412,7 @@ static int32_t ecm_tracker_datagram_datagram_size_get_callback(struct ecm_tracke @@ -412,7 +412,7 @@ static int32_t ecm_tracker_datagram_data
* ecm_tracker_datagram_datagram_read() * ecm_tracker_datagram_datagram_read()
* Read size bytes from datagram at index i into the buffer * Read size bytes from datagram at index i into the buffer
*/ */
@ -41,7 +39,7 @@ index 9c04d73..ae14146 100644
{ {
struct ecm_tracker_datagram_internal_instance *dtii = (struct ecm_tracker_datagram_internal_instance *)uti; struct ecm_tracker_datagram_internal_instance *dtii = (struct ecm_tracker_datagram_internal_instance *)uti;
int res; int res;
@@ -466,7 +466,7 @@ static int ecm_tracker_datagram_datagram_read_callback(struct ecm_tracker_instan @@ -466,7 +466,7 @@ static int ecm_tracker_datagram_datagram
* ecm_tracker_datagram_datagram_add() * ecm_tracker_datagram_datagram_add()
* Append the datagram onto the tracker queue for the given target * Append the datagram onto the tracker queue for the given target
*/ */
@ -50,6 +48,3 @@ index 9c04d73..ae14146 100644
{ {
struct ecm_tracker_datagram_internal_instance *dtii = (struct ecm_tracker_datagram_internal_instance *)uti; struct ecm_tracker_datagram_internal_instance *dtii = (struct ecm_tracker_datagram_internal_instance *)uti;
struct sk_buff *skbc; struct sk_buff *skbc;
--
2.34.1

View File

@ -13,8 +13,6 @@ instead or relying on a downstream api not present upstream.
frontends/sfe/ecm_sfe_ipv6.c | 3 ++- frontends/sfe/ecm_sfe_ipv6.c | 3 ++-
4 files changed, 8 insertions(+), 4 deletions(-) 4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/frontends/nss/ecm_nss_ipv4.c b/frontends/nss/ecm_nss_ipv4.c
index 719a747..558819a 100644
--- a/frontends/nss/ecm_nss_ipv4.c --- a/frontends/nss/ecm_nss_ipv4.c
+++ b/frontends/nss/ecm_nss_ipv4.c +++ b/frontends/nss/ecm_nss_ipv4.c
@@ -610,7 +610,8 @@ sync_conntrack: @@ -610,7 +610,8 @@ sync_conntrack:
@ -27,8 +25,6 @@ index 719a747..558819a 100644
} }
spin_lock_bh(&ct->lock); spin_lock_bh(&ct->lock);
diff --git a/frontends/nss/ecm_nss_ipv6.c b/frontends/nss/ecm_nss_ipv6.c
index 67ee364..51eb069 100644
--- a/frontends/nss/ecm_nss_ipv6.c --- a/frontends/nss/ecm_nss_ipv6.c
+++ b/frontends/nss/ecm_nss_ipv6.c +++ b/frontends/nss/ecm_nss_ipv6.c
@@ -587,7 +587,8 @@ sync_conntrack: @@ -587,7 +587,8 @@ sync_conntrack:
@ -41,11 +37,9 @@ index 67ee364..51eb069 100644
} }
spin_lock_bh(&ct->lock); spin_lock_bh(&ct->lock);
diff --git a/frontends/sfe/ecm_sfe_ipv4.c b/frontends/sfe/ecm_sfe_ipv4.c
index 3f30821..931af5d 100644
--- a/frontends/sfe/ecm_sfe_ipv4.c --- a/frontends/sfe/ecm_sfe_ipv4.c
+++ b/frontends/sfe/ecm_sfe_ipv4.c +++ b/frontends/sfe/ecm_sfe_ipv4.c
@@ -538,7 +538,8 @@ sync_conntrack: @@ -562,7 +562,8 @@ sync_conntrack:
#else #else
timeouts = nf_ct_timeout_lookup(ct); timeouts = nf_ct_timeout_lookup(ct);
if (!timeouts) { if (!timeouts) {
@ -55,11 +49,9 @@ index 3f30821..931af5d 100644
} }
spin_lock_bh(&ct->lock); spin_lock_bh(&ct->lock);
diff --git a/frontends/sfe/ecm_sfe_ipv6.c b/frontends/sfe/ecm_sfe_ipv6.c
index 54fdbf3..63d8888 100644
--- a/frontends/sfe/ecm_sfe_ipv6.c --- a/frontends/sfe/ecm_sfe_ipv6.c
+++ b/frontends/sfe/ecm_sfe_ipv6.c +++ b/frontends/sfe/ecm_sfe_ipv6.c
@@ -527,7 +527,8 @@ sync_conntrack: @@ -554,7 +554,8 @@ sync_conntrack:
#else #else
timeouts = nf_ct_timeout_lookup(ct); timeouts = nf_ct_timeout_lookup(ct);
if (!timeouts) { if (!timeouts) {

View File

@ -1,6 +1,6 @@
--- a/ecm_interface.c --- a/ecm_interface.c
+++ b/ecm_interface.c +++ b/ecm_interface.c
@@ -3553,7 +3553,7 @@ identifier_update: @@ -3612,7 +3612,7 @@ identifier_update:
if (skb && (skb->skb_iif == dev->ifindex)) { if (skb && (skb->skb_iif == dev->ifindex)) {
struct pppol2tp_common_addr info; struct pppol2tp_common_addr info;
@ -9,7 +9,7 @@
DEBUG_TRACE("%px: Net device: %px is MULTILINK PPP - Unknown to the ECM\n", feci, dev); DEBUG_TRACE("%px: Net device: %px is MULTILINK PPP - Unknown to the ECM\n", feci, dev);
type_info.unknown.os_specific_ident = dev_interface_num; type_info.unknown.os_specific_ident = dev_interface_num;
@@ -3563,7 +3563,7 @@ identifier_update: @@ -3622,7 +3622,7 @@ identifier_update:
ii = ecm_interface_unknown_interface_establish(&type_info.unknown, dev_name, dev_interface_num, ae_interface_num, dev_mtu); ii = ecm_interface_unknown_interface_establish(&type_info.unknown, dev_name, dev_interface_num, ae_interface_num, dev_mtu);
return ii; return ii;
} }

View File

@ -1,45 +0,0 @@
diff --git a/ecm_conntrack_notifier.c b/ecm_conntrack_notifier.c
index 50e8566..cf8bd33 100644
--- a/ecm_conntrack_notifier.c
+++ b/ecm_conntrack_notifier.c
@@ -433,6 +433,26 @@ int ecm_conntrack_notifier_init(struct dentry *dentry)
#else
nf_conntrack_register_notifier(&init_net, &ecm_conntrack_notifier);
#endif
+
+ /*
+ * Hold netns reference to keep the basic conntrack alive and
+ * track conntrack even when firewall stopped.
+ */
+ result = nf_ct_netns_get(&init_net, NFPROTO_IPV4);
+ if (result < 0) {
+ DEBUG_ERROR("Can't hold ipv4 netns.\n");
+ debugfs_remove_recursive(ecm_conntrack_notifier_dentry);
+ return result;
+ }
+#ifdef ECM_IPV6_ENABLE
+ result = nf_ct_netns_get(&init_net, NFPROTO_IPV6);
+ if (result < 0) {
+ DEBUG_ERROR("Can't hold ipv6 netns.\n");
+ nf_ct_netns_put(&init_net, NFPROTO_IPV4);
+ debugfs_remove_recursive(ecm_conntrack_notifier_dentry);
+ return result;
+ }
+#endif
#endif
return 0;
@@ -446,6 +466,13 @@ void ecm_conntrack_notifier_exit(void)
{
DEBUG_INFO("ECM Conntrack Notifier exit\n");
#ifdef CONFIG_NF_CONNTRACK_EVENTS
+ /*
+ * Release netns reference.
+ */
+ nf_ct_netns_put(&init_net, NFPROTO_IPV4);
+#ifdef ECM_IPV6_ENABLE
+ nf_ct_netns_put(&init_net, NFPROTO_IPV6);
+#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0))
nf_conntrack_unregister_notifier(&init_net, &ecm_conntrack_notifier);
#else

View File

@ -1,6 +1,6 @@
--- a/frontends/nss/ecm_nss_common.c --- a/frontends/nss/ecm_nss_common.c
+++ b/frontends/nss/ecm_nss_common.c +++ b/frontends/nss/ecm_nss_common.c
@@ -67,6 +67,7 @@ bool ecm_nss_ipv6_is_conn_limit_reached(void) @@ -67,6 +67,7 @@ bool ecm_nss_ipv6_is_conn_limit_reached(
return false; return false;
} }
@ -8,14 +8,14 @@
#endif #endif
/* /*
@@ -116,3 +117,4 @@ bool ecm_nss_ipv4_is_conn_limit_reached(void) @@ -116,3 +117,4 @@ bool ecm_nss_ipv4_is_conn_limit_reached(
return false; return false;
} }
+EXPORT_SYMBOL(ecm_nss_ipv4_is_conn_limit_reached); +EXPORT_SYMBOL(ecm_nss_ipv4_is_conn_limit_reached);
--- a/frontends/nss/ecm_nss_non_ported_ipv4.c --- a/frontends/nss/ecm_nss_non_ported_ipv4.c
+++ b/frontends/nss/ecm_nss_non_ported_ipv4.c +++ b/frontends/nss/ecm_nss_non_ported_ipv4.c
@@ -1824,6 +1824,7 @@ struct ecm_front_end_connection_instance *ecm_nss_non_ported_ipv4_connection_ins @@ -1824,6 +1824,7 @@ struct ecm_front_end_connection_instance
return feci; return feci;
} }
@ -36,7 +36,7 @@
struct ecm_db_connection_instance **nci); struct ecm_db_connection_instance **nci);
--- a/frontends/nss/ecm_nss_non_ported_ipv6.c --- a/frontends/nss/ecm_nss_non_ported_ipv6.c
+++ b/frontends/nss/ecm_nss_non_ported_ipv6.c +++ b/frontends/nss/ecm_nss_non_ported_ipv6.c
@@ -1650,6 +1650,7 @@ struct ecm_front_end_connection_instance *ecm_nss_non_ported_ipv6_connection_ins @@ -1650,6 +1650,7 @@ struct ecm_front_end_connection_instance
return feci; return feci;
} }
@ -57,7 +57,7 @@
struct ecm_db_connection_instance **nci); struct ecm_db_connection_instance **nci);
--- a/frontends/nss/ecm_nss_ported_ipv4.c --- a/frontends/nss/ecm_nss_ported_ipv4.c
+++ b/frontends/nss/ecm_nss_ported_ipv4.c +++ b/frontends/nss/ecm_nss_ported_ipv4.c
@@ -1884,6 +1884,7 @@ struct ecm_front_end_connection_instance *ecm_nss_ported_ipv4_connection_instanc @@ -1884,6 +1884,7 @@ struct ecm_front_end_connection_instance
return feci; return feci;
} }
@ -78,7 +78,7 @@
struct ecm_db_connection_instance **nci); struct ecm_db_connection_instance **nci);
--- a/frontends/nss/ecm_nss_ported_ipv6.c --- a/frontends/nss/ecm_nss_ported_ipv6.c
+++ b/frontends/nss/ecm_nss_ported_ipv6.c +++ b/frontends/nss/ecm_nss_ported_ipv6.c
@@ -1797,6 +1797,7 @@ struct ecm_front_end_connection_instance *ecm_nss_ported_ipv6_connection_instanc @@ -1797,6 +1797,7 @@ struct ecm_front_end_connection_instance
return feci; return feci;
} }

View File

@ -40,28 +40,22 @@ Signed-off-By: Francis Le Bourse <francis.lebourse@sfr.fr>
ecm_db/ecm_db.c | 4 ++-- ecm_db/ecm_db.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ecm_db/ecm_db.c b/ecm_db/ecm_db.c
index c6f408d..df04afd 100644
--- a/ecm_db/ecm_db.c --- a/ecm_db/ecm_db.c
+++ b/ecm_db/ecm_db.c +++ b/ecm_db/ecm_db.c
@@ -298,7 +298,7 @@ static int ecm_db_ipv6_route_table_update_event(struct notifier_block *nb, @@ -298,7 +298,7 @@ static int ecm_db_ipv6_route_table_updat
* Compute ECM connection's prefix destination address by masking it with the * Compute ECM connection's prefix destination address by masking it with the
* route config's destination address prefix length. * route config's destination address prefix length.
*/ */
- ipv6_addr_prefix(&prefix_addr, &ecm_in6, cfg->fc_dst_len); - ipv6_addr_prefix(&prefix_addr, &ecm_in6, cfg->fc_dst_len);
+ ipv6_addr_prefix(&prefix_addr, &ecm_in6, min(128, cfg->fc_dst_len)); + ipv6_addr_prefix(&prefix_addr, &ecm_in6, min(128, cfg->fc_dst_len));
DEBUG_TRACE("dest addr prefix: %pI6 prefix_len: %d ecm_in6: %pI6\n", &prefix_addr, cfg->fc_dst_len, &ecm_in6); DEBUG_TRACE("dest addr prefix: %pI6 prefix_len: %d ecm_in6: %pI6\n", &prefix_addr, cfg->fc_dst_len, &ecm_in6);
@@ -326,7 +326,7 @@ static int ecm_db_ipv6_route_table_update_event(struct notifier_block *nb, @@ -326,7 +326,7 @@ static int ecm_db_ipv6_route_table_updat
* Compute ECM connection's prefix source address by masking it with the * Compute ECM connection's prefix source address by masking it with the
* route config's destination address prefix length. * route config's destination address prefix length.
*/ */
- ipv6_addr_prefix(&prefix_addr, &ecm_in6, cfg->fc_dst_len); - ipv6_addr_prefix(&prefix_addr, &ecm_in6, cfg->fc_dst_len);
+ ipv6_addr_prefix(&prefix_addr, &ecm_in6, min(128, cfg->fc_dst_len)); + ipv6_addr_prefix(&prefix_addr, &ecm_in6, min(128, cfg->fc_dst_len));
DEBUG_TRACE("src addr prefix: %pI6 prefix_len: %d ecm_in6: %pI6\n", &prefix_addr, cfg->fc_dst_len, &ecm_in6);
--
2.1.4
DEBUG_TRACE("src addr prefix: %pI6 prefix_len: %d ecm_in6: %pI6\n", &prefix_addr, cfg->fc_dst_len, &ecm_in6);