RDKCOM-5603: RDKBDEV-3455, RDKBACCL-1787 Upstreaming the utopia patches from meta-rdk-bsp-arm#312
RDKCOM-5603: RDKBDEV-3455, RDKBACCL-1787 Upstreaming the utopia patches from meta-rdk-bsp-arm#312mahanteshchitt wants to merge 7 commits into
Conversation
Reason For Change: Upstreamed Generic ARM specific changes into common code to avoid maintaining platform patches. Test Procedure: No utopia patches under meta-rdk-bsp-arm, should boot-up and should work as expected. Risks: None Signed-off-by: mahanteshchitt <mahantesh_chittapur@comcast.com>
There was a problem hiding this comment.
Pull request overview
Upstreams a set of Generic ARM platform patches (previously carried out-of-tree) into the shared Utopia codebase, primarily by aligning runtime paths (e.g., /var/volatile) and extending platform gating logic to include genericarm.
Changes:
- Add
_PLATFORM_GENERICARM_/BOX_TYPE=genericarmhandling across WAN, DHCP, IGD, init, and LAN handler flows. - Move several runtime artifacts for genericarm to
/var/volatile(dnsmasq + IGD temp/web directories). - Extend firewall rule generation conditionals for genericarm (including MAP-T rule output interface selection and various feature gates).
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| source/service_wan/service_wan.c | Treat genericarm like other embedded targets by skipping interface-down in one path and gating a refresh call. |
| source/service_dhcp/service_dhcp_server.c | Use /var/volatile/dnsmasq.conf for genericarm. |
| source/service_dhcp/dhcp_server_functions.c | Use /var/volatile/dnsmasq.conf for genericarm. |
| source/scripts/init/system/utopia_init.sh | Include BOX_TYPE=genericarm in model-based init behaviors (restore reboot reason, sshd start). |
| source/scripts/init/service.d/service_ipv4.sh | Include genericarm in the platform list that triggers LAN-status recovery behavior. |
| source/scripts/init/service.d/service_igd.sh | Use /var/volatile/IGD temp dir for genericarm. |
| source/scripts/init/service.d/service_dhcpv6_client.sh | Add targeted logging for genericarm callbacks. |
| source/scripts/init/service.d/service_dhcp_server/dhcp_server_functions.sh | Include genericarm in LAN-status/DHCP startup gating. |
| source/scripts/init/service.d/service_dhcp_server.sh | Use /var/volatile/dnsmasq.conf for genericarm and include genericarm in platform conditionals. |
| source/scripts/init/service.d/lan_handler.sh | Add genericarm compatibility shims and genericarm-specific LAN bring-up logic. |
| source/igd/src/igd_device_root.c | Use /var/volatile/IGD web dir for genericarm. |
| source/firewall/firewall.c | Add genericarm platform guards and use current_wan_ifname in some genericarm branches. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@mahanteshchitt Please address the copilot review comments. if comment is not valid , we need to provide the explanation why it is not valid and resolve the comment. |
Reason For Change: Upstreamed Generic ARM specific changes into common code to avoid maintaining platform patches. Test Procedure: No utopia patches under meta-rdk-bsp-arm, should boot-up and should work as expected. Risks: None Signed-off-by: mahanteshchitt <mahantesh_chittapur@comcast.com>
addressed the copilot review commnets. @tinaelizabeth84 |
| 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 |
Reason For Change: Upstreamed Generic ARM specific changes into common code to avoid maintaining platform patches.
Test Procedure: No utopia patches under meta-rdk-bsp-arm, should boot-up and should work as expected.
Risks: None
Priority: P0
A new platform GENERICARM is being introduced in RDK-B. Currently, to make the GENERICARM platform work similar to existing platforms like RPI and BPI, platform-specific changes are being maintained as patches in the meta-rdk-bsp-arm layer.
These patches add the required PLATFORM_FLAG handling (PLATFORM_GENERICARM_) and platform-specific behavior in utopia components, including firewall configuration, LAN handling, WAN handling, DHCP/DHCPv6 handling, IGD temporary path handling, and build fixes.
The goal of this work is to upstream these changes into the common/generic codebase so that GENERICARM support is available natively and the meta-rdk-bsp-arm layer becomes patch-free.
these pathces includes adding firewall rules fo ARM device, adding platfrom flag i.e {}PLATFORM_GENERICARM and build time errors fixes.
Now we want make ARM as patch free build so , need to upstream to the generic code.
Actual Behavior
GENERICARM requires multiple downstream patches in meta-rdk-bsp-arm.
Without these patches:
Platform-specific code paths are not enabled.
Required firewall/LAN/WAN behavior is missing.
Build issues occur for some configurations.
Runtime behavior is inconsistent compared with other supported platforms.
Expected Behavior
GENERICARM should work similar to existing supported platforms (RPI/BPI).
Required platform-specific logic should be available in the common utopia code.
No additional utopia patches should be required from meta-rdk-bsp-arm.
build should complete successfully with GENERICARM configuration.