Skip to content

Commit 0deff45

Browse files
authored
Merge branch 'rdkcentral:develop' into develop
2 parents d79e298 + 9b94d81 commit 0deff45

21 files changed

Lines changed: 319 additions & 193 deletions

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ All notable changes to this RDK Service will be documented in this file.
1414

1515
* Changes in CHANGELOG should be updated when commits are added to the main or release branches. There should be one CHANGELOG entry per JIRA Ticket. This is not enforced on sprint branches since there could be multiple changes for the same JIRA ticket during development.
1616

17+
## [1.3.0] - 2025-09-17
18+
### Added
19+
- Implemented NetworkManagerProxy library which can help Thunder to Create COM-RPC connection to Out-Of-Process plugin
20+
- Implemented Internet Connectivity Monitoring for specific to Primary Interface.
21+
- Updated to not to post onInternetStatusChanged event when secondary interface is disturbed.
22+
1723
## [1.2.0] - 2025-09-15
1824
### Changed
1925
- Reverted NetworkManager to continue to run as out-of-process-plugin

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ find_package(WPEFramework)
2323

2424
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
2525
set(VERSION_MAJOR 1)
26-
set(VERSION_MINOR 2)
26+
set(VERSION_MINOR 3)
2727
set(VERSION_PATCH 0)
2828

2929
add_compile_definitions(NETWORKMANAGER_MAJOR_VERSION=${VERSION_MAJOR})

definition/NetworkManager.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"status": "production",
1010
"description": "A Unified `NetworkManager` plugin that allows you to manage Ethernet and Wifi interfaces on the device.",
1111
"sourcelocation": "https://github.com/rdkcentral/networkmanager/blob/main/definition/NetworkManager.json",
12-
"version": "1.2.0"
12+
"version": "1.3.0"
1313
},
1414
"definitions": {
1515
"success": {
@@ -1433,13 +1433,19 @@
14331433
"summary": "The internet connection status",
14341434
"type": "string",
14351435
"example": "FULLY_CONNECTED"
1436+
},
1437+
"interface":{
1438+
"summary": "The internet status change on default interface",
1439+
"type": "string",
1440+
"example": "wlan0"
14361441
}
14371442
},
14381443
"required": [
14391444
"prevState",
14401445
"prevStatus",
14411446
"state",
1442-
"status"
1447+
"status",
1448+
"interface"
14431449
]
14441450
}
14451451
},

docs/NetworkManagerPlugin.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<a name="head.NetworkManager_Plugin"></a>
33
# NetworkManager Plugin
44

5-
**Version: 1.2.0**
5+
**Version: 1.3.0**
66

77
**Status: :black_circle::black_circle::black_circle:**
88

@@ -23,7 +23,7 @@ org.rdk.NetworkManager interface for Thunder framework.
2323
<a name="head.Scope"></a>
2424
## Scope
2525

26-
This document describes purpose and functionality of the org.rdk.NetworkManager interface (version 1.2.0). It includes detailed specification about its methods provided and notifications sent.
26+
This document describes purpose and functionality of the org.rdk.NetworkManager interface (version 1.3.0). It includes detailed specification about its methods provided and notifications sent.
2727

2828
<a name="head.Case_Sensitivity"></a>
2929
## Case Sensitivity
@@ -1840,6 +1840,7 @@ Triggered when internet connection state changed.The possible internet connectio
18401840
| params.prevStatus | string | The previous internet connection status |
18411841
| params.state | integer | The internet connection state |
18421842
| params.status | string | The internet connection status |
1843+
| params.interface | string | The internet status change on default interface |
18431844

18441845
### Example
18451846

@@ -1851,7 +1852,8 @@ Triggered when internet connection state changed.The possible internet connectio
18511852
"prevState": 1,
18521853
"prevStatus": "NO_INTERNET",
18531854
"state": 4,
1854-
"status": "FULLY_CONNECTED"
1855+
"status": "FULLY_CONNECTED",
1856+
"interface": "wlan0"
18551857
}
18561858
}
18571859
```

interface/CMakeLists.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ find_package(${NAMESPACE}Plugins REQUIRED)
2323
find_package(CompileSettingsDebug CONFIG REQUIRED)
2424
find_package(ProxyStubGenerator REQUIRED)
2525

26+
set(PROXYLIB ${NAMESPACE}${PROJECT_NAME}Proxy)
2627
set(ProxyStubGenerator_DIR ${CMAKE_SYSROOT}${CMAKE_INSTALL_PREFIX}/tools/cmake ${ProxyStubGenerator_DIR})
2728

2829
if(NOT GENERATOR_SEARCH_PATH)
@@ -33,4 +34,26 @@ file(GLOB INTERFACE_HEADER ${CMAKE_CURRENT_SOURCE_DIR})
3334

3435
ProxyStubGenerator(INPUT "${INTERFACE_HEADER}" OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/generated" INCLUDE_PATH ${GENERATOR_SEARCH_PATH})
3536

37+
file(GLOB PROXY_STUB_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/generated/ProxyStubs*.cpp")
38+
39+
add_library(${PROXYLIB} SHARED ${PROXY_STUB_SOURCES}
40+
../plugin/Module.cpp)
41+
42+
target_include_directories(${PROXYLIB} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../plugin/)
43+
44+
target_link_libraries(${PROXYLIB} PRIVATE
45+
${NAMESPACE}Core::${NAMESPACE}Core
46+
${NAMESPACE}COM::${NAMESPACE}COM
47+
CompileSettingsDebug::CompileSettingsDebug)
48+
49+
set_target_properties(${PROXYLIB} PROPERTIES
50+
CXX_STANDARD 11
51+
CXX_STANDARD_REQUIRED YES
52+
FRAMEWORK FALSE)
53+
54+
string(TOLOWER ${NAMESPACE} NAMESPACE_LIB)
55+
56+
install(TARGETS ${PROXYLIB} EXPORT ${PROXYLIB}Targets
57+
LIBRARY DESTINATION lib/${NAMESPACE_LIB}/proxystubs COMPONENT libs)
58+
3659
install(FILES INetworkManager.h DESTINATION include/${NAMESPACE}/interfaces)

interface/INetworkManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ namespace WPEFramework
271271
virtual void onInterfaceStateChange(const InterfaceState state /* @in */, const string interface /* @in */) = 0;
272272
virtual void onActiveInterfaceChange(const string prevActiveInterface /* @in */, const string currentActiveInterface /* @in */) = 0;
273273
virtual void onIPAddressChange(const string interface /* @in */, const string ipversion /* @in */, const string ipaddress /* @in */, const IPStatus status /* @in */) = 0;
274-
virtual void onInternetStatusChange(const InternetStatus prevState /* @in */, const InternetStatus currState /* @in */) = 0;
274+
virtual void onInternetStatusChange(const InternetStatus prevState /* @in */, const InternetStatus currState /* @in */, const string interface /* @in */) = 0;
275275

276276
// WiFi Notifications that other processes can subscribe to
277277
virtual void onAvailableSSIDs(const string jsonOfScanResults /* @in */) = 0;

plugin/CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,12 @@ add_definitions(-DPLUGIN_BUILD_REFERENCE=${PLUGIN_BUILD_REFERENCE})
5252
include_directories(${PROJECT_SOURCE_DIR}/interface)
5353
include_directories(${PROJECT_SOURCE_DIR}/plugin)
5454

55-
#Setting up source files
56-
file(GLOB PROXY_STUB_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/../interface/generated/ProxyStubs*.cpp")
57-
5855
# Build the main plugin that runs inside the WPEFramework daemon
5956
add_library(${MODULE_NAME} SHARED
6057
NetworkManager.cpp
6158
NetworkManagerJsonRpc.cpp
6259
NetworkManagerLogger.cpp
63-
Module.cpp
64-
${PROXY_STUB_SOURCES})
60+
Module.cpp)
6561

6662
target_link_libraries(${MODULE_NAME} PRIVATE
6763
${NAMESPACE}Core::${NAMESPACE}Core
@@ -78,8 +74,7 @@ add_library(${MODULE_IMPL_NAME} SHARED
7874
NetworkManagerConnectivity.cpp
7975
NetworkManagerStunClient.cpp
8076
NetworkManagerLogger.cpp
81-
Module.cpp
82-
${PROXY_STUB_SOURCES})
77+
Module.cpp)
8378

8479
if(ENABLE_GNOME_NETWORKMANAGER)
8580
if(ENABLE_GNOME_GDBUS)

plugin/NetworkManager.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ namespace WPEFramework
7979
_parent.onIPAddressChange(interface, ipversion, ipaddress, status);
8080
}
8181

82-
void onInternetStatusChange(const Exchange::INetworkManager::InternetStatus prevState, const Exchange::INetworkManager::InternetStatus currState) override
82+
void onInternetStatusChange(const Exchange::INetworkManager::InternetStatus prevState, const Exchange::INetworkManager::InternetStatus currState, const string interface) override
8383
{
84-
_parent.onInternetStatusChange(prevState, currState);
84+
_parent.onInternetStatusChange(prevState, currState, interface);
8585
}
8686

8787
void onAvailableSSIDs(const string jsonOfScanResults) override
@@ -267,7 +267,7 @@ namespace WPEFramework
267267
void onInterfaceStateChange(const Exchange::INetworkManager::InterfaceState state, const string interface);
268268
void onActiveInterfaceChange(const string prevActiveInterface, const string currentActiveinterface);
269269
void onIPAddressChange(const string interface, const string ipversion, const string ipaddress, const Exchange::INetworkManager::IPStatus status);
270-
void onInternetStatusChange(const Exchange::INetworkManager::InternetStatus prevState, const Exchange::INetworkManager::InternetStatus currState);
270+
void onInternetStatusChange(const Exchange::INetworkManager::InternetStatus prevState, const Exchange::INetworkManager::InternetStatus currState, const string interface);
271271
void onAvailableSSIDs(const string jsonOfScanResults);
272272
void onWiFiStateChange(const Exchange::INetworkManager::WiFiState state);
273273
void onWiFiSignalQualityChange(const string ssid, const string strength, const string noise, const string snr, const Exchange::INetworkManager::WiFiSignalQuality quality);

0 commit comments

Comments
 (0)