From 374c1f10032cada48499b964232b713fe6314c63 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 5 Aug 2026 13:13:17 +1000 Subject: [PATCH 1/5] firewall: add _PLATFORM_GENERICARM_ for generic Arm reference platform This platform is similar to other RDK-B OSS reference platforms, in using a normal Linux data path without vendor flow acceleration. Signed-off-by: Mathew McBride (Original proposal adding _GENERIC_LINUX_DATA_PATH_) Co-developed-by: mahanteshchitt (Revert to adding a seperate _PLATFORM_GENERICARM_ as proposed at https://github.com/rdkcentral/utopia/pull/312) --- source/firewall/firewall.c | 67 ++++++++++++++++----------------- source/firewall/firewall_ipv6.c | 4 +- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 612d44f6..8ae1a9f6 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -3265,7 +3265,7 @@ static int prepare_globals_from_configuration(void) fprintf(fp, "-A xlog_accept_wan2lan -j ACCEPT\n"); fprintf(fp, "-A xlog_accept_wan2self -j ACCEPT\n"); -#if !(defined INTEL_PUMA7) && !(defined _COSA_BCM_ARM_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_COSA_QCA_ARM_) +#if !(defined INTEL_PUMA7) && !(defined _COSA_BCM_ARM_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_COSA_QCA_ARM_) && !defined(_PLATFORM_GENERICARM_) fprintf(fp, "-A xlog_drop_wan2lan -j DROP\n"); #endif fprintf(fp, "-A xlog_drop_wan2self -j DROP\n"); @@ -5537,7 +5537,7 @@ static int do_wan_nat_lan_clients(FILE *fp) } #endif -#if (defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_)) && !defined (_HUB4_PRODUCT_REQ_) +#if (defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_)) && !defined (_HUB4_PRODUCT_REQ_) if(bEthWANEnable || isBridgeMode) // Check is required for TCHXB6 TCHXB7 CBR and not for HUB4 #else if(bEthWANEnable) @@ -6172,7 +6172,7 @@ int do_wan2self_attack(FILE *fp,char* wan_ip) { fprintf(fp, "-A SmurfAttack -p icmp -m icmp --icmp-type address-mask-request %s -j ULOG --ulog-prefix \"DoS Attack - Smurf Attack\" --ulog-cprange 50\n", logRateLimit); } -#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(fp, "-A SmurfAttack -p icmp -m icmp --icmp-type address-mask-request %s -j LOG --log-prefix \"DoS Attack - Smurf Attack\"\n", logRateLimit); #elif defined(_COSA_BCM_ARM_) && (defined(_CBR_PRODUCT_REQ_) || defined(_XB6_PRODUCT_REQ_)) fprintf(fp, "-A SmurfAttack -p icmp -m icmp --icmp-type address-mask-request %s -j NFLOG --nflog-group 2 --nflog-prefix \"DoS Attack - Smurf Attack\" --nflog-size 50\n", logRateLimit); @@ -6192,7 +6192,7 @@ int do_wan2self_attack(FILE *fp,char* wan_ip) { fprintf(fp, "-A ICMPSmurfAttack -p icmp -m icmp --icmp-type timestamp-request %s -j ULOG --ulog-prefix \"DoS Attack - Smurf Attack\" --ulog-cprange 50\n", logRateLimit); } -#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(fp, "-A ICMPSmurfAttack -p icmp -m icmp --icmp-type timestamp-request %s -j LOG --log-prefix \"DoS Attack - Smurf Attack\"\n", logRateLimit); #elif defined(_COSA_BCM_ARM_) && (defined(_CBR_PRODUCT_REQ_) || defined(_XB6_PRODUCT_REQ_)) fprintf(fp, "-A ICMPSmurfAttack -p icmp -m icmp --icmp-type timestamp-request %s -j NFLOG --nflog-group 2 --nflog-prefix \"DoS Attack - Smurf Attack\" --nflog-size 50\n", logRateLimit); @@ -6214,7 +6214,7 @@ int do_wan2self_attack(FILE *fp,char* wan_ip) { fprintf(fp, "-A ICMPFlooding -p icmp %s -j ULOG --ulog-prefix \"DoS Attack - ICMP Flooding\" --ulog-cprange 50\n", logRateLimit); } -#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(fp, "-A ICMPFlooding -p icmp %s -j LOG --log-prefix \"DoS Attack - ICMP Flooding\"\n", logRateLimit); #elif defined(_COSA_BCM_ARM_) && (defined(_CBR_PRODUCT_REQ_) || defined(_XB6_PRODUCT_REQ_)) fprintf(fp, "-A ICMPFlooding -p icmp %s -j NFLOG --nflog-group 2 --nflog-prefix \"DoS Attack - ICMP Flooding\" --nflog-size 50\n", logRateLimit); @@ -6236,7 +6236,7 @@ int do_wan2self_attack(FILE *fp,char* wan_ip) { fprintf(fp, "-A TCPSYNFlooding -p tcp --syn %s -j ULOG --ulog-prefix \"DoS Attack - TCP SYN Flooding\" --ulog-cprange 50\n", logRateLimit); } -#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(fp, "-A TCPSYNFlooding -p tcp --syn %s -j LOG --log-prefix \"DoS Attack - TCP SYN Flooding\"\n", logRateLimit); #elif defined(_COSA_BCM_ARM_) && (defined(_CBR_PRODUCT_REQ_) || defined(_XB6_PRODUCT_REQ_)) fprintf(fp, "-A TCPSYNFlooding -p tcp --syn %s -j NFLOG --nflog-group 2 --nflog-prefix \"DoS Attack - TCP SYN Flooding\" --nflog-size 50\n", logRateLimit); @@ -6260,7 +6260,7 @@ int do_wan2self_attack(FILE *fp,char* wan_ip) { fprintf(fp, "-A LANDAttack -s %s %s -j ULOG --ulog-prefix \"DoS Attack - LAND Attack\" --ulog-cprange 50\n", wan_ip, logRateLimit); } -#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#elif defined(_PLATFORM_RASPBERRYPI_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(fp, "-A LANDAttack -s %s %s -j LOG --log-prefix \"DoS Attack - LAND Attack\"\n", wan_ip, logRateLimit); #elif defined(_COSA_BCM_ARM_) && (defined(_CBR_PRODUCT_REQ_) || defined(_XB6_PRODUCT_REQ_)) fprintf(fp, "-A LANDAttack -s %s %s -j NFLOG --nflog-group 2 --nflog-prefix \"DoS Attack - LAND Attack\" --nflog-size 50\n", wan_ip, logRateLimit); @@ -6621,7 +6621,7 @@ int do_remote_access_control(FILE *nat_fp, FILE *filter_fp, int family) if (family == AF_INET6) { #endif -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) remote_access_set_proto(filter_fp, nat_fp, "80", srcaddr, family, ecm_wan_ifname); remote_access_set_proto(filter_fp, nat_fp, "443", srcaddr, family, ecm_wan_ifname); #endif @@ -6893,7 +6893,7 @@ int do_remote_access_control(FILE *nat_fp, FILE *filter_fp, int family) } #endif -#if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) // RDKB-21814 // Drop only remote managment port(8080,8181) in bridge_mode // because port 80, 443 will be used to access MSO page / local admin page. @@ -9348,7 +9348,8 @@ static int do_parcon_mgmt_site_keywd(FILE *fp, FILE *nat_fp, int iptype, FILE *c if (count < 0) count = 0; if (count > MAX_SYSCFG_ENTRIES) count = MAX_SYSCFG_ENTRIES; -#if !defined(_COSA_BCM_MIPS_) && !defined(_CBR_PRODUCT_REQ_) && !defined(_COSA_BCM_ARM_) && !defined(_PLATFORM_TURRIS_) && !defined(_COSA_QCA_ARM_) && !defined(_PLATFORM_BANANAPI_R4_) + +#if !defined(_COSA_BCM_MIPS_) && !defined(_CBR_PRODUCT_REQ_) && !defined(_COSA_BCM_ARM_) && !defined(_PLATFORM_TURRIS_) && !defined(_COSA_QCA_ARM_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) ruleIndex += do_parcon_mgmt_lan2wan_pc_site_appendrule(fp); #endif @@ -9530,7 +9531,7 @@ static int do_parcon_mgmt_site_keywd(FILE *fp, FILE *nat_fp, int iptype, FILE *c //Intel Proposed RDKB Generic Bug Fix from XB6 SDK fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 80 -m webstr --host \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx); fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 443 -m webstr --host \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx); -#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_) +#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) || defined(_COSA_QCA_ARM_) fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 80 -d \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx); fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 443 -d \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx); #elif !defined(_XER5_PRODUCT_REQ_) @@ -11088,8 +11089,7 @@ static int prepare_multinet_postrouting_nat(FILE *nat_fp) { static void prepare_ipc_filter(FILE *filter_fp) { FIREWALL_DEBUG("Entering prepare_ipc_filter\n"); -#if !defined (_COSA_BCM_ARM_) && !defined(INTEL_PUMA7) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_COSA_QCA_ARM_) - // TODO: fix this hard coding +#if !defined (_COSA_BCM_ARM_) && !defined(INTEL_PUMA7) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_COSA_QCA_ARM_) && !defined(_PLATFORM_GENERICARM_) // TODO: fix this hard coding fprintf(filter_fp, "-I OUTPUT -o %s -j ACCEPT\n", "l2sd0.500"); fprintf(filter_fp, "-I INPUT -i %s -j ACCEPT\n", "l2sd0.500"); //zqiu>> @@ -11099,7 +11099,7 @@ static void prepare_ipc_filter(FILE *filter_fp) { //zqiu<< #endif -#if (defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_)) && !defined(_HUB4_PRODUCT_REQ_) +#if (defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_)) && !defined(_HUB4_PRODUCT_REQ_) #if defined (_RDKB_GLOBAL_PRODUCT_REQ_) if( 0 != strncmp( devicePartnerId, "sky-", 4 ) ) #endif @@ -11310,7 +11310,7 @@ static int prepare_multinet_filter_forward (FILE *filter_fp) #endif /*_HUB4_PRODUCT_REQ_*/ //fprintf(filter_fp, "-A OUTPUT -o %s -j ACCEPT\n", net_resp); -#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_) && !defined(_HUB4_PRODUCT_REQ_)) +#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_) && !defined(_HUB4_PRODUCT_REQ_)) #if defined (_RDKB_GLOBAL_PRODUCT_REQ_) if( 0 != strncmp( devicePartnerId, "sky-", 4 ) ) #endif @@ -11401,7 +11401,7 @@ static int prepare_multinet_filter_forward (FILE *filter_fp) fprintf(filter_fp, "-A INPUT -i brebhaul -d 169.254.85.0/24 -j ACCEPT\n"); fprintf(filter_fp, "-A INPUT -i brebhaul -m pkttype ! --pkt-type unicast -j ACCEPT\n"); -#elif defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) +#elif defined (_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-A INPUT -i wifi2 -d 169.254.0.0/24 -j ACCEPT\n"); fprintf(filter_fp, "-A INPUT -i wifi2 -m pkttype ! --pkt-type unicast -j ACCEPT\n"); fprintf(filter_fp, "-A INPUT -i wifi3 -d 169.254.1.0/24 -j ACCEPT\n"); @@ -11444,7 +11444,7 @@ static int prepare_multinet_filter_forward (FILE *filter_fp) fprintf(filter_fp, "-A INPUT -i br403 -s 192.168.245.0/24 -p tcp -m tcp --dport 8883 -j ACCEPT\n"); #endif -#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_) && !defined(_HUB4_PRODUCT_REQ_)) || defined (_CBR2_PRODUCT_REQ_) +#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_) && !defined(_HUB4_PRODUCT_REQ_)) || defined (_CBR2_PRODUCT_REQ_) fprintf(filter_fp, "-A INPUT -i br403 -d 192.168.245.0/24 -j ACCEPT\n"); fprintf(filter_fp, "-A INPUT -i br403 -m pkttype ! --pkt-type unicast -j ACCEPT\n"); #endif @@ -12252,9 +12252,9 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * #endif #if WAN_FAILOVER_SUPPORTED -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) redirect_dns_to_extender(nat_fp,AF_INET); -#endif //_PLATFORM_RASPBERRYPI_ && _PLATFORM_BANANAPI_R4_ +#endif // none of (_PLATFORM_RASPBERRYPI_, _PLATFORM_BANANAPI_R4_ or _PLATFORM_GENERICARM_) #endif #if defined(_WNXL11BWL_PRODUCT_REQ_) @@ -12427,7 +12427,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * //Avoid blocking packets at the Intel NIL layer fprintf(filter_fp, "-A FORWARD -i a-mux -j ACCEPT\n"); #endif -#if defined(INTEL_PUMA7) || defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_) +#if defined(INTEL_PUMA7) || defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_) || defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-A INPUT -i host0 -s 192.168.147.0/255.255.255.0 -j ACCEPT\n"); fprintf(filter_fp, "-A OUTPUT -o host0 -d 192.168.147.0/255.255.255.0 -j ACCEPT\n"); #endif @@ -12437,7 +12437,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * fprintf(filter_fp, "-A OUTPUT -o lo -p tcp -m tcp --sport 49152:49153 -j ACCEPT\n"); fprintf(filter_fp, "-A OUTPUT ! -o brlan0 -p tcp -m tcp --sport 49152:49153 -j DROP\n"); /* For EasyMesh Controller Communication */ -#if defined(_PLATFORM_BANANAPI_R4_) +#if defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-I OUTPUT -o %s -p tcp --sport 49153 -j ACCEPT\n",get_current_wan_ifname()); #endif char tr69_enabled[20]; @@ -12642,7 +12642,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * #if !defined(_COSA_INTEL_XB3_ARM_) filterPortMap(filter_fp); #endif -#if defined(_COSA_BCM_ARM_) && !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) +#if defined(_COSA_BCM_ARM_) && !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-A INPUT -s 172.31.255.40/32 -p tcp -m tcp --dport 9000 -j ACCEPT\n"); fprintf(filter_fp, "-A INPUT -s 172.31.255.40/32 -p udp -m udp --dport 9000 -j ACCEPT\n"); fprintf(filter_fp, "-A INPUT -p tcp -m tcp --dport 9000 -j DROP\n"); @@ -12690,7 +12690,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * fprintf(filter_fp, "-A INPUT -p tcp -i %s --match multiport --dport 80,443 -j ACCEPT\n",cmdiag_ifname); } - #if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) + #if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) #if !defined(_CBR_PRODUCT_REQ_) && !defined (_BWG_PRODUCT_REQ_) && !defined (_CBR2_PRODUCT_REQ_) fprintf(filter_fp, "-A FORWARD -i %s -o privbr -p tcp -m multiport --dport 22,23,80,443 -j DROP\n",XHS_IF_NAME); fprintf(filter_fp, "-A FORWARD -i %s -o privbr -p tcp -m multiport --dport 22,23,80,443 -j DROP\n",LNF_IF_NAME); @@ -12883,7 +12883,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * fprintf(filter_fp, "-A INPUT -i %s -j ACCEPT\n", ecm_wan_ifname); } -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined (NO_MTA_FEATURE_SUPPORT) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) && !defined (NO_MTA_FEATURE_SUPPORT) if (emta_wan_ifname[0]) // spare eMTA wan interface from Utopia firewall { fprintf(filter_fp, "-A INPUT -i %s -p udp --dport 80 -j DROP\n", emta_wan_ifname); @@ -12899,7 +12899,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * } else { fprintf(filter_fp, "-A SSH_FILTER -j ACCEPT\n"); } */ -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) do_ssh_IpAccessTable(filter_fp, "22", AF_INET, ecm_wan_ifname); #else fprintf(filter_fp, "-A SSH_FILTER -j ACCEPT\n"); @@ -12966,13 +12966,13 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * prepare_multinet_filter_forward(filter_fp); fprintf(filter_fp, "-A FORWARD -j xlog_drop_wan2lan\n"); -#if !defined(_COSA_BCM_ARM_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_COSA_BCM_ARM_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-I FORWARD 3 -i %s -o l2sd0.4090 -j ACCEPT\n", current_wan_ifname); fprintf(filter_fp, "-I FORWARD 2 -i br403 -o %s -j ACCEPT\n", current_wan_ifname); fprintf(filter_fp, "-I FORWARD 3 -i %s -o br403 -j ACCEPT\n", current_wan_ifname); #endif -#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_) && !defined(_HUB4_PRODUCT_REQ_)) || defined (_CBR2_PRODUCT_REQ_) +#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_) && !defined(_HUB4_PRODUCT_REQ_)) || defined (_CBR2_PRODUCT_REQ_) #if defined (_RDKB_GLOBAL_PRODUCT_REQ_) if( 0 != strncmp( devicePartnerId, "sky-", 4 ) ) #endif @@ -12991,7 +12991,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * fprintf(filter_fp, "-I FORWARD -m conntrack --ctdir reply -m connbytes --connbytes 0:15 --connbytes-dir reply --connbytes-mode packets -j GWMETA --dis-pp\n"); #endif -#if (defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_)) +#if (defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_)) || defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-I FORWARD -d 192.168.100.1/32 -i %s -j DROP\n", lan_ifname); fprintf(filter_fp, "-I FORWARD -d 172.31.255.0/24 -j DROP\n"); fprintf(filter_fp, "-I INPUT -d 172.31.255.0/24 -i %s -j DROP\n", lan_ifname); @@ -13031,8 +13031,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * //zqiu: R5337 //do_lan2wan_IoT_Allow(filter_fp); do_wan2lan_IoT_Allow(filter_fp); -#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_)) // ARRIS XB6 ATOM, TCXB6 - // Block forwarding between bridges. +#if defined (INTEL_PUMA7) || ((defined (_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) || defined(_COSA_QCA_ARM_)) && !defined(_CBR_PRODUCT_REQ_))// ARRIS XB6 ATOM, TCXB6 // Block forwarding between bridges. fprintf(filter_fp, "-A FORWARD -i %s -o %s -j DROP\n", lan_ifname, iot_ifName); fprintf(filter_fp, "-A FORWARD -i %s -o %s -j DROP\n", XHS_IF_NAME, iot_ifName); fprintf(filter_fp, "-A FORWARD -i %s -o %s -j DROP\n", iot_ifName, lan_ifname); @@ -13528,7 +13527,7 @@ int do_block_ports(FILE *filter_fp) fprintf(filter_fp, "-A INPUT ! -i brlan0 -p tcp -m tcp --dport 49152:49153 -j DROP\n"); /* For EasyMesh Controller Communication */ -#if defined(_PLATFORM_BANANAPI_R4_) +#if defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) fprintf(filter_fp, "-I INPUT -i %s -p tcp --dport 49153 -j ACCEPT\n", get_current_wan_ifname()); fprintf(filter_fp, "-I INPUT -i %s -p tcp --dport 8888 -j ACCEPT\n", get_current_wan_ifname()); #endif @@ -13795,7 +13794,7 @@ void proxy_dns(FILE *nat_fp,int family) #endif #ifdef WAN_FAILOVER_SUPPORTED -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) void redirect_dns_to_extender(FILE *nat_fp,int family) { FIREWALL_DEBUG("Entering redirect_dns_to_extender,current_wan_ifname is %s , default wan is %s\n" COMMA current_wan_ifname COMMA default_wan_ifname); @@ -14375,7 +14374,7 @@ static int prepare_disabled_ipv4_firewall(FILE *raw_fp, FILE *mangle_fp, FILE *n filterPortMap(filter_fp); #endif -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) do_ssh_IpAccessTable(filter_fp, "22", AF_INET, ecm_wan_ifname); #else fprintf(filter_fp, "-A SSH_FILTER -j ACCEPT\n"); @@ -14470,7 +14469,7 @@ static int prepare_disabled_ipv4_firewall(FILE *raw_fp, FILE *mangle_fp, FILE *n { fprintf(filter_fp, "-A INPUT -p tcp -i %s --match multiport --dport 80,443 -j ACCEPT\n",cmdiag_ifname); } - #if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) + #if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) #if !defined(_CBR_PRODUCT_REQ_) && !defined (_BWG_PRODUCT_REQ_) && !defined (_CBR2_PRODUCT_REQ_) fprintf(filter_fp, "-A FORWARD -i %s -o privbr -p tcp -m multiport --dport 22,23,80,443 -j DROP\n",XHS_IF_NAME); fprintf(filter_fp, "-A FORWARD -i %s -o privbr -p tcp -m multiport --dport 22,23,80,443 -j DROP\n",LNF_IF_NAME); diff --git a/source/firewall/firewall_ipv6.c b/source/firewall/firewall_ipv6.c index 83bc5001..f20089c2 100644 --- a/source/firewall/firewall_ipv6.c +++ b/source/firewall/firewall_ipv6.c @@ -2279,9 +2279,9 @@ void do_ipv6_nat_table(FILE* fp) fprintf(fp, ":%s - [0:0]\n", "prerouting_redirect"); #ifdef WAN_FAILOVER_SUPPORTED -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) redirect_dns_to_extender(fp,AF_INET6); -#endif //_PLATFORM_RASPBERRYPI_ && _PLATFORM_BANANAPI_R4_ +#endif // none of (_PLATFORM_RASPBERRYPI_, _PLATFORM_BANANAPI_R4_, _PLATFORM_GENERICARM_) #endif #if defined(_WNXL11BWL_PRODUCT_REQ_) From 240011a1508ec5adfa704a4251972769c9f1f8c7 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 5 Aug 2026 14:38:57 +1000 Subject: [PATCH 2/5] service_wan: extend reference board behaviour to generic Arm This is for the meta-rdk-bsp-arm project. Similar to other RDK-B OSS reference boards that do not use a vendor dataplane, extend the behaviour defined for those reference platforms to this one. Signed-off-by: Mathew McBride --- source/service_wan/service_wan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/service_wan/service_wan.c b/source/service_wan/service_wan.c index b9abc63f..5c6efcfe 100644 --- a/source/service_wan/service_wan.c +++ b/source/service_wan/service_wan.c @@ -1508,7 +1508,7 @@ STATIC int wan_iface_up(struct serv_wan *sw) STATIC int wan_iface_down(struct serv_wan *sw) { int err = 0; -#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) err = v_secure_system("ip -4 link set %s down", sw->ifname); #endif #if PUMA6_OR_NEWER_SOC_TYPE @@ -1726,7 +1726,7 @@ STATIC int wan_addr_set(struct serv_wan *sw) } /* Should not be executed before wan_service-status is set to started for _PLATFORM_IPQ_ */ -#if !defined(_PLATFORM_IPQ_) && !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) +#if !defined(_PLATFORM_IPQ_) && !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_GENERICARM_) #if defined (_XB6_PRODUCT_REQ_) && defined (_COSA_BCM_ARM_) v_secure_system("firewall"); #else @@ -1742,7 +1742,7 @@ STATIC int wan_addr_set(struct serv_wan *sw) if(strcmp(mischandler_ready,"true") == 0) { //only for first time - #if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) +#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined(_PLATFORM_GENERICARM_) fprintf(stderr, "[%s] ready is set from misc handler. Doing gw_lan_refresh\n", PROG_NAME); #if defined (_XB6_PRODUCT_REQ_) && defined (_COSA_BCM_ARM_) v_secure_system("firewall"); From 591fbb1762561859ae1f97cd5c083413ecae8f33 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Thu, 6 Aug 2026 17:37:45 +1000 Subject: [PATCH 3/5] firewall: fix typo in RDKB-21814 comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Identified by Copilot AI: Typo in the comment: "managment" → "management". Link: https://github.com/rdkcentral/utopia/pull/397#pullrequestreview-4872124064 --- source/firewall/firewall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 8ae1a9f6..fd19d789 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -6895,7 +6895,7 @@ int do_remote_access_control(FILE *nat_fp, FILE *filter_fp, int family) #if defined(_COSA_BCM_ARM_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_PLATFORM_GENERICARM_) // RDKB-21814 - // Drop only remote managment port(8080,8181) in bridge_mode + // Drop only remote management port(8080,8181) in bridge_mode // because port 80, 443 will be used to access MSO page / local admin page. rc = syscfg_get(NULL, "mgmt_wan_httpaccess", query, sizeof(query)); From 66dc2e9ce1b6007eb06a7d23a9881ca0ef6a1727 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 7 Aug 2026 09:47:46 +1000 Subject: [PATCH 4/5] scripts: utopia_init: do nvram restore_reboot and dropbear on genericarm For the rpi these were implemented as a sed hack in the utopia.bbappend. --- source/scripts/init/system/utopia_init.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/scripts/init/system/utopia_init.sh b/source/scripts/init/system/utopia_init.sh index f7b7f31e..05051440 100755 --- a/source/scripts/init/system/utopia_init.sh +++ b/source/scripts/init/system/utopia_init.sh @@ -790,7 +790,7 @@ else fi fi -if [ "$MODEL_NUM" = "DPC3939B" ] || [ "$MODEL_NUM" = "DPC3941B" ]; then +if [ "$MODEL_NUM" = "DPC3939B" ] || [ "$MODEL_NUM" = "DPC3941B" ] || [ "${BOX_TYPE}" = "genericarm" ]; then if [ -f /nvram/restore_reboot ];then syscfg set X_RDKCENTRAL-COM_LastRebootReason "restore-reboot" syscfg set X_RDKCENTRAL-COM_LastRebootCounter "1" @@ -859,7 +859,7 @@ syscfg set ntp_status 2 echo_t "[utopia][init] setting Multicast MAC before any switch configs" $UTOPIA_PATH/service_multinet_exec set_multicast_mac & -if [ "$MODEL_NUM" = "DPC3939B" ] || [ "$MODEL_NUM" = "DPC3941B" ]; then +if [ "$MODEL_NUM" = "DPC3939B" ] || [ "$MODEL_NUM" = "DPC3941B" ] || [ "${BOX_TYPE}" = "genericarm" ]; then echo_t "[utopia][init] started dropbear process" /etc/utopia/service.d/service_sshd.sh sshd-start & fi From 67cf39786a8b311cbe5ea75100f22e5dc6c1c7a3 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Thu, 6 Aug 2026 11:29:20 +1000 Subject: [PATCH 5/5] scripts: extend OSS reference treatment to generic Arm genericarm refers to the meta-rdk-bsp-arm project. Treat this similarly to other RDK-B OSS reference devices. --- source/scripts/init/service.d/lan_handler.sh | 12 ++++++------ source/scripts/init/service.d/service_dhcp_server.sh | 8 ++++---- .../service_dhcp_server/dhcp_server_functions.sh | 2 +- source/scripts/init/service.d/service_ipv4.sh | 2 +- source/scripts/init/service.d/service_sshd.sh | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/source/scripts/init/service.d/lan_handler.sh b/source/scripts/init/service.d/lan_handler.sh index 2db3e39d..08bcb2cd 100755 --- a/source/scripts/init/service.d/lan_handler.sh +++ b/source/scripts/init/service.d/lan_handler.sh @@ -364,7 +364,7 @@ case "$1" in echo_t "THE INSTANT=$INST" echo_t "THE INSTANT=$INST" #(use a simpler test than this -- but Hacky, since it assumes everything we want is not XB3!!)if [ "$BOX_TYPE" = "TCCBR" ] || [ "$BOX_TYPE" = "XB6" -a "$MANUFACTURE" = "Technicolor" ] || [ "$BOX_TYPE" = "XB7" -a "$MANUFACTURE" = "Technicolor" ] ; then - if ( [ "$BOX_TYPE" != "XB3" ] && ( [ "$MANUFACTURE" = "Technicolor" ] || [ "$MANUFACTURE" = "Sercomm" ] ) ) || [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if ( [ "$BOX_TYPE" != "XB3" ] && ( [ "$MANUFACTURE" = "Technicolor" ] || [ "$MANUFACTURE" = "Sercomm" ] ) ) || [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "genericarm" ]; then COUNTER=1 while [ $COUNTER -lt 10 ]; do echo_t "RDKB_SYSTEM_BOOT_UP_LOG : INST returned null , retrying $COUNTER" @@ -436,7 +436,7 @@ case "$1" in sysevent set primary_lan_l3net ${INST} #BRLAN0 ISSUE : Manually invoking lan-start to fix brlan0 failure during intial booting. Root cause for event has to be identified - if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "genericarm" ]; then sleep 2 L3NET=`sysevent get primary_lan_l3net` if [ -z "$L3NET" ]; then @@ -444,7 +444,7 @@ case "$1" in sysevent set primary_lan_l3net $L3NET fi fi - fi + fi # end BRLAN0 ISSUE workaround if [ -z "$INST" ] && [ "$BOX_TYPE" = "TCCBR" ]; then echo_t "INST is empty on TCCBR; defaulting primary_lan_l3net to 4" sysevent set primary_lan_l3net 4 @@ -460,7 +460,7 @@ case "$1" in # Laninit complete happens as part of the service_dhcp_server.sh itself.Firewall restart happens as part of service_ip4 itself.In the above code we #are setting many sysevents related to LAN hence adding the lan_init complete logs here.Also as oer the logs , we moving to bring the eth interface after this.Hence lan in # compelte can brought in here. - if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "genericarm" ]; then if [ -e "/usr/bin/print_uptime" ]; then /usr/bin/print_uptime "Laninit_complete" fi @@ -544,11 +544,11 @@ case "$1" in ;; lan-start) - if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "HUB4" ] || [ "$BOX_TYPE" = "SR213" ] || [ "$BOX_TYPE" = "SCER11BEL" ] || [ "$BOX_TYPE" = "SCXF11BFL" ] || [ "$BOX_TYPE" = "XER2" ]; then + if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "genericarm" ] || [ "$BOX_TYPE" = "HUB4" ] || [ "$BOX_TYPE" = "SR213" ] || [ "$BOX_TYPE" = "SCER11BEL" ] || [ "$BOX_TYPE" = "SCXF11BFL" ] || [ "$BOX_TYPE" = "XER2" ]; then L3Net=`sysevent get primary_lan_l3net` if [ -z "$L3Net" ]; then echo_t "RDKB_SYSTEM_BOOT_UP_LOG : L3Net is null" - if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if [ "$RPI_SPECIFIC" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "genericarm" ]; then L3Net=4 sysevent set primary_lan_l3net $L3Net else diff --git a/source/scripts/init/service.d/service_dhcp_server.sh b/source/scripts/init/service.d/service_dhcp_server.sh index 0d824885..ca3ddb99 100755 --- a/source/scripts/init/service.d/service_dhcp_server.sh +++ b/source/scripts/init/service.d/service_dhcp_server.sh @@ -451,7 +451,7 @@ dhcp_server_start () return 1 fi - if [ "$BOX_TYPE" != "rpi" ] && [ "$BOX_TYPE" != "bpi" ] && [ "$BOX_TYPE" != "turris" ]; then + if [ "$BOX_TYPE" != "rpi" ] && [ "$BOX_TYPE" != "bpi" ] && [ "$BOX_TYPE" != "turris" ] && [ "$BOX_TYPE" != "genericarm" ]; then DHCP_STATE=`sysevent get lan_status-dhcp` #if [ "started" != "$CURRENT_LAN_STATE" ] ; then if [ "started" != "$DHCP_STATE" ] ; then @@ -591,7 +591,7 @@ dhcp_server_start () if [ $? -eq 0 ]; then echo_t "$SERVER process started successfully" else - if [ "$BOX_TYPE" = "XB6" ] || [ "$BOX_TYPE" = "PUMA7_CGP" ] || [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ] ; then + if [ "$BOX_TYPE" = "XB6" ] || [ "$BOX_TYPE" = "PUMA7_CGP" ] || [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ] || [ "$BOX_TYPE" = "genericarm" ] ; then COUNTER=0 while [ $COUNTER -lt 5 ]; do @@ -622,7 +622,7 @@ dhcp_server_start () if [ "$PSM_MODE" != "1" ]; then if [ -f "/var/tmp/.refreshlan" ];then echo_t "RDKB_SYSTEM_BOOT_UP_LOG : Call gw_lan_refresh_from_dhcpscript:`uptime | cut -d "," -f1 | tr -d " \t\n\r"`" - if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ] || [ "$BOX_TYPE" = "genericarm" ]; then reset_eth_usb_ports else gw_lan_refresh & @@ -631,7 +631,7 @@ dhcp_server_start () elif [ ! -f "/var/tmp/lan_not_restart" ] && [ "$1" != "lan_not_restart" ]; then if [ x"ready" = x`sysevent get start-misc` ]; then echo_t "RDKB_SYSTEM_BOOT_UP_LOG : Call gw_lan_refresh_from_dhcpscript:`uptime | cut -d "," -f1 | tr -d " \t\n\r"`" - if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ] || [ "$BOX_TYPE" = "genericarm" ]; then reset_eth_usb_ports else gw_lan_refresh & diff --git a/source/scripts/init/service.d/service_dhcp_server/dhcp_server_functions.sh b/source/scripts/init/service.d/service_dhcp_server/dhcp_server_functions.sh index 7dec8cb1..f56ea0d9 100755 --- a/source/scripts/init/service.d/service_dhcp_server/dhcp_server_functions.sh +++ b/source/scripts/init/service.d/service_dhcp_server/dhcp_server_functions.sh @@ -1133,7 +1133,7 @@ fi fi fi - if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ]; then + if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ] || [ "$BOX_TYPE" = "genericarm" ]; then LAN_STATUS=`sysevent get lan-status` BRIDGE_MODE=`syscfg get bridge_mode` if [ "$LAN_STATUS" = "stopped" ] && [ $BRIDGE_MODE == 0 ]; then diff --git a/source/scripts/init/service.d/service_ipv4.sh b/source/scripts/init/service.d/service_ipv4.sh index 91bada39..f3f9d155 100755 --- a/source/scripts/init/service.d/service_ipv4.sh +++ b/source/scripts/init/service.d/service_ipv4.sh @@ -129,7 +129,7 @@ handle_l2_status () { fi fi fi - if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]; then + if [ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "turris" ] || [ "$BOX_TYPE" = "genericarm" ]; then LAN_STATUS=`sysevent get lan-status` if [ "$LAN_STATUS" = "stopped" ]; then echo_t "service_ipv4 : Starting lan-status" diff --git a/source/scripts/init/service.d/service_sshd.sh b/source/scripts/init/service.d/service_sshd.sh index 8006a180..857e31ef 100755 --- a/source/scripts/init/service.d/service_sshd.sh +++ b/source/scripts/init/service.d/service_sshd.sh @@ -235,7 +235,7 @@ do_start() { fi else CM_IP="" - if ([ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ]) ;then + if ([ "$BOX_TYPE" = "rpi" ] || [ "$BOX_TYPE" = "bpi" ] || [ "$BOX_TYPE" = "genericarm" ]) ;then #for Raspberry-pi, use the ipv4 address as default for ssh CM_IP=`ip -4 addr show dev $CMINTERFACE scope global | awk '/inet/{print $2}' | cut -d '/' -f1` else