diff --git a/qca/qca-nss-ecm/Makefile b/qca/qca-nss-ecm/Makefile index 2422ebe..aa849aa 100644 --- a/qca/qca-nss-ecm/Makefile +++ b/qca/qca-nss-ecm/Makefile @@ -1,14 +1,13 @@ include $(TOPDIR)/rules.mk 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_PROTO:=git -PKG_SOURCE_DATE:=2023-01-20 -PKG_SOURCE_VERSION:=db66c472e07990600bec9f01fb79e103540b0ca3 -PKG_MIRROR_HASH:=613fa9f8ff20984db5296763c35dea8a9ac0a5f507a0c125ea2814a6d4047a3a -PKG_RELEASE=1 +PKG_SOURCE_DATE:=2023-04-26 +PKG_SOURCE_VERSION:=f9b52bfceedca844c61e2e3df2078be8ee736853 +PKG_MIRROR_HASH:=16d6d10b9544be68758736dee1c0e5c616fb1cf406646fbdf3e7a8db3844e7b3 PKG_BUILD_PARALLEL:=1 PKG_FLAGS:=nonshared diff --git a/qca/qca-nss-ecm/patches/0001-treewide-componentize-the-module-even-more.patch b/qca/qca-nss-ecm/patches/0001-treewide-componentize-the-module-even-more.patch index 0d78a03..d905a7d 100644 --- a/qca/qca-nss-ecm/patches/0001-treewide-componentize-the-module-even-more.patch +++ b/qca/qca-nss-ecm/patches/0001-treewide-componentize-the-module-even-more.patch @@ -12,11 +12,9 @@ Signed-off-by: Ansuel Smith frontends/ecm_front_end_common.c | 7 ++++ 5 files changed, 72 insertions(+), 12 deletions(-) -diff --git a/Makefile b/Makefile -index a59cbce..f7e40f8 100644 --- a/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 # to enable support for PPPoE acceleration. # ############################################################################# @@ -26,29 +24,30 @@ index a59cbce..f7e40f8 100644 +endif ccflags-$(ECM_INTERFACE_PPPOE_ENABLE) += -DECM_INTERFACE_PPPOE_ENABLE -+# ############################################################################# + # ############################################################################# +# Define ECM_INTERFACE_L2TPV2_PPTP_ENABLE=y in order +# to enable support for l2tpv2 or PPTP detection. +# ############################################################################# +ccflags-$(ECM_INTERFACE_L2TPV2_PPTP_ENABLE) += -DECM_INTERFACE_L2TPV2_PPTP_ENABLE + - # ############################################################################# ++# ############################################################################# # Define ECM_INTERFACE_L2TPV2_ENABLE=y in order # 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 -+# ############################################################################# + # ############################################################################# +# Define ECM_INTERFACE_GRE_ENABLE=y in order +# to enable support for GRE detection. +# ############################################################################# +ccflags-$(ECM_INTERFACE_GRE_ENABLE) += -DECM_INTERFACE_GRE_ENABLE + - # ############################################################################# ++# ############################################################################# # Define ECM_INTERFACE_GRE_TAP_ENABLE=y in order # 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 # ############################################################################# @@ -59,7 +58,7 @@ index a59cbce..f7e40f8 100644 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. # ############################################################################# @@ -70,7 +69,7 @@ index a59cbce..f7e40f8 100644 ecm-$(ECM_CLASSIFIER_MARK_ENABLE) += ecm_classifier_mark.o 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. # ############################################################################# @@ -81,7 +80,7 @@ index a59cbce..f7e40f8 100644 ecm-$(ECM_CLASSIFIER_DSCP_ENABLE) += ecm_classifier_dscp.o ccflags-$(ECM_CLASSIFIER_DSCP_ENABLE) += -DECM_CLASSIFIER_DSCP_ENABLE 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 # 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 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 # ############################################################################# @@ -132,7 +131,7 @@ index a59cbce..f7e40f8 100644 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 # on a per TYPE of classifier basis. # ############################################################################# @@ -153,7 +152,7 @@ index a59cbce..f7e40f8 100644 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_INTERFACE_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_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 +++ 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) { @@ -175,7 +172,7 @@ index 6d0bff4..77e5f3f 100644 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) { @@ -185,7 +182,7 @@ index 6d0bff4..77e5f3f 100644 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); @@ -193,7 +190,7 @@ index 6d0bff4..77e5f3f 100644 /* * ecm_db_connection_defunct_by_classifier() * 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); } } @@ -201,7 +198,7 @@ index 6d0bff4..77e5f3f 100644 /* * 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); @@ -209,7 +206,7 @@ index 6d0bff4..77e5f3f 100644 /* * ecm_db_connection_mapping_get_and_ref_next() * 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; } 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() -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 +++ 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) { +#ifdef ECM_DB_XREF_ENABLE #if (DEBUG_LEVEL >= 1) int dir; -+#endif #endif ++#endif 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, ecm_db_node_final_callback_t final, void *arg) { +#ifdef ECM_DB_XREF_ENABLE #if (DEBUG_LEVEL >= 1) int dir; -+#endif #endif ++#endif ecm_db_node_hash_t hash_index; struct ecm_db_listener_instance *li; -diff --git a/ecm_interface.c b/ecm_interface.c -index d7ca169..2ca02bc 100644 + --- a/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) { @@ -255,7 +250,7 @@ index d7ca169..2ca02bc 100644 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); @@ -263,7 +258,7 @@ index d7ca169..2ca02bc 100644 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) { @@ -271,7 +266,7 @@ index d7ca169..2ca02bc 100644 uint32_t flag = 0; 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); @@ -279,7 +274,7 @@ index d7ca169..2ca02bc 100644 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) { @@ -287,7 +282,7 @@ index d7ca169..2ca02bc 100644 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); @@ -295,7 +290,7 @@ index d7ca169..2ca02bc 100644 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; } @@ -303,7 +298,7 @@ index d7ca169..2ca02bc 100644 for (dir = 0; dir < ECM_DB_OBJ_DIR_MAX; dir++) { /* * 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; } } @@ -311,19 +306,17 @@ index d7ca169..2ca02bc 100644 #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 +++ 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, - int ip_version, uint16_t offset) + int ip_version, uint16_t offset) { +#ifdef ECM_INTERFACE_GRE_ENABLE struct net_device *dev; 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 */ @@ -336,7 +329,7 @@ index 3b33c41..e21ca24 100644 /* * 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); return true; diff --git a/qca/qca-nss-ecm/patches/0002-treewide-rework-ipv6_dev_find_and_hold.patch b/qca/qca-nss-ecm/patches/0002-treewide-rework-ipv6_dev_find_and_hold.patch index 10bf34a..d53a4c0 100644 --- a/qca/qca-nss-ecm/patches/0002-treewide-rework-ipv6_dev_find_and_hold.patch +++ b/qca/qca-nss-ecm/patches/0002-treewide-rework-ipv6_dev_find_and_hold.patch @@ -1,6 +1,6 @@ --- a/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; ECM_IP_ADDR_TO_NIN6_ADDR(addr6, addr); @@ -9,7 +9,7 @@ return dev; } #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. */ ECM_IP_ADDR_TO_NIN6_ADDR(daddr, addr); @@ -18,11 +18,9 @@ if (local_dev) { DEBUG_TRACE("%pi6 is a local address\n", &daddr); 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 +++ b/frontends/ecm_front_end_common.c -@@ -101,6 +101,10 @@ +@@ -102,6 +102,10 @@ #endif #endif @@ -33,7 +31,7 @@ index 8142be1..927e548 100644 /* * 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 { #ifdef ECM_IPV6_ENABLE @@ -42,7 +40,7 @@ index 8142be1..927e548 100644 if (dev) { /* * 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; } @@ -50,4 +48,4 @@ index 8142be1..927e548 100644 + dev = ipv6_dev_find_and_hold(&init_net, &(tuple->dst.u3.in6), 1); if (dev) { /* - * Destination IP address is local \ No newline at end of file + * Destination IP address is local diff --git a/qca/qca-nss-ecm/patches/0003-treewide-rework-debugfs-api-to-new-implementation.patch b/qca/qca-nss-ecm/patches/0003-treewide-rework-debugfs-api-to-new-implementation.patch index 885a1d6..e3dd608 100644 --- a/qca/qca-nss-ecm/patches/0003-treewide-rework-debugfs-api-to-new-implementation.patch +++ b/qca/qca-nss-ecm/patches/0003-treewide-rework-debugfs-api-to-new-implementation.patch @@ -38,11 +38,9 @@ Signed-off-by: Ansuel Smith frontends/sfe/ecm_sfe_ported_ipv6.c | 8 +--- 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 +++ 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; } @@ -75,11 +73,9 @@ index 39315a9..1dad277 100644 return 0; } -diff --git a/ecm_classifier_dscp.c b/ecm_classifier_dscp.c -index 4f0caeb..6c9401e 100644 --- a/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; } @@ -94,11 +90,9 @@ index 4f0caeb..6c9401e 100644 return 0; } -diff --git a/ecm_classifier_emesh.c b/ecm_classifier_emesh.c -index 72cf2e1..f8aecec 100644 --- a/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; } @@ -138,13 +132,11 @@ index 72cf2e1..f8aecec 100644 + debugfs_create_u32("cake_enabled", S_IRUGO | S_IWUSR, ecm_classifier_emesh_sawf_dentry, + (u32 *)&ecm_classifier_sawf_cake_enabled); - /* - * Register for service prioritization notification update. -diff --git a/ecm_classifier_hyfi.c b/ecm_classifier_hyfi.c -index a57a13e..fad7209 100644 + if (!debugfs_create_file("udp_ipsec_port", S_IRUGO | S_IWUSR, ecm_classifier_emesh_sawf_dentry, + NULL, &ecm_classifier_sawf_emesh_udp_ipsec_port_fops)) { --- a/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; } @@ -158,11 +150,9 @@ index a57a13e..fad7209 100644 if (!debugfs_create_file("cmd", S_IWUSR, ecm_classifier_hyfi_dentry, 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 +++ 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; } @@ -177,11 +167,9 @@ index d054d8e..65dd1e1 100644 return 0; } -diff --git a/ecm_classifier_ovs.c b/ecm_classifier_ovs.c -index b9d98d4..16a2ea9 100644 --- a/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; } @@ -196,11 +184,9 @@ index b9d98d4..16a2ea9 100644 return 0; } -diff --git a/ecm_classifier_pcc.c b/ecm_classifier_pcc.c -index 6c6fcd4..af13357 100644 --- a/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; } @@ -215,11 +201,9 @@ index 6c6fcd4..af13357 100644 return 0; } -diff --git a/ecm_conntrack_notifier.c b/ecm_conntrack_notifier.c -index f4f2c60..7b20132 100644 --- a/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; } @@ -234,11 +218,9 @@ index f4f2c60..7b20132 100644 #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 +++ 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) { @@ -252,8 +234,6 @@ index 77e5f3f..4bd47c3 100644 if (!debugfs_create_file("connection_count_simple", S_IRUGO, dentry, 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 +++ b/ecm_db/ecm_db_host.c @@ -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); 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 +++ b/ecm_db/ecm_db_iface.c @@ -3706,11 +3706,8 @@ EXPORT_SYMBOL(ecm_db_iface_alloc); @@ -288,8 +266,6 @@ index 53c254c..f9ad269 100644 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 +++ b/ecm_db/ecm_db_mapping.c @@ -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); 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 +++ b/ecm_db/ecm_db_node.c @@ -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); if (!ecm_db_node_table) { -diff --git a/ecm_state.c b/ecm_state.c -index b4348a8..2424b58 100644 --- a/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; } @@ -350,11 +322,9 @@ index b4348a8..2424b58 100644 /* * 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 +++ 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; } @@ -369,8 +339,6 @@ index ca7fb45..f7e75e7 100644 /* * 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 +++ b/frontends/ecm_front_end_ipv4.c @@ -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); } -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 +++ b/frontends/ecm_front_end_ipv6.c @@ -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); } -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 +++ 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; } @@ -463,7 +427,7 @@ index 0fee3e8..5b0ce29 100644 if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_nss_ipv4_dentry, 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; } @@ -477,11 +441,9 @@ index 0fee3e8..5b0ce29 100644 #ifdef ECM_NON_PORTED_SUPPORT_ENABLE 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 +++ 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; } @@ -535,7 +497,7 @@ index ee6b434..8d13f68 100644 if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_nss_ipv6_dentry, 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; } @@ -549,8 +511,6 @@ index ee6b434..8d13f68 100644 #ifdef ECM_NON_PORTED_SUPPORT_ENABLE 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 +++ b/frontends/nss/ecm_nss_multicast_ipv4.c @@ -2619,14 +2619,8 @@ find_next_tuple: @@ -569,7 +529,7 @@ index a3dcb79..c9e92de 100644 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) { @@ -585,7 +545,7 @@ index a3dcb79..c9e92de 100644 * Register multicast update callback to MCS snooper --- a/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) { @@ -601,7 +561,7 @@ index a3dcb79..c9e92de 100644 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) { @@ -615,11 +575,9 @@ index a3dcb79..c9e92de 100644 /* * 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 +++ 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) { @@ -633,11 +591,9 @@ index ec4f365..77de341 100644 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 +++ 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) { @@ -651,11 +607,9 @@ index 13e0cc5..91ad7aa 100644 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 +++ 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) { @@ -669,24 +623,22 @@ index 6375b6b..ea997e3 100644 - DEBUG_ERROR("Failed to create ecm nss ipv4 udp_accelerated_count file in debugfs\n"); - 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, - &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"); - debugfs_remove(udp_dentry); - 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; } -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 +++ 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) { @@ -712,11 +664,9 @@ index 1be8a58..451a557 100644 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 +++ 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 @@ -779,11 +729,9 @@ index 2076bad..3f30821 100644 if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_sfe_ipv4_dentry, 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 +++ 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 @@ -846,11 +794,9 @@ index e8981ee..54fdbf3 100644 if (!debugfs_create_file("accel_limit_mode", S_IRUGO | S_IWUSR, ecm_sfe_ipv6_dentry, 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 +++ 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) { @@ -864,11 +810,9 @@ index d7cad2a..696bd13 100644 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 +++ 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) { @@ -882,11 +826,9 @@ index a9fb637..fe06de4 100644 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 +++ 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; } @@ -901,11 +843,9 @@ index fc2c4ba..53f5b07 100644 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 +++ 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; } diff --git a/qca/qca-nss-ecm/patches/0004-qca-nss-ecm-resolve-the-cpu-high-load-regarding-ecm.patch b/qca/qca-nss-ecm/patches/0004-qca-nss-ecm-resolve-the-cpu-high-load-regarding-ecm.patch index 44b8174..0047693 100644 --- a/qca/qca-nss-ecm/patches/0004-qca-nss-ecm-resolve-the-cpu-high-load-regarding-ecm.patch +++ b/qca/qca-nss-ecm/patches/0004-qca-nss-ecm-resolve-the-cpu-high-load-regarding-ecm.patch @@ -13,11 +13,9 @@ Signed-off-by: Dirk Buchwalder buchwalder@posteo.de frontends/nss/ecm_nss_ipv6.c | 4 ++-- 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 +++ 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); @@ -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 -@@ -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)) { @@ -35,11 +33,9 @@ index 5b0ce29..719a747 100644 } 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; -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 +++ 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); @@ -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 -@@ -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)) { diff --git a/qca/qca-nss-ecm/patches/0005-ecm_interface-switch-to-kernel_recvmsg-api.patch b/qca/qca-nss-ecm/patches/0005-ecm_interface-switch-to-kernel_recvmsg-api.patch index eab1fb1..a3e07aa 100644 --- a/qca/qca-nss-ecm/patches/0005-ecm_interface-switch-to-kernel_recvmsg-api.patch +++ b/qca/qca-nss-ecm/patches/0005-ecm_interface-switch-to-kernel_recvmsg-api.patch @@ -11,11 +11,9 @@ Signed-off-by: Ansuel Smith ecm_interface.c | 9 +++++++++ 1 file changed, 9 insertions(+) -diff --git a/ecm_interface.c b/ecm_interface.c -index b461456..6be872a 100644 --- a/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) { struct msghdr msg; @@ -30,7 +28,7 @@ index b461456..6be872a 100644 iov.iov_base = buf; 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_control = NULL; msg.msg_controllen = 0; @@ -40,7 +38,7 @@ index b461456..6be872a 100644 set_fs(KERNEL_DS); iov_iter_init(&msg.msg_iter, READ, &iov, 1, len); #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); return size; diff --git a/qca/qca-nss-ecm/patches/0006-treewide-rework-notifier-changes-for-5.15.patch b/qca/qca-nss-ecm/patches/0006-treewide-rework-notifier-changes-for-5.15.patch index 4547c35..e2ff5ee 100644 --- a/qca/qca-nss-ecm/patches/0006-treewide-rework-notifier-changes-for-5.15.patch +++ b/qca/qca-nss-ecm/patches/0006-treewide-rework-notifier-changes-for-5.15.patch @@ -7,8 +7,6 @@ Subject: [PATCH] treewide: rework notifier changes for 5.15 ecm_conntrack_notifier.c | 35 +++++++++++++++-------------------- 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 +++ b/ecm_conntrack_notifier.c @@ -332,15 +332,8 @@ EXPORT_SYMBOL(ecm_conntrack_ipv4_event); @@ -28,7 +26,7 @@ index 5f802b7..50e8566 100644 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; } @@ -57,7 +55,7 @@ index 5f802b7..50e8566 100644 #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 */ @@ -72,13 +70,13 @@ index 5f802b7..50e8566 100644 +#else + nf_conntrack_register_notifier(&init_net, &ecm_conntrack_notifier); +#endif - #endif - return 0; -@@ -455,7 +446,11 @@ void ecm_conntrack_notifier_exit(void) - { - DEBUG_INFO("ECM Conntrack Notifier exit\n"); - #ifdef CONFIG_NF_CONNTRACK_EVENTS + /* + * Hold netns reference to keep the basic conntrack alive and +@@ -483,7 +474,11 @@ void ecm_conntrack_notifier_exit(void) + #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 diff --git a/qca/qca-nss-ecm/patches/0007-frontends-drop-use-of-static-be_liberal-and-no_windo.patch b/qca/qca-nss-ecm/patches/0007-frontends-drop-use-of-static-be_liberal-and-no_windo.patch index d62626d..3133b8a 100644 --- a/qca/qca-nss-ecm/patches/0007-frontends-drop-use-of-static-be_liberal-and-no_windo.patch +++ b/qca/qca-nss-ecm/patches/0007-frontends-drop-use-of-static-be_liberal-and-no_windo.patch @@ -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 ++++++++-------------- 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 +++ b/frontends/nss/ecm_nss_ported_ipv4.c -@@ -99,14 +99,6 @@ - static int ecm_nss_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0}; +@@ -100,14 +100,6 @@ static int ecm_nss_ported_ipv4_accelerat /* Array of Number of TCP and UDP connections currently offloaded */ --/* + /* - * Expose what should be a static flag in the TCP connection tracker. - */ -#ifdef ECM_OPENWRT_SUPPORT @@ -26,10 +23,11 @@ index 6375b6b..ed9c10b 100644 -#endif -extern int nf_ct_tcp_be_liberal; - - /* +-/* * ecm_nss_ported_ipv4_connection_callback() * 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]; ecm_db_direction_t ecm_dir; ecm_front_end_acceleration_mode_t result_mode; @@ -40,9 +38,9 @@ index 6375b6b..ed9c10b 100644 + 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_end = ct->proto.tcp.seen[return_dir].td_end; 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)) { 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 +++ b/frontends/nss/ecm_nss_ported_ipv6.c -@@ -100,14 +100,6 @@ - static int ecm_nss_ported_ipv6_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0}; +@@ -101,14 +101,6 @@ static int ecm_nss_ported_ipv6_accelerat /* Array of Number of TCP and UDP connections currently offloaded */ --/* + /* - * Expose what should be a static flag in the TCP connection tracker. - */ -#ifdef ECM_OPENWRT_SUPPORT @@ -73,10 +68,11 @@ index 1be8a58..3062c12 100644 -#endif -extern int nf_ct_tcp_be_liberal; - - /* +-/* * ecm_nss_ported_ipv6_connection_callback() * 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 dest_ip; ecm_front_end_acceleration_mode_t result_mode; @@ -87,9 +83,9 @@ index 1be8a58..3062c12 100644 + 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_end = ct->proto.tcp.seen[return_dir].td_end; 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[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { 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 +++ b/frontends/sfe/ecm_sfe_ported_ipv4.c -@@ -92,14 +92,6 @@ - static int ecm_sfe_ported_ipv4_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0}; +@@ -93,14 +93,6 @@ static int ecm_sfe_ported_ipv4_accelerat /* Array of Number of TCP and UDP connections currently offloaded */ --/* + /* - * Expose what should be a static flag in the TCP connection tracker. - */ -#ifdef ECM_OPENWRT_SUPPORT @@ -118,16 +111,17 @@ index 6e375f8..e5ae593 100644 -#endif -extern int nf_ct_tcp_be_liberal; - - /* +-/* * ecm_sfe_ported_ipv4_connection_callback() * 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]; ecm_db_direction_t ecm_dir; ecm_front_end_acceleration_mode_t result_mode; + struct nf_tcp_net *tn; - struct ecm_classifier_instance *aci; - struct ecm_classifier_rule_create ecrc; + struct ecm_classifier_instance *aci; + 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); ecm_sfe_common_l2_accel_check_callback_t l2_accel_check; @@ -136,10 +130,10 @@ index 6e375f8..e5ae593 100644 + 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_end = ct->proto.tcp.seen[return_dir].td_end; 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[return_dir].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { 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 +++ b/frontends/sfe/ecm_sfe_ported_ipv6.c -@@ -92,14 +92,6 @@ - static int ecm_sfe_ported_ipv6_accelerated_count[ECM_FRONT_END_PORTED_PROTO_MAX] = {0}; +@@ -93,14 +93,6 @@ static int ecm_sfe_ported_ipv6_accelerat /* Array of Number of TCP and UDP connections currently offloaded */ --/* + /* - * Expose what should be a static flag in the TCP connection tracker. - */ -#ifdef ECM_OPENWRT_SUPPORT @@ -168,12 +159,13 @@ index f1885aa..4a6fdbd 100644 -#endif -extern int nf_ct_tcp_be_liberal; - - /* +-/* * ecm_sfe_ported_ipv6_connection_callback() * 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; - struct ecm_classifier_rule_create ecrc; + */ +@@ -345,9 +337,15 @@ static void ecm_sfe_ported_ipv6_connecti + struct ecm_classifier_instance *aci; + struct ecm_classifier_rule_create ecrc; 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); + struct nf_tcp_net *tn; @@ -185,10 +177,10 @@ index f1885aa..4a6fdbd 100644 + 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_end = ct->proto.tcp.seen[return_dir].td_end; nircm->tcp_rule.return_max_end = ct->proto.tcp.seen[return_dir].td_maxend; diff --git a/qca/qca-nss-ecm/patches/0008-ecm_tracker_datagram-drop-static-for-EXPORT_SYMBOL.patch b/qca/qca-nss-ecm/patches/0008-ecm_tracker_datagram-drop-static-for-EXPORT_SYMBOL.patch index 1bcaa12..aa95ce1 100644 --- a/qca/qca-nss-ecm/patches/0008-ecm_tracker_datagram-drop-static-for-EXPORT_SYMBOL.patch +++ b/qca/qca-nss-ecm/patches/0008-ecm_tracker_datagram-drop-static-for-EXPORT_SYMBOL.patch @@ -10,11 +10,9 @@ Signed-off-by: Ansuel Smith ecm_tracker_datagram.c | 8 ++++---- 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 +++ 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() * Discard all tracked data */ @@ -23,7 +21,7 @@ index 9c04d73..ae14146 100644 { int32_t src_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() * 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) { 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() * 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; 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() * 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 sk_buff *skbc; --- -2.34.1 - diff --git a/qca/qca-nss-ecm/patches/0009-frontends-drop-udp_get_timeouts-and-use-standard-ups.patch b/qca/qca-nss-ecm/patches/0009-frontends-drop-udp_get_timeouts-and-use-standard-ups.patch index 1f17f78..ad5ec6a 100644 --- a/qca/qca-nss-ecm/patches/0009-frontends-drop-udp_get_timeouts-and-use-standard-ups.patch +++ b/qca/qca-nss-ecm/patches/0009-frontends-drop-udp_get_timeouts-and-use-standard-ups.patch @@ -13,8 +13,6 @@ instead or relying on a downstream api not present upstream. frontends/sfe/ecm_sfe_ipv6.c | 3 ++- 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 +++ b/frontends/nss/ecm_nss_ipv4.c @@ -610,7 +610,8 @@ sync_conntrack: @@ -27,8 +25,6 @@ index 719a747..558819a 100644 } 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 +++ b/frontends/nss/ecm_nss_ipv6.c @@ -587,7 +587,8 @@ sync_conntrack: @@ -41,11 +37,9 @@ index 67ee364..51eb069 100644 } 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 +++ b/frontends/sfe/ecm_sfe_ipv4.c -@@ -538,7 +538,8 @@ sync_conntrack: +@@ -562,7 +562,8 @@ sync_conntrack: #else timeouts = nf_ct_timeout_lookup(ct); if (!timeouts) { @@ -55,11 +49,9 @@ index 3f30821..931af5d 100644 } 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 +++ b/frontends/sfe/ecm_sfe_ipv6.c -@@ -527,7 +527,8 @@ sync_conntrack: +@@ -554,7 +554,8 @@ sync_conntrack: #else timeouts = nf_ct_timeout_lookup(ct); if (!timeouts) { diff --git a/qca/qca-nss-ecm/patches/0010-ecm_interface-fix-ppp-generic-function-calls-for-5.15.patch b/qca/qca-nss-ecm/patches/0010-ecm_interface-fix-ppp-generic-function-calls-for-5.15.patch index 99710d7..cc36b25 100644 --- a/qca/qca-nss-ecm/patches/0010-ecm_interface-fix-ppp-generic-function-calls-for-5.15.patch +++ b/qca/qca-nss-ecm/patches/0010-ecm_interface-fix-ppp-generic-function-calls-for-5.15.patch @@ -1,6 +1,6 @@ --- a/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)) { 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); 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); return ii; } diff --git a/qca/qca-nss-ecm/patches/100-qca-nss-ecm-Fix-conntrack-created-firewall-stopped.patch b/qca/qca-nss-ecm/patches/100-qca-nss-ecm-Fix-conntrack-created-firewall-stopped.patch deleted file mode 100644 index d92790c..0000000 --- a/qca/qca-nss-ecm/patches/100-qca-nss-ecm-Fix-conntrack-created-firewall-stopped.patch +++ /dev/null @@ -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 diff --git a/qca/qca-nss-ecm/patches/900-treewide-export-ipv4-and-ipv6-symbols.patch b/qca/qca-nss-ecm/patches/900-treewide-export-ipv4-and-ipv6-symbols.patch index 29d43ad..599156f 100644 --- a/qca/qca-nss-ecm/patches/900-treewide-export-ipv4-and-ipv6-symbols.patch +++ b/qca/qca-nss-ecm/patches/900-treewide-export-ipv4-and-ipv6-symbols.patch @@ -1,6 +1,6 @@ --- a/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; } @@ -8,14 +8,14 @@ #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; } +EXPORT_SYMBOL(ecm_nss_ipv4_is_conn_limit_reached); --- a/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; } @@ -36,7 +36,7 @@ struct ecm_db_connection_instance **nci); --- a/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; } @@ -57,7 +57,7 @@ struct ecm_db_connection_instance **nci); --- a/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; } @@ -78,7 +78,7 @@ struct ecm_db_connection_instance **nci); --- a/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; } diff --git a/qca/qca-nss-ecm/patches/901-qca-nss-ecm-fix-a-memcpy-overflow-in-ecm_db.patch b/qca/qca-nss-ecm/patches/901-qca-nss-ecm-fix-a-memcpy-overflow-in-ecm_db.patch index 491cbed..529c792 100644 --- a/qca/qca-nss-ecm/patches/901-qca-nss-ecm-fix-a-memcpy-overflow-in-ecm_db.patch +++ b/qca/qca-nss-ecm/patches/901-qca-nss-ecm-fix-a-memcpy-overflow-in-ecm_db.patch @@ -40,28 +40,22 @@ Signed-off-By: Francis Le Bourse ecm_db/ecm_db.c | 4 ++-- 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 +++ 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 * 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, 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); - -@@ -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 * 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, 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);