Skip to content

Sync csa branch with main#923

Open
silabs-matter-ci-bot[bot] wants to merge 33 commits intomainfrom
automation/update_main
Open

Sync csa branch with main#923
silabs-matter-ci-bot[bot] wants to merge 33 commits intomainfrom
automation/update_main

Conversation

@silabs-matter-ci-bot
Copy link
Copy Markdown
Contributor

This PR syncs the csa branch with the main branch.

PR MUST BE MERGED WITH MERGE COMMIT - ADMIN MUST ENABLE THE OPTION

Pradip De (pidarped) and others added 14 commits April 15, 2026 03:37
* Fix TCP connection leak for non-active secure sessions

Ensures that all secure sessions associated with a closed TCP connection
properly release their transport resources and are marked for eviction.

- Removed IsActiveSession() filter in MarkSecureSessionOverTCPForEviction
  to ensure kDefunct and kEstablishing sessions are also processed.
- Added explicit session->ReleaseTCPConnection() call to immediately
  decrement the transport reference count upon connection closure.
- Ensured session->MarkForEviction() is called for all sessions matching
   the closed connection to prevent session table saturation.
- Added regression test TestDefunctSecureSessionReleaseOnConnectionClose
  to verify reclamation when sessions are in kDefunct state.

* Incorporate change recommendations from gemini

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* [ESP32] support for detecting post ota boot reason

esp-idf has no way of figuring out if its a post ota boot, but ota
requestor stores the ota-update-state and the target version in the kvs,
using them to decide whether device is booting after an ota or not.

Since ota-update-state will be set to idle once ota requestor cluster
initializes, GetBootReason() API caches the state on the first boot to
ensure that the subsequent calls provides the correct boot reason.

* Restyled by clang-format

* ESP32: Removed explicit OTA enum include and the GN dep

---------

Co-authored-by: Restyled.io <commits@restyled.io>
* Roll back to groups cluster rev4. Revision 5 implementation was done in time for SVE

* run regen all
* Introduce periodic status thread

* Type hint __exit__

* Make status thread a daemon, as it's not critical to be terminated cleanly

* Improve readability of passed_failed_tests

* Don't use explicit ANSI tokens

* Remove need for log counter decrement

* Update scripts/tests/chiptest/status.py

* Remove redundant passed/failed counters in status thread

---------

Signed-off-by: Marek Pikuła <m.pikula@partner.samsung.com>
Co-authored-by: Shubham Patil <shubham.patil@espressif.com>
…43762)

* crypto/mbedtls: support mbedtls v4.0 PSA crypto interface

mbedTLS 4.0 removes mbedtls_pk_ec() and transitions to PSA as the
primary crypto interface. Add ExtractRawPublicKeyFromPKContext() helper
that uses PSA APIs (mbedtls_pk_import_into_psa + psa_export_public_key)
for mbedTLS >= 4.0 and falls back to the existing ecp APIs for older
versions.

Updated callers:
- VerifyCertificateSigningRequest: use helper, handle sig_pk type change
  (MBEDTLS_PK_SIGALG_ECDSA vs MBEDTLS_PK_ECDSA)
- ExtractPubkeyFromX509Cert: use helper, use mbedtls_pk_get_bitlen()
  for key size validation on older versions

* [ESP32] Enable PSA crypto backend for ESP-IDF v6.0

ESP-IDF v6.0 ships mbedTLS 4.x which uses PSA as the primary crypto
interface.

- Set chip_crypto="psa" when IDF_VERSION_MAJOR >= 6
- Define CHIP_CONFIG_SHA256_CONTEXT_SIZE/ALIGN for the larger
  psa_hash_operation_t context
- Skip custom entropy source registration when using PSA (it manages
  entropy internally)

* some nits

* remove the keypair redeclaration

* added comment marker where #if block ends

* Apply suggestions from code review

Co-authored-by: Harshal5 <51528083+Harshal5@users.noreply.github.com>

* Add _log_PSA_error helper and use it for PSA error logging

* Guard private ECP/bignum includes behind CHIP_CRYPTO_SPAKE2P_MBEDTLS

Private mbedTLS v4.0 headers (ecp.h, bignum.h) are only needed for
the mbedTLS-based SPAKE2+ fallback. Platforms with a PSA SPAKE2+
driver should not require these.

* guard ecp.h include and MapECPGroupId behind mbedTLS < 4.0

* fix include order

---------

Co-authored-by: Harshal5 <51528083+Harshal5@users.noreply.github.com>
* CMake: Extract dependencies from ZAP JSON template

* Bump CMake minimum required version to at least 3.20

* Apply suggestions made by copilot
…OS based NXP MCU host (#71553)

* [NXP][wifi] Adding implementation of GetWiFiCurrentMaxRate for freeRTOS based NXP MCU host

This value indicate the current maximum PHY rate of transfer of data in bitsper-second as per Matter specification.
+ fixing wrong arg name in GetWiFiPacketUnicastRxCount function

Signed-off-by: Gatien Chapon <gatien.chapon@nxp.com>

* Addressing PR review comments

Signed-off-by: Gatien Chapon <gatien.chapon@nxp.com>

---------

Signed-off-by: Gatien Chapon <gatien.chapon@nxp.com>
* Add feature and update test run

* Restyled by clang-format

* Default to iana if per group not enabled

---------

Co-authored-by: Restyled.io <commits@restyled.io>
* Change logic of UnitLocalization migration from SafeAttribute

* Add helper function for element size

* Add static assert to function

* Simplify codegen calls

* Add assertion for array size value

* Enable checks for SafeAttributePersistence
The door lock application panics at startup because the device info
provider is missing during server initialization. This is caused by
an inconsistency between the Kconfig build option
(CONFIG_CHIP_EXAMPLE_DEVICE_INFO_PROVIDER) and the device info
provider code guards (CONFIG_DEVICE_INFO_PROVIDER_IMPL) in the
implementation of the example applications.

Signed-off-by: Marian Chereji <marian.chereji@nxp.com>
… done (#71492)

* script update to isntall packages

* Restyled by whitespace

* improve logic

* Update scripts/examples/gn_silabs_example.sh

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update scripts/examples/gn_silabs_example.sh

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* failure if installtion unsuccesful

* Restyled by shfmt

* failure if installtion unsuccesful

* install only once

* Restyled by shfmt

* Update scripts/examples/gn_silabs_example.sh

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Run alchemy on the groupcast and groupKey management cluster spec

Re-run alchemy

* Run Regen

Re-run zap regen
…71592)

* Move the TLS clusters to EP0, where they are mandated by the spec.

* Address linter error and code comments

* Update Darwin to use EP0 for TLS clusters
…… (#71576)

* Hack: Fix a parsing error in the DM XML in a way that can be side loaded for SVE

Note: We do have a proper fix for this, but it requires re-rolling
the test harness. This is a backup in case we don't have time to
do this.

* Restyled by isort

* add issue number, remove print

* Add the remaining data model file patches

* add other DM patches

* Restyled by autopep8

* omg...add the changes, cecille

* whoops

---------

Co-authored-by: Restyled.io <commits@restyled.io>
@silabs-matter-ci-bot silabs-matter-ci-bot bot added changing-git-submodules-on-purpose sl-require-admin-action This TAG indicates that an admin must take action. labels Apr 16, 2026
@silabs-matter-ci-bot silabs-matter-ci-bot bot requested a review from a team as a code owner April 16, 2026 00:52
@github-actions
Copy link
Copy Markdown
Contributor

The check for sl-require-admin-action label CI failure for this job is normal. An admin must do the merge.

Mahesh (pimpalemahesh) and others added 9 commits April 16, 2026 11:49
* Decouple closure dimension cluster

* Add codegenIntegration for closure dimension cluster

* Update closure-app linux

* Restyled changes

* run zap regern for closure dimension cluster changes

* Add tests for closure-dimension cluster

* Remove unused timerdelegate argument
- test updates

* run zap regen for remaining changes
- address gemini comments

* Review comments

* Add readme

* Use Interface class for backward compatibility

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Keep APIs for backward compatibility

* Readme update and Restyled changes

* remove extra parenthesis

* Restyled by whitespace

* Addressed review comments

* add removed block

* Add Config in the constructor

* remove setter for attribute with fixed quality

* Remove redundant feature validation from Conformance

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…ackend (#37893)

* remove insights backend and enable diagnostics with light example

light example insight removal

diagnostic data delegate implementation

removed esp_insight_trace and esp_insight_stats config options

fix insight file include issue
- print memory in each timer iteration

modify enable diagnostics method as per the latest update
- move retrieve buffer to stack inside enable diagnostics method
- use map with string compare

removed insights support from energy-gateway-app

Remove insights from idf_component.yml file

Add insights delegate

Move insights init code to delegate
- Mode insights-delegate to common code

insights support in energy-management-app

update docs and readme for examples

Restyled changes

Replace diagnostics kconfig option

* Remove newly added files from the esp_trace insights backend
update diagnostics config option

* Added missing bits in examples
- addressed comments

* Restyled by clang-format

* Restyled by prettier-markdown

* Remove insights dependency from examples

* Update diagnostic config option from ESP_DIAGNOSTICS_ENABLED to CHIP_ENABLE_ESP_DIAGNOSTICS

* Address Review comments

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <commits@restyled.io>
…th GN (#71583)

* [nxp][examples][mcxw72] Remove support for building contact-sensor with GN

Building Matter applications using GN is no longer supported for the
NXP MCXW72 platform. All Matter applications available for this
platform can now be built using CMake only.

Signed-off-by: Marian Chereji <marian.chereji@nxp.com>
Reviewed-by: Gatien Chapon <gatien.chapon@nxp.com>

* Update docs/platforms/nxp/nxp_mcxw72_guide.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Signed-off-by: Marian Chereji <marian.chereji@nxp.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…t. (#71599)

* Remove attribute GroupcastAdoption from the groupkey management cluster, it is provisional and not implemented. Remove Hardcode of GCAST featuremap in GroupKey Management and set it only if groupcast is enabled on the device

* Use groupDataProvider reference from the mContext member of the instance rather than getter the singleton

* Addres comment about revision
* Moving some slowtests to Nightly

* build missing apps + make all apps ASAN

* fix bootstrap log name

* make regular CI not run nightly tests; stop needing to put thme in not_automated

* TESTING WORKFLOW: activate on PR

* build missing apps

* Clarify comments

* TESTING: stop running Nightly on PRs

* fix bootstrap log name

* local.py: add include-nightly flag + make nightly display 'be patient'
* Implemented validation of PICS XML elements

* Restyle

* Added event_pics_str to pics.py

* Addressed review comments

* Restyle

* Minor fixes needed after merge with latest master

* Restyle

* Restyle 2.0
…ms (#71623)

* Refactor Chime audio architecture for POSIX platforms

* Include missing chime core and factory changes in PR

* Remove chime/impl directory and its BUILD.gn

* Restyled by clang-format

* Restyled by gn

* Use PosixChimeDevice to share implementation between Linux and Darwin

* Address review comments and improve status handling in PosixChimeDevice

* Restyled by gn

* Fix ESP32 build by removing reference to deleted chime/impl directory

---------

Co-authored-by: Restyled.io <commits@restyled.io>
@silabs-matter-ci-bot silabs-matter-ci-bot bot force-pushed the automation/update_main branch from a3c691b to 894b5e6 Compare April 17, 2026 00:50
Comment on lines 50 to +282
@@ -76,15 +76,14 @@ jobs:
steps:
- name: Set up additional environment
run: |
echo "TSAN_OPTIONS=halt_on_error=1 suppressions=${GITHUB_WORKSPACE}/scripts/tests/chiptest/tsan-linux-suppressions.txt" >> $GITHUB_ENV
echo "CCACHE_DIR=${GITHUB_WORKSPACE}/.ccache" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v6
- name: Checkout submodules & Bootstrap
uses: ./.github/actions/checkout-submodules-and-bootstrap
with:
platform: linux
bootstrap-log-name: bootstrap-logs-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }}
bootstrap-log-name: bootstrap-logs-linux-${{ env.BUILD_VARIANT }}

- name: Setup and Restore Cache
id: ccache
@@ -103,23 +102,72 @@ jobs:
- name: Build linux-x64-requestor-app
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-ota-requestor-${BUILD_VARIANT}-tsan-clang-test
--target linux-x64-ota-requestor-${BUILD_VARIANT}-clang-test
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-ota-requestor-${BUILD_VARIANT}-tsan-clang-test"
&& rm -rf out/linux-x64-ota-requestor-${BUILD_VARIANT}-clang-test"

- name: Build linux-x64-provider-app
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-ota-provider-${BUILD_VARIANT}-tsan-clang-test
--target linux-x64-ota-provider-${BUILD_VARIANT}-clang-test
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-ota-provider-${BUILD_VARIANT}-tsan-clang-test"
&& rm -rf out/linux-x64-ota-provider-${BUILD_VARIANT}-clang-test"

- name: Build Software Update ota images with new version.
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_ota_images.sh --out-prefix out/su_ota_images_min --max-range 2
&& mv out/su_ota_images_min-v*/*.ota objdir-clone
&& rm -rf out/su_ota_images_min-v*"

- name: Build linux-x64-all-clusters
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-all-clusters-${BUILD_VARIANT}-clang-test
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-all-clusters-${BUILD_VARIANT}-clang-test"
- name: Build linux-x64-fabric-admin-rpc
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-fabric-admin-rpc-${BUILD_VARIANT}-clang
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-fabric-admin-rpc-${BUILD_VARIANT}-clang"

- name: Build linux-x64-fabric-bridge-rpc
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-fabric-bridge-rpc-${BUILD_VARIANT}-clang
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-fabric-bridge-rpc-${BUILD_VARIANT}-clang"

- name: Build linux-x64-fabric-sync
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-fabric-sync-${BUILD_VARIANT}-clang
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-fabric-sync-${BUILD_VARIANT}-clang"

- name: Build linux-x64-lit-icd
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-lit-icd-${BUILD_VARIANT}-clang-test
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-lit-icd-${BUILD_VARIANT}-clang-test"


- name: Build linux-x64-jf-control-app
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-jf-control-app-${BUILD_VARIANT}-clang
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-jf-control-app-${BUILD_VARIANT}-clang"

- name: Build linux-x64-jf-admin-app
run: >-
./scripts/run_in_build_env.sh "./scripts/build/build_examples.py
--target linux-x64-jf-admin-app-${BUILD_VARIANT}-clang
--pw-command-launcher=ccache build --copy-artifacts-to objdir-clone
&& rm -rf out/linux-x64-jf-admin-app-${BUILD_VARIANT}-clang"

- name: ccache stats
run: ccache -s

@@ -156,9 +204,9 @@ jobs:
path: .ccache
key: ${{ env.CCACHE_KEY }}

su_repl_tests_linux_run:
name: Software Update REPL Tests - Linux (RUN)
needs: su_repl_tests_linux_build
nightly_repl_tests_linux_run:
name: Nightly REPL Tests - Linux (RUN)
needs: nightly_repl_tests_linux_build
if: github.actor != 'restyled-io[bot]'
timeout-minutes: 45
strategy:
@@ -168,9 +216,9 @@ jobs:
# Regex filter by TC SU we think 45 minutes is more than engough for this task
# Each on one run to avoid all the jobs fail if one fails
# Add slow tests here as needed using the filter, individually or by group.
filter: ["", "TC_SU_2_5", "TC_SU_2_7"]
filter: ["", "TC_SU_2_5", "TC_SU_2_7", "!TC_SU"]
env:
BUILD_VARIANT: ipv6only-no-ble-no-wifi
BUILD_VARIANT: ipv6only-no-ble-no-wifi-asan
DISABLE_CCACHE: ${{ (github.event_name == 'workflow_dispatch' && inputs.disable_ccache == 'true') && 'true' || (contains(github.event.head_commit.message, '[no-ccache]') && 'true') || 'false' }}
CCACHE_KEY_SUFFIX: ${{ github.event_name == 'workflow_dispatch' && inputs.cache_suffix || '' }}

@@ -193,12 +241,19 @@ jobs:
--sysctl net.ipv6.conf.all.forwarding=0

steps:
- name: Set up additional environment
run: |
echo "TSAN_OPTIONS=halt_on_error=1 suppressions=${GITHUB_WORKSPACE}/scripts/tests/chiptest/tsan-linux-suppressions.txt" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v6
# NOTE: no bootstrap since we only use compile outputs from previous steps (including python venv in out/venv)

# NOTE: we need bootstrap to be able to use ASAN symbolizer and get ASAN Stack traces
- name: Checkout submodules & Bootstrap
uses: ./.github/actions/checkout-submodules-and-bootstrap
with:
platform: linux
bootstrap-log-name: bootstrap-logs-linux-${{ env.BUILD_VARIANT }}-${{ matrix.filter }}

- name: Set ASAN symbolizer path
run: scripts/run_in_build_env.sh 'echo "ASAN_SYMBOLIZER_PATH=$(which llvm-symbolizer)" >> $GITHUB_ENV'

- name: Set up a IPV6 known envionment
uses: ./.github/actions/add-ipv6

@@ -214,11 +269,20 @@ jobs:
- name: Generate an argument environment file
run: |
echo -n "" >/tmp/test_env.yaml
echo "OTA_PROVIDER_APP: objdir-clone/linux-x64-ota-provider-${BUILD_VARIANT}-tsan-clang-test/chip-ota-provider-app" >> /tmp/test_env.yaml
echo "OTA_REQUESTOR_APP: objdir-clone/linux-x64-ota-requestor-${BUILD_VARIANT}-tsan-clang-test/chip-ota-requestor-app" >> /tmp/test_env.yaml
echo "OTA_PROVIDER_APP: objdir-clone/linux-x64-ota-provider-${BUILD_VARIANT}-clang-test/chip-ota-provider-app" >> /tmp/test_env.yaml
echo "OTA_REQUESTOR_APP: objdir-clone/linux-x64-ota-requestor-${BUILD_VARIANT}-clang-test/chip-ota-requestor-app" >> /tmp/test_env.yaml
echo "TRACE_APP: out/trace_data/app-{SCRIPT_BASE_NAME}" >> /tmp/test_env.yaml
# SU OTA Images
echo "SU_OTA_REQUESTOR_V2: objdir-clone/chip-ota-requestor-app_v2.min.ota" >> /tmp/test_env.yaml

# Slow Test Apps
echo "ALL_CLUSTERS_APP: objdir-clone/linux-x64-all-clusters-${BUILD_VARIANT}-clang-test/chip-all-clusters-app" >> /tmp/test_env.yaml
echo "FABRIC_ADMIN_APP: objdir-clone/linux-x64-fabric-admin-rpc-${BUILD_VARIANT}-clang/fabric-admin" >> /tmp/test_env.yaml
echo "FABRIC_BRIDGE_APP: objdir-clone/linux-x64-fabric-bridge-rpc-${BUILD_VARIANT}-clang/fabric-bridge-app" >> /tmp/test_env.yaml
echo "FABRIC_SYNC_APP: objdir-clone/linux-x64-fabric-sync-${BUILD_VARIANT}-clang/fabric-sync" >> /tmp/test_env.yaml
Comment thread .github/workflows/nightly.yaml Outdated
* [Telink] Add OTA resume watchdog

* [Telink] Adopt kResumeWatchdogTimeoutMs
Signed-off-by: Doru-Cristian Gucea <doru-cristian.gucea@nxp.com>
…suggestion (#71617)

* [Thermostat] set CurrentThermostatSuggestion from earliest in-effect suggestion

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <commits@restyled.io>
…traction layer (#71633)

* [Zephyr][platform] Updating the generic Zephyr platform layer to be compatible with Zephyr 4.4 baseline

Signed-off-by: Dina Benamar <dina.benamarelmaaroufi@nxp.com>

* Restyled by clang-format

* Update comments in files to address review comments

Signed-off-by: Dina Benamar <dina.benamarelmaaroufi@nxp.com>

* Restyled by clang-format

---------

Signed-off-by: Dina Benamar <dina.benamarelmaaroufi@nxp.com>
Co-authored-by: Restyled.io <commits@restyled.io>
- Make the verification step correct for IP address in TC-SC-5.3 (it was wrong
  in the manual verification steps).
- Punt the conditions checks on Root Node in TC-SM-1.1 to post-1.6 to derisk
  needless failures.

Testing:

- CI still passes
- 1.6 DUT does not fail the conditions if missing group cast.
* Add chef-supported-modes-manager

* ZAp and matter files for mode select chef app

* Compile debug

* Compile fix

* Compile fix

* Compile fix

* Compile fix

* Add default value for current mode

* Add mode select test

* Test debug

* Gemini comment

* Undo unintentional submodule bumps

* Change to more realistic mode options

* Set StandardNamespace to NULL

* Update test to check NULL for standard namespace

* Update default current mode

* Fix tests
* Remove codegen dep

* Apply comments
@silabs-matter-ci-bot silabs-matter-ci-bot bot force-pushed the automation/update_main branch 2 times, most recently from 7386e4b to a743a07 Compare April 19, 2026 00:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changing-git-submodules-on-purpose sl-require-admin-action This TAG indicates that an admin must take action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.