From d64e4b28f11020fdfee32dc3aba384a63f4b3c36 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:29:54 +0530 Subject: [PATCH 1/2] RDKBACCL-1853 SSH and WebUI not working - Ethernet Configurable WAN Interface Integration Reason for change: Verify configurable wan interface in BPI R4 (ethagent functionality) Test Procedure: Build and flash the image ,Validate wan functionality for the customized interface name Risks: None --- source/firewall/firewall.c | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 7172eaa0..f05ea48b 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2382,6 +2382,16 @@ static int prepare_globals_from_configuration(void) isComcastImage = bIsComcastImage(); sysevent_get(sysevent_fd, sysevent_token, "wan_ifname", default_wan_ifname, sizeof(default_wan_ifname)); sysevent_get(sysevent_fd, sysevent_token, "current_wan_ifname", current_wan_ifname, sizeof(current_wan_ifname)); +#ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE + if ('\0' == current_wan_ifname[0]) { + char wanInterface[BUFLEN_64] = {'\0'}; + syscfg_get(NULL, "wan_physical_ifname", wanInterface, sizeof(wanInterface)); + if(wanInterface[0] != '\0') + snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", wanInterface); + else + snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); + } +#else if ('\0' == current_wan_ifname[0]) { if ('\0' == default_wan_ifname[0]) { snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", "erouter0"); @@ -2390,6 +2400,7 @@ static int prepare_globals_from_configuration(void) snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); } } + #endif sysevent_get(sysevent_fd, sysevent_token, "current_wan_ipaddr", current_wan_ipaddr, sizeof(current_wan_ipaddr)); @@ -12558,14 +12569,21 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE * if(bEthWANEnable) { //ETH WAN is TC XB6 exclusive feature - if (strcmp(current_wan_ifname, default_wan_ifname ) == 0) - { - fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", current_wan_ifname); - } - else - { - fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", default_wan_ifname); - } + #ifdef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE + if (current_wan_ifname[0] != '\0') + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", current_wan_ifname); + else + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", default_wan_ifname); + #else + if (strcmp(current_wan_ifname, default_wan_ifname ) == 0) + { + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", current_wan_ifname); + } + else + { + fprintf(filter_fp, "-A INPUT -i %s -p tcp -m tcp --dport 22 -j SSH_FILTER\n", default_wan_ifname); + } + #endif } else if (erouterSSHEnable) // Applicable only for PUMA7 platforms { From 184776eda7679f3339e3d5a56b1c81fedb6720c3 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:28:08 +0530 Subject: [PATCH 2/2] Update firewall.c --- source/firewall/firewall.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index f05ea48b..0fa9e97c 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2386,11 +2386,18 @@ static int prepare_globals_from_configuration(void) if ('\0' == current_wan_ifname[0]) { char wanInterface[BUFLEN_64] = {'\0'}; syscfg_get(NULL, "wan_physical_ifname", wanInterface, sizeof(wanInterface)); - if(wanInterface[0] != '\0') + if(wanInterface[0] != '\0'){ snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", wanInterface); - else + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s",wanInterface); + } + else{ snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); - } + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s",default_wan_ifname); + } + } + else { + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s", current_wan_ifname); + } #else if ('\0' == current_wan_ifname[0]) { if ('\0' == default_wan_ifname[0]) { @@ -2496,8 +2503,9 @@ static int prepare_globals_from_configuration(void) syscfg_get(NULL, "firewall_level", firewall_level, sizeof(firewall_level)); syscfg_get(NULL, "firewall_levelv6", firewall_levelv6, sizeof(firewall_levelv6)); - +#ifndef FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE syscfg_get(NULL, "ecm_wan_ifname", ecm_wan_ifname, sizeof(ecm_wan_ifname)); +#endif #if !defined (NO_MTA_FEATURE_SUPPORT) syscfg_get(NULL, "emta_wan_ifname", emta_wan_ifname, sizeof(emta_wan_ifname)); #endif