Skip to content

[network-manager-app] pending dataset support over ubus - #73309

Draft
LorbusChris wants to merge 5 commits into
project-chip:masterfrom
LorbusChris:network-manager-pending-dataset
Draft

[network-manager-app] pending dataset support over ubus#73309
LorbusChris wants to merge 5 commits into
project-chip:masterfrom
LorbusChris:network-manager-pending-dataset

Conversation

@LorbusChris

@LorbusChris LorbusChris commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

The Linux network-manager example can already delegate Thread management to an external otbr-agent over ubus on OpenWrt. This series makes that delegation handle the full network lifecycle:

  • implement RevertActiveDataset in the fake delegate (parity for testing)
  • support pending datasets in the ubus delegate: SetPendingDatasetRequest forwards to otbr's set_pending; completion is tracked via the pending_dataset_changed notification
  • invoke provision and deprovision asynchronously — ubus calls must not block the Matter thread
  • publish a matter ubus object: commissioning-window control, onboarding state for a web UI, and a reload_wifi poke
  • guard dataset revert and advertise the device name

The otbr-side ubus counterpart is being upstreamed to openthread/ot-br-posix (openthread/ot-br-posix#3489 plus a follow-up series; author coordination in project-chip/matter-openwrt#53, where these commits ship as the matter-netman 030–035 patches).

Requires: openthread/ot-br-posix#3489
Requires: ot-br-posix patches 100-106,110 from https://github.com/project-chip/matter-openwrt/tree/main/third_party/openthread-br/patches (PR to be opened by @ksperling-apple)

Suggested reviewer: @ksperling-apple

Related issues

project-chip/matter-openwrt#53

Testing

In daily production use on an OpenWrt (Turris Omnia) border router as a Matter NIM device: commissioned into a Home Assistant fabric; Thread Border Router Management reads/writes; RevertActiveDataset under the fail-safe; and a live whole-network Thread migration (~30 devices) driven through the pending-dataset path end to end. matter-network-manager-app built from this branch with GN (host Linux).

@CLAassistant

CLAassistant commented Jul 30, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces a new MatterUbusService to publish a "matter" ubus object for onboarding and commissioning window control, and updates the OpenThread ubus border router delegate to support pending datasets and asynchronous provisioning/deprovisioning. The review feedback highlights several critical issues, including potential null pointer dereferences in SetActiveDataset and HandleOpenWindow, a potential use-after-free or incorrect state transition in RevertActiveDataset due to an uncleared callback, and a potential compilation failure in HandleOpenWindow due to strict type safety.

Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp Outdated
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp
@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch from cbf69ed to e4737a4 Compare July 30, 2026 11:58
Comment thread examples/network-manager-app/linux/include/CHIPProjectAppConfig.h Outdated
@LorbusChris

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces the MatterUbusService to expose onboarding information and commissioning window controls via ubus, and enhances the OpenThread ubus border router delegate to support pending datasets, asynchronous provisioning, and reverting active datasets. The review feedback highlights three main improvement opportunities: ensuring mActiveDataset is cleared and reported even if ubus_invoke_async fails during a revert to prevent inconsistent local state; increasing the QR code buffer size in MatterUbusService to 128 bytes to avoid potential buffer size errors; and conditionally triggering the pending dataset attribute change notification only when the dataset is successfully updated or cleared.

Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp Outdated
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch 2 times, most recently from 97023d3 to 65025df Compare July 30, 2026 12:20
@LorbusChris

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces the MatterUbusService to expose onboarding information and commissioning window control via ubus, integrates it into the network manager application, and enhances the OpenThread ubus border router delegate to support asynchronous provisioning, deprovisioning, and pending dataset management. The review feedback highlights several critical areas for improvement: addressing potential Use-After-Free or race conditions by tracking and aborting in-flight asynchronous requests, validating parameters before use in GetDataset, preventing data truncation when opening the commissioning window, and ensuring consistent state management by resetting mActivationPending on provisioning failure and only clearing local state after a successful asynchronous deprovisioning invocation.

Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp Outdated
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch from 65025df to 7de5d04 Compare July 30, 2026 12:30
@LorbusChris

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces a new MatterUbusService to expose Matter onboarding information and commissioning window control via ubus, integrates it into the Linux network-manager-app, and updates the Thread Border Router delegates to support pending datasets, asynchronous provisioning/deprovisioning, and reverting active datasets. The review feedback highlights critical issues with asynchronous ubus invocations in ThreadBROpenThreadUbus.cpp, where registering callbacks after ubus_invoke_async introduces a race condition, and calling ubus_complete_request_async manually is redundant and potentially corruptive. Additionally, a potential use-after-free vulnerability in the callback context deletion was identified, and a type mismatch in MatterUbusService.cpp where System::Clock::Seconds16 should be used instead of System::Clock::Seconds32 was pointed out.

Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp
@LorbusChris

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces the MatterUbusService to expose onboarding information and commissioning window control over ubus, and updates the OpenThread ubus border router delegate to support asynchronous dataset provisioning, pending datasets, and reverting active datasets. The review feedback highlights a critical safety concern: if the OpenThreadUbusBorderRouterDelegate is destroyed or reverted while an asynchronous provision request is still in-flight, it could lead to a Use-After-Free (UAF) or dangling pointer. The reviewer suggests tracking the active request via a new mPendingProvision member, implementing a destructor to abort and clean up the request, and updating RevertActiveDataset accordingly.

Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.h
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.h
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown

PR #73309: Size comparison from 8f38beb to 7de5d04aa11a4d142ff52427f1f9fc608bbbc1a9

Full report (12 builds for cc13x4_26x4, cc32xx, nrfconnect, qpg, realtek, stm32)
platform target config section 8f38beb 7de5d04a change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 778920 778920 0 0.0
RAM 103524 103524 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 791052 791052 0 0.0
RAM 108708 108708 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 740156 740156 0 0.0
RAM 97636 97636 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 720320 720320 0 0.0
RAM 97668 97668 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 571002 571002 0 0.0
RAM 205136 205136 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597882 597882 0 0.0
RAM 205296 205296 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 850620 850620 0 0.0
RAM 158054 158054 0 0.0
qpg lighting-app qpg6200+debug FLASH 844280 844280 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783740 783740 0 0.0
RAM 118896 118896 0 0.0
realtek light-switch-app rtl8777g FLASH 690712 690712 0 0.0
RAM 101896 101896 0 0.0
lighting-app rtl8777g FLASH 731528 731528 0 0.0
RAM 102176 102176 0 0.0
stm32 light STM32WB5MM-DK FLASH 479812 479812 0 0.0
RAM 141612 141612 0 0.0

@LorbusChris

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces a new MatterUbusService to publish a "matter" ubus object for local commissioning control, and enhances the OpenThread ubus border router delegate to support pending datasets, asynchronous provisioning, and dataset reversion. Feedback was provided on ThreadBROpenThreadUbus.cpp to address a potential use-after-free (UAF) vulnerability when a provision request is in-flight during delegate destruction, and to optimize attribute change notifications by avoiding redundant reports when the pending dataset has not actually changed.

Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch 3 times, most recently from b4b0c5b to 0dd5a44 Compare July 30, 2026 13:17
@LorbusChris

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces the MatterUbusService to expose onboarding information and commissioning window control over ubus, and updates the OpenThread ubus border router delegate to support pending datasets, asynchronous provisioning/deprovisioning, and dataset reversion. The review feedback highlights critical thread-safety issues across multiple ubus handlers and callbacks where the CHIP stack lock must be acquired before accessing Matter APIs or modifying delegate state. Additionally, a compilation error was identified in HandleOpenWindow due to a type mismatch when passing the timeout parameter.

Comment thread examples/network-manager-app/linux/MatterUbusService.cpp
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp
Comment thread examples/network-manager-app/linux/MatterUbusService.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
Comment thread examples/network-manager-app/linux/ThreadBROpenThreadUbus.cpp
@github-actions

Copy link
Copy Markdown

PR #73309: Size comparison from 72ecdc2 to 0dd5a445f0b4e85efad7eaed92720999919c9f82

Full report (3 builds for realtek, stm32)
platform target config section 72ecdc2 0dd5a445 change % change
realtek light-switch-app rtl8777g FLASH 690712 690712 0 0.0
RAM 101896 101896 0 0.0
lighting-app rtl8777g FLASH 731528 731528 0 0.0
RAM 102176 102176 0 0.0
stm32 light STM32WB5MM-DK FLASH 479812 479812 0 0.0
RAM 141612 141612 0 0.0

@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch from 0dd5a44 to ee50078 Compare July 30, 2026 13:53
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown

PR #73309: Size comparison from 72ecdc2 to ee50078

Full report (33 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 72ecdc2 ee50078 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1099904 1099904 0 0.0
RAM 133546 133546 0 0.0
bl702 lighting-app bl702+eth FLASH 1086714 1086714 0 0.0
RAM 109157 109157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 882884 882884 0 0.0
RAM 108628 108628 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 778920 778920 0 0.0
RAM 103524 103524 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 791052 791052 0 0.0
RAM 108708 108708 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 740156 740156 0 0.0
RAM 97636 97636 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 720320 720320 0 0.0
RAM 97668 97668 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 571002 571002 0 0.0
RAM 205136 205136 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597882 597882 0 0.0
RAM 205296 205296 0 0.0
efr32 lighting-app BRD4187C FLASH 1120460 1120460 0 0.0
RAM 135124 135124 0 0.0
lock-app BRD4187C FLASH 1011868 1011868 0 0.0
RAM 131284 131284 0 0.0
BRD4338a FLASH 811961 811961 0 0.0
RAM 235136 235136 0 0.0
esp32 all-clusters-app c3devkit DRAM 99692 99692 0 0.0
FLASH 1632694 1632694 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 850620 850620 0 0.0
RAM 158054 158054 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1760500 1760500 0 0.0
RAM 215780 215780 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1632956 1632956 0 0.0
RAM 211708 211708 0 0.0
light cy8ckit_062s2_43012 FLASH 1472236 1472236 0 0.0
RAM 197556 197556 0 0.0
lock cy8ckit_062s2_43012 FLASH 1505052 1505052 0 0.0
RAM 225292 225292 0 0.0
qpg lighting-app qpg6200+debug FLASH 844280 844280 0 0.0
RAM 127964 127964 0 0.0
lock-app qpg6200+debug FLASH 783740 783740 0 0.0
RAM 118896 118896 0 0.0
realtek light-switch-app rtl8777g FLASH 690712 690712 0 0.0
RAM 101896 101896 0 0.0
lighting-app rtl8777g FLASH 731528 731528 0 0.0
RAM 102176 102176 0 0.0
stm32 light STM32WB5MM-DK FLASH 479812 479812 0 0.0
RAM 141612 141612 0 0.0
telink all-devices-app tl7218x FLASH 907182 907182 0 0.0
RAM 100312 100312 0 0.0
tlsr9118bdk40d FLASH 689410 689410 0 0.0
RAM 121176 121176 0 0.0
bridge-app tl7218x FLASH 744686 744686 0 0.0
RAM 97984 97984 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 811472 811472 0 0.0
RAM 42756 42756 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl7218x FLASH 856722 856722 0 0.0
RAM 101868 101868 0 0.0
light-switch-app-ota tl3218x_retention FLASH 746422 746422 0 0.0
RAM 33980 33980 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 754662 754662 0 0.0
RAM 58208 58208 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 815750 815750 0 0.0
RAM 75576 75576 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 616648 616648 0 0.0
RAM 118624 118624 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 852978 852982 4 0.0
RAM 97744 97744 0 0.0

@codecov

codecov Bot commented Jul 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.31%. Comparing base (6b6737b) to head (19b112e).

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #73309   +/-   ##
=======================================
  Coverage   56.31%   56.31%           
=======================================
  Files        1869     1869           
  Lines      121761   121761           
  Branches    14301    14301           
=======================================
  Hits        68571    68571           
  Misses      53190    53190           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

PR #73309: Size comparison from 9463786 to c6ffb47

Full report (12 builds for cc13x4_26x4, cc32xx, nrfconnect, qpg, realtek, stm32)
platform target config section 9463786 c6ffb47 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 778468 778468 0 0.0
RAM 103524 103524 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790600 790600 0 0.0
RAM 108708 108708 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739572 739572 0 0.0
RAM 97636 97636 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719744 719744 0 0.0
RAM 97668 97668 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569830 569830 0 0.0
RAM 205136 205136 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597206 597206 0 0.0
RAM 205296 205296 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 847504 847504 0 0.0
RAM 158081 158081 0 0.0
qpg lighting-app qpg6200+debug FLASH 843272 843272 0 0.0
RAM 127988 127988 0 0.0
lock-app qpg6200+debug FLASH 783528 783528 0 0.0
RAM 118928 118928 0 0.0
realtek light-switch-app rtl8777g FLASH 690080 690080 0 0.0
RAM 101896 101896 0 0.0
lighting-app rtl8777g FLASH 731008 731008 0 0.0
RAM 102176 102176 0 0.0
stm32 light STM32WB5MM-DK FLASH 483444 483444 0 0.0
RAM 128184 128184 0 0.0

@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch from c6ffb47 to aa52470 Compare August 13, 2026 17:43
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

PR #73309: Size comparison from 9463786 to aa52470

Full report (33 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 9463786 aa52470 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1099284 1099284 0 0.0
RAM 133546 133546 0 0.0
bl702 lighting-app bl702+eth FLASH 1086022 1086022 0 0.0
RAM 109157 109157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 884360 884360 0 0.0
RAM 108628 108628 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 778468 778468 0 0.0
RAM 103524 103524 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790600 790600 0 0.0
RAM 108708 108708 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739572 739572 0 0.0
RAM 97636 97636 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719744 719744 0 0.0
RAM 97668 97668 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569830 569830 0 0.0
RAM 205136 205136 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597206 597206 0 0.0
RAM 205296 205296 0 0.0
efr32 lighting-app BRD4187C FLASH 1121172 1121172 0 0.0
RAM 135548 135548 0 0.0
lock-app BRD4187C FLASH 1012524 1012524 0 0.0
RAM 131640 131640 0 0.0
BRD4338a FLASH 814325 814325 0 0.0
RAM 235804 235804 0 0.0
esp32 all-clusters-app c3devkit DRAM 99716 99716 0 0.0
FLASH 1629948 1629948 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 847504 847504 0 0.0
RAM 158081 158081 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1759764 1759764 0 0.0
RAM 215804 215804 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1630908 1630908 0 0.0
RAM 211708 211708 0 0.0
light cy8ckit_062s2_43012 FLASH 1471996 1471996 0 0.0
RAM 197556 197556 0 0.0
lock cy8ckit_062s2_43012 FLASH 1504796 1504796 0 0.0
RAM 225292 225292 0 0.0
qpg lighting-app qpg6200+debug FLASH 843272 843272 0 0.0
RAM 127988 127988 0 0.0
lock-app qpg6200+debug FLASH 783528 783528 0 0.0
RAM 118928 118928 0 0.0
realtek light-switch-app rtl8777g FLASH 690080 690080 0 0.0
RAM 101896 101896 0 0.0
lighting-app rtl8777g FLASH 731008 731008 0 0.0
RAM 102176 102176 0 0.0
stm32 light STM32WB5MM-DK FLASH 483444 483444 0 0.0
RAM 128184 128184 0 0.0
telink all-devices-app tl7218x FLASH 903690 903690 0 0.0
RAM 66288 66288 0 0.0
tlsr9118bdk40d FLASH 685044 685044 0 0.0
RAM 121176 121176 0 0.0
bridge-app tl7218x FLASH 744650 744650 0 0.0
RAM 64400 64400 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 810908 810908 0 0.0
RAM 42756 42756 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl7218x FLASH 856756 856756 0 0.0
RAM 68284 68284 0 0.0
light-switch-app-ota tl3218x_retention FLASH 745396 745396 0 0.0
RAM 33980 33980 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 748268 748268 0 0.0
RAM 36680 36680 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 814244 814244 0 0.0
RAM 75576 75576 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 616410 616410 0 0.0
RAM 118624 118624 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 852414 852418 4 0.0
RAM 97744 97744 0 0.0

@LorbusChris

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Already reviewed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@mergify mergify Bot added the conflict label Aug 21, 2026
@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch from aa52470 to 8fe1864 Compare August 22, 2026 22:10
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@mergify mergify Bot removed the conflict label Aug 22, 2026
@github-actions

github-actions Bot commented Aug 22, 2026

Copy link
Copy Markdown

PR #73309: Size comparison from b791201 to 8fe1864

Full report (6 builds for cc32xx, nrfconnect, realtek, stm32)
platform target config section b791201 8fe1864 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 580274 580274 0 0.0
RAM 206488 206488 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597154 597154 0 0.0
RAM 206352 206352 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 852180 852180 0 0.0
RAM 158554 158554 0 0.0
realtek light-switch-app rtl8777g FLASH 689840 689840 0 0.0
RAM 102088 102088 0 0.0
lighting-app rtl8777g FLASH 730952 730952 0 0.0
RAM 102368 102368 0 0.0
stm32 light STM32WB5MM-DK FLASH 483148 483148 0 0.0
RAM 128376 128376 0 0.0

LorbusChris added a commit to LorbusChris/matter-openwrt that referenced this pull request Aug 23, 2026
Patch 038 replaces the demo stubs behind the NIM device type with live
router state: the Wi-Fi Network Management cluster shares the LAN access
point credentials read from netifd (guest networks excluded; wifi_share,
wifi_network and wifi_iface in /etc/config/matter adjust or disable the
sharing), Thread Network Diagnostics is fed from otbr-agent over ubus,
the Thread Network Directory is seeded with the border router own
network, and Ethernet Network Diagnostics reports the uplink counters.

The service gains a procd reload trigger on wireless/network config
changes that pokes the daemon over ubus, and the ubusd ACL grants the
matter user read access to exactly network.wireless status. Applying a
new ubusd ACL needs a ubusd restart, which breaks clients holding the
old connection (rpcd, lighttpd, foris) - a reboot after install is the
clean path.

Patch 035 first puts the example's OpenWrt integration behind a backend
interface, so the patches that follow land as backend code rather than as
conditional blocks in main.cpp; it is proposed upstream on its own, stacked
on project-chip/connectedhomeip#73309.

Assisted-By: Claude Fable 5
LorbusChris added a commit to LorbusChris/openwrt-packages that referenced this pull request Aug 23, 2026
Patch 038 replaces the demo stubs behind the NIM device type with live
router state: the Wi-Fi Network Management cluster shares the LAN access
point credentials read from netifd (guest networks excluded; wifi_share,
wifi_network and wifi_iface in /etc/config/matter adjust or disable the
sharing), Thread Network Diagnostics is fed from otbr-agent over ubus,
the Thread Network Directory is seeded with the border router own
network, and Ethernet Network Diagnostics reports the uplink counters.

The service gains a procd reload trigger on wireless/network config
changes that pokes the daemon over ubus, and the ubusd ACL grants the
matter user read access to exactly network.wireless status. Applying a
new ubusd ACL needs a ubusd restart, which breaks clients holding the
old connection (rpcd, lighttpd, foris) - a reboot after install is the
clean path.

Patch 035 first puts the example's OpenWrt integration behind a backend
interface, so the patches that follow land as backend code rather than as
conditional blocks in main.cpp; it is proposed upstream on its own, stacked
on project-chip/connectedhomeip#73309.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 23, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 23, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
(cherry picked from commit c2dfe5d)
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 24, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 24, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
(cherry picked from commit 2358537)
LorbusChris added a commit to LorbusChris/matter-openwrt that referenced this pull request Aug 24, 2026
Patch 038 replaces the demo stubs behind the NIM device type with live
router state: the Wi-Fi Network Management cluster shares the LAN access
point credentials read from netifd (guest networks excluded; wifi_share,
wifi_network and wifi_iface in /etc/config/matter adjust or disable the
sharing), Thread Network Diagnostics is fed from otbr-agent over ubus,
the Thread Network Directory is seeded with the border router own
network, and Ethernet Network Diagnostics reports the uplink counters.

The service gains a procd reload trigger on wireless/network config
changes that pokes the daemon over ubus, and the ubusd ACL grants the
matter user read access to exactly network.wireless status. Applying a
new ubusd ACL needs a ubusd restart, which breaks clients holding the
old connection (rpcd, lighttpd, foris) - a reboot after install is the
clean path.

Patch 035 first puts the example's OpenWrt integration behind a backend
interface, so the patches that follow land as backend code rather than as
conditional blocks in main.cpp; it is proposed upstream on its own, stacked
on project-chip/connectedhomeip#73309.

Assisted-By: Claude Fable 5
The fake border router returned NOT_IMPLEMENTED, so fail-safe rollback
could not be exercised without real hardware.

SetActiveDataset is only accepted when no dataset is configured, so
reverting means returning to the unconfigured state rather than restoring
a previous dataset. Clear it and report the timestamp change.

Assisted-By: Claude Opus 5
The ubus delegate advertised no PANChange support and answered
SetPendingDataset and RevertActiveDataset with NOT_IMPLEMENTED, so a
controller could form a Thread network through it but never change one that
was already running, and a fail-safe expiry left the border router holding a
dataset the controller had abandoned.

otbr now exposes the matching operations over ubus, so:

- GetPanChangeSupported() returns true, which adds the PANChange feature bit
  and SetPendingDatasetRequest to the accepted command list.
- SetPendingDataset() invokes set_pending, which schedules a migration; every
  node switches when the dataset's delay timer expires.
- RevertActiveDataset() invokes deprovision, which detaches and erases the
  dataset. Note this is not leave, which factory resets the instance.
- The pending dataset reported by status and by the pending_dataset_changed
  notification is cached and served through GetDataset(), so
  PendingDatasetTimestamp and GetPendingDatasetRequest work. An empty payload
  means the migration completed, and clears it.

Assisted-By: Claude Opus 5
otbr does not reply to provision until the device has attached, and
deprovision detaches gracefully before erasing, so both replies can be
tens of seconds away. The delegate invoked them with a blocking
ubus_invoke and a two-second timeout: SetActiveDataset always reported
FAILURE to the Matter controller while the border router went on to
form the network anyway, and the fail-safe path risked the same.

Invoke both asynchronously. Activation success is already driven by the
device_role_changed notification once the device attaches; the reply
now only matters when provision is rejected outright, which fails the
activation immediately. Revert clears the cached state right away and
lets the notifications resync, since returning to unprovisioned is the
outcome either way.

Assisted-By: Claude Opus 5
The daemon's onboarding code only lives in its log, and once the device
is commissioned nothing on the router itself can pair it with another
controller: the initial code stops being valid and opening a window
takes a Matter administrator. Publish a "matter" ubus object with the
device's own view of all of this:

- status: fabric count, commissioning window state, and the onboarding
  payload (manual pairing code, QR code, ids), so a router UI can show
  the real thing instead of deriving it from configuration files.
- open_commissioning_window / close_commissioning_window: local control
  of a basic commissioning window, during which the device's own
  onboarding code authenticates, so the code the UI shows is usable
  even after the device has been commissioned.

The object is re-published after ubus reconnects; ubusd needs a publish
ACL for it, which the packaging installs.

Assisted-By: Claude Opus 5
Two commissioning-flow fixes surfaced by pairing the border router with
an iOS controller:

The fail-safe expiry handler in the TBRM cluster reverts the active
dataset unconditionally, for every expired fail-safe. A commissioning
attempt that fails for unrelated reasons, such as an attestation policy
rejection, therefore wiped a Thread network the router had been
provisioned with outside Matter. Track whether an uncommitted dataset
activation exists and make RevertActiveDataset a no-op otherwise, which
is what reverting means.

The commissionable DNS-SD advertisement carried no device name, so
commissioners offered a generic "Matter Accessory" placeholder when
pairing. Advertise the configured name.

Assisted-By: Claude Opus 5
@LorbusChris
LorbusChris force-pushed the network-manager-pending-dataset branch from 8fe1864 to 19b112e Compare August 29, 2026 00:28
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown

PR #73309: Size comparison from 6b6737b to 19b112e

Full report (34 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section 6b6737b 19b112e change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1100306 1100306 0 0.0
RAM 133842 133842 0 0.0
bl702 lighting-app bl702+eth FLASH 1087082 1087082 0 0.0
RAM 109445 109445 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 886242 886242 0 0.0
RAM 109316 109316 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 779160 779160 0 0.0
RAM 103692 103692 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 791180 791180 0 0.0
RAM 108876 108876 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 740656 740656 0 0.0
RAM 97796 97796 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 720860 720860 0 0.0
RAM 97836 97836 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 580834 580834 0 0.0
RAM 206472 206472 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597714 597714 0 0.0
RAM 206336 206336 0 0.0
efr32 lighting-app BRD4187C FLASH 1120352 1120352 0 0.0
RAM 135900 135900 0 0.0
lock-app BRD4187C FLASH 1014448 1014448 0 0.0
RAM 132376 132376 0 0.0
BRD4338a FLASH 814289 814289 0 0.0
RAM 236556 236556 0 0.0
esp32 all-clusters-app c3devkit DRAM 100348 100348 0 0.0
FLASH 1637362 1637362 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 853836 853836 0 0.0
RAM 158534 158534 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1764484 1764484 0 0.0
RAM 216780 216780 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1640668 1640668 0 0.0
RAM 212532 212532 0 0.0
light cy8ckit_062s2_43012 FLASH 1471492 1471492 0 0.0
RAM 198084 198084 0 0.0
lock cy8ckit_062s2_43012 FLASH 1504188 1504188 0 0.0
RAM 225820 225820 0 0.0
qpg lighting-app qpg6200+debug FLASH 844544 844544 0 0.0
RAM 128276 128276 0 0.0
lock-app qpg6200+debug FLASH 785080 785080 0 0.0
RAM 119200 119200 0 0.0
realtek light-switch-app rtl8777g FLASH 691048 691048 0 0.0
RAM 102072 102072 0 0.0
lighting-app rtl8777g FLASH 731464 731464 0 0.0
RAM 102352 102352 0 0.0
stm32 light STM32WB5MM-DK FLASH 483676 483676 0 0.0
RAM 128360 128360 0 0.0
telink all-devices-app tl7218x FLASH 920674 920674 0 0.0
RAM 67948 67948 0 0.0
tlsr9118bdk40d FLASH 702004 702004 0 0.0
RAM 122836 122836 0 0.0
bridge-app tl7218x FLASH 746502 746502 0 0.0
RAM 64400 64400 0 0.0
light-app-concurrent-connection tl7218x FLASH 791348 791348 0 0.0
RAM 60224 60224 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 812900 812900 0 0.0
RAM 42756 42756 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl7218x FLASH 858748 858748 0 0.0
RAM 68284 68284 0 0.0
light-switch-app-ota tl3218x_retention FLASH 747692 747692 0 0.0
RAM 33980 33980 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 750564 750564 0 0.0
RAM 36680 36680 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 816554 816554 0 0.0
RAM 75744 75744 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 618398 618398 0 0.0
RAM 118624 118624 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 854410 854414 4 0.0
RAM 97920 97920 0 0.0

@LorbusChris
LorbusChris marked this pull request as draft August 29, 2026 01:51
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 29, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
(cherry picked from commit 2358537)
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 29, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 29, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
(cherry picked from commit 2358537)
LorbusChris added a commit to LorbusChris/turris-os-packages that referenced this pull request Aug 29, 2026
openthread-br: the host groundwork is now the single patch 121, since
openthread/ot-br-posix#3489 was squashed to one commit at its reviewer's
request; the ubus methods 130-136 are regenerated on top of it, unchanged
in content. The nftables series 300-303 follows openthread/ot-br-posix#3325
as of 2026-08-23: a build with the backend now installs a marker file the
legacy firewall scripts read, so the two cannot drift apart when the
OTBR_NFTABLES environment variable is forgotten. PKG_RELEASE bumped so the
rebuilt package is picked up.

matter-netman: pinned to connectedhomeip master of 2026-08-21 (b7912017),
which carries project-chip/connectedhomeip#73343, so its patch goes. The
setup-passcode log patch goes too, its upstream PR having been closed. The
carried patches are regenerated from the upstream branches as they stand:
035 puts the example's OpenWrt integration behind a backend interface
(stacked on project-chip/connectedhomeip#73309), and the NIM patches
that follow land as backend code rather than as conditional blocks in
main.cpp; 036-038 shift into the freed slots, 039-046 keep their numbers.

The same files ship in openwrt/packages and project-chip/matter-openwrt#53.

Assisted-By: Claude Fable 5
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
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