Skip to content
Closed
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
82 changes: 82 additions & 0 deletions .github/workflows/validate_pr_desc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: PR Title Validation
permissions:
contents: read
on:
pull_request:
branches: [develop, main, 'support/**', 'hotfix/**', 'topic/**']
types: [opened, edited, synchronize]

jobs:
validate-pr-title:
runs-on: ubuntu-latest
steps:
- name: Validate PR Title Only
env:
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
# Define valid ticket IDs
VALID_TICKET_IDS=("RDKEMW")

# Function to validate ticket format and ID
validate_ticket() {
local text="$1"

echo "Validating PR title: $text"

# Check if text matches the pattern <TICKETID>-<ticketno.> : <desc>
if [[ ! "$text" =~ ^[A-Z0-9]+-[0-9]+[[:space:]]*:[[:space:]]*.+ ]]; then
echo "ERROR: PR title format is invalid."
echo "Expected format: <TICKETID>-<ticketno.> : <description>"
echo "Example: RDKEMW-123 : Fix playbook issue"
echo ""
echo "Valid ticket IDs are:"
printf "%s\n" "${VALID_TICKET_IDS[@]}"
return 1
fi

# Extract ticket ID from the text
local ticket_prefix=$(echo "$text" | sed -n 's/^\([A-Z0-9]\+\)-[0-9]\+[[:space:]]*:.*$/\1/p')

if [ -z "$ticket_prefix" ]; then
echo "ERROR: Could not extract ticket ID from PR title."
echo "Expected format: <TICKETID>-<ticketno.> : <description>"
echo ""
echo "Valid ticket IDs are:"
printf "%s\n" "${VALID_TICKET_IDS[@]}"
return 1
fi

# Check if extracted ticket ID is in the valid list
local valid=false
for valid_id in "${VALID_TICKET_IDS[@]}"; do
if [ "$ticket_prefix" = "$valid_id" ]; then
valid=true
break
fi
done

if [ "$valid" = false ]; then
echo "ERROR: Invalid ticket ID '$ticket_prefix' in PR title"
echo ""
echo "Valid ticket IDs are:"
printf "%s\n" "${VALID_TICKET_IDS[@]}"
echo ""
echo "Your PR title should start with one of the above ticket IDs followed by a number."
echo "Example: RDKEMW-123 : Fix playbook issue"
return 1
fi

echo "PR title validation passed! Ticket ID: $ticket_prefix"
return 0
}

# Validate PR Title Only
echo "=== Validating PR Title ==="
if ! validate_ticket "$PR_TITLE"; then
echo ""
echo "VALIDATION FAILED: PR title must contain valid ticket ID from the approved list."
exit 1
fi

echo ""
echo "🎉 PR TITLE VALIDATION PASSED! Title contains valid ticket ID."
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,29 @@ 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.

## [1.11.0] - 2025-12-19
### Added
- Added support to build for Thunder R5.x

## [1.10.0] - 2025-12-05
### Fixed
- Fixed the GetIPSettings for RDK Backend to return only when all the information like DNS info retrieved
- Fixed the retrieval of psk to pass it to MfrMgr.

## [1.9.0] - 2025-11-21
### Added
- Added shortterm solution to print the AP Info

## [1.8.0] - 2025-11-14
### Fixed
- Removed logging of WiFi PII information

## [1.7.0] - 2025-11-13
### Fixed
- Fixed bug MfrMgr Integration
- Subscribed to WiFi Events even when the device boots with wifi disabled
- Fixed the WiFi signal monitoring as the reporred RSSI was stale data

## [1.6.0] - 2025-10-31
### Added
- Integrated MfrMgr to persist WiFi Credential for DRI & Rollback to RDK-V Backend
Expand Down
18 changes: 16 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,25 @@
cmake_minimum_required(VERSION 3.3)

project(NetworkManager)
find_package(WPEFramework)

# Try WPEFramework first
find_package(WPEFramework QUIET CONFIG)

# If WPEFramework isn't found, try Thunder
if (NOT WPEFramework_FOUND)
find_package(Thunder QUIET CONFIG)
endif()

# Error out if neither is found
if (NOT WPEFramework_FOUND AND NOT Thunder_FOUND)
message(FATAL_ERROR
"Neither WPEFramework nor Thunder could be found.\n"
"Install one of them and ensure its CMake package is discoverable via CMAKE_PREFIX_PATH or default locations.")
endif()

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
set(VERSION_MAJOR 1)
set(VERSION_MINOR 6)
set(VERSION_MINOR 11)
set(VERSION_PATCH 0)

add_compile_definitions(NETWORKMANAGER_MAJOR_VERSION=${VERSION_MAJOR})
Expand Down
5 changes: 2 additions & 3 deletions definition/NetworkManager.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
"title": "NetworkManager Plugin",
"class": "NetworkManager",
"callsign": "org.rdk.NetworkManager",
"locator": "libWPEFrameworkNetworkManager.so",
"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": "1.6.0"
"version": "1.11.0"
},
"definitions": {
"success": {
Expand Down Expand Up @@ -135,7 +134,7 @@
"noise":{
"summary": "The WiFi Signal Noise detected in dBm",
"type": "string",
"example": "-106"
"example": "-96"
},
"snr":{
"summary": "Signal to Noise Ratio(SNR) in dBm",
Expand Down
10 changes: 5 additions & 5 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: 1.6.0**
**Version: 1.11.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 1.6.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 1.11.0). It includes detailed specification about its methods provided and notifications sent.

<a name="head.Case_Sensitivity"></a>
## Case Sensitivity
Expand Down Expand Up @@ -1398,7 +1398,7 @@ This method takes no parameters.
"strength": "-32",
"frequency": "2.4420",
"rate": "144",
"noise": "-106",
"noise": "-96",
"success": true
}
}
Expand Down Expand Up @@ -1552,7 +1552,7 @@ This method takes no parameters.
"quality": "Excellent",
"snr": "74",
"strength": "-32",
"noise": "-106",
"noise": "-96",
"success": true
}
}
Expand Down Expand Up @@ -1947,7 +1947,7 @@ Triggered when WIFI Signal quality changed which is decided based on SNR value w
"quality": "Excellent",
"snr": "74",
"strength": "-32",
"noise": "-106"
"noise": "-96"
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion legacy/LegacyNetworkAPIs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ using namespace WPEFramework::Plugin;
#define API_VERSION_NUMBER_MAJOR 2
#define API_VERSION_NUMBER_MINOR 0
#define API_VERSION_NUMBER_PATCH 0
#define NETWORK_MANAGER_CALLSIGN "org.rdk.NetworkManager.1"
#define NETWORK_MANAGER_CALLSIGN "org.rdk.NetworkManager"
#define SUBSCRIPTION_TIMEOUT_IN_MILLISECONDS 500
#define DEFAULT_PING_PACKETS 15

Expand Down
2 changes: 1 addition & 1 deletion legacy/LegacyWiFiManagerAPIs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ using namespace WPEFramework::Plugin;
#define API_VERSION_NUMBER_MAJOR 2
#define API_VERSION_NUMBER_MINOR 0
#define API_VERSION_NUMBER_PATCH 0
#define NETWORK_MANAGER_CALLSIGN "org.rdk.NetworkManager.1"
#define NETWORK_MANAGER_CALLSIGN "org.rdk.NetworkManager"
#define SUBSCRIPTION_TIMEOUT_IN_MILLISECONDS 500
#define WPA_SUPPLICANT_CONF "/opt/secure/wifi/wpa_supplicant.conf"

Expand Down
4 changes: 3 additions & 1 deletion plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ add_definitions(-DPLUGIN_BUILD_REFERENCE=${PLUGIN_BUILD_REFERENCE})
include_directories(${PROJECT_SOURCE_DIR}/interface)
include_directories(${PROJECT_SOURCE_DIR}/plugin)

# Build the main plugin that runs inside the WPEFramework daemon
# Build the main plugin that runs inside the daemon
add_library(${MODULE_NAME} SHARED
NetworkManager.cpp
NetworkManagerJsonRpc.cpp
Expand Down Expand Up @@ -104,6 +104,8 @@ if(ENABLE_GNOME_NETWORKMANAGER)
if(ENABLE_MIGRATION_MFRMGR_SUPPORT)
target_sources(${MODULE_IMPL_NAME} PRIVATE
gnome/NetworkManagerGnomeMfrMgr.cpp
gnome/gdbus/NetworkManagerGdbusMgr.cpp
gnome/gdbus/NetworkManagerGdbusUtils.cpp
)
endif()
if(ENABLE_MIGRATION_MFRMGR_SUPPORT)
Expand Down
8 changes: 0 additions & 8 deletions plugin/NetworkManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,14 +132,6 @@ namespace WPEFramework
void Deinitialize(PluginHost::IShell *service) override;
string Information() const override;

//override Subscribe from IDispatcher
uint32_t Subscribe(const uint32_t channel, const string& event, const string& designator) override
{
NMLOG_DEBUG("Subscription received for %s event from channelID (%u) with designator as %s", event.c_str(), channel, designator.c_str());
JSONRPC::Subscribe(channel, event, designator);
return Core::ERROR_NONE;
}

// Do not allow copy/move constructors
NetworkManager(const NetworkManager &) = delete;
NetworkManager &operator=(const NetworkManager &) = delete;
Expand Down
Loading