RDKEMW-22811: Remove WiFi DML from tr69hostIf - #519
Conversation
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
There was a problem hiding this comment.
Pull request overview
This PR removes the WiFi TR-181/DML implementation (Device.WiFi.*) from tr69hostif now that WiFi DMLs for RDK-E are provided by the WiFiMetrics component, and updates build/test artifacts accordingly.
Changes:
- Deletes the entire WiFi profile implementation under
src/hostif/profiles/wifi/and removes corresponding init/shutdown and handler wiring. - Removes WiFi build toggles and linking from Autotools/Makefile integration.
- Removes WiFi-related functional test cases and Gherkin scenarios; updates integration-test manager list to drop
Device.WiFi.
Reviewed changes
Copilot reviewed 46 out of 46 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/functional-tests/tests/tr69hostif_networkmanager_ssid_thunder_plugin.py | Deletes Thunder NetworkManager SSID functional tests for Device.WiFi.SSID.*. |
| test/functional-tests/tests/tr69hostif_networkmanager_endpoint_thunder_plugin.py | Deletes Thunder NetworkManager EndPoint functional tests for Device.WiFi.EndPoint.* and WiFi enable set/restore. |
| test/functional-tests/features/tr69hostif_thunder_plugins.feature | Removes WiFi Thunder-plugin scenarios and mapping-table entries for Device.WiFi.*. |
| test/functional-tests/features/tr69hostif_negative_tests.feature | Removes WiFi-related negative scenarios (boolean mismatch SET; plugin deactivated GET). |
| src/Makefile.am | Drops WiFi compile flags/include and removes linking against libhostIfWiFi.la. |
| src/integrationtest/conf/mgrlist.conf | Removes Device.WiFi wifiMgr from integration-test manager list. |
| src/hostif/src/hostIf_main.cpp | Removes Device_WiFi.h include and WiFiDevice::init()/shutdown() calls. |
| src/hostif/profiles/wifi/Makefile.am | Deleted (WiFi profile build removed). |
| src/hostif/profiles/wifi/docs/README.md | Deleted (WiFi profile documentation removed). |
| src/hostif/profiles/wifi/Device_WiFi.h | Deleted (WiFi profile API removed). |
| src/hostif/profiles/wifi/Device_WiFi.cpp | Deleted (WiFi profile implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_X_RDKCENTRAL_COM_ClientRoaming.h | Deleted (WiFi ClientRoaming API removed). |
| src/hostif/profiles/wifi/Device_WiFi_SSID.h | Deleted (WiFi SSID API removed). |
| src/hostif/profiles/wifi/Device_WiFi_SSID.cpp | Deleted (WiFi SSID implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_SSID_Stats.h | Deleted (WiFi SSID stats API removed). |
| src/hostif/profiles/wifi/Device_WiFi_SSID_Stats.cpp | Deleted (WiFi SSID stats implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_Radio_Stats.h | Deleted (WiFi radio stats API removed). |
| src/hostif/profiles/wifi/Device_WiFi_Radio_Stats.cpp | Deleted (WiFi radio stats implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint.h | Deleted (WiFi EndPoint API removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint.cpp | Deleted (WiFi EndPoint implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_WPS.h | Deleted (WiFi EndPoint WPS API removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_WPS.cpp | Deleted (WiFi EndPoint WPS implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_Security.h | Deleted (WiFi EndPoint Security API removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_Security.cpp | Deleted (WiFi EndPoint Security implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_Profile.h | Deleted (WiFi EndPoint Profile API removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_Profile.cpp | Deleted (WiFi EndPoint Profile implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_Profile_Security.h | Deleted (WiFi EndPoint Profile Security API removed). |
| src/hostif/profiles/wifi/Device_WiFi_EndPoint_Profile_Security.cpp | Deleted (WiFi EndPoint Profile Security implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint.h | Deleted (WiFi AccessPoint API removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint.cpp | Deleted (WiFi AccessPoint implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint_WPS.h | Deleted (WiFi AccessPoint WPS API removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint_WPS.cpp | Deleted (WiFi AccessPoint WPS implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint_Security.h | Deleted (WiFi AccessPoint Security API removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint_Security.cpp | Deleted (WiFi AccessPoint Security implementation removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint_AssociatedDevice.h | Deleted (WiFi AssociatedDevice API removed). |
| src/hostif/profiles/wifi/Device_WiFi_AccessPoint_AssociatedDevice.cpp | Deleted (WiFi AssociatedDevice implementation removed). |
| src/hostif/profiles/Makefile.am | Removes wifi from SUBDIRS/DIST_SUBDIRS when WITH_WIFI_PROFILE. |
| src/hostif/handlers/src/hostIf_updateHandler.cpp | Removes WiFi update-callback registration/reset/update polling. |
| src/hostif/handlers/src/hostIf_msgHandler.cpp | Removes mapping/dispatch for wifiMgr / HOSTIF_WiFiMgr. |
| src/hostif/handlers/Makefile.am | Removes WiFi handler source from build (but still needs include path cleanup per review comments). |
| src/hostif/handlers/include/hostIf_WiFi_ReqHandler.h | Deleted (WiFi request handler API removed). |
| configure.ac | Removes --enable-wifi and WITH_WIFI_PROFILE conditional. |
Code Coverage Summary |
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 47 out of 47 changed files in this pull request and generated no new comments.
Suppressed comments (3)
src/hostif/handlers/Makefile.am:41
src/hostif/profiles/wifi/has been removed in this PR (no files remain), but handlers are still compiled with-I$(top_srcdir)/src/hostif/profiles/wifi. Many toolchains warn on non-existent-Ipaths (and can fail if warnings are treated as errors). Remove this include path now that the WiFi profile is gone.
-I$(top_srcdir)/src/hostif/profiles/moca \
-I$(top_srcdir)/src/hostif/profiles/wifi \
-I./include $(GLIB_CFLAGS) $(G_THREAD_CFLAGS) \
$(XREMGR_FLAGS) $(MOCAMGR_FLAGS) $(SOUP_CFLAGS) $(MOCA2_FLAG) \
$(XRDK_SDCARD_PROFILE_FLAG) $(XRDK_EMMC_PROFILE_FLAG) \
src/hostif/handlers/src/hostIf_msgHandler.cpp:548
- WiFi manager support has been removed, but the repository's default configs still reference it (e.g.,
conf/mgrlist.conf:9andconf/tr69hostIf.conf:11containDevice.WiFi wifiMgr/Device.WiFi=wifiMgr). With this PR, such entries are now skipped during manager-map initialization andDevice.WiFi.*requests will have no matching manager. Update the shipped config files (and any docs/tests that mentionwifiMgr) to removeDevice.WiFimappings so deployments don't carry stale configuration.
case HOSTIF_IPMgr:
pRet = IPClientReqHandler::getInstance();
break;
#ifdef USE_DHCPv4_PROFILE
case HOSTIF_DHCPv4:
pRet = DHCPv4ClientReqHandler::getInstance();
configure.ac:437
AC_SUBST(WIFI_PROFILE_FLAG)is now dead/undefined after removing--enable-wifiand the WiFi profile conditional. Keeping this substitution risks confusing future maintainers and can surface as an autoconf warning. Remove it (and consider also cleaning up the unusedWIFI_PROFILE_FLAGSvariable defined near the top of this file).
AC_SUBST(WIFI_PROFILE_FLAG)
Code Coverage Summary |
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 48 out of 48 changed files in this pull request and generated no new comments.
Suppressed comments (2)
src/integrationtest/conf/mgrlist.conf:10
- WiFi manager entry is removed from the integration-test mgr list, but the shipped runtime configs still map WiFi to wifiMgr (e.g., conf/mgrlist.conf:9 and conf/tr69hostIf.conf:11). With WiFi handlers removed, those stale mappings will now be treated as an invalid manager during initialization and can cause dispatch failures/noise. Please remove Device.WiFi entries from the runtime config files as part of this change to keep environments consistent.
configure.ac:438 AC_SUBST(WIFI_PROFILE_FLAG)is now orphaned after removing the--enable-wifioption and WiFi profile build wiring; there are no remaining Makefile.am references toWIFI_PROFILE_FLAG. Keeping an unused substitution/flag increases config surface and can be confusing when diagnosing build options.
AC_SUBST(SUBDIRS_WIFI)
AC_SUBST(SUBDIRS_STORAGESERVICE)
AC_SUBST(SUBDIRS_DHCPv4)
AC_SUBST(SUBDIRS_INTFSTACK)
AC_SUBST(MOCA2_FLAG)
AC_SUBST(WIFI_PROFILE_FLAG)
AC_SUBST(XRDK_SDCARD_PROFILE_FLAG)
Code Coverage Summary |
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 48 out of 48 changed files in this pull request and generated no new comments.
Suppressed comments (1)
src/hostif/handlers/src/hostIf_msgHandler.cpp:450
mgrNameis declared outside thewhile (fscanf...)loop and is only updated when a manager string matches. Now thatwifiMgris removed, any config entry that still uses an unrecognized manager (e.g., existing configs containingwifiMgr) will leavemgrNameholding the previous iteration’s value, and the parameter prefix will be inserted with that stale manager ID.
This can misroute entire subtrees (like Device.WiFi) to an unrelated handler. Ensure mgrName is invalidated when no manager name matches (or reset it at the start of each loop iteration).
mgrName = HOSTIF_TimeMgr;
}
#ifdef USE_DHCPv4_PROFILE
else if(strcasecmp(mgr, "dhcpv4Mgr") == 0)
{
Code Coverage Summary |
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 64 out of 64 changed files in this pull request and generated no new comments.
Suppressed comments (4)
src/hostif/parodusClient/gtest/dm_test.cpp:292
- The positive-case unit test for
getNumberOfDigitsInInstanceNumber()was removed because it used a WiFi path, leaving only the NULL-input test. Since the function is still used to normalize{i}paths, keep coverage by updating the test to use a non-WiFi parameter name.
TEST(datamodelTest, isParamEndsWithInstance_NullInput) {
int instance = isParamEndsWithInstance(NULL);
EXPECT_EQ(instance, 1);
}
TEST(datamodelTest, getNumberOfDigitsInInstanceNumber_NullInput) {
int instance = getNumberOfDigitsInInstanceNumber(NULL, 0);
EXPECT_EQ(instance, 0);
}
docs/architecture/data-flow.md:35
- The routing diagram still lists
wifiMgreven though the WiFi manager mapping was removed below. This makes the doc internally inconsistent after removing theDevice.WiFimanager; drop the wifiMgr line from the diagram.
| `Device.IP` | `ipMgr` |
| `Device.Time` | `timeMgr` |
src/hostif/src/gtest/gtest_src.cpp:274
matchComponent()is still used broadly (e.g., IP/MoCA/Ethernet handlers), but the unit tests covering its success and failure cases were removed along with WiFi strings. Consider keeping the coverage by switching the test inputs to a non-WiFi subtree (e.g.,Device.IP.Interface.*).
src/hostif/handlers/docs/README.md:195- The Build-Time Feature Gating section still documents
WITH_WIFI_PROFILEeven though WiFi support (and the corresponding configure/make conditionals) has been removed. This bullet should be removed to avoid implying WiFi can still be built in.
| `MoCAClientReqHandler` | `Device.MoCA.Interface.*`, QoS, associated devices, stats, and mesh-table related objects | Handles MoCA interface configuration such as enable, alias, privacy, keying, power limits, QoS-related objects, and mesh-entry tracking when the MoCA profile is enabled |
| `DHCPv4ClientReqHandler` | `Device.DHCPv4.Client.*` | Read-only handler in practice for the current code path; returns client interface references, routers, and DNS servers, and reports the client entry count |
| `InterfaceStackClientReqHandler` | `Device.InterfaceStack.*` | Read-only handler that exposes higher-layer and lower-layer relationships between interfaces and reports `InterfaceStackNumberOfEntries` |
Code Coverage Summary |
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
Code Coverage Summary |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 67 out of 67 changed files in this pull request and generated 1 comment.
Suppressed comments (7)
src/hostif/src/gtest/gtest_src.cpp:666
- The negative-path unit tests for
matchComponent()were removed, leaving edge cases (missing instance segment / overly long instance number) untested even though the function is still widely used. Reintroducing these checks with a non-WiFi path keeps coverage without depending on the removed WiFi profile.
src/hostif/parodusClient/gtest/dm_test.cpp:292 - The positive-path test for
getNumberOfDigitsInInstanceNumber()was removed, but the function is still used when rewriting instance paths in the WAL data-model logic. Consider keeping a simple non-WiFi test case to prevent regressions in digit counting.
TEST(datamodelTest, getNumberOfDigitsInInstanceNumber_NullInput) {
int instance = getNumberOfDigitsInInstanceNumber(NULL, 0);
EXPECT_EQ(instance, 0);
}
src/hostif/parodusClient/gtest/dm_test.cpp:1288
- The
appendNextObject()unit test was removed even though the helper is still used in WAL data-model expansion. Consider keeping a non-WiFi test to preserve coverage of the instance-skipping behavior.
TEST(palTest, test_get_complete_param_list) {
test_get_complete_param_list();
EXPECT_EQ(0, 0);
}
docs/architecture/json-usage.md:203
- This table section says a "WiFi interface list" JSON field is consumed by profiles, but WiFi Thunder consumers were removed and there are no remaining
GetAvailableInterfacescall sites insrc/hostif/. This row should be removed or rewritten so the document matches current consumers.
| WiFi interface list | `result.interfaces[]` |
src/hostif/handlers/docs/README.md:194
- The WiFi manager/handler was removed from this doc, but the Build-Time Feature Gating list still mentions
WITH_WIFI_PROFILE. This should be removed/updated to avoid implying WiFi can still be enabled in this repo.
| `TimeClientReqHandler` | `Device.Time.*` | Handles time enablement, Chrony/NTP settings, NTP directive parameters, and bootstrap-sensitive time parameters through `hostIf_Time` |
| `MoCAClientReqHandler` | `Device.MoCA.Interface.*`, QoS, associated devices, stats, and mesh-table related objects | Handles MoCA interface configuration such as enable, alias, privacy, keying, power limits, QoS-related objects, and mesh-entry tracking when the MoCA profile is enabled |
| `DHCPv4ClientReqHandler` | `Device.DHCPv4.Client.*` | Read-only handler in practice for the current code path; returns client interface references, routers, and DNS servers, and reports the client entry count |
src/hostif/src/gtest/gtest_src.cpp:274
matchComponent()is still used widely across handlers/profiles (e.g. IP, MoCA, DeviceInfo), but the unit test that validated its basic success path was removed. Consider keeping a small test using a non-WiFi parameter path so regressions in instance parsing are still caught.
src/hostif/parodusClient/gtest/dm_test.cpp:1130- A test that exercised
getParamAttributes()with a non-null (but non-notify-listed) parameter was removed. Keeping a non-WiFi invalid-parameter test helps ensure the function continues to reject non-notify parameters as expected.
TEST(palTest, getParamAttributes_NullInputs) {
AttrVal **attributes = NULL;
int totalParams = 0;
EXPECT_EQ(getParamAttributesFunc()(NULL, &attributes, &totalParams), WAL_ERR_INVALID_PARAM);
EXPECT_EQ(getParamAttributesFunc()("Device.DeviceInfo.ModelName", NULL, &totalParams), WAL_ERR_INVALID_PARAM);
EXPECT_EQ(getParamAttributesFunc()("Device.DeviceInfo.ModelName", &attributes, NULL), WAL_ERR_INVALID_PARAM);
}
Code Coverage Summary |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 68 out of 68 changed files in this pull request and generated no new comments.
Suppressed comments (6)
src/hostif/parodusClient/gtest/dm_test.cpp:292
getNumberOfDigitsInInstanceNumberno longer has a non-null/positive-path test after removing the WiFi-based test case; only the null-input test remains. This reduces coverage of the core parsing behavior and can be kept WiFi-agnostic by using a non-WiFi parameter string.
TEST(datamodelTest, getNumberOfDigitsInInstanceNumber_NullInput) {
int instance = getNumberOfDigitsInInstanceNumber(NULL, 0);
EXPECT_EQ(instance, 0);
}
docs/architecture/data-flow.md:35
- The request-routing diagram still shows
wifiMgr, but WiFi manager mapping is removed below and in config files. This leaves the documentation internally inconsistent and implies WiFi routing still exists in tr69hostif.
| `Device.Ethernet` | `ethernetMgr` |
| `Device.IP` | `ipMgr` |
| `Device.Time` | `timeMgr` |
README.md:307
- The build-flags table removes
--enable-wifi, but the later “Build Steps” example still includes--enable-wifiin the./configurecommand (README.md:335 in current file). This will mislead users becauseconfigure.acno longer provides that flag.
| `--enable-rbus` | *(rbus linkage)* | Enable RBUS DML provider |
| `--enable-t2` | `T2_EVENT_ENABLED` | Telemetry 2.0 markers |
| `--enable-webconfig` | `WEB_CONFIG_ENABLED` | WebConfig multipart support |
| `--enable-webconfig-lite` | `WEBCONFIG_LITE_ENABLE` | WebConfig Lite |
| `--enable-moca` | *(moca linkage)* | MoCA profile handlers |
docs/architecture/json-usage.md:67
- This doc section was updated to remove WiFi profile from the Thunder JSON-RPC consumer list, but later sections still reference removed WiFi sources/docs (e.g.,
src/hostif/profiles/wifi/…and WiFi JSON-RPC contracts). These references are now stale and include paths that no longer exist.
| Legacy local HTTP requests | `src/hostif/handlers/src/hostIf_jsonReqHandlerThread.cpp` | `YAJL` | inbound + outbound |
| Current WDMP HTTP server | `src/hostif/httpserver/src/http_server.cpp` | `cJSON` | inbound + outbound |
| Parodus and startup config files | `src/hostif/parodusClient/startParodus/startParodus.cpp`, `src/hostif/parodusClient/pal/libpd.cpp`, `src/hostif/parodusClient/pal/webpa_notification.cpp` | `cJSON` | inbound |
| Device defaults and bootstrap data | `src/hostif/profiles/DeviceInfo/XrdkCentralComBSStore.cpp` | `cJSON` | inbound |
| Thunder JSON-RPC consumers | `src/hostif/src/hostIf_utils.cpp`, `src/hostif/profiles/DeviceInfo/Device_DeviceInfo.cpp` | `cJSON` | outbound request + inbound response |
| Parodus notifications | `src/hostif/handlers/src/hostIf_NotificationHandler.cpp` | `cJSON` | outbound |
src/hostif/parodusClient/gtest/dm_test.cpp:1284
- The
appendNextObjectunit test was removed, but the function is not WiFi-specific. Consider keeping the test and switching the example strings to a non-WiFi subtree to preserve coverage.
int instanceNumber = 3;
replaceWithInstanceNumber(paramName, instanceNumber);
EXPECT_STREQ(paramName, "Device.DeviceInfo.XXXX.{i}");
}
src/hostif/src/gtest/gtest_src.cpp:273
- The
matchComponenttests were removed, butmatchComponent()is a generic TR-181 path parser used by multiple profiles (DeviceInfo/IP/MoCA/etc.). Keeping these tests (with a non-WiFi example string) helps prevent regressions in instance-number parsing and invalid-path rejection.
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif. Test procedure: Flash the build and ensure tr69hostif works without any issues. Risks: low Priority: P1 Signed-off-by: Anand N Anand_N@comcast.com
c5b6b9a to
178a8be
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 68 out of 68 changed files in this pull request and generated no new comments.
Suppressed comments (1)
test/docs/L2_Test_Coverage.md:561
- The per-profile coverage subtotal still includes the removed WiFi profile counts. After dropping the WiFi row, the subtotal values (GET/SET/Tests Needed/Covered/Gap/Coverage %) should be recomputed; otherwise this section overstates the parameter surface and understates coverage. Also consider updating the earlier per-test/per-feature tables and overall totals in this document, which still list the deleted WiFi NetworkManager test files.
Code Coverage Summary |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 68 out of 68 changed files in this pull request and generated no new comments.
Suppressed comments (1)
test/docs/L2_Test_Coverage.md:450
L2_Test_Coverage.mdstill lists WiFi Thunder plugin test/feature files (e.g.tr69hostif_networkmanager_endpoint_thunder_plugin.py,tr69hostif_networkmanager_ssid_thunder_plugin.py) and an outdated scenario count fortr69hostif_thunder_plugins.feature, even though this PR deletes those WiFi tests and removes the WiFi scenarios from the feature file. This makes the coverage tables/totals inaccurate and should be updated to match the new test set.
Code Coverage Summary |
Reason for change: WiFi DMLs for RDK-E have been added to the WiFiMetrics component. Therefore, they are being removed from tr69hostif.
Test procedure: Flash the build and ensure tr69hostif works without any issues.
Risks: low
Priority: P1
Signed-off-by: Anand N Anand_N@comcast.com