Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ All notable changes to this RDK Service will be documented in this file.

* 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.

## [4.0.0] - 2026-09-03
### Added
- Implemented a new `onRouteChange` event notify availability of IP Route either from WiFi or Ethernet
- Integrated new InternetConnectivityManager external component to identify the internet availability without having 204 endpoint
- Publishing onInternetStatusChange event upon wake-up
- Added mutex protection before accessing lastConnectedSSID
- Changed the onWiFiStateChange event to include SSID name
- Updated documentation for events and method descriptions.

## [3.7.0] - 2026-08-21
### Changed
- Implemented a caching logic about the status of the interface & update based on events
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ if (NOT WPEFramework_FOUND AND NOT Thunder_FOUND)
endif()

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
set(VERSION_MAJOR 3)
set(VERSION_MINOR 7)
set(VERSION_MAJOR 4)
set(VERSION_MINOR 0)
set(VERSION_PATCH 0)

add_compile_definitions(NETWORKMANAGER_MAJOR_VERSION=${VERSION_MAJOR})
Expand Down
27 changes: 11 additions & 16 deletions definition/NetworkManager.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"status": "production",
"description": "A Unified `NetworkManager` plugin that allows you to manage Ethernet and Wifi interfaces on the device.",
"sourcelocation": "https://github.com/rdkcentral/networkmanager/blob/main/definition/NetworkManager.json",
"version": "3.7.0"
"version": "4.0.0"
},
"definitions": {
"success": {
Expand All @@ -29,7 +29,7 @@
"autoconfig": {
"summary": "`true` if DHCP is used, `false` if IP is configured manually",
"type": "boolean",
"example": true
"example": false
},
"dhcpserver": {
"summary": "The DHCP Server address",
Expand Down Expand Up @@ -409,9 +409,9 @@
}
},
"SetIPSettings":{
"summary": "Sets the IP settings for the given interface.",
"summary": "Sets the IP settings for the given interface. The `interface`, `ipversion`, and `autoconfig` parameters are mandatory. When `autoconfig` is `false`, the `ipaddress`, `prefix`, `gateway`, `primarydns`, and `secondarydns` parameters must also be provided.",
"events":{
"onAddressChange" : "Triggered when the device connects to router.",
"onIPAddressChange" : "Triggered when the device connects to router.",
"onInternetStatusChange" : "Triggered when each IP address is lost or acquired."
},
"params": {
Expand Down Expand Up @@ -445,12 +445,7 @@
"required": [
"interface",
"ipversion",
"autoconfig",
"ipaddress",
"prefix",
"gateway",
"primarydns",
"secondarydns"
"autoconfig"
]
},
"result": {
Expand Down Expand Up @@ -974,7 +969,7 @@
"summary": "Remove given SSID from saved SSIDs. This method just removes an entry from the list and of the list is having only one entry thats being removed, it will initiate a disconnect.",
"events":{
"onWiFiStateChange" : "Triggered when Wifi state changes to DISCONNECTED",
"onAddressChange" : "Triggered when an IP Address is assigned or lost",
"onIPAddressChange" : "Triggered when an IP Address is assigned or lost",
"onInternetStatusChange" : "Triggered when internet connection state changed"
},
"params": {
Expand Down Expand Up @@ -1004,7 +999,7 @@
"summary": "Connects to a saved SSID. The `ssid` parameter is mandatory. Returns failure if `ssid` is not specified or not found in the saved SSIDs list.",
"events":{
"onWiFiStateChange" : "Triggered when Wifi state changes to CONNECTING, CONNECTED .",
"onAddressChange" : "Triggered when an IP Address is assigned or lost",
"onIPAddressChange" : "Triggered when an IP Address is assigned or lost",
"onInternetStatusChange" : "Triggered when internet connection state changed"
},
"params": {
Expand All @@ -1031,7 +1026,7 @@
}
},
"WiFiConnect":{
"summary": "Initiates request to connect to the specified SSID with the given passphrase. Passphrase can be `null` when the network security is `NONE`. The security mode is decided based on the highest security mode provided by the SSID. Also when called with no arguments, this method attempts to connect to the saved SSID and password. See `AddToKnownSSIDs`.",
"summary": "Initiates request to connect to the specified SSID with the given passphrase. Passphrase can be `null` when the network security is `NONE`. The security mode is decided based on the highest security mode provided by the SSID. Also when called with no arguments, this method attempts to connect to the last connected SSID. See `AddToKnownSSIDs`.",
"events":{
"onWiFiStateChange" : "Triggered when Wifi state changes to CONNECTING, CONNECTED ."
},
Expand Down Expand Up @@ -1127,7 +1122,7 @@
"summary": "Disconnects from the currently connected SSID. A event will be posted upon completion",
"events":{
"onWIFIStateChange" : "Triggered when Wifi state changes to DISCONNECTED (only if currently connected).",
"onAddressChange" : "Triggered when an IP Address is assigned or lost",
"onIPAddressChange" : "Triggered when an IP Address is assigned or lost",
"onInternetStatusChange" : "Triggered when internet connection state changed"
},
"result": {
Expand Down Expand Up @@ -1192,7 +1187,7 @@
"summary": "Initiates a connection using Wifi Protected Setup (WPS). An existing connection will be disconnected before attempting to initiate a new connection. Failure in WPS pairing will trigger an error event.\n\nIf the `method` parameter is set to `SERIALIZED_PIN`, then RDK retrieves the serialized pin using the Manufacturer (MFR) API. If the `method` parameter is set to `PIN`, then RDK use the pin supplied as part of the request. If the `method` parameter is set to `PBC`, then RDK uses Push Button Configuration (PBC) to obtain the pin.",
"events":{
"onWIFIStateChange" : "Triggered when Wifi state changes to DISCONNECTED (only if currently connected), CONNECTING, CONNECTED.",
"onAddressChange" : "Triggered when an IP Address is assigned or lost",
"onIPAddressChange" : "Triggered when an IP Address is assigned or lost",
"onInternetStatusChange" : "Triggered when internet connection state changed"
},
"params": {
Expand Down Expand Up @@ -1411,7 +1406,7 @@
]
}
},
"onAddressChange":{
"onIPAddressChange":{
"summary": "Triggered when an IP Address is assigned or lost.",
"params": {
"type": "object",
Expand Down
18 changes: 9 additions & 9 deletions docs/NetworkManagerPlugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<a name="head.NetworkManager_Plugin"></a>
# NetworkManager Plugin

**Version: 3.7.0**
**Version: 4.0.0**

**Status: :black_circle::black_circle::black_circle:**

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

This document describes purpose and functionality of the org.rdk.NetworkManager interface (version 3.7.0). It includes detailed specification about its methods provided and notifications sent.
This document describes purpose and functionality of the org.rdk.NetworkManager interface (version 4.0.0). It includes detailed specification about its methods provided and notifications sent.

<a name="head.Case_Sensitivity"></a>
## Case Sensitivity
Expand Down Expand Up @@ -464,7 +464,7 @@ Gets the IP setting for the given interface.
<a name="method.SetIPSettings"></a>
## *SetIPSettings [<sup>method</sup>](#head.Methods)*

Sets the IP settings for the given interface.
Sets the IP settings for the given interface. The `interface`, `ipversion`, and `autoconfig` parameters are mandatory. When `autoconfig` is `false`, the `ipaddress`, `prefix`, `gateway`, `primarydns`, and `secondarydns` parameters must also be provided.

Also see: [onAddressChange](#event.onAddressChange), [onInternetStatusChange](#event.onInternetStatusChange)

Expand All @@ -476,11 +476,11 @@ Also see: [onAddressChange](#event.onAddressChange), [onInternetStatusChange](#e
| params.interface | string | An interface, such as `eth0` or `wlan0`, depending upon availability of the given interface |
| params.ipversion | string | Either IPv4 or IPv6 |
| params.autoconfig | boolean | `true` if DHCP is used, `false` if IP is configured manually |
| params.ipaddress | string | The IP address |
| params.prefix | integer | The prefix number |
| params.gateway | string | The gateway address |
| params.primarydns | string | The primary DNS address |
| params.secondarydns | string | The secondary DNS address |
| params?.ipaddress | string | <sup>*(optional)*</sup> The IP address |
| params?.prefix | integer | <sup>*(optional)*</sup> The prefix number |
| params?.gateway | string | <sup>*(optional)*</sup> The gateway address |
| params?.primarydns | string | <sup>*(optional)*</sup> The primary DNS address |
| params?.secondarydns | string | <sup>*(optional)*</sup> The secondary DNS address |

### Result

Expand All @@ -501,7 +501,7 @@ Also see: [onAddressChange](#event.onAddressChange), [onInternetStatusChange](#e
"params": {
"interface": "wlan0",
"ipversion": "IPv4",
"autoconfig": true,
"autoconfig": false,
"ipaddress": "192.168.1.101",
"prefix": 24,
"gateway": "192.168.1.1",
Expand Down
Loading