Skip to content

[nexus] add test 1.2.LP.5.3.7 for SSED CSL Synchronized Timeout#12611

Merged
jwhui merged 1 commit intoopenthread:mainfrom
jwhui:nexus-1-2-LP-5-3-7
Mar 5, 2026
Merged

[nexus] add test 1.2.LP.5.3.7 for SSED CSL Synchronized Timeout#12611
jwhui merged 1 commit intoopenthread:mainfrom
jwhui:nexus-1-2-LP-5-3-7

Conversation

@jwhui
Copy link
Copy Markdown
Member

@jwhui jwhui commented Mar 4, 2026

This commit adds a new Nexus test case 1.2.LP.5.3.7 to validate that a
Router (DUT) correctly supports a Synchronized Sleepy End Device
(SSED) modifying the CSL Synchronized Timeout TLV.

Specifically, this test verifies:

  • Initial CSL synchronization with a 10s timeout.
  • SSED successfully updating the timeout to 20s via MLE Child Update.
  • DUT maintaining connectivity beyond the original 10s timeout.
  • DUT correctly buffering frames when CSL synchronization expires
    after the timeout is reverted to 10s.
  • Successful resynchronization and buffered frame delivery.

Detailed changes:

  • tests/nexus/test_1_2_LP_5_3_7.cpp: Implemented the C++ test logic
    using the Nexus simulation framework.
  • tests/nexus/verify_1_2_LP_5_3_7.py: Added a Python script to
    validate the packet traces and ensure protocol compliance.
  • tests/nexus/CMakeLists.txt: Added the new test to the build system.
  • tests/nexus/run_nexus_tests.sh: Included the test in the default
    Nexus test suite.

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new Nexus test to ensure robust behavior of Thread Routers when interacting with Sleepy End Devices (SSEDs) that dynamically adjust their Coordinated Sampled Listening (CSL) synchronized timeout. The test validates the Router's ability to handle these modifications, including proper frame buffering and resynchronization, which is crucial for maintaining connectivity and power efficiency in Thread networks.

Highlights

  • New Nexus Test Case: A new Nexus test case, 1.2.LP.5.3.7, has been added to validate specific Thread protocol behavior.
  • SSED CSL Synchronized Timeout Validation: The test specifically verifies that a Router (DUT) correctly supports a Sleepy End Device (SSED) modifying its Coordinated Sampled Listening (CSL) Synchronized Timeout TLV.
  • Test Implementation: The test includes a C++ implementation (test_1_2_LP_5_3_7.cpp) that configures Leader, Router, and SSED nodes, and a Python script (verify_1_2_LP_5_3_7.py) to verify pcap output, ensuring correct buffering and forwarding of frames.
  • Test Suite Integration: The new test has been integrated into the Nexus test suite by updating CMakeLists.txt and run_nexus_tests.sh.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • tests/nexus/CMakeLists.txt
    • Added the new test case '1_2_LP_5_3_7' to the Nexus test suite configuration.
  • tests/nexus/run_nexus_tests.sh
    • Included the new test case '1_2_LP_5_3_7' in the default list of tests to be executed.
  • tests/nexus/test_1_2_LP_5_3_7.cpp
    • Implemented the C++ logic for the '1.2.LP.5.3.7' test case, setting up network topology and simulating SSED CSL timeout modifications.
  • tests/nexus/verify_1_2_LP_5_3_7.py
    • Added a Python script to verify the packet capture (pcap) output for the '1.2.LP.5.3.7' test, ensuring compliance with expected network behavior.
Activity
  • No human activity (comments, reviews) has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot]

This comment was marked as outdated.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 4, 2026

Merging #12611 into main

name branch text data bss total
ot-cli-ftd a57445c 482136 860 66540 549536
1598b35 482136 860 66540 549536
+/- +0 +0 +0 +0
ot-ncp-ftd a57445c 448036 764 61776 510576
1598b35 448036 764 61776 510576
+/- +0 +0 +0 +0
ot-cli-mtd a57445c 374608 764 50972 426344
1598b35 374608 764 50972 426344
+/- +0 +0 +0 +0
ot-ncp-mtd a57445c 355756 764 46240 402760
1598b35 355756 764 46240 402760
+/- +0 +0 +0 +0
ot-cli-ftd-br a57445c 598440 868 136596 735904
1598b35 598440 868 136596 735904
+/- +0 +0 +0 +0
ot-rcp a57445c 63328 568 20804 84700
1598b35 63328 568 20804 84700
+/- +0 +0 +0 +0
Library files
name branch text data bss total
libopenthread-ftd.a a57445c 249792 95 40319 290206
1598b35 249792 95 40319 290206
+/- +0 +0 +0 +0
libopenthread-cli-ftd.a a57445c 61727 0 8091 69818
1598b35 61727 0 8091 69818
+/- +0 +0 +0 +0
libopenthread-ncp-ftd.a a57445c 33581 0 5948 39529
1598b35 33581 0 5948 39529
+/- +0 +0 +0 +0
libopenthread-mtd.a a57445c 168227 0 24783 193010
1598b35 168227 0 24783 193010
+/- +0 +0 +0 +0
libopenthread-cli-mtd.a a57445c 41436 0 8059 49495
1598b35 41436 0 8059 49495
+/- +0 +0 +0 +0
libopenthread-ncp-mtd.a a57445c 25805 0 5948 31753
1598b35 25805 0 5948 31753
+/- +0 +0 +0 +0
libopenthread-ftd-br.a a57445c 366713 100 110335 477148
1598b35 366713 100 110335 477148
+/- +0 +0 +0 +0
libopenthread-cli-ftd-br.a a57445c 80934 0 8131 89065
1598b35 80934 0 8131 89065
+/- +0 +0 +0 +0
libopenthread-rcp.a a57445c 9944 0 5060 15004
1598b35 9944 0 5060 15004
+/- +0 +0 +0 +0
libopenthread-radio.a a57445c 19715 0 238 19953
1598b35 19715 0 238 19953
+/- +0 +0 +0 +0

@jwhui jwhui force-pushed the nexus-1-2-LP-5-3-7 branch from ea049ca to 62626e5 Compare March 4, 2026 03:19
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.05%. Comparing base (a57445c) to head (4c72155).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #12611      +/-   ##
==========================================
- Coverage   75.10%   75.05%   -0.06%     
==========================================
  Files         697      697              
  Lines       95605    97752    +2147     
==========================================
+ Hits        71803    73366    +1563     
- Misses      23802    24386     +584     

see 248 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jwhui jwhui force-pushed the nexus-1-2-LP-5-3-7 branch 2 times, most recently from 2f8462f to 3656e04 Compare March 4, 2026 19:38
gemini-code-assist[bot]

This comment was marked as outdated.

@jwhui jwhui force-pushed the nexus-1-2-LP-5-3-7 branch from 3656e04 to 600e91a Compare March 4, 2026 19:51
gemini-code-assist[bot]

This comment was marked as outdated.

@jwhui jwhui force-pushed the nexus-1-2-LP-5-3-7 branch from 600e91a to 9a30167 Compare March 4, 2026 20:02
@jwhui
Copy link
Copy Markdown
Member Author

jwhui commented Mar 4, 2026

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new Nexus test case, 1.2.LP.5.3.7, to validate a router's support for a Synchronized Sleepy End Device (SSED) modifying its CSL Synchronized Timeout. The changes include the C++ test implementation, a Python verification script, and updates to the build and test execution scripts. The implementation is well-structured and correctly follows the test specification. The suggestion to improve the test's efficiency by reducing an unnecessary delay has been retained.

@jwhui jwhui requested a review from abtink March 4, 2026 20:06
@jwhui jwhui force-pushed the nexus-1-2-LP-5-3-7 branch from 9a30167 to 5c1485b Compare March 5, 2026 02:50
This commit adds a new Nexus test case 1.2.LP.5.3.7 to validate that a
Router (DUT) correctly supports a Synchronized Sleepy End Device
(SSED) modifying the CSL Synchronized Timeout TLV.

Specifically, this test verifies:
- Initial CSL synchronization with a 10s timeout.
- SSED successfully updating the timeout to 20s via MLE Child Update.
- DUT maintaining connectivity beyond the original 10s timeout.
- DUT correctly buffering frames when CSL synchronization expires
  after the timeout is reverted to 10s.
- Successful resynchronization and buffered frame delivery.

Detailed changes:
- tests/nexus/test_1_2_LP_5_3_7.cpp: Implemented the C++ test logic
  using the Nexus simulation framework.
- tests/nexus/verify_1_2_LP_5_3_7.py: Added a Python script to
  validate the packet traces and ensure protocol compliance.
- tests/nexus/CMakeLists.txt: Added the new test to the build system.
- tests/nexus/run_nexus_tests.sh: Included the test in the default
  Nexus test suite.
@jwhui jwhui force-pushed the nexus-1-2-LP-5-3-7 branch from 5c1485b to 4c72155 Compare March 5, 2026 04:11
@jwhui jwhui merged commit 21837d7 into openthread:main Mar 5, 2026
123 of 125 checks passed
@jwhui jwhui deleted the nexus-1-2-LP-5-3-7 branch March 5, 2026 05:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants