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 01/12] 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 02/12] 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 From 551a8ecc4cf0db1f6ab33ffc646f092428dd99ca Mon Sep 17 00:00:00 2001 From: pradeeptakdas <37864641+pradeeptakdas@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:16:13 -0400 Subject: [PATCH 03/12] Updating the buffer size to fix the build issue --- 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 3eb57810..3e8f6b04 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2384,7 +2384,7 @@ static int prepare_globals_from_configuration(void) 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'}; + char wanInterface[20] = {'\0'}; syscfg_get(NULL, "wan_physical_ifname", wanInterface, sizeof(wanInterface)); if(wanInterface[0] != '\0'){ snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", wanInterface); From a837c5a529cf30b57739b86ffcaf1d042df526ba Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Fri, 24 Jul 2026 13:21:24 +0530 Subject: [PATCH 04/12] Update firewall.c --- source/firewall/firewall.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 3e8f6b04..d1b2dd6b 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2386,17 +2386,22 @@ static int prepare_globals_from_configuration(void) if ('\0' == current_wan_ifname[0]) { char wanInterface[20] = {'\0'}; syscfg_get(NULL, "wan_physical_ifname", wanInterface, sizeof(wanInterface)); - if(wanInterface[0] != '\0'){ - snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", wanInterface); - snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s",wanInterface); + if(wanInterface[0] != '\0'){ + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),wanInterface); + ERR_CHK(safec_rc); + safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),wanInterface); + ERR_CHK(safec_rc); } 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); + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); + ERR_CHK(safec_rc); + safec_rc=strcpy_s(ecm_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); + ERR_CHK(safec_rc); } } else { - snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s", current_wan_ifname); + safec_rc=strcpy_s(ecm_wan_ifname, sizeof(current_wan_ifname),current_wan_ifname); + ERR_CHK(safec_rc); } #else if ('\0' == current_wan_ifname[0]) { From b3edc7812aafadff7325fd867d0482c474dc1915 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Fri, 24 Jul 2026 13:22:47 +0530 Subject: [PATCH 05/12] Update firewall.c --- source/firewall/firewall.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index d1b2dd6b..162584b7 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2395,12 +2395,12 @@ static int prepare_globals_from_configuration(void) else{ safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); ERR_CHK(safec_rc); - safec_rc=strcpy_s(ecm_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); + safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),default_wan_ifname); ERR_CHK(safec_rc); } } else { - safec_rc=strcpy_s(ecm_wan_ifname, sizeof(current_wan_ifname),current_wan_ifname); + safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),current_wan_ifname); ERR_CHK(safec_rc); } #else From 429625063a81af21f70d6a304e3255c8500a13f0 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:08:24 +0530 Subject: [PATCH 06/12] Update firewall.c --- source/firewall/firewall.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 8632ca4c..09c4f5e6 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2394,11 +2394,15 @@ static int prepare_globals_from_configuration(void) ERR_CHK(safec_rc); } else{ - safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); - ERR_CHK(safec_rc); - safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),default_wan_ifname); - ERR_CHK(safec_rc); - } + if ('\0' == default_wan_ifname[0]) { + snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", "erouter0"); + } + else { + snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); + } + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname),"%s"current_wan_ifname); + } + } else { safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),current_wan_ifname); From 9ba577c7fcbd02e02327c6ce11b344c61fd97f91 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:13:39 +0530 Subject: [PATCH 07/12] Fix snprintf syntax for ecm_wan_ifname assignment Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- 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 09c4f5e6..c4b6910b 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2400,7 +2400,7 @@ static int prepare_globals_from_configuration(void) else { snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); } - snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname),"%s"current_wan_ifname); + snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s", current_wan_ifname); } } From 7f97dcf6205db1fbb9c098e7aa264925fc302748 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Fri, 11 Sep 2026 12:41:19 +0530 Subject: [PATCH 08/12] Update firewall.c --- source/firewall/firewall.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index c4b6910b..65a1c53e 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2395,12 +2395,15 @@ static int prepare_globals_from_configuration(void) } else{ if ('\0' == default_wan_ifname[0]) { - snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", "erouter0"); + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),"erouter0"); + ERR_CHK(safec_rc); } else { - snprintf(current_wan_ifname, sizeof(current_wan_ifname), "%s", default_wan_ifname); + safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); + ERR_CHK(safec_rc); } - snprintf(ecm_wan_ifname, sizeof(ecm_wan_ifname), "%s", current_wan_ifname); + safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),current_wan_ifname); + ERR_CHK(safec_rc); } } From 58fabc9529bcbab91fbfdce21100cdfc4bd6cbd6 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:08:16 +0530 Subject: [PATCH 09/12] Simplify WAN interface name assignment Removed redundant copying of WAN interface name to ecm_wan_ifname. --- source/firewall/firewall.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 5270bc07..0ff6d06b 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2390,8 +2390,6 @@ static int prepare_globals_from_configuration(void) if(wanInterface[0] != '\0'){ safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),wanInterface); ERR_CHK(safec_rc); - safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),wanInterface); - ERR_CHK(safec_rc); } else{ if ('\0' == default_wan_ifname[0]) { @@ -2402,15 +2400,8 @@ static int prepare_globals_from_configuration(void) safec_rc=strcpy_s(current_wan_ifname, sizeof(current_wan_ifname),default_wan_ifname); ERR_CHK(safec_rc); } - safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),current_wan_ifname); - ERR_CHK(safec_rc); - } - + } } - else { - safec_rc=strcpy_s(ecm_wan_ifname, sizeof(ecm_wan_ifname),current_wan_ifname); - ERR_CHK(safec_rc); - } #else if ('\0' == current_wan_ifname[0]) { if ('\0' == default_wan_ifname[0]) { From 066ba7a9b40c242a6ce5ddb62b5f1f31a72245af Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:17:37 +0530 Subject: [PATCH 10/12] Remove FEATURE_RDKB_CONFIGURABLE_WAN_INTERFACE check Removed conditional compilation for ecm_wan_ifname retrieval. --- source/firewall/firewall.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 0ff6d06b..8a41d838 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2507,9 +2507,7 @@ 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 From 09b2aa6b728b1d3e73822cb0c65ecb20f437cc31 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:18:40 +0530 Subject: [PATCH 11/12] Add retrieval of ecm_wan_ifname from syscfg --- source/firewall/firewall.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 8a41d838..3851cbc2 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2507,6 +2507,7 @@ 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)); + syscfg_get(NULL, "ecm_wan_ifname", ecm_wan_ifname, sizeof(ecm_wan_ifname)); #if !defined (NO_MTA_FEATURE_SUPPORT) syscfg_get(NULL, "emta_wan_ifname", emta_wan_ifname, sizeof(emta_wan_ifname)); From 91e180c14da36dbd03c81167590b982376844bd5 Mon Sep 17 00:00:00 2001 From: anatar818 <151121941+anatar818@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:20:12 +0530 Subject: [PATCH 12/12] Remove blank line in firewall.c Removed unnecessary blank line in firewall.c --- source/firewall/firewall.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c index 3851cbc2..8a41d838 100644 --- a/source/firewall/firewall.c +++ b/source/firewall/firewall.c @@ -2507,7 +2507,6 @@ 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)); - syscfg_get(NULL, "ecm_wan_ifname", ecm_wan_ifname, sizeof(ecm_wan_ifname)); #if !defined (NO_MTA_FEATURE_SUPPORT) syscfg_get(NULL, "emta_wan_ifname", emta_wan_ifname, sizeof(emta_wan_ifname));