RDKCOM-5616: RDKBDEV-3470, RDKBACCL-1485: Verify configurable wan interface in BPI R4 - #67
Open
anatar818 wants to merge 3 commits into
Open
RDKCOM-5616: RDKBDEV-3470, RDKBACCL-1485: Verify configurable wan interface in BPI R4#67anatar818 wants to merge 3 commits into
anatar818 wants to merge 3 commits into
Conversation
Added logic to handle WAN physical interface name retrieval and configuration for specific platforms.
Contributor
There was a problem hiding this comment.
Pull request overview
Adds platform-specific initialization logic to support a configurable WAN interface name on BPI R4 (and related platforms) during Ethernet agent startup.
Changes:
- Introduces a RaspberryPi/Turris/BPI-R4 init path (when
FEATURE_RDKB_VLAN_MANAGERis not defined) that readswan_physical_ifname, persists/reads it via/nvram/wan_name.txt, and configures a bridge usingip link. - Sets the resulting WAN bridge/interface MAC and enslaves
ETHWAN_DEF_INTF_NAMEunder the configured bridge name.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Comment on lines
+3470
to
+3471
| if (!syscfg_get(NULL, "wan_physical_ifname", out_value, sizeof(out_value))) | ||
| { |
Comment on lines
+3499
to
+3511
| { | ||
| fclose(fp); | ||
| fileValue[strcspn(fileValue, "\r\n")] = '\0'; | ||
| if (strcmp(fileValue, out_value) != 0) | ||
| { | ||
| if ( syscfg_set_commit( NULL, "wan_physical_ifname", fileValue ) != 0 ) | ||
| strcpy(wanPhyName, "erouter0"); | ||
| else | ||
| strncpy(wanPhyName,fileValue, sizeof(wanPhyName) - 1); | ||
| } | ||
| else | ||
| strncpy(wanPhyName, out_value, sizeof(wanPhyName) - 1); | ||
| } |
| else | ||
| strcpy(wanPhyName, "erouter0"); | ||
| memset(&macAddr,0,sizeof(macaddr_t)); | ||
| getInterfaceMacAddress(&macAddr,wanPhyName); |
| snprintf(wan_mac, sizeof(wan_mac), "%02x:%02x:%02x:%02x:%02x:%02x", macAddr.hw[0], macAddr.hw[1], macAddr.hw[2], | ||
| macAddr.hw[3], macAddr.hw[4], macAddr.hw[5]); | ||
|
|
||
| v_secure_system("syscfg get wan_physical_ifname > /tmp/wan_name.txt"); |
snayak002c
approved these changes
Jul 20, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (3)
source/TR-181/board_sbapi/cosa_ethernet_apis.c:3519
- getInterfaceMacAddress() is called with wanPhyName before the bridge/interface named wanPhyName is created. If wanPhyName doesn't already exist, this leaves macAddr as 00:00:00:00:00:00 and then programs the bridge MAC to all-zero, which can break networking.
memset(&macAddr,0,sizeof(macaddr_t));
getInterfaceMacAddress(&macAddr,wanPhyName);
memset(wan_mac,0,sizeof(wan_mac));
snprintf(wan_mac, sizeof(wan_mac), "%02x:%02x:%02x:%02x:%02x:%02x", macAddr.hw[0], macAddr.hw[1], macAddr.hw[2],
macAddr.hw[3], macAddr.hw[4], macAddr.hw[5]);
source/TR-181/board_sbapi/cosa_ethernet_apis.c:3521
- This command writes
wan_physical_ifnameto /tmp/wan_name.txt but the file is not read anywhere in this function, so it looks like leftover debug/bring-up code and adds an unnecessary side effect at boot.
v_secure_system("syscfg get wan_physical_ifname > /tmp/wan_name.txt");
source/TR-181/board_sbapi/cosa_ethernet_apis.c:3468
- The new RaspberryPi/Turris/BananaPi-R4 init path adds non-trivial logic (syscfg + /nvram persistence + bridge creation). There are gtests for this module, but no coverage for this new branch, making regressions (e.g., bad interface names, missing /nvram, bridge already exists) harder to catch.
#if (defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_)) && !defined(FEATURE_RDKB_VLAN_MANAGER)
char wanPhyName[20] = {0},out_value[20] = {0},fileValue[20] = {0};
FILE *fp = NULL;
macaddr_t macAddr;
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Priority : P1