From 15530431f3ce3273b3cfc2da356d7fb71ed48020 Mon Sep 17 00:00:00 2001 From: Ansuel Smith Date: Sun, 8 May 2022 16:16:34 +0200 Subject: [PATCH 08/12] frontends: drop use of static be_liberal and no_window_check Implementation changed, check these values indirectly instead of relying on an extern EXPORT_SYMBOL. Signed-off-by: Ansuel Smith --- frontends/nss/ecm_nss_ported_ipv4.c | 14 ++++---------- frontends/nss/ecm_nss_ported_ipv6.c | 14 ++++---------- frontends/sfe/ecm_sfe_ported_ipv4.c | 6 ++++-- frontends/sfe/ecm_sfe_ported_ipv6.c | 6 ++++-- 4 files changed, 16 insertions(+), 24 deletions(-) --- a/frontends/nss/ecm_nss_ported_ipv4.c +++ b/frontends/nss/ecm_nss_ported_ipv4.c @@ -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 -extern int nf_ct_tcp_no_window_check; -#endif -extern int nf_ct_tcp_be_liberal; - -/* * ecm_nss_ported_ipv4_connection_callback() * Callback for handling create ack/nack calls. */ @@ -343,6 +335,8 @@ 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; + struct net *net = nf_ct_net(ct); + struct nf_tcp_net *tn = nf_tcp_pernet(net); DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); @@ -1213,9 +1207,9 @@ static void ecm_nss_ported_ipv4_connecti 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; #ifdef ECM_OPENWRT_SUPPORT - if (nf_ct_tcp_be_liberal || nf_ct_tcp_no_window_check + if (tn->tcp_be_liberal || tn->tcp_no_window_check #else - if (nf_ct_tcp_be_liberal + if (tn->tcp_be_liberal #endif || (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)) { --- a/frontends/nss/ecm_nss_ported_ipv6.c +++ b/frontends/nss/ecm_nss_ported_ipv6.c @@ -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 -extern int nf_ct_tcp_no_window_check; -#endif -extern int nf_ct_tcp_be_liberal; - -/* * ecm_nss_ported_ipv6_connection_callback() * Callback for handling create ack/nack calls. */ @@ -348,6 +340,8 @@ 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; + struct net *net = nf_ct_net(ct); + struct nf_tcp_net *tn = nf_tcp_pernet(net); DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); @@ -1139,9 +1133,9 @@ static void ecm_nss_ported_ipv6_connecti 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; #ifdef ECM_OPENWRT_SUPPORT - if (nf_ct_tcp_be_liberal || nf_ct_tcp_no_window_check + if (tn->tcp_be_liberal || tn->tcp_no_window_check #else - if (nf_ct_tcp_be_liberal + if (tn->tcp_be_liberal #endif || (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)) { --- a/frontends/sfe/ecm_sfe_ported_ipv4.c +++ b/frontends/sfe/ecm_sfe_ported_ipv4.c @@ -339,6 +339,8 @@ 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 net *net = nf_ct_net(ct); + struct nf_tcp_net *tn = nf_tcp_pernet(net); 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); @@ -1310,9 +1312,9 @@ static void ecm_sfe_ported_ipv4_connecti 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; #ifdef ECM_OPENWRT_SUPPORT - if (nf_ct_tcp_be_liberal || nf_ct_tcp_no_window_check + if (tn->tcp_be_liberal || tn->tcp_no_window_check) #else - if (nf_ct_tcp_be_liberal + if (tn->tcp_be_liberal) #endif || (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)) { --- a/frontends/sfe/ecm_sfe_ported_ipv6.c +++ b/frontends/sfe/ecm_sfe_ported_ipv6.c @@ -345,7 +345,9 @@ 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 net *net = nf_ct_net(ct); + struct nf_tcp_net *tn = nf_tcp_pernet(net); + 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; DEBUG_CHECK_MAGIC(feci, ECM_FRONT_END_CONNECTION_INSTANCE_MAGIC, "%px: magic failed", feci); @@ -1272,9 +1274,9 @@ static void ecm_sfe_ported_ipv6_connecti 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; #ifdef ECM_OPENWRT_SUPPORT - if (nf_ct_tcp_be_liberal || nf_ct_tcp_no_window_check + if (tn->tcp_be_liberal || tn->tcp_no_window_check) #else - if (nf_ct_tcp_be_liberal + if (tn->tcp_be_liberal) #endif || (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)) {