Skip to content

RDKB-66929 : [Rogers][8.6p4s4] Device inaccessible and loses internet | When GW switch back to router from bridge mode. - #231

Closed
LakshminarayananShenbagaraj wants to merge 3 commits into
releases/2.17.0-mainfrom
RDKB-66929-Test
Closed

LakshminarayananShenbagaraj wants to merge 3 commits into
releases/2.17.0-mainfrom
RDKB-66929-Test

Conversation

@LakshminarayananShenbagaraj

Copy link
Copy Markdown
Contributor

Reason for change:
When the CPE is in bridge mode router advertisement has been received for solicit via rdisc6 due to the reason IPv6 default gateway has not been filled up for connectivity checki. For Recovery, we have to restart connectivity check either IPv4 or IPv6 default gateway not valid case.

Test Procedure:

  1. Connectivity check should start with valid parameters.

Risks: High

… | When GW switch back to router from bridge mode.

Reason for change:
When the CPE is in bridge mode router advertisement has been received for solicit via rdisc6 due to the reason IPv6 default gateway has not been filled up for connectivity checki. For Recovery, we have to restart connectivity check either IPv4 or IPv6 default gateway not valid case.

Test Procedure:
1. Connectivity check should start with valid parameters.

Risks: High

Signed-off-by: LakshminarayananShenbagaraj <lakshminarayanan.shenbagaraj2@sky.uk>
Copilot AI lite review requested due to automatic review settings September 16, 2026 12:35
@LakshminarayananShenbagaraj LakshminarayananShenbagaraj added the bug Something isn't working label Sep 16, 2026
@LakshminarayananShenbagaraj
LakshminarayananShenbagaraj marked this pull request as draft September 16, 2026 12:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Connectivity-check restart handling, parameter validation, and asynchronous startup result handling remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Updates WAN/TAD connectivity-check recovery for DHCP lease changes and bridge-to-router transitions.

Changes:

  • Tracks IPv4/IPv6 lease updates for connectivity-check restarts.
  • Updates TAD running-state handling.
  • Adds DNS and gateway validation before startup.
File summaries
File Summary
source/WanManager/wanmgr_interface_sm.c Handles connectivity-check startup, running state, and retry behavior.
source/WanManager/wanmgr_dhcp_event_handler.c Flags restarts after DHCP lease updates.
source/TR-181/middle_layer_src/wanmgr_rbus_handler_apis.c Validates DNS and gateway parameters before starting TAD.
Review details

Suppressed comments (3)

source/WanManager/wanmgr_dhcp_event_handler.c:190

  • Setting this flag does not itself restart TAD when the interface is already leased/active. In that case the state machine consumes Ipv4Changed in its lease-update branches (for example wanmgr_interface_sm.c:4065-4085) but never calls WanMgr_StartConnectivityCheck, so the old WCC continues with stale parameters and RestartConnectivityCheck remains set. The restart must be consumed after the lease reconfiguration (and the equivalent IPv6 path must be handled too).
                    CcspTraceInfo(("%s %d - IPv4 - RestartConnectivityCheck triggered. \n", __FUNCTION__, __LINE__));
                    pVirtIf->IP.RestartConnectivityCheck = TRUE;

source/WanManager/wanmgr_dhcp_event_handler.c:244

  • The IPv6 lease event has the same gap: when the interface is already in an active leased state, setting RestartConnectivityCheck is not followed by a WanMgr_StartConnectivityCheck call. The state machine handles Ipv6Changed and then continues, leaving the previous TAD instance running with stale DNS/gateway data. Consume the restart after IPv6 reconfiguration, including the dual-stack path.
                    CcspTraceInfo(("%s %d - IPv6 - RestartConnectivityCheck triggered. \n", __FUNCTION__, __LINE__));
                    pVirtIf->IP.RestartConnectivityCheck = TRUE;

source/WanManager/wanmgr_interface_sm.c:1898

  • This return value only means that WanMgr_Configure_WCC_Thread was created; the actual rbusMethod_Invoke and result subscription run asynchronously and can fail in that worker (wanmgr_rbus_handler_apis.c:2097-2119). The new branch can therefore mark ConnectivityCheckRunning true and log success even when TandD never started, suppressing later recovery. Update the running state from the worker's actual result or expose that result instead of treating pthread_create success as configuration success.
        if ( WanMgr_Configure_TAD_WCC( pVirtIf, (pVirtIf->IP.ConnectivityCheckRunning && pVirtIf->IP.RestartConnectivityCheck) ? WCC_RESTART : WCC_START) == ANSC_STATUS_SUCCESS )
        {
            CcspTraceInfo(("%s %d - Successfully configured TAD WCC for interface %s \n", __FUNCTION__, __LINE__, pVirtIf->Name));
            pVirtIf->IP.ConnectivityCheckRunning = TRUE;    
  • Files reviewed: 3/3 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread source/TR-181/middle_layer_src/wanmgr_rbus_handler_apis.c Outdated
Comment on lines +1895 to +1899
if ( WanMgr_Configure_TAD_WCC( pVirtIf, (pVirtIf->IP.ConnectivityCheckRunning && pVirtIf->IP.RestartConnectivityCheck) ? WCC_RESTART : WCC_START) == ANSC_STATUS_SUCCESS )
{
CcspTraceInfo(("%s %d - Successfully configured TAD WCC for interface %s \n", __FUNCTION__, __LINE__, pVirtIf->Name));
pVirtIf->IP.ConnectivityCheckRunning = TRUE;
}
… | When GW switch back to router from bridge mode.

Reason for change:
When the CPE is in bridge mode router advertisement has been received for solicit via rdisc6 due to the reason IPv6 default gateway has not been filled up for connectivity checki. For Recovery, we have to restart connectivity check either IPv4 or IPv6 default gateway not valid case.

Test Procedure:
Connectivity check should start with valid parameters.

Risks: High

Signed-off-by: LakshminarayananShenbagaraj <lakshminarayanan.shenbagaraj2@sky.uk>
… | When GW switch back to router from bridge mode.

Reason for change:
When the CPE is in bridge mode router advertisement has been received for solicit via rdisc6 due to the reason IPv6 default gateway has not been filled up for connectivity checki. For Recovery, we have to restart connectivity check either IPv4 or IPv6 default gateway not valid case.

Test Procedure:
1. Connectivity check should start with valid parameters.

Risks: High

Signed-off-by: LakshminarayananShenbagaraj <lakshminarayanan.shenbagaraj2@sky.uk>
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 1, 2026
@LakshminarayananShenbagaraj
LakshminarayananShenbagaraj deleted the RDKB-66929-Test branch October 1, 2026 13:02
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants