From 598673cbf8e9b99c924220f9f58751d4152555db Mon Sep 17 00:00:00 2001 From: nhanasi Date: Wed, 28 Jan 2026 10:29:22 -0500 Subject: [PATCH 01/31] RDKEMW-13043 Bring MW changes for RDKEVD-5412 in 8.4 branch --- lib/rdk/backup_logs.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/rdk/backup_logs.sh b/lib/rdk/backup_logs.sh index e7e41af9..c087e159 100755 --- a/lib/rdk/backup_logs.sh +++ b/lib/rdk/backup_logs.sh @@ -152,6 +152,9 @@ if [ -f /tmp/mount_log.txt ];then mv /tmp/mount_log.txt "$LOG_PATH" fi +if [ -f /tmp/mount-ta_log.txt ];then +    mv /tmp/mount-ta_log.txt "$LOG_PATH" +fi cp /version.txt "$LOG_PATH" cp /etc/skyversion.txt "${LOG_PATH}/skyversion.txt" From 2716e40fc5eee8ba26aacc96897f64548ec86def Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Wed, 28 Jan 2026 16:11:20 +0000 Subject: [PATCH 02/31] Sysint 4.2.1 hotfix release --- CHANGELOG.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af092e79..b34df66c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,24 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v1](https://github.com/rdkcentral/sysint/compare/4.2.1...4.2.1v1) +#### [4.2.1v2](https://github.com/rdkcentral/sysint/compare/4.2.2...4.2.1v2) +- Sysint 4.2.1 hotfix release [`7394e84`](https://github.com/rdkcentral/sysint/commit/7394e84b8315a9a2e9de702b428ee7a71babc62d) +- RDKEMW-13043 Bring MW changes for RDKEVD-5412 in 8.4 branch [`598673c`](https://github.com/rdkcentral/sysint/commit/598673cbf8e9b99c924220f9f58751d4152555db) - SERXIONE-8331 : Added viper_ipa to exceptions for /media/apps/sky/packages [`16d826b`](https://github.com/rdkcentral/sysint/commit/16d826bda4097516816966257f4e74dbf5a44396) +#### [4.2.2](https://github.com/rdkcentral/sysint/compare/4.2.1...4.2.2) + +> 21 January 2026 + +- RDK-57502 - [RDKE] Migrate Operation Support Log Upload Related Scripts To C Implementation [`#410`](https://github.com/rdkcentral/sysint/pull/410) +- SERXIONE-8331 : Added viper_ipa to exceptions for /media/apps/sky/packages [`#420`](https://github.com/rdkcentral/sysint/pull/420) +- RDK-59247: cleaning up network scripts. [`#402`](https://github.com/rdkcentral/sysint/pull/402) +- RDKEMW-11363: [NM Dispatcher] Reduce repetitive logging [`#415`](https://github.com/rdkcentral/sysint/pull/415) +- Sysint 4.2.2 release changelog updates [`a8ca15d`](https://github.com/rdkcentral/sysint/commit/a8ca15d07e8fcecb408945645892e9e47385e242) +- Merge tag '4.2.1' into develop [`1df413f`](https://github.com/rdkcentral/sysint/commit/1df413f4f00e87a43eb092c6c57e302d754fba90) +- RDK-59247:Migrate Functionality In Network scripts To Core Modules [`8dd5ab9`](https://github.com/rdkcentral/sysint/commit/8dd5ab957251cfc80d6556560386019ca86088cb) + #### [4.2.1](https://github.com/rdkcentral/sysint/compare/4.2.0...4.2.1) > 17 December 2025 From 03ebaa21978cfa86a147f55592862384eaa988f7 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Tue, 3 Feb 2026 15:21:27 +0000 Subject: [PATCH 03/31] XIONE-18284: Need to add monarch process name for core upload --- lib/rdk/core_shell.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rdk/core_shell.sh b/lib/rdk/core_shell.sh index 202439f9..eff23257 100755 --- a/lib/rdk/core_shell.sh +++ b/lib/rdk/core_shell.sh @@ -334,7 +334,7 @@ if [ "$1" = "xcal-discovery-" ] || [ "$1" = "xdiscovery" ] || [ "$1" = "IARMDae [ "$1" = "subttxrend-app" ] || [ "$1" = "logrotate" ] || [ "$1" = "NetworkManager" ] || [ "$1" = "NWMgrPlugin" ] || [ "$1" = "nm_event_thrd" ] || [ "$1" = "Monitor::IResou" ] || [ "$1" = "DRMSYSTEM" ] || [ "$1" = "HTTPREQUEST_MAN" ] || - [ "$1" = "civetweb-worker" ] || [ "$1" = "nfrtool" ]; then + [ "$1" = "civetweb-worker" ] || [ "$1" = "nfrtool" ] || [ "$1" = "homescreen_egl" ]; then dumpFile exit 0 fi From 3e62af9e980686ab416f8f27045d2c4160274cbb Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Tue, 3 Feb 2026 15:22:49 +0000 Subject: [PATCH 04/31] 4.2.1v3 hotfix release --- CHANGELOG.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b34df66c..e4dbfe2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,21 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v2](https://github.com/rdkcentral/sysint/compare/4.2.2...4.2.1v2) +#### [4.2.1v3](https://github.com/rdkcentral/sysint/compare/4.2.3...4.2.1v3) -- Sysint 4.2.1 hotfix release [`7394e84`](https://github.com/rdkcentral/sysint/commit/7394e84b8315a9a2e9de702b428ee7a71babc62d) +- Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) - RDKEMW-13043 Bring MW changes for RDKEVD-5412 in 8.4 branch [`598673c`](https://github.com/rdkcentral/sysint/commit/598673cbf8e9b99c924220f9f58751d4152555db) -- SERXIONE-8331 : Added viper_ipa to exceptions for /media/apps/sky/packages [`16d826b`](https://github.com/rdkcentral/sysint/commit/16d826bda4097516816966257f4e74dbf5a44396) +- XIONE-18284: Need to add monarch process name for core upload [`03ebaa2`](https://github.com/rdkcentral/sysint/commit/03ebaa21978cfa86a147f55592862384eaa988f7) + +#### [4.2.3](https://github.com/rdkcentral/sysint/compare/4.2.2...4.2.3) + +> 30 January 2026 + +- RDK-59964: Sysint 4.2.3 release [`#438`](https://github.com/rdkcentral/sysint/pull/438) +- RDK-59964 : ZeroConfig (IPv4LL) support for EntOS - AirPlay Devices [`#431`](https://github.com/rdkcentral/sysint/pull/431) +- Update readBTAddress-generic.sh [`fac7dfc`](https://github.com/rdkcentral/sysint/commit/fac7dfcb86a413388dc243d9811110928fb9b6d1) +- Sysint 4.2.3 release changelog updates [`e455a80`](https://github.com/rdkcentral/sysint/commit/e455a80dc92d3610211678cc79b175bad879c97a) +- Create readBTAddress-generic.sh [`7b085a2`](https://github.com/rdkcentral/sysint/commit/7b085a2e8737e1bf01d14547113f3a578cbd4f5f) #### [4.2.2](https://github.com/rdkcentral/sysint/compare/4.2.1...4.2.2) From 00f2da8b519cb3c0100a999ac635ebabbb0415a3 Mon Sep 17 00:00:00 2001 From: Shibu Kakkoth Vayalambron Date: Wed, 4 Feb 2026 11:27:04 -0800 Subject: [PATCH 05/31] RDKEMW-13061: Include utility indepenent of T2 for telemetry upload (#443) Reason for change : 1] Adding utility that DS manager can use for critical deep sleep event notification to telemetry cloud 2] This provides a short circuited path only to be used for time critical eventing which is constrained by scenarios like the CPU going to hibernate modes. --- lib/rdk/alertSystem.sh | 132 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 lib/rdk/alertSystem.sh diff --git a/lib/rdk/alertSystem.sh b/lib/rdk/alertSystem.sh new file mode 100644 index 00000000..f108aa35 --- /dev/null +++ b/lib/rdk/alertSystem.sh @@ -0,0 +1,132 @@ +#!/bin/sh +############################################################################## +# If not stated otherwise in this file or this component's LICENSE file the +# following copyright and licenses apply: +# +# Copyright 2026 RDK Management +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Purpose: This script is used to backup the Logs +# Scope: RDK devices +# Usage: This script is triggered by systemd service +############################################################################## + + +SCRIPT_NAME=`basename "$0"` + +# Arguments count check +if [ "$#" -ne 2 ]; then + echo "**************************************************" + echo "Usage: $SCRIPT_NAME " + echo "**************************************************" + exit 1 +fi + +# Argument Assigment +MSG_DATA="$2" +PROCESS_NAME="$1" + +# Setup the config File +if [ -f /etc/device.properties ];then + . /etc/device.properties +fi + +# Utility script for getting MAC address utilities +if [ -f /lib/rdk/utils.sh ];then + . /lib/rdk/utils.sh +fi + +if [ -f /lib/rdk/getPartnerId.sh ];then + . /lib/rdk/getPartnerId.sh +fi + +if [ -f $RDK_PATH/exec_curl_mtls.sh ]; then + . $RDK_PATH/exec_curl_mtls.sh +else + echo "$SCRIPT_NAME: exec_curl_mtls.sh not found, exiting!" + exit 1 +fi + +# Configuration Files +VERSION=1 +EXECUTION_ID="$$" +HTTP_CODE="/tmp/alertSystemHttpCode_${EXECUTION_ID}" +HTTP_FILENAME="/tmp/alertSystemHttpResponse_${EXECUTION_ID}.txt" + +# File that is made available via DCM after processing the DCA profile by T2 +TELEMETRY_PROFILE_DEFAULT_PATH="/tmp/DCMSettings.conf" + +EnableOCSPStapling="/tmp/.EnableOCSPStapling" +EnableOCSP="/tmp/.EnableOCSPCA" + +currentTime=`date '+%Y-%m-%d %H:%M:%S'` +partnerId=$(getPartnerId) +echo "$SCRIPT_NAME: $currentTime" + +# Loggging should be handled by the caller +alertLog() { + echo "`/bin/timestamp` : $0: $*" +} + +# Extract upload end point from DCM processed telemetry profile +if [ -f $TELEMETRY_PROFILE_DEFAULT_PATH ]; then + UPLOAD_END_POINT=`grep '"uploadRepository:URL":"' $TELEMETRY_PROFILE_DEFAULT_PATH | awk -F 'uploadRepository:URL":' '{print $NF}' | awk -F '",' '{print $1}' | sed 's/"//g' | sed 's/}//g'` + if [ ! -z "$UPLOAD_END_POINT" ]; then + alertLog "Deep sleep notification end point = $UPLOAD_END_POINT" + else + alertLog "Empty upload endpoint: $UPLOAD_END_POINT from $TELEMETRY_PROFILE_DEFAULT_PATH" + exit 1 + fi +else + alertLog "$TELEMETRY_PROFILE_DEFAULT_PATH, File Not Found" + exit 1 +fi + +# Device attributes +estb_mac=$(getEstbMacAddress) +software_version=`grep ^imagename: /version.txt | cut -d ':' -f2` + + +if [ "x$PROCESS_NAME" == "xdeepSleepMgrMain" ]; then + # Message data is actual metadata header in case of trigger from deepSleep manager process + # This change is needed since there are data clouds in different deployment which are not flexible to accomodate any deviations in data format + strjson="{\"searchResult\":[{\"Time\":\"$currentTime\"},{\"process_name\":\"$PROCESS_NAME\"},{\"mac\":\"$estb_mac\"},{\"Version\":\"$software_version\"},{\"PartnerId\":\"$partnerId\"},{\"$MSG_DATA\":\"1\"}]}" +else + strjson="{\"searchResult\":[{\"process_name\":\"$PROCESS_NAME\"},{\"mac\":\"$estb_mac\"},{\"Version\":\"$software_version\"},{\"msgTime\":\"$currentTime\"},{\"PartnerId\":\"$partnerId\"},{\"logEntry\":\"$MSG_DATA\"}]}" +fi + +if [ -f $EnableOCSPStapling ] || [ -f $EnableOCSP ]; then + CURL_INPUT=" -w '%{http_code}\n' -H \"Accept: application/json\" -H \"Content-type: application/json\" -X POST -d '$strjson' -o \"$HTTP_FILENAME\" \"$UPLOAD_END_POINT\" --cert-status --connect-timeout 30 -m 30 " +else + CURL_INPUT=" -w '%{http_code}\n' -H \"Accept: application/json\" -H \"Content-type: application/json\" -X POST -d '$strjson' -o \"$HTTP_FILENAME\" \"$UPLOAD_END_POINT\" --connect-timeout 30 -m 30 " +fi +alertLog "$SCRIPT_NAME: CURL_INPUT : $CURL_INPUT" + +## Execute curl command with mTLS +response=`exec_curl_mtls "$CURL_INPUT" "alertLog"` +TLSRet=$? +## - Do not introduce any other logging in between collecting return status + +alertLog "Response from exec_curl_mtls: $response" +http_code=$(awk -F\" '{print $1}' $HTTP_CODE) +alertLog "$SCRIPT_NAME: Return Status: $TLSRet, HTTP CODE:$http_code" +if [ "$TLSRet" = "0" ] && [ "$http_code" = "200" ]; then + #Upload success + rm -f $HTTP_FILENAME $HTTP_CODE + exit 0 +else + #Upload failed + rm -f $HTTP_FILENAME $HTTP_CODE + exit 1 +fi From 63201ef95f0d6b5484fd32fdcb0325b4e95f3e4c Mon Sep 17 00:00:00 2001 From: shibu-kv Date: Wed, 4 Feb 2026 11:33:02 -0800 Subject: [PATCH 06/31] Hotfix release for alert script to notify deepsleep --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4dbfe2d..a915a32f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [4.2.1v4](https://github.com/rdkcentral/sysint/compare/4.2.1v3...4.2.1v4) + +- RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) + #### [4.2.1v3](https://github.com/rdkcentral/sysint/compare/4.2.3...4.2.1v3) - Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) From 59ea688141fc82a18f0626ba565d60ab50323a5a Mon Sep 17 00:00:00 2001 From: nhanasi Date: Mon, 9 Feb 2026 13:55:23 -0500 Subject: [PATCH 07/31] RDKEMW-13425: Remove monarch process name for core upload (#452) --- lib/rdk/core_shell.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rdk/core_shell.sh b/lib/rdk/core_shell.sh index eff23257..202439f9 100755 --- a/lib/rdk/core_shell.sh +++ b/lib/rdk/core_shell.sh @@ -334,7 +334,7 @@ if [ "$1" = "xcal-discovery-" ] || [ "$1" = "xdiscovery" ] || [ "$1" = "IARMDae [ "$1" = "subttxrend-app" ] || [ "$1" = "logrotate" ] || [ "$1" = "NetworkManager" ] || [ "$1" = "NWMgrPlugin" ] || [ "$1" = "nm_event_thrd" ] || [ "$1" = "Monitor::IResou" ] || [ "$1" = "DRMSYSTEM" ] || [ "$1" = "HTTPREQUEST_MAN" ] || - [ "$1" = "civetweb-worker" ] || [ "$1" = "nfrtool" ] || [ "$1" = "homescreen_egl" ]; then + [ "$1" = "civetweb-worker" ] || [ "$1" = "nfrtool" ]; then dumpFile exit 0 fi From 2ac36a2f2b7fca9fcd85364cd317f535224a0fce Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Mon, 9 Feb 2026 19:15:18 +0000 Subject: [PATCH 08/31] Sysint 4.2.1 hotfix release --- CHANGELOG.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a915a32f..050580c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,23 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v4](https://github.com/rdkcentral/sysint/compare/4.2.1v3...4.2.1v4) +#### [4.2.1v5](https://github.com/rdkcentral/sysint/compare/4.3.0...4.2.1v5) +- RDKEMW-13425: Remove monarch process name for core upload [`#452`](https://github.com/rdkcentral/sysint/pull/452) - RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) +- 4.2.1v3 hotfix release [`3e62af9`](https://github.com/rdkcentral/sysint/commit/3e62af9e980686ab416f8f27045d2c4160274cbb) +- Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) +- Hotfix release for alert script to notify deepsleep [`63201ef`](https://github.com/rdkcentral/sysint/commit/63201ef95f0d6b5484fd32fdcb0325b4e95f3e4c) -#### [4.2.1v3](https://github.com/rdkcentral/sysint/compare/4.2.3...4.2.1v3) +#### [4.3.0](https://github.com/rdkcentral/sysint/compare/4.2.3...4.3.0) -- Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) -- RDKEMW-13043 Bring MW changes for RDKEVD-5412 in 8.4 branch [`598673c`](https://github.com/rdkcentral/sysint/commit/598673cbf8e9b99c924220f9f58751d4152555db) -- XIONE-18284: Need to add monarch process name for core upload [`03ebaa2`](https://github.com/rdkcentral/sysint/commit/03ebaa21978cfa86a147f55592862384eaa988f7) +> 6 February 2026 + +- RDKEMW-13059: Include utility indepenent of T2 for telemetry upload [`#442`](https://github.com/rdkcentral/sysint/pull/442) +- XIONE-18284: Need to add monarch process name for core upload [`#441`](https://github.com/rdkcentral/sysint/pull/441) +- Sysint 4.2.3 release changelog updates [`#437`](https://github.com/rdkcentral/sysint/pull/437) +- 4.3.0 release changelog updates [`a232c32`](https://github.com/rdkcentral/sysint/commit/a232c32f1af89c70ef4a0b9f4fc8da0ca1ef57d5) +- Merge tag '4.2.3' into develop [`07c7aab`](https://github.com/rdkcentral/sysint/commit/07c7aab08b14425f711584a9002c8d1c5d1ad2be) #### [4.2.3](https://github.com/rdkcentral/sysint/compare/4.2.2...4.2.3) From 489d7a53050030119eddf83441bc1f0d0da784ef Mon Sep 17 00:00:00 2001 From: nhanasi Date: Wed, 11 Feb 2026 09:02:32 -0500 Subject: [PATCH 09/31] RDKEMW-13691: Increase Timeout for NTP PartnerURL Read (#456) * Update timesyncd-conf-update.sh * Update timesyncd-conf-update.sh --------- Co-authored-by: sindhu-krishnan <102755514+sindhu-krishnan@users.noreply.github.com> --- lib/rdk/timesyncd-conf-update.sh | 63 +++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/lib/rdk/timesyncd-conf-update.sh b/lib/rdk/timesyncd-conf-update.sh index ea8b30ba..9e23e03f 100755 --- a/lib/rdk/timesyncd-conf-update.sh +++ b/lib/rdk/timesyncd-conf-update.sh @@ -25,8 +25,8 @@ output="" count=0 LOG_FILE="/opt/logs/ntp.log" -attempts=0 -max_attempts=2 +attempts=1 +max_attempts=5 if [ -f /etc/env_setup.sh ]; then . /etc/env_setup.sh @@ -49,14 +49,59 @@ if [ -f /lib/rdk/getPartnerProperty.sh ]; then fi } +get_ntp_hosts_from_bootstrap() { + BOOTSTRAP="/opt/secure/RFC/bootstrap.ini" + + if [ ! -f "$BOOTSTRAP" ]; then + ntpLog "bootstrap.ini not found at $BOOTSTRAP" + return 1 + fi + + # Helper to fetch key=value from bootstrap.ini (first match) + get_bs_val() { + key="$1" + # Extract RHS after '=' and trim whitespace + grep -m1 -E "^[[:space:]]*$key=" "$BOOTSTRAP" 2>/dev/null | \ + cut -d'=' -f2- | sed 's/^[[:space:]]*//; s/[[:space:]]*$//' + } + + bs1="$(get_bs_val 'Device.Time.NTPServer1')" + bs2="$(get_bs_val 'Device.Time.NTPServer2')" + bs3="$(get_bs_val 'Device.Time.NTPServer3')" + bs4="$(get_bs_val 'Device.Time.NTPServer4')" + bs5="$(get_bs_val 'Device.Time.NTPServer5')" + + # Only fill missing values (don’t override TR-181 values if present) + [ -z "$hostName" ] && hostName="$bs1" + [ -z "$hostName2" ] && hostName2="$bs2" + [ -z "$hostName3" ] && hostName3="$bs3" + [ -z "$hostName4" ] && hostName4="$bs4" + [ -z "$hostName5" ] && hostName5="$bs5" + + return 0 +} + + ntpLog "Retrive NTP Server URL from /lib/rdk/getPartnerProperty.sh..." -while [ ! "$hostName" ] && [ ! "$hostName2" ] && [ ! "$hostName3" ] && [ ! "$hostName4" ] && [ ! "$hostName5" ] && [ $attempts -lt $max_attempts ] -do - # NTP URL from the property file +while [ "$attempts" -le "$max_attempts" ]; do + + ntpLog "Attempt $attempts/$max_attempts to retrieve NTP server URL(s)..." get_ntp_hosts - sleep 5 - echo "Attempt $attempts - Failed to retrieve NTP server URL, attempting again..." - attempts=$((attempts + 1)) + + if [ "$hostName" ] || [ "$hostName2" ] || [ "$hostName3" ] || [ "$hostName4" ] || [ "$hostName5" ]; then + break + fi + + # If this is the last attempt, try bootstrap as fallback and then break + if [ $attempts -eq $max_attempts ]; then + ntpLog "TR-181 returned empty NTP server list; falling back to /opt/secure/RFC/bootstrap.ini..." + get_ntp_hosts_from_bootstrap + break + fi + + sleep 3 + attempts=$((attempts + 1)) + done partnerHostnames="$hostName $hostName2 $hostName3 $hostName4 $hostName5" @@ -87,7 +132,7 @@ if [ -f /etc/systemd/timesyncd.conf ];then sed -i "s/^NTP=.*/NTP=/g" /tmp/timesyncd.conf sed -i "s/^NTP=/NTP=$updateHostname $defaultHostName2/" /tmp/timesyncd.conf systemd_ver=`systemctl --version | grep systemd | awk '{print $2}'` - if [ "$systemd_ver" -ge 248 ]; then + if [ "$systemd_ver" -ge 248 ]; then # For systemd version >= 248, add the ConnectionRetrySec parameter echo "ConnectionRetrySec=5" >> /tmp/timesyncd.conf fi From f0da1b1970272b72fbbee0ea45985d55b76e73a3 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Wed, 11 Feb 2026 14:04:16 +0000 Subject: [PATCH 10/31] Sysint 4.2.1 hotfix release --- CHANGELOG.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 050580c5..2254b9cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,23 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v5](https://github.com/rdkcentral/sysint/compare/4.3.0...4.2.1v5) +#### [4.2.1v6](https://github.com/rdkcentral/sysint/compare/4.3.1...4.2.1v6) +- RDKEMW-13691: Increase Timeout for NTP PartnerURL Read [`#456`](https://github.com/rdkcentral/sysint/pull/456) - RDKEMW-13425: Remove monarch process name for core upload [`#452`](https://github.com/rdkcentral/sysint/pull/452) - RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) +- Sysint 4.2.1 hotfix release [`2ac36a2`](https://github.com/rdkcentral/sysint/commit/2ac36a2f2b7fca9fcd85364cd317f535224a0fce) - 4.2.1v3 hotfix release [`3e62af9`](https://github.com/rdkcentral/sysint/commit/3e62af9e980686ab416f8f27045d2c4160274cbb) - Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) -- Hotfix release for alert script to notify deepsleep [`63201ef`](https://github.com/rdkcentral/sysint/commit/63201ef95f0d6b5484fd32fdcb0325b4e95f3e4c) + +#### [4.3.1](https://github.com/rdkcentral/sysint/compare/4.3.0...4.3.1) + +> 11 February 2026 + +- RDKEMW-13687: Increase Timeout for NTP PartnerURL Read [`#450`](https://github.com/rdkcentral/sysint/pull/450) +- Revert "XIONE-18284: Need to add monarch process name for core upload (#441)" [`#451`](https://github.com/rdkcentral/sysint/pull/451) +- 4.3.1 release changelog updates [`76bf8f0`](https://github.com/rdkcentral/sysint/commit/76bf8f036a1d992100e7235c3c2d960cee81f2e5) +- Merge tag '4.3.0' into develop [`8fcdc31`](https://github.com/rdkcentral/sysint/commit/8fcdc317b2edc4f6d6cbf52d0cfec81c82660466) #### [4.3.0](https://github.com/rdkcentral/sysint/compare/4.2.3...4.3.0) From d14b2d3545c675760414b892e711d287a71edebe Mon Sep 17 00:00:00 2001 From: nhanasi Date: Thu, 12 Feb 2026 11:19:53 -0500 Subject: [PATCH 11/31] RDKEMW-13932: Move Bluetooth Mac update from Device Details to Bluetooth Service (#458) Co-authored-by: nhanas001c --- lib/rdk/getDeviceDetails.sh | 6 ++++-- lib/rdk/readBTAddress-generic.sh | 31 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 lib/rdk/readBTAddress-generic.sh diff --git a/lib/rdk/getDeviceDetails.sh b/lib/rdk/getDeviceDetails.sh index 372ba4b6..ab85718a 100755 --- a/lib/rdk/getDeviceDetails.sh +++ b/lib/rdk/getDeviceDetails.sh @@ -278,8 +278,10 @@ getDeviceSerialNumber() getBluetoothMac() { bluetooth_mac="00:00:00:00:00:00" - if [ "$BLUETOOTH_ENABLED" = "true" ]; then - bluetooth_mac=$(getDeviceBluetoothMac) + if [ -f /lib/rdk/readBTAddress-vendor.sh ]; then + bluetooth_mac=`sh /lib/rdk/readBTAddress-vendor.sh` + else + bluetooth_mac=`sh /lib/rdk/readBTAddress-generic.sh` fi echo "$bluetooth_mac" diff --git a/lib/rdk/readBTAddress-generic.sh b/lib/rdk/readBTAddress-generic.sh new file mode 100644 index 00000000..5fdfc3c4 --- /dev/null +++ b/lib/rdk/readBTAddress-generic.sh @@ -0,0 +1,31 @@ +#!/bin/sh +############################################################################## +# If not stated otherwise in this file or this component's LICENSE file the +# following copyright and licenses apply: +# +# Copyright 2020 RDK Management +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################## +# Purpose: This script is used to fetch device Bluetooth Mac information +# Scope: RDK devices. +# Usage: This script is triggered by a systemd service and shell scripts. + +. /etc/include.properties +. /etc/device.properties +. $RDK_PATH/utils.sh + +if [ "$BLUETOOTH_ENABLED" = "true" ]; then + bluetooth_mac=$(getDeviceBluetoothMac) +fi +echo $bluetooth_mac From 278510a3954c9f07548670e39451af42becc9a52 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Thu, 12 Feb 2026 16:21:09 +0000 Subject: [PATCH 12/31] Sysint 4.2.1 hotfix release --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2254b9cc..0079a6e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v6](https://github.com/rdkcentral/sysint/compare/4.3.1...4.2.1v6) +#### [4.2.1v7](https://github.com/rdkcentral/sysint/compare/4.3.1...4.2.1v7) +- RDKEMW-13932: Move Bluetooth Mac update from Device Details to Bluetooth Service [`#458`](https://github.com/rdkcentral/sysint/pull/458) - RDKEMW-13691: Increase Timeout for NTP PartnerURL Read [`#456`](https://github.com/rdkcentral/sysint/pull/456) - RDKEMW-13425: Remove monarch process name for core upload [`#452`](https://github.com/rdkcentral/sysint/pull/452) - RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) From 707c7a232b7aef1e11562b3f33f898d4ead0d46b Mon Sep 17 00:00:00 2001 From: Shibu Kakkoth Vayalambron Date: Mon, 9 Mar 2026 13:56:43 -0700 Subject: [PATCH 13/31] Hotfix 4.2.1v8 (#475) * SERXIONE-8445:PREVIOUS_LOG event observed false reporting telemetry in RDK-E R40 Signed-off-by: PriyaDharshini_Kathiravan (cherry picked from commit 3682e177b55ca274e807b283cd2a377aad368ae7) * Changelog updates for hotfix 4.2.1v8 release --------- Signed-off-by: PriyaDharshini_Kathiravan Co-authored-by: PriyaDharshini_Kathiravan --- CHANGELOG.md | 6 ++++++ lib/rdk/rebootNow.sh | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0079a6e3..aaed7c69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [4.2.1v8](https://github.com/rdkcentral/sysint/compare/4.2.1v8...4.2.1v7) + +> 9 March 2026 + +- RDKEMW-15183: Use telemetry signal for ondemand report instead of logupload report [`#474`](https://github.com/rdkcentral/sysint/pull/474) + #### [4.2.1v7](https://github.com/rdkcentral/sysint/compare/4.3.1...4.2.1v7) - RDKEMW-13932: Move Bluetooth Mac update from Device Details to Bluetooth Service [`#458`](https://github.com/rdkcentral/sysint/pull/458) diff --git a/lib/rdk/rebootNow.sh b/lib/rdk/rebootNow.sh index 3b2abec6..67c88060 100755 --- a/lib/rdk/rebootNow.sh +++ b/lib/rdk/rebootNow.sh @@ -392,7 +392,7 @@ fi # Signal telemetry2_0 to send out any pending messages before reboot rebootLog "Signal telemetry2_0 to send out any pending messages before reboot" -killall -s SIGUSR1 telemetry2_0 +killall -s SIGIO telemetry2_0 # Kill the Parodus Process; So that it can close the WebSocket Connection with Server. rebootLog "Properly shutdown parodus by sending SIGUSR1 kill signal" From 8224273ef2b94ad7ca83b33b278aa84199bb8891 Mon Sep 17 00:00:00 2001 From: udaykrishnag <33549128+udaykrishnag@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:15:22 -0400 Subject: [PATCH 14/31] [RDKEMW-14555] : Updating wifi reassociation threshould tolerance RFC (#462) * RDKEMW-14555 : Updating wifi reassociation threshould tolerance RFC * [RDKEMW-14555] : Updating wifi reassociation threshould tolerance RFC * [RDKEMW-14555] : Updating wifi reassociation threshould tolerance RFC --------- Co-authored-by: Garpathi, Uday Krishna --- lib/rdk/networkConnectionRecovery.sh | 134 ++++++++++++++++----------- 1 file changed, 80 insertions(+), 54 deletions(-) diff --git a/lib/rdk/networkConnectionRecovery.sh b/lib/rdk/networkConnectionRecovery.sh index 8dbf9192..5a654162 100755 --- a/lib/rdk/networkConnectionRecovery.sh +++ b/lib/rdk/networkConnectionRecovery.sh @@ -40,7 +40,7 @@ lnfSSIDConnected=0 lnfPskSSID=A16746DF2466410CA2ED9FB2E32FE7D9 lnfEnterpriseSSID=D375C1D9F8B041E2A1995B784064977B ethernet_interface=$(getMoCAInterface) #In Xi WiFi devices MoCA is mapped to Ethernet -pingCount=2 +pingCount=10 pingInterval=0.2 #Interval between pings wifiResetWaitTime=180 currentTime=0 @@ -55,6 +55,7 @@ PacketLossLoggingInterval=300 WifiReassociateInterval=360 WifiResetIntervalForPacketLoss=720 WifiResetIntervalForDriverIssue=120 +WifiReassociateTolerance=100 dnsFailures=0 maxdnsFailures=3 @@ -210,71 +211,79 @@ checkWifiDrvErrors() checkPacketLoss() { + version=$1 currentTime=$(($(date +%s))) - #Check IPV4 - gwIpv4=$(/sbin/ip -4 route show default | awk 'NR==1 {print $3; exit}') - if [ "$gwIpv4" != "" ] ; then - gwResponse=$(ping -c "$pingCount" -i "$pingInterval" "$gwIpv4") - ret=$(echo "$gwResponse" | grep "packet"|awk '{print $7}'|cut -d'%' -f1) - packetsLostipv4=$ret - gwResponseTime=$(echo "$gwResponse" | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|') - #print ipv4 Gateway logs after $GatewayLoggingInterval - if [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] ; then - echo "$(/bin/timestamp) v4 gateway = $gwIpv4 " >> "$logsFile" - if [ "$ret" = "100" ] ; then - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:NR,$gwIpv4" >> "$logsFile" - t2CountNotify "SYST_WARN_GW100PERC_PACKETLOSS" - else - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:$gwResponseTime,$gwIpv4" >>"$logsFile" - fi - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_PACKET_LOSS:$ret,$gwIpv4" >> "$logsFile" + + if [ -f "/tmp/checkpacketloss" ] ; then + if [ "$version" = "V4" ] ; then + gwIp=$(cat /tmp/checkpacketloss) + pingCmd="ping" fi else - #print ipv4 Gateway logs after $GatewayLoggingInterval - if [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] ; then - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_NO_ROUTE_V4" >> "$logsFile" - t2CountNotify "WIFIV_INFO_NOV4ROUTE" + if [ "$version" = "V4" ] ; then + gwIp=$(/sbin/ip -4 route | awk '/default/ { print $3 }' | head -n1 | awk '{print $1;}') + pingCmd="ping" + elif [ "$version" = "V6" ] ; then + gwIp=$(/sbin/ip -6 route | awk '/default/ { print $3 }' | head -n1 | awk '{print $1;}') + gwIp_interface=$(/sbin/ip -6 route | awk '/default/ { print $5 }' | head -n1 | awk '{print $1;}') + pingCmd="ping6 -I $gwIp_interface" fi fi - #Check IPV6 - gwIpv6=$(/sbin/ip -6 route | awk '/default/ { print $3 }' | head -n1 | awk '{print $1;}') - if [ "$gwIpv6" != "" ] && [ "$gwIpv6" != "dev" ] ; then - #get default interface name for ipv6 and pass it with ping6 command - gwIp6_interface=$(/sbin/ip -6 route show default | awk 'NR==1 {print $5; exit}') - gwResponse=$(ping6 -I "$gwIp6_interface" -c "$pingCount" -i "$pingInterval" "$gwIpv6") + if [ "$gwIp" != "" ] && [ "$gwIp" != "dev" ] ; then + gwResponse=$($pingCmd -c "$pingCount" -i "$pingInterval" "$gwIp") ret=$(echo "$gwResponse" | grep "packet"|awk '{print $7}'|cut -d'%' -f1) - packetsLostipv6=$ret + + if [ "$version" = "V4" ] ; then + packetsLostipv4=$ret + elif [ "$version" = "V6" ] ; then + packetsLostipv6=$ret + fi + gwResponseTime=$(echo "$gwResponse" | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|') - #print ipv6 Gateway logs after $GatewayLoggingInterval if [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] ; then - echo "$(/bin/timestamp) v6 gateway = $gwIpv6 " >> "$logsFile" - if [ "$ret" = "100" ]; then - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:NR,$gwIpv6" >> "$logsFile" + echo "$(/bin/timestamp) $version gateway = $gwIp " >> "$logsFile" + if [ "$ret" = "100" ] ; then + echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:NR,$gwIp" >> "$logsFile" + echo "$(/bin/timestamp) Current Packet loss is SYST_WARN_GW100PERC_PACKETLOSS" t2CountNotify "SYST_WARN_GW100PERC_PACKETLOSS" else - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:$gwResponseTime,$gwIpv6" >> "$logsFile" + echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:$gwResponseTime,$gwIp" >> "$logsFile" fi - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_PACKET_LOSS:$ret,$gwIpv6" >> "$logsFile" + echo "$(/bin/timestamp) TELEMETRY_GATEWAY_PACKET_LOSS:$ret,$gwIp" >> "$logsFile" fi else - #print ipv6 Gateway logs after $GatewayLoggingInterval if [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] ; then - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_NO_ROUTE_V6" >> "$logsFile" - t2CountNotify "WIFIV_INFO_NOV6ROUTE" + echo "$(/bin/timestamp) TELEMETRY_GATEWAY_NO_ROUTE_$version" >> "$logsFile" + t2CountNotify "WIFIV_INFO_NO${version}ROUTE" fi fi [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] && GatewayLogTimeStamp=$(($(date +%s))) + #Send telemetry notification for 20%,30%....90% packet loss if [ "$packetsLostipv4" -gt "$lossThreshold" ] || [ "$packetsLostipv6" -gt "$lossThreshold" ] ; then echo "$(/bin/timestamp) Packet loss more than $lossThreshold% observed." >> "$logsFile" - [ "$lossThreshold" -eq 10 ] && t2CountNotify "WIFIV_WARN_PL_10PERC" + if [ "$packetsLostipv4" -ne 100 ] && [ "$packetsLostipv6" -ne 100 ]; then + for i in {1..9}; do + if ([ "$packetsLostipv4" -ge $((i*10)) ] && [ "$packetsLostipv4" -lt $((i*10+10)) ]) || ([ "$packetsLostipv6" -ge $((i*10)) ] && [ "$packetsLostipv6" -lt $((i*10+10)) ]); then + echo "$(/bin/timestamp) Current Packet loss is WIFIV_WARN_PL_"$((i*10))"PERC" >> "$logsFile" + t2CountNotify "WIFIV_WARN_PL_"$((i*10))"PERC" + break + fi + done + fi + else + if [ "$packetsLostipv4" -ne 0 ] && [ "$packetsLostipv6" -ne 0 ]; then + #Send telemetry notification for 10% packet loss + echo "$(/bin/timestamp) Current Packet loss is WIFIV_WARN_PL_10PERC" >> "$logsFile" + t2CountNotify "WIFIV_WARN_PL_10PERC" + fi fi - if [ "$packetsLostipv4" = "100" ] && [ "$packetsLostipv6" = "100" ]; then - echo "$(/bin/timestamp) 100% Packet loss is observed for both ipv4 and ipv6." >> "$logsFile" - #Note down $FirstPacketLossTime when 100% packetloss is detected for the first time + if [ "$packetsLostipv4" -ge "$WifiReassociateTolerance" ] && [ "$packetsLostipv6" -ge "$WifiReassociateTolerance" ]; then + echo "$(/bin/timestamp) ${WifiReassociateTolerance}% Packet loss is observed for both ipv4 and ipv6." >> "$logsFile" + #Note down $FirstPacketLossTime when threshold packetloss is detected for the first time [ "$FirstPacketLossTime" -eq 0 ] && FirstPacketLossTime=$(($(date +%s))) #Note down $PacketLossLogTimeStamp when PacketLossLogTimeStamp is 0 [ "$PacketLossLogTimeStamp" -eq 0 ] && PacketLossLogTimeStamp=$(($(date +%s))) @@ -283,12 +292,20 @@ checkPacketLoss() return 1 fi - #Reset tmp parameters to default values when there is no 100% packet loss - FirstPacketLossTime=0 - PacketLossLogTimeStamp=0 - EthernetLogTimeStamp=0 - IsWifiReassociated=0 - [ "$wifiDriverErrors" -eq 0 ] && IsWifiReset=0 #Make IsWifiReset=0 only when there is no wifidriverissue + #Reset tmp parameters to default values only after both V4 and V6 are measured (on V6 call). + #Resetting on V4 check alone would be premature because packetsLostipv6 is still 0 (script init) + #at that point, causing FirstPacketLossTime to be incorrectly cleared before V6 is measured. + #Reset if either V4 or V6 is below the reassociate tolerance, indicating recovery on at least one path. + if [ "$version" = "V6" ] && { [ "$packetsLostipv4" -lt "$WifiReassociateTolerance" ] || [ "$packetsLostipv6" -lt "$WifiReassociateTolerance" ]; }; then + echo "$(/bin/timestamp) [DEBUG_NCR] checkPacketLoss: BELOW TOLERANCE returning 0 - resetting FirstPacketLossTime/PacketLossLogTimeStamp/IsWifiReassociated. wifiDriverErrors=$wifiDriverErrors" >> "$logsFile" + FirstPacketLossTime=0 + PacketLossLogTimeStamp=0 + EthernetLogTimeStamp=0 + IsWifiReassociated=0 + [ "$wifiDriverErrors" -eq 0 ] && IsWifiReset=0 #Make IsWifiReset=0 only when there is no wifidriverissue + else + echo "$(/bin/timestamp) [DEBUG_NCR] checkPacketLoss: BELOW TOLERANCE returning 0 - skipping reset (version=$version, waiting for V6 measurement). wifiDriverErrors=$wifiDriverErrors" >> "$logsFile" + fi return 0 } @@ -392,6 +409,11 @@ checkRfc() WifiResetIntervalForDriverIssue="$rfcWifiResetIntervalForDriverIssue" fi fi + + rfcWifiReassociateTolerance="$(tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.WiFiReset.ReassociateTolerance 2>&1 > /dev/null)" + if [ ! -z "$rfcWifiReassociateTolerance" ] && [ "$rfcWifiReassociateTolerance" != 0 ] ; then + WifiReassociateTolerance="$rfcWifiReassociateTolerance" + fi } #If RFC is enabled, then load the customized RFC parameters @@ -415,9 +437,11 @@ checkWifiConnected IsWifiConnected=$? if [ "$IsEthernetConnected" -eq 1 ] ; then - checkPacketLoss - packetLoss=$? - if [ "$packetLoss" -eq 1 ] ; then + checkPacketLoss V4 + packetLoss_v4=$? + checkPacketLoss V6 + packetLoss_v6=$? + if [ "$packetLoss_v4" -eq 1 ] || [ "$packetLoss_v6" -eq 1 ]; then currentTime=$(($(date +%s))) #When packetloss is detected, print debug logs after $EthernetLoggingInterval if [ "$(($EthernetLogTimeStamp+$EthernetLoggingInterval))" -le "$currentTime" ] ; then @@ -436,9 +460,11 @@ elif [ "$IsWifiConnected" -eq 1 ] ; then #Check packetloss - checkPacketLoss - packetLoss=$? - if [ "$packetLoss" -eq 1 ] ; then + checkPacketLoss V4 + packetLoss_v4=$? + checkPacketLoss V6 + packetLoss_v6=$? + if [ "$packetLoss_v4" -eq 1 ] || [ "$packetLoss_v6" -eq 1 ]; then currentTime=$(($(date +%s))) #Print debug logs during a packetloss after $PacketLossLoggingInterval if [ "$(($PacketLossLogTimeStamp+$PacketLossLoggingInterval))" -le "$currentTime" ] ; then From c542d88c469198d0d7c5b55503635a88697beaa3 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Fri, 13 Mar 2026 17:51:08 +0000 Subject: [PATCH 15/31] Sysint 4.2.1 hotfix release --- CHANGELOG.md | 53 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aaed7c69..1b222658 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,14 +4,10 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v8](https://github.com/rdkcentral/sysint/compare/4.2.1v8...4.2.1v7) - -> 9 March 2026 - -- RDKEMW-15183: Use telemetry signal for ondemand report instead of logupload report [`#474`](https://github.com/rdkcentral/sysint/pull/474) - -#### [4.2.1v7](https://github.com/rdkcentral/sysint/compare/4.3.1...4.2.1v7) +#### [4.2.1v9](https://github.com/rdkcentral/sysint/compare/4.5.2...4.2.1v9) +- [RDKEMW-14555] : Updating wifi reassociation threshould tolerance RFC [`#462`](https://github.com/rdkcentral/sysint/pull/462) +- Hotfix 4.2.1v8 [`#475`](https://github.com/rdkcentral/sysint/pull/475) - RDKEMW-13932: Move Bluetooth Mac update from Device Details to Bluetooth Service [`#458`](https://github.com/rdkcentral/sysint/pull/458) - RDKEMW-13691: Increase Timeout for NTP PartnerURL Read [`#456`](https://github.com/rdkcentral/sysint/pull/456) - RDKEMW-13425: Remove monarch process name for core upload [`#452`](https://github.com/rdkcentral/sysint/pull/452) @@ -20,6 +16,49 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - 4.2.1v3 hotfix release [`3e62af9`](https://github.com/rdkcentral/sysint/commit/3e62af9e980686ab416f8f27045d2c4160274cbb) - Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) +#### [4.5.2](https://github.com/rdkcentral/sysint/compare/4.5.1...4.5.2) + +> 13 March 2026 + +- Sysint 4.5.2 release changelog updates [`#484`](https://github.com/rdkcentral/sysint/pull/484) +- [RDKEMW-14881] Updating wifi reassociation threshould tolerance RFC [`#467`](https://github.com/rdkcentral/sysint/pull/467) +- SERXIONE-8445:PREVIOUS_LOG event observed false reporting telemetry in RDK-E R40 [`#474`](https://github.com/rdkcentral/sysint/pull/474) +- Merge tag '4.5.1' into develop [`b94cde6`](https://github.com/rdkcentral/sysint/commit/b94cde623d5549f72bf610ff6340241022c3841d) + +#### [4.5.1](https://github.com/rdkcentral/sysint/compare/4.5.0...4.5.1) + +> 11 March 2026 + +- RDKEMW-9393 : Dropbear is using prod Key to connect to devices running with prod build if DeviceType is Test [`#440`](https://github.com/rdkcentral/sysint/pull/440) +- 4.5.1 release changelog updates [`6596c78`](https://github.com/rdkcentral/sysint/commit/6596c784f5be3faa673fe0e829352430f8ba9587) +- Merge tag '4.5.0' into develop [`aebdac3`](https://github.com/rdkcentral/sysint/commit/aebdac39a57c3141032c627dcb07a23a50b811e2) + +#### [4.5.0](https://github.com/rdkcentral/sysint/compare/4.4.0...4.5.0) + +> 10 March 2026 + +- RDKEMW-14726 - Implement Chrony runtime selection for Time Sync [`#469`](https://github.com/rdkcentral/sysint/pull/469) +- 4.5.0 release changelog updates [`ded2a59`](https://github.com/rdkcentral/sysint/commit/ded2a599a3fb49bf41a92a0306cb758aa60a2039) +- Merge tag '4.4.0' into develop [`92173b4`](https://github.com/rdkcentral/sysint/commit/92173b430828bb3f31dd7163463876d3b0d8e6dd) + +#### [4.4.0](https://github.com/rdkcentral/sysint/compare/4.3.2...4.4.0) + +> 27 February 2026 + +- RDK-59974 : Migrate rebootNow script to C - Implementation [`#459`](https://github.com/rdkcentral/sysint/pull/459) +- Sysint 4.3.2 release changelog updates [`#463`](https://github.com/rdkcentral/sysint/pull/463) +- 4.4.0 release changelog updates [`f085b1d`](https://github.com/rdkcentral/sysint/commit/f085b1d634182199d19c7776a108c78e02e2c8fd) +- Merge tag '4.3.2' into develop [`ce34886`](https://github.com/rdkcentral/sysint/commit/ce348869bf09beb0cb4735436ccd05bc2e38629f) + +#### [4.3.2](https://github.com/rdkcentral/sysint/compare/4.3.1...4.3.2) + +> 26 February 2026 + +- RDKEMW-12868: Sysint 4.3.2 release changelog updates [`#464`](https://github.com/rdkcentral/sysint/pull/464) +- Disable password authentication [`#427`](https://github.com/rdkcentral/sysint/pull/427) +- <Sysint 4.3.2 release changelog updates [`2d7ca69`](https://github.com/rdkcentral/sysint/commit/2d7ca695ffc82814b2da9eb360403e2f65360fff) +- Merge tag '4.3.1' into develop [`354b182`](https://github.com/rdkcentral/sysint/commit/354b182478a02c5a943fa4ffce733b55a3069d00) + #### [4.3.1](https://github.com/rdkcentral/sysint/compare/4.3.0...4.3.1) > 11 February 2026 From f958d4444b97c40fec870f8a29409958ae76fe4d Mon Sep 17 00:00:00 2001 From: Gene Gallagher <129112619+egalla204@users.noreply.github.com> Date: Thu, 26 Mar 2026 13:46:05 -0400 Subject: [PATCH 16/31] RDKEMW-15318: [4.2.1] stop ctrlm-main service before bluez for graceful reboot (#486) --- lib/rdk/rebootNow.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rdk/rebootNow.sh b/lib/rdk/rebootNow.sh index 67c88060..15a40b45 100755 --- a/lib/rdk/rebootNow.sh +++ b/lib/rdk/rebootNow.sh @@ -449,7 +449,7 @@ fi #If bluetooth is enabled, gracefully shutdown the bluetooth related services if [ "$BLUETOOTH_ENABLED" = "true" ];then - services=("sky-bluetoothrcu" "btmgr" "bluetooth" "bt-hciuart" "btmac-preset" "bt" "syslog-ng") + services=("ctrlm-main" "btmgr" "bluetooth" "bt-hciuart" "btmac-preset" "bt" "syslog-ng") rebootLog "Shutting down the bluetooth and syslog-ng services gracefully" for service in "${services[@]}"; do rebootLog "Shutting down the $service service" From 23e612cce53eebfeecfdb0514eba8c457cf3fbaf Mon Sep 17 00:00:00 2001 From: shibu-kv Date: Thu, 26 Mar 2026 10:52:25 -0700 Subject: [PATCH 17/31] Changelog updates for 4.2.1v10 hotfix --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b222658..4f12cf4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,16 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [4.2.1v10](https://github.com/rdkcentral/sysint/compare/4.2.1v9...4.2.1v10) + +> 26 March 2026 + +- RDKEMW-15318: [4.2.1] stop ctrlm-main service before bluez for graceful reboot [`#486`](https://github.com/rdkcentral/sysint/pull/486) + #### [4.2.1v9](https://github.com/rdkcentral/sysint/compare/4.5.2...4.2.1v9) +> 13 March 2026 + - [RDKEMW-14555] : Updating wifi reassociation threshould tolerance RFC [`#462`](https://github.com/rdkcentral/sysint/pull/462) - Hotfix 4.2.1v8 [`#475`](https://github.com/rdkcentral/sysint/pull/475) - RDKEMW-13932: Move Bluetooth Mac update from Device Details to Bluetooth Service [`#458`](https://github.com/rdkcentral/sysint/pull/458) From 782d2d0b0ecb602f4b8c6a523c4674185ce1145d Mon Sep 17 00:00:00 2001 From: Priya_Dharshini Date: Mon, 20 Apr 2026 19:14:48 +0530 Subject: [PATCH 18/31] RDKEMW-17274: 8.4 T2 event for MemAvailable Need To Send Only Numerical Value (#515) Signed-off-by: PriyaDharshini_Kathiravan --- lib/rdk/system_info_collector.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/rdk/system_info_collector.sh b/lib/rdk/system_info_collector.sh index 88f135be..9e69ef99 100755 --- a/lib/rdk/system_info_collector.sh +++ b/lib/rdk/system_info_collector.sh @@ -65,10 +65,10 @@ grep 'MHz' /proc/cpuinfo | sed 's/[[:blank:]]*//g' # Adding the Memory Available Info echo "Available Memory Info:" >> $LOG_PATH/messages.txt -MEM_AVAILABLE=`cat /proc/meminfo | grep MemAvailable` +MEM_AVAILABLE=$(cat /proc/meminfo | grep MemAvailable) echo $MEM_AVAILABLE >> $LOG_PATH/messages.txt -t2ValNotify "SYST_INFO_MemAvailable_split" "$MEM_AVAILABLE" - +MEM_AVAILABLE_VAL=$(echo "$MEM_AVAILABLE" | tr -s '[:space:]' ' ' | cut -d' ' -f2) +t2ValNotify "SYST_INFO_MemAvailable_split" "$MEM_AVAILABLE_VAL" # Swap Memory Info echo "Available Swap Memory Info:" >> $LOG_PATH/messages.txt From 3709c74dbf6fcbfc3ada6c0d1c9c8b9a193e08e8 Mon Sep 17 00:00:00 2001 From: shibu-kv Date: Mon, 20 Apr 2026 07:31:00 -0700 Subject: [PATCH 19/31] Changelog updates for hotfix 4.2.1v11 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f12cf4c..bb87a709 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [4.2.1v11](https://github.com/rdkcentral/sysint/compare/4.2.1v10...4.2.1v11) + +> 20 April 2026 + +- RDKEMW-17274: T2 event for MemAvailable Need To Send Numeric Values [`#515`](https://github.com/rdkcentral/sysint/pull/486) + #### [4.2.1v10](https://github.com/rdkcentral/sysint/compare/4.2.1v9...4.2.1v10) > 26 March 2026 From a07311f2e6b06745555a5360f05f79c03b5d6e5e Mon Sep 17 00:00:00 2001 From: madhubabutt <114217841+madhubabutt@users.noreply.github.com> Date: Sat, 25 Apr 2026 00:03:16 +0530 Subject: [PATCH 20/31] RDKEMW-17533 : [support/8.4.4.0] OCDM_WVMediaKey and OCDM_SaThread changes in sysint (#518) Co-authored-by: mtirum011 --- lib/rdk/core_shell.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/rdk/core_shell.sh b/lib/rdk/core_shell.sh index 202439f9..c94afbd2 100755 --- a/lib/rdk/core_shell.sh +++ b/lib/rdk/core_shell.sh @@ -334,7 +334,8 @@ if [ "$1" = "xcal-discovery-" ] || [ "$1" = "xdiscovery" ] || [ "$1" = "IARMDae [ "$1" = "subttxrend-app" ] || [ "$1" = "logrotate" ] || [ "$1" = "NetworkManager" ] || [ "$1" = "NWMgrPlugin" ] || [ "$1" = "nm_event_thrd" ] || [ "$1" = "Monitor::IResou" ] || [ "$1" = "DRMSYSTEM" ] || [ "$1" = "HTTPREQUEST_MAN" ] || - [ "$1" = "civetweb-worker" ] || [ "$1" = "nfrtool" ]; then + [ "$1" = "civetweb-worker" ] || [ "$1" = "nfrtool" ] || + [ "$1" = "OCDM_WVMediaKey" ] || [ "$1" = "OCDM_SaThread" ]; then dumpFile exit 0 fi From 35cd5003a10a61c13830955014d04822d952f104 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Fri, 24 Apr 2026 19:47:32 +0000 Subject: [PATCH 21/31] sysint 4.2.1 hotfix release --- CHANGELOG.md | 70 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb87a709..052051a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,31 +4,71 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v11](https://github.com/rdkcentral/sysint/compare/4.2.1v10...4.2.1v11) - -> 20 April 2026 - -- RDKEMW-17274: T2 event for MemAvailable Need To Send Numeric Values [`#515`](https://github.com/rdkcentral/sysint/pull/486) - -#### [4.2.1v10](https://github.com/rdkcentral/sysint/compare/4.2.1v9...4.2.1v10) - -> 26 March 2026 +#### [4.2.1v12](https://github.com/rdkcentral/sysint/compare/5.0.1...4.2.1v12) +- RDKEMW-17533 : [support/8.4.4.0] OCDM_WVMediaKey and OCDM_SaThread changes in sysint [`#518`](https://github.com/rdkcentral/sysint/pull/518) +- RDKEMW-17274: 8.4 T2 event for MemAvailable Need To Send Only Numerical Value [`#515`](https://github.com/rdkcentral/sysint/pull/515) - RDKEMW-15318: [4.2.1] stop ctrlm-main service before bluez for graceful reboot [`#486`](https://github.com/rdkcentral/sysint/pull/486) - -#### [4.2.1v9](https://github.com/rdkcentral/sysint/compare/4.5.2...4.2.1v9) - -> 13 March 2026 - - [RDKEMW-14555] : Updating wifi reassociation threshould tolerance RFC [`#462`](https://github.com/rdkcentral/sysint/pull/462) - Hotfix 4.2.1v8 [`#475`](https://github.com/rdkcentral/sysint/pull/475) - RDKEMW-13932: Move Bluetooth Mac update from Device Details to Bluetooth Service [`#458`](https://github.com/rdkcentral/sysint/pull/458) - RDKEMW-13691: Increase Timeout for NTP PartnerURL Read [`#456`](https://github.com/rdkcentral/sysint/pull/456) - RDKEMW-13425: Remove monarch process name for core upload [`#452`](https://github.com/rdkcentral/sysint/pull/452) - RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) +- Sysint 4.2.1 hotfix release [`c542d88`](https://github.com/rdkcentral/sysint/commit/c542d88c469198d0d7c5b55503635a88697beaa3) - Sysint 4.2.1 hotfix release [`2ac36a2`](https://github.com/rdkcentral/sysint/commit/2ac36a2f2b7fca9fcd85364cd317f535224a0fce) - 4.2.1v3 hotfix release [`3e62af9`](https://github.com/rdkcentral/sysint/commit/3e62af9e980686ab416f8f27045d2c4160274cbb) -- Sysint 4.2.1 hotfix release [`2716e40`](https://github.com/rdkcentral/sysint/commit/2716e40fc5eee8ba26aacc96897f64548ec86def) + +#### [5.0.1](https://github.com/rdkcentral/sysint/compare/5.0.0...5.0.1) + +> 23 April 2026 + +- RDKEMW-10284: Migrate stunnel to use P12 cert [`#364`](https://github.com/rdkcentral/sysint/pull/364) +- RDKEMW-16446: No Wifi screen issue [`#498`](https://github.com/rdkcentral/sysint/pull/498) +- RDKEMW-16664: Send integer value for MemAvailable to t2ValNotify [`#496`](https://github.com/rdkcentral/sysint/pull/496) +- Sysint 5.0.1 release changelog updates [`4d4ef7e`](https://github.com/rdkcentral/sysint/commit/4d4ef7edad15ff1f1e75e59361c2672130b31721) +- Merge tag '5.0.0' into develop [`af56fe3`](https://github.com/rdkcentral/sysint/commit/af56fe3b3594eb94e66afcaefb1e94c62daa4488) + +### [5.0.0](https://github.com/rdkcentral/sysint/compare/4.5.5...5.0.0) + +> 9 April 2026 + +- RDKEMW-15490 : Removing reboot script reference from sysint [`#500`](https://github.com/rdkcentral/sysint/pull/500) +- 5.0.0 release changelog updates [`711601e`](https://github.com/rdkcentral/sysint/commit/711601e303a449f3ea34d5f858f4d7c5d873c9c1) +- Merge tag '4.5.5' into develop [`654be5f`](https://github.com/rdkcentral/sysint/commit/654be5fcc3473060f765481e5cd9dd4f84f65d95) + +#### [4.5.5](https://github.com/rdkcentral/sysint/compare/4.5.4...4.5.5) + +> 3 April 2026 + +- RDKEMW-15186 : [RDK-E] [TCHXi6] estb mac address is incorrect [`#495`](https://github.com/rdkcentral/sysint/pull/495) +- RDKEMW-16414: Replace type exec in NM_Bootstrap [`#494`](https://github.com/rdkcentral/sysint/pull/494) +- RDK-61128 : Remove the Logupload Scripts ported to C [`#493`](https://github.com/rdkcentral/sysint/pull/493) +- Delete lib/rdk/backup_logs.sh [`0f3db13`](https://github.com/rdkcentral/sysint/commit/0f3db13ec096d8fbe33754cb4cbf1a65eda45153) +- Sysint 4.5.5 release changelog updates [`124d3bf`](https://github.com/rdkcentral/sysint/commit/124d3bf73d596c87082721cc8189cf95b8794e4b) +- Merge tag '4.5.4' into develop [`d9f48c0`](https://github.com/rdkcentral/sysint/commit/d9f48c011ab0fe3abbf7144d9674933321f38698) + +#### [4.5.4](https://github.com/rdkcentral/sysint/compare/4.5.3...4.5.4) + +> 27 March 2026 + +- RDK-61128 : Remove the Logupload Scripts ported to C [`#491`](https://github.com/rdkcentral/sysint/pull/491) +- Rebase [`#492`](https://github.com/rdkcentral/sysint/pull/492) +- RDK-61009 : [RDKE] Port Log Backup Scripts to Source code [`#488`](https://github.com/rdkcentral/sysint/pull/488) +- Rebase [`#487`](https://github.com/rdkcentral/sysint/pull/487) +- Delete lib/rdk/uploadSTBLogs.sh [`925c788`](https://github.com/rdkcentral/sysint/commit/925c788fa267c0993d427374bfcc385da20e9a1e) +- Delete lib/rdk/UploadLogsNow.sh [`ade8cc2`](https://github.com/rdkcentral/sysint/commit/ade8cc2585d6b10bc549c1ce044ddc90eea08993) +- Delete lib/rdk/usbLogUpload.sh [`50d0537`](https://github.com/rdkcentral/sysint/commit/50d05375ba40940d038489cd75e9e8b053708713) + +#### [4.5.3](https://github.com/rdkcentral/sysint/compare/4.5.2...4.5.3) + +> 20 March 2026 + +- Update device.properties [`#472`](https://github.com/rdkcentral/sysint/pull/472) +- Update 10-unmanaged-devices for unmanaging wl0.2 [`#482`](https://github.com/rdkcentral/sysint/pull/482) +- Sysint 4.5.2 release changelog updates [`#483`](https://github.com/rdkcentral/sysint/pull/483) +- Sysint 4.5.3 release changelog updates [`57b3c12`](https://github.com/rdkcentral/sysint/commit/57b3c12fddecd670d090210aa049c1c7967512bf) +- Merge tag '4.5.2' into develop [`e34a943`](https://github.com/rdkcentral/sysint/commit/e34a943c07d6b18e2a87fea5219e4de2068e73db) #### [4.5.2](https://github.com/rdkcentral/sysint/compare/4.5.1...4.5.2) From 9509729447fc8dfb39c9ea609a6c7ac0d7931bf1 Mon Sep 17 00:00:00 2001 From: apatel859 <48992974+apatel859@users.noreply.github.com> Date: Wed, 20 May 2026 12:58:40 -0400 Subject: [PATCH 22/31] RDKEMW-18793a: avoid thermal call in deepsleep (#548) * RDKEMW-18793a: avoid thermal call in deepsleep Signed-off-by: apatel859 * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: apatel859 Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- lib/rdk/temperature-telemetry.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/rdk/temperature-telemetry.sh b/lib/rdk/temperature-telemetry.sh index f2841cdc..dd6a33d5 100644 --- a/lib/rdk/temperature-telemetry.sh +++ b/lib/rdk/temperature-telemetry.sh @@ -21,7 +21,14 @@ if [ -f /lib/rdk/t2Shared_api.sh ]; then source /lib/rdk/t2Shared_api.sh fi -boardTemp=`/bin/cat /sys/class/thermal/thermal_zone0/temp | sed 's/./&./2'`c + +powerState=$(/usr/bin/QueryPowerState) + +if [ "$powerState" != "DEEPSLEEP" ]; then + boardTemp=`/bin/cat /sys/class/thermal/thermal_zone0/temp | sed 's/./&./2'`c +else + boardTemp="Device in Deepsleep" +fi /bin/echo Temperature:$boardTemp t2ValNotify "Board_temperature_split" "$boardTemp" From 27c5acd0f90ce3cacb99383139d441289f56526f Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Wed, 20 May 2026 17:02:23 +0000 Subject: [PATCH 23/31] Sysint 4.2.1v13 hotfix release --- CHANGELOG.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 052051a0..ba9bdfd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v12](https://github.com/rdkcentral/sysint/compare/5.0.1...4.2.1v12) +#### [4.2.1v13](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v13) +- RDKEMW-18793a: avoid thermal call in deepsleep [`#548`](https://github.com/rdkcentral/sysint/pull/548) - RDKEMW-17533 : [support/8.4.4.0] OCDM_WVMediaKey and OCDM_SaThread changes in sysint [`#518`](https://github.com/rdkcentral/sysint/pull/518) - RDKEMW-17274: 8.4 T2 event for MemAvailable Need To Send Only Numerical Value [`#515`](https://github.com/rdkcentral/sysint/pull/515) - RDKEMW-15318: [4.2.1] stop ctrlm-main service before bluez for graceful reboot [`#486`](https://github.com/rdkcentral/sysint/pull/486) @@ -15,9 +16,32 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - RDKEMW-13691: Increase Timeout for NTP PartnerURL Read [`#456`](https://github.com/rdkcentral/sysint/pull/456) - RDKEMW-13425: Remove monarch process name for core upload [`#452`](https://github.com/rdkcentral/sysint/pull/452) - RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) +- sysint 4.2.1 hotfix release [`35cd500`](https://github.com/rdkcentral/sysint/commit/35cd5003a10a61c13830955014d04822d952f104) - Sysint 4.2.1 hotfix release [`c542d88`](https://github.com/rdkcentral/sysint/commit/c542d88c469198d0d7c5b55503635a88697beaa3) - Sysint 4.2.1 hotfix release [`2ac36a2`](https://github.com/rdkcentral/sysint/commit/2ac36a2f2b7fca9fcd85364cd317f535224a0fce) -- 4.2.1v3 hotfix release [`3e62af9`](https://github.com/rdkcentral/sysint/commit/3e62af9e980686ab416f8f27045d2c4160274cbb) + +#### [5.1.0](https://github.com/rdkcentral/sysint/compare/5.0.2...5.1.0) + +> 14 May 2026 + +- Update getPartnerProperty.sh [`#541`](https://github.com/rdkcentral/sysint/pull/541) +- 5.1.0 release changelog updates [`3ce474d`](https://github.com/rdkcentral/sysint/commit/3ce474d349b2cf3548985d4fc2f993b26d52c014) +- Merge tag '5.0.2' into develop [`1888519`](https://github.com/rdkcentral/sysint/commit/18885196ab36dc76fd5f28e87a484594a53076e1) + +#### [5.0.2](https://github.com/rdkcentral/sysint/compare/5.0.1...5.0.2) + +> 7 May 2026 + +- RDKEMW-17800:gst-cleanup conditions when cdl_flashed_file_name is not present [`#538`](https://github.com/rdkcentral/sysint/pull/538) +- RDKEMW-17726, RDKEMW-17727: Fix the Migration of RDKV-to-RDKE [`#531`](https://github.com/rdkcentral/sysint/pull/531) +- RDKEMW-18159 : [develop] Corefile not getting uploaded for mutliqueue crashes [`#539`](https://github.com/rdkcentral/sysint/pull/539) +- RDKEMW-16774: [Security] Device partition structure seen in logs [`#536`](https://github.com/rdkcentral/sysint/pull/536) +- RDKEMW-17800:gst-cleanup conditions when cdl_flashed_file_name is not present [`#528`](https://github.com/rdkcentral/sysint/pull/528) +- Revert "RDKEMW-10725:gstreamer-cleanup conditions when cdl_flashed_file_name …" [`#526`](https://github.com/rdkcentral/sysint/pull/526) +- RDKEMW-17619 : [develop] OCDM_WVMediaKey and OCDM_SaThread changes in sysint [`#522`](https://github.com/rdkcentral/sysint/pull/522) +- RDKEMW-10725:gstreamer-cleanup conditions when cdl_flashed_file_name is missing [`#511`](https://github.com/rdkcentral/sysint/pull/511) +- Sysint 5.0.2 release changelog updates [`0e05ed7`](https://github.com/rdkcentral/sysint/commit/0e05ed7d7dd01718d723584f4da02e20ace397de) +- Merge tag '5.0.1' into develop [`5d44360`](https://github.com/rdkcentral/sysint/commit/5d443603d5a7b803f4f45af68f0178e057a21968) #### [5.0.1](https://github.com/rdkcentral/sysint/compare/5.0.0...5.0.1) From 15f24b378a579b754f1d14a21f5c10e4eca71c4d Mon Sep 17 00:00:00 2001 From: Aravindan NC <35158113+AravindanNC@users.noreply.github.com> Date: Wed, 20 May 2026 14:45:44 -0400 Subject: [PATCH 24/31] RDKEMW-16152: "Let's get connected" screen displayed during Migration testing (#549) --- lib/rdk/NM_Bootstrap.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/rdk/NM_Bootstrap.sh b/lib/rdk/NM_Bootstrap.sh index a1cba024..6beb5451 100644 --- a/lib/rdk/NM_Bootstrap.sh +++ b/lib/rdk/NM_Bootstrap.sh @@ -79,7 +79,14 @@ else rm -rf /opt/NetworkManager/system-connections/* fi if [ -d /opt/secure/NetworkManager/system-connections ]; then - rm -rf /opt/secure/NetworkManager/system-connections/* + echo "`/bin/timestamp` :$0: Listing the connection profiles in device: " >> /opt/logs/NMMonitor.log + ls -lh /opt/secure/NetworkManager/system-connections >> /opt/logs/NMMonitor.log + echo "`/bin/timestamp` :$0: Deleting existing wifi profiles if any..." >> /opt/logs/NMMonitor.log + for f in /opt/secure/NetworkManager/system-connections/*; do + if grep -q "type=wifi" "$f"; then + rm -f "$f" + fi + done fi if [ -z $PSK ]; then #connect to wifi From cadaeca5fc31efea0aeecadfc026b1c2f4613de0 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Wed, 20 May 2026 19:19:32 +0000 Subject: [PATCH 25/31] Sysint 4.2.1v14 hotfix release --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba9bdfd3..5b3c7c45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v13](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v13) +#### [4.2.1v14](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v14) +- RDKEMW-16152: "Let's get connected" screen displayed during Migration testing [`#549`](https://github.com/rdkcentral/sysint/pull/549) - RDKEMW-18793a: avoid thermal call in deepsleep [`#548`](https://github.com/rdkcentral/sysint/pull/548) - RDKEMW-17533 : [support/8.4.4.0] OCDM_WVMediaKey and OCDM_SaThread changes in sysint [`#518`](https://github.com/rdkcentral/sysint/pull/518) - RDKEMW-17274: 8.4 T2 event for MemAvailable Need To Send Only Numerical Value [`#515`](https://github.com/rdkcentral/sysint/pull/515) @@ -18,7 +19,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - RDKEMW-13061: Include utility indepenent of T2 for telemetry upload [`#443`](https://github.com/rdkcentral/sysint/pull/443) - sysint 4.2.1 hotfix release [`35cd500`](https://github.com/rdkcentral/sysint/commit/35cd5003a10a61c13830955014d04822d952f104) - Sysint 4.2.1 hotfix release [`c542d88`](https://github.com/rdkcentral/sysint/commit/c542d88c469198d0d7c5b55503635a88697beaa3) -- Sysint 4.2.1 hotfix release [`2ac36a2`](https://github.com/rdkcentral/sysint/commit/2ac36a2f2b7fca9fcd85364cd317f535224a0fce) +- Sysint 4.2.1v13 hotfix release [`27c5acd`](https://github.com/rdkcentral/sysint/commit/27c5acd0f90ce3cacb99383139d441289f56526f) #### [5.1.0](https://github.com/rdkcentral/sysint/compare/5.0.2...5.1.0) From ed3858f35cf2d271c98389bb682f3863f183693e Mon Sep 17 00:00:00 2001 From: madhubabutt <114217841+madhubabutt@users.noreply.github.com> Date: Thu, 21 May 2026 23:11:56 +0530 Subject: [PATCH 26/31] RDKEMW-18972 : RebootReason log adds colon in the Parodus.log file (#550) Co-authored-by: mtirum011 --- lib/rdk/update_previous_reboot_info.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rdk/update_previous_reboot_info.sh b/lib/rdk/update_previous_reboot_info.sh index 0de94d0d..e92cdfae 100755 --- a/lib/rdk/update_previous_reboot_info.sh +++ b/lib/rdk/update_previous_reboot_info.sh @@ -95,8 +95,8 @@ setPreviousRebootInfo() existing_reboot_info=$(grep "PreviousRebootInfo" "$PARODUS_LOG" 2>/dev/null | tail -1) if [ -z "$existing_reboot_info" ]; then - echo "$(/bin/timestamp): $0: Updating previous reboot info to Parodus" >> "$PARODUS_LOG" - echo "$(/bin/timestamp): $0: PreviousRebootInfo:$timestamp,$reason,$custom,$source" >> "$PARODUS_LOG" + echo "$(/bin/timestamp) $0: Updating previous reboot info to Parodus" >> "$PARODUS_LOG" + echo "$(/bin/timestamp) $0: PreviousRebootInfo:$timestamp,$reason,$custom,$source" >> "$PARODUS_LOG" rebootLog "Reboot Information Updated to parodus log:$timestamp,$reason,$custom,$source" else rebootLog "${FUNCNAME[0]}: Reboot info already present in $PARODUS_LOG as $existing_reboot_info, skipping update" From f836ada6610a8e4cff303d654f8b573ff8ccf16a Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Thu, 21 May 2026 17:44:20 +0000 Subject: [PATCH 27/31] Sysint 4.2.1v15 hotfix release --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b3c7c45..7d7e6877 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v14](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v14) +#### [4.2.1v15](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v15) +- RDKEMW-18972 : RebootReason log adds colon in the Parodus.log file [`#550`](https://github.com/rdkcentral/sysint/pull/550) - RDKEMW-16152: "Let's get connected" screen displayed during Migration testing [`#549`](https://github.com/rdkcentral/sysint/pull/549) - RDKEMW-18793a: avoid thermal call in deepsleep [`#548`](https://github.com/rdkcentral/sysint/pull/548) - RDKEMW-17533 : [support/8.4.4.0] OCDM_WVMediaKey and OCDM_SaThread changes in sysint [`#518`](https://github.com/rdkcentral/sysint/pull/518) From 6606a5c1ceda405ba65a662992d9a7fa4aeb06de Mon Sep 17 00:00:00 2001 From: vrenu2018 <136053788+vrenu2018@users.noreply.github.com> Date: Tue, 26 May 2026 13:03:28 -0400 Subject: [PATCH 28/31] RDKEMW-19100:gst-cleanup conditions when cdl_flashed_file_name is not present (#551) Reason for change: gstreamer-cleanup is happening on every reboot when /opt/cdl_flashed_file_name is missing. Fixing the issues as well as re-locating gstreamer-cleanup.service file to recipies-multimedia instead of sysint folder Test Procedure: Boot the TV and check for gstreamer-cleanup metrics in rdk_milestones.log Risks: low Signed-off-by: Renuka Varry Co-authored-by: Renuka Varry --- systemd_units/gstreamer-cleanup.service | 38 ------------------------- 1 file changed, 38 deletions(-) delete mode 100644 systemd_units/gstreamer-cleanup.service diff --git a/systemd_units/gstreamer-cleanup.service b/systemd_units/gstreamer-cleanup.service deleted file mode 100644 index 30131b16..00000000 --- a/systemd_units/gstreamer-cleanup.service +++ /dev/null @@ -1,38 +0,0 @@ -############################################################################## -# If not stated otherwise in this file or this component's LICENSE file the -# following copyright and licenses apply: -# -# Copyright 2020 RDK Management -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################## - -[Unit] -Description=Cleans up Gstreamer Registry - -After=local-fs.target nvram.service -Before=wpeframework.service - -[Service] -Type=oneshot -RemainAfterExit=Yes -Environment="CDLFILE=$(cat /opt/cdl_flashed_file_name)" -Environment="PREV_CDLFILE=$(cat /opt/previous_flashed_file_name)" -Environment="GST_REGISTRY=/opt/.gstreamer/registry.bin" -ExecStartPre=/bin/sh -c 'if [ -f /lib/rdk/logMilestone.sh ];then sh /lib/rdk/logMilestone.sh "GST_CLEANUP_START"; fi;' -ExecStart=-/bin/sh -c 'if [[ ! -f /opt/previous_flashed_file_name || ! -f /opt/cdl_flashed_file_name || ${CDLFILE} != *"${PREV_CDLFILE}"* ]]; then echo "Removing gstreamer registry on bootup after CDL"; rm -rf /opt/.gstreamer;GST_REGISTRY_UPDATE=yes gst-inspect-1.0 >/dev/null 2>&1; elif [ ! -f /opt/.gstreamer/registry.bin ]; then echo "Gstreamer registry empty"; rm -rf /opt/.gstreamer; GST_REGISTRY_UPDATE=yes gst-inspect-1.0 >/dev/null 2>&1; else echo "gstreamer registry is not removed, previous reboot is not due to CDL"; fi' -ExecStartPost=/bin/sh -c 'if [ -f /lib/rdk/logMilestone.sh ];then sh /lib/rdk/logMilestone.sh "GST_CLEANUP_COMPLETE"; fi;' -ExecStop=/bin/sh -c 'FW_UPDATE_STATE=$(cat /opt/fwdnldstatus.txt | grep FwUpdateState | cut -d "|" -f2); echo "FW_UPDATE_STATE: $FW_UPDATE_STATE"; if [ "$FW_UPDATE_STATE" == "Preparing to reboot" ]; then echo "Removing gstreamer registry after firmware update"; rm -rf /opt/.gstreamer; fi;' - -[Install] -WantedBy=multi-user.target From bb07cfb2f16e5d5e9a6b27574f026b36b876638b Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Tue, 26 May 2026 17:05:55 +0000 Subject: [PATCH 29/31] Sysint 4.2.1v16 hotfix release --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d7e6877..f6ae5a49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v15](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v15) +#### [4.2.1v16](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v16) +- RDKEMW-19100:gst-cleanup conditions when cdl_flashed_file_name is not present [`#551`](https://github.com/rdkcentral/sysint/pull/551) - RDKEMW-18972 : RebootReason log adds colon in the Parodus.log file [`#550`](https://github.com/rdkcentral/sysint/pull/550) - RDKEMW-16152: "Let's get connected" screen displayed during Migration testing [`#549`](https://github.com/rdkcentral/sysint/pull/549) - RDKEMW-18793a: avoid thermal call in deepsleep [`#548`](https://github.com/rdkcentral/sysint/pull/548) From 037c0e8acb6c4732fd9427d8fd99bccb88e7dbb2 Mon Sep 17 00:00:00 2001 From: tukken-comcast Date: Fri, 24 Jul 2026 23:04:50 +0530 Subject: [PATCH 30/31] RDKEMW-21582: Network connection recovery script should handle IPv4-only/IPv6-only networks (#581) * DELIA-70624: updated to reset counters only if gateway is available for ipv6. Signed-off-by: Balaji Punnuru * DELIA-70624: Added debug in the script Signed-off-by: Balaji Punnuru * DELIA-70624: networkConnectionRecovery: presence-aware packet-loss recovery trigger Recovery now fires only when no routed IP stack has acceptable connectivity and at least one routed stack is at/above the reassociate tolerance. This fixes the IPv4-only / IPv6-only case where a stack with no default route left packetsLost at 0 and suppressed recovery. Also folded in reliability/logging fixes: - clear stale gwIp on the V6 test-hook path - guard packet-loss comparisons against unparseable ping output - emit SYST_WARN_GW100PERC_PACKETLOSS to the logs file on every run - ping the IPv4 default-route interface explicitly (ping -I) - log total ipv4/ipv6 packet loss when above threshold - simplify the trigger to anyGood/anyBad classification * DELIA-70624: networkConnectionRecovery: add log() helper and per-call packet-loss fix - Introduce a log() helper that prepends the timestamp and appends to $logsFile, and convert the timestamped echo call sites to use it. - Rename packetsLostipv4/packetsLostipv6 globals to ipv4PacketLoss/ipv6PacketLoss for clarity. - Reset the per-call packetLoss to "" at the top of checkPacketLoss and guard the packet-loss telemetry block with [ -n "$packetLoss" ], so a routeless or unparseable ping no longer reuses the other family's value or triggers integer-comparison errors. - Fix a "[" spacing bug in checkWifiDrvErrors. Telemetry markers and t2CountNotify calls are unchanged. * DELIA-70624: networkConnectionRecovery: log route/loss snapshot on state change Emit a "network state changed" line with the per-stack route-present flags and packet-loss values only when the snapshot differs from the previous run (persisted in /tmp/.ncr_laststate), so field logs capture every transition without printing on every run. Debugging aid for customer-site triage. * DELIA-70624: remove debug logging and make script POSIX/busybox-sh safe - Drop the temporary DEBUG_NCR field-debug logging; retain the "network state changed" transition log (now unprefixed). - checkWifiDrvErrors(): $dir already holds the full debugfs path, so remove the duplicated /sys/kernel/debug/ieee80211/ prefix from the log messages, and capture the cat exit status so the failure log reports the real status instead of the enclosing test's result. - Replace bashisms with POSIX/busybox-ash equivalents: source -> ., [[ =~ ]] -> case, [[ ]] -> [ ], and {1..9} -> explicit list (the brace form never expands under busybox ash, which had left the WIFIV_WARN_PL_20..90PERC packet-loss markers non-functional on target). - Minor whitespace cleanup in checkDnsFile(). * DELIA-70624: restore 100% packet-loss triage marker and fix marker case Reinstate the field-triage log marker for 100% packet loss that was lost when checkPacketLoss() moved to a tolerance-based recovery decision. The new log-only marker "100% Packet loss is observed on all routed IP stacks" fires when every routed IP stack shows exactly 100% loss. It is independent of WifiReassociateTolerance and does not alter the recovery/return path, so recovery behaviour is unchanged. Unlike the legacy dual-stack "...for both ipv4 and ipv6" print, it is also emitted correctly on IPv4-only and IPv6-only networks. Triage associates the old and new strings to the same 100%-packet-loss marker for trend continuity across images. Also capitalise the "Packet loss more than 10% observed" marker (was lowercase "packet loss ...") since triage marker matching is case-sensitive. --------- Signed-off-by: Balaji Punnuru Co-authored-by: Balaji Punnuru --- lib/rdk/networkConnectionRecovery.sh | 231 ++++++++++++++++++--------- 1 file changed, 152 insertions(+), 79 deletions(-) diff --git a/lib/rdk/networkConnectionRecovery.sh b/lib/rdk/networkConnectionRecovery.sh index 5a654162..efdeae54 100755 --- a/lib/rdk/networkConnectionRecovery.sh +++ b/lib/rdk/networkConnectionRecovery.sh @@ -21,20 +21,22 @@ #Purpose : To recover from the network breakages and log the details #Scope : RDK Devices #Usage : Invoked by systemd service - + . /etc/device.properties . /etc/include.properties . $RDK_PATH/utils.sh if [ -f /lib/rdk/t2Shared_api.sh ]; then - source /lib/rdk/t2Shared_api.sh + . /lib/rdk/t2Shared_api.sh fi logsFile=$LOG_PATH/ConnectionStats.txt dnsFile="/etc/resolv.dnsmasq" wifiStateFile="/tmp/wifi-on" -packetsLostipv4=0 -packetsLostipv6=0 +ipv4PacketLoss=0 +ipv6PacketLoss=0 +ipv4GwPresent=0 +ipv6GwPresent=0 lossThreshold=10 lnfSSIDConnected=0 lnfPskSSID=A16746DF2466410CA2ED9FB2E32FE7D9 @@ -45,6 +47,7 @@ pingInterval=0.2 #Interval between pings wifiResetWaitTime=180 currentTime=0 tmpFile="/tmp/.Connection.txt" +prevStateFile="/tmp/.ncr_laststate" wifiDriverErrors=0 ##RFC parameters that can be customized @@ -59,6 +62,12 @@ WifiReassociateTolerance=100 dnsFailures=0 maxdnsFailures=3 +# Append a timestamped line to $logsFile. +log() +{ + echo "$(/bin/timestamp) $*" >> "$logsFile" +} + StoreTotmpFile() { [ -f "$tmpFile" ] && rm "$tmpFile" @@ -124,8 +133,8 @@ checkWifiConnected() { [ ! -f "$wifiStateFile" ] && return 0 strBuffer=$(wpa_cli status 2> /dev/null) - [[ ! "$strBuffer" =~ "wpa_state=COMPLETED" ]] && return 0 - [[ "$strBuffer" =~ "$lnfPskSSID" ]] || [[ "$strBuffer" =~ "$lnfEnterpriseSSID" ]] && lnfSSIDConnected=1 && return 0 + case "$strBuffer" in *"wpa_state=COMPLETED"*) ;; *) return 0 ;; esac + case "$strBuffer" in *"$lnfPskSSID"*|*"$lnfEnterpriseSSID"*) lnfSSIDConnected=1 ; return 0 ;; esac return 1 } @@ -138,25 +147,25 @@ checkEthernetConnected() ret=$? if [ $ret -eq 0 ] ; then if [ "$lnfSSIDConnected" = "1" ]; then - echo "$(/bin/timestamp) TELEMETRY_WIFI_CONNECTED_LNF" >> "$logsFile" + log "TELEMETRY_WIFI_CONNECTED_LNF" #Reset count when lnf ssid is connected count=0 t2CountNotify "SYST_INFO_WIFIConn" else #Skip printing wifi not connected log for the first time - [ $count -gt 0 ] && echo "$(/bin/timestamp) TELEMETRY_WIFI_NOT_CONNECTED" >> "$logsFile" + [ $count -gt 0 ] && log "TELEMETRY_WIFI_NOT_CONNECTED" count=$((count + 1)) fi return 0 else - echo "$(/bin/timestamp) TELEMETRY_WIFI_CONNECTED" >> "$logsFile" + log "TELEMETRY_WIFI_CONNECTED" #Reset count when connectivity is good count=0 t2CountNotify "SYST_INFO_WIFIConn" return 0 fi else - echo "$(/bin/timestamp) TELEMETRY_ETHERNET_CONNECTED" >> "$logsFile" + log "TELEMETRY_ETHERNET_CONNECTED" #Reset count when connectivity is good count=0 t2CountNotify "SYST_INFO_ETHConn" @@ -179,7 +188,7 @@ printWifiDetails() wifiReassociate() { - echo "$(/bin/timestamp) Packet Loss WiFi Reassociating" >> "$logsFile" + log "Packet Loss WiFi Reassociating" t2CountNotify "WIFIV_ERR_reassoc" wpa_cli reassociate #set IsWifiReassociated to 1 after wifi reassociation @@ -190,17 +199,18 @@ checkWifiDrvErrors() { dir=$(find /sys/kernel/debug/ieee80211 -type d -maxdepth 1 | sed '1d') if [ -z "$dir" ] ; then - echo "$(/bin/timestamp) phy directory not in /sys/kernel/debug/ieee80211" >> "$logsFile" + log "phy directory not in /sys/kernel/debug/ieee80211" elif [ ! -f "$dir"/ath10k/fw_stats ]; then - echo "$(/bin/timestamp) fw_stats file not in /sys/kernel/debug/ieee80211/$dir/ath10k/" >> "$logsFile" + log "fw_stats file not in $dir/ath10k/" else cat "$dir"/ath10k/fw_stats > /dev/null 2>&1 - if [[ $? -ne 0 ]]; then - echo "$(/bin/timestamp) Cant open file /sys/kernel/debug/ieee80211/$dir/ath10k/ status=$?" >> "$logsFile" + catStatus=$? + if [ "$catStatus" -ne 0 ]; then + log "Can't open file $dir/ath10k/fw_stats status=$catStatus" else #Reset tmp variables to 0 when there is no wifi driver issue FirstWifiDriverIssueTime=0 - ["$IsWifiReassociated" -eq 0 ] && IsWifiReset=0 #$IsWifiReassociated=1 indicates wifi reassociation done already and still packetloss happens hence don't make IsWifiReset=0 + [ "$IsWifiReassociated" -eq 0 ] && IsWifiReset=0 #$IsWifiReassociated=1 indicates wifi reassociation done already and still packetloss happens hence don't make IsWifiReset=0 return 0 fi fi @@ -212,17 +222,21 @@ checkWifiDrvErrors() checkPacketLoss() { version=$1 + packetLoss="" currentTime=$(($(date +%s))) if [ -f "/tmp/checkpacketloss" ] ; then if [ "$version" = "V4" ] ; then gwIp=$(cat /tmp/checkpacketloss) pingCmd="ping" + else + gwIp="" fi else if [ "$version" = "V4" ] ; then gwIp=$(/sbin/ip -4 route | awk '/default/ { print $3 }' | head -n1 | awk '{print $1;}') - pingCmd="ping" + gwIp_interface=$(/sbin/ip -4 route | awk '/default/ { print $5 }' | head -n1 | awk '{print $1;}') + pingCmd="ping -I $gwIp_interface" elif [ "$version" = "V6" ] ; then gwIp=$(/sbin/ip -6 route | awk '/default/ { print $3 }' | head -n1 | awk '{print $1;}') gwIp_interface=$(/sbin/ip -6 route | awk '/default/ { print $5 }' | head -n1 | awk '{print $1;}') @@ -232,80 +246,139 @@ checkPacketLoss() if [ "$gwIp" != "" ] && [ "$gwIp" != "dev" ] ; then gwResponse=$($pingCmd -c "$pingCount" -i "$pingInterval" "$gwIp") - ret=$(echo "$gwResponse" | grep "packet"|awk '{print $7}'|cut -d'%' -f1) + packetLoss=$(echo "$gwResponse" | grep "packet"|awk '{print $7}'|cut -d'%' -f1) if [ "$version" = "V4" ] ; then - packetsLostipv4=$ret + ipv4PacketLoss=$packetLoss + ipv4GwPresent=1 elif [ "$version" = "V6" ] ; then - packetsLostipv6=$ret + ipv6PacketLoss=$packetLoss + ipv6GwPresent=1 fi gwResponseTime=$(echo "$gwResponse" | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|') + #Notify 100% gateway packet loss on every run, independent of GatewayLoggingInterval, + #so the marker is not skipped when the run cadence is shorter than GatewayLoggingInterval. + if [ "$packetLoss" = "100" ] ; then + log "$version SYST_WARN_GW100PERC_PACKETLOSS, gateway $gwIp" + t2CountNotify "SYST_WARN_GW100PERC_PACKETLOSS" + fi if [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] ; then - echo "$(/bin/timestamp) $version gateway = $gwIp " >> "$logsFile" - if [ "$ret" = "100" ] ; then - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:NR,$gwIp" >> "$logsFile" - echo "$(/bin/timestamp) Current Packet loss is SYST_WARN_GW100PERC_PACKETLOSS" - t2CountNotify "SYST_WARN_GW100PERC_PACKETLOSS" + if [ "$packetLoss" = "100" ] ; then + log "TELEMETRY_GATEWAY_RESPONSE_TIME:NR,$gwIp" else - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_RESPONSE_TIME:$gwResponseTime,$gwIp" >> "$logsFile" + log "TELEMETRY_GATEWAY_RESPONSE_TIME:$gwResponseTime,$gwIp" fi - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_PACKET_LOSS:$ret,$gwIp" >> "$logsFile" + log "TELEMETRY_GATEWAY_PACKET_LOSS:$packetLoss,$gwIp" fi else if [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] ; then - echo "$(/bin/timestamp) TELEMETRY_GATEWAY_NO_ROUTE_$version" >> "$logsFile" + log "TELEMETRY_GATEWAY_NO_ROUTE_$version" t2CountNotify "WIFIV_INFO_NO${version}ROUTE" fi fi [ "$(($GatewayLogTimeStamp+$GatewayLoggingInterval))" -le "$currentTime" ] && GatewayLogTimeStamp=$(($(date +%s))) - #Send telemetry notification for 20%,30%....90% packet loss - if [ "$packetsLostipv4" -gt "$lossThreshold" ] || [ "$packetsLostipv6" -gt "$lossThreshold" ] ; then - echo "$(/bin/timestamp) Packet loss more than $lossThreshold% observed." >> "$logsFile" - if [ "$packetsLostipv4" -ne 100 ] && [ "$packetsLostipv6" -ne 100 ]; then - for i in {1..9}; do - if ([ "$packetsLostipv4" -ge $((i*10)) ] && [ "$packetsLostipv4" -lt $((i*10+10)) ]) || ([ "$packetsLostipv6" -ge $((i*10)) ] && [ "$packetsLostipv6" -lt $((i*10+10)) ]); then - echo "$(/bin/timestamp) Current Packet loss is WIFIV_WARN_PL_"$((i*10))"PERC" >> "$logsFile" - t2CountNotify "WIFIV_WARN_PL_"$((i*10))"PERC" - break - fi - done - fi - else - if [ "$packetsLostipv4" -ne 0 ] && [ "$packetsLostipv6" -ne 0 ]; then + #Send telemetry notification for 20%,30%....90% packet loss + if [ -n "$packetLoss" ] ; then + if [ "$packetLoss" -gt "$lossThreshold" ] ; then + log "$version Packet loss more than $lossThreshold% observed (packetLoss=$packetLoss)" + if [ "$packetLoss" -ne 100 ] ; then + for i in 1 2 3 4 5 6 7 8 9; do + if [ "$packetLoss" -ge $((i*10)) ] && [ "$packetLoss" -lt $((i*10+10)) ] ; then + log "$version packet loss is WIFIV_WARN_PL_$((i*10))PERC" + t2CountNotify "WIFIV_WARN_PL_"$((i*10))"PERC" + break + fi + done + fi + elif [ "$packetLoss" -ne 0 ] ; then #Send telemetry notification for 10% packet loss - echo "$(/bin/timestamp) Current Packet loss is WIFIV_WARN_PL_10PERC" >> "$logsFile" + log "$version packet loss is WIFIV_WARN_PL_10PERC" t2CountNotify "WIFIV_WARN_PL_10PERC" fi fi - if [ "$packetsLostipv4" -ge "$WifiReassociateTolerance" ] && [ "$packetsLostipv6" -ge "$WifiReassociateTolerance" ]; then - echo "$(/bin/timestamp) ${WifiReassociateTolerance}% Packet loss is observed for both ipv4 and ipv6." >> "$logsFile" - #Note down $FirstPacketLossTime when threshold packetloss is detected for the first time - [ "$FirstPacketLossTime" -eq 0 ] && FirstPacketLossTime=$(($(date +%s))) - #Note down $PacketLossLogTimeStamp when PacketLossLogTimeStamp is 0 - [ "$PacketLossLogTimeStamp" -eq 0 ] && PacketLossLogTimeStamp=$(($(date +%s))) - #Note down $EthernetLogTimeStamp when EthernetLogTimeStamp is 0 and ethernet connected - [ "$IsEthernetConnected" -eq 1 ] && [ "$EthernetLogTimeStamp" -eq 0 ] && EthernetLogTimeStamp=$(($(date +%s))) - return 1 - fi + #Evaluate the packet-loss trigger only on the V6 call, once both stacks have + #been probed (globals set during the preceding V4 call persist here). Classify + #each routed stack as good (loss < tolerance = acceptable connectivity) or bad + #(loss >= tolerance); a stack with no default route or an unparseable ping + #result is ignored. Because any acceptable stack means we should not tear down + #L2, recovery is warranted only when NO routed stack is good and at least one + #routed stack is bad: + # - dual-stack (IPv4 + IPv6): both must be at/above tolerance to return 1 + # - IPv4-only : IPv4 packet loss alone controls the result + # - IPv6-only : IPv6 packet loss alone controls the result + if [ "$version" = "V6" ] ; then + #Log the per-stack route/loss snapshot only when it changes from the previous + #run, so field logs capture every transition without flooding on every run. + currState="ipv4Route=$ipv4GwPresent ipv6Route=$ipv6GwPresent ipv4PacketLoss=$ipv4PacketLoss ipv6PacketLoss=$ipv6PacketLoss" + prevState="" + [ -f "$prevStateFile" ] && prevState=$(cat "$prevStateFile") + if [ "$currState" != "$prevState" ] ; then + log "network state changed: ($currState)" + echo "$currState" > "$prevStateFile" + fi - #Reset tmp parameters to default values only after both V4 and V6 are measured (on V6 call). - #Resetting on V4 check alone would be premature because packetsLostipv6 is still 0 (script init) - #at that point, causing FirstPacketLossTime to be incorrectly cleared before V6 is measured. - #Reset if either V4 or V6 is below the reassociate tolerance, indicating recovery on at least one path. - if [ "$version" = "V6" ] && { [ "$packetsLostipv4" -lt "$WifiReassociateTolerance" ] || [ "$packetsLostipv6" -lt "$WifiReassociateTolerance" ]; }; then - echo "$(/bin/timestamp) [DEBUG_NCR] checkPacketLoss: BELOW TOLERANCE returning 0 - resetting FirstPacketLossTime/PacketLossLogTimeStamp/IsWifiReassociated. wifiDriverErrors=$wifiDriverErrors" >> "$logsFile" - FirstPacketLossTime=0 - PacketLossLogTimeStamp=0 - EthernetLogTimeStamp=0 - IsWifiReassociated=0 - [ "$wifiDriverErrors" -eq 0 ] && IsWifiReset=0 #Make IsWifiReset=0 only when there is no wifidriverissue - else - echo "$(/bin/timestamp) [DEBUG_NCR] checkPacketLoss: BELOW TOLERANCE returning 0 - skipping reset (version=$version, waiting for V6 measurement). wifiDriverErrors=$wifiDriverErrors" >> "$logsFile" + #100% packet-loss field-triage marker. Fires when every routed IP stack shows + #exactly 100% loss - the successor to the legacy + #"100% Packet loss is observed for both ipv4 and ipv6." print, generalized so it + #is also emitted correctly on IPv4-only and IPv6-only networks (the old dual-stack + #test silently missed those). A stack with no default route or an unparseable ping + #result is not counted. This is a log-only marker: it is independent of + #WifiReassociateTolerance and of the recovery decision below, so it appears in the + #same 100%-loss situation as the legacy print. Field triage greps the + #"100% Packet loss is observed" head across the fleet. + routedStacks=0 + all100=1 + if [ "$ipv4GwPresent" -eq 1 ] && [ -n "$ipv4PacketLoss" ] ; then + routedStacks=$((routedStacks + 1)) + [ "$ipv4PacketLoss" = "100" ] || all100=0 + fi + if [ "$ipv6GwPresent" -eq 1 ] && [ -n "$ipv6PacketLoss" ] ; then + routedStacks=$((routedStacks + 1)) + [ "$ipv6PacketLoss" = "100" ] || all100=0 + fi + if [ "$routedStacks" -gt 0 ] && [ "$all100" -eq 1 ] ; then + log "100% Packet loss is observed on all routed IP stacks" + fi + + anyGood=0 + anyBad=0 + if [ "$ipv4GwPresent" -eq 1 ] && [ -n "$ipv4PacketLoss" ] ; then + if [ "$ipv4PacketLoss" -ge "$WifiReassociateTolerance" ] ; then anyBad=1 ; else anyGood=1 ; fi + fi + if [ "$ipv6GwPresent" -eq 1 ] && [ -n "$ipv6PacketLoss" ] ; then + if [ "$ipv6PacketLoss" -ge "$WifiReassociateTolerance" ] ; then anyBad=1 ; else anyGood=1 ; fi + fi + + if [ "$anyGood" -eq 0 ] && [ "$anyBad" -eq 1 ] ; then + #No routed stack has acceptable connectivity and at least one is bad -> recover. + log "Packet loss is observed on all routed IP stacks (ipv4Route=$ipv4GwPresent ipv6Route=$ipv6GwPresent ipv4PacketLoss=$ipv4PacketLoss ipv6PacketLoss=$ipv6PacketLoss tolerance=${WifiReassociateTolerance}%)" + #Note down $FirstPacketLossTime when threshold packetloss is detected for the first time + [ "$FirstPacketLossTime" -eq 0 ] && FirstPacketLossTime=$(($(date +%s))) + #Note down $PacketLossLogTimeStamp when PacketLossLogTimeStamp is 0 + [ "$PacketLossLogTimeStamp" -eq 0 ] && PacketLossLogTimeStamp=$(($(date +%s))) + #Note down $EthernetLogTimeStamp when EthernetLogTimeStamp is 0 and ethernet connected + [ "$IsEthernetConnected" -eq 1 ] && [ "$EthernetLogTimeStamp" -eq 0 ] && EthernetLogTimeStamp=$(($(date +%s))) + return 1 + elif [ "$anyGood" -eq 1 ] ; then + #At least one routed stack has acceptable connectivity (below tolerance) -> clear packet-loss state. + # log "[DEBUG_NCR] checkPacketLoss: acceptable connectivity on a routed stack (ipv4PacketLoss=$ipv4PacketLoss ipv6PacketLoss=$ipv6PacketLoss) - resetting FirstPacketLossTime/PacketLossLogTimeStamp/IsWifiReassociated. wifiDriverErrors=$wifiDriverErrors" + FirstPacketLossTime=0 + PacketLossLogTimeStamp=0 + EthernetLogTimeStamp=0 + IsWifiReassociated=0 + [ "$wifiDriverErrors" -eq 0 ] && IsWifiReset=0 #Make IsWifiReset=0 only when there is no wifidriverissue + else + #No routed stack was measurable (no route / unparseable) -> skip reset so a total loss of + #routes does not wipe an in-progress packet-loss timer. + # log "[DEBUG_NCR] checkPacketLoss: no routed-stack measurement (version=$version) - skipping reset. wifiDriverErrors=$wifiDriverErrors" + : + fi fi + return 0 } @@ -323,10 +396,10 @@ wifiReset() #Set IsWifiReset to 1 after wifi reset IsWifiReset=1 StoreTotmpFile - echo "$(/bin/timestamp) Start WiFi Reset. !!!!!!!!!!!!!!" >> "$logsFile" - + log "Start WiFi Reset. !!!!!!!!!!!!!!" + systemctl restart wifi.service - echo "$(/bin/timestamp) WiFi Reset done as part of Recovery. !!!!!!!!!!!!!!" >> "$logsFile" + log "WiFi Reset done as part of Recovery. !!!!!!!!!!!!!!" exit 0 } @@ -334,18 +407,18 @@ checkDnsFile() { if [ -f "$dnsFile" ] ; then if [ $(tr -d ' \r\n\t' < $dnsFile | wc -c ) -eq 0 ] ; then - echo "$(/bin/timestamp) DNS File($dnsFile) is empty" >> "$logsFile" - t2CountNotify "SYST_ERR_DNSFileEmpty" + log "DNS File($dnsFile) is empty" + t2CountNotify "SYST_ERR_DNSFileEmpty" gwIpv4=$(/sbin/ip -4 route show default | awk 'NR==1 {print $3; exit}') gwIpv6=$(/sbin/ip -6 route show default | awk 'NR==1 {print $3; exit}') routeIpv4=$(/sbin/ip -4 route) - routeIpv6=$(/sbin/ip -6 route) + routeIpv6=$(/sbin/ip -6 route) if [ "$gwIpv4" != "" ] || [ "$gwIpv6" != "" ] ; then dnsFailures=$((dnsFailures + 1)) case $routeIpv4 in *"error"*) dnsFailures=0 - ;; + ;; esac case $routeIpv6 in *"error"*) @@ -357,7 +430,7 @@ checkDnsFile() fi if [ "$dnsFailures" -gt "$maxdnsFailures" ] ; then - echo "$(/bin/timestamp) Restarting udhcpc to recover" >> "$logsFile" + log "Restarting udhcpc to recover" InterfaceList="$ethernet_interface $WIFI_INTERFACE" for interface in $InterfaceList do @@ -375,7 +448,7 @@ checkDnsFile() dnsFailures=0 fi else - echo "$(/bin/timestamp) DNS File is not there $dnsFile" >> "$logsFile" + log "DNS File is not there $dnsFile" fi } @@ -383,7 +456,7 @@ checkRfc() { rfcWifiResetEnable="$(tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.WiFiReset.Enable 2>&1 > /dev/null)" if [ "$rfcWifiResetEnable" = "true" ] ; then - echo "$(/bin/timestamp) WiFiReset RFC is true " >> "$logsFile" + log "WiFiReset RFC is true " rfcEthernetLoggingInterval="$(tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.WiFiReset.EthernetLoggingInterval 2>&1 > /dev/null)" if [ ! -z "$rfcEthernetLoggingInterval" ] && [ "$rfcEthernetLoggingInterval" != 0 ] ; then EthernetLoggingInterval="$rfcEthernetLoggingInterval" @@ -409,10 +482,10 @@ checkRfc() WifiResetIntervalForDriverIssue="$rfcWifiResetIntervalForDriverIssue" fi fi - + rfcWifiReassociateTolerance="$(tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.WiFiReset.ReassociateTolerance 2>&1 > /dev/null)" if [ ! -z "$rfcWifiReassociateTolerance" ] && [ "$rfcWifiReassociateTolerance" != 0 ] ; then - WifiReassociateTolerance="$rfcWifiReassociateTolerance" + WifiReassociateTolerance="$rfcWifiReassociateTolerance" fi } @@ -426,7 +499,7 @@ LoadFromtmpFile if [ "$IsWifiReset" -eq 1 ] ; then currentTime=$(($(date +%s))) if [ "$(($WifiResetTime+$wifiResetWaitTime))" -gt "$currentTime" ] ; then - echo "$(/bin/timestamp) Skip all checks since wifi reset is done recently" >> "$logsFile" + log "Skip all checks since wifi reset is done recently" exit 0 fi fi From c7032b525627fd6fd4189241a532e1528b3bf085 Mon Sep 17 00:00:00 2001 From: nhanas001c Date: Fri, 24 Jul 2026 17:38:35 +0000 Subject: [PATCH 31/31] Sysint 4.2.1v17 hotfix release --- CHANGELOG.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6ae5a49..f1dab763 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [4.2.1v16](https://github.com/rdkcentral/sysint/compare/5.1.0...4.2.1v16) +#### [4.2.1v17](https://github.com/rdkcentral/sysint/compare/6.0.1...4.2.1v17) +- RDKEMW-21582: Network connection recovery script should handle IPv4-only/IPv6-only networks [`#581`](https://github.com/rdkcentral/sysint/pull/581) - RDKEMW-19100:gst-cleanup conditions when cdl_flashed_file_name is not present [`#551`](https://github.com/rdkcentral/sysint/pull/551) - RDKEMW-18972 : RebootReason log adds colon in the Parodus.log file [`#550`](https://github.com/rdkcentral/sysint/pull/550) - RDKEMW-16152: "Let's get connected" screen displayed during Migration testing [`#549`](https://github.com/rdkcentral/sysint/pull/549) @@ -23,6 +24,27 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Sysint 4.2.1 hotfix release [`c542d88`](https://github.com/rdkcentral/sysint/commit/c542d88c469198d0d7c5b55503635a88697beaa3) - Sysint 4.2.1v13 hotfix release [`27c5acd`](https://github.com/rdkcentral/sysint/commit/27c5acd0f90ce3cacb99383139d441289f56526f) +#### [6.0.1](https://github.com/rdkcentral/sysint/compare/6.0.0...6.0.1) + +> 20 July 2026 + +- RDKE-1065: Automated workflow - create pull request to main instead of develop [`#572`](https://github.com/rdkcentral/sysint/pull/572) +- RDKEMW-20916 : [RDKE] [Develop] RDKV-to-RDKE Migration: Unexpected Network Connectivity Prior to Migration Completion [`#571`](https://github.com/rdkcentral/sysint/pull/571) +- RDKEMW-10439: Reboot device with WareHouse plugin resetDevice [`#381`](https://github.com/rdkcentral/sysint/pull/381) +- RDKEMW-21159: avoid thermal call in deepsleep (#548) [`#566`](https://github.com/rdkcentral/sysint/pull/566) +- RDKE-1065: Automated Component release workflow [`#562`](https://github.com/rdkcentral/sysint/pull/562) +- RDKE-1065: Using ubuntu-latest runner for release workflow [`#557`](https://github.com/rdkcentral/sysint/pull/557) +- 6.0.1 release changelog updates [`658364b`](https://github.com/rdkcentral/sysint/commit/658364b56e7ee794ff8f53b1fa88106a6e8ae007) +- Merge tag '6.0.0' into develop [`e96c345`](https://github.com/rdkcentral/sysint/commit/e96c34560bc16714dec958463ebf64772902f45d) + +### [6.0.0](https://github.com/rdkcentral/sysint/compare/5.1.0...6.0.0) + +> 29 June 2026 + +- RDKE-1065: Automated Component Release workflow [`#553`](https://github.com/rdkcentral/sysint/pull/553) +- 6.0.0 release changelog updates [`58e2d19`](https://github.com/rdkcentral/sysint/commit/58e2d19f3d246800212a97f5bd95aeeb923fa4be) +- Merge tag '5.1.0' into develop [`4e51a4f`](https://github.com/rdkcentral/sysint/commit/4e51a4f92b24157d5062264fde85c9469242494f) + #### [5.1.0](https://github.com/rdkcentral/sysint/compare/5.0.2...5.1.0) > 14 May 2026