diff --git a/.github/workflows/docker_img.yaml b/.github/workflows/docker_img.yaml
index b706dbcac39e42..73c45ee303a756 100644
--- a/.github/workflows/docker_img.yaml
+++ b/.github/workflows/docker_img.yaml
@@ -42,7 +42,12 @@ jobs:
- "-esp32"
- "-esp32-qemu"
- "-infineon"
- - "-imx"
+ # NOTE: imx image requires too much space for GitHub-hosted runners. It fails with:
+ # ```
+ # ....
+ # ApplyLayer exit status 1 stdout: stderr: write /opt/fsl-imx-xwayland/5.15-kirkstone/sysroots/armv8a-poky-linux/opt/ltp/testcases/bin/fanotify15: no space left on device
+ # ```
+ # - "-imx"
- "-k32w"
- "-mbed-os"
- "-nrf-platform"
diff --git a/.github/workflows/examples-cyw30739.yaml b/.github/workflows/examples-cyw30739.yaml
deleted file mode 100644
index a3126dbba0442c..00000000000000
--- a/.github/workflows/examples-cyw30739.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2021 Project CHIP Authors
-#
-# 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.
-
-name: Build example - Infineon CYW30739
-
-on:
- push:
- pull_request:
-
-concurrency:
- group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }}
- cancel-in-progress: true
-
-jobs:
- cyw30739:
- name: CYW30739
- timeout-minutes: 60
-
- runs-on: ubuntu-latest
- if: github.actor != 'restyled-io[bot]'
-
- container:
- image: connectedhomeip/chip-build:latest
- volumes:
- - "/tmp/bloat_reports:/tmp/bloat_reports"
- steps:
- - uses: Wandalen/wretry.action@v1.0.15
- name: Checkout
- with:
- action: actions/checkout@v3
- with: |
- token: ${{ github.token }}
- attempt_limit: 3
- attempt_delay: 2000
- - name: Checkout submodules
- run: scripts/checkout_submodules.py --shallow --platform cyw30739
-
- - name: Set up environment for size reports
- if: ${{ !env.ACT }}
- env:
- GH_CONTEXT: ${{ toJson(github) }}
- run: scripts/tools/memory/gh_sizes_environment.py "${GH_CONTEXT}"
-
- - name: Bootstrap
- timeout-minutes: 25
- run: scripts/build/gn_bootstrap.sh
- - name: Uploading bootstrap logs
- uses: actions/upload-artifact@v2
- if: ${{ always() && !env.ACT }}
- with:
- name: bootstrap-logs
- path: |
- .environment/gn_out/.ninja_log
- .environment/pigweed-venv/*.log
- - name: Build example CYW30739 Apps
- timeout-minutes: 30
- run: |
- ./scripts/run_in_build_env.sh \
- "./scripts/build/build_examples.py \
- --target-glob 'cyw30739-cyw930739m2evb_01-{light,lock,ota-requestor-no-progress-logging}' \
- build \
- --copy-artifacts-to out/artifacts \
- "
- - name: Get light size stats
- timeout-minutes: 5
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- cyw30739 cyw930739m2evb_01 light \
- out/artifacts/cyw30739-cyw930739m2evb_01-light/chip-cyw30739-lighting-example.elf \
- /tmp/bloat_reports/
- - name: Get lock size stats
- timeout-minutes: 5
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- cyw30739 cyw930739m2evb_01 lock \
- out/artifacts/cyw30739-cyw930739m2evb_01-lock/chip-cyw30739-lock-example.elf \
- /tmp/bloat_reports/
- - name: Get ota-requestor size stats
- timeout-minutes: 5
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- cyw30739 cyw930739m2evb_01 ota-requestor-no-progress-logging \
- out/artifacts/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging/chip-cyw30739-ota-requestor-example.elf \
- /tmp/bloat_reports/
- - name: Uploading Size Reports
- uses: actions/upload-artifact@v2
- if: ${{ !env.ACT }}
- with:
- name: Size,CYW30739-Examples,${{ env.GH_EVENT_PR }},${{ env.GH_EVENT_HASH }},${{ env.GH_EVENT_PARENT }},${{ github.event_name }}
- path: |
- /tmp/bloat_reports/
diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml
index 320dad29dadd31..b8c5134d6e9fcd 100644
--- a/.github/workflows/examples-efr32.yaml
+++ b/.github/workflows/examples-efr32.yaml
@@ -94,8 +94,8 @@ jobs:
- name: Build example EFR32 Lighting App for BRD4161A with RPCs
timeout-minutes: 15
run: |
- scripts/examples/gn_efr32_example.sh examples/lighting-app/efr32/ out/lighting_app_debug_rpc BRD4161A \
- 'import("//with_pw_rpc.gni")'
+ scripts/examples/gn_efr32_example.sh examples/lighting-app/efr32/ out/lighting_app_debug_rpc BRD4161A "is_debug=false" \
+ disable_lcd=true 'import("//with_pw_rpc.gni")'
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+rpc lighting-app \
out/lighting_app_debug_rpc/BRD4161A/chip-efr32-lighting-example.out /tmp/bloat_reports/
- name: Build example EFR32+WF200 WiFi Lock app for BRD4161A
diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml
index 7fc9cdd4485be0..cc5a8f522596d5 100644
--- a/.github/workflows/examples-infineon.yaml
+++ b/.github/workflows/examples-infineon.yaml
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Build example - Infineon P6
+name: Build example - Infineon
on:
push:
@@ -33,7 +33,8 @@ jobs:
container:
image: connectedhomeip/chip-build-infineon:0.5.91
-
+ volumes:
+ - "/tmp/bloat_reports:/tmp/bloat_reports"
steps:
- uses: Wandalen/wretry.action@v1.0.15
name: Checkout
@@ -44,7 +45,7 @@ jobs:
attempt_limit: 3
attempt_delay: 2000
- name: Checkout submodules
- run: scripts/checkout_submodules.py --shallow --platform p6
+ run: scripts/checkout_submodules.py --shallow --platform infineon
- name: Set up environment for size reports
if: ${{ !env.ACT }}
@@ -63,65 +64,97 @@ jobs:
path: |
.environment/gn_out/.ninja_log
.environment/pigweed-venv/*.log
- - name: Build lock-app example
+ - name: Build PSoC6 lock-app example
timeout-minutes: 15
run: |
scripts/run_in_build_env.sh \
"scripts/build/build_examples.py \
--enable-flashbundle --no-log-timestamps \
- --target infineon-p6-lock \
+ --target infineon-psoc6-lock \
build \
--copy-artifacts-to out/artifacts \
"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- p6 default lock-app \
- out/infineon-p6-lock/chip-p6-lock-example.out
- - name: Build all-clusters-app example
+ psoc6 cy8ckit_062s2_43012 lock \
+ out/artifacts/infineon-psoc6-lock/chip-psoc6-lock-example.out \
+ /tmp/bloat_reports/
+ - name: Build PSoC6 all-clusters-app example
timeout-minutes: 20
run: |
scripts/run_in_build_env.sh \
"scripts/build/build_examples.py \
--enable-flashbundle --no-log-timestamps \
- --target infineon-p6-all-clusters \
+ --target infineon-psoc6-all-clusters \
build \
--copy-artifacts-to out/artifacts \
"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- p6 default all-clusters-app \
- out/infineon-p6-all-clusters/chip-p6-clusters-example.out
- - name: Build all-clusters-minimal-app example
+ psoc6 cy8ckit_062s2_43012 all-clusters \
+ out/artifacts/infineon-psoc6-all-clusters/chip-psoc6-clusters-example.out \
+ /tmp/bloat_reports/
+ - name: Build PSoC6 all-clusters-minimal-app example
timeout-minutes: 20
run: |
scripts/run_in_build_env.sh \
"scripts/build/build_examples.py \
--enable-flashbundle --no-log-timestamps \
- --target infineon-p6-all-clusters-minimal \
+ --target infineon-psoc6-all-clusters-minimal \
build \
--copy-artifacts-to out/artifacts \
"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- p6 default all-clusters-minimal-app \
- out/infineon-p6-all-clusters-minimal/chip-p6-clusters-minimal-example.out
- - name: Build lighting-app example
+ psoc6 cy8ckit_062s2_43012 all-clusters-minimal \
+ out/artifacts/infineon-psoc6-all-clusters-minimal/chip-psoc6-clusters-minimal-example.out \
+ /tmp/bloat_reports/
+ - name: Build PSoC6 lighting-app example
timeout-minutes: 15
run: |
scripts/run_in_build_env.sh \
"scripts/build/build_examples.py \
--enable-flashbundle --no-log-timestamps \
- --target infineon-p6-light \
+ --target infineon-psoc6-light \
build \
--copy-artifacts-to out/artifacts \
"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- p6 default light-app \
- out/infineon-p6-light/chip-p6-lighting-example.out
+ psoc6 cy8ckit_062s2_43012 light \
+ out/artifacts/infineon-psoc6-light/chip-psoc6-lighting-example.out \
+ /tmp/bloat_reports/
+
+ - name: Build example CYW30739 Apps
+ timeout-minutes: 30
+ run: |
+ ./scripts/run_in_build_env.sh \
+ "./scripts/build/build_examples.py \
+ --target-glob 'cyw30739-cyw930739m2evb_01-{light,lock,ota-requestor-no-progress-logging}' \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
+ - name: Get light size stats
+ timeout-minutes: 5
+ run: |
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ cyw30739 cyw930739m2evb_01 light \
+ out/artifacts/cyw30739-cyw930739m2evb_01-light/chip-cyw30739-lighting-example.elf \
+ /tmp/bloat_reports/
+ - name: Get lock size stats
+ timeout-minutes: 5
+ run: |
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ cyw30739 cyw930739m2evb_01 lock \
+ out/artifacts/cyw30739-cyw930739m2evb_01-lock/chip-cyw30739-lock-example.elf \
+ /tmp/bloat_reports/
+ - name: Get ota-requestor size stats
+ timeout-minutes: 5
+ run: |
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ cyw30739 cyw930739m2evb_01 ota-requestor-no-progress-logging \
+ out/artifacts/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging/chip-cyw30739-ota-requestor-example.elf \
+ /tmp/bloat_reports/
- name: Uploading Size Reports
uses: actions/upload-artifact@v2
if: ${{ !env.ACT }}
with:
- name: Size,P6-Examples,${{ env.GH_EVENT_PR }},${{ env.GH_EVENT_HASH }},${{ env.GH_EVENT_PARENT }},${{ github.event_name }}
+ name: Size,Infineon-Examples,${{ env.GH_EVENT_PR }},${{ env.GH_EVENT_HASH }},${{ env.GH_EVENT_PARENT }},${{ github.event_name }}
path: |
- out/infineon-p6-lock/p6-default-lock-app-sizes.json
- out/infineon-p6-all-clusters/p6-default-all-clusters-app-sizes.json
- out/infineon-p6-all-clusters-minimal/p6-default-all-clusters-minimal-app-sizes.json
- out/infineon-p6-light/p6-default-light-app-sizes.json
+ /tmp/bloat_reports/
diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml
index 3c110ce1ccece7..5da513c70de6ba 100644
--- a/.github/workflows/examples-nrfconnect.yaml
+++ b/.github/workflows/examples-nrfconnect.yaml
@@ -95,15 +95,6 @@ jobs:
nrfconnect nrf52840dk_nrf52840 lock-app \
examples/lock-app/nrfconnect/build/zephyr/zephyr.elf \
/tmp/bloat_reports/
- - name: Build example nRF Connect SDK Lighting App on nRF52840 DK
- if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
- timeout-minutes: 15
- run: |
- scripts/examples/nrfconnect_example.sh lighting-app nrf52840dk_nrf52840
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- nrfconnect nrf52840dk_nrf52840 lighting-app \
- examples/lighting-app/nrfconnect/build/zephyr/zephyr.elf \
- /tmp/bloat_reports/
- name: Build example nRF Connect SDK Lighting App on nRF52840 Dongle
if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
timeout-minutes: 15
@@ -122,6 +113,15 @@ jobs:
nrfconnect nrf52840dk_nrf52840+rpc lighting-app \
examples/lighting-app/nrfconnect/build/zephyr/zephyr.elf \
/tmp/bloat_reports/
+ - name: Build example nRF Connect SDK Light Switch App on nRF52840 DK
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
+ timeout-minutes: 15
+ run: |
+ scripts/examples/nrfconnect_example.sh light-switch-app nrf52840dk_nrf52840
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ nrfconnect nrf52840dk_nrf52840 light-switch-app \
+ examples/light-switch-app/nrfconnect/build/zephyr/zephyr.elf \
+ /tmp/bloat_reports/
- name: Build example nRF Connect SDK Shell on nRF52840 DK
if: github.event_name == 'push' || steps.changed_paths.outputs.shell == 'true'
timeout-minutes: 15
@@ -140,24 +140,6 @@ jobs:
nrfconnect nrf52840dk_nrf52840 pigweed-app \
examples/pigweed-app/nrfconnect/build/zephyr/zephyr.elf \
/tmp/bloat_reports/
- - name: Build example nRF Connect SDK Lock App on nRF5340 DK
- if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
- timeout-minutes: 15
- run: |
- scripts/examples/nrfconnect_example.sh lock-app nrf5340dk_nrf5340_cpuapp
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- nrfconnect nrf5340dk_nrf5340_cpuapp lock-app \
- examples/lock-app/nrfconnect/build/zephyr/zephyr.elf \
- /tmp/bloat_reports/
- - name: Build example nRF Connect SDK Lighting App on nRF5340 DK
- if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
- timeout-minutes: 15
- run: |
- scripts/examples/nrfconnect_example.sh lighting-app nrf5340dk_nrf5340_cpuapp
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- nrfconnect nrf5340dk_nrf5340_cpuapp lighting-app \
- examples/lighting-app/nrfconnect/build/zephyr/zephyr.elf \
- /tmp/bloat_reports/
- name: Build example nRF Connect SDK Pump App on nRF52840 DK
if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
timeout-minutes: 15
@@ -192,6 +174,24 @@ jobs:
nrfconnect nrf52840dk_nrf52840 all-clusters-minimal-app \
examples/all-clusters-minimal-app/nrfconnect/build/zephyr/zephyr.elf \
/tmp/bloat_reports/
+ - name: Build example nRF Connect SDK Lock App on nRF5340 DK
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
+ timeout-minutes: 15
+ run: |
+ scripts/examples/nrfconnect_example.sh lock-app nrf5340dk_nrf5340_cpuapp
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ nrfconnect nrf5340dk_nrf5340_cpuapp lock-app \
+ examples/lock-app/nrfconnect/build/zephyr/zephyr.elf \
+ /tmp/bloat_reports/
+ - name: Build example nRF Connect SDK Lighting App on nRF5340 DK
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
+ timeout-minutes: 15
+ run: |
+ scripts/examples/nrfconnect_example.sh lighting-app nrf5340dk_nrf5340_cpuapp
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ nrfconnect nrf5340dk_nrf5340_cpuapp lighting-app \
+ examples/lighting-app/nrfconnect/build/zephyr/zephyr.elf \
+ /tmp/bloat_reports/
- name: Run unit tests for Zephyr native_posix_64 platform
if: github.event_name == 'push' || steps.changed_paths.outputs.tests == 'true'
timeout-minutes: 15
diff --git a/.gitmodules b/.gitmodules
index abde0e5f8cdfd5..2f40b45697df5a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -62,7 +62,7 @@
path = third_party/freertos/repo
url = https://github.com/FreeRTOS/FreeRTOS-Kernel.git
branch = V10.3.1-kernel-only
- platforms = ameba,cc13x2_26x2,bl602,efr32,esp32,k32w0,p6,qpg
+ platforms = ameba,cc13x2_26x2,bl602,efr32,esp32,k32w0,infineon,qpg
[submodule "simw-top-mini"]
path = third_party/simw-top-mini/repo
url = https://github.com/NXP/plug-and-trust.git
@@ -84,7 +84,7 @@
[submodule "third_party/openthread/ot-ifx"]
path = third_party/openthread/ot-ifx
url = https://github.com/Infineon/ot-ifx-release.git
- platforms = cyw30739
+ platforms = infineon
[submodule "third_party/mbed-os/repo"]
path = third_party/mbed-os/repo
url = https://github.com/ARMmbed/mbed-os.git
@@ -101,129 +101,129 @@
branch = main
platforms = mbed
[submodule "p6/abstraction-rtos"]
- path = third_party/p6/p6_sdk/libs/abstraction-rtos
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/abstraction-rtos
url = https://github.com/Infineon/abstraction-rtos
- platforms = p6
+ platforms = infineon
[submodule "p6/bluetooth-freertos"]
- path = third_party/p6/p6_sdk/libs/bluetooth-freertos
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/bluetooth-freertos
url = https://github.com/Infineon/bluetooth-freertos
branch = v2.X
- platforms = p6
+ platforms = infineon
[submodule "p6/btstack"]
- path = third_party/p6/p6_sdk/libs/btstack
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/btstack
url = https://github.com/Infineon/btstack
- platforms = p6
+ platforms = infineon
[submodule "p6/clib-support"]
- path = third_party/p6/p6_sdk/libs/clib-support
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/clib-support
url = https://github.com/Infineon/clib-support
- platforms = p6
+ platforms = infineon
[submodule "p6/connectivity-utilities"]
- path = third_party/p6/p6_sdk/libs/connectivity-utilities
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/connectivity-utilities
url = https://github.com/Infineon/connectivity-utilities
- platforms = p6
+ platforms = infineon
[submodule "p6/core-lib"]
- path = third_party/p6/p6_sdk/libs/core-lib
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/core-lib
url = https://github.com/Infineon/core-lib
- platforms = p6
+ platforms = infineon
[submodule "p6/core-make"]
- path = third_party/p6/p6_sdk/libs/core-make
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/core-make
url = https://github.com/Infineon/core-make
- platforms = p6
+ platforms = infineon
[submodule "p6/kv-store"]
- path = third_party/p6/p6_sdk/libs/kv-store
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/kv-store
url = https://github.com/Infineon/kv-store
- platforms = p6
+ platforms = infineon
[submodule "p6/mtb-hal-cat1"]
- path = third_party/p6/p6_sdk/libs/mtb-hal-cat1
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/mtb-hal-cat1
url = https://github.com/Infineon/mtb-hal-cat1
- platforms = p6
+ platforms = infineon
[submodule "p6/mtb-pdl-cat1"]
- path = third_party/p6/p6_sdk/libs/mtb-pdl-cat1
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/mtb-pdl-cat1
url = https://github.com/Infineon/mtb-pdl-cat1
- platforms = p6
+ platforms = infineon
[submodule "p6/psoc6cm0p"]
- path = third_party/p6/p6_sdk/libs/psoc6cm0p
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/psoc6cm0p
url = https://github.com/Infineon/psoc6cm0p
- platforms = p6
+ platforms = infineon
[submodule "p6/whd-bsp-integration"]
- path = third_party/p6/p6_sdk/libs/whd-bsp-integration
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/whd-bsp-integration
url = https://github.com/Infineon/whd-bsp-integration
- platforms = p6
+ platforms = infineon
[submodule "p6/wifi-connection-manager"]
- path = third_party/p6/p6_sdk/libs/wifi-connection-manager
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/wifi-connection-manager
url = https://github.com/Infineon/wifi-connection-manager
- platforms = p6
+ platforms = infineon
[submodule "p6/wifi-host-driver"]
- path = third_party/p6/p6_sdk/libs/wifi-host-driver
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/wifi-host-driver
url = https://github.com/Infineon/wifi-host-driver
- platforms = p6
+ platforms = infineon
[submodule "p6/wifi-mw-core"]
- path = third_party/p6/p6_sdk/libs/wifi-mw-core
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/wifi-mw-core
url = https://github.com/Infineon/wifi-mw-core
- platforms = p6
+ platforms = infineon
[submodule "p6/TARGET_CY8CKIT-062S2-43012"]
- path = third_party/p6/p6_sdk/libs/TARGET_CY8CKIT-062S2-43012
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/TARGET_CY8CKIT-062S2-43012
url = https://github.com/Infineon/TARGET_CY8CKIT-062S2-43012
- platforms = p6
+ platforms = infineon
[submodule "p6/freertos"]
- path = third_party/p6/p6_sdk/libs/freertos
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/freertos
url = https://github.com/Infineon/freertos
- platforms = p6
+ platforms = infineon
[submodule "p6/retarget-io"]
- path = third_party/p6/p6_sdk/libs/retarget-io
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/retarget-io
url = https://github.com/Infineon/retarget-io
- platforms = p6
+ platforms = infineon
[submodule "p6/mbedtls"]
- path = third_party/p6/p6_sdk/libs/mbedtls
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/mbedtls
url = https://github.com/ARMmbed/mbedtls
- platforms = p6
+ platforms = infineon
[submodule "p6/secure-sockets"]
- path = third_party/p6/p6_sdk/libs/secure-sockets
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/secure-sockets
url = https://github.com/Infineon/secure-sockets
- platforms = p6
+ platforms = infineon
[submodule "p6/recipe-make-cat1a"]
- path = third_party/p6/p6_sdk/libs/recipe-make-cat1a
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/recipe-make-cat1a
url = https://github.com/Infineon/recipe-make-cat1a
- platforms = p6
+ platforms = infineon
[submodule "third_party/pybind11/repo"]
path = third_party/pybind11/repo
url = https://github.com/pybind/pybind11
branch = stable
[submodule "p6/lwip"]
- path = third_party/p6/p6_sdk/libs/lwip
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/lwip
url = https://github.com/lwip-tcpip/lwip.git
- platforms = p6
+ platforms = infineon
[submodule "third_party/jsoncpp/repo"]
path = third_party/jsoncpp/repo
url = https://github.com/open-source-parsers/jsoncpp.git
[submodule "cyw30739_sdk/30739A0"]
- path = third_party/cyw30739_sdk/repos/30739A0
+ path = third_party/infineon/cyw30739_sdk/repos/30739A0
url = https://github.com/Infineon/OT-Matter-30739A0.git
- platforms = cyw30739
+ platforms = infineon
[submodule "cyw30739_sdk/include"]
- path = third_party/cyw30739_sdk/repos/btsdk-include
+ path = third_party/infineon/cyw30739_sdk/repos/btsdk-include
url = https://github.com/Infineon/btsdk-include.git
- platforms = cyw30739
+ platforms = infineon
[submodule "cyw30739_sdk/target"]
- path = third_party/cyw30739_sdk/repos/CYW930739M2EVB-01
+ path = third_party/infineon/cyw30739_sdk/repos/CYW930739M2EVB-01
url = https://github.com/Infineon/OT-Matter-TARGET_CYW930739M2EVB-01.git
- platforms = cyw30739
+ platforms = infineon
[submodule "cyw30739_sdk/tools"]
- path = third_party/cyw30739_sdk/repos/btsdk-tools
+ path = third_party/infineon/cyw30739_sdk/repos/btsdk-tools
url = https://github.com/Infineon/btsdk-tools.git
- platforms = cyw30739
+ platforms = infineon
[submodule "third_party/p6/p6_sdk/libs/anycloud-ota"]
- path = third_party/p6/p6_sdk/libs/anycloud-ota
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/anycloud-ota
url = https://github.com/Infineon/anycloud-ota
- platforms = p6
+ platforms = infineon
[submodule "third_party/mbed-mcu-boot/repo"]
path = third_party/mbed-mcu-boot/repo
url = https://github.com/ATmobica/mcuboot.git
platforms = mbed
[submodule "p6/serial-flash"]
- path = third_party/p6/p6_sdk/libs/serial-flash
+ path = third_party/infineon/psoc6/psoc6_sdk/libs/serial-flash
url = https://github.com/Infineon/serial-flash
- platforms = p6
+ platforms = infineon
[submodule "third_party/telink_sdk/repo"]
path = third_party/telink_sdk/repo
url = https://github.com/telink-semi/telink_b91_ble_single_connection_sdk_matter
diff --git a/BUILD.gn b/BUILD.gn
index a233ab272621c7..7dbbb83d3cc77b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -271,8 +271,8 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") {
# Set this to true to enable efr32 builds by default.
enable_efr32_builds = false
- # Set this to true to enable p6 builds by default.
- enable_p6_builds = false
+ # Set this to true to enable psoc6 builds by default.
+ enable_psoc6_builds = false
# Set this to true to enable Qorvo qpg builds by default.
enable_qpg_builds = false
@@ -364,8 +364,8 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") {
# Build the efr32 lock app example.
enable_efr32_lock_app_build = enable_efr32_builds
- # Build the p6 lock app example.
- enable_p6_lock_app_build = enable_p6_builds
+ # Build the psoc6 lock app example.
+ enable_psoc6_lock_app_build = enable_psoc6_builds
# Build the qpgxxxx lock app example.
enable_qpg_lock_app_build = enable_qpg_builds && !is_debug
@@ -610,12 +610,12 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") {
extra_build_deps += [ ":efr32_lock_app" ]
}
- if (enable_p6_lock_app_build) {
- group("p6_lock_app") {
- deps = [ "${chip_root}/examples/lock-app/p6(${chip_root}/config/p6/toolchain:p6_lock_app)" ]
+ if (enable_psoc6_lock_app_build) {
+ group("psoc6_lock_app") {
+ deps = [ "${chip_root}/examples/lock-app/infineon/psoc6(${chip_root}/config/psoc6/toolchain:psoc6_lock_app)" ]
}
- extra_build_deps += [ ":p6_lock_app" ]
+ extra_build_deps += [ ":psoc6_lock_app" ]
}
if (enable_qpg_lock_app_build) {
diff --git a/build_overrides/p6.gni b/build_overrides/psoc6.gni
similarity index 75%
rename from build_overrides/p6.gni
rename to build_overrides/psoc6.gni
index 0ae9c543ee8456..a4fc95b53917c1 100644
--- a/build_overrides/p6.gni
+++ b/build_overrides/psoc6.gni
@@ -13,11 +13,11 @@
# limitations under the License.
declare_args() {
- # Root directory for p6 SDK build files.
- p6_sdk_build_root = "//third_party/p6"
+ # Root directory for psoc6 SDK build files.
+ psoc6_sdk_build_root = "//third_party/infineon/psoc6"
}
declare_args() {
- # Root directory for p6 SDK sources.
- p6_sdk_root = "${p6_sdk_build_root}/p6_sdk"
+ # Root directory for psoc6 SDK sources.
+ psoc6_sdk_root = "${psoc6_sdk_build_root}/psoc6_sdk"
}
diff --git a/config/p6/toolchain/BUILD.gn b/config/psoc6/toolchain/BUILD.gn
similarity index 88%
rename from config/p6/toolchain/BUILD.gn
rename to config/psoc6/toolchain/BUILD.gn
index 219ae1bf1102ed..542012522ea8cb 100644
--- a/config/p6/toolchain/BUILD.gn
+++ b/config/psoc6/toolchain/BUILD.gn
@@ -17,9 +17,9 @@ import("//build_overrides/chip.gni")
import("${build_root}/toolchain/arm_gcc/arm_toolchain.gni")
-arm_toolchain("p6_lock_app") {
+arm_toolchain("psoc6_lock_app") {
toolchain_args = {
current_os = "freertos"
- import("${chip_root}/examples/lock-app/p6/args.gni")
+ import("${chip_root}/examples/lock-app/infineon/psoc6/args.gni")
}
}
diff --git a/docs/guides/BUILDING.md b/docs/guides/BUILDING.md
index 5bcd865ca5db1b..00bf6d97a581f9 100644
--- a/docs/guides/BUILDING.md
+++ b/docs/guides/BUILDING.md
@@ -8,7 +8,7 @@ Tested on:
- macOS 10.15
- Debian 11
-- Ubuntu 20.04 LTS
+- Ubuntu 22.04 LTS
Build system features:
@@ -81,9 +81,8 @@ dependency.
### Installing prerequisites on Raspberry Pi 4
-Using `rpi-imager`, install the Ubuntu _21.04_ 64-bit _server_ OS for arm64
-architectures on a micro SD card. This release will have bluez 5.55 or newer
-which is required for BLE functionality.
+Using `rpi-imager`, install the Ubuntu _22.04_ 64-bit _server_ OS for arm64
+architectures on a micro SD card.
Boot the SD card, login with the default user account "ubuntu" and password
"ubuntu", then proceed with
diff --git a/docs/guides/README.md b/docs/guides/README.md
index 09f3f9c1c4c3e7..44d0a8dc9fcb4a 100644
--- a/docs/guides/README.md
+++ b/docs/guides/README.md
@@ -5,7 +5,7 @@
- [Android - Building](./android_building.md)
- [Apple - Testing with iPhone, iPad, macOS, Apple TV, HomePod, Watch, etc](./darwin.md)
- [Espressif (ESP32) - Getting Started Guide](./esp32/README.md)
-- [Infineon - Software Update](./infineon_p6_software_update.md)
+- [Infineon PSoC6 - Software Update](./infineon_psoc6_software_update.md)
- [Linux - Simulated Devices](./simulated_device_linux.md)
- [mbedOS - Adding a new target](./mbedos_add_new_target.md)
- [mbedOS - Commissioning](./mbedos_commissioning.md)
diff --git a/docs/guides/darwin.md b/docs/guides/darwin.md
index 2d9443d70a6d0a..b28a9925d53cd0 100644
--- a/docs/guides/darwin.md
+++ b/docs/guides/darwin.md
@@ -205,7 +205,6 @@ requirements
##### Guides
- [Bouffalo Lab](/examples/lighting-app/bouffalolab/bl602/README.md)
-- [CYW30739 Lighting](/examples/lighting-app/cyw30739/README.md)
- [EFR32 Window Covering](/examples/window-app/efr32/README.md)
- [ESP32 All Clusters](/examples/all-clusters-app/esp32/README.md)
- [ESP32 Lighting](/examples/lighting-app/esp32/README.md)
@@ -215,7 +214,8 @@ requirements
- [nRF Connect Pump](/examples/pump-app/nrfconnect/README.md)
- [NXP Examples](./nxp_imx8m_linux_examples.md)
- [NXP](/examples/all-clusters-app/nxp/mw320/README.md)
-- [P6](/examples/all-clusters-app/p6/README.md)
+- [Infineon CYW30739 Lighting](/examples/lighting-app/infineon/cyw30739/README.md)
+- [Infineon PSoC6](/examples/all-clusters-app/infineon/psoc6/README.md)
- [Qorvo](/examples/lighting-app/qpg/README.md)
- [SiliconLabs](./silabs_efr32_building.md)
- [Simulated Linux](./simulated_device_linux.md)
diff --git a/docs/guides/infineon_p6_software_update.md b/docs/guides/infineon_psoc6_software_update.md
similarity index 75%
rename from docs/guides/infineon_p6_software_update.md
rename to docs/guides/infineon_psoc6_software_update.md
index 136f577dfb6301..7cddc020c6c417 100644
--- a/docs/guides/infineon_p6_software_update.md
+++ b/docs/guides/infineon_psoc6_software_update.md
@@ -1,8 +1,8 @@
-# Matter Software Update with Infineon P6 example applications
+# Matter Software Update with Infineon PSoC6 example applications
The Over The Air (OTA) Software Update functionality can be added to any of the
-Infineon P6 example applications by passing the `chip_enable_ota_requestor=true`
-option to the build script.
+Infineon PSoC6 example applications by passing the
+`chip_enable_ota_requestor=true` option to the build script.
## Running the OTA Download scenario
@@ -11,7 +11,7 @@ option to the build script.
OTA Requestor is any node that needs to be updated and can communicate with
the OTA Provider to fetch applicable software updates. In the procedure
described below, the OTA Provider will be a Linux application and the
- example running on the Infineon P6 board will work as the OTA Requestor.
+ example running on the Infineon PSoC6 board will work as the OTA Requestor.
- On a Linux or Darwin platform build the chip-tool and the ota-provider-app
as follows:
@@ -21,33 +21,33 @@ option to the build script.
scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false
```
-- Build the P6 OTA Requestor application from the chip root dir:
+- Build the PSoC6 OTA Requestor application from the chip root dir:
```
- $ scripts/build/build_examples.py --enable-flashbundle --target infineon-p6-lock-ota build
- $ third_party/p6/p6_sdk/ota/ota_base_build.sh out/infineon-p6-lock-ota chip-p6-lock-example
+ $ scripts/build/build_examples.py --enable-flashbundle --target infineon-psoc6-lock-ota build
+ $ third_party/psoc6/psoc6_sdk/ota/ota_base_build.sh out/infineon-psoc6-lock-ota chip-psoc6-lock-example
```
-- Build the P6 OTA Update application from the chip root dir and create OTA
+- Build the PSoC6 OTA Update application from the chip root dir and create OTA
file
```
- $ scripts/build/build_examples.py --enable-flashbundle --no-log-timestamps --target infineon-p6-lock-ota-updateimage build
- $ third_party/p6/p6_sdk/ota/ota_update_build.sh out/infineon-p6-lock-ota-updateimage chip-p6-lock-example
+ $ scripts/build/build_examples.py --enable-flashbundle --no-log-timestamps --target infineon-psoc6-lock-ota-updateimage build
+ $ third_party/psoc6/psoc6_sdk/ota/ota_update_build.sh out/infineon-psoc6-lock-ota-updateimage chip-psoc6-lock-example
```
* Additionally a pre-compiled bootloader must be flashed to the board using
[Cypress Programmer](https://softwaretools.infineon.com/tools/com.ifx.tb.tool.cypressprogrammer).
This image can be found at:
- $ ./third_party/p6/p6_sdk/ota/matter-psoc6-mcuboot-bootloader.hex
+ $ ./third_party/psoc6/psoc6_sdk/ota/matter-psoc6-mcuboot-bootloader.hex
* In a terminal start the Provider app passing to it the path to the Matter
OTA file created in the previous step:(output of ota_update_build step)
```
rm -r /tmp/chip_*
- ./out/debug/chip-ota-provider-app -f chip-p6-lock-example.ota
+ ./out/debug/chip-ota-provider-app -f chip-psoc6-lock-example.ota
```
* In a separate terminal run the chip-tool commands to provision the Provider:
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index ba13b42667e261..18d7c48c099ad3 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -3850,7 +3850,14 @@ server cluster FaultInjection = 4294048774 {
BOOLEAN takeMutex = 4;
}
+ request struct FailRandomlyAtFaultRequest {
+ FaultType type = 0;
+ INT32U id = 1;
+ INT8U percentage = 2;
+ }
+
command access(invoke: manage) FailAtFault(FailAtFaultRequest): DefaultSuccess = 0;
+ command access(invoke: manage) FailRandomlyAtFault(FailRandomlyAtFaultRequest): DefaultSuccess = 1;
}
endpoint 0 {
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
index baefdc4cf4a07c..a77c6e149bdbb6 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
@@ -8461,6 +8461,14 @@
"source": "client",
"incoming": 1,
"outgoing": 1
+ },
+ {
+ "name": "FailRandomlyAtFault",
+ "code": 1,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 0
}
],
"attributes": [
diff --git a/examples/all-clusters-app/p6/.gn b/examples/all-clusters-app/infineon/psoc6/.gn
similarity index 100%
rename from examples/all-clusters-app/p6/.gn
rename to examples/all-clusters-app/infineon/psoc6/.gn
diff --git a/examples/all-clusters-app/p6/BUILD.gn b/examples/all-clusters-app/infineon/psoc6/BUILD.gn
similarity index 79%
rename from examples/all-clusters-app/p6/BUILD.gn
rename to examples/all-clusters-app/infineon/psoc6/BUILD.gn
index 1fa873956a4830..a92d8fb969e171 100644
--- a/examples/all-clusters-app/p6/BUILD.gn
+++ b/examples/all-clusters-app/infineon/psoc6/BUILD.gn
@@ -14,17 +14,17 @@
import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
+import("//build_overrides/psoc6.gni")
import("${build_root}/config/defaults.gni")
import("${chip_root}/src/platform/device.gni")
-import("${p6_sdk_build_root}/p6_executable.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
+import("${psoc6_sdk_build_root}/psoc6_executable.gni")
+import("${psoc6_sdk_build_root}/psoc6_sdk.gni")
assert(current_os == "freertos")
-p6_project_dir = "${chip_root}/examples/all-clusters-app/p6"
-examples_plat_dir = "${chip_root}/examples/platform/p6"
+psoc6_project_dir = "${chip_root}/examples/all-clusters-app/infineon/psoc6"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/psoc6"
declare_args() {
# Dump memory usage at link time.
@@ -40,8 +40,8 @@ declare_args() {
build_update_image = false
}
-config("p6_ota_config") {
- linker_script = "${p6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
+config("psoc6_ota_config") {
+ linker_script = "${psoc6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
ldflags = [ "-T" + rebase_path(linker_script, root_build_dir) ]
@@ -78,38 +78,39 @@ config("p6_ota_config") {
}
}
-p6_sdk_sources("all_clusters_app_sdk_sources") {
+psoc6_sdk_sources("all_clusters_app_sdk_sources") {
include_dirs = [
- "${chip_root}/src/platform/P6",
- "${p6_project_dir}/include",
+ "${chip_root}/src/platform/PSOC6",
+ "${psoc6_project_dir}/include",
"${examples_plat_dir}",
]
defines = [
- "BOARD_ID=${p6_board}",
+ "BOARD_ID=${psoc6_board}",
"P6_LOG_ENABLED=1",
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setup_pin_code}",
]
- sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ]
+ sources = [ "${psoc6_project_dir}/include/CHIPProjectConfig.h" ]
- public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
+ public_configs =
+ [ "${chip_root}/third_party/infineon/psoc6:psoc6_sdk_config" ]
if (chip_enable_ota_requestor) {
- public_configs += [ ":p6_ota_config" ]
+ public_configs += [ ":psoc6_ota_config" ]
}
}
-p6_executable("clusters_app") {
+psoc6_executable("clusters_app") {
include_dirs = []
defines = []
- output_name = "chip-p6-clusters-example.out"
+ output_name = "chip-psoc6-clusters-example.out"
sources = [
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp",
"${examples_plat_dir}/LEDWidget.cpp",
- "${examples_plat_dir}/init_p6Platform.cpp",
+ "${examples_plat_dir}/init_psoc6Platform.cpp",
"src/AppTask.cpp",
"src/ButtonHandler.cpp",
"src/ClusterManager.cpp",
@@ -129,7 +130,7 @@ p6_executable("clusters_app") {
include_dirs += [
"include",
"${examples_plat_dir}",
- "${p6_project_dir}/include",
+ "${psoc6_project_dir}/include",
"${chip_root}/examples/all-clusters-app/all-clusters-common/include",
]
@@ -150,10 +151,10 @@ p6_executable("clusters_app") {
output_dir = root_out_dir
}
-group("p6") {
+group("psoc6") {
deps = [ ":clusters_app" ]
}
group("default") {
- deps = [ ":p6" ]
+ deps = [ ":psoc6" ]
}
diff --git a/examples/all-clusters-app/p6/README.md b/examples/all-clusters-app/infineon/psoc6/README.md
similarity index 75%
rename from examples/all-clusters-app/p6/README.md
rename to examples/all-clusters-app/infineon/psoc6/README.md
index d218c24c97dc46..c28c43d9c3f248 100644
--- a/examples/all-clusters-app/p6/README.md
+++ b/examples/all-clusters-app/infineon/psoc6/README.md
@@ -1,10 +1,10 @@
-#CHIP P6 All Clusters Example
+#CHIP PSoC6 All Clusters Example
An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter P6 All Clusters Example](#chip-p6-clusters-example)
+- [Matter PSoC6 All Clusters Example](#chip-psoc6-clusters-example)
- [Introduction](#introduction)
- [Building](#building)
- [Flashing the Application](#flashing-the-application)
@@ -20,13 +20,13 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
## Introduction
-The P6 clusters example provides a baseline demonstration of a Cluster control
-device, built using Matter and the Infineon Modustoolbox SDK. It can be
+The PSoC6 clusters example provides a baseline demonstration of a Cluster
+control device, built using Matter and the Infineon Modustoolbox SDK. It can be
controlled by Matter controller over Wi-Fi network.
-The P6 device can be commissioned over Bluetooth Low Energy where the device and
-the Matter controller will exchange security information with the Rendezvous
-procedure. Wi-Fi Network credentials are then provided to the P6 device which
+The PSoC6 device can be commissioned over Bluetooth Low Energy where the device
+and the Matter controller will exchange security information with the Rendezvous
+procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which
will then join the network.
@@ -36,8 +36,8 @@ will then join the network.
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
- `scripts/examples/gn_p6_example.sh` for downloading the Software and related
- tools.
+ `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
+ related tools.
- Install some additional tools (likely already present for Matter
developers):
@@ -54,7 +54,7 @@ will then join the network.
* Build the example application:
$ source scripts/activate.sh
- $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-all-clusters' build
+ $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-psoc6-all-clusters' build
- To delete generated executable, libraries and object files use:
@@ -72,7 +72,7 @@ will then join the network.
- On the command line:
$ cd ~/connectedhomeip
- $ python3 out/infineon-p6-all-clusters/chip-p6-clusters-example.flash.py
+ $ python3 out/infineon-psoc6-all-clusters/chip-psoc6-clusters-example.flash.py
@@ -84,7 +84,7 @@ Commissioning can be carried out using BLE.
### Setting up Chip tool
-Once P6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
+Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
perform commissioning and cluster control.
- Set up python controller.
@@ -125,6 +125,6 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
## OTA Software Update
-For the description of Software Update process with infineon P6 example
+For the description of Software Update process with infineon PSoC6 example
applications see
-[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md)
+[Infineon PSoC6 OTA Software Update](../../../../docs/guides/infineon_psoc6_software_update.md)
diff --git a/examples/all-clusters-app/p6/args.gni b/examples/all-clusters-app/infineon/psoc6/args.gni
similarity index 89%
rename from examples/all-clusters-app/p6/args.gni
rename to examples/all-clusters-app/infineon/psoc6/args.gni
index 2a93385cf36bd6..ce7a2ab93e794d 100644
--- a/examples/all-clusters-app/p6/args.gni
+++ b/examples/all-clusters-app/infineon/psoc6/args.gni
@@ -14,7 +14,7 @@
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")
-import("${chip_root}/src/platform/P6/args.gni")
+import("${chip_root}/src/platform/Infineon/PSOC6/args.gni")
-p6_target_project =
+psoc6_target_project =
get_label_info(":all_clusters_app_sdk_sources", "label_no_toolchain")
diff --git a/examples/all-clusters-app/infineon/psoc6/build_overrides b/examples/all-clusters-app/infineon/psoc6/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/all-clusters-app/infineon/psoc6/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/all-clusters-app/p6/include/AppConfig.h b/examples/all-clusters-app/infineon/psoc6/include/AppConfig.h
similarity index 100%
rename from examples/all-clusters-app/p6/include/AppConfig.h
rename to examples/all-clusters-app/infineon/psoc6/include/AppConfig.h
diff --git a/examples/all-clusters-app/p6/include/AppEvent.h b/examples/all-clusters-app/infineon/psoc6/include/AppEvent.h
similarity index 100%
rename from examples/all-clusters-app/p6/include/AppEvent.h
rename to examples/all-clusters-app/infineon/psoc6/include/AppEvent.h
diff --git a/examples/all-clusters-app/p6/include/AppTask.h b/examples/all-clusters-app/infineon/psoc6/include/AppTask.h
similarity index 100%
rename from examples/all-clusters-app/p6/include/AppTask.h
rename to examples/all-clusters-app/infineon/psoc6/include/AppTask.h
diff --git a/examples/all-clusters-app/p6/include/ButtonHandler.h b/examples/all-clusters-app/infineon/psoc6/include/ButtonHandler.h
similarity index 100%
rename from examples/all-clusters-app/p6/include/ButtonHandler.h
rename to examples/all-clusters-app/infineon/psoc6/include/ButtonHandler.h
diff --git a/examples/all-clusters-app/p6/include/CHIPProjectConfig.h b/examples/all-clusters-app/infineon/psoc6/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/all-clusters-app/p6/include/CHIPProjectConfig.h
rename to examples/all-clusters-app/infineon/psoc6/include/CHIPProjectConfig.h
diff --git a/examples/all-clusters-app/p6/include/ClusterManager.h b/examples/all-clusters-app/infineon/psoc6/include/ClusterManager.h
similarity index 100%
rename from examples/all-clusters-app/p6/include/ClusterManager.h
rename to examples/all-clusters-app/infineon/psoc6/include/ClusterManager.h
diff --git a/examples/all-clusters-app/p6/src/AppTask.cpp b/examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp
similarity index 99%
rename from examples/all-clusters-app/p6/src/AppTask.cpp
rename to examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp
index 615660976db3ef..4e0d1c8cf731e8 100644
--- a/examples/all-clusters-app/p6/src/AppTask.cpp
+++ b/examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp
@@ -42,7 +42,7 @@
#include
#include
-#include
+#include
/* OTA related includes */
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
@@ -50,7 +50,7 @@
#include
#include
#include
-#include
+#include
using chip::BDXDownloader;
using chip::CharSpan;
diff --git a/examples/all-clusters-app/p6/src/ButtonHandler.cpp b/examples/all-clusters-app/infineon/psoc6/src/ButtonHandler.cpp
similarity index 100%
rename from examples/all-clusters-app/p6/src/ButtonHandler.cpp
rename to examples/all-clusters-app/infineon/psoc6/src/ButtonHandler.cpp
diff --git a/examples/all-clusters-app/p6/src/ClusterManager.cpp b/examples/all-clusters-app/infineon/psoc6/src/ClusterManager.cpp
similarity index 100%
rename from examples/all-clusters-app/p6/src/ClusterManager.cpp
rename to examples/all-clusters-app/infineon/psoc6/src/ClusterManager.cpp
diff --git a/examples/all-clusters-app/p6/src/ZclCallbacks.cpp b/examples/all-clusters-app/infineon/psoc6/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/all-clusters-app/p6/src/ZclCallbacks.cpp
rename to examples/all-clusters-app/infineon/psoc6/src/ZclCallbacks.cpp
diff --git a/examples/all-clusters-app/p6/src/main.cpp b/examples/all-clusters-app/infineon/psoc6/src/main.cpp
similarity index 99%
rename from examples/all-clusters-app/p6/src/main.cpp
rename to examples/all-clusters-app/infineon/psoc6/src/main.cpp
index 7f38b516b93fe1..84b1961f9a881f 100644
--- a/examples/all-clusters-app/p6/src/main.cpp
+++ b/examples/all-clusters-app/infineon/psoc6/src/main.cpp
@@ -36,7 +36,7 @@
#include "AppConfig.h"
#include "cyhal_wdt.h"
-#include "init_p6Platform.h"
+#include "init_psoc6Platform.h"
#include
#ifdef HEAP_MONITORING
diff --git a/examples/all-clusters-app/infineon/psoc6/third_party/connectedhomeip b/examples/all-clusters-app/infineon/psoc6/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/all-clusters-app/infineon/psoc6/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/all-clusters-app/p6/build_overrides b/examples/all-clusters-app/p6/build_overrides
deleted file mode 120000
index 194ee0b812dc3d..00000000000000
--- a/examples/all-clusters-app/p6/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides/
\ No newline at end of file
diff --git a/examples/all-clusters-app/p6/third_party/connectedhomeip b/examples/all-clusters-app/p6/third_party/connectedhomeip
deleted file mode 120000
index 11a54ed360106c..00000000000000
--- a/examples/all-clusters-app/p6/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../
\ No newline at end of file
diff --git a/examples/all-clusters-minimal-app/p6/.gn b/examples/all-clusters-minimal-app/infineon/psoc6/.gn
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/.gn
rename to examples/all-clusters-minimal-app/infineon/psoc6/.gn
diff --git a/examples/all-clusters-minimal-app/p6/BUILD.gn b/examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn
similarity index 78%
rename from examples/all-clusters-minimal-app/p6/BUILD.gn
rename to examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn
index 53d303ce5f4ecb..2b90698856083a 100644
--- a/examples/all-clusters-minimal-app/p6/BUILD.gn
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn
@@ -14,17 +14,18 @@
import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
+import("//build_overrides/psoc6.gni")
import("${build_root}/config/defaults.gni")
import("${chip_root}/src/platform/device.gni")
-import("${p6_sdk_build_root}/p6_executable.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
+import("${psoc6_sdk_build_root}/psoc6_executable.gni")
+import("${psoc6_sdk_build_root}/psoc6_sdk.gni")
assert(current_os == "freertos")
-p6_project_dir = "${chip_root}/examples/all-clusters-minimal-app/p6"
-examples_plat_dir = "${chip_root}/examples/platform/p6"
+psoc6_project_dir =
+ "${chip_root}/examples/all-clusters-minimal-app/infineon/psoc6"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/psoc6"
declare_args() {
# Dump memory usage at link time.
@@ -40,8 +41,8 @@ declare_args() {
build_update_image = false
}
-config("p6_ota_config") {
- linker_script = "${p6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
+config("psoc6_ota_config") {
+ linker_script = "${psoc6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
ldflags = [ "-T" + rebase_path(linker_script, root_build_dir) ]
@@ -78,38 +79,39 @@ config("p6_ota_config") {
}
}
-p6_sdk_sources("all_clusters_app_sdk_sources") {
+psoc6_sdk_sources("all_clusters_app_sdk_sources") {
include_dirs = [
- "${chip_root}/src/platform/P6",
- "${p6_project_dir}/include",
+ "${chip_root}/src/platform/PSOC6",
+ "${psoc6_project_dir}/include",
"${examples_plat_dir}",
]
defines = [
- "BOARD_ID=${p6_board}",
+ "BOARD_ID=${psoc6_board}",
"P6_LOG_ENABLED=1",
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setup_pin_code}",
]
- sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ]
+ sources = [ "${psoc6_project_dir}/include/CHIPProjectConfig.h" ]
- public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
+ public_configs =
+ [ "${chip_root}/third_party/infineon/psoc6:psoc6_sdk_config" ]
if (chip_enable_ota_requestor) {
- public_configs += [ ":p6_ota_config" ]
+ public_configs += [ ":psoc6_ota_config" ]
}
}
-p6_executable("clusters_minimal_app") {
+psoc6_executable("clusters_minimal_app") {
include_dirs = []
defines = []
- output_name = "chip-p6-clusters-minimal-example.out"
+ output_name = "chip-psoc6-clusters-minimal-example.out"
sources = [
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp",
"${examples_plat_dir}/LEDWidget.cpp",
- "${examples_plat_dir}/init_p6Platform.cpp",
+ "${examples_plat_dir}/init_psoc6Platform.cpp",
"src/AppTask.cpp",
"src/ButtonHandler.cpp",
"src/ClusterManager.cpp",
@@ -129,7 +131,7 @@ p6_executable("clusters_minimal_app") {
include_dirs += [
"include",
"${examples_plat_dir}",
- "${p6_project_dir}/include",
+ "${psoc6_project_dir}/include",
"${chip_root}/examples/all-clusters-app/all-clusters-common/include",
]
@@ -150,10 +152,10 @@ p6_executable("clusters_minimal_app") {
output_dir = root_out_dir
}
-group("p6") {
+group("psoc6") {
deps = [ ":clusters_minimal_app" ]
}
group("default") {
- deps = [ ":p6" ]
+ deps = [ ":psoc6" ]
}
diff --git a/examples/all-clusters-minimal-app/p6/README.md b/examples/all-clusters-minimal-app/infineon/psoc6/README.md
similarity index 75%
rename from examples/all-clusters-minimal-app/p6/README.md
rename to examples/all-clusters-minimal-app/infineon/psoc6/README.md
index 730891ccef53a1..1f7a40ef9b28ac 100644
--- a/examples/all-clusters-minimal-app/p6/README.md
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/README.md
@@ -1,10 +1,10 @@
-#CHIP P6 All Clusters Example
+#CHIP PSoC6 All Clusters Example
An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter P6 All Clusters Example](#chip-p6-clusters-example)
+- [Matter PSoC6 All Clusters Example](#chip-psoc6-clusters-example)
- [Introduction](#introduction)
- [Building](#building)
- [Flashing the Application](#flashing-the-application)
@@ -20,13 +20,13 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
## Introduction
-The P6 clusters example provides a baseline demonstration of a Cluster control
-device, built using Matter and the Infineon Modustoolbox SDK. It can be
+The PSoC6 clusters example provides a baseline demonstration of a Cluster
+control device, built using Matter and the Infineon Modustoolbox SDK. It can be
controlled by Matter controller over Wi-Fi network.
-The P6 device can be commissioned over Bluetooth Low Energy where the device and
-the Matter controller will exchange security information with the Rendezvous
-procedure. Wi-Fi Network credentials are then provided to the P6 device which
+The PSoC6 device can be commissioned over Bluetooth Low Energy where the device
+and the Matter controller will exchange security information with the Rendezvous
+procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which
will then join the network.
@@ -36,8 +36,8 @@ will then join the network.
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
- `scripts/examples/gn_p6_example.sh` for downloading the Software and related
- tools.
+ `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
+ related tools.
- Install some additional tools (likely already present for Matter
developers):
@@ -54,7 +54,7 @@ will then join the network.
* Build the example application:
$ source scripts/activate.sh
- $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-all-clusters-minimal' build
+ $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-psoc6-all-clusters-minimal' build
- To delete generated executable, libraries and object files use:
@@ -72,7 +72,7 @@ will then join the network.
- On the command line:
$ cd ~/connectedhomeip
- $ python3 out/infineon-p6-all-clusters-minimal/chip-p6-clusters-minimal-example.flash.py
+ $ python3 out/infineon-psoc6-all-clusters-minimal/chip-psoc6-clusters-minimal-example.flash.py
@@ -84,7 +84,7 @@ Commissioning can be carried out using BLE.
### Setting up Chip tool
-Once P6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
+Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
perform commissioning and cluster control.
- Set up python controller.
@@ -125,6 +125,6 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
## OTA Software Update
-For the description of Software Update process with infineon P6 example
+For the description of Software Update process with infineon PSoC6 example
applications see
-[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md)
+[Infineon PSoC6 OTA Software Update](../../../../docs/guides/infineon_psoc6_software_update.md)
diff --git a/examples/all-clusters-minimal-app/p6/args.gni b/examples/all-clusters-minimal-app/infineon/psoc6/args.gni
similarity index 89%
rename from examples/all-clusters-minimal-app/p6/args.gni
rename to examples/all-clusters-minimal-app/infineon/psoc6/args.gni
index 2a93385cf36bd6..ce7a2ab93e794d 100644
--- a/examples/all-clusters-minimal-app/p6/args.gni
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/args.gni
@@ -14,7 +14,7 @@
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")
-import("${chip_root}/src/platform/P6/args.gni")
+import("${chip_root}/src/platform/Infineon/PSOC6/args.gni")
-p6_target_project =
+psoc6_target_project =
get_label_info(":all_clusters_app_sdk_sources", "label_no_toolchain")
diff --git a/examples/all-clusters-minimal-app/infineon/psoc6/build_overrides b/examples/all-clusters-minimal-app/infineon/psoc6/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/all-clusters-minimal-app/p6/include/AppConfig.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/AppConfig.h
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/include/AppConfig.h
rename to examples/all-clusters-minimal-app/infineon/psoc6/include/AppConfig.h
diff --git a/examples/all-clusters-minimal-app/p6/include/AppEvent.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/AppEvent.h
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/include/AppEvent.h
rename to examples/all-clusters-minimal-app/infineon/psoc6/include/AppEvent.h
diff --git a/examples/all-clusters-minimal-app/p6/include/AppTask.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/AppTask.h
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/include/AppTask.h
rename to examples/all-clusters-minimal-app/infineon/psoc6/include/AppTask.h
diff --git a/examples/all-clusters-minimal-app/p6/include/ButtonHandler.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/ButtonHandler.h
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/include/ButtonHandler.h
rename to examples/all-clusters-minimal-app/infineon/psoc6/include/ButtonHandler.h
diff --git a/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h
rename to examples/all-clusters-minimal-app/infineon/psoc6/include/CHIPProjectConfig.h
diff --git a/examples/all-clusters-minimal-app/p6/include/ClusterManager.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/ClusterManager.h
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/include/ClusterManager.h
rename to examples/all-clusters-minimal-app/infineon/psoc6/include/ClusterManager.h
diff --git a/examples/all-clusters-minimal-app/p6/src/AppTask.cpp b/examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp
similarity index 99%
rename from examples/all-clusters-minimal-app/p6/src/AppTask.cpp
rename to examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp
index 45a3dfb8af90b7..13eb9e09e01431 100644
--- a/examples/all-clusters-minimal-app/p6/src/AppTask.cpp
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp
@@ -42,7 +42,7 @@
#include
#include
-#include
+#include
/* OTA related includes */
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
@@ -50,7 +50,7 @@
#include
#include
#include
-#include
+#include
using chip::BDXDownloader;
using chip::CharSpan;
diff --git a/examples/all-clusters-minimal-app/p6/src/ButtonHandler.cpp b/examples/all-clusters-minimal-app/infineon/psoc6/src/ButtonHandler.cpp
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/src/ButtonHandler.cpp
rename to examples/all-clusters-minimal-app/infineon/psoc6/src/ButtonHandler.cpp
diff --git a/examples/all-clusters-minimal-app/p6/src/ClusterManager.cpp b/examples/all-clusters-minimal-app/infineon/psoc6/src/ClusterManager.cpp
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/src/ClusterManager.cpp
rename to examples/all-clusters-minimal-app/infineon/psoc6/src/ClusterManager.cpp
diff --git a/examples/all-clusters-minimal-app/p6/src/ZclCallbacks.cpp b/examples/all-clusters-minimal-app/infineon/psoc6/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/all-clusters-minimal-app/p6/src/ZclCallbacks.cpp
rename to examples/all-clusters-minimal-app/infineon/psoc6/src/ZclCallbacks.cpp
diff --git a/examples/all-clusters-minimal-app/p6/src/main.cpp b/examples/all-clusters-minimal-app/infineon/psoc6/src/main.cpp
similarity index 96%
rename from examples/all-clusters-minimal-app/p6/src/main.cpp
rename to examples/all-clusters-minimal-app/infineon/psoc6/src/main.cpp
index 7f38b516b93fe1..a7587170607d28 100644
--- a/examples/all-clusters-minimal-app/p6/src/main.cpp
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/src/main.cpp
@@ -36,7 +36,7 @@
#include "AppConfig.h"
#include "cyhal_wdt.h"
-#include "init_p6Platform.h"
+#include "init_psoc6Platform.h"
#include
#ifdef HEAP_MONITORING
@@ -143,7 +143,7 @@ int main(void)
#endif
P6_LOG("==================================================\r\n");
- P6_LOG("chip-p6-all-clusters-example starting Version %d\r\n", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
+ P6_LOG("chip-p6-all-clusters-minimal-example starting Version %d\r\n", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
P6_LOG("==================================================\r\n");
/* Start the FreeRTOS scheduler */
diff --git a/examples/all-clusters-minimal-app/infineon/psoc6/third_party/connectedhomeip b/examples/all-clusters-minimal-app/infineon/psoc6/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/all-clusters-minimal-app/infineon/psoc6/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/all-clusters-minimal-app/p6/build_overrides b/examples/all-clusters-minimal-app/p6/build_overrides
deleted file mode 120000
index 194ee0b812dc3d..00000000000000
--- a/examples/all-clusters-minimal-app/p6/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides/
\ No newline at end of file
diff --git a/examples/all-clusters-minimal-app/p6/third_party/connectedhomeip b/examples/all-clusters-minimal-app/p6/third_party/connectedhomeip
deleted file mode 120000
index 11a54ed360106c..00000000000000
--- a/examples/all-clusters-minimal-app/p6/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../
\ No newline at end of file
diff --git a/examples/build_overrides/cyw30739_sdk.gni b/examples/build_overrides/cyw30739_sdk.gni
index d2c81de46ba614..d98ac9866b0a4f 100644
--- a/examples/build_overrides/cyw30739_sdk.gni
+++ b/examples/build_overrides/cyw30739_sdk.gni
@@ -15,5 +15,5 @@
declare_args() {
# Root directory for CYW30739 SDK.
cyw30739_sdk_build_root =
- "//third_party/connectedhomeip/third_party/cyw30739_sdk"
+ "//third_party/connectedhomeip/third_party/infineon/cyw30739_sdk"
}
diff --git a/examples/build_overrides/p6.gni b/examples/build_overrides/psoc6.gni
similarity index 73%
rename from examples/build_overrides/p6.gni
rename to examples/build_overrides/psoc6.gni
index 91890631da64bf..87d5ca9f2a295f 100644
--- a/examples/build_overrides/p6.gni
+++ b/examples/build_overrides/psoc6.gni
@@ -13,11 +13,12 @@
# limitations under the License.
declare_args() {
- # Root directory for P6 SDK.
- p6_sdk_build_root = "//third_party/connectedhomeip/third_party/p6"
+ # Root directory for PSOC6 SDK.
+ psoc6_sdk_build_root =
+ "//third_party/connectedhomeip/third_party/infineon/psoc6"
}
declare_args() {
- # Root directory for p6 SDK sources.
- p6_sdk_root = "${p6_sdk_build_root}/p6_sdk"
+ # Root directory for psoc6 SDK sources.
+ psoc6_sdk_root = "${psoc6_sdk_build_root}/psoc6_sdk"
}
diff --git a/examples/chef/efr32/BUILD.gn b/examples/chef/efr32/BUILD.gn
index efaace05910a0b..c567ae9d8f1cbf 100644
--- a/examples/chef/efr32/BUILD.gn
+++ b/examples/chef/efr32/BUILD.gn
@@ -207,6 +207,7 @@ efr32_executable("chef_app") {
if (chip_enable_openthread) {
deps += [
"${chip_root}/third_party/openthread:openthread",
+ "${chip_root}/third_party/openthread:openthread_device",
"${examples_plat_dir}:efr-matter-shell",
]
}
@@ -246,7 +247,11 @@ efr32_executable("chef_app") {
}
if (!disable_lcd) {
- sources += [ "${examples_plat_dir}/display/lcd.c" ]
+ sources += [
+ "${examples_plat_dir}/display/demo-ui.c",
+ "${examples_plat_dir}/display/lcd.cpp",
+ ]
+ include_dirs += [ "${examples_plat_dir}/display" ]
defines += [ "DISPLAY_ENABLED" ]
if (show_qr_code) {
defines += [ "QR_CODE_ENABLED" ]
diff --git a/examples/chip-tool/commands/common/CHIPCommand.cpp b/examples/chip-tool/commands/common/CHIPCommand.cpp
index 663ebee8257d61..89dd1d536e4550 100644
--- a/examples/chip-tool/commands/common/CHIPCommand.cpp
+++ b/examples/chip-tool/commands/common/CHIPCommand.cpp
@@ -358,6 +358,12 @@ CHIP_ERROR CHIPCommand::InitializeCommissioner(std::string key, chip::FabricId f
// store the credentials in persistent storage, and
// generate when not available in the storage.
ReturnLogErrorOnFailure(mCommissionerStorage.Init(key.c_str()));
+ if (mUseMaxSizedCerts.HasValue())
+ {
+ auto option = CredentialIssuerCommands::CredentialIssuerOptions::kMaximizeCertificateSizes;
+ mCredIssuerCmds->SetCredentialIssuerOption(option, mUseMaxSizedCerts.Value());
+ }
+
ReturnLogErrorOnFailure(mCredIssuerCmds->InitializeCredentialsIssuer(mCommissionerStorage));
chip::MutableByteSpan nocSpan(noc.Get(), chip::Controller::kMaxCHIPDERCertLength);
diff --git a/examples/chip-tool/commands/common/CHIPCommand.h b/examples/chip-tool/commands/common/CHIPCommand.h
index 1714928ea1096c..7dd36a7c7d6214 100644
--- a/examples/chip-tool/commands/common/CHIPCommand.h
+++ b/examples/chip-tool/commands/common/CHIPCommand.h
@@ -70,6 +70,9 @@ class CHIPCommand : public Command
"4. The default if not specified is \"alpha\".");
AddArgument("commissioner-nodeid", 0, UINT64_MAX, &mCommissionerNodeId,
"The node id to use for chip-tool. If not provided, kTestControllerNodeId (112233, 0x1B669) will be used.");
+ AddArgument("use-max-sized-certs", 0, 1, &mUseMaxSizedCerts,
+ "Maximize the size of operational certificates. If not provided or 0 (\"false\"), normally sized operational "
+ "certificates are generated.");
#if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED
AddArgument("trace_file", &mTraceFile);
AddArgument("trace_log", 0, 1, &mTraceLog);
@@ -153,6 +156,7 @@ class CHIPCommand : public Command
chip::Optional mCommissionerNodeId;
chip::Optional mBleAdapterId;
chip::Optional mPaaTrustStorePath;
+ chip::Optional mUseMaxSizedCerts;
// Cached trust store so commands other than the original startup command
// can spin up commissioners as needed.
diff --git a/examples/chip-tool/commands/common/CredentialIssuerCommands.h b/examples/chip-tool/commands/common/CredentialIssuerCommands.h
index 951ef86efceb40..cc04863ee2f8b6 100644
--- a/examples/chip-tool/commands/common/CredentialIssuerCommands.h
+++ b/examples/chip-tool/commands/common/CredentialIssuerCommands.h
@@ -74,4 +74,23 @@ class CredentialIssuerCommands
virtual CHIP_ERROR GenerateControllerNOCChain(chip::NodeId nodeId, chip::FabricId fabricId, const chip::CATValues & cats,
chip::Crypto::P256Keypair & keypair, chip::MutableByteSpan & rcac,
chip::MutableByteSpan & icac, chip::MutableByteSpan & noc) = 0;
+
+ // All options must start false
+ enum CredentialIssuerOptions : uint8_t
+ {
+ kMaximizeCertificateSizes = 0, // If set, certificate chains will be maximized for testing via padding
+ };
+
+ virtual void SetCredentialIssuerOption(CredentialIssuerOptions option, bool isEnabled)
+ {
+ // Do nothing
+ (void) option;
+ (void) isEnabled;
+ }
+
+ virtual bool GetCredentialIssuerOption(CredentialIssuerOptions option)
+ {
+ // All options always start false
+ return false;
+ }
};
diff --git a/examples/chip-tool/commands/example/ExampleCredentialIssuerCommands.h b/examples/chip-tool/commands/example/ExampleCredentialIssuerCommands.h
index 74646c8b5f10ba..40a2871b19437b 100644
--- a/examples/chip-tool/commands/example/ExampleCredentialIssuerCommands.h
+++ b/examples/chip-tool/commands/example/ExampleCredentialIssuerCommands.h
@@ -49,6 +49,33 @@ class ExampleCredentialIssuerCommands : public CredentialIssuerCommands
return mOpCredsIssuer.GenerateNOCChainAfterValidation(nodeId, fabricId, cats, keypair.Pubkey(), rcac, icac, noc);
}
+ void SetCredentialIssuerOption(CredentialIssuerOptions option, bool isEnabled) override
+ {
+ switch (option)
+ {
+ case CredentialIssuerOptions::kMaximizeCertificateSizes:
+ mUsesMaxSizedCerts = isEnabled;
+ mOpCredsIssuer.SetMaximallyLargeCertsUsed(mUsesMaxSizedCerts);
+ break;
+ default:
+ break;
+ }
+ }
+
+ bool GetCredentialIssuerOption(CredentialIssuerOptions option) override
+ {
+ switch (option)
+ {
+ case CredentialIssuerOptions::kMaximizeCertificateSizes:
+ return mUsesMaxSizedCerts;
+ default:
+ return false;
+ }
+ }
+
+protected:
+ bool mUsesMaxSizedCerts = false;
+
private:
chip::Controller::ExampleOperationalCredentialsIssuer mOpCredsIssuer;
};
diff --git a/examples/common/pigweed/protos/device_service.options b/examples/common/pigweed/protos/device_service.options
index b5f9da673ff778..a0798688c38a84 100644
--- a/examples/common/pigweed/protos/device_service.options
+++ b/examples/common/pigweed/protos/device_service.options
@@ -5,3 +5,4 @@ chip.rpc.PairingInfo.qr_code max_size:256
chip.rpc.PairingInfo.qr_code_url max_size:256
chip.rpc.SpakeInfo.verifier max_size:97 // kSpake2p_VerifierSerialized_Length
chip.rpc.SpakeInfo.salt max_size:32 // kSpake2p_Max_PBKDF_Salt_Length
+chip.rpc.MetadataForProvider.tlv max_size:512 // length defined in chip spec 11.20.6.7
diff --git a/examples/common/pigweed/protos/device_service.proto b/examples/common/pigweed/protos/device_service.proto
index 1c13d7d7281f14..6903e4a9055414 100644
--- a/examples/common/pigweed/protos/device_service.proto
+++ b/examples/common/pigweed/protos/device_service.proto
@@ -41,10 +41,15 @@ message PairingState {
bool pairing_enabled = 1;
}
+message MetadataForProvider {
+ bytes tlv = 1;
+}
+
service Device {
rpc FactoryReset(pw.protobuf.Empty) returns (pw.protobuf.Empty){}
rpc Reboot(pw.protobuf.Empty) returns (pw.protobuf.Empty){}
rpc TriggerOta(pw.protobuf.Empty) returns (pw.protobuf.Empty){}
+ rpc SetOtaMetadataForProvider(MetadataForProvider) returns (pw.protobuf.Empty){}
rpc GetDeviceInfo(pw.protobuf.Empty) returns (DeviceInfo){}
rpc GetDeviceState(pw.protobuf.Empty) returns (DeviceState){}
rpc SetPairingState(PairingState) returns (pw.protobuf.Empty){}
diff --git a/examples/common/pigweed/rpc_services/Device.h b/examples/common/pigweed/rpc_services/Device.h
index d3d5afd165810d..4a80cb44516236 100644
--- a/examples/common/pigweed/rpc_services/Device.h
+++ b/examples/common/pigweed/rpc_services/Device.h
@@ -223,7 +223,7 @@ class Device : public pw_rpc::nanopb::Device::Service
virtual pw::Status TriggerOta(const pw_protobuf_Empty & request, pw_protobuf_Empty & response)
{
-#if CONFIG_CHIP_OTA_REQUESTOR
+#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
chip::DeviceLayer::PlatformMgr().ScheduleWork(
[](intptr_t) {
chip::OTARequestorInterface * requestor = chip::GetRequestorInstance();
@@ -238,10 +238,33 @@ class Device : public pw_rpc::nanopb::Device::Service
},
reinterpret_cast(nullptr));
return pw::OkStatus();
-#else
+#else // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
ChipLogError(AppServer, "Trigger OTA requested, but OTA requestor not compiled in.");
return pw::Status::Unimplemented();
-#endif
+#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
+ }
+
+ virtual pw::Status SetOtaMetadataForProvider(const chip_rpc_MetadataForProvider & request, pw_protobuf_Empty & response)
+ {
+#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
+ chip::OTARequestorInterface * requestor = chip::GetRequestorInstance();
+ if (requestor == nullptr)
+ {
+ ChipLogError(SoftwareUpdate, "Can't get the CASESessionManager");
+ return pw::Status::Unavailable();
+ }
+ else if (sizeof(metadataForProviderBuffer) < request.tlv.size)
+ {
+ return pw::Status::ResourceExhausted();
+ }
+ memcpy(metadataForProviderBuffer, request.tlv.bytes, request.tlv.size);
+ DeviceLayer::StackLock lock;
+ requestor->SetMetadataForProvider(chip::ByteSpan(metadataForProviderBuffer, request.tlv.size));
+ return pw::OkStatus();
+#else // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
+ ChipLogError(AppServer, "OTA set metadata for provider requested, but OTA requestor not compiled in.");
+ return pw::Status::Unimplemented();
+#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
}
virtual pw::Status SetPairingState(const chip_rpc_PairingState & request, pw_protobuf_Empty & response)
@@ -415,6 +438,10 @@ class Device : public pw_rpc::nanopb::Device::Service
}
private:
+#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
+ static constexpr size_t kMaxMetadataForProviderLength = 512; // length defined in chip spec 11.20.6.7
+ uint8_t metadataForProviderBuffer[kMaxMetadataForProviderLength];
+#endif // CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
Internal::CommissionableDataProviderRpcWrapper mCommissionableDataProvider;
};
diff --git a/examples/light-switch-app/efr32/BUILD.gn b/examples/light-switch-app/efr32/BUILD.gn
index 026dc46d13195c..e2705abdedcb65 100644
--- a/examples/light-switch-app/efr32/BUILD.gn
+++ b/examples/light-switch-app/efr32/BUILD.gn
@@ -200,6 +200,7 @@ efr32_executable("light_switch_app") {
if (chip_enable_openthread) {
deps += [
"${chip_root}/third_party/openthread:openthread",
+ "${chip_root}/third_party/openthread:openthread_device",
"${examples_plat_dir}:efr-matter-shell",
]
}
@@ -253,8 +254,15 @@ efr32_executable("light_switch_app") {
}
if (!disable_lcd) {
- sources += [ "${examples_plat_dir}/display/lcd.c" ]
- defines += [ "DISPLAY_ENABLED" ]
+ sources += [
+ "${examples_plat_dir}/display/demo-ui.c",
+ "${examples_plat_dir}/display/lcd.cpp",
+ ]
+ include_dirs += [ "${examples_plat_dir}/display" ]
+ defines += [
+ "DISPLAY_ENABLED",
+ "IS_DEMO_SWITCH=1",
+ ]
if (show_qr_code) {
defines += [ "QR_CODE_ENABLED" ]
deps += [ "${chip_root}/examples/common/QRCode" ]
diff --git a/examples/light-switch-app/efr32/src/AppTask.cpp b/examples/light-switch-app/efr32/src/AppTask.cpp
index 29d9e6527ea8e9..83ac3ac8c94ec7 100644
--- a/examples/light-switch-app/efr32/src/AppTask.cpp
+++ b/examples/light-switch-app/efr32/src/AppTask.cpp
@@ -70,6 +70,8 @@ namespace {
EmberAfIdentifyEffectIdentifier sIdentifyEffect = EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT;
+bool mCurrentButtonState = false;
+
/**********************************************************
* Identify Callbacks
*********************************************************/
@@ -146,6 +148,9 @@ AppTask AppTask::sAppTask;
CHIP_ERROR AppTask::Init()
{
CHIP_ERROR err = CHIP_NO_ERROR;
+#ifdef DISPLAY_ENABLED
+ GetLCD().Init((uint8_t *) "Light Switch");
+#endif
err = BaseApplication::Init(&gIdentify);
if (err != CHIP_NO_ERROR)
@@ -221,9 +226,23 @@ void AppTask::SwitchActionEventHandler(AppEvent * aEvent)
if (aEvent->Type == AppEvent::kEventType_Button)
{
BindingCommandData * data = Platform::New();
- data->commandId = chip::app::Clusters::OnOff::Commands::Toggle::Id;
data->clusterId = chip::app::Clusters::OnOff::Id;
+ if (mCurrentButtonState)
+ {
+ mCurrentButtonState = false;
+ data->commandId = chip::app::Clusters::OnOff::Commands::Off::Id;
+ }
+ else
+ {
+ data->commandId = chip::app::Clusters::OnOff::Commands::On::Id;
+ mCurrentButtonState = true;
+ }
+
+#ifdef DISPLAY_ENABLED
+ sAppTask.GetLCD().WriteDemoUI(mCurrentButtonState);
+#endif
+
DeviceLayer::PlatformMgr().ScheduleWork(SwitchWorkerFunction, reinterpret_cast(data));
}
}
diff --git a/examples/light-switch-app/nrfconnect/CMakeLists.txt b/examples/light-switch-app/nrfconnect/CMakeLists.txt
index 865b8262749bb9..3a0084efa79c42 100644
--- a/examples/light-switch-app/nrfconnect/CMakeLists.txt
+++ b/examples/light-switch-app/nrfconnect/CMakeLists.txt
@@ -60,7 +60,7 @@ target_sources(app PRIVATE
main/BindingHandler.cpp
${GEN_DIR}/light-switch-app/zap-generated/callback-stub.cpp
${GEN_DIR}/light-switch-app/zap-generated/IMClusterCommandHandler.cpp
- ${NRFCONNECT_COMMON}/util/LEDWidget.cpp
+ ${NRFCONNECT_COMMON}/util/LEDWidget.cpp)
if(CONFIG_CHIP_OTA_REQUESTOR)
diff --git a/examples/lighting-app/cyw30739/build_overrides b/examples/lighting-app/cyw30739/build_overrides
deleted file mode 120000
index e578e73312ebd1..00000000000000
--- a/examples/lighting-app/cyw30739/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides
\ No newline at end of file
diff --git a/examples/lighting-app/cyw30739/third_party/connectedhomeip b/examples/lighting-app/cyw30739/third_party/connectedhomeip
deleted file mode 120000
index c866b86874994d..00000000000000
--- a/examples/lighting-app/cyw30739/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../..
\ No newline at end of file
diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/efr32/BUILD.gn
index 81a25554eb9ba2..060b9f67343aa0 100644
--- a/examples/lighting-app/efr32/BUILD.gn
+++ b/examples/lighting-app/efr32/BUILD.gn
@@ -205,6 +205,7 @@ efr32_executable("lighting_app") {
if (chip_enable_openthread) {
deps += [
"${chip_root}/third_party/openthread:openthread",
+ "${chip_root}/third_party/openthread:openthread_device",
"${examples_plat_dir}:efr-matter-shell",
]
}
@@ -253,8 +254,16 @@ efr32_executable("lighting_app") {
}
if (!disable_lcd) {
- sources += [ "${examples_plat_dir}/display/lcd.c" ]
- defines += [ "DISPLAY_ENABLED" ]
+ sources += [
+ "${examples_plat_dir}/display/demo-ui.c",
+ "${examples_plat_dir}/display/lcd.cpp",
+ ]
+
+ include_dirs += [ "${examples_plat_dir}/display" ]
+ defines += [
+ "DISPLAY_ENABLED",
+ "IS_DEMO_LIGHT=1",
+ ]
if (show_qr_code) {
defines += [ "QR_CODE_ENABLED" ]
diff --git a/examples/lighting-app/efr32/src/AppTask.cpp b/examples/lighting-app/efr32/src/AppTask.cpp
index d8fe8940ce3434..89963785b8f02b 100644
--- a/examples/lighting-app/efr32/src/AppTask.cpp
+++ b/examples/lighting-app/efr32/src/AppTask.cpp
@@ -21,12 +21,7 @@
#include "AppConfig.h"
#include "AppEvent.h"
#include "LEDWidget.h"
-#ifdef DISPLAY_ENABLED
-#include "lcd.h"
-#ifdef QR_CODE_ENABLED
-#include "qrcodegen.h"
-#endif // QR_CODE_ENABLED
-#endif // DISPLAY_ENABLED
+
#include "sl_simple_led_instances.h"
#include
#include
@@ -132,6 +127,9 @@ AppTask AppTask::sAppTask;
CHIP_ERROR AppTask::Init()
{
CHIP_ERROR err = CHIP_NO_ERROR;
+#ifdef DISPLAY_ENABLED
+ GetLCD().Init((uint8_t *) "Lighting-App");
+#endif
err = BaseApplication::Init(&gIdentify);
if (err != CHIP_NO_ERROR)
@@ -266,16 +264,13 @@ void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAc
void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor)
{
// Action initiated, update the light led
- if (aAction == LightingManager::ON_ACTION)
- {
- EFR32_LOG("Turning light ON")
- sLightLED.Set(true);
- }
- else if (aAction == LightingManager::OFF_ACTION)
- {
- EFR32_LOG("Turning light OFF")
- sLightLED.Set(false);
- }
+ bool lightOn = aAction == LightingManager::ON_ACTION;
+ EFR32_LOG("Turning light %s", (lightOn) ? "On" : "Off")
+ sLightLED.Set(lightOn);
+
+#ifdef DISPLAY_ENABLED
+ sAppTask.GetLCD().WriteDemoUI(lightOn);
+#endif
if (aActor == AppEvent::kEventType_Button)
{
diff --git a/examples/lighting-app/cyw30739/.gn b/examples/lighting-app/infineon/cyw30739/.gn
similarity index 100%
rename from examples/lighting-app/cyw30739/.gn
rename to examples/lighting-app/infineon/cyw30739/.gn
diff --git a/examples/lighting-app/cyw30739/BUILD.gn b/examples/lighting-app/infineon/cyw30739/BUILD.gn
similarity index 93%
rename from examples/lighting-app/cyw30739/BUILD.gn
rename to examples/lighting-app/infineon/cyw30739/BUILD.gn
index 86d7342430b378..be63607b0bf97b 100644
--- a/examples/lighting-app/cyw30739/BUILD.gn
+++ b/examples/lighting-app/infineon/cyw30739/BUILD.gn
@@ -19,8 +19,8 @@ import("//build_overrides/cyw30739_sdk.gni")
import("${cyw30739_sdk_build_root}/cyw30739_executable.gni")
import("${cyw30739_sdk_build_root}/cyw30739_sdk.gni")
-cyw30739_project_dir = "${chip_root}/examples/lighting-app/cyw30739"
-examples_plat_dir = "${chip_root}/examples/platform/cyw30739"
+cyw30739_project_dir = "${chip_root}/examples/lighting-app/infineon/cyw30739"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/cyw30739"
declare_args() {
setupPinCode = 20202021
diff --git a/examples/lighting-app/cyw30739/README.md b/examples/lighting-app/infineon/cyw30739/README.md
similarity index 93%
rename from examples/lighting-app/cyw30739/README.md
rename to examples/lighting-app/infineon/cyw30739/README.md
index d43e663b5f12e0..72753e2299f942 100644
--- a/examples/lighting-app/cyw30739/README.md
+++ b/examples/lighting-app/infineon/cyw30739/README.md
@@ -32,7 +32,7 @@ dataset and CASE credentials are then provided.
```bash
$ cd ~/connectedhomeip
$ git submodule update --init
- $ ./scripts/examples/gn_build_example.sh examples/lighting-app/cyw30739 out/lighting-app
+ $ ./scripts/examples/gn_build_example.sh examples/lighting-app/infineon/cyw30739 out/lighting-app
```
- To delete generated executable, libraries and object files use:
@@ -45,7 +45,7 @@ dataset and CASE credentials are then provided.
- OR use GN/Ninja directly
```bash
- $ cd ~/connectedhomeip/examples/lighting-app/cyw30739
+ $ cd ~/connectedhomeip/examples/lighting-app/infineon/cyw30739
$ git submodule update --init
$ source third_party/connectedhomeip/scripts/activate.sh
$ gn gen out/debug
@@ -55,7 +55,7 @@ dataset and CASE credentials are then provided.
- To delete generated executable, libraries and object files use:
```bash
- $ cd ~/connectedhomeip/examples/lighting-app/cyw30739
+ $ cd ~/connectedhomeip/examples/lighting-app/infineon/cyw30739
$ rm -rf out/
```
@@ -75,7 +75,7 @@ Put the CYW30739 in to the recovery mode before running the flash script.
- On the command line:
```bash
- $ cd ~/connectedhomeip/examples/lighting-app/cyw30739
+ $ cd ~/connectedhomeip/examples/lighting-app/infineon/cyw30739
$ python3 out/debug/chip-cyw30739-lighting-example.flash.py
```
diff --git a/examples/lock-app/cyw30739/args.gni b/examples/lighting-app/infineon/cyw30739/args.gni
similarity index 93%
rename from examples/lock-app/cyw30739/args.gni
rename to examples/lighting-app/infineon/cyw30739/args.gni
index 267c1db9b56817..ff653ee769356a 100644
--- a/examples/lock-app/cyw30739/args.gni
+++ b/examples/lighting-app/infineon/cyw30739/args.gni
@@ -13,7 +13,7 @@
# limitations under the License.
import("//build_overrides/chip.gni")
-import("${chip_root}/src/platform/CYW30739/args.gni")
+import("${chip_root}/src/platform/Infineon/CYW30739/args.gni")
cyw30739_sdk_target = get_label_info(":sdk", "label_no_toolchain")
diff --git a/examples/lighting-app/infineon/cyw30739/build_overrides b/examples/lighting-app/infineon/cyw30739/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/lighting-app/infineon/cyw30739/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/lighting-app/cyw30739/include/AppShellCommands.h b/examples/lighting-app/infineon/cyw30739/include/AppShellCommands.h
similarity index 100%
rename from examples/lighting-app/cyw30739/include/AppShellCommands.h
rename to examples/lighting-app/infineon/cyw30739/include/AppShellCommands.h
diff --git a/examples/lighting-app/cyw30739/include/ButtonHandler.h b/examples/lighting-app/infineon/cyw30739/include/ButtonHandler.h
similarity index 100%
rename from examples/lighting-app/cyw30739/include/ButtonHandler.h
rename to examples/lighting-app/infineon/cyw30739/include/ButtonHandler.h
diff --git a/examples/lighting-app/cyw30739/include/CHIPProjectConfig.h b/examples/lighting-app/infineon/cyw30739/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/lighting-app/cyw30739/include/CHIPProjectConfig.h
rename to examples/lighting-app/infineon/cyw30739/include/CHIPProjectConfig.h
diff --git a/examples/lighting-app/cyw30739/include/LightingManager.h b/examples/lighting-app/infineon/cyw30739/include/LightingManager.h
similarity index 100%
rename from examples/lighting-app/cyw30739/include/LightingManager.h
rename to examples/lighting-app/infineon/cyw30739/include/LightingManager.h
diff --git a/examples/lighting-app/cyw30739/src/AppShellCommands.cpp b/examples/lighting-app/infineon/cyw30739/src/AppShellCommands.cpp
similarity index 100%
rename from examples/lighting-app/cyw30739/src/AppShellCommands.cpp
rename to examples/lighting-app/infineon/cyw30739/src/AppShellCommands.cpp
diff --git a/examples/lighting-app/cyw30739/src/ButtonHandler.cpp b/examples/lighting-app/infineon/cyw30739/src/ButtonHandler.cpp
similarity index 100%
rename from examples/lighting-app/cyw30739/src/ButtonHandler.cpp
rename to examples/lighting-app/infineon/cyw30739/src/ButtonHandler.cpp
diff --git a/examples/lighting-app/cyw30739/src/LightingManager.cpp b/examples/lighting-app/infineon/cyw30739/src/LightingManager.cpp
similarity index 100%
rename from examples/lighting-app/cyw30739/src/LightingManager.cpp
rename to examples/lighting-app/infineon/cyw30739/src/LightingManager.cpp
diff --git a/examples/lighting-app/cyw30739/src/ZclCallbacks.cpp b/examples/lighting-app/infineon/cyw30739/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/lighting-app/cyw30739/src/ZclCallbacks.cpp
rename to examples/lighting-app/infineon/cyw30739/src/ZclCallbacks.cpp
diff --git a/examples/lighting-app/cyw30739/src/main.cpp b/examples/lighting-app/infineon/cyw30739/src/main.cpp
similarity index 100%
rename from examples/lighting-app/cyw30739/src/main.cpp
rename to examples/lighting-app/infineon/cyw30739/src/main.cpp
diff --git a/examples/lighting-app/cyw30739/static_config.txt b/examples/lighting-app/infineon/cyw30739/static_config.txt
similarity index 100%
rename from examples/lighting-app/cyw30739/static_config.txt
rename to examples/lighting-app/infineon/cyw30739/static_config.txt
diff --git a/examples/lighting-app/infineon/cyw30739/third_party/connectedhomeip b/examples/lighting-app/infineon/cyw30739/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/lighting-app/infineon/cyw30739/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/lighting-app/p6/.gn b/examples/lighting-app/infineon/psoc6/.gn
similarity index 100%
rename from examples/lighting-app/p6/.gn
rename to examples/lighting-app/infineon/psoc6/.gn
diff --git a/examples/lighting-app/p6/BUILD.gn b/examples/lighting-app/infineon/psoc6/BUILD.gn
similarity index 77%
rename from examples/lighting-app/p6/BUILD.gn
rename to examples/lighting-app/infineon/psoc6/BUILD.gn
index 7e6608f45c60d7..08a91b1180728f 100644
--- a/examples/lighting-app/p6/BUILD.gn
+++ b/examples/lighting-app/infineon/psoc6/BUILD.gn
@@ -14,17 +14,17 @@
import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
+import("//build_overrides/psoc6.gni")
import("${build_root}/config/defaults.gni")
import("${chip_root}/src/platform/device.gni")
-import("${p6_sdk_build_root}/p6_executable.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
+import("${psoc6_sdk_build_root}/psoc6_executable.gni")
+import("${psoc6_sdk_build_root}/psoc6_sdk.gni")
assert(current_os == "freertos")
-p6_project_dir = "${chip_root}/examples/lighting-app/p6"
-examples_plat_dir = "${chip_root}/examples/platform/p6"
+psoc6_project_dir = "${chip_root}/examples/lighting-app/infineon/psoc6"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/psoc6"
declare_args() {
# Dump memory usage at link time.
@@ -40,8 +40,8 @@ declare_args() {
build_update_image = false
}
-config("p6_ota_config") {
- linker_script = "${p6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
+config("psoc6_ota_config") {
+ linker_script = "${psoc6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
ldflags = [ "-T" + rebase_path(linker_script, root_build_dir) ]
@@ -78,35 +78,37 @@ config("p6_ota_config") {
}
}
-p6_sdk_sources("lighting_app_sdk_sources") {
+psoc6_sdk_sources("lighting_app_sdk_sources") {
include_dirs = [
- "${chip_root}/src/platform/P6",
- "${p6_project_dir}/include",
+ "${chip_root}/src/platform/PSOC6",
+ "${psoc6_project_dir}/include",
"${examples_plat_dir}",
]
defines = [
- "BOARD_ID=${p6_board}",
+ "BOARD_ID=${psoc6_board}",
"P6_LOG_ENABLED=1",
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setup_pin_code}",
]
- sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ]
- public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
+ sources = [ "${psoc6_project_dir}/include/CHIPProjectConfig.h" ]
+
+ public_configs =
+ [ "${chip_root}/third_party/infineon/psoc6:psoc6_sdk_config" ]
if (chip_enable_ota_requestor) {
- public_configs += [ ":p6_ota_config" ]
+ public_configs += [ ":psoc6_ota_config" ]
}
}
-p6_executable("lighting_app") {
+psoc6_executable("lighting_app") {
include_dirs = []
defines = []
- output_name = "chip-p6-lighting-example.out"
+ output_name = "chip-psoc6-lighting-example.out"
sources = [
"${examples_plat_dir}/LEDWidget.cpp",
- "${examples_plat_dir}/init_p6Platform.cpp",
+ "${examples_plat_dir}/init_psoc6Platform.cpp",
"src/AppTask.cpp",
"src/ButtonHandler.cpp",
"src/LightingManager.cpp",
@@ -126,7 +128,7 @@ p6_executable("lighting_app") {
include_dirs += [
"include",
"${examples_plat_dir}",
- "${p6_project_dir}/include",
+ "${psoc6_project_dir}/include",
]
defines = []
@@ -146,10 +148,10 @@ p6_executable("lighting_app") {
output_dir = root_out_dir
}
-group("p6") {
+group("psoc6") {
deps = [ ":lighting_app" ]
}
group("default") {
- deps = [ ":p6" ]
+ deps = [ ":psoc6" ]
}
diff --git a/examples/lighting-app/p6/README.md b/examples/lighting-app/infineon/psoc6/README.md
similarity index 81%
rename from examples/lighting-app/p6/README.md
rename to examples/lighting-app/infineon/psoc6/README.md
index e37894efcafb2d..ea229f0f391029 100644
--- a/examples/lighting-app/p6/README.md
+++ b/examples/lighting-app/infineon/psoc6/README.md
@@ -1,10 +1,10 @@
-#CHIP P6 Lighting Example
+#CHIP PSoC6 Lighting Example
An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter P6 Lighting Example](#chip-p6-Lighting-example)
+- [Matter PSoC6 Lighting Example](#chip-psoc6-Lighting-example)
- [Introduction](#introduction)
- [Building](#building)
- [Flashing the Application](#flashing-the-application)
@@ -21,13 +21,13 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
## Introduction
-The P6 lighting example provides a baseline demonstration of a Light control
+The PSoC6 lighting example provides a baseline demonstration of a Light control
device, built using Matter and the Infineon Modustoolbox SDK. It can be
controlled by Matter controller over Wi-Fi network.
-The P6 device can be commissioned over Bluetooth Low Energy where the device and
-the Matter controller will exchange security information with the Rendezvous
-procedure. Wi-Fi Network credentials are then provided to the P6 device which
+The PSoC6 device can be commissioned over Bluetooth Low Energy where the device
+and the Matter controller will exchange security information with the Rendezvous
+procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which
will then join the network.
@@ -37,8 +37,8 @@ will then join the network.
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
- `scripts/examples/gn_p6_example.sh` for downloading the Software and related
- tools.
+ `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
+ related tools.
- Install some additional tools (likely already present for Matter
developers): \$ sudo apt install gcc g++ clang ninja-build python
@@ -51,7 +51,7 @@ will then join the network.
* Build the example application:
$ source scripts/activate.sh
- $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-light' build
+ $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-psoc6-light' build
- To delete generated executable, libraries and object files use:
@@ -69,7 +69,7 @@ will then join the network.
- On the command line:
$ cd ~/connectedhomeip
- $ python3 out/infineon-p6-light/chip-p6-lighting-example.flash.py
+ $ python3 out/infineon-psoc6-light/chip-psoc6-lighting-example.flash.py
@@ -81,7 +81,7 @@ Commissioning can be carried out using BLE.
### Setting up Chip tool
-Once P6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
+Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
perform commissioning and cluster control.
- Set up python controller.
@@ -139,6 +139,6 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
## OTA Software Update
-For the description of Software Update process with infineon P6 example
+For the description of Software Update process with infineon PSoC6 example
applications see
-[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md)
+[Infineon PSoC6 OTA Software Update](../../../../docs/guides/infineon_psoc6_software_update.md)
diff --git a/examples/lighting-app/p6/args.gni b/examples/lighting-app/infineon/psoc6/args.gni
similarity index 89%
rename from examples/lighting-app/p6/args.gni
rename to examples/lighting-app/infineon/psoc6/args.gni
index f239efee01e5da..9ca701ab363c9f 100644
--- a/examples/lighting-app/p6/args.gni
+++ b/examples/lighting-app/infineon/psoc6/args.gni
@@ -14,7 +14,7 @@
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")
-import("${chip_root}/src/platform/P6/args.gni")
+import("${chip_root}/src/platform/Infineon/PSOC6/args.gni")
-p6_target_project =
+psoc6_target_project =
get_label_info(":lighting_app_sdk_sources", "label_no_toolchain")
diff --git a/examples/lighting-app/infineon/psoc6/build_overrides b/examples/lighting-app/infineon/psoc6/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/lighting-app/infineon/psoc6/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/lighting-app/p6/include/AppConfig.h b/examples/lighting-app/infineon/psoc6/include/AppConfig.h
similarity index 100%
rename from examples/lighting-app/p6/include/AppConfig.h
rename to examples/lighting-app/infineon/psoc6/include/AppConfig.h
diff --git a/examples/lighting-app/p6/include/AppEvent.h b/examples/lighting-app/infineon/psoc6/include/AppEvent.h
similarity index 100%
rename from examples/lighting-app/p6/include/AppEvent.h
rename to examples/lighting-app/infineon/psoc6/include/AppEvent.h
diff --git a/examples/lighting-app/p6/include/AppTask.h b/examples/lighting-app/infineon/psoc6/include/AppTask.h
similarity index 100%
rename from examples/lighting-app/p6/include/AppTask.h
rename to examples/lighting-app/infineon/psoc6/include/AppTask.h
diff --git a/examples/lighting-app/p6/include/ButtonHandler.h b/examples/lighting-app/infineon/psoc6/include/ButtonHandler.h
similarity index 100%
rename from examples/lighting-app/p6/include/ButtonHandler.h
rename to examples/lighting-app/infineon/psoc6/include/ButtonHandler.h
diff --git a/examples/lighting-app/p6/include/CHIPProjectConfig.h b/examples/lighting-app/infineon/psoc6/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/lighting-app/p6/include/CHIPProjectConfig.h
rename to examples/lighting-app/infineon/psoc6/include/CHIPProjectConfig.h
diff --git a/examples/lighting-app/p6/include/LightingManager.h b/examples/lighting-app/infineon/psoc6/include/LightingManager.h
similarity index 100%
rename from examples/lighting-app/p6/include/LightingManager.h
rename to examples/lighting-app/infineon/psoc6/include/LightingManager.h
diff --git a/examples/lighting-app/p6/src/AppTask.cpp b/examples/lighting-app/infineon/psoc6/src/AppTask.cpp
similarity index 99%
rename from examples/lighting-app/p6/src/AppTask.cpp
rename to examples/lighting-app/infineon/psoc6/src/AppTask.cpp
index 08f9b76a1a3f8f..2ee2baf54bcde8 100644
--- a/examples/lighting-app/p6/src/AppTask.cpp
+++ b/examples/lighting-app/infineon/psoc6/src/AppTask.cpp
@@ -40,7 +40,7 @@
#include
#include
-#include
+#include
/* OTA related includes */
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
@@ -48,7 +48,7 @@
#include
#include
#include
-#include
+#include
using chip::BDXDownloader;
using chip::CharSpan;
diff --git a/examples/lighting-app/p6/src/ButtonHandler.cpp b/examples/lighting-app/infineon/psoc6/src/ButtonHandler.cpp
similarity index 100%
rename from examples/lighting-app/p6/src/ButtonHandler.cpp
rename to examples/lighting-app/infineon/psoc6/src/ButtonHandler.cpp
diff --git a/examples/lighting-app/p6/src/LightingManager.cpp b/examples/lighting-app/infineon/psoc6/src/LightingManager.cpp
similarity index 100%
rename from examples/lighting-app/p6/src/LightingManager.cpp
rename to examples/lighting-app/infineon/psoc6/src/LightingManager.cpp
diff --git a/examples/lighting-app/p6/src/ZclCallbacks.cpp b/examples/lighting-app/infineon/psoc6/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/lighting-app/p6/src/ZclCallbacks.cpp
rename to examples/lighting-app/infineon/psoc6/src/ZclCallbacks.cpp
diff --git a/examples/lighting-app/p6/src/main.cpp b/examples/lighting-app/infineon/psoc6/src/main.cpp
similarity index 99%
rename from examples/lighting-app/p6/src/main.cpp
rename to examples/lighting-app/infineon/psoc6/src/main.cpp
index 9c5daa77856b60..a2dcdae1cc63f1 100644
--- a/examples/lighting-app/p6/src/main.cpp
+++ b/examples/lighting-app/infineon/psoc6/src/main.cpp
@@ -35,7 +35,7 @@
#include "AppConfig.h"
#include "cyhal_wdt.h"
-#include "init_p6Platform.h"
+#include "init_psoc6Platform.h"
#include
#ifdef HEAP_MONITORING
diff --git a/examples/lighting-app/infineon/psoc6/third_party/connectedhomeip b/examples/lighting-app/infineon/psoc6/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/lighting-app/infineon/psoc6/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/lighting-app/p6/build_overrides b/examples/lighting-app/p6/build_overrides
deleted file mode 120000
index e578e73312ebd1..00000000000000
--- a/examples/lighting-app/p6/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides
\ No newline at end of file
diff --git a/examples/lighting-app/p6/third_party/connectedhomeip b/examples/lighting-app/p6/third_party/connectedhomeip
deleted file mode 120000
index c866b86874994d..00000000000000
--- a/examples/lighting-app/p6/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../..
\ No newline at end of file
diff --git a/examples/lock-app/cyw30739/build_overrides b/examples/lock-app/cyw30739/build_overrides
deleted file mode 120000
index e578e73312ebd1..00000000000000
--- a/examples/lock-app/cyw30739/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides
\ No newline at end of file
diff --git a/examples/lock-app/cyw30739/third_party/connectedhomeip b/examples/lock-app/cyw30739/third_party/connectedhomeip
deleted file mode 120000
index c866b86874994d..00000000000000
--- a/examples/lock-app/cyw30739/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../..
\ No newline at end of file
diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn
index c98bebfed6d942..2f8f2dc6bf67b4 100644
--- a/examples/lock-app/efr32/BUILD.gn
+++ b/examples/lock-app/efr32/BUILD.gn
@@ -202,6 +202,7 @@ efr32_executable("lock_app") {
if (chip_enable_openthread) {
deps += [
"${chip_root}/third_party/openthread:openthread",
+ "${chip_root}/third_party/openthread:openthread_device",
"${examples_plat_dir}:efr-matter-shell",
]
}
@@ -250,8 +251,15 @@ efr32_executable("lock_app") {
}
if (!disable_lcd) {
- sources += [ "${examples_plat_dir}/display/lcd.c" ]
- defines += [ "DISPLAY_ENABLED" ]
+ sources += [
+ "${examples_plat_dir}/display/demo-ui.c",
+ "${examples_plat_dir}/display/lcd.cpp",
+ ]
+ include_dirs += [ "${examples_plat_dir}/display" ]
+ defines += [
+ "DISPLAY_ENABLED",
+ "IS_DEMO_LOCK=1",
+ ]
if (show_qr_code) {
defines += [ "QR_CODE_ENABLED" ]
deps += [ "${chip_root}/examples/common/QRCode" ]
diff --git a/examples/lock-app/efr32/src/AppTask.cpp b/examples/lock-app/efr32/src/AppTask.cpp
index 8b72c5aac4a28f..33a331c752920b 100644
--- a/examples/lock-app/efr32/src/AppTask.cpp
+++ b/examples/lock-app/efr32/src/AppTask.cpp
@@ -142,6 +142,10 @@ CHIP_ERROR AppTask::Init()
{
CHIP_ERROR err = CHIP_NO_ERROR;
+#ifdef DISPLAY_ENABLED
+ GetLCD().Init((uint8_t *) "Lock-App", true);
+#endif
+
err = BaseApplication::Init(&gIdentify);
if (err != CHIP_NO_ERROR)
{
@@ -354,16 +358,14 @@ void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAc
void AppTask::ActionInitiated(LockManager::Action_t aAction, int32_t aActor)
{
- // Action initiated, update the light led
- if (aAction == LockManager::LOCK_ACTION)
+ if (aAction == LockManager::UNLOCK_ACTION || aAction == LockManager::LOCK_ACTION)
{
- EFR32_LOG("Lock Action has been initiated")
- sLockLED.Set(false);
- }
- else if (aAction == LockManager::UNLOCK_ACTION)
- {
- EFR32_LOG("Unlock Action has been initiated")
- sLockLED.Set(true);
+ bool locked = (aAction == LockManager::LOCK_ACTION);
+ EFR32_LOG("%s Action has been initiated", (locked) ? "Lock" : "Unlock");
+ sLockLED.Set(!locked);
+#ifdef DISPLAY_ENABLED
+ sAppTask.GetLCD().WriteDemoUI(locked);
+#endif
}
if (aActor == AppEvent::kEventType_Button)
diff --git a/examples/lock-app/cyw30739/.gn b/examples/lock-app/infineon/cyw30739/.gn
similarity index 100%
rename from examples/lock-app/cyw30739/.gn
rename to examples/lock-app/infineon/cyw30739/.gn
diff --git a/examples/lock-app/cyw30739/BUILD.gn b/examples/lock-app/infineon/cyw30739/BUILD.gn
similarity index 93%
rename from examples/lock-app/cyw30739/BUILD.gn
rename to examples/lock-app/infineon/cyw30739/BUILD.gn
index 87f0e15e92bff3..8d0cc6333d32d9 100644
--- a/examples/lock-app/cyw30739/BUILD.gn
+++ b/examples/lock-app/infineon/cyw30739/BUILD.gn
@@ -19,8 +19,8 @@ import("//build_overrides/cyw30739_sdk.gni")
import("${cyw30739_sdk_build_root}/cyw30739_executable.gni")
import("${cyw30739_sdk_build_root}/cyw30739_sdk.gni")
-cyw30739_project_dir = "${chip_root}/examples/lock-app/cyw30739"
-examples_plat_dir = "${chip_root}/examples/platform/cyw30739"
+cyw30739_project_dir = "${chip_root}/examples/lock-app/infineon/cyw30739"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/cyw30739"
declare_args() {
setupPinCode = 20202021
diff --git a/examples/lock-app/cyw30739/README.md b/examples/lock-app/infineon/cyw30739/README.md
similarity index 92%
rename from examples/lock-app/cyw30739/README.md
rename to examples/lock-app/infineon/cyw30739/README.md
index 41a6a23598d3df..12ac917071ce55 100644
--- a/examples/lock-app/cyw30739/README.md
+++ b/examples/lock-app/infineon/cyw30739/README.md
@@ -32,7 +32,7 @@ dataset and CASE credentials are then provided.
```bash
$ cd ~/connectedhomeip
$ git submodule update --init
- $ ./scripts/examples/gn_build_example.sh examples/lock-app/cyw30739 out/lock-app
+ $ ./scripts/examples/gn_build_example.sh examples/lock-app/infineon/cyw30739 out/lock-app
```
- To delete generated executable, libraries and object files use:
@@ -45,7 +45,7 @@ dataset and CASE credentials are then provided.
- OR use GN/Ninja directly
```bash
- $ cd ~/connectedhomeip/examples/lock-app/cyw30739
+ $ cd ~/connectedhomeip/examples/lock-app/infineon/cyw30739
$ git submodule update --init
$ source third_party/connectedhomeip/scripts/activate.sh
$ gn gen out/debug
@@ -55,7 +55,7 @@ dataset and CASE credentials are then provided.
- To delete generated executable, libraries and object files use:
```bash
- $ cd ~/connectedhomeip/examples/lock-app/cyw30739
+ $ cd ~/connectedhomeip/examples/lock-app/infineon/cyw30739
$ rm -rf out/
```
@@ -75,7 +75,7 @@ Put the CYW30739 in to the recovery mode before running the flash script.
- On the command line:
```bash
- $ cd ~/connectedhomeip/examples/lock-app/cyw30739
+ $ cd ~/connectedhomeip/examples/lock-app/infineon/cyw30739
$ python3 out/debug/chip-cyw30739-lock-example.flash.py
```
diff --git a/examples/lighting-app/cyw30739/args.gni b/examples/lock-app/infineon/cyw30739/args.gni
similarity index 93%
rename from examples/lighting-app/cyw30739/args.gni
rename to examples/lock-app/infineon/cyw30739/args.gni
index 267c1db9b56817..ff653ee769356a 100644
--- a/examples/lighting-app/cyw30739/args.gni
+++ b/examples/lock-app/infineon/cyw30739/args.gni
@@ -13,7 +13,7 @@
# limitations under the License.
import("//build_overrides/chip.gni")
-import("${chip_root}/src/platform/CYW30739/args.gni")
+import("${chip_root}/src/platform/Infineon/CYW30739/args.gni")
cyw30739_sdk_target = get_label_info(":sdk", "label_no_toolchain")
diff --git a/examples/lock-app/infineon/cyw30739/build_overrides b/examples/lock-app/infineon/cyw30739/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/lock-app/infineon/cyw30739/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/lock-app/cyw30739/include/AppEvent.h b/examples/lock-app/infineon/cyw30739/include/AppEvent.h
similarity index 100%
rename from examples/lock-app/cyw30739/include/AppEvent.h
rename to examples/lock-app/infineon/cyw30739/include/AppEvent.h
diff --git a/examples/lock-app/cyw30739/include/AppShellCommands.h b/examples/lock-app/infineon/cyw30739/include/AppShellCommands.h
similarity index 100%
rename from examples/lock-app/cyw30739/include/AppShellCommands.h
rename to examples/lock-app/infineon/cyw30739/include/AppShellCommands.h
diff --git a/examples/lock-app/cyw30739/include/ButtonHandler.h b/examples/lock-app/infineon/cyw30739/include/ButtonHandler.h
similarity index 100%
rename from examples/lock-app/cyw30739/include/ButtonHandler.h
rename to examples/lock-app/infineon/cyw30739/include/ButtonHandler.h
diff --git a/examples/lock-app/cyw30739/include/CHIPProjectConfig.h b/examples/lock-app/infineon/cyw30739/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/lock-app/cyw30739/include/CHIPProjectConfig.h
rename to examples/lock-app/infineon/cyw30739/include/CHIPProjectConfig.h
diff --git a/examples/lock-app/cyw30739/include/LockManager.h b/examples/lock-app/infineon/cyw30739/include/LockManager.h
similarity index 100%
rename from examples/lock-app/cyw30739/include/LockManager.h
rename to examples/lock-app/infineon/cyw30739/include/LockManager.h
diff --git a/examples/lock-app/cyw30739/include/chip_lock.h b/examples/lock-app/infineon/cyw30739/include/chip_lock.h
similarity index 100%
rename from examples/lock-app/cyw30739/include/chip_lock.h
rename to examples/lock-app/infineon/cyw30739/include/chip_lock.h
diff --git a/examples/lock-app/cyw30739/src/AppShellCommands.cpp b/examples/lock-app/infineon/cyw30739/src/AppShellCommands.cpp
similarity index 100%
rename from examples/lock-app/cyw30739/src/AppShellCommands.cpp
rename to examples/lock-app/infineon/cyw30739/src/AppShellCommands.cpp
diff --git a/examples/lock-app/cyw30739/src/ButtonHandler.cpp b/examples/lock-app/infineon/cyw30739/src/ButtonHandler.cpp
similarity index 100%
rename from examples/lock-app/cyw30739/src/ButtonHandler.cpp
rename to examples/lock-app/infineon/cyw30739/src/ButtonHandler.cpp
diff --git a/examples/lock-app/cyw30739/src/LockManager.cpp b/examples/lock-app/infineon/cyw30739/src/LockManager.cpp
similarity index 100%
rename from examples/lock-app/cyw30739/src/LockManager.cpp
rename to examples/lock-app/infineon/cyw30739/src/LockManager.cpp
diff --git a/examples/lock-app/cyw30739/src/ZclCallbacks.cpp b/examples/lock-app/infineon/cyw30739/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/lock-app/cyw30739/src/ZclCallbacks.cpp
rename to examples/lock-app/infineon/cyw30739/src/ZclCallbacks.cpp
diff --git a/examples/lock-app/cyw30739/src/main.cpp b/examples/lock-app/infineon/cyw30739/src/main.cpp
similarity index 100%
rename from examples/lock-app/cyw30739/src/main.cpp
rename to examples/lock-app/infineon/cyw30739/src/main.cpp
diff --git a/examples/lock-app/cyw30739/static_config.txt b/examples/lock-app/infineon/cyw30739/static_config.txt
similarity index 100%
rename from examples/lock-app/cyw30739/static_config.txt
rename to examples/lock-app/infineon/cyw30739/static_config.txt
diff --git a/examples/lock-app/infineon/cyw30739/third_party/connectedhomeip b/examples/lock-app/infineon/cyw30739/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/lock-app/infineon/cyw30739/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/lock-app/p6/.gn b/examples/lock-app/infineon/psoc6/.gn
similarity index 100%
rename from examples/lock-app/p6/.gn
rename to examples/lock-app/infineon/psoc6/.gn
diff --git a/examples/lock-app/p6/BUILD.gn b/examples/lock-app/infineon/psoc6/BUILD.gn
similarity index 75%
rename from examples/lock-app/p6/BUILD.gn
rename to examples/lock-app/infineon/psoc6/BUILD.gn
index b0db8078d672b5..83823b18d0eaff 100644
--- a/examples/lock-app/p6/BUILD.gn
+++ b/examples/lock-app/infineon/psoc6/BUILD.gn
@@ -14,17 +14,17 @@
import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
+import("//build_overrides/psoc6.gni")
import("${build_root}/config/defaults.gni")
import("${chip_root}/src/platform/device.gni")
-import("${p6_sdk_build_root}/p6_executable.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
+import("${psoc6_sdk_build_root}/psoc6_executable.gni")
+import("${psoc6_sdk_build_root}/psoc6_sdk.gni")
assert(current_os == "freertos")
-p6_project_dir = "${chip_root}/examples/lock-app/p6"
-examples_plat_dir = "${chip_root}/examples/platform/p6"
+psoc6_project_dir = "${chip_root}/examples/lock-app/infineon/psoc6"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/psoc6"
declare_args() {
# Dump memory usage at link time.
@@ -37,8 +37,8 @@ declare_args() {
build_update_image = false
}
-config("p6_ota_config") {
- linker_script = "${p6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
+config("psoc6_ota_config") {
+ linker_script = "${psoc6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
ldflags = [ "-T" + rebase_path(linker_script, root_build_dir) ]
@@ -74,32 +74,33 @@ config("p6_ota_config") {
defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ]
}
}
-p6_sdk_sources("lock_app_sdk_sources") {
+psoc6_sdk_sources("lock_app_sdk_sources") {
include_dirs = [
- "${chip_root}/src/platform/P6",
- "${p6_project_dir}/include",
+ "${chip_root}/src/platform/PSOC6",
+ "${psoc6_project_dir}/include",
"${examples_plat_dir}",
]
defines = [
- "BOARD_ID=${p6_board}",
+ "BOARD_ID=${psoc6_board}",
"P6_LOG_ENABLED=1",
"CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setup_pin_code}",
]
- sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ]
+ sources = [ "${psoc6_project_dir}/include/CHIPProjectConfig.h" ]
- public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
+ public_configs =
+ [ "${chip_root}/third_party/infineon/psoc6:psoc6_sdk_config" ]
if (chip_enable_ota_requestor) {
- public_configs += [ ":p6_ota_config" ]
+ public_configs += [ ":psoc6_ota_config" ]
}
}
-p6_executable("lock_app") {
+psoc6_executable("lock_app") {
include_dirs = []
defines = []
- output_name = "chip-p6-lock-example.out"
+ output_name = "chip-psoc6-lock-example.out"
public_deps = [
":lock_app_sdk_sources",
@@ -113,13 +114,13 @@ p6_executable("lock_app") {
include_dirs += [
"include",
"${examples_plat_dir}",
- "${p6_project_dir}/include",
+ "${psoc6_project_dir}/include",
]
sources = [
"${examples_plat_dir}/LEDWidget.cpp",
- "${examples_plat_dir}/init_p6Platform.cpp",
- "${p6_project_dir}/include/CHIPProjectConfig.h",
+ "${examples_plat_dir}/init_psoc6Platform.cpp",
+ "${psoc6_project_dir}/include/CHIPProjectConfig.h",
"src/AppTask.cpp",
"src/ButtonHandler.cpp",
"src/LockManager.cpp",
@@ -137,10 +138,10 @@ p6_executable("lock_app") {
}
}
-group("p6") {
+group("psoc6") {
deps = [ ":lock_app" ]
}
group("default") {
- deps = [ ":p6" ]
+ deps = [ ":psoc6" ]
}
diff --git a/examples/lock-app/p6/README.md b/examples/lock-app/infineon/psoc6/README.md
similarity index 81%
rename from examples/lock-app/p6/README.md
rename to examples/lock-app/infineon/psoc6/README.md
index 345782204802df..5046ce5c0343c7 100644
--- a/examples/lock-app/p6/README.md
+++ b/examples/lock-app/infineon/psoc6/README.md
@@ -1,10 +1,10 @@
-# Matter P6 Lock Example
+# Matter PSoC6 Lock Example
An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter P6 Lock Example](#chip-p6-lock-example)
+- [Matter PSoC6 Lock Example](#chip-psoc6-lock-example)
- [Introduction](#introduction)
- [Building](#building)
- [Flashing the Application](#flashing-the-application)
@@ -21,13 +21,13 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
## Introduction
-The P6 lock example provides a demonstration of a door lock control device,
+The PSoC6 lock example provides a demonstration of a door lock control device,
built using Matter and the Infineon Modustoolbox SDK. It can be controlled by a
Matter controller over Wi-Fi network.
-The P6 device can be commissioned over Bluetooth Low Energy where the device and
-the Matter controller will exchange security information with the Rendezvous
-procedure. Wi-Fi Network credentials are then provided to the P6 device which
+The PSoC6 device can be commissioned over Bluetooth Low Energy where the device
+and the Matter controller will exchange security information with the Rendezvous
+procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which
will then join the network.
@@ -37,8 +37,8 @@ will then join the network.
- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
- `scripts/examples/gn_p6_example.sh` for downloading the Software and related
- tools.
+ `scripts/examples/gn_psoc6_example.sh` for downloading the Software and
+ related tools.
- Install some additional tools (likely already present for Matter
developers): \$ sudo apt install gcc g++ clang ninja-build python
@@ -51,7 +51,7 @@ will then join the network.
* Build the example application:
$ source scripts/activate.sh
- $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-lock' build
+ $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-psoc6-lock' build
- To delete generated executable, libraries and object files use:
@@ -69,7 +69,7 @@ will then join the network.
- On the command line:
$ cd ~/connectedhomeip
- $ python3 out/infineon-p6-lock/chip-p6-lock-example.flash.py
+ $ python3 out/infineon-psoc6-lock/chip-psoc6-lock-example.flash.py
@@ -81,7 +81,7 @@ Commissioning can be carried out using BLE.
### Setting up Chip tool
-Once P6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
+Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to
perform commissioning and cluster control.
- Set up python controller.
@@ -139,6 +139,6 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
## OTA Software Update
-For the description of Software Update process with infineon P6 example
+For the description of Software Update process with infineon PSoC6 example
applications see
-[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md)
+[Infineon PSoC6 OTA Software Update](../../../docs/guides/infineon_psoc6_software_update.md)
diff --git a/examples/lock-app/p6/args.gni b/examples/lock-app/infineon/psoc6/args.gni
similarity index 89%
rename from examples/lock-app/p6/args.gni
rename to examples/lock-app/infineon/psoc6/args.gni
index a83cf1abdcb38e..62bdc6d3f6908c 100644
--- a/examples/lock-app/p6/args.gni
+++ b/examples/lock-app/infineon/psoc6/args.gni
@@ -14,7 +14,7 @@
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")
-import("${chip_root}/src/platform/P6/args.gni")
+import("${chip_root}/src/platform/Infineon/PSOC6/args.gni")
-p6_target_project =
+psoc6_target_project =
get_label_info(":lock_app_sdk_sources", "label_no_toolchain")
diff --git a/examples/lock-app/infineon/psoc6/build_overrides b/examples/lock-app/infineon/psoc6/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/lock-app/infineon/psoc6/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/lock-app/p6/include/AppConfig.h b/examples/lock-app/infineon/psoc6/include/AppConfig.h
similarity index 100%
rename from examples/lock-app/p6/include/AppConfig.h
rename to examples/lock-app/infineon/psoc6/include/AppConfig.h
diff --git a/examples/lock-app/p6/include/AppEvent.h b/examples/lock-app/infineon/psoc6/include/AppEvent.h
similarity index 100%
rename from examples/lock-app/p6/include/AppEvent.h
rename to examples/lock-app/infineon/psoc6/include/AppEvent.h
diff --git a/examples/lock-app/p6/include/AppTask.h b/examples/lock-app/infineon/psoc6/include/AppTask.h
similarity index 100%
rename from examples/lock-app/p6/include/AppTask.h
rename to examples/lock-app/infineon/psoc6/include/AppTask.h
diff --git a/examples/lock-app/p6/include/ButtonHandler.h b/examples/lock-app/infineon/psoc6/include/ButtonHandler.h
similarity index 100%
rename from examples/lock-app/p6/include/ButtonHandler.h
rename to examples/lock-app/infineon/psoc6/include/ButtonHandler.h
diff --git a/examples/lock-app/p6/include/CHIPProjectConfig.h b/examples/lock-app/infineon/psoc6/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/lock-app/p6/include/CHIPProjectConfig.h
rename to examples/lock-app/infineon/psoc6/include/CHIPProjectConfig.h
diff --git a/examples/lock-app/p6/include/LockManager.h b/examples/lock-app/infineon/psoc6/include/LockManager.h
similarity index 100%
rename from examples/lock-app/p6/include/LockManager.h
rename to examples/lock-app/infineon/psoc6/include/LockManager.h
diff --git a/examples/lock-app/p6/src/AppTask.cpp b/examples/lock-app/infineon/psoc6/src/AppTask.cpp
similarity index 99%
rename from examples/lock-app/p6/src/AppTask.cpp
rename to examples/lock-app/infineon/psoc6/src/AppTask.cpp
index f93438d47cbbf5..fe4baf6eb3f752 100644
--- a/examples/lock-app/p6/src/AppTask.cpp
+++ b/examples/lock-app/infineon/psoc6/src/AppTask.cpp
@@ -44,7 +44,7 @@
#include
#include
-#include
+#include
#include
#include
@@ -56,7 +56,7 @@
#include
#include
#include
-#include
+#include
using chip::BDXDownloader;
using chip::CharSpan;
diff --git a/examples/lock-app/p6/src/ButtonHandler.cpp b/examples/lock-app/infineon/psoc6/src/ButtonHandler.cpp
similarity index 100%
rename from examples/lock-app/p6/src/ButtonHandler.cpp
rename to examples/lock-app/infineon/psoc6/src/ButtonHandler.cpp
diff --git a/examples/lock-app/p6/src/LockManager.cpp b/examples/lock-app/infineon/psoc6/src/LockManager.cpp
similarity index 99%
rename from examples/lock-app/p6/src/LockManager.cpp
rename to examples/lock-app/infineon/psoc6/src/LockManager.cpp
index d83b984b789779..059f059f3735eb 100644
--- a/examples/lock-app/p6/src/LockManager.cpp
+++ b/examples/lock-app/infineon/psoc6/src/LockManager.cpp
@@ -25,7 +25,7 @@
#include
#include
#include
-#include
+#include
LockManager LockManager::sLock;
diff --git a/examples/lock-app/p6/src/ZclCallbacks.cpp b/examples/lock-app/infineon/psoc6/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/lock-app/p6/src/ZclCallbacks.cpp
rename to examples/lock-app/infineon/psoc6/src/ZclCallbacks.cpp
diff --git a/examples/lock-app/p6/src/main.cpp b/examples/lock-app/infineon/psoc6/src/main.cpp
similarity index 99%
rename from examples/lock-app/p6/src/main.cpp
rename to examples/lock-app/infineon/psoc6/src/main.cpp
index f998b3c4e54f54..8dc525dc8d717f 100644
--- a/examples/lock-app/p6/src/main.cpp
+++ b/examples/lock-app/infineon/psoc6/src/main.cpp
@@ -35,7 +35,7 @@
#include "AppConfig.h"
#include "cyhal_wdt.h"
-#include "init_p6Platform.h"
+#include "init_psoc6Platform.h"
#include
#define MAIN_TASK_STACK_SIZE (4096)
diff --git a/examples/lock-app/infineon/psoc6/third_party/connectedhomeip b/examples/lock-app/infineon/psoc6/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/lock-app/infineon/psoc6/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/lock-app/p6/build_overrides b/examples/lock-app/p6/build_overrides
deleted file mode 120000
index 194ee0b812dc3d..00000000000000
--- a/examples/lock-app/p6/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides/
\ No newline at end of file
diff --git a/examples/lock-app/p6/third_party/connectedhomeip b/examples/lock-app/p6/third_party/connectedhomeip
deleted file mode 120000
index 11a54ed360106c..00000000000000
--- a/examples/lock-app/p6/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../
\ No newline at end of file
diff --git a/examples/ota-requestor-app/cyw30739/build_overrides b/examples/ota-requestor-app/cyw30739/build_overrides
deleted file mode 120000
index e578e73312ebd1..00000000000000
--- a/examples/ota-requestor-app/cyw30739/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides
\ No newline at end of file
diff --git a/examples/ota-requestor-app/cyw30739/third_party/connectedhomeip b/examples/ota-requestor-app/cyw30739/third_party/connectedhomeip
deleted file mode 120000
index c866b86874994d..00000000000000
--- a/examples/ota-requestor-app/cyw30739/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../..
\ No newline at end of file
diff --git a/examples/ota-requestor-app/cyw30739/.gn b/examples/ota-requestor-app/infineon/cyw30739/.gn
similarity index 100%
rename from examples/ota-requestor-app/cyw30739/.gn
rename to examples/ota-requestor-app/infineon/cyw30739/.gn
diff --git a/examples/ota-requestor-app/cyw30739/BUILD.gn b/examples/ota-requestor-app/infineon/cyw30739/BUILD.gn
similarity index 92%
rename from examples/ota-requestor-app/cyw30739/BUILD.gn
rename to examples/ota-requestor-app/infineon/cyw30739/BUILD.gn
index b1ea6fde6aa876..3701330b0f7113 100644
--- a/examples/ota-requestor-app/cyw30739/BUILD.gn
+++ b/examples/ota-requestor-app/infineon/cyw30739/BUILD.gn
@@ -19,8 +19,9 @@ import("//build_overrides/cyw30739_sdk.gni")
import("${cyw30739_sdk_build_root}/cyw30739_executable.gni")
import("${cyw30739_sdk_build_root}/cyw30739_sdk.gni")
-cyw30739_project_dir = "${chip_root}/examples/ota-requestor-app/cyw30739"
-examples_plat_dir = "${chip_root}/examples/platform/cyw30739"
+cyw30739_project_dir =
+ "${chip_root}/examples/ota-requestor-app/infineon/cyw30739"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/cyw30739"
declare_args() {
setupPinCode = 20202021
diff --git a/examples/ota-requestor-app/cyw30739/README.md b/examples/ota-requestor-app/infineon/cyw30739/README.md
similarity index 93%
rename from examples/ota-requestor-app/cyw30739/README.md
rename to examples/ota-requestor-app/infineon/cyw30739/README.md
index 49737cd4f270fc..7ac0990009fbcd 100644
--- a/examples/ota-requestor-app/cyw30739/README.md
+++ b/examples/ota-requestor-app/infineon/cyw30739/README.md
@@ -33,7 +33,7 @@ dataset and CASE credentials are then provided.
```bash
$ cd ~/connectedhomeip
$ git submodule update --init
- $ ./scripts/examples/gn_build_example.sh examples/ota-requestor-app/cyw30739 out/ota-requestor-app
+ $ ./scripts/examples/gn_build_example.sh examples/ota-requestor-app/infineon/cyw30739 out/ota-requestor-app
```
- To delete generated executable, libraries and object files use:
@@ -46,7 +46,7 @@ dataset and CASE credentials are then provided.
- OR use GN/Ninja directly
```bash
- $ cd ~/connectedhomeip/examples/ota-requestor-app/cyw30739
+ $ cd ~/connectedhomeip/examples/ota-requestor-app/infineon/cyw30739
$ git submodule update --init
$ source third_party/connectedhomeip/scripts/activate.sh
$ gn gen out/debug
@@ -56,7 +56,7 @@ dataset and CASE credentials are then provided.
- To delete generated executable, libraries and object files use:
```bash
- $ cd ~/connectedhomeip/examples/ota-requestor-app/cyw30739
+ $ cd ~/connectedhomeip/examples/ota-requestor-app/infineon/cyw30739
$ rm -rf out/
```
@@ -76,7 +76,7 @@ Put the CYW30739 in to the recovery mode before running the flash script.
- On the command line:
```bash
- $ cd ~/connectedhomeip/examples/ota-requestor-app/cyw30739
+ $ cd ~/connectedhomeip/examples/ota-requestor-app/infineon/cyw30739
$ python3 out/debug/chip-cyw30739-ota-requestor-example.flash.py
```
diff --git a/examples/ota-requestor-app/cyw30739/args.gni b/examples/ota-requestor-app/infineon/cyw30739/args.gni
similarity index 92%
rename from examples/ota-requestor-app/cyw30739/args.gni
rename to examples/ota-requestor-app/infineon/cyw30739/args.gni
index 8eda8fb616b4aa..37d8fa8d701fb9 100644
--- a/examples/ota-requestor-app/cyw30739/args.gni
+++ b/examples/ota-requestor-app/infineon/cyw30739/args.gni
@@ -13,7 +13,7 @@
# limitations under the License.
import("//build_overrides/chip.gni")
-import("${chip_root}/src/platform/CYW30739/args.gni")
+import("${chip_root}/src/platform/Infineon/CYW30739/args.gni")
cyw30739_sdk_target = get_label_info(":sdk", "label_no_toolchain")
diff --git a/examples/ota-requestor-app/infineon/cyw30739/build_overrides b/examples/ota-requestor-app/infineon/cyw30739/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/ota-requestor-app/infineon/cyw30739/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/ota-requestor-app/cyw30739/include/CHIPProjectConfig.h b/examples/ota-requestor-app/infineon/cyw30739/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/ota-requestor-app/cyw30739/include/CHIPProjectConfig.h
rename to examples/ota-requestor-app/infineon/cyw30739/include/CHIPProjectConfig.h
diff --git a/examples/ota-requestor-app/cyw30739/src/main.cpp b/examples/ota-requestor-app/infineon/cyw30739/src/main.cpp
similarity index 100%
rename from examples/ota-requestor-app/cyw30739/src/main.cpp
rename to examples/ota-requestor-app/infineon/cyw30739/src/main.cpp
diff --git a/examples/ota-requestor-app/cyw30739/static_config.txt b/examples/ota-requestor-app/infineon/cyw30739/static_config.txt
similarity index 100%
rename from examples/ota-requestor-app/cyw30739/static_config.txt
rename to examples/ota-requestor-app/infineon/cyw30739/static_config.txt
diff --git a/examples/ota-requestor-app/infineon/cyw30739/third_party/connectedhomeip b/examples/ota-requestor-app/infineon/cyw30739/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/ota-requestor-app/infineon/cyw30739/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/persistent-storage/p6/.gn b/examples/persistent-storage/infineon/psoc6/.gn
similarity index 100%
rename from examples/persistent-storage/p6/.gn
rename to examples/persistent-storage/infineon/psoc6/.gn
diff --git a/examples/persistent-storage/p6/BUILD.gn b/examples/persistent-storage/infineon/psoc6/BUILD.gn
similarity index 63%
rename from examples/persistent-storage/p6/BUILD.gn
rename to examples/persistent-storage/infineon/psoc6/BUILD.gn
index 944a2e07178056..d359f833815136 100644
--- a/examples/persistent-storage/p6/BUILD.gn
+++ b/examples/persistent-storage/infineon/psoc6/BUILD.gn
@@ -14,43 +14,44 @@
import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
+import("//build_overrides/psoc6.gni")
import("${build_root}/config/defaults.gni")
-import("${p6_sdk_build_root}/p6_executable.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
+import("${psoc6_sdk_build_root}/psoc6_executable.gni")
+import("${psoc6_sdk_build_root}/psoc6_sdk.gni")
assert(current_os == "freertos")
-p6_project_dir = "${chip_root}/examples/persistent-storage/p6"
-examples_plat_dir = "${chip_root}/examples/platform/p6"
+psoc6_project_dir = "${chip_root}/examples/persistent-storage/infineon/psoc6"
+examples_plat_dir = "${chip_root}/examples/platform/infineon/psoc6"
declare_args() {
# Dump memory usage at link time.
chip_print_memory_usage = false
}
-p6_sdk_sources("persistent_storage_app_sdk_sources") {
+psoc6_sdk_sources("persistent_storage_app_sdk_sources") {
include_dirs = [
- "${chip_root}/src/platform/P6",
- "${p6_project_dir}/include",
+ "${chip_root}/src/platform/Infineon/PSOC6",
+ "${psoc6_project_dir}/include",
"${examples_plat_dir}",
]
defines = [
- "BOARD_ID=${p6_board}",
+ "BOARD_ID=${psoc6_board}",
"P6_LOG_ENABLED=1",
]
- sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ]
+ sources = [ "${psoc6_project_dir}/include/CHIPProjectConfig.h" ]
- public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
+ public_configs =
+ [ "${chip_root}/third_party/infineon/psoc6:psoc6_sdk_config" ]
}
-p6_executable("persistent_storage_app") {
+psoc6_executable("persistent_storage_app") {
include_dirs = []
defines = []
- output_name = "chip-p6-persistent-storage-example.out"
+ output_name = "chip-psoc6-persistent-storage-example.out"
public_deps = [
":persistent_storage_app_sdk_sources",
@@ -61,14 +62,14 @@ p6_executable("persistent_storage_app") {
include_dirs += [
"include",
"${examples_plat_dir}",
- "${p6_project_dir}/include",
+ "${psoc6_project_dir}/include",
"${chip_root}/examples/persistent-storage",
]
sources = [
"${chip_root}/examples/persistent-storage/KeyValueStorageTest.cpp",
- "${examples_plat_dir}/init_p6Platform.cpp",
- "${p6_project_dir}/include/CHIPProjectConfig.h",
+ "${examples_plat_dir}/init_psoc6Platform.cpp",
+ "${psoc6_project_dir}/include/CHIPProjectConfig.h",
"main.cpp",
]
@@ -82,10 +83,10 @@ p6_executable("persistent_storage_app") {
}
}
-group("p6") {
+group("psoc6") {
deps = [ ":persistent_storage_app" ]
}
group("default") {
- deps = [ ":p6" ]
+ deps = [ ":psoc6" ]
}
diff --git a/examples/persistent-storage/p6/README.md b/examples/persistent-storage/infineon/psoc6/README.md
similarity index 65%
rename from examples/persistent-storage/p6/README.md
rename to examples/persistent-storage/infineon/psoc6/README.md
index 8f30ecab6dbc39..19a32c60c85acf 100644
--- a/examples/persistent-storage/p6/README.md
+++ b/examples/persistent-storage/infineon/psoc6/README.md
@@ -1,12 +1,12 @@
-# CHIP P6 Persistent Storage Example
+# CHIP PSoC6 Persistent Storage Example
An example testing and demonstrating the key value storage API.
-- [CHIP P6 Persistent Storage Example](#chip-P6-persistent-storage-example)
+- [CHIP PSoC6 Persistent Storage Example](#chip-PSoC6-persistent-storage-example)
- [Introduction](#introduction)
- - [P6](#P6)
+ - [PSoC6](#PSoC6)
- [Building](#building)
- [Flashing the Application](#flashing-the-application)
@@ -23,12 +23,12 @@ to use the API.
In the future this example can be moved into a unit test when available on all
platforms.
-
+
-## P6
+## PSoC6
-The P6 platform KVS is fully implemented, the KVS is enabled and configured by
-providing a file during the init call.
+The Infineon PSoC6 platform KVS is fully implemented, the KVS is enabled and
+configured by providing a file during the init call.
@@ -38,7 +38,7 @@ providing a file during the init call.
$ git submodule update --init
$ source third_party/connectedhomeip/scripts/activate.sh
- $ ./scripts/examples/gn_p6_example.sh examples/persistent-storage/p6 out/persistent_storage_app_p6
+ $ ./scripts/examples/gn_psoc6_example.sh examples/persistent-storage/infineon/psoc6 out/persistent_storage_app_psoc6
@@ -51,4 +51,4 @@ providing a file during the init call.
- On the command line:
$ cd ~/connectedhomeip
- $ python3 out/persistent_storage_app_p6/chip-p6-persistent-storage-example.flash.py
+ $ python3 out/persistent_storage_app_psoc6/chip-psoc6-persistent-storage-example.flash.py
diff --git a/examples/persistent-storage/p6/args.gni b/examples/persistent-storage/infineon/psoc6/args.gni
similarity index 89%
rename from examples/persistent-storage/p6/args.gni
rename to examples/persistent-storage/infineon/psoc6/args.gni
index 1c30d812940d3d..0b4443ebd96fcc 100644
--- a/examples/persistent-storage/p6/args.gni
+++ b/examples/persistent-storage/infineon/psoc6/args.gni
@@ -14,7 +14,7 @@
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")
-import("${chip_root}/src/platform/P6/args.gni")
+import("${chip_root}/src/platform/Infineon/PSOC6/args.gni")
-p6_target_project =
+psoc6_target_project =
get_label_info(":persistent_storage_app_sdk_sources", "label_no_toolchain")
diff --git a/examples/persistent-storage/infineon/psoc6/build_overrides b/examples/persistent-storage/infineon/psoc6/build_overrides
new file mode 120000
index 00000000000000..ee19c065d619a2
--- /dev/null
+++ b/examples/persistent-storage/infineon/psoc6/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides/
\ No newline at end of file
diff --git a/examples/persistent-storage/p6/include/AppConfig.h b/examples/persistent-storage/infineon/psoc6/include/AppConfig.h
similarity index 100%
rename from examples/persistent-storage/p6/include/AppConfig.h
rename to examples/persistent-storage/infineon/psoc6/include/AppConfig.h
diff --git a/examples/persistent-storage/p6/include/CHIPProjectConfig.h b/examples/persistent-storage/infineon/psoc6/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/persistent-storage/p6/include/CHIPProjectConfig.h
rename to examples/persistent-storage/infineon/psoc6/include/CHIPProjectConfig.h
diff --git a/examples/persistent-storage/p6/main.cpp b/examples/persistent-storage/infineon/psoc6/main.cpp
similarity index 98%
rename from examples/persistent-storage/p6/main.cpp
rename to examples/persistent-storage/infineon/psoc6/main.cpp
index 03a5132aa73d99..104d63ffea0085 100644
--- a/examples/persistent-storage/p6/main.cpp
+++ b/examples/persistent-storage/infineon/psoc6/main.cpp
@@ -18,7 +18,7 @@
#include "AppConfig.h"
#include "KeyValueStorageTest.h"
-#include "init_p6Platform.h"
+#include "init_psoc6Platform.h"
#include
#include
#include
diff --git a/examples/persistent-storage/infineon/psoc6/third_party/connectedhomeip b/examples/persistent-storage/infineon/psoc6/third_party/connectedhomeip
new file mode 120000
index 00000000000000..3efed95be5dbe9
--- /dev/null
+++ b/examples/persistent-storage/infineon/psoc6/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../../
\ No newline at end of file
diff --git a/examples/persistent-storage/p6/build_overrides b/examples/persistent-storage/p6/build_overrides
deleted file mode 120000
index 194ee0b812dc3d..00000000000000
--- a/examples/persistent-storage/p6/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides/
\ No newline at end of file
diff --git a/examples/persistent-storage/p6/third_party/connectedhomeip b/examples/persistent-storage/p6/third_party/connectedhomeip
deleted file mode 120000
index c866b86874994d..00000000000000
--- a/examples/persistent-storage/p6/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../..
\ No newline at end of file
diff --git a/examples/platform/efr32/BaseApplication.cpp b/examples/platform/efr32/BaseApplication.cpp
index 47dbb9c001361d..66d8cbc0a4efa5 100644
--- a/examples/platform/efr32/BaseApplication.cpp
+++ b/examples/platform/efr32/BaseApplication.cpp
@@ -120,6 +120,10 @@ bool mFunctionTimerActive;
Identify * gIdentifyptr = nullptr;
+#ifdef DISPLAY_ENABLED
+SilabsLCD slLCD;
+#endif
+
} // namespace
/**********************************************************
@@ -214,7 +218,8 @@ CHIP_ERROR BaseApplication::Init(Identify * identifyObj)
if (GetQRCode(QRCode, chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)) == CHIP_NO_ERROR)
{
- LCDWriteQRCode((uint8_t *) QRCode.data());
+ slLCD.SetQRCode((uint8_t *) QRCode.data(), QRCode.size());
+ slLCD.ShowQRCode(true, true);
}
else
{
@@ -386,6 +391,11 @@ void BaseApplication::ButtonHandler(AppEvent * aEvent)
CancelFunctionTimer();
mFunction = kFunction_NoneSelected;
+#ifdef DISPLAY_ENABLED
+ // TOGGLE QRCode/LCD demo UI
+ slLCD.ToggleQRCode();
+#endif
+
#ifdef SL_WIFI
if (!ConnectivityMgr().IsWiFiStationProvisioned())
#else
@@ -469,6 +479,13 @@ void BaseApplication::LightTimerEventHandler(TimerHandle_t xTimer)
LightEventHandler();
}
+#ifdef DISPLAY_ENABLED
+SilabsLCD & BaseApplication::GetLCD(void)
+{
+ return slLCD;
+}
+#endif
+
void BaseApplication::PostEvent(const AppEvent * aEvent)
{
if (sAppEventQueue != NULL)
diff --git a/examples/platform/efr32/BaseApplication.h b/examples/platform/efr32/BaseApplication.h
index 41e2c1dbe64ffd..9c7ef22d8fe7d6 100644
--- a/examples/platform/efr32/BaseApplication.h
+++ b/examples/platform/efr32/BaseApplication.h
@@ -35,6 +35,14 @@
#include
#include
+#ifdef DISPLAY_ENABLED
+#include "demo-ui.h"
+#include "lcd.h"
+#ifdef QR_CODE_ENABLED
+#include "qrcodegen.h"
+#endif // QR_CODE_ENABLED
+#endif // DISPLAY_ENABLED
+
/**********************************************************
* Defines
*********************************************************/
@@ -73,6 +81,13 @@ class BaseApplication
*/
static void PostEvent(const AppEvent * event);
+#ifdef DISPLAY_ENABLED
+ /**
+ * @brief Return LCD object
+ */
+ static SilabsLCD & GetLCD(void);
+#endif
+
/**
* @brief Event handler when a button is pressed
* Function posts an event for button processing
@@ -165,8 +180,7 @@ class BaseApplication
static void LightEventHandler();
/**********************************************************
- * Private Attributes declaration
+ * Protected Attributes declaration
*********************************************************/
-
bool mSyncClusterToButtonAction;
};
diff --git a/examples/platform/efr32/FreeRTOSConfig.h b/examples/platform/efr32/FreeRTOSConfig.h
index 3408b5667aa9bc..f42179230d6bb0 100644
--- a/examples/platform/efr32/FreeRTOSConfig.h
+++ b/examples/platform/efr32/FreeRTOSConfig.h
@@ -198,7 +198,7 @@ See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
#ifndef configTOTAL_HEAP_SIZE
#ifdef SL_WIFI
-#define configTOTAL_HEAP_SIZE ((size_t)(30 * 1024))
+#define configTOTAL_HEAP_SIZE ((size_t)(34 * 1024))
#else
#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024))
#endif
diff --git a/examples/platform/efr32/display/demo-ui-bitmaps.h b/examples/platform/efr32/display/demo-ui-bitmaps.h
new file mode 100644
index 00000000000000..6f77ce4b733139
--- /dev/null
+++ b/examples/platform/efr32/display/demo-ui-bitmaps.h
@@ -0,0 +1,326 @@
+/***************************************************************************/ /**
+ * @file
+ * @brief User Interface bitmaps for demo.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc.
+ *www.silabs.com
+ *******************************************************************************
+ *
+ * The licensor of this software is Silicon
+ *Laboratories Inc. Your use of this software is
+ *governed by the terms of Silicon Labs Master
+ *Software License Agreement (MSLA) available at
+ * www.silabs.com/about-us/legal/master-software-license-agreement.
+ *This software is distributed to you in Source Code
+ *format and is governed by the sections of the MSLA
+ *applicable to Source Code.
+ *
+ ******************************************************************************/
+
+#ifndef SILABS_DEMO_UI_BITMAPS_H
+#define SILABS_DEMO_UI_BITMAPS_H
+
+#define SILICONLABS_BITMAP_WIDTH 128
+#define SILICONLABS_BITMAP_HEIGHT 45
+
+#define ZIGBEE_BITMAP_WIDTH 16
+#define ZIGBEE_BITMAP_HEIGHT 16
+
+#define RAIL_BITMAP_WIDTH 16
+#define RAIL_BITMAP_HEIGHT 16
+
+#define CONNECT_BITMAP_WIDTH 16
+#define CONNECT_BITMAP_HEIGHT 16
+
+#define BLUETOOTH_BITMAP_WIDTH 16
+#define BLUETOOTH_BITMAP_HEIGHT 18
+
+#define SILABS_BITMAP \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xfd, 0xff, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0x00, \
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, \
+ 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0xf0, 0xff, \
+ 0xff, 0xff, 0x1f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0xe0, 0xff, 0xff, 0xff, 0xc3, 0xff, \
+ 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x07, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, \
+ 0xff, 0x01, 0xc0, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x80, 0xff, \
+ 0xff, 0x01, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xff, 0xff, \
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, \
+ 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x80, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, \
+ 0x00, 0x00, 0xc0, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, \
+ 0x01, 0xc0, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0xc0, 0xff, 0xff, \
+ 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xf0, 0x7f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf8, 0x3f, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, \
+ 0x0f, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xfe, 0x0f, \
+ 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f, 0x80, 0xff, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0x3f, 0xf8, 0xff, 0xff, 0x1f, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, \
+ 0x0f, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0x03, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x07, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x3f, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x83, 0xff, 0xff, 0x01, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0xfc, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, \
+ 0xf8, 0xff, 0xff, 0x03, 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x03, \
+ 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x01, \
+ 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, \
+ 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, \
+ 0x1f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+
+#define THREAD_BITMAP_WIDTH 16
+#define THREAD_BITMAP_HEIGHT 18
+
+#define THREAD_BITMAP \
+ 0x1F, 0xF8, 0x07, 0xE0, 0x03, 0xCE, 0x01, 0x9F, 0x01, 0xB3, 0x00, 0x33, 0xF0, 0x3F, 0xF8, 0x1F, 0x0C, 0x03, 0x0C, 0x03, 0x18, \
+ 0x03, 0x11, 0x83, 0x01, 0x83, 0x03, 0xC3, 0x07, 0xE3, 0x1F, 0xFB, 0x7f, 0xff, 0xff, 0xff
+
+#define WIFI_BITMAP_WIDTH 18
+#define WIFI_BITMAP_HEIGHT 18
+
+#define WIFI_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x01, 0xE0, 0x03, 0x00, 0xC7, 0xFF, 0xB8, 0xFF, 0xF7, 0x07, 0xF8, 0x0F, 0xC0, 0x3F, \
+ 0x3F, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x7F, 0xF8, 0xFF, 0xE1, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F
+
+#define MATTER_LOGO_WIDTH 18
+#define MATTER_LOGO_HEIGHT 17
+
+#define MATTER_LOGO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xCF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0x12, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0xF3, 0x3F, 0x8F, \
+ 0x7F, 0xFC, 0xFC, 0xFC, 0xE3, 0xF1, 0x87, 0x87, 0xC7, 0xDE, 0x88, 0x33, 0xC7, 0xCF, 0xFC, 0xFF, 0xFF, 0x03
+
+// APP Logo, boolean only. must be 64x64
+#if IS_DEMO_SWITCH
+#define ON_DEMO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0xC0, 0xFF, 0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0xE0, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0xC0, 0xFF, 0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, \
+ 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+
+#define OFF_DEMO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, \
+ 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0xF8, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0xFF, 0x3F, 0xF8, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, \
+ 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0x3C, 0x00, 0x00, \
+ 0x3C, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xF8, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0xFF, \
+ 0x3F, 0xF8, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, \
+ 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+#elif IS_DEMO_LIGHT
+#define ON_DEMO_BITMAP \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, \
+ 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x1f, 0xfe, 0x07, 0xe0, \
+ 0x7f, 0xf8, 0xff, 0xff, 0x3f, 0xfc, 0x00, 0x00, 0x3f, 0xfc, 0xff, 0xff, 0x7f, 0x3c, 0xe0, 0x07, 0x3c, 0xfe, 0xff, 0xff, \
+ 0xff, 0x1f, 0xfe, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, \
+ 0xe3, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, \
+ 0xff, 0xf1, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, \
+ 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfc, 0xff, 0x0f, 0x38, 0xfe, 0xff, 0xff, 0x7f, 0x1c, 0xf0, 0x0f, 0x38, 0xfe, 0x03, 0xc0, 0x7f, 0x1c, 0xf0, 0x0f, \
+ 0x38, 0xfe, 0x27, 0xe9, 0x7f, 0x1c, 0xf0, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xe7, 0xe7, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfe, 0xef, 0xf7, 0x7f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfc, 0xef, 0xf7, 0x3f, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0xef, 0xf3, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xcf, 0xf3, \
+ 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xdf, 0xfb, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xdf, 0xfb, 0x8f, 0xff, 0xff, 0xff, \
+ 0xff, 0xe3, 0x9f, 0xf9, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x9f, 0xf9, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x9f, 0xfd, \
+ 0xe3, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xbf, 0xfd, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3f, 0xfc, 0xf8, 0xff, 0xff, 0xff, \
+ 0xff, 0x3f, 0x3e, 0x7c, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0x3f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0x3f, \
+ 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x8f, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+
+#define OFF_DEMO_BITMAP \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0x07, 0xfc, 0xff, 0xff, 0xff, \
+ 0xff, 0x1f, 0xfe, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, \
+ 0xe3, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, \
+ 0xff, 0xf1, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, \
+ 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, \
+ 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, \
+ 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, \
+ 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, \
+ 0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, \
+ 0xe3, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, \
+ 0xff, 0x3f, 0xfe, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0x3f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0x3f, \
+ 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x8f, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+#elif IS_DEMO_LOCK
+#define ON_DEMO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, \
+ 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xE0, 0x07, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x0F, 0xFC, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0x7F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0x7F, \
+ 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, \
+ 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x80, 0x01, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0x0F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xFC, 0x3F, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0xFC, 0x3F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0x0F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x80, 0x01, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+
+#define OFF_DEMO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, \
+ 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xE0, 0x07, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x0F, 0xFC, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0x7F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0x7F, \
+ 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x80, 0x01, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0x0F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xFC, 0x3F, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0xFC, 0x3F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0x1F, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0x0F, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x80, 0x01, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, \
+ 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, \
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+#else // Unknown demo....
+#define ON_DEMO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, \
+ 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0x0F, \
+ 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xF0, \
+ 0x0F, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0x07, 0xE0, 0x07, 0xFE, 0xFF, 0xFF, 0x7F, 0xC0, 0x03, 0xC0, 0x03, 0xFE, 0xFF, 0xFF, \
+ 0x7F, 0xC0, 0x03, 0xC0, 0x03, 0xFE, 0xFF, 0xFF, 0x3F, 0xC0, 0x03, 0xC0, 0x03, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, \
+ 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, \
+ 0x8F, 0x01, 0x80, 0x01, 0x80, 0xF1, 0xFF, 0xFF, 0xCF, 0x03, 0xC0, 0x03, 0xC0, 0xF3, 0xFF, 0xFF, 0xEF, 0x07, 0xE0, 0x07, \
+ 0xE0, 0xF7, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x3F, 0xFC, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0x7F, 0x7E, 0x7E, 0x7E, 0x7E, 0xFE, 0xFF, 0xFF, 0x3F, 0xFC, 0x3F, 0xFC, \
+ 0x3F, 0xFC, 0xFF, 0xFF, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0xE0, 0x07, 0xE0, 0x07, 0xF8, 0xFF, 0xFF, 0x3F, 0xC0, 0x03, 0xC0, 0x03, 0xFC, 0xFF, 0xFF, 0x3F, 0x80, 0x01, 0x80, \
+ 0x01, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, \
+ 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x1F, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+
+#define OFF_DEMO_BITMAP \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, \
+ 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, \
+ 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, \
+ 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, \
+ 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, \
+ 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, \
+ 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, \
+ 0x00, 0xF0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, \
+ 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, \
+ 0x00, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, \
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, \
+ 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0x1F, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+
+#endif
+
+#endif // SILABS_DEMO_UI_BITMAPS_H
diff --git a/examples/platform/efr32/display/demo-ui.c b/examples/platform/efr32/display/demo-ui.c
new file mode 100644
index 00000000000000..73a8d52ea71090
--- /dev/null
+++ b/examples/platform/efr32/display/demo-ui.c
@@ -0,0 +1,136 @@
+/**
+ * @file
+ * @brief User Interface core logic for demo.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc.
+ *www.silabs.com
+ *******************************************************************************
+ *
+ * The licensor of this software is Silicon
+ *Laboratories Inc. Your use of this software is
+ *governed by the terms of Silicon Labs Master
+ *Software License Agreement (MSLA) available at
+ * www.silabs.com/about-us/legal/master-software-license-agreement.
+ *This software is distributed to you in Source Code
+ *format and is governed by the sections of the MSLA
+ *applicable to Source Code.
+ *
+ ******************************************************************************/
+
+#include "demo-ui.h"
+#include "demo-ui-bitmaps.h"
+#include "dmd/dmd.h"
+#include "em_types.h"
+#include "glib.h"
+#include
+#include
+
+// Main Logo and App image
+#define SILICONLABS_X_POSITION ((glibContext.pDisplayGeometry->xSize - SILICONLABS_BITMAP_WIDTH) / 2)
+#define SILICONLABS_Y_POSITION 0
+#define APP_BITMAP_WIDTH 64
+#define APP_BITMAP_HEIGHT 64
+#define APP_X_POSITION ((glibContext.pDisplayGeometry->xSize - APP_BITMAP_WIDTH) / 2)
+#define APP_Y_POSITION (glibContext.pDisplayGeometry->ySize - APP_BITMAP_HEIGHT - 5)
+#define PROT1_ID_X_POSITION 1
+#define PROT2_ID_X_POSITION 79
+
+// Matter Logo
+#define PROT2_BITMAP_WIDTH MATTER_LOGO_WIDTH
+#define PROT2_BITMAP_HEIGHT MATTER_LOGO_HEIGHT
+#define PROT2_X_POSITION 104
+#define PROT2_Y_POSITION (APP_Y_POSITION + (APP_Y_POSITION / 2))
+#define PROT2_BITMAP (matterLogoBitmap)
+#define PROT2_BITMAP_CONN (matterLogoBitmap)
+
+// Networking Protocol Logo
+#ifdef SL_WIFI
+#define PROT1_BITMAP_WIDTH WIFI_BITMAP_WIDTH
+#define PROT1_BITMAP_HEIGHT WIFI_BITMAP_HEIGHT
+#define PROT1_X_POSITION 8
+#define PROT1_Y_POSITION (APP_Y_POSITION + (APP_Y_POSITION / 2))
+#define PROT1_BITMAP (networkBitMap)
+#define PROT1_BITMAP_CONN (networkBitMap)
+#else
+#define PROT1_BITMAP_WIDTH THREAD_BITMAP_WIDTH
+#define PROT1_BITMAP_HEIGHT THREAD_BITMAP_HEIGHT
+#define PROT1_X_POSITION 8
+#define PROT1_Y_POSITION (APP_Y_POSITION + (APP_Y_POSITION / 2))
+#define PROT1_BITMAP (networkBitMap)
+#define PROT1_BITMAP_CONN (networkBitMap)
+#endif
+
+/*******************************************************************************
+ *************************** LOCAL VARIABLES ********************************
+ ******************************************************************************/
+static GLIB_Context_t glibContext; /* Global glib context */
+
+static const uint8_t siliconlabsBitmap[] = { SILABS_BITMAP };
+static const uint8_t matterLogoBitmap[] = { MATTER_LOGO_BITMAP };
+
+static const uint8_t OnStateBitMap[] = { ON_DEMO_BITMAP };
+static const uint8_t OffStateBitMap[] = { OFF_DEMO_BITMAP };
+
+#ifdef SL_WIFI
+static const uint8_t networkBitMap[] = { WIFI_BITMAP };
+#else
+static const uint8_t networkBitMap[] = { THREAD_BITMAP };
+#endif
+
+// Future usage
+// static const uint8_t unconnectedBitMap[] = { QUESTION_MARK_BITMAP };
+
+/*******************************************************************************
+ ************************** LOCAL FUNCTIONS ********************************
+ ******************************************************************************/
+static void demoUIDisplayLogo(void)
+{
+ GLIB_drawBitmap(&glibContext, SILICONLABS_X_POSITION, SILICONLABS_Y_POSITION, SILICONLABS_BITMAP_WIDTH,
+ SILICONLABS_BITMAP_HEIGHT, siliconlabsBitmap);
+}
+
+/*******************************************************************************
+ ************************** GLOBAL FUNCTIONS *******************************
+ ******************************************************************************/
+void demoUIInit(GLIB_Context_t * context)
+{
+ memcpy(&glibContext, context, sizeof(GLIB_Context_t));
+}
+
+void demoUIDisplayHeader(char * name)
+{
+ demoUIDisplayLogo();
+ if (APP_NAME_MAX_LENGTH >= strlen(name))
+ {
+ GLIB_drawStringOnLine(&glibContext, name, 5, GLIB_ALIGN_CENTER, 0, 0, true);
+ }
+ DMD_updateDisplay();
+}
+
+void demoUIDisplayApp(bool on)
+{
+ GLIB_drawBitmap(&glibContext, APP_X_POSITION, APP_Y_POSITION, APP_BITMAP_WIDTH, APP_BITMAP_HEIGHT,
+ (on ? OnStateBitMap : OffStateBitMap));
+ DMD_updateDisplay();
+}
+
+void demoUIDisplayProtocol(demoUIProtocol protocol, bool isConnected)
+{
+ GLIB_drawBitmap(&glibContext, (protocol == DEMO_UI_PROTOCOL1 ? PROT1_X_POSITION : PROT2_X_POSITION),
+ (protocol == DEMO_UI_PROTOCOL1 ? PROT1_Y_POSITION : PROT2_Y_POSITION),
+ (protocol == DEMO_UI_PROTOCOL1 ? PROT1_BITMAP_WIDTH : PROT2_BITMAP_WIDTH),
+ (protocol == DEMO_UI_PROTOCOL1 ? PROT1_BITMAP_HEIGHT : PROT2_BITMAP_HEIGHT),
+ (protocol == DEMO_UI_PROTOCOL1 ? (isConnected ? PROT1_BITMAP_CONN : PROT1_BITMAP)
+ : (isConnected ? PROT2_BITMAP_CONN : PROT2_BITMAP)));
+ DMD_updateDisplay();
+}
+
+void demoUIClearMainScreen(uint8_t * name)
+{
+ GLIB_clear(&glibContext);
+ demoUIDisplayHeader((char *) name);
+ demoUIDisplayApp(false);
+ demoUIDisplayProtocol(DEMO_UI_PROTOCOL1, false);
+ demoUIDisplayProtocol(DEMO_UI_PROTOCOL2, false);
+}
diff --git a/examples/platform/efr32/display/demo-ui.h b/examples/platform/efr32/display/demo-ui.h
new file mode 100644
index 00000000000000..6197a4e73c71ef
--- /dev/null
+++ b/examples/platform/efr32/display/demo-ui.h
@@ -0,0 +1,139 @@
+/***************************************************************************/ /**
+ * @file
+ * @brief User Interface for demo.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc.
+ *www.silabs.com
+ *******************************************************************************
+ *
+ * The licensor of this software is Silicon
+ *Laboratories Inc. Your use of this software is
+ *governed by the terms of Silicon Labs Master
+ *Software License Agreement (MSLA) available at
+ * www.silabs.com/about-us/legal/master-software-license-agreement.
+ *This software is distributed to you in Source Code
+ *format and is governed by the sections of the MSLA
+ *applicable to Source Code.
+ *
+ ******************************************************************************/
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "glib.h"
+/**************************************************************************/ /**
+ * DEMO UI uses the underlying DMD interface and the
+ *GLIB and exposes several wrapper functions to
+ *application. These functions are used to display
+ * different bitmaps for the demo.
+ *
+ ******************************************************************************/
+
+#define APP_NAME_MAX_LENGTH 20
+
+/*******************************************************************************
+ ******************************** ENUMS ************************************
+ ******************************************************************************/
+
+typedef enum
+{
+ DEMO_UI_PROTOCOL1,
+ DEMO_UI_PROTOCOL2
+} demoUIProtocol;
+
+typedef enum
+{
+ DEMO_UI_LIGHT_OFF,
+ DEMO_UI_LIGHT_ON
+} demoUILightState_t;
+
+typedef enum
+{
+ DEMO_UI_DIRECTION_PROT1,
+ DEMO_UI_DIRECTION_PROT2,
+ DEMO_UI_DIRECTION_SWITCH,
+ DEMO_UI_DIRECTION_INVALID
+} demoUILightDirection_t;
+
+typedef enum
+{
+ DEMO_UI_NO_NETWORK,
+ DEMO_UI_SCANNING,
+ DEMO_UI_JOINING,
+ DEMO_UI_FORMING,
+ DEMO_UI_NETWORK_UP,
+ DEMO_UI_STATE_UNKNOWN
+} demoUIZigBeeNetworkState_t;
+
+/*******************************************************************************
+ ****************************** PROTOTYPES *********************************
+ ******************************************************************************/
+
+/**************************************************************************/ /**
+ * @brief
+ * Initilize the GLIB and DMD interfaces.
+ *
+ * @param[in] void
+ *
+ * @return
+ * void
+ *****************************************************************************/
+void demoUIInit(GLIB_Context_t * context);
+
+/**************************************************************************/ /**
+ * @brief
+ * Update the display with Silicon Labs logo and
+ *application name.
+ *
+ * @param[in] name name of the current application.
+ *
+ * @return
+ * void
+ *****************************************************************************/
+void demoUIDisplayHeader(char * name);
+
+/**************************************************************************/ /**
+ * @brief
+ * Update the display with App image. Bool state only
+ *for now.
+ *
+ * @param[in] on status of App
+ *
+ * @return
+ * void
+ *****************************************************************************/
+void demoUIDisplayApp(bool on);
+
+/**************************************************************************/ /**
+ * @brief
+ * Update the display to show if the bluetooth is
+ *connected to the mobile device.
+ *
+ * @param[in] bool, true if the Light is connected to
+ *mobile device, false otherwise.
+ *
+ * @return
+ * void
+ *****************************************************************************/
+void demoUIDisplayProtocol(demoUIProtocol protocol, bool isConnected);
+
+/**************************************************************************/ /**
+ * @brief
+ * Clear the Lcd screen and display the main screen.
+ *
+ * @param[in] name - application name
+ * @param[in] showPROT1 - show protocol 1 related icon.
+ * @param[in] showPROT2 - show protocol 2 related icon.
+ *
+ * @return
+ * void
+ *****************************************************************************/
+void demoUIClearMainScreen(uint8_t * name);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/examples/platform/efr32/display/lcd.c b/examples/platform/efr32/display/lcd.cpp
similarity index 62%
rename from examples/platform/efr32/display/lcd.c
rename to examples/platform/efr32/display/lcd.cpp
index a62f89c8ba25ab..9b66cfe1f024cc 100644
--- a/examples/platform/efr32/display/lcd.c
+++ b/examples/platform/efr32/display/lcd.cpp
@@ -19,6 +19,7 @@
#include
#include
+#include "demo-ui.h"
#include "lcd.h"
#include "dmd.h"
@@ -35,25 +36,36 @@
#define QR_CODE_MODULE_SIZE 3
#define QR_CODE_BORDER_SIZE 0
-static GLIB_Context_t glibContext;
#ifdef QR_CODE_ENABLED
static uint8_t qrCode[qrcodegen_BUFFER_LEN_FOR_VERSION(QR_CODE_VERSION)];
static uint8_t workBuffer[qrcodegen_BUFFER_LEN_FOR_VERSION(QR_CODE_VERSION)];
#endif // QR_CODE_ENABLED
-#ifdef QR_CODE_ENABLED
-static void LCDFillRect(uint8_t x, uint8_t y, uint8_t w, uint8_t h);
-#endif // QR_CODE_ENABLED
-
-void initLCD(void)
+CHIP_ERROR SilabsLCD::Init(uint8_t * name, bool initialState)
{
EMSTATUS status;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+
+ // Check if Name is to long
+ if (name != nullptr)
+ {
+ if (APP_NAME_MAX_LENGTH < strlen((char *) name))
+ {
+ EFR32_LOG("App Name too long");
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ else
+ {
+ strcpy((char *) mName, (char *) name);
+ }
+ }
/* Enable the memory lcd */
status = sl_board_enable_display();
- if (status == SL_STATUS_OK)
+ if (status != SL_STATUS_OK)
{
EFR32_LOG("Board Display enable fail %d", status);
+ err = CHIP_ERROR_INTERNAL;
}
/* Initialize the DMD module for the DISPLAY device driver. */
@@ -61,6 +73,7 @@ void initLCD(void)
if (DMD_OK != status)
{
EFR32_LOG("DMD init failed %d", status);
+ err = CHIP_ERROR_INTERNAL;
}
/* Initialize the glib context */
@@ -68,6 +81,7 @@ void initLCD(void)
if (GLIB_OK != status)
{
EFR32_LOG("Glib context init failed %d", status);
+ err = CHIP_ERROR_INTERNAL;
}
glibContext.backgroundColor = White;
@@ -76,34 +90,57 @@ void initLCD(void)
if (GLIB_OK != status)
{
EFR32_LOG("Glib clear failed %d", status);
+ err = CHIP_ERROR_INTERNAL;
}
+ demoUIInit(&glibContext);
+
+ dState.mainState = initialState;
+
+ return err;
}
/* This function is necessary because currently glib.h cannot be used within a C++ context. */
-void * LCDContext()
+void * SilabsLCD::Context()
{
return (void *) &glibContext;
}
-int LCD_clear(void * pContext)
+int SilabsLCD::Clear()
{
- return GLIB_clear((GLIB_Context_t *) pContext);
+ return GLIB_clear(&glibContext);
}
-int LCD_drawPixel(void * pContext, int32_t x, int32_t y)
+int SilabsLCD::DrawPixel(void * pContext, int32_t x, int32_t y)
{
return GLIB_drawPixel((GLIB_Context_t *) pContext, x, y);
}
-int LCD_update(void)
+int SilabsLCD::Update(void)
{
return DMD_updateDisplay();
}
+void SilabsLCD::WriteDemoUI(bool state)
+{
+ if (mShowQRCode)
+ {
+ mShowQRCode = false;
+ }
+ dState.mainState = state;
+ WriteDemoUI();
+}
+
+void SilabsLCD::WriteDemoUI()
+{
+ Clear();
+ demoUIClearMainScreen(mName);
+ demoUIDisplayApp(dState.mainState);
+}
+
#ifdef QR_CODE_ENABLED
-void LCDWriteQRCode(uint8_t * str)
+void SilabsLCD::WriteQRCode()
{
- if (!qrcodegen_encodeText((const char *) str, workBuffer, qrCode, qrcodegen_Ecc_LOW, QR_CODE_VERSION, QR_CODE_VERSION,
+ if (!qrcodegen_encodeText((const char *) mQRCodeBuffer, workBuffer, qrCode, qrcodegen_Ecc_LOW, QR_CODE_VERSION, QR_CODE_VERSION,
qrcodegen_Mask_AUTO, true))
{
EFR32_LOG("qrcodegen_encodeText() failed");
@@ -133,7 +170,30 @@ void LCDWriteQRCode(uint8_t * str)
DMD_updateDisplay();
}
-void LCDFillRect(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
+void SilabsLCD::SetQRCode(uint8_t * str, uint32_t size)
+{
+ if (size < chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1)
+ {
+ memcpy(mQRCodeBuffer, str, size);
+ }
+}
+
+void SilabsLCD::ShowQRCode(bool show, bool forceRefresh)
+{
+ if (show != mShowQRCode || forceRefresh)
+ {
+ (show) ? WriteQRCode() : WriteDemoUI();
+ mShowQRCode = show;
+ }
+}
+
+void SilabsLCD::ToggleQRCode(void)
+{
+ (mShowQRCode) ? WriteDemoUI() : WriteQRCode();
+ mShowQRCode = !mShowQRCode;
+}
+
+void SilabsLCD::LCDFillRect(uint8_t x, uint8_t y, uint8_t w, uint8_t h)
{
for (int i = 0; i < h; i++)
{
diff --git a/examples/platform/efr32/display/lcd.h b/examples/platform/efr32/display/lcd.h
new file mode 100644
index 00000000000000..c9729e15d05de4
--- /dev/null
+++ b/examples/platform/efr32/display/lcd.h
@@ -0,0 +1,71 @@
+/*
+ *
+ * Copyright (c) 2020 Project CHIP Authors
+ * All rights reserved.
+ *
+ * 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.
+ */
+
+#pragma once
+
+#include "AppConfig.h"
+#include "glib.h"
+#ifdef QR_CODE_ENABLED
+#include "qrcodegen.h"
+#include
+#endif // QR_CODE_ENABLED
+
+#include "demo-ui.h"
+
+#define MAX_STR_LEN 48
+
+class SilabsLCD
+{
+
+public:
+ CHIP_ERROR Init(uint8_t * name = nullptr, bool initialState = false);
+ void * Context();
+ int Clear(void);
+ int DrawPixel(void * pContext, int32_t x, int32_t y);
+ int Update(void);
+ void WriteDemoUI(bool state);
+#ifdef QR_CODE_ENABLED
+ void SetQRCode(uint8_t * str, uint32_t size);
+ void ShowQRCode(bool show, bool forceRefresh = false);
+ void ToggleQRCode(void);
+#endif
+
+private:
+ typedef struct demoState
+ {
+ bool mainState = false;
+ bool protocol1 = false; /* data */
+ } DemoState_t;
+
+ void WriteQRCode();
+ void WriteDemoUI();
+#ifdef QR_CODE_ENABLED
+ void LCDFillRect(uint8_t x, uint8_t y, uint8_t w, uint8_t h);
+ char mQRCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1];
+ bool mShowQRCode = true;
+#endif
+ GLIB_Context_t glibContext;
+
+#ifdef SL_DEMO_NAME
+ uint8_t mName[] = SL_DEMO_NAME
+#else
+ uint8_t mName[APP_NAME_MAX_LENGTH + 1];
+#endif
+
+ DemoState_t dState;
+};
diff --git a/examples/platform/efr32/init_efrPlatform.cpp b/examples/platform/efr32/init_efrPlatform.cpp
index d0fb913165c469..36ee0018e8a814 100644
--- a/examples/platform/efr32/init_efrPlatform.cpp
+++ b/examples/platform/efr32/init_efrPlatform.cpp
@@ -56,10 +56,6 @@ extern "C" {
#include "sl_mbedtls.h"
#include "sl_system_init.h"
-#if DISPLAY_ENABLED
-#include "lcd.h"
-#endif
-
void initAntenna(void);
void init_efrPlatform(void)
@@ -67,16 +63,13 @@ void init_efrPlatform(void)
sl_system_init();
sl_mbedtls_init();
-#if DISPLAY_ENABLED
- initLCD();
-#endif
-
#if EFR32_LOG_ENABLED
efr32InitLog();
#endif
#if CHIP_ENABLE_OPENTHREAD
- sl_ot_sys_init();
+ efr32RadioInit();
+ efr32AlarmInit();
#endif // CHIP_ENABLE_OPENTHREAD
}
diff --git a/examples/platform/esp32/ota/OTAHelper.cpp b/examples/platform/esp32/ota/OTAHelper.cpp
index 83b65776928104..b2be750db337c9 100644
--- a/examples/platform/esp32/ota/OTAHelper.cpp
+++ b/examples/platform/esp32/ota/OTAHelper.cpp
@@ -118,6 +118,14 @@ CHIP_ERROR RequestorCanConsentHandler(int argc, char ** argv)
return CHIP_NO_ERROR;
}
+CHIP_ERROR SetPeriodicQueryTimeoutHandler(int argc, char ** argv)
+{
+ VerifyOrReturnError(argc == 1, CHIP_ERROR_INVALID_ARGUMENT);
+ gRequestorUser.SetPeriodicQueryTimeout(strtoul(argv[0], NULL, 0));
+ gRequestorUser.RekickPeriodicQueryTimer();
+ return CHIP_NO_ERROR;
+}
+
CHIP_ERROR OTARequestorHandler(int argc, char ** argv)
{
if (argc == 0)
@@ -147,6 +155,9 @@ void OTARequestorCommands::Register()
{ &RequestorCanConsentHandler, "requestorCanConsent",
"Set requestorCanConsent for QueryImageCommand\n"
"Usage: OTARequestor requestorCanConsent " },
+ { &SetPeriodicQueryTimeoutHandler, "PeriodicQueryTimeout",
+ "Set timeout for querying the OTA provider for an update\n"
+ "Usage: OTARequestor PeriodicQueryTimeout " },
};
diff --git a/examples/platform/cyw30739/BUILD.gn b/examples/platform/infineon/cyw30739/BUILD.gn
similarity index 100%
rename from examples/platform/cyw30739/BUILD.gn
rename to examples/platform/infineon/cyw30739/BUILD.gn
diff --git a/examples/platform/cyw30739/OTAConfig.cpp b/examples/platform/infineon/cyw30739/OTAConfig.cpp
similarity index 97%
rename from examples/platform/cyw30739/OTAConfig.cpp
rename to examples/platform/infineon/cyw30739/OTAConfig.cpp
index 05902c113aa451..206db24040f98c 100644
--- a/examples/platform/cyw30739/OTAConfig.cpp
+++ b/examples/platform/infineon/cyw30739/OTAConfig.cpp
@@ -23,7 +23,7 @@
#include
#include
#include
-#include
+#include
using namespace ::chip;
using namespace ::chip::DeviceLayer;
diff --git a/examples/platform/cyw30739/OTAConfig.h b/examples/platform/infineon/cyw30739/OTAConfig.h
similarity index 100%
rename from examples/platform/cyw30739/OTAConfig.h
rename to examples/platform/infineon/cyw30739/OTAConfig.h
diff --git a/examples/platform/cyw30739/args.gni b/examples/platform/infineon/cyw30739/args.gni
similarity index 100%
rename from examples/platform/cyw30739/args.gni
rename to examples/platform/infineon/cyw30739/args.gni
diff --git a/examples/platform/cyw30739/project_include/OpenThreadConfig.h b/examples/platform/infineon/cyw30739/project_include/OpenThreadConfig.h
similarity index 100%
rename from examples/platform/cyw30739/project_include/OpenThreadConfig.h
rename to examples/platform/infineon/cyw30739/project_include/OpenThreadConfig.h
diff --git a/examples/platform/p6/BUILD.gn b/examples/platform/infineon/psoc6/BUILD.gn
similarity index 89%
rename from examples/platform/p6/BUILD.gn
rename to examples/platform/infineon/psoc6/BUILD.gn
index 6d4842abf36dc1..d574f634a6e53e 100644
--- a/examples/platform/p6/BUILD.gn
+++ b/examples/platform/infineon/psoc6/BUILD.gn
@@ -13,9 +13,9 @@
# limitations under the License.
import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
+import("//build_overrides/psoc6.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
+import("${psoc6_sdk_build_root}/psoc6_sdk.gni")
config("chip_examples_project_config") {
include_dirs = [ "project_include" ]
diff --git a/examples/platform/p6/LEDWidget.cpp b/examples/platform/infineon/psoc6/LEDWidget.cpp
similarity index 100%
rename from examples/platform/p6/LEDWidget.cpp
rename to examples/platform/infineon/psoc6/LEDWidget.cpp
diff --git a/examples/platform/p6/LEDWidget.h b/examples/platform/infineon/psoc6/LEDWidget.h
similarity index 100%
rename from examples/platform/p6/LEDWidget.h
rename to examples/platform/infineon/psoc6/LEDWidget.h
diff --git a/examples/platform/p6/args.gni b/examples/platform/infineon/psoc6/args.gni
similarity index 100%
rename from examples/platform/p6/args.gni
rename to examples/platform/infineon/psoc6/args.gni
diff --git a/examples/platform/p6/init_p6Platform.cpp b/examples/platform/infineon/psoc6/init_psoc6Platform.cpp
similarity index 100%
rename from examples/platform/p6/init_p6Platform.cpp
rename to examples/platform/infineon/psoc6/init_psoc6Platform.cpp
diff --git a/examples/platform/p6/init_p6Platform.h b/examples/platform/infineon/psoc6/init_psoc6Platform.h
similarity index 100%
rename from examples/platform/p6/init_p6Platform.h
rename to examples/platform/infineon/psoc6/init_psoc6Platform.h
diff --git a/examples/shell/shell_common/BUILD.gn b/examples/shell/shell_common/BUILD.gn
index d4b57df2f969ee..0217eb057fdff4 100644
--- a/examples/shell/shell_common/BUILD.gn
+++ b/examples/shell/shell_common/BUILD.gn
@@ -52,17 +52,10 @@ static_library("shell_common") {
if (chip_enable_openthread &&
(current_os == "freertos" || current_os == "zephyr")) {
- if (chip_openthread_ftd) {
- public_deps += [
- "${chip_root}/third_party/openthread/repo:libopenthread-cli-ftd",
- "${chip_root}/third_party/openthread/repo:libopenthread-ftd",
- ]
- } else {
- public_deps += [
- "${chip_root}/third_party/openthread/repo:libopenthread-cli-mtd",
- "${chip_root}/third_party/openthread/repo:libopenthread-mtd",
- ]
- }
+ public_deps += [
+ "${chip_root}/third_party/openthread:openthread_cli",
+ "${chip_root}/third_party/openthread:openthread_device",
+ ]
}
if (chip_shell_cmd_server) {
diff --git a/examples/thermostat/efr32/BUILD.gn b/examples/thermostat/efr32/BUILD.gn
index fe2be76adf88a8..edb03073686e3e 100644
--- a/examples/thermostat/efr32/BUILD.gn
+++ b/examples/thermostat/efr32/BUILD.gn
@@ -196,6 +196,7 @@ efr32_executable("thermostat_app") {
if (chip_enable_openthread) {
deps += [
"${chip_root}/third_party/openthread:openthread",
+ "${chip_root}/third_party/openthread:openthread_device",
"${examples_plat_dir}:efr-matter-shell",
]
}
diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn
index bcd17e3b6dddcf..c7a3f57e4b9ff8 100644
--- a/examples/window-app/efr32/BUILD.gn
+++ b/examples/window-app/efr32/BUILD.gn
@@ -188,6 +188,7 @@ efr32_executable("window_app") {
if (chip_enable_openthread) {
deps += [
"${chip_root}/third_party/openthread:openthread",
+ "${chip_root}/third_party/openthread:openthread_device",
"${examples_plat_dir}:efr-matter-shell",
]
}
@@ -237,9 +238,11 @@ efr32_executable("window_app") {
if (!disable_lcd) {
sources += [
- "${examples_plat_dir}/display/lcd.c",
+ "${examples_plat_dir}/display/demo-ui.c",
+ "${examples_plat_dir}/display/lcd.cpp",
"src/LcdPainter.cpp",
]
+ include_dirs += [ "${examples_plat_dir}/display" ]
defines += [ "DISPLAY_ENABLED" ]
if (show_qr_code) {
diff --git a/examples/window-app/efr32/include/LcdPainter.h b/examples/window-app/efr32/include/LcdPainter.h
index 448c750e166613..4a30bdede2c3ea 100644
--- a/examples/window-app/efr32/include/LcdPainter.h
+++ b/examples/window-app/efr32/include/LcdPainter.h
@@ -23,6 +23,8 @@
#include "app-common/app-common/zap-generated/cluster-enums.h"
// clang-format on
+#include
+
#include
enum class LcdIcon
@@ -104,7 +106,7 @@ class VerticalBlindPainter : public PixelPainter
class LcdPainter
{
public:
- static void Paint(chip::app::Clusters::WindowCovering::Type type, uint16_t lift, uint16_t tilt, LcdIcon icon);
+ static void Paint(SilabsLCD & lcd, chip::app::Clusters::WindowCovering::Type type, uint16_t lift, uint16_t tilt, LcdIcon icon);
private:
static PixelPainter * GetCoverPainter(chip::app::Clusters::WindowCovering::Type type, uint16_t lift, uint16_t tilt);
diff --git a/examples/window-app/efr32/src/LcdPainter.cpp b/examples/window-app/efr32/src/LcdPainter.cpp
index 6ff452cf197eee..e1a8041f075c79 100644
--- a/examples/window-app/efr32/src/LcdPainter.cpp
+++ b/examples/window-app/efr32/src/LcdPainter.cpp
@@ -18,7 +18,6 @@
*/
#include
-#include
using namespace chip::app::Clusters::WindowCovering;
@@ -202,15 +201,15 @@ PixelPainter * LcdPainter::GetCoverPainter(Type type, uint16_t lift, uint16_t ti
return nullptr;
}
-void LcdPainter::Paint(Type type, uint16_t lift, uint16_t tilt, LcdIcon icon)
+void LcdPainter::Paint(SilabsLCD & lcd, Type type, uint16_t lift, uint16_t tilt, LcdIcon icon)
{
FramePainter framePaint = FramePainter(lift, tilt);
IconPainter iconPaint = IconPainter(lift, tilt, icon);
PixelPainter * coverPaint = GetCoverPainter(type, lift, tilt);
CompositePainter compositePaint = CompositePainter(lift, tilt, &framePaint, &iconPaint, coverPaint);
- void * context = LCDContext();
+ void * context = lcd.Context();
- LCD_clear(context);
+ lcd.Clear();
for (int i = 0; i < LCD_SIZE; i++)
{
@@ -218,10 +217,10 @@ void LcdPainter::Paint(Type type, uint16_t lift, uint16_t tilt, LcdIcon icon)
{
if (compositePaint.Color(i, j))
{
- LCD_drawPixel(context, i, j);
+ lcd.DrawPixel(context, i, j);
}
}
}
- LCD_update();
+ lcd.Update();
delete coverPaint;
}
diff --git a/examples/window-app/efr32/src/WindowAppImpl.cpp b/examples/window-app/efr32/src/WindowAppImpl.cpp
index 2330bade5d2506..8ccfa97ea098a7 100644
--- a/examples/window-app/efr32/src/WindowAppImpl.cpp
+++ b/examples/window-app/efr32/src/WindowAppImpl.cpp
@@ -129,6 +129,10 @@ StaticQueue_t sAppEventQueueStruct;
WindowAppImpl WindowAppImpl::sInstance;
+#ifdef DISPLAY_ENABLED
+SilabsLCD slLCD;
+#endif
+
WindowApp & WindowApp::Instance()
{
return WindowAppImpl::sInstance;
@@ -184,6 +188,10 @@ CHIP_ERROR WindowAppImpl::Init()
mStatusLED.Init(APP_STATE_LED);
mActionLED.Init(APP_ACTION_LED);
+#ifdef DISPLAY_ENABLED
+ slLCD.Init();
+#endif
+
return CHIP_NO_ERROR;
}
@@ -427,7 +435,7 @@ void WindowAppImpl::UpdateLCD()
if (!tilt.IsNull() && !lift.IsNull())
{
- LcdPainter::Paint(type, lift.Value(), tilt.Value(), mIcon);
+ LcdPainter::Paint(slLCD, type, lift.Value(), tilt.Value(), mIcon);
}
}
#ifdef QR_CODE_ENABLED
@@ -436,7 +444,8 @@ void WindowAppImpl::UpdateLCD()
chip::MutableCharSpan qrCode(mQRCodeBuffer);
if (GetQRCode(qrCode, chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)) == CHIP_NO_ERROR)
{
- LCDWriteQRCode((uint8_t *) qrCode.data());
+ slLCD.SetQRCode((uint8_t *) qrCode.data(), qrCode.size());
+ slLCD.ShowQRCode(true, true);
}
}
#endif // QR_CODE_ENABLED
diff --git a/gn_build.sh b/gn_build.sh
index 0615a1833ef40d..18473f34f6d517 100755
--- a/gn_build.sh
+++ b/gn_build.sh
@@ -106,7 +106,7 @@ for arg; do
enable_p6_builds=true)
p6_builds_enabled=1
;;
- p6_board=*)
+ psoc6_board=*)
p6_board_selected=1
;;
esac
@@ -141,13 +141,13 @@ fi
echo
-# P6 Build setup
+# PSoC6 Build setup
if [[ -z "$p6_builds_enabled" ]]; then
echo "Hint: Pass enable_p6_builds=true to this script to enable building for PSoC6-43012"
else
- p6_sdk_args=""
+ psoc6_sdk_args=""
if [[ -z "$p6_board_selected" ]]; then
- p6_sdk_args="p6_board=\"CY8CKIT-062S2-43012\""
+ psoc6_sdk_args="psoc6_board=\"CY8CKIT-062S2-43012\""
fi
fi
diff --git a/integrations/cloudbuild/build-all.yaml b/integrations/cloudbuild/build-all.yaml
index 3326bb4ac1ce16..c8c09ad722319f 100644
--- a/integrations/cloudbuild/build-all.yaml
+++ b/integrations/cloudbuild/build-all.yaml
@@ -1,4 +1,11 @@
steps:
+ - name: gcr.io/cloud-builders/git
+ args:
+ - submodule
+ - update
+ - "--init"
+ - "--recursive"
+ id: Submodules
- name: "connectedhomeip/chip-build-vscode:0.5.91"
env:
- PW_ENVIRONMENT_ROOT=/pwenv
@@ -6,6 +13,8 @@ steps:
- "-c"
- source ./scripts/bootstrap.sh
id: Bootstrap
+ waitFor:
+ - Submodules
entrypoint: /usr/bin/bash
volumes:
- name: pwenv
diff --git a/integrations/cloudbuild/smoke-test.yaml b/integrations/cloudbuild/smoke-test.yaml
index 72dc9aa5678706..b0333fab36f327 100644
--- a/integrations/cloudbuild/smoke-test.yaml
+++ b/integrations/cloudbuild/smoke-test.yaml
@@ -1,4 +1,11 @@
steps:
+ - name: gcr.io/cloud-builders/git
+ args:
+ - submodule
+ - update
+ - "--init"
+ - "--recursive"
+ id: Submodules
- name: "connectedhomeip/chip-build-vscode:0.5.91"
env:
- PW_ENVIRONMENT_ROOT=/pwenv
@@ -6,6 +13,8 @@ steps:
- "-c"
- source ./scripts/bootstrap.sh
id: Bootstrap
+ waitFor:
+ - Submodules
entrypoint: /usr/bin/bash
volumes:
- name: pwenv
diff --git a/integrations/docker/images/chip-build/Dockerfile b/integrations/docker/images/chip-build/Dockerfile
index b09c9c9dd43fbd..bfcfea5e40e755 100644
--- a/integrations/docker/images/chip-build/Dockerfile
+++ b/integrations/docker/images/chip-build/Dockerfile
@@ -11,6 +11,7 @@ RUN set -x \
automake \
bison \
bridge-utils \
+ ccache \
clang \
clang-format \
clang-tidy \
diff --git a/integrations/docker/images/chip-build/version b/integrations/docker/images/chip-build/version
index 6b92033b6525c6..0791656d59351a 100644
--- a/integrations/docker/images/chip-build/version
+++ b/integrations/docker/images/chip-build/version
@@ -1 +1 @@
-0.5.93 Version bump reason: [ESP32] Update ESP-IDF to release v4.4.2
+0.5.94 Version bump reason: Install ccache to the chip-build image
diff --git a/integrations/docker/images/chip-cert-bins/Dockerfile b/integrations/docker/images/chip-cert-bins/Dockerfile
index 7cb52537acbcff..2aa6f10e767fb0 100644
--- a/integrations/docker/images/chip-cert-bins/Dockerfile
+++ b/integrations/docker/images/chip-cert-bins/Dockerfile
@@ -254,12 +254,14 @@ RUN case ${TARGETPLATFORM} in \
RUN npm --prefix third_party/zap/repo/ ci
RUN scripts/examples/gn_build_test_example.sh app1
+RUN source scripts/activate.sh && scripts/build_python.sh -m platform -d true -i no
+
# Stage 3: Copy relevant cert bins to a minimal image to reduce size.
FROM ubuntu:22.04
ENV TZ=Etc/UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update -y
-RUN apt-get install -y libssl-dev libdbus-1-dev libglib2.0-dev libavahi-client-dev avahi-utils iproute2
+RUN apt-get install -y libssl-dev libdbus-1-dev libglib2.0-dev libavahi-client-dev avahi-utils iproute2 libcairo2-dev libgirepository1.0-dev python3-pip
WORKDIR /root/
COPY --from=chip-build-cert-bins /root/.sdk-sha-version .sdk-sha-version
COPY --from=chip-build-cert-bins /root/connectedhomeip/out/debug/chip-tool chip-tool
@@ -276,3 +278,8 @@ COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-ota-provider-app
COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-ota-requestor-app chip-ota-requestor-app
COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-lock-app chip-lock-app
COPY --from=chip-build-cert-bins /root/connectedhomeip/out/app1/chip-app1 chip-app1
+
+# Stage 3.1 Setup the Matter Python environment
+COPY --from=chip-build-cert-bins /root/connectedhomeip/out/python_lib python_lib
+COPY --from=chip-build-cert-bins /root/connectedhomeip/src/python_testing python_testing
+RUN pip install --no-cache-dir python_lib/controller/python/chip*.whl
diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index cb457e61a4b6a6..c9edb01794bca9 100755
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -520,7 +520,7 @@ def InfineonTargets():
builder.AppendVariant(name="ota", enable_ota_requestor=True)
builder.AppendVariant(name="updateimage", update_image=True)
- target = Target('infineon-p6', InfineonBuilder, board=InfineonBoard.P6BOARD)
+ target = Target('infineon-psoc6', InfineonBuilder, board=InfineonBoard.PSOC6BOARD)
builder.targets.append(target.Extend('lock', app=InfineonApp.LOCK))
builder.targets.append(target.Extend('light', app=InfineonApp.LIGHT))
diff --git a/scripts/build/builders/cyw30739.py b/scripts/build/builders/cyw30739.py
index 5d4470fef17535..b0347750c6593a 100644
--- a/scripts/build/builders/cyw30739.py
+++ b/scripts/build/builders/cyw30739.py
@@ -44,7 +44,7 @@ def AppNamePrefix(self):
raise Exception("Unknown app type: %r" % self)
def BuildRoot(self, root):
- return os.path.join(root, "examples", self.ExampleName(), "cyw30739")
+ return os.path.join(root, "examples", self.ExampleName(), "infineon/cyw30739")
class Cyw30739Board(Enum):
diff --git a/scripts/build/builders/efr32.py b/scripts/build/builders/efr32.py
index 0f8abe07cb6865..d4a536a1e80ca2 100644
--- a/scripts/build/builders/efr32.py
+++ b/scripts/build/builders/efr32.py
@@ -120,7 +120,7 @@ def __init__(self,
self.extra_gn_options = ['efr32_board="%s"' % board.GnArgName()]
if enable_rpcs:
- self.extra_gn_options.append('import("//with_pw_rpc.gni")')
+ self.extra_gn_options.append('is_debug=false import("//with_pw_rpc.gni")')
if enable_ota_requestor:
self.extra_gn_options.append('chip_enable_ota_requestor=true')
diff --git a/scripts/build/builders/infineon.py b/scripts/build/builders/infineon.py
index d0b73611a318cc..1783faefa0ef75 100644
--- a/scripts/build/builders/infineon.py
+++ b/scripts/build/builders/infineon.py
@@ -38,13 +38,13 @@ def ExampleName(self):
def AppNamePrefix(self):
if self == InfineonApp.LOCK:
- return 'chip-p6-lock-example'
+ return 'chip-psoc6-lock-example'
elif self == InfineonApp.LIGHT:
- return 'chip-p6-lighting-example'
+ return 'chip-psoc6-lighting-example'
elif self == InfineonApp.ALL_CLUSTERS:
- return 'chip-p6-clusters-example'
+ return 'chip-psoc6-clusters-example'
elif self == InfineonApp.ALL_CLUSTERS_MINIMAL:
- return 'chip-p6-clusters-minimal-example'
+ return 'chip-psoc6-clusters-minimal-example'
else:
raise Exception('Unknown app type: %r' % self)
@@ -61,14 +61,14 @@ def FlashBundleName(self):
raise Exception('Unknown app type: %r' % self)
def BuildRoot(self, root):
- return os.path.join(root, 'examples', self.ExampleName(), 'p6')
+ return os.path.join(root, 'examples', self.ExampleName(), 'infineon/psoc6')
class InfineonBoard(Enum):
- P6BOARD = 1
+ PSOC6BOARD = 1
def GnArgName(self):
- if self == InfineonBoard.P6BOARD:
+ if self == InfineonBoard.PSOC6BOARD:
return 'CY8CKIT-062S2-43012'
@@ -78,7 +78,7 @@ def __init__(self,
root,
runner,
app: InfineonApp = InfineonApp.LOCK,
- board: InfineonBoard = InfineonBoard.P6BOARD,
+ board: InfineonBoard = InfineonBoard.PSOC6BOARD,
enable_ota_requestor: bool = False,
update_image: bool = False):
super(InfineonBuilder, self).__init__(
@@ -86,7 +86,7 @@ def __init__(self,
runner=runner)
self.app = app
- self.extra_gn_options = ['p6_board="%s"' % board.GnArgName()]
+ self.extra_gn_options = ['psoc6_board="%s"' % board.GnArgName()]
if enable_ota_requestor:
self.extra_gn_options.append('chip_enable_ota_requestor=true')
diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt
index fe98801f8ee5ac..ffbe1be7a1a4f2 100644
--- a/scripts/build/testdata/all_targets_except_host.txt
+++ b/scripts/build/testdata/all_targets_except_host.txt
@@ -178,22 +178,22 @@ imx-ota-provider-app
imx-ota-provider-app-release
imx-thermostat
imx-thermostat-release
-infineon-p6-all-clusters
-infineon-p6-all-clusters-minimal
-infineon-p6-all-clusters-minimal-ota (NOGLOB: Reduce default build variants)
-infineon-p6-all-clusters-minimal-ota-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-all-clusters-minimal-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-all-clusters-ota (NOGLOB: Reduce default build variants)
-infineon-p6-all-clusters-ota-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-all-clusters-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-light
-infineon-p6-light-ota (NOGLOB: Reduce default build variants)
-infineon-p6-light-ota-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-light-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-lock
-infineon-p6-lock-ota (NOGLOB: Reduce default build variants)
-infineon-p6-lock-ota-updateimage (NOGLOB: Reduce default build variants)
-infineon-p6-lock-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-all-clusters
+infineon-psoc6-all-clusters-minimal
+infineon-psoc6-all-clusters-minimal-ota (NOGLOB: Reduce default build variants)
+infineon-psoc6-all-clusters-minimal-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-all-clusters-minimal-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-all-clusters-ota (NOGLOB: Reduce default build variants)
+infineon-psoc6-all-clusters-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-all-clusters-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-light
+infineon-psoc6-light-ota (NOGLOB: Reduce default build variants)
+infineon-psoc6-light-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-light-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-lock
+infineon-psoc6-lock-ota (NOGLOB: Reduce default build variants)
+infineon-psoc6-lock-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-psoc6-lock-updateimage (NOGLOB: Reduce default build variants)
k32w-light-ota-se (NOGLOB: Only on demand build)
k32w-light-release-no-ota
k32w-lock-low-power-release (NOGLOB: Only on demand build)
diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt
index 6cb3d25fcf67a2..ea86e68d1139fd 100644
--- a/scripts/build/testdata/build_all_except_host.txt
+++ b/scripts/build/testdata/build_all_except_host.txt
@@ -173,25 +173,25 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-shell
# Generating cyw30739-cyw930739m2evb_01-light
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/cyw30739 {out}/cyw30739-cyw930739m2evb_01-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/cyw30739 {out}/cyw30739-cyw930739m2evb_01-light
# Generating cyw30739-cyw930739m2evb_01-lock
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/cyw30739 {out}/cyw30739-cyw930739m2evb_01-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/cyw30739 {out}/cyw30739-cyw930739m2evb_01-lock
# Generating cyw30739-cyw930739m2evb_01-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/cyw30739 {out}/cyw30739-cyw930739m2evb_01-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/infineon/cyw30739 {out}/cyw30739-cyw930739m2evb_01-ota-requestor
# Generating cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/cyw30739 --args=chip_progress_logging=false {out}/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/infineon/cyw30739 --args=chip_progress_logging=false {out}/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging
# Generating efr32-brd4161a-light
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-light
# Generating efr32-brd4161a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc
# Generating efr32-brd4161a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-rpc-with-ota-requestor
# Generating efr32-brd4161a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-with-ota-requestor
@@ -200,10 +200,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-lock
# Generating efr32-brd4161a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-lock-rpc
# Generating efr32-brd4161a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-rpc-with-ota-requestor
# Generating efr32-brd4161a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-with-ota-requestor
@@ -230,10 +230,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-light
# Generating efr32-brd4163a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-light-rpc
# Generating efr32-brd4163a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-rpc-with-ota-requestor
# Generating efr32-brd4163a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-with-ota-requestor
@@ -242,10 +242,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-lock
# Generating efr32-brd4163a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-lock-rpc
# Generating efr32-brd4163a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-rpc-with-ota-requestor
# Generating efr32-brd4163a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-with-ota-requestor
@@ -272,10 +272,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-light
# Generating efr32-brd4164a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-light-rpc
# Generating efr32-brd4164a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-rpc-with-ota-requestor
# Generating efr32-brd4164a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-with-ota-requestor
@@ -284,10 +284,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-lock
# Generating efr32-brd4164a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-lock-rpc
# Generating efr32-brd4164a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-rpc-with-ota-requestor
# Generating efr32-brd4164a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-with-ota-requestor
@@ -314,10 +314,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-light
# Generating efr32-brd4166a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-light-rpc
# Generating efr32-brd4166a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-rpc-with-ota-requestor
# Generating efr32-brd4166a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-with-ota-requestor
@@ -326,10 +326,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-lock
# Generating efr32-brd4166a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-lock-rpc
# Generating efr32-brd4166a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-rpc-with-ota-requestor
# Generating efr32-brd4166a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-with-ota-requestor
@@ -356,10 +356,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-light
# Generating efr32-brd4170a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-light-rpc
# Generating efr32-brd4170a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-rpc-with-ota-requestor
# Generating efr32-brd4170a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-with-ota-requestor
@@ -368,10 +368,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-lock
# Generating efr32-brd4170a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-lock-rpc
# Generating efr32-brd4170a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-rpc-with-ota-requestor
# Generating efr32-brd4170a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-with-ota-requestor
@@ -398,10 +398,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-light
# Generating efr32-brd4186a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-light-rpc
# Generating efr32-brd4186a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-rpc-with-ota-requestor
# Generating efr32-brd4186a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-with-ota-requestor
@@ -410,10 +410,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-lock
# Generating efr32-brd4186a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-lock-rpc
# Generating efr32-brd4186a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-rpc-with-ota-requestor
# Generating efr32-brd4186a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-with-ota-requestor
@@ -440,10 +440,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-light
# Generating efr32-brd4187a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-light-rpc
# Generating efr32-brd4187a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-rpc-with-ota-requestor
# Generating efr32-brd4187a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-with-ota-requestor
@@ -452,10 +452,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-lock
# Generating efr32-brd4187a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-lock-rpc
# Generating efr32-brd4187a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-rpc-with-ota-requestor
# Generating efr32-brd4187a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-with-ota-requestor
@@ -482,10 +482,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-light
# Generating efr32-brd4304a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-light-rpc
# Generating efr32-brd4304a-light-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-rpc-with-ota-requestor
# Generating efr32-brd4304a-light-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-with-ota-requestor
@@ -494,10 +494,10 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-lock
# Generating efr32-brd4304a-lock-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-lock-rpc
# Generating efr32-brd4304a-lock-rpc-with-ota-requestor
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-rpc-with-ota-requestor
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-rpc-with-ota-requestor
# Generating efr32-brd4304a-lock-with-ota-requestor
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-with-ota-requestor
@@ -843,53 +843,53 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
# Generating imx-thermostat-release
gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-thermostat-release
-# Generating infineon-p6-all-clusters
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-all-clusters
+# Generating infineon-psoc6-all-clusters
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-all-clusters
-# Generating infineon-p6-all-clusters-minimal
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-all-clusters-minimal
+# Generating infineon-psoc6-all-clusters-minimal
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-all-clusters-minimal
-# Generating infineon-p6-all-clusters-minimal-ota
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-all-clusters-minimal-ota
+# Generating infineon-psoc6-all-clusters-minimal-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-all-clusters-minimal-ota
-# Generating infineon-p6-all-clusters-minimal-ota-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-all-clusters-minimal-ota-updateimage
+# Generating infineon-psoc6-all-clusters-minimal-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-all-clusters-minimal-ota-updateimage
-# Generating infineon-p6-all-clusters-minimal-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-all-clusters-minimal-updateimage
+# Generating infineon-psoc6-all-clusters-minimal-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-all-clusters-minimal-updateimage
-# Generating infineon-p6-all-clusters-ota
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-all-clusters-ota
+# Generating infineon-psoc6-all-clusters-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-all-clusters-ota
-# Generating infineon-p6-all-clusters-ota-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-all-clusters-ota-updateimage
+# Generating infineon-psoc6-all-clusters-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-all-clusters-ota-updateimage
-# Generating infineon-p6-all-clusters-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-all-clusters-updateimage
+# Generating infineon-psoc6-all-clusters-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-all-clusters-updateimage
-# Generating infineon-p6-light
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-light
+# Generating infineon-psoc6-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-light
-# Generating infineon-p6-light-ota
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-light-ota
+# Generating infineon-psoc6-light-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-light-ota
-# Generating infineon-p6-light-ota-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-light-ota-updateimage
+# Generating infineon-psoc6-light-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-light-ota-updateimage
-# Generating infineon-p6-light-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-light-updateimage
+# Generating infineon-psoc6-light-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-light-updateimage
-# Generating infineon-p6-lock
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-lock
+# Generating infineon-psoc6-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-lock
-# Generating infineon-p6-lock-ota
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-lock-ota
+# Generating infineon-psoc6-lock-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-lock-ota
-# Generating infineon-p6-lock-ota-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-lock-ota-updateimage
+# Generating infineon-psoc6-lock-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-lock-ota-updateimage
-# Generating infineon-p6-lock-updateimage
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-lock-updateimage
+# Generating infineon-psoc6-lock-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-lock-updateimage
{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh
@@ -2103,53 +2103,53 @@ ninja -C {out}/imx-thermostat
# Building imx-thermostat-release
ninja -C {out}/imx-thermostat-release
-# Building infineon-p6-all-clusters
-ninja -C {out}/infineon-p6-all-clusters
+# Building infineon-psoc6-all-clusters
+ninja -C {out}/infineon-psoc6-all-clusters
-# Building infineon-p6-all-clusters-minimal
-ninja -C {out}/infineon-p6-all-clusters-minimal
+# Building infineon-psoc6-all-clusters-minimal
+ninja -C {out}/infineon-psoc6-all-clusters-minimal
-# Building infineon-p6-all-clusters-minimal-ota
-ninja -C {out}/infineon-p6-all-clusters-minimal-ota
+# Building infineon-psoc6-all-clusters-minimal-ota
+ninja -C {out}/infineon-psoc6-all-clusters-minimal-ota
-# Building infineon-p6-all-clusters-minimal-ota-updateimage
-ninja -C {out}/infineon-p6-all-clusters-minimal-ota-updateimage
+# Building infineon-psoc6-all-clusters-minimal-ota-updateimage
+ninja -C {out}/infineon-psoc6-all-clusters-minimal-ota-updateimage
-# Building infineon-p6-all-clusters-minimal-updateimage
-ninja -C {out}/infineon-p6-all-clusters-minimal-updateimage
+# Building infineon-psoc6-all-clusters-minimal-updateimage
+ninja -C {out}/infineon-psoc6-all-clusters-minimal-updateimage
-# Building infineon-p6-all-clusters-ota
-ninja -C {out}/infineon-p6-all-clusters-ota
+# Building infineon-psoc6-all-clusters-ota
+ninja -C {out}/infineon-psoc6-all-clusters-ota
-# Building infineon-p6-all-clusters-ota-updateimage
-ninja -C {out}/infineon-p6-all-clusters-ota-updateimage
+# Building infineon-psoc6-all-clusters-ota-updateimage
+ninja -C {out}/infineon-psoc6-all-clusters-ota-updateimage
-# Building infineon-p6-all-clusters-updateimage
-ninja -C {out}/infineon-p6-all-clusters-updateimage
+# Building infineon-psoc6-all-clusters-updateimage
+ninja -C {out}/infineon-psoc6-all-clusters-updateimage
-# Building infineon-p6-light
-ninja -C {out}/infineon-p6-light
+# Building infineon-psoc6-light
+ninja -C {out}/infineon-psoc6-light
-# Building infineon-p6-light-ota
-ninja -C {out}/infineon-p6-light-ota
+# Building infineon-psoc6-light-ota
+ninja -C {out}/infineon-psoc6-light-ota
-# Building infineon-p6-light-ota-updateimage
-ninja -C {out}/infineon-p6-light-ota-updateimage
+# Building infineon-psoc6-light-ota-updateimage
+ninja -C {out}/infineon-psoc6-light-ota-updateimage
-# Building infineon-p6-light-updateimage
-ninja -C {out}/infineon-p6-light-updateimage
+# Building infineon-psoc6-light-updateimage
+ninja -C {out}/infineon-psoc6-light-updateimage
-# Building infineon-p6-lock
-ninja -C {out}/infineon-p6-lock
+# Building infineon-psoc6-lock
+ninja -C {out}/infineon-psoc6-lock
-# Building infineon-p6-lock-ota
-ninja -C {out}/infineon-p6-lock-ota
+# Building infineon-psoc6-lock-ota
+ninja -C {out}/infineon-psoc6-lock-ota
-# Building infineon-p6-lock-ota-updateimage
-ninja -C {out}/infineon-p6-lock-ota-updateimage
+# Building infineon-psoc6-lock-ota-updateimage
+ninja -C {out}/infineon-psoc6-lock-ota-updateimage
-# Building infineon-p6-lock-updateimage
-ninja -C {out}/infineon-p6-lock-updateimage
+# Building infineon-psoc6-lock-updateimage
+ninja -C {out}/infineon-psoc6-lock-updateimage
# Building k32w-light-ota-se
ninja -C {out}/k32w-light-ota-se
diff --git a/scripts/build/testdata/glob_star_targets_except_host.txt b/scripts/build/testdata/glob_star_targets_except_host.txt
index d7090c2c52ccfd..9d7a22bfc4c937 100644
--- a/scripts/build/testdata/glob_star_targets_except_host.txt
+++ b/scripts/build/testdata/glob_star_targets_except_host.txt
@@ -72,10 +72,10 @@ imx-ota-provider-app
imx-ota-provider-app-release
imx-thermostat
imx-thermostat-release
-infineon-p6-all-clusters
-infineon-p6-all-clusters-minimal
-infineon-p6-light
-infineon-p6-lock
+infineon-psoc6-all-clusters
+infineon-psoc6-all-clusters-minimal
+infineon-psoc6-light
+infineon-psoc6-lock
k32w-light-release-no-ota
k32w-lock-release
k32w-shell-release
diff --git a/scripts/checkout_submodules.py b/scripts/checkout_submodules.py
index b150b8df71253e..c98f54c249e418 100755
--- a/scripts/checkout_submodules.py
+++ b/scripts/checkout_submodules.py
@@ -30,15 +30,14 @@
'bl602',
'cc13x2_26x2',
'cc32xx',
- 'cyw30739',
'darwin',
'efr32',
'esp32',
+ 'infineon',
'k32w0',
'linux',
'mbed',
'nrfconnect',
- 'p6',
'qpg',
'telink',
'tizen',
diff --git a/scripts/examples/gn_p6_example.sh b/scripts/examples/gn_psoc6_example.sh
similarity index 95%
rename from scripts/examples/gn_p6_example.sh
rename to scripts/examples/gn_psoc6_example.sh
index 746c2d743779e4..403063ff575f0d 100755
--- a/scripts/examples/gn_p6_example.sh
+++ b/scripts/examples/gn_psoc6_example.sh
@@ -43,7 +43,7 @@ env
EXAMPLE_DIR=$1
shift
OUTPUT_DIR=out/example_app
-P6_BOARD=CY8CKIT-062S2-43012
+PSOC6_BOARD=CY8CKIT-062S2-43012
if [[ ! -z "$1" ]]; then
OUTPUT_DIR=$1
@@ -70,7 +70,7 @@ for arg; do
esac
done
-gn gen --check --fail-on-unused-args "$OUTPUT_DIR" --root="$EXAMPLE_DIR" --args="p6_board=\"$P6_BOARD\" ${GN_ARGS[*]}"
+gn gen --check --fail-on-unused-args "$OUTPUT_DIR" --root="$EXAMPLE_DIR" --args="psoc6_board=\"$PSOC6_BOARD\" ${GN_ARGS[*]}"
ninja -C "$OUTPUT_DIR" "${NINJA_ARGS[@]}"
#print stats
arm-none-eabi-size -A "$OUTPUT_DIR"/*.out
diff --git a/scripts/flashing/p6_firmware_utils.py b/scripts/flashing/psoc6_firmware_utils.py
similarity index 90%
rename from scripts/flashing/p6_firmware_utils.py
rename to scripts/flashing/psoc6_firmware_utils.py
index 0fe247247b4070..aeef78030a1d74 100755
--- a/scripts/flashing/p6_firmware_utils.py
+++ b/scripts/flashing/psoc6_firmware_utils.py
@@ -12,18 +12,18 @@
# 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.
-"""Flash an P6 device.
+"""Flash an Infineon PSoC6 device.
This is layered so that a caller can perform individual operations
through an `Flasher` instance, or operations according to a command line.
For `Flasher`, see the class documentation. For the parse_command()
interface or standalone execution:
-usage: p6_firmware_utils.py [-h] [--verbose] [--erase] [--application FILE]
+usage: psoc6_firmware_utils.py [-h] [--verbose] [--erase] [--application FILE]
[--verify_application] [--reset] [--skip_reset]
[--device DEVICE]
-Flash P6 device
+Flash PSoC6 device
optional arguments:
-h, --help show this help message and exit
@@ -64,7 +64,7 @@
"-C",
{'option': 'sdk_path'},
['TARGET={device}'],
- ['CY_OPENOCD_PROGRAM_IMG=../../../{application}'],
+ ['CY_OPENOCD_PROGRAM_IMG=../../../../{application}'],
{'option': 'mtb_target'}
],
'verify': ['{make}', '--version'],
@@ -77,15 +77,15 @@
},
'device': {
'help': 'Device family or platform to target',
- 'default': 'P6',
+ 'default': 'PSoC6',
'alias': ['-d'],
'argparse': {
'metavar': 'DEVICE'
},
},
'sdk_path': {
- 'help': 'Path to p6 sdk',
- 'default': 'third_party/p6/p6_sdk',
+ 'help': 'Path to psoc6 sdk',
+ 'default': 'third_party/infineon/psoc6/psoc6_sdk',
'alias': ['-p'],
'argparse': {
'metavar': 'SDK_PATH'
@@ -96,10 +96,10 @@
class Flasher(firmware_utils.Flasher):
- """Manage P6 flashing."""
+ """Manage PSoC6 flashing."""
def __init__(self, **options):
- super().__init__(platform='P6', module=__name__, **options)
+ super().__init__(platform='PSOC6', module=__name__, **options)
self.define_options(P6_OPTIONS)
def erase(self):
diff --git a/scripts/requirements.esp32.txt b/scripts/requirements.esp32.txt
index c870b03a23cd56..4bf5479986c5a2 100644
--- a/scripts/requirements.esp32.txt
+++ b/scripts/requirements.esp32.txt
@@ -1,12 +1,12 @@
-click>=7.0
-future>=0.15.2
-pyparsing>=2.0.3,<2.4.0
-idf-component-manager>=0.2.99-beta
-gdbgui==0.13.2.0
-pygdbmi<=0.9.0.2
-reedsolo>=1.5.3,<=1.5.4
-bitstring>=3.1.6
-ecdsa>=0.16.0
-kconfiglib==13.7.1
-construct==2.10.54
-python-socketio<5
+click>=7.0 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+future>=0.15.2 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+pyparsing>=2.0.3,<2.4.0 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+idf-component-manager>=0.2.99-beta ; platform_machine != 'aarch64' and sys_platform == 'linux'
+gdbgui==0.13.2.0 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+pygdbmi<=0.9.0.2 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+reedsolo>=1.5.3,<=1.5.4 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+bitstring>=3.1.6 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+ecdsa>=0.16.0 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+kconfiglib==13.7.1 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+construct==2.10.54 ; platform_machine != 'aarch64' and sys_platform == 'linux'
+python-socketio<5 ; platform_machine != 'aarch64' and sys_platform == 'linux'
diff --git a/scripts/tools/check_includes_config.py b/scripts/tools/check_includes_config.py
index 30b66bcd01fddd..3ab64a2f9250be 100644
--- a/scripts/tools/check_includes_config.py
+++ b/scripts/tools/check_includes_config.py
@@ -40,7 +40,7 @@
'/platform/Ameba/',
'/platform/android/',
'/platform/Beken/',
- '/platform/CYW30739/',
+ '/platform/Infineon/CYW30739/',
'/platform/Darwin/',
'/platform/EFR32/',
'/platform/ESP32/',
@@ -48,7 +48,7 @@
'/platform/Linux/',
'/platform/nxp/',
'/platform/Tizen/',
- '/platform/P6/',
+ '/platform/Infineon/PSOC6/',
'/platform/bouffalolab/BL602',
'/platform/webos/',
r'POSIX\.h$',
diff --git a/scripts/tools/convert_ini.py b/scripts/tools/convert_ini.py
index a8c17157ffd802..d1abd22c4498df 100755
--- a/scripts/tools/convert_ini.py
+++ b/scripts/tools/convert_ini.py
@@ -21,6 +21,8 @@
import click
import typing
import re
+from os.path import exists
+import logging
def convert_ini_to_json(ini_dir: str, json_path: str):
@@ -32,39 +34,55 @@ def convert_ini_to_json(ini_dir: str, json_path: str):
"""
python_json_store = {}
- python_json_store['repl-config'] = {
- 'fabricAdmins': {
- '1': {
- 'fabricId': 1,
- 'vendorId': 65521
- },
- '2': {
- 'fabricId': 2,
- 'vendorId': 65521
- },
- '3': {
- 'fabricId': 3,
- 'vendorId': 65521
- }
- }
- }
-
- python_json_store['sdk-config'] = {}
-
- load_ini_into_dict(ini_file=ini_dir + '/chip_tool_config.alpha.ini',
- json_dict=python_json_store['sdk-config'], replace_suffix='1')
- load_ini_into_dict(ini_file=ini_dir + '/chip_tool_config.beta.ini',
- json_dict=python_json_store['sdk-config'], replace_suffix='2')
- load_ini_into_dict(ini_file=ini_dir + '/chip_tool_config.gamma.ini',
- json_dict=python_json_store['sdk-config'], replace_suffix='3')
+ ini_file_paths = ['/chip_tool_config.alpha.ini', '/chip_tool_config.beta.ini', '/chip_tool_config.gamma.ini']
+ counter = 1
+
+ for path in ini_file_paths:
+ full_path = ini_dir + path
+ if (exists(full_path)):
+ logging.critical(f"Found chip tool INI file at: {full_path} - Converting...")
+ create_repl_config_from_init(ini_file=full_path,
+ json_dict=python_json_store, replace_suffix=str(counter))
+ counter = counter + 1
json_file = open(json_path, 'w')
json.dump(python_json_store, json_file, ensure_ascii=True, indent=4)
+def create_repl_config_from_init(ini_file: str, json_dict: typing.Dict, replace_suffix: str):
+ ''' This updates a provided JSON dictionary to create a REPL compliant configuration store that
+ contains the correct 'repl-config' and 'sdk-config' keys built from the provided chip-tool
+ INI file that contains the root public keys. The INI file will typically be named
+ with the word 'alpha', 'beta' or 'gamma' in the name.
+
+ ini_file: Path to source INI file
+ json_dict: JSON dictionary to be updated. Multiple passes through this function using
+ the same dictionary is possible.
+ replace_suffix: The credentials in the INI file typically have keys that end with 0. This suffix
+ can be replaced with a different number.
+ '''
+ if ('repl-config' not in json_dict):
+ json_dict['repl-config'] = {}
+
+ if ('caList' not in json_dict['repl-config']):
+ json_dict['repl-config']['caList'] = {}
+
+ json_dict['repl-config']['caList'][replace_suffix] = [
+ {'fabricId': int(replace_suffix), 'vendorId': 0XFFF1}
+ ]
+
+ if ('sdk-config' not in json_dict):
+ json_dict['sdk-config'] = {}
+
+ load_ini_into_dict(ini_file=ini_file, json_dict=json_dict['sdk-config'], replace_suffix=replace_suffix)
+
+
def load_ini_into_dict(ini_file: str, json_dict: typing.Dict, replace_suffix: str):
- """ Loads the specific INI file into the provided dictionary. A 'replace_suffix' string
+ """ Loads the specific INI file containing CA credential information into the provided dictionary. A 'replace_suffix' string
has to be provided to convert the existing numerical suffix to a different value.
+
+ NOTE: This does not do any conversion of the keys into a format acceptable by the Python REPL environment. Please see
+ create_repl_config_from_init above if that is desired.
"""
config = ConfigParser()
diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt
index 10d7c32e994a9e..6e3833820716a3 100644
--- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt
+++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt
@@ -20,6 +20,7 @@ package com.google.chip.chiptool
import android.content.Context
import android.util.Log
import chip.devicecontroller.ChipDeviceController
+import chip.devicecontroller.ControllerParams
import chip.devicecontroller.GetConnectedDeviceCallbackJni.GetConnectedDeviceCallback
import chip.platform.AndroidBleManager
import chip.platform.AndroidChipPlatform
@@ -38,12 +39,14 @@ object ChipClient {
private const val TAG = "ChipClient"
private lateinit var chipDeviceController: ChipDeviceController
private lateinit var androidPlatform: AndroidChipPlatform
+ /* 0xFFF4 is a test vendor ID, replace with your assigned company ID */
+ private const val VENDOR_ID = 0xFFF4
fun getDeviceController(context: Context): ChipDeviceController {
getAndroidChipPlatform(context)
if (!this::chipDeviceController.isInitialized) {
- chipDeviceController = ChipDeviceController()
+ chipDeviceController = ChipDeviceController(ControllerParams.newBuilder().setControllerVendorId(VENDOR_ID).build())
}
return chipDeviceController
}
diff --git a/src/app/EventLogging.h b/src/app/EventLogging.h
index b2ce7667ab2364..f9fa56837f07e9 100644
--- a/src/app/EventLogging.h
+++ b/src/app/EventLogging.h
@@ -73,7 +73,7 @@ CHIP_ERROR LogEvent(const T & aEventData, EndpointId aEndpoint, EventNumber & aE
eventOptions.mPriority = aEventData.GetPriorityLevel();
eventOptions.mFabricIndex = aEventData.GetFabricIndex();
// this skips logging the event if it's fabric-scoped but no fabric association exists yet.
- VerifyOrReturnError(eventOptions.mFabricIndex != kUndefinedFabricIndex, CHIP_NO_ERROR);
+ VerifyOrReturnError(eventOptions.mFabricIndex != kUndefinedFabricIndex, CHIP_ERROR_INVALID_FABRIC_INDEX);
//
// Unlike attributes which have a different 'EncodeForRead' for fabric-scoped structs,
diff --git a/src/app/clusters/fault-injection-server/fault-injection-server.cpp b/src/app/clusters/fault-injection-server/fault-injection-server.cpp
index 83e1e678f8e8e2..925640c8ce8d00 100644
--- a/src/app/clusters/fault-injection-server/fault-injection-server.cpp
+++ b/src/app/clusters/fault-injection-server/fault-injection-server.cpp
@@ -36,21 +36,14 @@ using namespace chip::app;
using namespace chip::app::Clusters::FaultInjection;
using chip::Protocols::InteractionModel::Status;
-bool emberAfFaultInjectionClusterFailAtFaultCallback(CommandHandler * commandObj, const ConcreteCommandPath & commandPath,
- const Commands::FailAtFault::DecodableType & commandData)
-{
- if (commandPath.mClusterId != Clusters::FaultInjection::Id)
- {
- // We shouldn't have been called at all.
- commandObj->AddStatus(commandPath, Status::UnsupportedCluster);
- return true;
- }
+namespace {
#if CHIP_WITH_NLFAULTINJECTION
- Status returnStatus = Status::Success;
+nl::FaultInjection::Manager * GetFaultInjectionManager(FaultType type)
+{
nl::FaultInjection::Manager * faultInjectionMgr = nullptr;
- switch (commandData.type)
+ switch (type)
{
case FaultType::kSystemFault:
faultInjectionMgr = &chip::System::FaultInjection::GetManager();
@@ -62,11 +55,29 @@ bool emberAfFaultInjectionClusterFailAtFaultCallback(CommandHandler * commandObj
faultInjectionMgr = &chip::FaultInjection::GetManager();
break;
default:
- ChipLogError(Zcl, "FaultInjection: Unsupported Fault type received");
- returnStatus = Status::InvalidCommand;
break;
}
+ return faultInjectionMgr;
+}
+#endif
+
+} // anonymous namespace
+
+bool emberAfFaultInjectionClusterFailAtFaultCallback(CommandHandler * commandObj, const ConcreteCommandPath & commandPath,
+ const Commands::FailAtFault::DecodableType & commandData)
+{
+ if (commandPath.mClusterId != Clusters::FaultInjection::Id)
+ {
+ // We shouldn't have been called at all.
+ commandObj->AddStatus(commandPath, Status::UnsupportedCluster);
+ return true;
+ }
+
+#if CHIP_WITH_NLFAULTINJECTION
+ Status returnStatus = Status::Success;
+ nl::FaultInjection::Manager * faultInjectionMgr = GetFaultInjectionManager(commandData.type);
+
if (faultInjectionMgr != nullptr)
{
ChipLogProgress(Zcl, "FaultInjection: Configure a fault of type: %d and Id: %d to be triggered deterministically",
@@ -93,4 +104,49 @@ bool emberAfFaultInjectionClusterFailAtFaultCallback(CommandHandler * commandObj
return true;
}
+bool emberAfFaultInjectionClusterFailRandomlyAtFaultCallback(CommandHandler * commandObj, const ConcreteCommandPath & commandPath,
+ const Commands::FailRandomlyAtFault::DecodableType & commandData)
+{
+ if (commandPath.mClusterId != Clusters::FaultInjection::Id)
+ {
+ // We shouldn't have been called at all.
+ commandObj->AddStatus(commandPath, Status::UnsupportedCluster);
+ return true;
+ }
+
+ if (commandData.percentage > 100)
+ {
+ commandObj->AddStatus(commandPath, Status::InvalidCommand);
+ return true;
+ }
+
+#if CHIP_WITH_NLFAULTINJECTION
+ Status returnStatus = Status::Success;
+ nl::FaultInjection::Manager * faultInjectionMgr = GetFaultInjectionManager(commandData.type);
+
+ if (faultInjectionMgr != nullptr)
+ {
+ ChipLogProgress(Zcl, "FaultInjection: Configure a fault of type: %d and Id: %d to be triggered randomly",
+ static_cast(commandData.type), commandData.id);
+ int32_t err = faultInjectionMgr->FailRandomlyAtFault(commandData.id, commandData.percentage);
+
+ if (err != 0)
+ {
+ ChipLogError(Zcl, "FaultInjection: Pass invalid inputs to FailAtFault");
+ returnStatus = Status::InvalidCommand;
+ }
+ }
+ else
+ {
+ ChipLogError(Zcl, "FaultInjection: Failed to get Fault Injection manager");
+ returnStatus = Status::Failure;
+ }
+#else
+ Status returnStatus = Status::UnsupportedCommand;
+#endif // CHIP_WITH_NLFAULTINJECTION
+
+ commandObj->AddStatus(commandPath, returnStatus);
+ return true;
+}
+
void MatterFaultInjectionPluginServerInitCallback() {}
diff --git a/src/app/clusters/ota-requestor/DefaultOTARequestor.cpp b/src/app/clusters/ota-requestor/DefaultOTARequestor.cpp
index f31bb2e0c5408a..f96b85ed9b4963 100644
--- a/src/app/clusters/ota-requestor/DefaultOTARequestor.cpp
+++ b/src/app/clusters/ota-requestor/DefaultOTARequestor.cpp
@@ -767,6 +767,7 @@ CHIP_ERROR DefaultOTARequestor::SendQueryImageRequest(Messaging::ExchangeManager
args.location.SetValue(CharSpan("XX", strlen("XX")));
}
+ args.metadataForProvider = mMetadataForProvider;
Controller::OtaSoftwareUpdateProviderCluster cluster(exchangeMgr, sessionHandle, mProviderLocation.Value().endpoint);
return cluster.InvokeCommand(args, this, OnQueryImageResponse, OnQueryImageFailure);
diff --git a/src/app/clusters/ota-requestor/DefaultOTARequestor.h b/src/app/clusters/ota-requestor/DefaultOTARequestor.h
index 9f9902858c3141..938f2be59f671a 100644
--- a/src/app/clusters/ota-requestor/DefaultOTARequestor.h
+++ b/src/app/clusters/ota-requestor/DefaultOTARequestor.h
@@ -92,6 +92,10 @@ class DefaultOTARequestor : public OTARequestorInterface, public BDXDownloader::
void GetProviderLocation(Optional & providerLocation) override { providerLocation = mProviderLocation; }
+ // Set the metadata value for the provider to be used in the next query and OTA update process
+ // NOTE: Does not persist across reboot.
+ void SetMetadataForProvider(ByteSpan metadataForProvider) override { mMetadataForProvider.SetValue(metadataForProvider); }
+
// Add a default OTA provider to the cached list
CHIP_ERROR AddDefaultOtaProvider(const ProviderLocationType & providerLocation) override;
@@ -319,6 +323,7 @@ class DefaultOTARequestor : public OTARequestorInterface, public BDXDownloader::
BDXDownloader * mBdxDownloader = nullptr; // TODO: this should be OTADownloader
BDXMessenger mBdxMessenger; // TODO: ideally this is held by the application
uint8_t mUpdateTokenBuffer[kMaxUpdateTokenLen];
+ Optional mMetadataForProvider;
ByteSpan mUpdateToken;
uint32_t mCurrentVersion = 0;
uint32_t mTargetVersion = 0;
diff --git a/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp b/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp
index 5183026932c927..f2e4f6870c4db4 100644
--- a/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp
+++ b/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp
@@ -388,6 +388,13 @@ void DefaultOTARequestorDriver::StopPeriodicQueryTimer()
CancelDelayedAction(PeriodicQueryTimerHandler, this);
}
+void DefaultOTARequestorDriver::RekickPeriodicQueryTimer(void)
+{
+ ChipLogProgress(SoftwareUpdate, "Rekicking the Periodic Query timer");
+ StopPeriodicQueryTimer();
+ StartPeriodicQueryTimer();
+}
+
void DefaultOTARequestorDriver::WatchdogTimerHandler(System::Layer * systemLayer, void * appState)
{
DefaultOTARequestorDriver * driver = ToDriver(appState);
diff --git a/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.h b/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.h
index 0d76af626d6dc6..4a643da36e1251 100644
--- a/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.h
+++ b/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.h
@@ -52,6 +52,9 @@ class DefaultOTARequestorDriver : public OTARequestorDriver
}
}
+ // Restart the periodic query timer
+ void RekickPeriodicQueryTimer(void);
+
// Set the timeout (in seconds) for the watchdog timer; must be non-zero
void SetWatchdogTimeout(uint32_t timeout)
{
diff --git a/src/app/clusters/ota-requestor/OTARequestorInterface.h b/src/app/clusters/ota-requestor/OTARequestorInterface.h
index f24563d36c3c79..bd09f833971cc0 100644
--- a/src/app/clusters/ota-requestor/OTARequestorInterface.h
+++ b/src/app/clusters/ota-requestor/OTARequestorInterface.h
@@ -203,6 +203,9 @@ class OTARequestorInterface
// Set the provider location to be used in the next query and OTA update process
virtual void SetCurrentProviderLocation(ProviderLocationType providerLocation) = 0;
+ // Set the metadata value for the provider to be used in the next query and OTA update process
+ virtual void SetMetadataForProvider(chip::ByteSpan metadataForProvider) = 0;
+
// If there is an OTA update in progress, returns the provider location for the current OTA update, otherwise, returns the
// provider location that was last used
virtual void GetProviderLocation(Optional & providerLocation) = 0;
diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml
index 1a05e449616317..a953e5b9568b2a 100644
--- a/src/app/tests/suites/certification/PICS.yaml
+++ b/src/app/tests/suites/certification/PICS.yaml
@@ -5490,3 +5490,68 @@ PICS:
"Is the device a Server and capable of generating large data which is
greater than 1 MTU(1280 bytes)"
id: MCORE.IDM.S.LargeData
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Bool"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bool
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ String"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_String
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Unsigned Integer"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_UnsignedInteger
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Signed Integer"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_SignedInteger
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Struct"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_Struct
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Floating Point"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_FloatingPoint
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ List"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_List
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Octet String"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_OctetString
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Enum"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_Enum
+
+ - label:
+ "Is the device a Client and supports writing an attribute of DataType
+ Bitmap"
+ id: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bitmap
+
+ - label:
+ "Is the device a Client and supports subscribing to an attribute of
+ DataType Bool"
+ id: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Bool
+
+ - label:
+ "Is the device a Client and supports subscribing to an attribute of
+ DataType String"
+ id: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_String
+
+ - label:
+ "Is the device a Client and supports subscribing for multiple
+ attribute"
+ id: MCORE.IDM.C.SubscribeRequest.MultipleAttributes
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml
index 839480f42307ce..6f1fdcd88a860a 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_10.yaml
@@ -24,6 +24,20 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ 1.N1 is the node ID of TH1
+
+ 2.N2 is the node ID of TH2
+
+ 2.D_OK_EMPTY:"1718" which is an octstr of length 2 containing valid TLV:
+
+ - top-level anonymous list (empty)
+ 3.D_OK_SINGLE:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
DUT
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml
index 57e02159a3319b..a0ecce5d17f816 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_3.yaml
@@ -24,9 +24,58 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ Notes
+
+ 1.N1 is the node ID of TH1
+
+ 2.D_OK_EMPTY:"1718" which is an octstr of length 2 containing valid TLV:
+
+ - top-level anonymous list (empty)
+
+ 3.D_OK_SINGLE:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form
+
+ 4.D_OK_FULL:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018" which is an octstr of length 128 containing valid TLV:
+
+ - top-level anonymous list, containing - two elements with profile-specific tag in fully-qualified form
+
+ 5.D_BAD_LENGTH:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018" which is an octstr of length 129 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form
+
+ 6 .D_BAD_STRUCT: "1518" which is an octstr of length 2 containing valid TLV:
+
+ - top-level anonymous struct, empty
+
+ 7.D_BAD_LIST:"3701D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level list with context-specific tag, containing - one element with profile-specific tag in fully-qualified form
+
+ 8.D_BAD_ELEM:"17103D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with anonymous tag
+
+ 9 .D_BAD_OVERFLOW: "17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018FF" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form - but having extra bytes after the top level list end-of-container
+
+ 10.D_BAD_UNDERFLOW:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700" which is an octstr of length 50-100 containing invalid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form - but lacking the top-level list end-of-container
+
+ 11.D_BAD_NONE: "" which is an octstr of length 0
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
- verification step to be updated.
+ DUT
+ sudo ./chip-all-clusters-app
+
+ TH1
+ ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841
disabled: true
- label:
@@ -63,7 +112,7 @@ tests:
struct: Data field: D_OK_EMPTY : 1718"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"1718"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"1718"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element
@@ -160,7 +209,7 @@ tests:
:17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element .
@@ -289,7 +338,7 @@ tests:
which is an octstr of length 128 containing valid TLV:"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003148656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E0018"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element
[1656417544.279572][3888:3893] CHIP:DMG: WriteResponseMessage =
@@ -407,7 +456,7 @@ tests:
:17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element which Returns CONSTRAINT_ERROR (0x87)
@@ -436,7 +485,7 @@ tests:
struct Data field: D_BAD_STRUCT : 1518"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"1518"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"1518"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, contains the list of AccessControlExtensionStruct containing 1 element which Returns CONSTRAINT_ERROR (0x87)
@@ -463,7 +512,7 @@ tests:
:3701D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"3701D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"3701D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element which Returns CONSTRAINT_ERROR (0x87)
@@ -490,7 +539,7 @@ tests:
:17103D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"17103D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"17103D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element Returns CONSTRAINT_ERROR (0x87)
@@ -518,7 +567,7 @@ tests:
17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018FF"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018FF"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018FF"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element Returns CONSTRAINT_ERROR (0x87)
@@ -545,7 +594,7 @@ tests:
:17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700"}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element, Returns CONSTRAINT_ERROR (0x87)
@@ -570,7 +619,7 @@ tests:
1.struct Data field: D_BAD_NOnE"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":""}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":""}]' 1 0
On TH1(Chiptool) , Verify AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 1 element, Returns CONSTRAINT_ERROR (0x87)
@@ -600,7 +649,7 @@ tests:
17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[{"data":"1718"},{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]" 1 0
+ ./chip-tool accesscontrol write extension '[{"data":"1718"},{"data":"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018"}]' 1 0
On TH1(Chiptool) , Verify Successfully AccessControl cluster Extension attribute, value is list of AccessControlExtensionStruct containing 2 elements and CONSTRAINT_ERROR (0x87) for second element path
@@ -696,7 +745,7 @@ tests:
value is an empty list"
PICS: ACL.S.A0001
verification: |
- ./chip-tool accesscontrol write extension "[]" 1 0
+ ./chip-tool accesscontrol write extension '[]' 1 0
On TH1(Chiptool) , Verify Successfully,AccessControl cluster Extension attribute, value is an empty list
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml
index 9e74143347d01c..03dba82825bc9b 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml
@@ -26,7 +26,11 @@ config:
tests:
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
- verification step to be updated.
+ DUT
+ sudo ./chip-all-clusters-app
+
+ TH1
+ ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841
disabled: true
- label:
@@ -88,9 +92,9 @@ tests:
888] Targets field: [{Cluster: 55}, {Endpoint: 66}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
{ "privilege": 1, "authMode": 3, "subjects": [111,222,333,444], "targets": [{"cluster":11 , "endpoint":22, "deviceType": null}]},
- { "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets": [{"cluster": 55, "endpoint": 66, "deviceType":null }]}]" 1 0
+ { "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets": [{"cluster": 55, "endpoint": 66, "deviceType":null }]}]' 1 0
On TH1(Chiptool), Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements
[1658323877.660699][2502:2507] CHIP:DMG: WriteClient moving to [ResponseRe]
[1658323877.660829][2502:2507] CHIP:DMG: WriteResponseMessage =
@@ -235,7 +239,7 @@ tests:
666, 555] Targets field: [{Cluster: 88}, {Endpoint: 77}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 4, "authMode": 2, "subjects": [444,333,222,111], "targets": [{"cluster":44 , "endpoint":33, "deviceType":null}]},{ "privilege":4 , "authMode":3, "subjects": [888,777,666,555], "targets": [{"cluster": 88, "endpoint": 77, "deviceType":null}]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 4, "authMode": 2, "subjects": [444,333,222,111], "targets": [{"cluster":44 , "endpoint":33, "deviceType":null}]},{ "privilege":4 , "authMode":3, "subjects": [888,777,666,555], "targets": [{"cluster": 88, "endpoint": 77, "deviceType":null}]}]' 1 0
On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements
1658226959.554674][4736:4741] CHIP:DMG: AttributeStatusIBs =
@@ -377,7 +381,7 @@ tests:
Endpoint: 66}, {Cluster: 77, DeviceType: 88}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [111,222,333,444], "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [111,222,333,444], "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": [555,666,777,888], "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]' 1 0
On TH1(Chiptool), Verify the Successfully to acl attribute with a value is list of AccessControlEntryStruct containing 3 elements
1657276276.708941][2297:2302] CHIP:DMG: WriteClient moving to [ResponseRe]
[1657276276.709021][2297:2302] CHIP:DMG: WriteResponseMessage =
@@ -535,7 +539,7 @@ tests:
DeviceType: 88}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [], "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": [], "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 1, "authMode": 2, "subjects": [], "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": null },{ "cluster": 33, "endpoint": null, "deviceType": 44 }]}, { "privilege": 3, "authMode": 3, "subjects": [], "targets":[{ "cluster": 55, "endpoint": 66, "deviceType": null },{ "cluster": 77, "endpoint": null, "deviceType": 88 }]}]' 1 0
On TH1(Chiptool) , Verify Successfully AccessControl cluster ACL attribute value is list of AccessControlEntryStruct containing 3 elements
[1657541707.114348][3004:3009] CHIP:DMG: {
@@ -686,9 +690,9 @@ tests:
Group (3) Subjects field: [555, 666, 777, 888] Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
{ "privilege": 1, "authMode": 2, "subjects": [111, 222, 333, 444], "targets": null},
- { "privilege": 3, "authMode": 3, "subjects": [555, 666, 777, 888], "targets": null}]" 1 0
+ { "privilege": 3, "authMode": 3, "subjects": [555, 666, 777, 888], "targets": null}]' 1 0
On TH1(Chiptool) , Verify Successfully to acl attribute value is list of AccessControlEntryStruct containing 3 elements as Target Null.
[1657542060.230268][3398:3403] CHIP:DMG: {
@@ -819,8 +823,8 @@ tests:
AuthMode field: Group (3) Subjects field: null Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 3, "subjects": null, "targets": null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 3, "subjects": null, "targets": null}]' 1 0
On TH1(Chiptool) , Verify Successfully to acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Target Null
@@ -866,7 +870,7 @@ tests:
[1656507141.631353][3224:3229] CHIP:DMG: AttributePathIB =
[1656507141.631426][3224:3229] CHIP:DMG: {
[1656507141.631501][3224:3229] CHIP:DMG: Endpoint = 0x0,
- [1656507141.631584][3224:3229] CHIP:DMG: Cluster = 0x1f,
+ [1656507141.631584][3224:3229] CHIP:DMG: Cluster = 0x1f,
[1656507141.631664][3224:3229] CHIP:DMG: Attribute = 0x0000_0000,
[1656507141.631742][3224:3229] CHIP:DMG: ListIndex = Null,
[1656507141.631824][3224:3229] CHIP:DMG: }
@@ -925,8 +929,8 @@ tests:
(2) AuthMode field: CASE (2) Subjects field: null Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 2, "authMode": 2, "subjects": null, "targets": null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 2, "authMode": 2, "subjects": null, "targets": null}]' 1 0
On TH1(Chiptool), Verify Successfully that acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Subject and Target as null
[1656507439.868495][3249:3254] CHIP:DMG: WriteClient moving to [ResponseRe]
[1656507439.868612][3249:3254] CHIP:DMG: WriteResponseMessage =
@@ -1050,7 +1054,7 @@ tests:
node IDs (stored as SUBJECTS) Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects":[33,44,55,66] , "targets": null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects":[33,44,55,66] , "targets": null}]' 1 0
On TH1(Chiptool), Verify Successfully acl attribute with a value is list of AccessControlEntryStruct containing 2 elements as Subject as SUBJECTS and Target as null
@@ -1160,8 +1164,8 @@ tests:
Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 2, "subjects":[65520,65521,65522,65523] , "targets": null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 2, "subjects":[65520,65521,65522,65523] , "targets": null}]' 1 0
On TH1(Chiptool) , Verify Successfully acl attribute value is list of AccessControlEntryStruct containing 2 elements , Subjects as CAT Values and Target as null
[1656509348.174135][3403:3408] CHIP:DMG: WriteClient moving to [ResponseRe]
@@ -1289,7 +1293,7 @@ tests:
MAXTARGETS targets {Cluster: random} (stored as TARGETS)"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 40, "endpoint": null, "deviceType": null },{ "cluster": 28, "endpoint": null, "deviceType": null }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 40, "endpoint": null, "deviceType": null },{ "cluster": 28, "endpoint": null, "deviceType": null }]}]' 1 0
On TH1(Chiptool) , Verify Successfully acl attribute with value is list of AccessControlEntryStruct containing 2 elements , Subjects as null and and Target as null
@@ -1436,9 +1440,9 @@ tests:
field: null subsequent elements same as second element"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": null, "targets": null},
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": null, "targets": null},
{ "privilege": 3, "authMode": 2, "subjects": [], "targets":null},
- { "privilege": 3, "authMode": 2, "subjects": [], "targets":null}]" 1 0
+ { "privilege": 3, "authMode": 2, "subjects": [], "targets":null}]' 1 0
On TH1(Chiptool) , Verify Successfully that acl attribute value is list of AccessControlEntryStruct containing MAXENTRIES elements
@@ -1559,8 +1563,8 @@ tests:
AuthMode field: PASE (1) Subjects field: null Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{"privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 1, "subjects": [], "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{"privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 1, "subjects": [], "targets":null}]' 1 0
On TH1(Chiptool) , Verify Successfully acl attribute value is list of AccessControlEntryStruct containing 2 elements and Returns CONSTRAINT_ERROR (0x87) for second element path
[1658475475.310438][3113:3119] CHIP:DMG: {
@@ -1704,8 +1708,8 @@ tests:
(5) AuthMode field: Group (3) Subjects field: null Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 5, "authMode": 3, "subjects": [], "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 5, "authMode": 3, "subjects": [], "targets":null}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements as Subject null and Target null for second element path Returns CONSTRAINT_ERROR (0x87)
[1658475916.602576][3151:3156] CHIP:DMG: WriteResponseMessage =
@@ -1780,8 +1784,8 @@ tests:
field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 6, "authMode": 2, "subjects": null, "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 6, "authMode": 2, "subjects": null, "targets":null}]' 1 0
@@ -1861,10 +1865,10 @@ tests:
field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 4, "subjects": [], "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 4, "subjects": [], "targets":null}]' 1 0
- On TH(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
+ On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Authmode for second element path Returns CONSTRAINT_ERROR (0x87)
[1658476412.664216][3192:3197] CHIP:DMG: WriteResponseMessage =
[1658476412.664247][3192:3197] CHIP:DMG: {
@@ -1937,8 +1941,8 @@ tests:
AuthMode field: CASE (2) Subjects field: [0] Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 2, "subjects": [0], "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 2, "subjects": [0], "targets":null}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87)
[1658476622.665126][3229:3234] CHIP:DMG: WriteClient moving to [ResponseRe]
@@ -2012,8 +2016,8 @@ tests:
field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 2, "subjects": [18446744073709551615], "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 2, "subjects": [18446744073709551615], "targets":null}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
@@ -2088,7 +2092,7 @@ tests:
Targets field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": [18446744060824649728], "targets": null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": [18446744060824649728], "targets": null}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87)
8477037.056167][3264:3269] CHIP:DMG: {
@@ -2158,8 +2162,8 @@ tests:
field: null"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
- { "privilege": 3, "authMode": 2, "subjects": [18446744073709486080], "targets":null}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null},
+ { "privilege": 3, "authMode": 2, "subjects": [18446744073709486080], "targets":null}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Subject Field for second element path Returns CONSTRAINT_ERROR (0x87)
@@ -2232,7 +2236,7 @@ tests:
AuthMode field: CASE (2) Subjects field: null Targets field: [{}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": null, "deviceType": null }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": null, "deviceType": null }]}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Target Field for second element path Returns CONSTRAINT_ERROR (0x87)
@@ -2308,7 +2312,7 @@ tests:
[{Cluster: 0xFFFFFFFF}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 4294967295, "endpoint": null, "deviceType": null }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 4294967295, "endpoint": null, "deviceType": null }]}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Target Field for second element path Returns CONSTRAINT_ERROR (0x87)
@@ -2383,7 +2387,7 @@ tests:
null Targets field: [{Endpoint: 65535}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": 65535, "deviceType": null }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": 65535, "deviceType": null }]}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87)
[1657617920.044059][8948:8953] CHIP:DMG: {
@@ -2456,7 +2460,7 @@ tests:
[{DeviceType: 0xFFFFFFFF}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": null, "deviceType": 4294967295 }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": null, "deviceType": 4294967295 }]}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87)
@@ -2532,7 +2536,7 @@ tests:
[{Endpoint: 22, DeviceType: 33}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": 22, "deviceType": 33 }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": null, "endpoint": 22, "deviceType": 33 }]}]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControlEntryStruct containing 2 elements using
Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87)
[1658477583.616961][3701:3706] CHIP:DMG: WriteClient moving to [ResponseRe]
@@ -2608,7 +2612,7 @@ tests:
[{Cluster: 11, Endpoint: 22, DeviceType: 33}]"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": 33 }]}]" 1 0
+ ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 11, "endpoint": 22, "deviceType": 33 }]}]' 1 0
On TH1(Chiptool) , Verify Successfully AccessControlEntryStruct containing 2 elements using
Invalid Target field for second element path Returns CONSTRAINT_ERROR (0x87)
[1658477662.415412][3710:3715] CHIP:EM: Removed CHIP MessageCounter:35384027 from RetransTable on exchange 6953i
@@ -2682,7 +2686,7 @@ tests:
is an empty list"
PICS: ACL.S.A0000
verification: |
- ./chip-tool accesscontrol write acl "[]" 1 0
+ ./chip-tool accesscontrol write acl '[]' 1 0
On TH1(Chiptool) , Verify Successfully to AccessControl cluster ACL attribute value is an empty list since all ACL entries removed.
RetransTable on exchange 43997i
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml
index a2815f360a1d95..5bef11cd027112 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_5.yaml
@@ -24,6 +24,23 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ 1.N1 is the node ID of TH1
+
+ 2.D_OK_EMPTY:"1718" which is an octstr of length 2 containing valid TLV:
+
+ - top-level anonymous list (empty)
+
+ 3.D_OK_SINGLE:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form
+
+ 4 .D_BAD_LENGTH: "17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E6700D00000F1FF02003248656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E7420616761696E2E2E2E2E2E2E0018" which is an octstr of length 129 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
DUT
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml
index 7f8e420f6d489c..0723273609cab5 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_6.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ N1 is the node ID of TH1
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
DUT
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml
index 4cd0beae949f05..1bf38fb69a4ff0 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_7.yaml
@@ -24,6 +24,21 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ 1.N1 is the node ID of TH1
+
+ 2.N2 is the node ID of TH2
+
+ 2.D_OK_EMPTY: "1718" which is an octstr of length 2 containing valid TLV:
+
+ - top-level anonymous list (empty)
+
+ 3.D_OK_SINGLE:"17D00000F1FF01003D48656C6C6F20576F726C642E205468697320697320612073696E676C6520656C656D656E74206C6976696E6720617320612063686172737472696E670018" which is an octstr of length 50-100 containing valid TLV:
+
+ - top-level anonymous list, containing - one element with profile-specific tag in fully-qualified form
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
DUT
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml
index 37805cdfb0bca0..d2aa037f31964e 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_8.yaml
@@ -24,6 +24,13 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ 1.N1 is the node ID of TH1
+
+ 2 .N2 is the node ID of TH2
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
DUT
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml
index e605cc3c6ba305..ee834c11f4752f 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_9.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ N1 is the node ID of TH1
+ disabled: true
+
- label: "TH1 commissions DUT using admin node ID N1"
verification: |
DUT
diff --git a/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml
index ef12fae26a6a2a..8c6429ee483a14 100644
--- a/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACT_1_1.yaml
@@ -53,7 +53,7 @@ tests:
response:
constraints:
type: list
- contains: [0, 1]
+ contains: [0, 1, 65528, 65529, 65531, 65532, 65533]
- label: "Read the optional attribute(SetupURL) in AttributeList"
PICS: ACT.S.A0002
@@ -62,7 +62,7 @@ tests:
response:
constraints:
type: list
- contains: [0, 1, 2]
+ contains: [2]
# Checking only type check all attributes are optional
- label: "Read the global attribute: AcceptedCommandList"
diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml
index d1f38dd809f311..068cde853d3751 100644
--- a/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACT_2_1.yaml
@@ -81,7 +81,7 @@ tests:
- label: "Read EndpointLists attribute of Actions server"
PICS: ACT.S.A0001
verification: |
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-lists 1 1
On TH(chip-tool), verify the EndpointListStructs in TH Log:
@@ -153,7 +153,7 @@ tests:
- label: "Read ActionList attribute of Actions server"
PICS: ACT.S.A0000
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify ActionStructs in TH(chip-tool) Log:
@@ -340,7 +340,7 @@ tests:
- label: "Read SetupURL attribute"
PICS: ACT.S.A0002
verification: |
- ./chip-tool bridgedactions read setup-url 1 1
+ ./chip-tool actions read setup-url 1 1
Verify in TH(chip-tool) log
diff --git a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml
index cfdb21d3bd883b..659c95c871835d 100644
--- a/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACT_2_2.yaml
@@ -43,9 +43,8 @@ tests:
disabled: true
- label: "Read EndpointLists attribute"
- PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists
verification: |
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-lists 1 1
On TH(chip-tool), verify the EndpointListStructs in TH Log:
[1658426570.716289][16527:16532] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568
@@ -79,7 +78,7 @@ tests:
- label: "Read EndpointLists attribute again"
PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists
verification: |
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-lists 1 1
On TH(chip-tool), verify the EndpointListStructs in below Log:
[1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648
@@ -160,7 +159,7 @@ tests:
- label: "Read EndpointLists attribute again"
PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists
verification: |
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-lists 1 1
On TH(chip-tool), verify the EndpointListStructs
[1658408033.786811][14495:14500] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3742844648
@@ -182,7 +181,7 @@ tests:
[1658408033.788278][14495:14500] CHIP:TOO: }
disabled: true
- - label: "compare result of step 2g to what was read in step 2e"
+ - label: "compare result of step 2g to what was read in step 2d"
PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists
verification: |
compare result of step 2g to what was read in step 2d, Verify one EP (EP 3 in this case) has been moved from one EndpointListStruct to another EndpointListStruct
@@ -199,7 +198,7 @@ tests:
- label: "Read EndpointLists attribute again"
PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists
verification: |
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-lists 1 1
On TH(chip-tool), verify the EndpointListStructs
[1658426959.409374][16560:16565] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568
@@ -213,7 +212,7 @@ tests:
[1658426959.409755][16560:16565] CHIP:TOO: }
disabled: true
- - label: "compare result of step 2j to what was read in step 2h"
+ - label: "compare result of step 2j to what was read in step 2g"
PICS: ACT.S.A0001 && ACT.S.M.FillEndpointLists
verification: |
compare result of step 2j to what was read in step 2g, Verify one EndpointListStruct (the 2nd one in this example) got removed while the other one(s) did not change
@@ -231,7 +230,7 @@ tests:
- label: "Read EndpointLists attribute again"
PICS: ACT.S.A0001 && ACT.S.M.OverlappingEndpointLists
verification: |
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-lists 1 1
On TH(chip-tool), verify the EndpointListStructs
1658427088.316681][16578:16583] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0001 DataVersion: 3768747568
@@ -268,7 +267,7 @@ tests:
- label: "Read ActionList attribute"
PICS: ACT.S.A0000 && ACT.S.M.FillActionList
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify ActionStructs in TH(chip-tool) Log:
[1658479958.699434][26130:26135] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220
@@ -302,7 +301,7 @@ tests:
- label: "Read ActionList attribute again"
PICS: ACT.S.A0000 && ACT.S.M.FillActionList
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify ActionStructs in TH(chip-tool) Log:
[1658480004.064867][26153:26158] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220
@@ -384,7 +383,7 @@ tests:
- label: "Read ActionList attribute again"
PICS: ACT.S.A0000 && ACT.S.M.FillActionList
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify ActionStructs in TH(chip-tool) Log:
[1658480039.164683][26172:26177] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220
@@ -415,7 +414,7 @@ tests:
- label: "Read ActionList attribute again"
PICS: ACT.S.A0000 && ACT.S.M.FillActionList
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify ActionStructs in TH(chip-tool) Log:
[1658480059.199268][26178:26183] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220
@@ -454,7 +453,7 @@ tests:
- label: "Read ActionList attribute"
PICS: ACT.S.A0000
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify ActionStructs in TH(chip-tool) Log:
[1658480080.135069][26185:26190] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_0000 DataVersion: 198994220
@@ -481,7 +480,7 @@ tests:
verification: |
To subscribe StateChanged event follow below steps
1) ./chip-tool interactive start
- 2) bridgedactions subscribe-event action-failed 2 30 1 0
+ 2) actions subscribe-event action-failed 2 30 1 0
Verify in TH Log:
[1659962630.453221][25381:25386] CHIP:EM: Removed CHIP MessageCounter:65903257 from RetransTable on exchange 50035i
[1659962630.453246][25381:25386] CHIP:DMG: ReportDataMessage =
@@ -506,7 +505,7 @@ tests:
[1659962630.456551][25381:25386] CHIP:DMG: }
[1659962630.456563][25381:25386] CHIP:DMG: Subscription established with SubscriptionID = 0x78f0a04c MinInterval = 0s MaxInterval = 100s Peer = 01:0000000000000001
- 3) bridgedactions instant-action 0x1001 1 1
+ 3) actions instant-action 0x1001 1 1
Verify in TH Log
@@ -524,7 +523,7 @@ tests:
verification: |
Only InstantActions command is supported
- ./chip-tool bridgedactions instant-action 0x1001 1 1
+ ./chip-tool actions instant-action 0x1001 1 1
Verify in TH Log
diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml
index 3c8b4a75a40ad1..89258aeb54ec2b 100644
--- a/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACT_3_1.yaml
@@ -28,11 +28,16 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
verification: |
- ./chip-tool bridgedactions read action-list 1 1
+ ./chip-tool actions read action-list 1 1
Verify read command is received on TH(all-clusters-app)
@@ -59,7 +64,7 @@ tests:
- ./chip-tool bridgedactions read endpoint-list 1 1
+ ./chip-tool actions read endpoint-list 1 1
Verify read command is received on TH(all-clusters-app
)
@@ -91,7 +96,7 @@ tests:
verification: |
Optional attibute
- ./chip-tool bridgedactions read setup-url 1 1
+ ./chip-tool actions read setup-url 1 1
Verify read command is received on TH(all-clusters-app)
@@ -137,7 +142,7 @@ tests:
also reflects this in global attributes such as FeatureMap and
AttributeList. Commission DUT to TH again"
verification: |
- ./chip-tool bridgedactions read attribute-list 1 1
+ ./chip-tool actions read attribute-list 1 1
Verify attribute-list attribute contains 7 entries on TH(all-clusters-minimal-app)
[1658393025.602745][13481:13486] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0025 Attribute 0x0000_FFFB DataVersion: 2868144574
@@ -211,7 +216,7 @@ tests:
verification: |
Optional attibute
- ./chip-tool bridgedactions read setup-url 1 1
+ ./chip-tool actions read setup-url 1 1
General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml b/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml
index 14fe1033e00e10..49353e5ffc64c1 100644
--- a/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACT_3_2.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"Preparation: TH as server exposes an Actions server cluster on EP 1,
with one action (supporting all possible commands) and corresponding
@@ -41,7 +46,7 @@ tests:
- label: "DUT issues an InstantAction command to TH"
PICS: ACT.C.C00.Tx
verification: |
- ./chip-tool bridgedactions instant-action 0x1001 1 1
+ ./chip-tool actions instant-action 0x1001 1 1
Verify command is successfully sent on TH(all-clusters-app)
@@ -84,7 +89,7 @@ tests:
- label: "DUT issues an StartAction command to TH"
PICS: ACT.C.C02.Tx
verification: |
- ./chip-tool bridgedactions start-action 0x1001 1 1
+ ./chip-tool actions start-action 0 1 1
Note: Message log similar as in step 1
disabled: true
@@ -92,7 +97,7 @@ tests:
- label: "DUT issues an StopAction command to TH"
PICS: ACT.C.C04.Tx
verification: |
- ./chip-tool bridgedactions stop-action 0x1001 1 1
+ ./chip-tool actions stop-action 0 1 1
Note: Message log similar as in step 1
disabled: true
@@ -100,7 +105,7 @@ tests:
- label: "DUT issues an PauseAction command to TH"
PICS: ACT.C.C05.Tx
verification: |
- ./chip-tool bridgedactions pause-action 0x1001 1 1
+ ./chip-tool actions pause-action 0 1 1
Note: Message log similar as in step 1
disabled: true
@@ -108,7 +113,7 @@ tests:
- label: "DUT issues an ResumeAction command to TH"
PICS: ACT.C.C07.Tx
verification: |
- ./chip-tool bridgedactions resume-action 0x1001 1 1
+ ./chip-tool actions resume-action 0 1 1
Note: Message log similar as in step 1
disabled: true
@@ -116,7 +121,7 @@ tests:
- label: "DUT issues an EnableAction command to TH"
PICS: ACT.C.C08.Tx
verification: |
- ./chip-tool bridgedactions enable-action 0x1001 1 1
+ ./chip-tool actions enable-action 0 1 1
Note: Message log similar as in step 1
disabled: true
@@ -124,7 +129,7 @@ tests:
- label: "DUT issues an DisableAction command to TH"
PICS: ACT.C.C0a.Tx
verification: |
- ./chip-tool bridgedactions disable-action 0x1001 1 1
+ ./chip-tool actions disable-action 0 1 1
Note: Message log similar as in step 1
disabled: true
@@ -132,7 +137,7 @@ tests:
- label: "DUT issues an StartActionWithDuration command to TH"
PICS: ACT.C.C03.Tx
verification: |
- ./chip-tool bridgedactions start-action-with-duration 0x1001 1 1
+ ./chip-tool actions start-action-with-duration 0x1001 100 1 1
Note: Message log similar as in step 1
disabled: true
@@ -140,7 +145,7 @@ tests:
- label: "DUT issues an PauseActionWithDuration command to TH"
PICS: ACT.C.C06.Tx
verification: |
- ./chip-tool bridgedactions pause-action-with-duration 0x1001 1 1
+ ./chip-tool actions pause-action-with-duration 0x1001 200 1 1
Note: Message log similar as in step 1
disabled: true
@@ -148,7 +153,7 @@ tests:
- label: "DUT issues an EnableActionWithDuration command to TH"
PICS: ACT.C.C09.Tx
verification: |
- ./chip-tool bridgedactions enable-action-with-duration 0x1001 1 1
+ ./chip-tool actions enable-action-with-duration 0x1001 300 1 1
Note: Message log similar as in step 1
disabled: true
@@ -156,7 +161,7 @@ tests:
- label: "DUT issues an DisableActionWithDuration command to TH"
PICS: ACT.C.C0b.Tx
verification: |
- ./chip-tool bridgedactions disable-action-with-duration 0x1001 1 1
+ ./chip-tool actions disable-action-with-duration 0 100 1 1
Note: Message log similar as in step 1
disabled: true
@@ -164,7 +169,7 @@ tests:
- label: "DUT issues an InstantActionWithTransition command to TH"
PICS: ACT.C.C01.Tx
verification: |
- ./chip-tool bridgedactions instant-action-with-transition 0x1001 1 1
+ ./chip-tool actions instant-action-with-transition 0x1001 400 1 1
Note: Message log similar as in step 1
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml
index e47b10028fba67..2e8d999ea1b3f2 100644
--- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_8_1.yaml
@@ -25,9 +25,12 @@ config:
endpoint: 0
tests:
- - label: "Preconditions:"
+ - label:
+ "Preconditions: Commission TH to DUT, if not done so already. In some
+ cases, such as with a Casting Video Player, the TH commissions the
+ DUT."
verification: |
- Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT.
+
disabled: true
- label: "DUT sends StopApp command to TH"
diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml
index 24136fc704c78f..ab3748ba234aca 100644
--- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9_1.yaml
@@ -25,9 +25,12 @@ config:
endpoint: 0
tests:
- - label: "Preconditions:"
+ - label:
+ "Preconditions: Commission TH to DUT, if not done so already. In some
+ cases, such as with a Casting Video Player, the TH commissions the
+ DUT."
verification: |
- Commission TH to DUT, if not done so already. In some cases, such as with a Casting Video Player, the TH commissions the DUT.
+
disabled: true
- label: "DUT sends HideApp command to TH"
diff --git a/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml b/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml
index 7f0f8f54599661..3c755cd927f1b2 100644
--- a/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BDX_1_2.yaml
@@ -25,6 +25,11 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ This test can be verified using TC-SU-2.3 from the OTA Software Update section. Pls refer to OTA section for steps.
+ disabled: true
+
- label: "DUT sends a ReceiveInit message to TH"
verification: |
1. Verify that the OTA Reference Provider App logs show ReceiveInit message from DUT
diff --git a/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml b/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml
index 164b89b58c0c6f..992be636e12a7c 100644
--- a/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BDX_1_4.yaml
@@ -25,6 +25,11 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ This test can be verified using TC-SU-3.3 from the OTA Software Update section. Pls refer to OTA section for steps.
+ disabled: true
+
- label:
"TH sends a ReceiveInit message to DUT + DUT sends a ReceiveAccept
message back to TH"
diff --git a/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml
index eb8cd3dede6d48..449215850abb40 100644
--- a/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BDX_2_1.yaml
@@ -24,6 +24,12 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ This test can be verified using TC-SU-3.3 from the OTA Software Update section. Pls refer to OTA section for steps.
+ This test can also be verified with TH sending a ReceiveInit message to the DUT.
+ disabled: true
+
- label:
"DUT sends a SendInit message to TH + TH sends a SendAccept message
back to DUT + DUT sends a Block message to TH + TH sends a BlockAck
diff --git a/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml
index d8ea0b6645e8d5..21a032bf91f87f 100644
--- a/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BDX_2_2.yaml
@@ -24,6 +24,12 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ This test can be verified using TC-SU-2.3 from the OTA Software Update section. Pls refer to OTA section for steps.
+ This test can also be verified with DUT sending a ReceiveInit message to the TH.
+ disabled: true
+
- label:
"TH sends the first Block message to DUT + DUT sends a BlockAck
message back to TH."
diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml
index 6f5ddedb6cbbef..0be1511b414bf6 100644
--- a/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BIND_2_1.yaml
@@ -24,6 +24,28 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ TH2 supports On/Off server on Endpoint 1.
+
+ TH3 supports On/Off server on Endpoint 2.
+
+ DUT supports On/Off client.
+ disabled: true
+
+ - label: "Note"
+ verification: |
+ 1.This test case requires 4 raspi to execute. 1 raspi as Commissioner. and 1 raspi as dut[Controller] 2 raspi as controllee
+
+ 2. In this example, RASP is used as DUT & it requires additional shell access to execute the controller commands. To support the shell, use the following command to build the all-clusters-app . On the DUT device Use - [scripts/examples/gn_build_example.sh examples/all-clusters-app/linux/ out/all-clusters-app chip_inet_config_enable_ipv4=false chip_build_libshell=true ] - (Vendor DUT must have this provision to execute the controller commands. )
+
+ 3.Pair TH2 , TH3 with ble-wifi with different discriminator as mentioned below test steps , using the chip-tool running as commissioner in one RPI.
+
+ 4.using the commissioner write the ACL entries on both TH2 and TH3 for allowing to receive commands for onoff cluster from DUT(Controller)
+
+ 5.Hit the Enter button on raspi , you will see a shell prompt (>) , enter help, this would list the command for switch . At the prompt enter switch on ,the "on" command is sent to both TH2 and TH3. and the command and corresponding response can be verified in the log. to test if the TH2/TH3 are turned on or not, you can read the on-off attribute status. Read the status before sending the switch on command and read after sending the command. you should see the value changing.
+ disabled: true
+
- label: "Factory Reset DUT"
verification: |
Vendor specific action, for chip-tool run
@@ -53,7 +75,7 @@ tests:
verification: |
./chip-tool binding write binding "[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }, { "node" : 3 , "cluster" : "0x0006" , "endpoint" : 2 }]" 1 1
-
+ On TH1(Chip-tool), Verify the success response for binding entries
[1657797710.456056][3796:3801] CHIP:DMG: status = 0x00 (SUCCESS),
@@ -81,19 +103,26 @@ tests:
verification: |
./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}]}]" 2 0
+ on TH1 (Chip-tool), Verify the on command receives success response
+
[1652330385.328196][3240:3245] CHIP:DMG: StatusIB =
[1652330385.328229][3240:3245] CHIP:DMG: {
[1652330385.328264][3240:3245] CHIP:DMG: status = 0x00 (SUCCESS),
[1652330385.328298][3240:3245] CHIP:DMG: },
- ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}]}]" 3 0
+ ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": [{"cluster": 6, "endpoint": 2, "deviceType": null}]}]" 3 0
+
+ on TH1(Chip-tool), Verify the on command receives success response
[1650610345.847274][2626:2631] CHIP:DMG: StatusIB =
[1650610345.847317][2626:2631] CHIP:DMG: {
[1650610345.847383][2626:2631] CHIP:DMG: status = 0x00 (SUCCESS),
[1650610345.847429][2626:2631] CHIP:DMG: },
+ NOTE:
+ Every DUT should have their own mechanism to trigger on/off mechanism ,this for raspi platform
+
DUT sends on command in the shell
> switch on
@@ -197,11 +226,15 @@ tests:
verification: |
./chip-tool onoff read on-off 2 1
+ Verify on TH2 (Chip-tool),the onoff value is set to ON
+
[1657798291.396477][3835:3841] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 4260513117
[1657798291.396514][3835:3841] CHIP:TOO: OnOff: TRUE
./chip-tool onoff read on-off 3 2
+ Verify on TH3 (Chip-tool) ,the onoff value is set to ON
+
[1657798691.194894][3869:3874] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 470320746
[1657798691.194948][3869:3874] CHIP:TOO: OnOff: TRUE
disabled: true
@@ -210,6 +243,8 @@ tests:
verification: |
./chip-tool binding write binding "[{"node" : 2 , "cluster" : "0x0006" , "endpoint" : 1 }]" 1 1
+ Verify on TH1(Chip-tool) ,binding entry receives success response
+
[1657800844.739833][4000:4006] CHIP:EM: Removed CHIP MessageCounter:244702117 from RetransTable on exchange 12653i
[1657800844.739867][4000:4006] CHIP:DMG: WriteClient moving to [ResponseRe]
[1657800844.739922][4000:4006] CHIP:DMG: WriteResponseMessage =
@@ -312,6 +347,7 @@ tests:
verification: |
./chip-tool onoff read on-off 2 1
+ Verify on TH2 (Chip-tool),the onoff value is set to OFF
[1657803168.769564][4272:4277] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1968648540
@@ -323,6 +359,8 @@ tests:
verification: |
./chip-tool onoff read on-off 3 2
+ Verify on TH3 (Chip-tool) ,the onoff value is set to ON
+
[1657803609.731464][4333:4339] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3914456390
[1657803609.731521][4333:4339] CHIP:TOO: OnOff: TRUE
diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml
index 370adaa9174646..e55907df9aaf6f 100644
--- a/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BIND_2_2.yaml
@@ -26,6 +26,25 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Pre-Conditions"
+ verification: |
+ TH2 supports On/Off server on Endpoint 1.
+ TH2 supports Groups server on Endpoint 1.
+ DUT behaves as Group Admin
+ TH2 should have an ACL entry with the AuthMode as Group by DUT
+ DUT supports On/Off client
+ disabled: true
+
+ - label: "Note"
+ verification: |
+ Take 2 raspi, 1 as Lighting app and another one as chip-tool. and use [ nRF52840-DK ]Thread device as light-switch-app.
+ disabled: true
+
- label: "Factory Reset DUT"
verification: |
Vendor specific action, for chip-tool run
@@ -34,9 +53,9 @@ tests:
- label: "Commission DUT to TH1s fabric"
verification: |
- Run this cmmd in Thread device terminal:
+ Advertise the [ light-switch-app ] on [ nRF52840-DK ]Thread device and pair the TH using below cmmd.
- ./chip-tool pairing ble-thread 73 hex:0e080000000000010000000300000f35060004001fffe0020810101191022022920708fd6587bfe9821353051000112237945966880899aabbccddeeff030f7070656e5468726561644465696f6c010212340410f23d85dd55d9748cc6a1fd5fccbb1da20c0402a0fff8 20202021 3840
+ ./chip-tool pairing ble-thread 74 hex:0e080000000000010000000300000f35060004001fffe0020810101191022022920708fd6587bfe9821353051000112237945966880899aabbccddeeff030f7070656e5468726561644465696f6c010212340410f23d85dd55d9748cc6a1fd5fccbb1da20c0402a0fff8 20202021 3840
disabled: true
- label: "TH1 enables DUT as Controller"
@@ -46,7 +65,9 @@ tests:
- label: "Commission TH2 to TH1s fabric (Node ID = 2)"
verification: |
- ./chip-tool pairing onnetwork 1 20202021
+ Advertise the [Lighting-app] on Raspi and pair the TH using below cmmd.
+
+ ./chip-tool pairing onnetwork 2 20202021
On TH(Chip-tool), Verify the success response
@@ -68,6 +89,8 @@ tests:
Endpoint 0."
PICS: GRPKEY.C.C00.Tx
verification: |
+ Run this cmmd for lighting app in chip-tool:
+
./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42,
"groupKeySecurityPolicy": 0, "epochKey0":
"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":
@@ -115,6 +138,8 @@ tests:
list on GroupKeyManagement cluster to TH2 on Endpoint 0"
PICS: GRPKEY.C.A0000
verification: |
+ Run this cmmd for lighting app in chip-tool:
+
./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 2 0
On DUT, Verify the success response for GroupKeySetID
@@ -130,6 +155,8 @@ tests:
Endpoint 1."
PICS: G.C.C00.Tx
verification: |
+ Run this cmmd for lighting app in chip-tool:
+
./chip-tool groups add-group 0x0001 grp1 2 1
On DUT, Verify the success response for AddGroup
@@ -163,7 +190,9 @@ tests:
"TH1 writes Binding entry into DUT with Entry 1: Group = The Group ID
in the AddGroup command sent from DUT to TH2"
verification: |
- ./chip-tool binding write binding "[{"group" : "0x0001"}]" 73 1
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
+ ./chip-tool binding write binding "[{"group" : "0x0001"}]" 74 1
On TH, Verify the success response for binding entry
@@ -179,31 +208,37 @@ tests:
entries"
PICS: OO.C.C01.Tx
verification: |
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 74 0
- On TH(Chip-tool), Verify the success response for Acl:
+ On TH1(Chip-tool), Verify the success response for Acl:
[1659075680.943991][2687:2692] CHIP:DMG: StatusIB =
[1659075680.944052][2687:2692] CHIP:DMG: {
[1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS),
- ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 1 0
+ Run this cmmd for lighting app in chip-tool:
- On TH(Chip-tool), Verify the success response for Acl:
+ ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 2 0
+
+ On TH1(Chip-tool), Verify the success response for Acl:
[1659075680.943991][2687:2692] CHIP:DMG: StatusIB =
[1659075680.944052][2687:2692] CHIP:DMG: {
[1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS),
- Press button no.2 on thread board
+ Press button no.2 on [ nRF52840-DK ]thread board
disabled: true
- label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)"
PICS: OO.C.C01.Tx
verification: |
- ./chip-tool onoff read on-off 1 1
+ Run this cmmd for lighting app in chip-tool:
+
+ ./chip-tool onoff read on-off 2 1
- On TH (Chip-tool), Verify the value is set to ON
+ On TH1 (Chip-tool), Verify the value is set to ON
[1657717900.832851][4381:4386] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1558029216
[1657717900.832890][4381:4386] CHIP:TOO: OnOff: TRUE
@@ -211,9 +246,11 @@ tests:
- label: "TH1 removes all the binding entries from DUT"
verification: |
- ./chip-tool binding write binding "[]" 73 1
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
- On TH(Chip-tool), Verify the success response for removing binding entry
+ ./chip-tool binding write binding "[]" 74 1
+
+ On TH1(Chip-tool), Verify the success response for removing binding entry
[1659362827.431927][2469:2475] CHIP:DMG: StatusIB =
[1659362827.431996][2469:2475] CHIP:DMG: {
@@ -226,15 +263,17 @@ tests:
entries"
PICS: OO.C.C00.Tx
verification: |
- Press button no.2 on thread board
+ Press button no.2 on [ nRF52840-DK ] thread board
disabled: true
- label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)"
PICS: OO.C.C01.Tx
verification: |
- ./chip-tool onoff read on-off 1 1
+ Run this cmmd for lighting app in chip-tool:
+
+ ./chip-tool onoff read on-off 2 1
- On TH(Chip-tool), Verify the value is set to ON
+ On TH1(Chip-tool), Verify the value is set to ON
[1657718251.169765][4425:4431] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 1558029223
[1657718251.169817][4425:4431] CHIP:TOO: OnOff: TRUE
diff --git a/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml b/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml
index 5422042e31e77c..3457cdc91e536e 100644
--- a/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BIND_2_3.yaml
@@ -26,6 +26,25 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Pre-Conditions"
+ verification: |
+ TH1 enables DUT to handle group communication
+ TH2 supports On/Off server on Endpoint 1
+ TH2 supports Groups server on Endpoint 1
+ TH2 should have an ACL entry with the AuthMode as Group by TH1
+ DUT supports On/Off client
+ disabled: true
+
+ - label: "Note"
+ verification: |
+ Take 2 raspi, 1 as Lighting app and another one as chip-tool. and use [ nRF52840-DK ]Thread device as light-switch-app.
+ disabled: true
+
- label: "Factory Reset DUT"
verification: |
Vendor specific action, for chip-tool run
@@ -34,7 +53,7 @@ tests:
- label: "Commission DUT to TH1s fabric"
verification: |
- Run this cmmd in Thread device terminal:
+ Advertise the [ light-switch-app ] on [ nRF52840-DK ]Thread device and pair the TH using below cmmd.
./chip-tool pairing ble-thread 74 hex:0e080000000000010000000300000f35060004001fffe0020810101191022022920708fd6587bfe9821353051000112237945966880899aabbccddeeff030f7070656e5468726561644465696f6c010212340410f23d85dd55d9748cc6a1fd5fccbb1da20c0402a0fff8 20202021 3840
disabled: true
@@ -46,9 +65,11 @@ tests:
- label: "Commission TH2 to TH1s fabric (Node ID = 2)"
verification: |
- ./chip-tool pairing onnetwork 1 20202021
+ Advertise the [Lighting-app] on Raspi and pair the TH using below cmmd.
- On TH(Chip-tool), Verify the success response
+ ./chip-tool pairing onnetwork 2 20202021
+
+ On TH1(Chip-tool), Verify the success response
[1659104612.592373][62366:62371] CHIP:DMG: SuppressResponse = true,
[1659104612.592399][62366:62371] CHIP:DMG: InteractionModelRevision = 1
@@ -67,13 +88,16 @@ tests:
"TH1 sends KeySetWrite command to GroupKeyManagement cluster to TH2 on
Endpoint 0."
verification: |
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
+
./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42,
"groupKeySecurityPolicy": 0, "epochKey0":
"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":
"d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2":
"d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 74 0
- On TH(Chip-tool), Verify the success response for KeySetWrite
+ On TH1(Chip-tool), Verify the success response for KeySetWrite
[1657719041.075123][4541:4546] CHIP:DMG: ICR moving to [ResponseRe]
[1657719041.075174][4541:4546] CHIP:DMG: InvokeResponseMessage =
@@ -105,16 +129,16 @@ tests:
[1657719041.075988][4541:4546] CHIP:DMG:
[1657719041.076012][4541:4546] CHIP:DMG: InteractionModelRevision = 1
-
+ Run this cmmd for lighting app in chip-tool:
./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42,
"groupKeySecurityPolicy": 0, "epochKey0":
"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":
"d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2":
- "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 1 0
+ "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 2 0
[1657719041.076036][4541:4546] CHIP:DMG: }
- On TH, Verify the success response for KeySetWrite
+ On TH1, Verify the success response for KeySetWrite
[1657719041.075743][4541:4546] CHIP:DMG: status = 0x00 (SUCCESS),
disabled: true
@@ -123,9 +147,11 @@ tests:
"TH1 binds GroupId with GroupKeySetID in the GroupKeyMap attribute
list on GroupKeyManagement cluster to TH2 on Endpoint 0"
verification: |
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 74 0
- On TH(Chip-tool), Verify the success response for GroupKeySetID
+ On TH1(Chip-tool), Verify the success response for GroupKeySetID
[1657719130.464175][4557:4562] CHIP:DMG: StatusIB =
[1657719130.464214][4557:4562] CHIP:DMG: {
@@ -133,11 +159,11 @@ tests:
[1657719130.464298][4557:4562] CHIP:DMG: },
[1657719130.464342][4557:4562] CHIP:DMG:
-
- ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 1 0
+ Run this cmmd for lighting app in chip-tool:
+ ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 2 0
- On TH(Chip-tool), Verify the success response for GroupKeySetID
+ On TH1(Chip-tool), Verify the success response for GroupKeySetID
[1657719130.464175][4557:4562] CHIP:DMG: StatusIB =
[1657719130.464214][4557:4562] CHIP:DMG: {
@@ -150,9 +176,11 @@ tests:
"TH1 sends AddGroup( Group Name and Group-ID) Command to TH2 on
Endpoint 1."
verification: |
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
./chip-tool groups add-group 0x0001 grp1 74 1
- On TH(Chip-tool), Verify the success response for AddGroup
+ On TH1(Chip-tool), Verify the success response for AddGroup
[1657719097.788236][4548:4554] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000
[1657719097.788325][4548:4554] CHIP:TOO: AddGroupResponse: {
@@ -161,10 +189,11 @@ tests:
[1657719097.788418][4548:4554] CHIP:TOO: }
+ Run this cmmd for lighting app in chip-tool:
- ./chip-tool groups add-group 0x0001 grp1 1 1
+ ./chip-tool groups add-group 0x0001 grp1 2 1
- On TH(Chip-tool), Verify the success response for AddGroup
+ On TH1(Chip-tool), Verify the success response for AddGroup
[1657719097.788236][4548:4554] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0004 Command 0x0000_0000
[1657719097.788325][4548:4554] CHIP:TOO: AddGroupResponse: {
@@ -195,9 +224,11 @@ tests:
"TH1 writes Binding entry into DUT with Entry 1: Group = The Group ID
in the AddGroup command sent from TH1 to TH2"
verification: |
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
./chip-tool binding write binding "[{"group" : "0x0001"}]" 74 1
- On TH(Chip-tool), Verify the success response for binding entry
+ On TH1(Chip-tool), Verify the success response for binding entry
[1657719251.763323][4597:4602] CHIP:DMG: StatusIB =
[1657719251.763360][4597:4602] CHIP:DMG: {
@@ -215,29 +246,35 @@ tests:
entries"
PICS: OO.C.C01.Tx
verification: |
- ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 74 0
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
+ ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 74 0
- On TH(Chip-tool), Verify the success response for Acl:
+ On TH1(Chip-tool), Verify the success response for Acl:
[1659075680.943991][2687:2692] CHIP:DMG: StatusIB =
[1659075680.944052][2687:2692] CHIP:DMG: {
[1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS),
- ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 1 0
+ Run this cmmd for lighting app in chip-tool:
- On TH(Chip-tool), Verify the success response for Acl:
+ ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 2 0
+
+ On TH1(Chip-tool), Verify the success response for Acl:
[1659075680.943991][2687:2692] CHIP:DMG: StatusIB =
[1659075680.944052][2687:2692] CHIP:DMG: {
[1659075680.944116][2687:2692] CHIP:DMG: status = 0x00 (SUCCESS),
- Press button no.2 on thread board
+ Press button no.2 on nrf52840 DK thread board
disabled: true
- label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)"
PICS: OO.C.C01.Tx
verification: |
- ./chip-tool onoff read on-off 1 1
+ Run this cmmd for lighting app in chip-tool:
+
+ ./chip-tool onoff read on-off 2 1
On TH(Chip-tool), Verify the onoff value is set to ON
@@ -247,9 +284,11 @@ tests:
- label: "TH1 removes all the binding entries from DUT"
verification: |
+ Run this cmmd for [ nRF52840-DK ]Thread device in chip-tool:
+
./chip-tool binding write binding "[]" 74 1
- On TH(Chip-tool), Verify the success response for removing binding entry
+ On TH1(Chip-tool), Verify the success response for removing binding entry
[1659362827.431927][2469:2475] CHIP:DMG: StatusIB =
[1659362827.431996][2469:2475] CHIP:DMG: {
@@ -262,15 +301,17 @@ tests:
entries"
PICS: OO.C.C00.Tx
verification: |
- Press button no.2 on thread board
+ Press button no.2 on nrf52840 DK thread board
disabled: true
- label: "TH1 reads OnOff attribute from TH2 (Endpoint 1)"
PICS: OO.C.C01.Tx
verification: |
- ./chip-tool onoff read on-off 1 1
+ Run this cmmd for lighting app in chip-tool:
- On TH(Chip-tool), Verify the onoff value is set to ON
+ ./chip-tool onoff read on-off 2 1
+
+ On TH1(Chip-tool), Verify the onoff value is set to ON
[1657719448.858149][4636:4641] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3526720174
[1657719448.858183][4636:4641] CHIP:TOO: OnOff: TRUE
diff --git a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml
index 0ad5188ed749a4..e41fe1c356098f 100644
--- a/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BINFO_2_2.yaml
@@ -24,6 +24,19 @@ config:
endpoint: 0
tests:
+ - label: "Precondition"
+ verification: |
+ 1. DUT and TH can interact with each other. DUT is commissioned.
+
+ 2. BINFO.S.A0009(SoftwareVersion) - TH reads SoftwareVersion attribute from DUT and saves for future use
+
+ 3. BINFO.S.A0011(Reachable) - TH reads Reachable attribute from DUT and saves for future use(should be true)
+
+ 4. BINFO.S.E00(StartUp) && BINFO.S.E01(ShutDown) && BINFO.S.E02(Leave) - TH subscribes to StartUp, ShutDown, Leave and ReachableChanged events on the Basic Information cluster of the DUT
+
+ 5. TH saves the FabricIndex during commissioning
+ disabled: true
+
- label: "Reboot the DUT TH reads the StartUp event from DUT"
PICS: BINFO.S.E00
verification: |
@@ -63,7 +76,7 @@ tests:
2. run below command in interactive mode shell and Turn down the DUT
- verify that ShutDown event as priority set has CRITICAL on TH(chip-tool)
+ verify that ShutDown event as priority set has CRITICAL on TH(Chip-tool)
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Event 0x0000_0001
[1653050528.900202][119367:119372] CHIP:TOO: Event number: 5
diff --git a/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml
index a9958cd5eed5cb..27166db07e5fbe 100644
--- a/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BOOL_2_2.yaml
@@ -24,9 +24,14 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command
+ disabled: true
+
- label: "Commission DUT to TH"
verification: |
- verification step to be updated.
+
disabled: true
- label: "Bring the DUT into a state so StateValue is FALSE"
@@ -80,38 +85,26 @@ tests:
PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000
verification: |
On TH(chip-tool), verify the StateValue value as FALSE
-
- [1646119162.628169][3311:3316] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_0000DataVersion: 2127727071
- [1646119162.628207][3311:3316] CHIP:TOO: StateValue: FALSE
disabled: true
- label: "TH reads the StateValue attribute from the DUT"
PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000
verification: |
- ./chip-tool booleanstate read state-value 1 1
+ booleanstate read state-value 1 1
On TH(chip-tool), verify the StateValue value as FALSE
-
- [1646118838.087500][3279:3284] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_0000DataVersion: 2127727071
- [1646118838.087536][3279:3284] CHIP:TOO: StateValue: FALSE
disabled: true
- label: "Bring the DUT into a state so StateValue is TRUE"
PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000
verification: |
On TH(chip-tool), verify the StateValue value as TRUE
-
- [1646119162.628169][3311:3316] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_0000DataVersion: 2127727071
- [1646119162.628207][3311:3316] CHIP:TOO: StateValue: TRUE
disabled: true
- label: "TH reads the StateValue attribute from the DUT"
PICS: BOOL.M.ManuallyControlled && BOOL.S.E00 && BOOL.S.A0000
verification: |
- ./chip-tool booleanstate read state-value 1 1
+ booleanstate read state-value 1 1
On TH(chip-tool), verify the StateValue value as TRUE
-
- [1646118838.087500][3279:3284] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0045 Attribute 0x0000_0000DataVersion: 2127727071
- [1646118838.087536][3279:3284] CHIP:TOO: StateValue: TRUE
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml
index 3e19e783a71e9b..f4eebc4d1089df 100644
--- a/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_1_1.yaml
@@ -23,9 +23,24 @@ config:
endpoint: 0
tests:
+ - label: ""
+ verification: |
+ Validate these PICS items of attributes which are not allowed in this server cluster implementation - these PICS items should all be FALSE, if any of them is TRUE then FAIL the test
+
+ BRBINFO.S.A0000(DataModelRevision)
+
+ BRBINFO.S.A0004(ProductID)
+
+ BRBINFO.S.A0006(Location)
+
+ BRBINFO.S.A0010(LocalConfigDisabled)
+
+ BRBINFO.S.A0013(CapabilityMinima)
+ disabled: true
+
- label: "Commission DUT to TH (if not already done)"
verification: |
- verification step to be updated.
+
disabled: true
- label: "TH reads the ClusterRevision from DUT"
diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml
index 8ec428966a1037..af032127cea265 100644
--- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_1.yaml
@@ -26,8 +26,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read vendor-name 1 3
- Verify VendorName is of type string and is less than or equal to 32 bytes on TH(chip-tool) Log:
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495199.434300][2158:2163] CHIP:TOO: VendorName: TEST_VENDOR
disabled: true
@@ -46,8 +47,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read vendor-name 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495199.434300][2158:2163] CHIP:TOO: VendorName: TEST_VENDOR
disabled: true
@@ -56,8 +58,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read vendor-id 1 3
- Veify VendorID value is in range of 0x0001 to 0xFFF0 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495322.252171][2177:2182] CHIP:TOO: VendorID: 65521
disabled: true
@@ -76,8 +79,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read vendor-id 1 3
- Verify VendorID is not chnged when compared to step 8 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495322.252171][2177:2182] CHIP:TOO: VendorID: 65521
disabled: true
@@ -86,8 +90,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read product-name 1 3
- Verify ProductName has human readable string and is less or equal to 32 bytes on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495708.412745][2200:2205] CHIP:TOO: ProductName: TEST_PRODUCT
disabled: true
@@ -107,8 +112,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read product-name 1 3
- Verify ProductName is not chnged when compared to step 11 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495708.412745][2200:2205] CHIP:TOO: ProductName: TEST_PRODUCT
disabled: true
@@ -117,8 +123,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read node-label 1 3
- Verify the value of node-label is type of string and contains length between 0 and 32 in TH(chip-tool) Log:
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1657696463.081741][15476:15481] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2577979325
[1657696463.081791][15476:15481] CHIP:TOO: NodeLabel: Light 1
disabled: true
@@ -132,15 +139,15 @@ tests:
NOTE the quotes: single-quote/double-quote/string/double-quote/single-quote
- On TH(chip-tool) verify that DUT sends a success response
- [1656495932.122094][2236:2241] CHIP:DMG: }
- [1656495932.122264][2236:2241] CHIP:DMG:
- [1656495932.122332][2236:2241] CHIP:DMG: StatusIB =
- [1656495932.122398][2236:2241] CHIP:DMG: {
- [1656495932.122466][2236:2241] CHIP:DMG: status = 0x00 (SUCCESS),
- [1656495932.122538][2236:2241] CHIP:DMG: },
- [1656495932.122602][2236:2241] CHIP:DMG:
- [1656495932.122660][2236:2241] CHIP:DMG: },
+
+ [1660839701.840432][2444:2449] CHIP:DMG: }
+ [1660839701.840505][2444:2449] CHIP:DMG:
+ [1660839701.840578][2444:2449] CHIP:DMG: StatusIB =
+ [1660839701.840661][2444:2449] CHIP:DMG: {
+ [1660839701.840742][2444:2449] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE),
+ [1660839701.840827][2444:2449] CHIP:DMG: },
+ [1660839701.840905][2444:2449] CHIP:DMG:
+ [1660839701.840973][2444:2449] CHIP:DMG: },
disabled: true
- label: "TH reads NodeLabel"
@@ -159,8 +166,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read hardware-version 1 3
- Verify HardwareVersion is in range of 0 to 65534 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496175.564718][2302:2307] CHIP:TOO: HardwareVersion: 0
disabled: true
@@ -179,8 +187,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read hardware-version 1 3
- Verify HardwareVersion is not chnged when compared to step 21 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496175.564718][2302:2307] CHIP:TOO: HardwareVersion: 0
disabled: true
@@ -189,8 +198,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read hardware-version-string 1 3
- Verify HardwareVersionString value is type of string and in range of 1 to 64 bytes
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496257.298675][2315:2320] CHIP:TOO: HardwareVersionString: TEST_VERSION
disabled: true
@@ -209,8 +219,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read hardware-version-string 1 3
- Verify HardwareVersionString is not chnged when compared to step 24 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496257.298675][2315:2320] CHIP:TOO: HardwareVersionString: TEST_VERSION
disabled: true
@@ -219,8 +230,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read software-version 1 3
- Verify SoftwareVersion value is in range of 0 to 4294967294 on TH(chip-tol) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496411.609866][2348:2353] CHIP:TOO: SoftwareVersion: 1
disabled: true
@@ -239,8 +251,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read software-version 1 3
- Verify SoftwareVersion is not chnged when compared to step 27 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496411.609866][2348:2353] CHIP:TOO: SoftwareVersion: 1
disabled: true
@@ -249,8 +262,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read software-version-string 1 3
- Verify the SoftwareVersionString is of type string and has length of 1 to 64 bytes
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496498.568951][2362:2367] CHIP:TOO: SoftwareVersionString: 1.0
disabled: true
@@ -270,8 +284,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read software-version-string 1 3
- Verify SoftwareVersionString is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496498.568951][2362:2367] CHIP:TOO: SoftwareVersionString: 1.0
disabled: true
@@ -280,8 +295,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read manufacturing-date 1 3
- Verify manufacturing date is of type string and has length of range 8 to 16 bytes on TH()
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496661.777852][2388:2393] CHIP:TOO: ManufacturingDate: 20200101
disabled: true
@@ -300,8 +316,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read manufacturing-date 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496661.777852][2388:2393] CHIP:TOO: ManufacturingDate: 20200101
disabled: true
@@ -310,6 +327,10 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read part-number 1 3
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+
+ Example Log:
+
[1656496800.941788][2405:2410] CHIP:TOO: PartNumber: 1234
disabled: true
@@ -328,8 +349,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read part-number 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656496800.941788][2405:2410] CHIP:TOO: PartNumber: 1234
disabled: true
@@ -338,6 +360,10 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read product-url 1 3
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+
+ Example Log:
+
[1656497181.118653][2436:2441] CHIP:TOO: ProductURL: https://example.com/myproduct
disabled: true
@@ -356,8 +382,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read product-url 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656497181.118653][2436:2441] CHIP:TOO: ProductURL: https://example.com/myproduct
disabled: true
@@ -366,6 +393,10 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read product-label 1 3
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+
+ Example Log:
+
[1656501313.811305][2602:2607] CHIP:TOO: ProductLabel: ABCD
disabled: true
@@ -374,8 +405,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic write product-label newproductlabel 1 3
- Verify response has unsupported write on TH(chip-tool) Log:
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656495259.991989][2164:2169] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
disabled: true
@@ -384,8 +416,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read product-label 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656501313.811305][2602:2607] CHIP:TOO: ProductLabel: ABCD
disabled: true
@@ -394,6 +427,10 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read serial-number 1 3
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+
+ Example Log:
+
[1656501452.183890][2624:2630] CHIP:TOO: SerialNumber: 5678
disabled: true
@@ -412,8 +449,9 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read serial-number 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656501452.183890][2624:2630] CHIP:TOO: SerialNumber: 5678
disabled: true
@@ -434,9 +472,9 @@ tests:
false."
PICS: BRBINFO.S.A0011
verification: |
- ./chip-tool bridgeddevicebasic write-by-id 0x0005 ‘“false”’ 1 0
+ ./chip-tool bridgeddevicebasic write-by-id 0x0005 false 1 0
+
- Verify response has unsupported write on TH(chip-tool) Log:
On TH verify that, TH receives UNSUPPORTED_WRITE response as status
[1656496372.884955][2340:2345] CHIP:DMG: }
@@ -461,6 +499,10 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read unique-id 1 3
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+
+ Example Log:
+
[1656501734.253827][2673:2679] CHIP:TOO: UniqueID: 30789FE4FCF832C9
disabled: true
@@ -479,7 +521,8 @@ tests:
verification: |
./chip-tool bridgeddevicebasic read unique-id 1 3
- Verify VendorName is not chnged when compared to step 1 on TH(chip-tool) Log
+ Optional Attribute - If it is supported, then in TH log it will results in displaying the value, else it will display UNSUPPORTED_ATTRIBUTE
+ Example Log:
[1656501734.253827][2673:2679] CHIP:TOO: UniqueID: 30789FE4FCF832C9
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml
index ed625f1badc7e6..8f9c01ccd13edb 100644
--- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_2.yaml
@@ -21,6 +21,19 @@ config:
endpoint: 0
tests:
+ - label: "Precondition"
+ verification: |
+ 1. DUT and TH can interact with each other. DUT is commissioned.
+
+ 2. TH reads SoftwareVersion attribute from DUT and saves for future use
+
+ 3. TH reads Reachable attribute from DUT and saves for future use
+
+ 4. TH subscribes to StartUp, ShutDown, ReachableChanged and Leave events on the Basic cluster of the DUT
+
+ 5. TH saves the FabricIndex during commissioning
+ disabled: true
+
- label:
"Reboot the DUT (i.e. restart by power cycle, not by making it factory
new) TH receives the StartUp event from DUT"
diff --git a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml
index ac004b610d315b..343d47dbd49355 100644
--- a/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BRBINFO_2_3.yaml
@@ -23,18 +23,18 @@ config:
tests:
- label: "Note"
verification: |
- Note: : For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
- - label: "Note"
+ - label: "Precondition"
verification: |
- For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ 1. Commission TH to DUT
disabled: true
- label: "DUT reads VendorName from the TH"
PICS: BRBINFO.C.A0001
verification: |
- ./chip-tool bridgeddevicebasic read vendor-name 1 0
+ ./chip-tool bridgeddevicebasic read vendor-name 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -66,7 +66,7 @@ tests:
- label: "DUT reads VendorID from the TH"
PICS: BRBINFO.C.A0002
verification: |
- ./chip-tool bridgeddevicebasic read vendor-id 1 0
+ ./chip-tool bridgeddevicebasic read vendor-id 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -120,7 +120,7 @@ tests:
- label: "DUT reads ProductName from the TH"
PICS: BRBINFO.C.A0003
verification: |
- ./chip-tool bridgeddevicebasic read product-name 1 0
+ ./chip-tool bridgeddevicebasic read product-name 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -150,7 +150,7 @@ tests:
- label: "DUT reads NodeLabel from the TH"
PICS: BRBINFO.C.A0005
verification: |
- ./chip-tool bridgeddevicebasic read node-label 1 0
+ ./chip-tool bridgeddevicebasic read node-label 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -183,7 +183,7 @@ tests:
- label: "DUT reads Location from the TH"
PICS: BRBINFO.C.A0006
verification: |
- ./chip-tool bridgeddevicebasic read location 1 0
+ ./chip-tool bridgeddevicebasic read location 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -216,7 +216,7 @@ tests:
- label: "DUT reads HardwareVersion from the TH"
PICS: BRBINFO.C.A0007
verification: |
- ./chip-tool bridgeddevicebasic read hardware-version-string 1 0
+ ./chip-tool bridgeddevicebasic read hardware-version 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -249,7 +249,7 @@ tests:
- label: "DUT reads HardwareVersionString from the TH"
PICS: BRBINFO.C.A0008
verification: |
- ./chip-tool bridgeddevicebasic read hardware-version-string 1 0
+ ./chip-tool bridgeddevicebasic read hardware-version-string 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -283,7 +283,7 @@ tests:
- label: "DUT reads SoftwareVersion from the TH"
PICS: BRBINFO.C.A0009
verification: |
- ./chip-tool bridgeddevicebasic read software-version 1 0
+ ./chip-tool bridgeddevicebasic read software-version 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -317,7 +317,7 @@ tests:
- label: "DUT reads SoftwareVersionString from the TH"
PICS: BRBINFO.C.A000a
verification: |
- ./chip-tool bridgeddevicebasic read software-version-string 1 0
+ ./chip-tool bridgeddevicebasic read software-version-string 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -351,7 +351,7 @@ tests:
- label: "DUT reads ManufacturingDate from the TH"
PICS: BRBINFO.C.A000b
verification: |
- ./chip-tool bridgeddevicebasic read manufacturing-date 1 0
+ ./chip-tool bridgeddevicebasic read manufacturing-date 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -385,7 +385,7 @@ tests:
- label: "DUT reads PartNumber from the TH"
PICS: BRBINFO.C.A000c
verification: |
- ./chip-tool bridgeddevicebasic read part-number 1 0
+ ./chip-tool bridgeddevicebasic read part-number 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -419,7 +419,7 @@ tests:
- label: "DUT reads ProductURL from the TH"
PICS: BRBINFO.C.A000d
verification: |
- ./chip-tool bridgeddevicebasic read product-url 1 0
+ ./chip-tool bridgeddevicebasic read product-url 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -453,7 +453,7 @@ tests:
- label: "DUT reads ProductLabel from the TH"
PICS: BRBINFO.C.A000e
verification: |
- ./chip-tool bridgeddevicebasic read product-label 1 0
+ ./chip-tool bridgeddevicebasic read product-label 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -487,7 +487,7 @@ tests:
- label: "DUT reads SerialNumber from the TH"
PICS: BRBINFO.C.A000f
verification: |
- ./chip-tool bridgeddevicebasic read serial-number 1 0
+ ./chip-tool bridgeddevicebasic read serial-number 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
@@ -521,7 +521,7 @@ tests:
- label: "DUT reads Reachable from the TH"
PICS: BRBINFO.C.A0011
verification: |
- ./chip-tool bridgeddevicebasic read reachable 1 0
+ ./chip-tool bridgeddevicebasic read reachable 1 3
Verify ReadRequestMessage is displayed on TH(all-clusters-app) Log
[1659966974.431316][3334:3334] CHIP:IM: Received Read request
@@ -552,7 +552,7 @@ tests:
- label: "DUT reads UniqueID from the TH"
PICS: BRBINFO.C.A0012
verification: |
- ./chip-tool bridgeddevicebasic read unique-id 1 0
+ ./chip-tool bridgeddevicebasic read unique-id 1 3
Optional Attribute - If it is supported, then in TH(all-clusters-app) log it will results in displaying the ReportDataMessage , else it will display UNSUPPORTED_ATTRIBUTE
diff --git a/src/app/tests/suites/certification/Test_TC_BR_4.yaml b/src/app/tests/suites/certification/Test_TC_BR_4.yaml
index e836b98ba2ffdf..0effe409a9420b 100644
--- a/src/app/tests/suites/certification/Test_TC_BR_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_BR_4.yaml
@@ -29,6 +29,14 @@ tests:
For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
+ - label: "Precondition"
+ verification: |
+ 1. Test Harness simulating a bridge with some bridged devices; can use the bridge-app for this purpose
+
+ 2.DUT (client and commissioner)
+
+ disabled: true
+
- label:
"Start bridge-app on TH. Commission TH to DUT. Monitor traffic between
DUT and TH."
@@ -37,173 +45,352 @@ tests:
./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540
- Verify DeviceTypeList for available EP
-
./chip-tool descriptor read device-list 1 1
Verify in TH(all-clusters-app) Log:
- [1657002313.871608][3977:3982] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3021853414
- [1657002313.871680][3977:3982] CHIP:TOO: device list: 1 entries
- [1657002313.871740][3977:3982] CHIP:TOO: [1]: {
- [1657002313.871788][3977:3982] CHIP:TOO: Type: 14
- [1657002313.871821][3977:3982] CHIP:TOO: Revision: 1
- [1657002313.871852][3977:3982] :TOOCHIP: }
+ [1659972694.732632][3652:3652] CHIP:IM: Received Read request
+ [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972694.732739][3652:3652] CHIP:DMG: {
+ [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972694.732800][3652:3652] CHIP:DMG: [
+ [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972694.732866][3652:3652] CHIP:DMG: {
+ [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x1,
+ [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972694.733009][3652:3652] CHIP:DMG: }
+ [1659972694.733066][3652:3652] CHIP:DMG:
+ [1659972694.733092][3652:3652] CHIP:DMG: ],
+ [1659972694.733128][3652:3652] CHIP:DMG:
+ [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972694.733211][3652:3652] CHIP:DMG: },
+ [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+ [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
+ [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v
+ [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed
+
+
+ ./chip-tool descriptor read device-list 1 2
+
+ Verify in TH(all-clusters-app) Log:
+ [1659972694.732632][3652:3652] CHIP:IM: Received Read request
+ [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972694.732739][3652:3652] CHIP:DMG: {
+ [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972694.732800][3652:3652] CHIP:DMG: [
+ [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972694.732866][3652:3652] CHIP:DMG: {
+ [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x2,
+ [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972694.733009][3652:3652] CHIP:DMG: }
+ [1659972694.733066][3652:3652] CHIP:DMG:
+ [1659972694.733092][3652:3652] CHIP:DMG: ],
+ [1659972694.733128][3652:3652] CHIP:DMG:
+ [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972694.733211][3652:3652] CHIP:DMG: },
+ [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+ [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
+ [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v
+ [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed
./chip-tool descriptor read device-list 1 3
Verify in TH(all-clusters-app) Log:
- [1657002329.438065][3983:3988] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872
- [1657002329.438135][3983:3988] CHIP:TOO: device list: 2 entries
- [1657002329.438193][3983:3988] CHIP:TOO: [1]: {
- [1657002329.438238][3983:3988] CHIP:TOO: Type: 256
- [1657002329.438269][3983:3988] CHIP:TOO: Revision: 1
- [1657002329.438298][3983:3988] CHIP:TOO: }
- [1657002329.438332][3983:3988] CHIP:TOO: [2]: {
- [1657002329.438360][3983:3988] CHIP:TOO: Type: 19
- [1657002329.438389][3983:3988] CHIP:TOO: Revision: 1
- [1657002329.438416][3983:3988] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 4
Verify in TH(all-clusters-app) Log:
- [1657002348.693948][3989:3994] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1398882309
- [1657002348.694013][3989:3994] CHIP:TOO: device list: 2 entries
- [1657002348.694063][3989:3994] CHIP:TOO: [1]: {
- [1657002348.694100][3989:3994] CHIP:TOO: Type: 259
- [1657002348.694125][3989:3994] CHIP:TOO: Revision: 1
- [1657002348.694149][3989:3994] CHIP:TOO: }
- [1657002348.694176][3989:3994] CHIP:TOO: [2]: {
- [1657002348.694199][3989:3994] CHIP:TOO: Type: 19
- [1657002348.694221][3989:3994] CHIP:TOO: Revision: 1
- [1657002348.694242][3989:3994] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 5
Verify in TH(all-clusters-app) Log:
- [1657002369.589492][3996:4001] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 130458766
- [1657002369.589556][3996:4001] CHIP:TOO: device list: 2 entries
- [1657002369.589610][3996:4001] CHIP:TOO: [1]: {
- [1657002369.589653][3996:4001] CHIP:TOO: Type: 259
- [1657002369.589682][3996:4001] CHIP:TOO: Revision: 1
- [1657002369.589710][3996:4001] CHIP:TOO: }
- [1657002369.589742][3996:4001] CHIP:TOO: [2]: {
- [1657002369.589768][3996:4001] CHIP:TOO: Type: 19
- [1657002369.589794][3996:4001] CHIP:TOO: Revision: 1
- [1657002369.589819][3996:4001] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x5,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 6
Verify in TH(all-clusters-app) Log:
- [1657002386.484093][4002:4007] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 295450100
- [1657002386.484155][4002:4007] CHIP:TOO: device list: 1 entries
- [1657002386.484255][4002:4007] CHIP:TOO: [1]: {
- [1657002386.484302][4002:4007] CHIP:TOO: Type: 19
- [1657002386.484332][4002:4007] CHIP:TOO: Revision: 1
- [1657002386.484361][4002:4007] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x6,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 7
Verify in TH(all-clusters-app) Log:
- [1657002413.721927][4015:4020] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2117104859
- [1657002413.721981][4015:4020] CHIP:TOO: device list: 1 entries
- [1657002413.722028][4015:4020] CHIP:TOO: [1]: {
- [1657002413.722065][4015:4020] CHIP:TOO: Type: 259
- [1657002413.722090][4015:4020] CHIP:TOO: Revision: 1
- [1657002413.722113][4015:4020] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x7,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 8
Verify in TH(all-clusters-app) Log:
- [1657002436.415904][4034:4039] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2026786918
- [1657002436.415972][4034:4039] CHIP:TOO: device list: 1 entries
- [1657002436.416033][4034:4039] CHIP:TOO: [1]: {
- [1657002436.416081][4034:4039] CHIP:TOO: Type: 259
- [1657002436.416115][4034:4039] CHIP:TOO: Revision: 1
- [1657002436.416146][4034:4039] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x8,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 9
Verify in TH(all-clusters-app) Log:
- [1657002455.445818][4040:4045] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 913116116
- [1657002455.445883][4040:4045] CHIP:TOO: device list: 1 entries
- [1657002455.445944][4040:4045] CHIP:TOO: [1]: {
- [1657002455.445991][4040:4045] CHIP:TOO: Type: 17
- [1657002455.446025][4040:4045] CHIP:TOO: Revision: 1
- [1657002455.446056][4040:4045] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x9,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 10
Verify in TH(all-clusters-app) Log:
- [1657002473.100910][4047:4052] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426
- [1657002473.100967][4047:4052] CHIP:TOO: device list: 2 entries
- [1657002473.101013][4047:4052] CHIP:TOO: [1]: {
- [1657002473.101051][4047:4052] CHIP:TOO: Type: 256
- [1657002473.101076][4047:4052] CHIP:TOO: Revision: 1
- [1657002473.101098][4047:4052] CHIP:TOO: }
- [1657002473.101126][4047:4052] CHIP:TOO: [2]: {
- [1657002473.101148][4047:4052] CHIP:TOO: Type: 19
- [1657002473.101170][4047:4052] CHIP:TOO: Revision: 1
- [1657002473.101192][4047:4052] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x10,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 11
Verify in TH(all-clusters-app) Log:
- [1657002495.856770][4061:4066] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677
- [1657002495.856836][4061:4066] CHIP:TOO: device list: 2 entries
- [1657002495.856893][4061:4066] CHIP:TOO: [1]: {
- [1657002495.856938][4061:4066] CHIP:TOO: Type: 256
- [1657002495.856968][4061:4066] CHIP:TOO: Revision: 1
- [1657002495.856996][4061:4066] CHIP:TOO: }
- [1657002495.857030][4061:4066] CHIP:TOO: [2]: {
- [1657002495.857058][4061:4066] CHIP:TOO: Type: 19
- [1657002495.857085][4061:4066] CHIP:TOO: Revision: 1
- [1657002495.857112][4061:4066] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x11,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 12
Verify in TH(all-clusters-app) Log:
- [1657002515.862187][4073:4078] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835
- [1657002515.862249][4073:4078] CHIP:TOO: device list: 2 entries
- [1657002515.862302][4073:4078] CHIP:TOO: [1]: {
- [1657002515.862343][4073:4078] CHIP:TOO: Type: 256
- [1657002515.862372][4073:4078] CHIP:TOO: Revision: 1
- [1657002515.862398][4073:4078] CHIP:TOO: }
- [1657002515.862429][4073:4078] CHIP:TOO: [2]: {
- [1657002515.862455][4073:4078] CHIP:TOO: Type: 19
- [1657002515.862480][4073:4078] CHIP:TOO: Revision: 1
- [1657002515.862504][4073:4078] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x12,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
./chip-tool descriptor read device-list 1 13
Verify in TH(all-clusters-app) Log:
- [1657002538.134605][4097:4102] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249
- [1657002538.134700][4097:4102] CHIP:TOO: device list: 2 entries
- [1657002538.134784][4097:4102] CHIP:TOO: [1]: {
- [1657002538.134869][4097:4102] CHIP:TOO: Type: 256
- [1657002538.134916][4097:4102] CHIP:TOO: Revision: 1
- [1657002538.134973][4097:4102] CHIP:TOO: }
- [1657002538.135025][4097:4102] CHIP:TOO: [2]: {
- [1657002538.135083][4097:4102] CHIP:TOO: Type: 19
- [1657002538.135126][4097:4102] CHIP:TOO: Revision: 1
- [1657002538.135166][4097:4102] CHIP:TOO: }
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x13,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
@@ -212,160 +399,1343 @@ tests:
./chip-tool descriptor read parts-list 1 0
Verify in TH(all-clusters-app) Log:
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x0,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+ ./chip-tool descriptor read parts-list 1 1
+
+ Verify in TH(all-clusters-app) Log:
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x1,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+ ./chip-tool descriptor read parts-list 1 2
+
+ Verify in TH(all-clusters-app) Log:
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x2,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+ ./chip-tool descriptor read parts-list 1 3
+
+ Verify in TH(all-clusters-app) Log:
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 4
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 5
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x5,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 6
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x6,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 7
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x7,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 8
- [1657002201.045720][3893:3899] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3573910940
- [1657002201.045841][3893:3899] CHIP:TOO: parts list: 12 entries
- [1657002201.045887][3893:3899] CHIP:TOO: [1]: 1
- [1657002201.045925][3893:3899] CHIP:TOO: [2]: 3
- [1657002201.045963][3893:3899] CHIP:TOO: [3]: 4
- [1657002201.046000][3893:3899] CHIP:TOO: [4]: 5
- [1657002201.046037][3893:3899] CHIP:TOO: [5]: 6
- [1657002201.046073][3893:3899] CHIP:TOO: [6]: 7
- [1657002201.046110][3893:3899] CHIP:TOO: [7]: 8
- [1657002201.046147][3893:3899] CHIP:TOO: [8]: 9
- [1657002201.046184][3893:3899] CHIP:TOO: [9]: 10
- [1657002201.046221][3893:3899] CHIP:TOO: [10]: 11
- [1657002201.046259][3893:3899] CHIP:TOO: [11]: 12
- [1657002201.046296][3893:3899] CHIP:TOO: [12]: 13
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x8,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 9
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x9,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 10
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x10,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+ ./chip-tool descriptor read parts-list 1 11
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x11,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 12
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x12,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 13
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x13,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+ disabled: true
+
+ - label: ""
+ PICS: MCORE.DEVLIST.UseDevices
+ verification: |
+ Verify DUT contains the (supported) devices from the above list
+
+ ./chip-tool descriptor read device-list 1 1
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972694.732632][3652:3652] CHIP:IM: Received Read request
+ [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972694.732739][3652:3652] CHIP:DMG: {
+ [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972694.732800][3652:3652] CHIP:DMG: [
+ [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972694.732866][3652:3652] CHIP:DMG: {
+ [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x1,
+ [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972694.733009][3652:3652] CHIP:DMG: }
+ [1659972694.733066][3652:3652] CHIP:DMG:
+ [1659972694.733092][3652:3652] CHIP:DMG: ],
+ [1659972694.733128][3652:3652] CHIP:DMG:
+ [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972694.733211][3652:3652] CHIP:DMG: },
+ [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+ [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
+ [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v
+ [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed
./chip-tool descriptor read device-list 1 3
Verify in TH(all-clusters-app) Log:
- [1657002843.395988][4135:4140] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2452512872
- [1657002843.396058][4135:4140] CHIP:TOO: device list: 2 entries
- [1657002843.396112][4135:4140] CHIP:TOO: [1]: {
- [1657002843.396154][4135:4140] CHIP:TOO: Type: 256
- [1657002843.396204][4135:4140] CHIP:TOO: Revision: 1
- [1657002843.396232][4135:4140] CHIP:TOO: }
- [1657002843.396265][4135:4140] CHIP:TOO: [2]: {
- [1657002843.396291][4135:4140] CHIP:TOO: Type: 19
- [1657002843.396317][4135:4140] CHIP:TOO: Revision: 1
- [1657002843.396342][4135:4140] CHIP:TOO: }
+
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
./chip-tool descriptor read device-list 1 4
Verify in TH(all-clusters-app) Log:
- [1657002927.992247][4143:4148] CHIP:TOO: Endpoint: 4 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1398882309
- [1657002927.992309][4143:4148] CHIP:TOO: device list: 2 entries
- [1657002927.992362][4143:4148] CHIP:TOO: [1]: {
- [1657002927.992405][4143:4148] CHIP:TOO: Type: 259
- [1657002927.992434][4143:4148] CHIP:TOO: Revision: 1
- [1657002927.992459][4143:4148] CHIP:TOO: }
- [1657002927.992490][4143:4148] CHIP:TOO: [2]: {
- [1657002927.992516][4143:4148] CHIP:TOO: Type: 19
- [1657002927.992542][4143:4148] CHIP:TOO: Revision: 1
- [1657002927.992567][4143:4148] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 5
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 5
Verify in TH(all-clusters-app) Log:
- [1657002949.332151][4156:4161] CHIP:TOO: Endpoint: 5 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 130458766
- [1657002949.332245][4156:4161] CHIP:TOO: device list: 2 entries
- [1657002949.332294][4156:4161] CHIP:TOO: [1]: {
- [1657002949.332332][4156:4161] CHIP:TOO: Type: 259
- [1657002949.332356][4156:4161] CHIP:TOO: Revision: 1
- [1657002949.332379][4156:4161] CHIP:TOO: }
- [1657002949.332405][4156:4161] CHIP:TOO: [2]: {
- [1657002949.332427][4156:4161] CHIP:TOO: Type: 19
- [1657002949.332449][4156:4161] CHIP:TOO: Revision: 1
- [1657002949.332470][4156:4161] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 6
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x5,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 6
Verify in TH(all-clusters-app) Log:
- [1657002965.947096][4163:4168] CHIP:TOO: Endpoint: 6 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 295450100
- [1657002965.947150][4163:4168] CHIP:TOO: device list: 1 entries
- [1657002965.947196][4163:4168] CHIP:TOO: [1]: {
- [1657002965.947231][4163:4168] CHIP:TOO: Type: 19
- [1657002965.947256][4163:4168] CHIP:TOO: Revision: 1
- [1657002965.947278][4163:4168] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 7
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x6,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 7
Verify in TH(all-clusters-app) Log:
- [1657002981.963307][4176:4181] CHIP:TOO: Endpoint: 7 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2117104859
- [1657002981.963371][4176:4181] CHIP:TOO: device list: 1 entries
- [1657002981.963429][4176:4181] CHIP:TOO: [1]: {
- [1657002981.963474][4176:4181] CHIP:TOO: Type: 259
- [1657002981.963505][4176:4181] CHIP:TOO: Revision: 1
- [1657002981.963533][4176:4181] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 8
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x7,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 8
Verify in TH(all-clusters-app) Log:
- [1657003007.476575][4183:4188] CHIP:TOO: Endpoint: 8 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2026786918
- [1657003007.476635][4183:4188] CHIP:TOO: device list: 1 entries
- [1657003007.476689][4183:4188] CHIP:TOO: [1]: {
- [1657003007.476731][4183:4188] CHIP:TOO: Type: 259
- [1657003007.476760][4183:4188] CHIP:TOO: Revision: 1
- [1657003007.476786][4183:4188] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 9
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x8,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 9
Verify in TH(all-clusters-app) Log:
- [1657003023.263333][4191:4196] CHIP:TOO: Endpoint: 9 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 913116116
- [1657003023.263391][4191:4196] CHIP:TOO: device list: 1 entries
- [1657003023.263443][4191:4196] CHIP:TOO: [1]: {
- [1657003023.263484][4191:4196] CHIP:TOO: Type: 17
- [1657003023.263512][4191:4196] CHIP:TOO: Revision: 1
- [1657003023.263538][4191:4196] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 10
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x9,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 10
Verify in TH(all-clusters-app) Log:
- [1657003044.071972][4204:4209] CHIP:TOO: Endpoint: 10 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 259205426
- [1657003044.072037][4204:4209] CHIP:TOO: device list: 2 entries
- [1657003044.072085][4204:4209] CHIP:TOO: [1]: {
- [1657003044.072123][4204:4209] CHIP:TOO: Type: 256
- [1657003044.072149][4204:4209] CHIP:TOO: Revision: 1
- [1657003044.072195][4204:4209] CHIP:TOO: }
- [1657003044.072227][4204:4209] CHIP:TOO: [2]: {
- [1657003044.072250][4204:4209] CHIP:TOO: Type: 19
- [1657003044.072272][4204:4209] CHIP:TOO: Revision: 1
- [1657003044.072295][4204:4209] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 11
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x10,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+ ./chip-tool descriptor read device-list 1 11
Verify in TH(all-clusters-app) Log:
- [1657003082.358311][4217:4222] CHIP:TOO: Endpoint: 11 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 4248421677
- [1657003082.358379][4217:4222] CHIP:TOO: device list: 2 entries
- [1657003082.358432][4217:4222] CHIP:TOO: [1]: {
- [1657003082.358471][4217:4222] CHIP:TOO: Type: 256
- [1657003082.358501][4217:4222] CHIP:TOO: Revision: 1
- [1657003082.358529][4217:4222] CHIP:TOO: }
- [1657003082.358563][4217:4222] CHIP:TOO: [2]: {
- [1657003082.358591][4217:4222] CHIP:TOO: Type: 19
- [1657003082.358619][4217:4222] CHIP:TOO: Revision: 1
- [1657003082.358646][4217:4222] CHIP:TOO: }
- ./chip-tool descriptor read device-list 1 12
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x11,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+
+ ./chip-tool descriptor read device-list 1 12
Verify in TH(all-clusters-app) Log:
- [1657003103.954911][4248:4253] CHIP:TOO: Endpoint: 12 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 2731599835
- [1657003103.954986][4248:4253] CHIP:TOO: device list: 2 entries
- [1657003103.955050][4248:4253] CHIP:TOO: [1]: {
- [1657003103.955095][4248:4253] CHIP:TOO: Type: 256
- [1657003103.955125][4248:4253] CHIP:TOO: Revision: 1
- [1657003103.955153][4248:4253] CHIP:TOO: }
- [1657003103.955186][4248:4253] CHIP:TOO: [2]: {
- [1657003103.955214][4248:4253] CHIP:TOO: Type: 19
- [1657003103.955242][4248:4253] CHIP:TOO: Revision: 1
- [1657003103.955269][4248:4253] CHIP:TOO: }
+
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x12,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
./chip-tool descriptor read device-list 1 13
Verify in TH(all-clusters-app) Log:
- [1657003125.905572][4261:4266] CHIP:TOO: Endpoint: 13 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3449178249
- [1657003125.905638][4261:4266] CHIP:TOO: device list: 2 entries
- [1657003125.905687][4261:4266] CHIP:TOO: [1]: {
- [1657003125.905723][4261:4266] CHIP:TOO: Type: 256
- [1657003125.905750][4261:4266] CHIP:TOO: Revision: 1
- [1657003125.905773][4261:4266] CHIP:TOO: }
- [1657003125.905800][4261:4266] CHIP:TOO: [2]: {
- [1657003125.905823][4261:4266] CHIP:TOO: Type: 19
- [1657003125.905845][4261:4266] CHIP:TOO: Revision: 1
- [1657003125.905867][4261:4266] CHIP:TOO: }
+
+ [1659972745.371532][3652:3652] CHIP:IM: Received Read request
+ [1659972745.371611][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972745.371654][3652:3652] CHIP:DMG: {
+ [1659972745.371678][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972745.371716][3652:3652] CHIP:DMG: [
+ [1659972745.371742][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972745.371781][3652:3652] CHIP:DMG: {
+ [1659972745.371818][3652:3652] CHIP:DMG: Endpoint = 0x13,
+ [1659972745.371860][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972745.371902][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972745.371933][3652:3652] CHIP:DMG: }
+ [1659972745.371971][3652:3652] CHIP:DMG:
+ [1659972745.371997][3652:3652] CHIP:DMG: ],
+ [1659972745.372036][3652:3652] CHIP:DMG:
+ [1659972745.372063][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972745.372099][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972745.372124][3652:3652] CHIP:DMG: },
+ [1659972745.372217][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972745.372312][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972745.372343][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+
+
+
+ Verify PartsList for available EP
+
+ ./chip-tool descriptor read parts-list 1 0
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x0,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 3
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 4
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 5
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x5,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 6
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x6,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 7
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x7,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 8
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x8,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 9
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x9,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 10
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x10,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+ ./chip-tool descriptor read parts-list 1 11
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x11,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 12
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x12,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+
+
+ ./chip-tool descriptor read parts-list 1 13
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x13,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+ disabled: true
+
+ - label: ""
+ PICS: MCORE.DEVLIST.UseDeviceNames
+ verification: |
+ NodeLabel is supported for endpoints 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
+
+ ./chip-tool bridgeddevicebasic read node-label 1 3
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 4
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 5
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x5,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 6
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x6,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 7
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x7,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 8
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x8,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 9
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x9,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 10
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x10,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 11
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x11,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 12
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x12,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+
+
+
+ ./chip-tool bridgeddevicebasic read node-label 1 13
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x13,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
+ disabled: true
+
+ - label: ""
+ PICS: MCORE.DEVLIST.UseDeviceState
+ verification: |
+ Read onoff attribute from OnOff cluster with applicable EP (refer step 1a )
+
+ ./chip-tool onoff read on-off 1 3
+
+ Verify in TH(all-clusters-app) Log:
+
+ [1659973152.263905][3652:3652] CHIP:IM: Received Read request
+ [1659973152.264002][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973152.264053][3652:3652] CHIP:DMG: {
+ [1659973152.264083][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973152.264130][3652:3652] CHIP:DMG: [
+ [1659973152.264163][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973152.264214][3652:3652] CHIP:DMG: {
+ [1659973152.264255][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659973152.264308][3652:3652] CHIP:DMG: Cluster = 0x6,
+ [1659973152.264350][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659973152.264404][3652:3652] CHIP:DMG: }
+ [1659973152.264457][3652:3652] CHIP:DMG:
+ [1659973152.264494][3652:3652] CHIP:DMG: ],
+ [1659973152.264541][3652:3652] CHIP:DMG:
+ [1659973152.264577][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973152.264622][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973152.264654][3652:3652] CHIP:DMG: },
+ [1659973152.264756][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973152.264871][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973152.264922][3652:3652] CHIP:DMG: Cluster 6, Attribute 0 is dirty
disabled: true
- label:
@@ -373,17 +1743,58 @@ tests:
bridged On/Off lights (use key c in the console to bridge-app)"
PICS: MCORE.DEVLIST.UseDeviceState
verification: |
- Verify on DUT(chip-tool) Log
- c
- [1659089560.774328][12236:12241] CHIP:DL: Device[Light 1b]: ON
- [1659089560.774681][12236:12236] CHIP:DMG: Endpoint 3, Cluster 0x0000_0006 update version to 83dcb371
+ Verify on TH(all-clusters-app) Log:
+ ./chip-tool onoff read on-off 1 3
+ [1659973152.263905][3652:3652] CHIP:IM: Received Read request
+ [1659973152.264002][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973152.264053][3652:3652] CHIP:DMG: {
+ [1659973152.264083][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973152.264130][3652:3652] CHIP:DMG: [
+ [1659973152.264163][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973152.264214][3652:3652] CHIP:DMG: {
+ [1659973152.264255][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659973152.264308][3652:3652] CHIP:DMG: Cluster = 0x6,
+ [1659973152.264350][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659973152.264404][3652:3652] CHIP:DMG: }
+ [1659973152.264457][3652:3652] CHIP:DMG:
+ [1659973152.264494][3652:3652] CHIP:DMG: ],
+ [1659973152.264541][3652:3652] CHIP:DMG:
+ [1659973152.264577][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973152.264622][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973152.264654][3652:3652] CHIP:DMG: },
+ [1659973152.264756][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973152.264871][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973152.264922][3652:3652] CHIP:DMG: Cluster 6, Attribute 0 is dirty
+ disabled: true
+
+ - label: ""
+ PICS: MCORE.DEVLIST.UseDeviceState
+ verification: |
+ ./chip-tool temperaturemeasurement read measured-value 1 4
Verify on TH(all-clusters-app) Log:
- ./chip-tool onoff read on-off 1 3
- [1659089585.162599][8769:8774] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 2212279153
- [1659089585.162714][8769:8774] CHIP:TOO: OnOff: TRUE
+ [1659973227.630446][3652:3652] CHIP:IM: Received Read request
+ [1659973227.630527][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973227.630570][3652:3652] CHIP:DMG: {
+ [1659973227.630594][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973227.630633][3652:3652] CHIP:DMG: [
+ [1659973227.630658][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973227.630699][3652:3652] CHIP:DMG: {
+ [1659973227.630728][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659973227.630779][3652:3652] CHIP:DMG: Cluster = 0x402,
+ [1659973227.630821][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659973227.630853][3652:3652] CHIP:DMG: }
+ [1659973227.630892][3652:3652] CHIP:DMG:
+ [1659973227.630919][3652:3652] CHIP:DMG: ],
+ [1659973227.630957][3652:3652] CHIP:DMG:
+ [1659973227.630984][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973227.631020][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973227.631044][3652:3652] CHIP:DMG: },
+ [1659973227.631126][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973227.631231][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973227.631262][3652:3652] CHIP:DMG: Cluster 402, Attribute 0 is dirty
disabled: true
- label:
@@ -394,17 +1805,8 @@ tests:
verification: |
Press a key "tbd" on bridge-app to change the simulated temperature
- Verify on DUT(chip-tool) Log
- [1659351537.115828][14237:14242] CHIP:DL: TempSensorDevice[TempSensor 1]: New measurement=""200""
- [1659351537.115987][14237:14242] CHIP:DL: TempSensorDevice[TempSensor 2]: New measurement=""200""
- [1659351537.116097][14237:14242] CHIP:DL: TempSensorDevice[Composed TempSensor 1]: New measurement=""200""
- [1659351537.116158][14237:14237] CHIP:DMG: Endpoint 4, Cluster 0x0000_0402 update version to 8f732d69
- [1659351537.116300][14237:14237] CHIP:DMG: Endpoint 5, Cluster 0x0000_0402 update version to 36be37c5
- [1659351537.116393][14237:14237] CHIP:DMG: Endpoint 7, Cluster 0x0000_0402 update version to 2cf2064d
- [1659351537.116179][14237:14242] CHIP:DL: TempSensorDevice[Composed TempSensor 2]: New measurement=""200""
- "
- "./chip-tool temperaturemeasurement read measured-value 1 4
+ ./chip-tool temperaturemeasurement read measured-value 1 4
Verify on TH(all-clusters-app) Log:
@@ -414,28 +1816,73 @@ tests:
[1659351542.393552][12212:12217] CHIP:EM: Sending Standalone Ack for MessageCounter:120981971 on exchange 25924i
disabled: true
- - label:
- "Use the DUT to change the on/off state of one or more of the bridged
- On/Off lights"
+ - label: ""
+ PICS: MCORE.DEVLIST.UseBatInfo
verification: |
- ./chip-tool onoff on 1 3
+ ./chip-tool powersource read bat-charge-level 1 9
- Verify on DUT(chip-tool) Log
+ Verify on TH(all-clusters-app) Log:
- [1658501274.507714][14425:14425] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0006 e=3 p=o
- [1658501274.507760][14425:14425] CHIP:DMG: AccessControl: allowed
- [1658501274.507789][14425:14425] CHIP:DMG: Received command for Endpoint=3 Cluster=0x0000_0006 Command=0x0000_0001
- [1658501274.507829][14425:14425] CHIP:ZCL: On/Off set value: 3 1
- [1658501274.507854][14425:14425] CHIP:DL: HandleReadOnOffAttribute: attrId=0, maxReadLength=1
- [1658501274.507886][14425:14425] CHIP:ZCL: On/off already set to new value
+ [1659973227.630446][3652:3652] CHIP:IM: Received Read request
+ [1659973227.630527][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973227.630570][3652:3652] CHIP:DMG: {
+ [1659973227.630594][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973227.630633][3652:3652] CHIP:DMG: [
+ [1659973227.630658][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973227.630699][3652:3652] CHIP:DMG: {
+ [1659973227.630728][3652:3652] CHIP:DMG: Endpoint = 0x4,
+ [1659973227.630779][3652:3652] CHIP:DMG: Cluster = 0x402,
+ [1659973227.630821][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659973227.630853][3652:3652] CHIP:DMG: }
+ [1659973227.630892][3652:3652] CHIP:DMG:
+ [1659973227.630919][3652:3652] CHIP:DMG: ],
+ [1659973227.630957][3652:3652] CHIP:DMG:
+ [1659973227.630984][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973227.631020][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973227.631044][3652:3652] CHIP:DMG: },
+ [1659973227.631126][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973227.631231][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973227.631262][3652:3652] CHIP:DMG: Cluster 402, Attribute 0 is dirty
+ disabled: true
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
+ - label:
+ "Use the DUT to change the on/off state of one or more of the bridged
+ On/Off lights"
+ verification: |
./chip-tool onoff read on-off 1 3
Verify on TH(all-clusters-app) Log:
- [1658501339.773125][35583:35588] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 3868039507
- [1658501339.773139][35583:35588] CHIP:TOO: OnOff: TRUE
+ [1659973152.263905][3652:3652] CHIP:IM: Received Read request
+ [1659973152.264002][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973152.264053][3652:3652] CHIP:DMG: {
+ [1659973152.264083][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973152.264130][3652:3652] CHIP:DMG: [
+ [1659973152.264163][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973152.264214][3652:3652] CHIP:DMG: {
+ [1659973152.264255][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659973152.264308][3652:3652] CHIP:DMG: Cluster = 0x6,
+ [1659973152.264350][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659973152.264404][3652:3652] CHIP:DMG: }
+ [1659973152.264457][3652:3652] CHIP:DMG:
+ [1659973152.264494][3652:3652] CHIP:DMG: ],
+ [1659973152.264541][3652:3652] CHIP:DMG:
+ [1659973152.264577][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973152.264622][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973152.264654][3652:3652] CHIP:DMG: },
+ [1659973152.264756][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973152.264871][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973152.264922][3652:3652] CHIP:DMG: Cluster 6, Attribute 0 is dirty
+ disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
disabled: true
- label:
@@ -447,8 +1894,26 @@ tests:
Verify on TH(all-clusters-app) Log:
- [1659089932.160005][8810:8815] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 3178625724
- [1659089932.160111][8810:8815] CHIP:TOO: NodeLabel: Light 1
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
Verify on DUT(chip-tool) Log
@@ -459,86 +1924,157 @@ tests:
Verify on TH(all-clusters-app) Log:
- [1659352004.560327][12241:12246] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_0039 Attribute 0x0000_0005 DataVersion: 2321959095
- [1659352004.560365][12241:12246] CHIP:TOO: NodeLabel: Light 1b
+ [1659973028.616696][3652:3652] CHIP:IM: Received Read request
+ [1659973028.616774][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659973028.616810][3652:3652] CHIP:DMG: {
+ [1659973028.616833][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659973028.616859][3652:3652] CHIP:DMG: [
+ [1659973028.616891][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659973028.616919][3652:3652] CHIP:DMG: {
+ [1659973028.616955][3652:3652] CHIP:DMG: Endpoint = 0x3,
+ [1659973028.617095][3652:3652] CHIP:DMG: Cluster = 0x39,
+ [1659973028.617138][3652:3652] CHIP:DMG: Attribute = 0x0000_0005,
+ [1659973028.617166][3652:3652] CHIP:DMG: }
+ [1659973028.617194][3652:3652] CHIP:DMG:
+ [1659973028.617228][3652:3652] CHIP:DMG: ],
+ [1659973028.617256][3652:3652] CHIP:DMG:
+ [1659973028.617291][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659973028.617317][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659973028.617348][3652:3652] CHIP:DMG: },
+ [1659973028.617428][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659973028.617533][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659973028.617572][3652:3652] CHIP:DMG: Cluster 39, Attribute 5 is dirty
disabled: true
- - label:
- "Use TH/bridge-app to add a bridged light (use key 2 in the console to
- bridge-app to add Light 2)"
+ - label: ""
+ PICS: MCORE.DEVLIST.UseDeviceNames
verification: |
Verify on DUT(chip-tool) Log
- 2
- [1659352274.915018][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918bae
- [1659352274.915107][14237:14242] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 7561f371
- [1659352274.915166][14237:14242] CHIP:DL: Added device Light 2 to dynamic endpoint 14 (index=11)
+ b
+ [1659089470.077297][12236:12241] CHIP:DL: Device[Light 1]: New Name="Light 1b"
+ disabled: true
+
+ - label:
+ "Use TH/bridge-app to add a bridged light (use key 2 in the console to
+ bridge-app to add Light 2)"
+ verification: |
+ Press "2" on TH(chip-tool) Log
./chip-tool descriptor read parts-list 1 0
Verify the endpoints listed in TH(all-clusters-app) Log
- [1659352284.821350][12264:12269] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1969353585
- [1659352284.821433][12264:12269] CHIP:TOO: parts list: 13 entries
- [1659352284.821470][12264:12269] CHIP:TOO: [1]: 1
- [1659352284.821500][12264:12269] CHIP:TOO: [2]: 3
- [1659352284.821529][12264:12269] CHIP:TOO: [3]: 4
- [1659352284.821557][12264:12269] CHIP:TOO: [4]: 5
- [1659352284.821586][12264:12269] CHIP:TOO: [5]: 6
- [1659352284.821614][12264:12269] CHIP:TOO: [6]: 7
- [1659352284.821642][12264:12269] CHIP:TOO: [7]: 8
- [1659352284.821670][12264:12269] CHIP:TOO: [8]: 9
- [1659352284.821698][12264:12269] CHIP:TOO: [9]: 10
- [1659352284.821726][12264:12269] CHIP:TOO: [10]: 11
- [1659352284.821755][12264:12269] CHIP:TOO: [11]: 12
- [1659352284.821784][12264:12269] CHIP:TOO: [12]: 13
- [1659352284.821812][12264:12269] CHIP:TOO: [13]: 14
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x0,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
"
./chip-tool descriptor read parts-list 1 1
Verify the list contains 11 entries in TH(all-clusters-app) Log
- [1659352298.310126][12270:12275] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2123467694
- [1659352298.310213][12270:12275] CHIP:TOO: parts list: 12 entries
- [1659352298.310248][12270:12275] CHIP:TOO: [1]: 3
- [1659352298.310277][12270:12275] CHIP:TOO: [2]: 4
- [1659352298.310304][12270:12275] CHIP:TOO: [3]: 5
- [1659352298.310330][12270:12275] CHIP:TOO: [4]: 6
- [1659352298.310356][12270:12275] CHIP:TOO: [5]: 7
- [1659352298.310381][12270:12275] CHIP:TOO: [6]: 8
- [1659352298.310407][12270:12275] CHIP:TOO: [7]: 9
- [1659352298.310433][12270:12275] CHIP:TOO: [8]: 10
- [1659352298.310459][12270:12275] CHIP:TOO: [9]: 11
- [1659352298.310485][12270:12275] CHIP:TOO: [10]: 12
- [1659352298.310512][12270:12275] CHIP:TOO: [11]: 13
- [1659352298.310538][12270:12275] CHIP:TOO: [12]: 14
- [1659352298.310687][12270:12275] CHIP:EM: Sending Standalone Ack for MessageCounter:4449538 on exchange 4393i
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x1,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
./chip-tool descriptor read parts-list 1 14
Verify on TH(all-clusters-app) Log
-
- [1659352316.442844][12276:12281] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 3417142897
- [1659352316.442927][12276:12281] CHIP:TOO: parts list: 0 entries
- [1659352316.443042][12276:12281] CHIP:EM: Sending Standalone Ack for MessageCounter:85433161 on exchange 30040i
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x14,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
./chip-tool descriptor read device-list 1 14
Verify the list contains 11 entries in TH(all-clusters-app) Log
- [1659352346.719522][12283:12288] CHIP:TOO: Endpoint: 14 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 3417142897
- [1659352346.719601][12283:12288] CHIP:TOO: device list: 2 entries
- [1659352346.719645][12283:12288] CHIP:TOO: [1]: {
- [1659352346.719675][12283:12288] CHIP:TOO: Type: 256
- [1659352346.719704][12283:12288] CHIP:TOO: Revision: 1
- [1659352346.719732][12283:12288] CHIP:TOO: }
- [1659352346.719766][12283:12288] CHIP:TOO: [2]: {
- [1659352346.719794][12283:12288] CHIP:TOO: Type: 19
- [1659352346.719822][12283:12288] CHIP:TOO: Revision: 1
- [1659352346.719849][12283:12288] CHIP:TOO: }
- [1659352346.719958][12283:12288] CHIP:EM: Sending Standalone Ack fo
+ [1659972694.732632][3652:3652] CHIP:IM: Received Read request
+ [1659972694.732712][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972694.732739][3652:3652] CHIP:DMG: {
+ [1659972694.732761][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972694.732800][3652:3652] CHIP:DMG: [
+ [1659972694.732824][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972694.732866][3652:3652] CHIP:DMG: {
+ [1659972694.732905][3652:3652] CHIP:DMG: Endpoint = 0x14,
+ [1659972694.732940][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972694.732980][3652:3652] CHIP:DMG: Attribute = 0x0000_0000,
+ [1659972694.733009][3652:3652] CHIP:DMG: }
+ [1659972694.733066][3652:3652] CHIP:DMG:
+ [1659972694.733092][3652:3652] CHIP:DMG: ],
+ [1659972694.733128][3652:3652] CHIP:DMG:
+ [1659972694.733154][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972694.733188][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972694.733211][3652:3652] CHIP:DMG: },
+ [1659972694.733292][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972694.733401][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972694.733429][3652:3652] CHIP:DMG: Cluster 1d, Attribute 0 is dirty
+ [1659972694.733460][3652:3652] CHIP:DMG: Reading attribute: Cluster=0x0000_001D Endpoint=1 AttributeId=0x0000_0000 (expanded=0)
+ [1659972694.733487][3652:3652] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_001D e=1 p=v
+ [1659972694.733520][3652:3652] CHIP:DMG: AccessControl: allowed
+ disabled: true
+
+ - label: ""
+ PICS: MCORE.DEVLIST.UseDevices
+ verification: |
+ Verify on DUT(chip-tool) Log
+
+ 2
+ [1659352274.915018][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918bae
+ [1659352274.915107][14237:14242] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 7561f371
+ [1659352274.915166][14237:14242] CHIP:DL: Added device Light 2 to dynamic endpoint 14 (index=11)
disabled: true
- label:
@@ -549,36 +2085,62 @@ tests:
Verify on TH(all-clusters-app) Log:
- [1659352461.553715][12295:12300] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1969353586
- [1659352461.553848][12295:12300] CHIP:TOO: parts list: 12 entries
- [1659352461.553882][12295:12300] CHIP:TOO: [1]: 1
- [1659352461.553910][12295:12300] CHIP:TOO: [2]: 4
- [1659352461.553936][12295:12300] CHIP:TOO: [3]: 5
- [1659352461.553961][12295:12300] CHIP:TOO: [4]: 6
- [1659352461.553987][12295:12300] CHIP:TOO: [5]: 7
- [1659352461.554013][12295:12300] CHIP:TOO: [6]: 8
- [1659352461.554038][12295:12300] CHIP:TOO: [7]: 9
- [1659352461.554064][12295:12300] CHIP:TOO: [8]: 10
- [1659352461.554090][12295:12300] CHIP:TOO: [9]: 11
- [1659352461.554116][12295:12300] CHIP:TOO: [10]: 12
- [1659352461.554142][12295:12300] CHIP:TOO: [11]: 13
- [1659352461.554168][12295:12300] CHIP:TOO: [12]: 14
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x0,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
./chip-tool descriptor read parts-list 1 1
Verify on TH(all-clusters-app) Log:
- [1659352492.227696][12302:12307] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 2123467695
- [1659352492.227770][12302:12307] CHIP:TOO: parts list: 11 entries
- [1659352492.227804][12302:12307] CHIP:TOO: [1]: 4
- [1659352492.227831][12302:12307] CHIP:TOO: [2]: 5
- [1659352492.227857][12302:12307] CHIP:TOO: [3]: 6
- [1659352492.227883][12302:12307] CHIP:TOO: [4]: 7
- [1659352492.227909][12302:12307] CHIP:TOO: [5]: 8
- [1659352492.227934][12302:12307] CHIP:TOO: [6]: 9
- [1659352492.227960][12302:12307] CHIP:TOO: [7]: 10
- [1659352492.227986][12302:12307] CHIP:TOO: [8]: 11
- [1659352492.228012][12302:12307] CHIP:TOO: [9]: 12
- [1659352492.228038][12302:12307] CHIP:TOO: [10]: 13
- [1659352492.228063][12302:12307] CHIP:TOO: [11]: 14
+ [1659972886.385225][3652:3652] CHIP:IM: Received Read request
+ [1659972886.385307][3652:3652] CHIP:DMG: ReadRequestMessage =
+ [1659972886.385353][3652:3652] CHIP:DMG: {
+ [1659972886.385377][3652:3652] CHIP:DMG: AttributePathIBs =
+ [1659972886.385413][3652:3652] CHIP:DMG: [
+ [1659972886.385438][3652:3652] CHIP:DMG: AttributePathIB =
+ [1659972886.385482][3652:3652] CHIP:DMG: {
+ [1659972886.385511][3652:3652] CHIP:DMG: Endpoint = 0x1,
+ [1659972886.385555][3652:3652] CHIP:DMG: Cluster = 0x1d,
+ [1659972886.385596][3652:3652] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972886.385630][3652:3652] CHIP:DMG: }
+ [1659972886.385668][3652:3652] CHIP:DMG:
+ [1659972886.385694][3652:3652] CHIP:DMG: ],
+ [1659972886.385730][3652:3652] CHIP:DMG:
+ [1659972886.385757][3652:3652] CHIP:DMG: isFabricFiltered = true,
+ [1659972886.385793][3652:3652] CHIP:DMG: InteractionModelRevision = 1
+ [1659972886.385817][3652:3652] CHIP:DMG: },
+ [1659972886.385908][3652:3652] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1659972886.386016][3652:3652] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1659972886.386056][3652:3652] CHIP:DMG: Cluster 1d, Attribute 3 is dirty
+ disabled: true
+
+ - label:
+ "Verify DUT no longer contains the removed device in the list of
+ devices"
+ PICS: MCORE.DEVLIST.UseDevices
+ verification: |
+ Verify on DUT(chip-tool) Log
+
+ 4
+ [1659352426.184434][14237:14242] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to 7e918baf
+ [1659352426.184489][14237:14242] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 7561f372
+ [1659352426.184512][14237:14242] CHIP:DL: Removed device Light 1b from dynamic endpoint 3 (index=0)
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml
index b2b7678d366c50..6bfdea56d5dde6 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_1.yaml
@@ -39,8 +39,7 @@ tests:
- label: "TH_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- "1. Provision the device using 1st controller chip-tool on the raspi (use above instructions)
- "
+ "1. Provision the TH_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi"
disabled: true
- label:
@@ -49,22 +48,22 @@ tests:
(Enhanced Commissioning Method)."
PICS: CADMIN.C.C00.Tx
verification: |
- On 1st controller using chip tool, open commissioning window using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On TH_CR1 send the below command
./chip-tool pairing open-commissioning-window 1 1 400 2000 3841
- On TH1(chip-tool) Log
+ Verify Manual pairing code On TH_CR1(CHIP-TOOL) Log
CHIP:IN: Sending encrypted msg 0xaaaad3464d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 5805157 msec
[1635691999.946536][3822:3827] CHIP:DMG: ICR moving to [CommandSen]
[1635691999.946586][3822:3827] CHIP:CTL: Manual pairing code: [35407541839]
[1635691999.946650][3822:3827] CHIP:CTL: SetupQRCode: [MT:00000CQM00G6V851H10]
[1635691999.946802][3822:3827] CHIP:EM: Sending Standalone Ack for MessageCounter:3234931243 on exchange 35324i
- [1635691999.946850][3822:3827] CHIP:IN: Prepared plaintext message 0xffffaa58a960 to 0x0000000000000000 of type 0x10 and protocolId (0, 0) on exchange 35324i with MessageCounter:1726016118.
- [1635691999.946895][3822:3827] CHIP:IN: Sending plaintext msg 0xffffaa58a960 with MessageCounter:1726016118 to 0x0000000000000000 at monotonic time: 5805158 msec
- [1635691999.946983][3822:3827] CHIP:EM: Flushed pending ack for MessageCounter:3234931243 on exchange 35324i
- On DUT as server side
+
+ On TH_CE(All-cluster-app) log
CHIP minimal mDNS started advertising.
[1635687658.683388][3792:3792] CHIP:DIS: Failed to find a valid admin pairing. Node ID unknown
@@ -79,10 +78,13 @@ tests:
- label: "TH_CR1 sends command to TH_CE to read the list of Fabrics"
PICS: OPCREDS.C.A0001
verification: |
- On 1st controller using chip tool read fabricList
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners.
+
+ On TH_CR1 send the below command
./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
+ Verify 1 entry in the Fabrics list attributeOn TH_CR1(CHIP-TOOL) Log
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058
[1649245801.244173][10091:10096] CHIP:TOO: Fabrics: 1 entries
@@ -100,20 +102,25 @@ tests:
- label: "DUT_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 2nd controller, using chip-tool connect using manual code.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- On Raspi platform use commissioner-name parameter to commission different TH as server with DUT as commissioner, Pls use equivalent command on the respective TH as server
Below is the example when using chip tool as controller (considering 35998938564 as the manual code generated by 1st controller)
./chip-tool pairing code 2 35998938564 --commissioner-name beta
- Verify whether you got below message in the log of TH
+ Verify whether you got below message in the log of DUT_CR2(CHIP-TOOL)
Device commissioning completed with success
disabled: true
- label: "Verify TH_CE is now discoverable over DNS-SD with two SRV Records"
verification: |
- On the raspi , Verify if the DUT is broadcasting using
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On the raspi , Verify if the TH_CE(All-cluster-app) is broadcasting
+
+ On TH_CR1 send the below command
ubuntu@ubuntu:~/may10_cntrl2/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
+ eth0 IPv6 E0AF53B23E580769-0000000000000002 _matter._tcp local
@@ -135,89 +142,66 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On 2nd controller using chip tool write and read node-label
-
- On Raspi platform use commissioner-name parameter to commission different TH as server with DUT as commissioner, Pls use equivalent command on the respective TH as server
- Below is the example when using chip tool as controller
- ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners.
- CHIP:DMG: WriteClient moving to [ResponseRe]
- [1649671460.431199][20958:20963] CHIP:DMG: WriteResponseMessage =
- [1649671460.431217][20958:20963] CHIP:DMG: {
- [1649671460.431230][20958:20963] CHIP:DMG: AttributeStatusIBs =
- [1649671460.431252][20958:20963] CHIP:DMG: [
- [1649671460.431266][20958:20963] CHIP:DMG: AttributeStatusIB =
- [1649671460.431282][20958:20963] CHIP:DMG: {
- [1649671460.431297][20958:20963] CHIP:DMG: AttributePathIB =
- [1649671460.431314][20958:20963] CHIP:DMG: {
- [1649671460.431331][20958:20963] CHIP:DMG: Endpoint = 0x0,
- [1649671460.431347][20958:20963] CHIP:DMG: Cluster = 0x28,
- [1649671460.431364][20958:20963] CHIP:DMG: Attribute = 0x0000_0005,
- [1649671460.431380][20958:20963] CHIP:DMG: }
- [1649671460.431403][20958:20963] CHIP:DMG:
- [1649671460.431422][20958:20963] CHIP:DMG: StatusIB =
- [1649671460.431445][20958:20963] CHIP:DMG: {
- [1649671460.431467][20958:20963] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649671460.431488][20958:20963] CHIP:DMG: },
- [1649671460.431511][20958:20963] CHIP:DMG:
- [1649671460.431530][20958:20963] CHIP:DMG: },
- [1649671460.431556][20958:20963] CHIP:DMG:
- [1649671460.431570][20958:20963] CHIP:DMG: ],
- [1649671460.431593][20958:20963] CHIP:DMG:
- [1649671460.431607][20958:20963] CHIP:DMG: InteractionModelRevision = 1
- [1649671460.431620][20958:20963] CHIP:DMG: }
- [1649671460.431685][20958:20963] CHIP:DMG: WriteClient moving to [AwaitingDe]
- [1649671460.431729][20958:20963] CHIP:EM: Sending Standalone Ack for MessageCounter:11088724 on exchange 41848i
+ On DUT_CR2 send the below command
+ ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
- Verify read attribute returns the updated value written
+ Verify Write request on TH_CE(all-clusters-app) Log
+
+ [1660894021.901330][2871:2871] CHIP:EM: Handling via exchange: 9616r, Delegate: 0xaaaada21ffc0
+ [1660894021.901426][2871:2871] CHIP:IM: Received Write request
+ [1660894021.901484][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
+ [1660894021.901613][2871:2871] CHIP:DMG: WriteRequestMessage =
+ [1660894021.901676][2871:2871] CHIP:DMG: {
+ [1660894021.901735][2871:2871] CHIP:DMG: suppressResponse = false,
+ [1660894021.901802][2871:2871] CHIP:DMG: timedRequest = false,
+ [1660894021.901864][2871:2871] CHIP:DMG: AttributeDataIBs =
+ [1660894021.901940][2871:2871] CHIP:DMG: [
+ [1660894021.902001][2871:2871] CHIP:DMG: AttributeDataIB =
+ [1660894021.902071][2871:2871] CHIP:DMG: {
+ [1660894021.902136][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894021.902219][2871:2871] CHIP:DMG: {
+ [1660894021.902302][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894021.902394][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894021.902488][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894021.902574][2871:2871] CHIP:DMG: }
+ [1660894021.902827][2871:2871] CHIP:DMG:
+ [1660894021.902912][2871:2871] CHIP:DMG: Data = "te5new" (6 chars),
+ [1660894021.902985][2871:2871] CHIP:DMG: },
- On Raspi platform use commissioner-name parameter to commission different TH as server with DUT as commissioner, Pls use equivalent command on the respective TH as server
./chip-tool basic read node-label 2 0 --commissioner-name beta
- CHIP:DMG: ReportDataMessage =
- [1649671466.310233][20969:20974] CHIP:DMG: {
- [1649671466.310241][20969:20974] CHIP:DMG: AttributeReportIBs =
- [1649671466.310256][20969:20974] CHIP:DMG: [
- [1649671466.310265][20969:20974] CHIP:DMG: AttributeReportIB =
- [1649671466.310281][20969:20974] CHIP:DMG: {
- [1649671466.310292][20969:20974] CHIP:DMG: AttributeDataIB =
- [1649671466.310304][20969:20974] CHIP:DMG: {
- [1649671466.310317][20969:20974] CHIP:DMG: DataVersion = 0xd581a5e8,
- [1649671466.310328][20969:20974] CHIP:DMG: AttributePathIB =
- [1649671466.310342][20969:20974] CHIP:DMG: {
- [1649671466.310355][20969:20974] CHIP:DMG: Endpoint = 0x0,
- [1649671466.310367][20969:20974] CHIP:DMG: Cluster = 0x28,
- [1649671466.310380][20969:20974] CHIP:DMG: Attribute = 0x0000_0005,
- [1649671466.310391][20969:20974] CHIP:DMG: }
- [1649671466.310405][20969:20974] CHIP:DMG:
- [1649671466.310420][20969:20974] CHIP:DMG: Data = "te8",
- [1649671466.310432][20969:20974] CHIP:DMG: },
- [1649671466.310446][20969:20974] CHIP:DMG:
- [1649671466.310457][20969:20974] CHIP:DMG: },
- [1649671466.310471][20969:20974] CHIP:DMG:
- [1649671466.310481][20969:20974] CHIP:DMG: ],
- [1649671466.310497][20969:20974] CHIP:DMG:
- [1649671466.310508][20969:20974] CHIP:DMG: SuppressResponse = true,
- [1649671466.310518][20969:20974] CHIP:DMG: InteractionModelRevision = 1
- [1649671466.310528][20969:20974] CHIP:DMG: }
- [1649671466.310629][20969:20974] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3582043624
- [1649671466.310646][20969:20974] CHIP:TOO: NodeLabel: te8
- [1649671466.310704][20969:20974] CHIP:EM: Sending Standalone Ack for MessageCounter:15357338 on exchange 20724i
+ Verify read request on TH_CE(all-clusters-app) Log
+
+
+ [1660894142.828718][2871:2871] CHIP:EM: Handling via exchange: 62454r, Delegate: 0xaaaada21ffc0
+ [1660894142.828834][2871:2871] CHIP:IM: Received Read request
+ [1660894142.829023][2871:2871] CHIP:DMG: ReadRequestMessage =
+ [1660894142.829097][2871:2871] CHIP:DMG: {
+ [1660894142.829153][2871:2871] CHIP:DMG: AttributePathIBs =
+ [1660894142.829235][2871:2871] CHIP:DMG: [
+ [1660894142.829306][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894142.829376][2871:2871] CHIP:DMG: {
+ [1660894142.829449][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894142.829532][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894142.829627][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894142.829703][2871:2871] CHIP:DMG: }
+ [1660894142.829777][2871:2871] CHIP:DMG:
disabled: true
- label: "DUT_CR2 sends command to TH_CE to read the list of Fabrics"
PICS: OPCREDS.C.A0001
verification: |
- On 2nd controller using chip tool read fabricList
-
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example using chip tool as controller
+ On DUT_CR2 send the below command
./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0 --commissioner-name beta
-
+ Verify 2 entries in the Fabrics list attribute On DUT_CR2(chip-tool) Log
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507063
[1649245825.315152][10098:10103] CHIP:TOO: Fabrics: 2 entries
@@ -244,44 +228,52 @@ tests:
Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On first controller using chip tool, write attribute and read attribute
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool basic write node-label te8 1 0
+ On TH_CR1 send the below command
- CHIP:DMG: WriteResponse =
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
+ ./chip-tool basic write node-label te8 1 0
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+
+ [1660894538.804578][2871:2871] CHIP:EM: Handling via exchange: 64932r, Delegate: 0xaaaada21ffc0
+ [1660894538.804677][2871:2871] CHIP:IM: Received Write request
+ [1660894538.804737][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
+ [1660894538.804867][2871:2871] CHIP:DMG: WriteRequestMessage =
+ [1660894538.804933][2871:2871] CHIP:DMG: {
+ [1660894538.804993][2871:2871] CHIP:DMG: suppressResponse = false,
+ [1660894538.805059][2871:2871] CHIP:DMG: timedRequest = false,
+ [1660894538.805120][2871:2871] CHIP:DMG: AttributeDataIBs =
+ [1660894538.805196][2871:2871] CHIP:DMG: [
+ [1660894538.805258][2871:2871] CHIP:DMG: AttributeDataIB =
+ [1660894538.805346][2871:2871] CHIP:DMG: {
+ [1660894538.805412][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894538.805493][2871:2871] CHIP:DMG: {
+ [1660894538.805575][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894538.805661][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894538.805752][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894538.805840][2871:2871] CHIP:DMG: }
+ [1660894538.805922][2871:2871] CHIP:DMG:
+ [1660894538.806010][2871:2871] CHIP:DMG: Data = "te8" (3 chars),
+ [1660894538.806082][2871:2871] CHIP:DMG: },
- Verify read attribute returns the updated value written
./chip-tool basic read node-label 1 0
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te8
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+ Verify the Read request On TH_CE(all-clusters-app) Log
+
+ [1660894686.511690][2871:2871] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:155836021 on exchange 25703r
+ [1660894686.511817][2871:2871] CHIP:EM: Handling via exchange: 25703r, Delegate: 0xaaaada21ffc0
+ [1660894686.511920][2871:2871] CHIP:IM: Received Read request
+ [1660894686.512190][2871:2871] CHIP:DMG: ReadRequestMessage =
+ [1660894686.512259][2871:2871] CHIP:DMG: {
+ [1660894686.512314][2871:2871] CHIP:DMG: AttributePathIBs =
+ [1660894686.512380][2871:2871] CHIP:DMG: [
+ [1660894686.512441][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894686.512526][2871:2871] CHIP:DMG: {
+ [1660894686.512599][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894686.512683][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894686.512772][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
disabled: true
- label:
@@ -289,42 +281,68 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On 2nd controller using chip-tool read, write attribute and then read attribute to and from TH_CE
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is an example of using chip tool as controller
+ On DUT_CR2 send the below command
./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+ [1660900144.090077][3045:3045] CHIP:EM: Handling via exchange: 23950r, Delegate: 0xaaaaadbeffc0
+ [1660900144.090167][3045:3045] CHIP:IM: Received Write request
+ [1660900144.090226][3045:3045] CHIP:DMG: IM WH moving to [Initialized]
+ [1660900144.090347][3045:3045] CHIP:DMG: WriteRequestMessage =
+ [1660900144.090411][3045:3045] CHIP:DMG: {
+ [1660900144.090470][3045:3045] CHIP:DMG: suppressResponse = false,
+ [1660900144.090537][3045:3045] CHIP:DMG: timedRequest = false,
+ [1660900144.090598][3045:3045] CHIP:DMG: AttributeDataIBs =
+ [1660900144.090677][3045:3045] CHIP:DMG: [
+ [1660900144.090739][3045:3045] CHIP:DMG: AttributeDataIB =
+ [1660900144.090816][3045:3045] CHIP:DMG: {
+ [1660900144.090887][3045:3045] CHIP:DMG: AttributePathIB =
+ [1660900144.090976][3045:3045] CHIP:DMG: {
+ [1660900144.091061][3045:3045] CHIP:DMG: Endpoint = 0x0,
+ [1660900144.091150][3045:3045] CHIP:DMG: Cluster = 0x28,
+ [1660900144.091247][3045:3045] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660900144.091344][3045:3045] CHIP:DMG: }
+ [1660900144.091432][3045:3045] CHIP:DMG:
+ [1660900144.091560][3045:3045] CHIP:DMG: Data = "te5new" (6 chars),
+ [1660900144.091655][3045:3045] CHIP:DMG: },
+
+ Verify the success response in the DUT_CR2(Chip-tool) log
+
+
[1649245940.789388][10110:10115] CHIP:DMG:
[1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
[1649245940.789519][10110:10115] CHIP:DMG: {
[1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
[1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
+
Verify read attribute returns the updated value written
./chip-tool basic read node-label 2 0 --commissioner-name beta
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+ [1660900360.861128][3045:3045] CHIP:EM: Handling via exchange: 17574r, Delegate: 0xaaaaadbeffc0
+ [1660900360.861223][3045:3045] CHIP:IM: Received Read request
+ [1660900360.861402][3045:3045] CHIP:DMG: ReadRequestMessage =
+ [1660900360.861471][3045:3045] CHIP:DMG: {
+ [1660900360.861527][3045:3045] CHIP:DMG: AttributePathIBs =
+ [1660900360.861591][3045:3045] CHIP:DMG: [
+ [1660900360.861651][3045:3045] CHIP:DMG: AttributePathIB =
+ [1660900360.861727][3045:3045] CHIP:DMG: {
+ [1660900360.861798][3045:3045] CHIP:DMG: Endpoint = 0x0,
+ [1660900360.861871][3045:3045] CHIP:DMG: Cluster = 0x28,
+ [1660900360.861939][3045:3045] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660900360.862012][3045:3045] CHIP:DMG: }
+ [1660900360.862088][3045:3045] CHIP:DMG:
+ [1660900360.862158][3045:3045] CHIP:DMG: ],
+
+ Verify the success response in the DUT_CR2(Chip-tool) log
+
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
[1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
[1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
@@ -341,19 +359,25 @@ tests:
(Enhanced Commissioning Method)"
PICS: CADMIN.C.C00.Tx
verification: |
- On 2nd controller open commissioning window using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is an example when using chip tool as controller
- ./chip-tool pairing open-commissionig-window 2 1 300 1000 3841 --commissioner-name beta
+ ./chip-tool pairing open-commissioning-window 2 1 300 1000 3841 --commissioner-name
+
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
+
+ [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660901022.112389][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
+
+ Verify the Manual pairing code On DUT_CR2(chip-tool) Log
CHIP: [IN] Prepared encrypted message 0x124012e80 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 50829i with MessageCounter:0.
[1635693418549] [30519:4583024] CHIP: [IN] Sending encrypted msg 0x124012e80 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 5995099243 msec
[1635693418549] [30519:4583024] CHIP: [DMG] ICR moving to [CommandSen]
[1635693418549] [30519:4583024] CHIP: [CTL] Manual pairing code: [34995354639]
[1635693418550] [30519:4583024] CHIP: [CTL] SetupQRCode: [MT:00000CQM00YND84XX10]
- [1635693418550] [30519:4583024] CHIP: [EM] Sending Standalone Ack for MessageCounter:3441918415 on exchange 50828i
- [1635693418550] [30519:4583024] CHIP: [IN] Prepared plaintext message 0x16b92d198 to 0x0000000000000000 of type 0x10 and protocolId (0, 0) on exchange 50828i with MessageCounter:3727034150.
- [1635693418550] [30519:4583024] CHIP: [IN] Sending plaintext msg 0x16b92d198 with Mes
disabled: true
- label:
@@ -361,43 +385,26 @@ tests:
using the Revoke Commissioning command"
PICS: CADMIN.C.C02.Tx
verification: |
- On 2nd controller, run revoke command
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is an example when using chip tool as controller
+ On DUT_CR2 send the below command
./chip-tool administratorcommissioning revoke-commissioning 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta
+ Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
+
+ [1660901039.590891][3045:3045] CHIP:DMG: AccessControl: allowed
+ [1660901039.590962][3045:3045] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002
+ [1660901039.591036][3045:3045] CHIP:ZCL: Received command to close commissioning window
+ [1660901039.591094][3045:3045] CHIP:SVR: Closing pairing window
+ [1660901039.591169][3045:3045] CHIP:IN: SecureSession[0xaaaab010d400]: Released - Type:1 LSID:14411
+
+ Verify the success response On DUT_CR2(chip-tool) Log
- CHIP: [DMG] InvokeResponseMessage =
- [1648115245106] [6681:3894448] CHIP: [DMG] {
- [1648115245106] [6681:3894448] CHIP: [DMG] suppressResponse = false,
- [1648115245106] [6681:3894448] CHIP: [DMG] InvokeResponseIBs =
- [1648115245106] [6681:3894448] CHIP: [DMG] [
- [1648115245106] [6681:3894448] CHIP: [DMG] InvokeResponseIB =
- [1648115245106] [6681:3894448] CHIP: [DMG] {
- [1648115245106] [6681:3894448] CHIP: [DMG] CommandStatusIB =
- [1648115245106] [6681:3894448] CHIP: [DMG] {
- [1648115245106] [6681:3894448] CHIP: [DMG] CommandPathIB =
- [1648115245106] [6681:3894448] CHIP: [DMG] {
- [1648115245106] [6681:3894448] CHIP: [DMG] EndpointId = 0x0,
- [1648115245106] [6681:3894448] CHIP: [DMG] ClusterId = 0x3c,
- [1648115245106] [6681:3894448] CHIP: [DMG] CommandId = 0x2,
- [1648115245106] [6681:3894448] CHIP: [DMG] },
- [1648115245106] [6681:3894448] CHIP: [DMG]
[1648115245106] [6681:3894448] CHIP: [DMG] StatusIB =
[1648115245106] [6681:3894448] CHIP: [DMG] {
[1648115245106] [6681:3894448] CHIP: [DMG] status = 0x0,
[1648115245106] [6681:3894448] CHIP: [DMG] },
- [1648115245106] [6681:3894448] CHIP: [DMG]
- [1648115245106] [6681:3894448] CHIP: [DMG] },
- [1648115245106] [6681:3894448] CHIP: [DMG]
- [1648115245106] [6681:3894448] CHIP: [DMG] },
- [1648115245106] [6681:3894448] CHIP: [DMG]
- [1648115245106] [6681:3894448] CHIP: [DMG] ],
- [1648115245107] [6681:3894448] CHIP: [DMG]
- [1648115245107] [6681:3894448] CHIP: [DMG] InteractionModelRevision = 1
- [1648115245107] [6681:3894448] CHIP: [DMG] },
- [1648115245107] [6681:3894448] CHIP: [DMG] Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002 Status=0x0
disabled: true
- label:
@@ -405,11 +412,13 @@ tests:
with TH_CE"
PICS: CADMIN.C
verification: |
- On 3rd controller using chip-tool connect using manual code generated from 1st controller. This attempt should fail, i.e
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners.
+
+ On TH_CR3 send the below command
./chip-tool pairing code 3 34995354639 --commissioner-name gamma
- verify you got the following message in the TH log
+ verify you got the following message in the TH_CR3(chip-tool) log
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
@@ -421,46 +430,54 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On 2nd controller , write attribute and read attribute to and from TH_CE
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example using chip tool as controller
+ On DUT_CR2 send the below command
./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
-
- Verify read attribute returns the updated value written
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+ [1660902144.913634][3045:3045] CHIP:EM: Handling via exchange: 22257r, Delegate: 0xaaaaadbeffc0
+ [1660902144.913728][3045:3045] CHIP:IM: Received Write request
+ [1660902144.913785][3045:3045] CHIP:DMG: IM WH moving to [Initialized]
+ [1660902144.913912][3045:3045] CHIP:DMG: WriteRequestMessage =
+ [1660902144.913977][3045:3045] CHIP:DMG: {
+ [1660902144.914038][3045:3045] CHIP:DMG: suppressResponse = false,
+ [1660902144.914106][3045:3045] CHIP:DMG: timedRequest = false,
+ [1660902144.914168][3045:3045] CHIP:DMG: AttributeDataIBs =
+ [1660902144.914244][3045:3045] CHIP:DMG: [
+ [1660902144.914305][3045:3045] CHIP:DMG: AttributeDataIB =
+ [1660902144.914375][3045:3045] CHIP:DMG: {
+ [1660902144.914440][3045:3045] CHIP:DMG: AttributePathIB =
+ [1660902144.914522][3045:3045] CHIP:DMG: {
+ [1660902144.914602][3045:3045] CHIP:DMG: Endpoint = 0x0,
+ [1660902144.914691][3045:3045] CHIP:DMG: Cluster = 0x28,
+ [1660902144.914940][3045:3045] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660902144.915025][3045:3045] CHIP:DMG: }
+ [1660902144.915109][3045:3045] CHIP:DMG:
+ [1660902144.915208][3045:3045] CHIP:DMG: Data = "te5new" (6 chars),
+ [1660902144.915292][3045:3045] CHIP:DMG: },
+ [1660902144.915374][3045:3045] CHIP:DMG:
./chip-tool basic read node-label 2 0 --commissioner-name beta
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+ [1660902253.379018][3045:3045] CHIP:EM: Handling via exchange: 3197r, Delegate: 0xaaaaadbeffc0
+ [1660902253.379122][3045:3045] CHIP:IM: Received Read request
+ [1660902253.379306][3045:3045] CHIP:DMG: ReadRequestMessage =
+ [1660902253.379373][3045:3045] CHIP:DMG: {
+ [1660902253.379430][3045:3045] CHIP:DMG: AttributePathIBs =
+ [1660902253.379496][3045:3045] CHIP:DMG: [
+ [1660902253.379557][3045:3045] CHIP:DMG: AttributePathIB =
+ [1660902253.379634][3045:3045] CHIP:DMG: {
+ [1660902253.379703][3045:3045] CHIP:DMG: Endpoint = 0x0,
+ [1660902253.379782][3045:3045] CHIP:DMG: Cluster = 0x28,
+ [1660902253.379871][3045:3045] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660902253.379935][3045:3045] CHIP:DMG: }
+ [1660902253.380141][3045:3045] CHIP:DMG:
+ [1660902253.380208][3045:3045] CHIP:DMG: ],
disabled: true
- label:
@@ -468,19 +485,25 @@ tests:
ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 2nd controller open commissioning window using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is an example when using chip tool as controller
./chip-tool pairing open-commissioning-window 2 1 180 1000 3840 --commissioner-name beta
- CHIP: [IN] Prepared encrypted message 0x124012e80 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 50829i with MessageCounter:0.
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
+
+ [1660902413.357922][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660902413.358025][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660902413.358116][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
+
+ Verify Manual pairing code On DUT_CR2(chip-tool) Log
+
[1635693418549] [30519:4583024] CHIP: [IN] Sending encrypted msg 0x124012e80 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 5995099243 msec
[1635693418549] [30519:4583024] CHIP: [DMG] ICR moving to [CommandSen]
[1635693418549] [30519:4583024] CHIP: [CTL] Manual pairing code: [34995354639]
[1635693418550] [30519:4583024] CHIP: [CTL] SetupQRCode: [MT:00000CQM00YND84XX10]
- [1635693418550] [30519:4583024] CHIP: [EM] Sending Standalone Ack for MessageCounter:3441918415 on exchange 50828i
- [1635693418550] [30519:4583024] CHIP: [IN] Prepared plaintext message 0x16b92d198 to 0x0000000000000000 of type 0x10 and protocolId (0, 0) on exchange 50828i with MessageCounter:3727034150.
- [1635693418550] [30519:4583024] CHIP: [IN] Sending plaintext msg 0x16b92d198 with Mes
+ [1635693418550] [30519:4583024] CHIP: [EM] Sending Standalone Ack for MessageCounter:3441918415 on exchange
disabled: true
- label:
@@ -494,13 +517,20 @@ tests:
ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 2nd controller open commissioning window using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is an example when using chip tool as controller
- ./chip-tool pairing open-commissionig-window 2 1 300 1000 3840 --commissioner-name beta
+ On DUT_CR2 send the below command
+
+ ./chip-tool pairing open-commissioning-window 2 1 300 1000 3840 --commissioner-name beta
+
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
+
+ [1660902623.744448][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660902623.744550][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660902623.744634][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
+
+ Verify Manual pairing code On DUT_CR2(chip-tool) Log
- CHIP: [IN] Prepared encrypted message 0x124012e80 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 50829i with MessageCounter:0.
- [1635693418549] [30519:4583024] CHIP: [IN] Sending encrypted msg 0x124012e80 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 5995099243 msec
[1635693418549] [30519:4583024] CHIP: [DMG] ICR moving to [CommandSen]
[1635693418549] [30519:4583024] CHIP: [CTL] Manual pairing code: [34995354639]
[1635693418550] [30519:4583024] CHIP: [CTL] SetupQRCode: [MT:00000CQM00YND84XX10]
@@ -514,15 +544,26 @@ tests:
from step 15"
PICS: CADMIN.C
verification: |
- On 1st controller, using chip-tool connect using manual code.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example when using chip tool as controller (considering 34995354639 as the manual code generated by DUT)
+ On TH_CR1 send the below command
+
+ (considering 34995354639 as the manual code generated by DUT)
./chip-tool pairing code 2 34995354639
+ Verify the OperationalCert error 9 in TH_CE(all-clusters-app) Log
+
+ [1660902716.613196][3045:3045] CHIP:DMG: Command handler moving to [AddedComma]
+ [1660902716.613274][3045:3045] CHIP:ZCL: OpCreds: Failed AddNOC request (err=../../examples/all-clusters-app/linux/third_party/connectedhomeip/src/credentials/FabricTable.cpp:1692: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists) with OperationalCert error 9
+ [1660902716.613394][3045:3045] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0
+ [1660902716.613497][3045:3045] CHIP:EM: Piggybacking Ack for MessageCounter:176866087 on exchange: 56605r
+
+ Verify that the commissioning process fails as TH_CE was already commissioned by TH_CR1 in step 1
+
+ Trying to add a NOC for a fabric that already exists On TH_CR1(chip-tool) Log
+
[1651786200275] [36301:315544] CHIP: [DMG] Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
[1651786200275] [36301:315544] CHIP: [CTL] Device returned status 9 on receiving the NOC
[1651786200275] [36301:315544] CHIP: [CTL] Add NOC failed with error ../../src/controller/CHIPDeviceController.cpp:1187: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists
[1651786200275] [36301:315544] CHIP: [CTL] Error on commissioning step "SendNOC": "../../src/controller/CHIPDeviceController.cpp:1187: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists"
-
- Verify that the commissioning process fails as TH_CE was already commissioned by TH_CR1 in step 1
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml
index 54083688e066b7..9f820a377fbfea 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_11.yaml
@@ -11,10 +11,9 @@
# 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.
-# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
name:
- 4.1.11. [TC-CADMIN-1.11] Open commissioning window on DUT twice using ECM
+ 30.1.11. [TC-CADMIN-1.11] Open commissioning window on DUT twice using ECM
then BCM [DUT - Commissionee]
PICS:
@@ -23,437 +22,284 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Basic"
+ timeout: 400
+ nodeId2:
+ type: node_id
+ defaultValue: 0xCAFE
+ nodeId3:
+ type: node_id
+ defaultValue: 0xC00FEE
endpoint: 0
+ discriminator:
+ type: int16u
+ defaultValue: 3840
+ payload:
+ type: char_string
+ defaultValue: "MT:-24J0AFN00KA0648G00"
+ PakeVerifier:
+ type: octet_string
+ defaultValue:
+ "\xb9\x61\x70\xaa\xe8\x03\x34\x68\x84\x72\x4f\xe9\xa3\xb2\x87\xc3\x03\x30\xc2\xa6\x60\x37\x5d\x17\xbb\x20\x5a\x8c\xf1\xae\xcb\x35\x04\x57\xf8\xab\x79\xee\x25\x3a\xb6\xa8\xe4\x6b\xb0\x9e\x54\x3a\xe4\x22\x73\x6d\xe5\x01\xe3\xdb\x37\xd4\x41\xfe\x34\x49\x20\xd0\x95\x48\xe4\xc1\x82\x40\x63\x0c\x4f\xf4\x91\x3c\x53\x51\x38\x39\xb7\xc0\x7f\xcc\x06\x27\xa1\xb8\x57\x3a\x14\x9f\xcd\x1f\xa4\x66\xcf"
tests:
- - label: "Precondition"
+ - label: "Precondition: Reset Devices to factory defaults"
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "SystemCommands"
+ command: "FactoryReset"
+
+ - label: "Precondition: Reset Devices to factory defaults"
verification: |
- Reset Devices to factory defaults
- disabled: true
+ Not implemented in YAML
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value: "Factory Reset the DUT and enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
- label: "TH_CR1 starts a commissioning process with DUT_CE"
PICS: CADMIN.S
- verification: |
- "1. Provision the device using 1st controller chip tool on the raspi (use above instructions) ,
- "
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using ECM"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On the 1st controller using chip tool, open commissioning window using ECM
-
-
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
- [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established
- [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!!
- [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm]
- [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma]
- [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0.
- [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec
- [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
- [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
- [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
- disabled: true
-
- - label: "DNS-SD records shows DUT_CE advertising"
- verification: |
- grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matterc._udp
- + wlp5s0 IPv6 C326228BDB082BF4 _matterc._udp local
- + wlp5s0 IPv6 7B6545A75C5330BE _matterc._udp local
- = wlp5s0 IPv6 7B6545A75C5330BE _matterc._udp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2755]
- port = [5540]
- txt = ["PI=" "PH=33" "CM=1" "D=3841" "T=1" "CRA=300" "CRI=5000" "VP=65521+32769"]
- = wlp5s0 IPv6 C326228BDB082BF4 _matterc._udp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2755]
- port = [5540]
- txt = ["PI=" "PH=36" "CM=2" "D=3840" "T=1" "CRA=300" "CRI=5000" "VP=65521+32769"]
- grl@grl-ThinkPad-L480:~/2nd_cntrl/connectedhomeip/examples/chip-tool/out/debug$
- disabled: true
-
- - label: "TH_CR3 Commissions with DUT_CE"
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
+
+ - label: "TH_CR3 starts a commissioning process with DUT_CE"
PICS: CADMIN.S
- verification: |
- On 3rd controller using chip tool connect using manual code
-
- ./chip-tool pairing code 3 35484132896
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
+ identity: "gamma"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId3
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR3 on Fabric ID3 with Node ID3"
+ identity: "gamma"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ PICS: CADMIN.S
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId3
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using ECM and TH_CR2
- Commissions with DUT_CE"
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using ECM"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller using chip tool, open commissioning window using ECM
-
-
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
- [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established
- [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!!
- [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm]
- [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma]
- [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0.
- [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec
- [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
- [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
- [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
-
-
- On 2nd controller using chip tool connect using manual code
-
- ./chip-tool pairing code 1 35484132896
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
+
+ - label: "TH_CR2 starts a commissioning process with DUT_CE"
+ identity: "beta"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
+ PICS: CADMIN.S
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+ - name: "payload"
+ value: payload --commissioner-name beta
+
+ - label: "DUT_CE is commissioned to TH_CR2"
+ PICS: CADMIN.S
+ identity: "beta"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using ECM"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller using chip tool, open commissioning window using ECM
-
-
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
- [1635874557.409509][4549:4554] CHIP:SC: Success status report received. Session was established
- [1635874557.409553][4549:4554] CHIP:IN: New secure session created for device 0x0000000000000001, key 76!!
- [1635874557.409649][4549:4554] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635874557.416929][4549:4554] CHIP:DMG: ICR moving to [AddingComm]
- [1635874557.417092][4549:4554] CHIP:DMG: ICR moving to [AddedComma]
- [1635874557.417215][4549:4554] CHIP:IN: Prepared encrypted message 0xaaaac5947d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 5541i with MessageCounter:0.
- [1635874557.417271][4549:4554] CHIP:IN: Sending encrypted msg 0xaaaac5947d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 16129075 msec
- [1635874557.417449][4549:4554] CHIP:DMG: ICR moving to [CommandSen]
- [1635874557.417505][4549:4554] CHIP:CTL: Manual pairing code: [35484132896]
- [1635874557.417577][4549:4554] CHIP:CTL: SetupQRCode: [MT:00000CQM00AT-F5A510]
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
- label:
"Before the expiration of PIXIT.CADMIN.CwDuration seconds which was
set in step 5, TH_CR1 opens a 2nd commissioning window on DUT_CE using
a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.S.C00.Rsp
- verification: |
- Before the timer expiry, on the 1st controller using chip tool, open commissioning window using ECM. Verify the General code return error 1
-
-
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
- CHIP:DMG: InvokeResponseMessage =
- [1650527291.952055][8566:8571] CHIP:DMG: {
- [1650527291.952074][8566:8571] CHIP:DMG: suppressResponse = false,
- [1650527291.952091][8566:8571] CHIP:DMG: InvokeResponseIBs =
- [1650527291.952116][8566:8571] CHIP:DMG: [
- [1650527291.952134][8566:8571] CHIP:DMG: InvokeResponseIB =
- [1650527291.952172][8566:8571] CHIP:DMG: {
- [1650527291.952195][8566:8571] CHIP:DMG: CommandStatusIB =
- [1650527291.952220][8566:8571] CHIP:DMG: {
- [1650527291.952245][8566:8571] CHIP:DMG: CommandPathIB =
- [1650527291.952276][8566:8571] CHIP:DMG: {
- [1650527291.952303][8566:8571] CHIP:DMG: EndpointId = 0x0,
- [1650527291.952334][8566:8571] CHIP:DMG: ClusterId = 0x3c,
- [1650527291.952369][8566:8571] CHIP:DMG: CommandId = 0x0,
- [1650527291.952394][8566:8571] CHIP:DMG: },
- [1650527291.952431][8566:8571] CHIP:DMG:
- [1650527291.952458][8566:8571] CHIP:DMG: StatusIB =
- [1650527291.952488][8566:8571] CHIP:DMG: {
- [1650527291.952519][8566:8571] CHIP:DMG: status = 0x01 (FAILURE),
- [1650527291.952555][8566:8571] CHIP:DMG: cluster-status = 0x1,
- [1650527291.952578][8566:8571] CHIP:DMG: },
- [1650527291.952612][8566:8571] CHIP:DMG:
- [1650527291.952634][8566:8571] CHIP:DMG: },
- [1650527291.952671][8566:8571] CHIP:DMG:
- [1650527291.952694][8566:8571] CHIP:DMG: },
- [1650527291.952731][8566:8571] CHIP:DMG:
- [1650527291.952751][8566:8571] CHIP:DMG: ],
- [1650527291.952781][8566:8571] CHIP:DMG:
- [1650527291.952795][8566:8571] CHIP:DMG: InteractionModelRevision = 1
- [1650527291.952807][8566:8571] CHIP:DMG: },
- [1650527291.952886][8566:8571] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000 Status=0x1
- [1650527291.952931][8566:8571] CHIP:CTL: Failed to open pairing window on the device. Status IM Error 0x00000601: Cluster-specific error: 0x01
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
+ response:
+ error: FAILURE
- label: "TH_CR1 reads the list of Fabrics on DUT_CE"
+ cluster: "Operational Credentials"
PICS: OPCREDS.S.A0001
- verification: |
- On 1st controller using chip tool, read fabrics list
-
- ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768
- [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries
- [1650527361.426777][15792:15797] CHIP:TOO: [1]: {
- [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01
- [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521
- [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1
- [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1
- [1650527361.427088][15792:15797] CHIP:TOO: Label:
- [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1
- [1650527361.427376][15792:15797] CHIP:TOO: }
- [1650527361.427464][15792:15797] CHIP:TOO: [2]: {
- [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7
- [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521
- [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1
- [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3
- [1650527361.427756][15792:15797] CHIP:TOO: Label:
- [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2
- [1650527361.427868][15792:15797] CHIP:TOO: }
- [1650527361.427943][15792:15797] CHIP:TOO: [3]: {
- [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD
- [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521
- [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1
- [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2
- [1650527361.428229][15792:15797] CHIP:TOO: Label:
- [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3
- [1650527361.428335][15792:15797] CHIP:TOO: }
- disabled: true
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", nodeId: nodeId },
+ { Label: "", nodeId: nodeId3 },
+ { Label: "", nodeID: nodeId2 },
+ ]
+ constraints:
+ type: list
- label:
"Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was
set in step 6"
- verification: |
- verification step to be updated.
- disabled: true
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 180000
- label:
"TH_CR1 re-opens a commissioning window on DUT_CE using a
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.S.C01.Rsp
- verification: |
- On the 1st controller using chip tool, open commissioning window using BCM
-
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
-
- - label: "DNS-SD records shows DUT_CE advertising"
- verification: |
- ubuntu@ubuntu:~/may16_cntrl/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matterc._udp
- + eth0 IPv6 2664ED6939FC373C _matterc._udp local
- = eth0 IPv6 2664ED6939FC373C _matterc._udp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2753]
- port = [5540]
- txt = ["PI=" "PH=36" "CM=1" "D=3840" "T=1" "SAI=300" "SII=5000" "VP=65521+32769"]
- ubuntu@ubuntu:~/may16_cntrl/connectedhomeip/examples/chip-tool/out/debug$
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
- label:
"Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set
in step 10, TH_CR3 opens a 2nd commissioning window on DUT_CE using a
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.S.C01.Rsp
- verification: |
- On the 3rd controller using chip tool, open commissioning window using BCM before the timer expiry of the above step
-
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 3 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: InvokeResponseMessage =
- [1650527565.990404][24618:24623] CHIP:DMG: {
- [1650527565.990476][24618:24623] CHIP:DMG: suppressResponse = false,
- [1650527565.990528][24618:24623] CHIP:DMG: InvokeResponseIBs =
- [1650527565.990615][24618:24623] CHIP:DMG: [
- [1650527565.990667][24618:24623] CHIP:DMG: InvokeResponseIB =
- [1650527565.990755][24618:24623] CHIP:DMG: {
- [1650527565.990816][24618:24623] CHIP:DMG: CommandStatusIB =
- [1650527565.990900][24618:24623] CHIP:DMG: {
- [1650527565.990967][24618:24623] CHIP:DMG: CommandPathIB =
- [1650527565.991042][24618:24623] CHIP:DMG: {
- [1650527565.991112][24618:24623] CHIP:DMG: EndpointId = 0x0,
- [1650527565.991186][24618:24623] CHIP:DMG: ClusterId = 0x3c,
- [1650527565.991257][24618:24623] CHIP:DMG: CommandId = 0x1,
- [1650527565.991332][24618:24623] CHIP:DMG: },
- [1650527565.991441][24618:24623] CHIP:DMG:
- [1650527565.991505][24618:24623] CHIP:DMG: StatusIB =
- [1650527565.991574][24618:24623] CHIP:DMG: {
- [1650527565.991645][24618:24623] CHIP:DMG: status = 0x01 (FAILURE),
- [1650527565.991743][24618:24623] CHIP:DMG: cluster-status = 0x1,
- [1650527565.991830][24618:24623] CHIP:DMG: },
- [1650527565.991918][24618:24623] CHIP:DMG:
- [1650527565.991976][24618:24623] CHIP:DMG: },
- [1650527565.992061][24618:24623] CHIP:DMG:
- [1650527565.992116][24618:24623] CHIP:DMG: },
- [1650527565.992202][24618:24623] CHIP:DMG:
- [1650527565.992253][24618:24623] CHIP:DMG: ],
- [1650527565.992316][24618:24623] CHIP:DMG:
- [1650527565.992365][24618:24623] CHIP:DMG: InteractionModelRevision = 1
- [1650527565.992414][24618:24623] CHIP:DMG: },
- [1650527565.992535][24618:24623] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
- [1650527565.992601][24618:24623] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01
- disabled: true
+ identity: "gamma"
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
+ response:
+ error: FAILURE
- label:
"Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that was
set in step 11"
- verification: |
- verification step to be updated.
- disabled: true
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 180000
- label: "TH_CR1 reads the list of Fabrics on DUT_CE"
+ cluster: "Operational Credentials"
PICS: OPCREDS.S.A0001
- verification: |
- On 1st controller using chip tool, read fabrics list
-
- ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 268962768
- [1650527361.425870][15792:15797] CHIP:TOO: Fabrics: 3 entries
- [1650527361.426777][15792:15797] CHIP:TOO: [1]: {
- [1650527361.426859][15792:15797] CHIP:TOO: RootPublicKey: 0429A71383F336D80918C9EC655112513E428C073AF7FB44820EC793535302C6E3825C56EE6DD1A683EAA7B59E3F261B46FFA24A6D911E8D88839F4C1B3C84BA01
- [1650527361.426923][15792:15797] CHIP:TOO: VendorId: 65521
- [1650527361.426979][15792:15797] CHIP:TOO: FabricId: 1
- [1650527361.427033][15792:15797] CHIP:TOO: NodeId: 1
- [1650527361.427088][15792:15797] CHIP:TOO: Label:
- [1650527361.427166][15792:15797] CHIP:TOO: FabricIndex: 1
- [1650527361.427376][15792:15797] CHIP:TOO: }
- [1650527361.427464][15792:15797] CHIP:TOO: [2]: {
- [1650527361.427532][15792:15797] CHIP:TOO: RootPublicKey: 04781BCEE70118049ED61DD5B4E401CF1A09D2F78AE7F5770BE5506AD24238E5E0777277DABAFD062659651C95CC2CA7DEAACE40DB579A946CC07CADB141BE05D7
- [1650527361.427595][15792:15797] CHIP:TOO: VendorId: 65521
- [1650527361.427649][15792:15797] CHIP:TOO: FabricId: 1
- [1650527361.427703][15792:15797] CHIP:TOO: NodeId: 3
- [1650527361.427756][15792:15797] CHIP:TOO: Label:
- [1650527361.427811][15792:15797] CHIP:TOO: FabricIndex: 2
- [1650527361.427868][15792:15797] CHIP:TOO: }
- [1650527361.427943][15792:15797] CHIP:TOO: [3]: {
- [1650527361.428008][15792:15797] CHIP:TOO: RootPublicKey: 0403EDB5B461030A34EF7EA2F9DB0D46A36185E4755C365AF9344C4959F049EF21D55EAB903A2C7FBFC305EEFA42989250D7517A73E6156062390A60C0D4C41EBD
- [1650527361.428067][15792:15797] CHIP:TOO: VendorId: 65521
- [1650527361.428122][15792:15797] CHIP:TOO: FabricId: 1
- [1650527361.428176][15792:15797] CHIP:TOO: NodeId: 2
- [1650527361.428229][15792:15797] CHIP:TOO: Label:
- [1650527361.428282][15792:15797] CHIP:TOO: FabricIndex: 3
- [1650527361.428335][15792:15797] CHIP:TOO: }
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", nodeId: nodeId },
+ { Label: "", nodeId: nodeId3 },
+ { Label: "", nodeID: nodeId2 },
+ ]
+ constraints:
+ type: list
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using BCM"
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 1st controller using chip tool, open commissioning window using BCM
-
-
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
-
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
- label:
"Before the expiration of PIXIT.CADMIN.CwDuration seconds that was set
in step 14, TH_CR2 opens a second commissioning window on DUT_CE using
a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 2nd controller using chip tool, open commissioning window using BCM before timer expiry from above step
-
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: InvokeResponseMessage =
- [1650527622.373450][15824:15829] CHIP:DMG: {
- [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false,
- [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs =
- [1650527622.373734][15824:15829] CHIP:DMG: [
- [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB =
- [1650527622.373913][15824:15829] CHIP:DMG: {
- [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB =
- [1650527622.374087][15824:15829] CHIP:DMG: {
- [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB =
- [1650527622.374296][15824:15829] CHIP:DMG: {
- [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0,
- [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c,
- [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1,
- [1650527622.374682][15824:15829] CHIP:DMG: },
- [1650527622.374799][15824:15829] CHIP:DMG:
- [1650527622.374896][15824:15829] CHIP:DMG: StatusIB =
- [1650527622.374979][15824:15829] CHIP:DMG: {
- [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE),
- [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1,
- [1650527622.375320][15824:15829] CHIP:DMG: },
- [1650527622.375426][15824:15829] CHIP:DMG:
- [1650527622.375527][15824:15829] CHIP:DMG: },
- [1650527622.375616][15824:15829] CHIP:DMG:
- [1650527622.375704][15824:15829] CHIP:DMG: },
- [1650527622.375786][15824:15829] CHIP:DMG:
- [1650527622.375864][15824:15829] CHIP:DMG: ],
- [1650527622.375940][15824:15829] CHIP:DMG:
- [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1
- [1650527622.376058][15824:15829] CHIP:DMG: },
- [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
- [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01
- disabled: true
+ identity: "beta"
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
+ response:
+ error: FAILURE
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml
index c08854525cad67..c736e2199f821e 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_12.yaml
@@ -71,7 +71,7 @@ tests:
On 3rd controller using chip tool connect using manual code
- ./chip-tool pairing code 1 35484132896
+ ./chip-tool pairing code 1 35484132896 --commissioner-name gamma
Verify you got below message
Device commissioning completed with success
@@ -103,7 +103,7 @@ tests:
On 2nd controller using chip tool connect using manual code
- ./chip-tool pairing code 1 35484132896
+ ./chip-tool pairing code 2 35484132896 --commissioner-name beta
Verify you got below message
Device commissioning completed with success
@@ -321,7 +321,7 @@ tests:
verification: |
On third controller open commissioning window verify status code 1
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 3 0 --timedInteractionTimeoutMs 1000
+ ./chip-tool administratorcommissioning open-basic-commissioning-window 500 3 0 --timedInteractionTimeoutMs 1000 --commissioner-name gamma
[1658838344.191922][9291:9296] CHIP:DMG: InvokeResponseMessage =
[1658838344.191947][9291:9296] CHIP:DMG: {
@@ -416,7 +416,7 @@ tests:
verification: |
On the 2nd controller using chip tool, open commissioning window using BCM before the timer expiry from above step
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
+ ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml
index 22d1c1654cf2dd..79c0171de6bf29 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_13.yaml
@@ -104,7 +104,6 @@ tests:
constraints:
notValue: null
- #Issue https://github.com/CHIP-Specifications/chip-test-plans/issues/1972
- label: "TH_CR1 reads AdminVendorId attribute from DUT_CE"
cluster: "AdministratorCommissioning"
command: "readAttribute"
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml
index 7622ff87597173..621aa56f0f62f9 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_14.yaml
@@ -41,7 +41,7 @@ tests:
- label: "DUT_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- "1. Provision the device using your DUT controller (use above instructions) ,
+ "1. Provision TH_CE using DUT_CR1 (Chip-tool as DUT controller)
"
disabled: true
@@ -51,9 +51,14 @@ tests:
TH_CR3 Commissions with TH_CE"
PICS: CADMIN.C.C01.Tx
verification: |
- On first controller, open commissioning window using BCM
+ On DUT_CR1 , open commissioning window using BCM
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH_CE(all-clusters-app) Log
CHIP:DMG: InvokeResponseMessage =
[1650278416.248379][11064:11069] CHIP:DMG: {
@@ -89,10 +94,10 @@ tests:
- On 3rd controller, using chip tool connect to the accessory
- ./chip-tool pairing onnetwork 1 20202021
+ On DUT_CR2, using chip tool connect to the accessory
+ ./chip-tool pairing onnetwork 1 20202021 --commissioner-name gamma
- Verify you got below message
+ Verify you got below message on TH_CE (all-clusters-app) log
Device commissioning completed with success
disabled: true
@@ -102,9 +107,14 @@ tests:
TH_CR2 Commissions with TH_CE"
PICS: CADMIN.C.C01.Tx
verification: |
- On first controller, open commissioning window using BCM
+ On DUT_CR1 , open commissioning window using BCM
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH_CE (all-clusters-app) Log
CHIP:DMG: InvokeResponseMessage =
[1650278416.248379][11064:11069] CHIP:DMG: {
@@ -140,10 +150,15 @@ tests:
- On 2nd controller, using chip tool connect to the accessory
- ./chip-tool pairing onnetwork 1 20202021
+ On TH_CR2 , using chip tool connect to the accessory
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
+ ./chip-tool pairing onnetwork 1 20202021 --commissioner-name beta
+
+ Verify you got below message on TH_CE (all-clusters-app) log
- Verify you got below message
Device commissioning completed with success
disabled: true
@@ -152,9 +167,14 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On first controller, open commissioning window using BCM
+ On DUT_CR1 , open commissioning window using BCM
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH_CE (all-clusters-app) Log
CHIP:DMG: InvokeResponseMessage =
[1650278416.248379][11064:11069] CHIP:DMG: {
@@ -195,10 +215,17 @@ tests:
attribute"
PICS: CADMIN.C.A0000
verification: |
- On first controller, read WindowStatus
+ On DUT_CR1 , read WindowStatus
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning read window-status 1 0
+
+ Verify on TH_CE (all-clusters-app) log successfully reads the WindowStatus
+
+ CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
+ [1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
+ [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i"
disabled: true
- label:
@@ -208,16 +235,55 @@ tests:
using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 1st controller chip tool, open commissioning window using ECM
+ On DUT_CR1 chip tool, open commissioning window using ECM
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
+ ./chip-tool pairing open-commissioning-window 1 1 200 1000 3840
+
+ Verify that the TH_CE is rejecting the opening of second commissioning session with the response status 0x01 failure in TH_CE Log
+
+
+ CHIP:DMG: InvokeResponseMessage =
+ [1650527622.373450][15824:15829] CHIP:DMG: {
+ [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false,
+ [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs =
+ [1650527622.373734][15824:15829] CHIP:DMG: [
+ [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB =
+ [1650527622.373913][15824:15829] CHIP:DMG: {
+ [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB =
+ [1650527622.374087][15824:15829] CHIP:DMG: {
+ [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB =
+ [1650527622.374296][15824:15829] CHIP:DMG: {
+ [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0,
+ [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c,
+ [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1,
+ [1650527622.374682][15824:15829] CHIP:DMG: },
+ [1650527622.374799][15824:15829] CHIP:DMG:
+ [1650527622.374896][15824:15829] CHIP:DMG: StatusIB =
+ [1650527622.374979][15824:15829] CHIP:DMG: {
+ [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE),
+ [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1,
+ [1650527622.375320][15824:15829] CHIP:DMG: },
+ [1650527622.375426][15824:15829] CHIP:DMG:
+ [1650527622.375527][15824:15829] CHIP:DMG: },
+ [1650527622.375616][15824:15829] CHIP:DMG:
+ [1650527622.375704][15824:15829] CHIP:DMG: },
+ [1650527622.375786][15824:15829] CHIP:DMG:
+ [1650527622.375864][15824:15829] CHIP:DMG: ],
+ [1650527622.375940][15824:15829] CHIP:DMG:
+ [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1
+ [1650527622.376058][15824:15829] CHIP:DMG: },
+ [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
+ [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01"
disabled: true
- label:
"Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
set in step 4"
verification: |
- verification step to be updated.
+ Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 4
disabled: true
- label:
@@ -226,10 +292,14 @@ tests:
ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 1st controller chip tool, open commissioning window using ECM
+ On DUT_CR1 chip tool, open commissioning window using ECM
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
+ Verify Manual pairing code on TH_CE (all-clusters-app) Log
+
[1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
[1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
[1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
@@ -249,10 +319,17 @@ tests:
attribute"
PICS: CADMIN.C.A0000
verification: |
- On first controller, read WindowStatus
+ On DUT_CR1 , read WindowStatus
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning read window-status 1 0
+
+ Verify on TH_CE (all-clusters-app) log successfully reads the WindowStatus
+
+ CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
+ [1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
+ [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i"
disabled: true
- label:
@@ -262,28 +339,55 @@ tests:
using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 3rd controller chip tool, open commissioning window using ECM
+ On TH_CR3 chip tool, open commissioning window using ECM
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
- [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
- [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
- [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
- [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
- [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
- [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
- [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633]
- [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
- [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
+
+ ./chip-tool pairing open-commissioning-window 1 1 200 1000 3840 --commissioner-name beta
+
+ Verify that the TH_CE is rejecting the opening of second commissioning session with the response status 0x01 failure in TH_CE Log
+
+
+ CHIP:DMG: InvokeResponseMessage =
+ [1650527622.373450][15824:15829] CHIP:DMG: {
+ [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false,
+ [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs =
+ [1650527622.373734][15824:15829] CHIP:DMG: [
+ [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB =
+ [1650527622.373913][15824:15829] CHIP:DMG: {
+ [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB =
+ [1650527622.374087][15824:15829] CHIP:DMG: {
+ [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB =
+ [1650527622.374296][15824:15829] CHIP:DMG: {
+ [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0,
+ [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c,
+ [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1,
+ [1650527622.374682][15824:15829] CHIP:DMG: },
+ [1650527622.374799][15824:15829] CHIP:DMG:
+ [1650527622.374896][15824:15829] CHIP:DMG: StatusIB =
+ [1650527622.374979][15824:15829] CHIP:DMG: {
+ [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE),
+ [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1,
+ [1650527622.375320][15824:15829] CHIP:DMG: },
+ [1650527622.375426][15824:15829] CHIP:DMG:
+ [1650527622.375527][15824:15829] CHIP:DMG: },
+ [1650527622.375616][15824:15829] CHIP:DMG:
+ [1650527622.375704][15824:15829] CHIP:DMG: },
+ [1650527622.375786][15824:15829] CHIP:DMG:
+ [1650527622.375864][15824:15829] CHIP:DMG: ],
+ [1650527622.375940][15824:15829] CHIP:DMG:
+ [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1
+ [1650527622.376058][15824:15829] CHIP:DMG: },
+ [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
+ [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01"
disabled: true
- label:
"Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
set in step 8"
verification: |
- verification step to be updated.
+ Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 8
disabled: true
- label:
@@ -291,10 +395,14 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 1st controller chip tool, open commissioning window using ECM
+ On DUT_CR1 chip tool, open commissioning window using ECM
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
+ Verify Manual pairing code on TH_CE (all-clusters-app) Log
+
[1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
[1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
[1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
@@ -315,27 +423,67 @@ tests:
PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 2nd controller using chip tool connect to the accessory using ECM
+ On TH_CR2 using chip tool connect to the accessory using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
+
+ ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840 --commissioner-name beta
+
+ Verify that the TH_CE is rejecting the opening of second commissioning session with the response status 0x01 failure in TH_CE Log
+
+ CHIP:DMG: InvokeResponseMessage =
+ [1650527622.373450][15824:15829] CHIP:DMG: {
+ [1650527622.373531][15824:15829] CHIP:DMG: suppressResponse = false,
+ [1650527622.373628][15824:15829] CHIP:DMG: InvokeResponseIBs =
+ [1650527622.373734][15824:15829] CHIP:DMG: [
+ [1650527622.373817][15824:15829] CHIP:DMG: InvokeResponseIB =
+ [1650527622.373913][15824:15829] CHIP:DMG: {
+ [1650527622.374001][15824:15829] CHIP:DMG: CommandStatusIB =
+ [1650527622.374087][15824:15829] CHIP:DMG: {
+ [1650527622.374182][15824:15829] CHIP:DMG: CommandPathIB =
+ [1650527622.374296][15824:15829] CHIP:DMG: {
+ [1650527622.374382][15824:15829] CHIP:DMG: EndpointId = 0x0,
+ [1650527622.374490][15824:15829] CHIP:DMG: ClusterId = 0x3c,
+ [1650527622.374593][15824:15829] CHIP:DMG: CommandId = 0x1,
+ [1650527622.374682][15824:15829] CHIP:DMG: },
+ [1650527622.374799][15824:15829] CHIP:DMG:
+ [1650527622.374896][15824:15829] CHIP:DMG: StatusIB =
+ [1650527622.374979][15824:15829] CHIP:DMG: {
+ [1650527622.375086][15824:15829] CHIP:DMG: status = 0x01 (FAILURE),
+ [1650527622.375236][15824:15829] CHIP:DMG: cluster-status = 0x1,
+ [1650527622.375320][15824:15829] CHIP:DMG: },
+ [1650527622.375426][15824:15829] CHIP:DMG:
+ [1650527622.375527][15824:15829] CHIP:DMG: },
+ [1650527622.375616][15824:15829] CHIP:DMG:
+ [1650527622.375704][15824:15829] CHIP:DMG: },
+ [1650527622.375786][15824:15829] CHIP:DMG:
+ [1650527622.375864][15824:15829] CHIP:DMG: ],
+ [1650527622.375940][15824:15829] CHIP:DMG:
+ [1650527622.376000][15824:15829] CHIP:DMG: InteractionModelRevision = 1
+ [1650527622.376058][15824:15829] CHIP:DMG: },
+ [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
+ [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01"
disabled: true
- label:
"Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
set in step 12"
verification: |
- verification step to be updated.
+ Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 12
disabled: true
- label: "DUT_CR1 sends command to TH_CE to read WindowStatus attribute"
PICS: CADMIN.C.A0000
verification: |
- On first controller, read WindowStatus
+ On DUT_CR1 , read WindowStatus
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning read window-status 1 0
+ Verify on TH_CE(all-clusters-app) log successfully reads the WindowStatus
+
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
[1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
[1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i"
@@ -344,10 +492,14 @@ tests:
- label: "DUT_CR1 sends command to TH_CE to read AdminFabricIndex attribute"
PICS: CADMIN.C.A0001
verification: |
- On first controller, read AdminFabricIndex
+ On DUT_CR1 , read AdminFabricIndex
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning read admin-fabric-index 1 0
+ Verify on TH_CE(all-clusters-app) log successfully reads the AdminFabricIndex
+
[1659097193.389295][11728:11733] CHIP:DMG: }
[1659097193.389588][11728:11733] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0001 DataVersion: 1299585105
[1659097193.389731][11728:11733] CHIP:TOO: AdminFabricIndex: 0
@@ -357,10 +509,14 @@ tests:
- label: "DUT_CR1 sends command to TH_CE to read AdminVendorId attribute"
PICS: CADMIN.C.A0002
verification: |
- On first controller, read AdminVendorId
+ On DUT_CR1 , read AdminVendorId
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning read admin-vendor-id 1 0
+ Verify on TH_CE(all-clusters-app) log successfully reads the AdminVendorId
+
[1658838521.588942][9317:9322] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0002 DataVersion: 2423106591
[1658838521.589005][9317:9322] CHIP:TOO: AdminVendorId: 0
[1658838521.589079][9317:9322] CHIP:EM: Sending Standalone Ack for MessageCounter:217165763 on exchange 55683i
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml
index e8b060d2034eb3..17191702192c60 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_15.yaml
@@ -11,293 +11,279 @@
# 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.
-# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
name:
- 4.1.15. [TC-CADMIN-1.15] Removing Fabrics from DUT and Fabric index
- enumeration using ECM [DUT - Commissionee]
+ 30.1.15. [TC-CADMIN-1.15] Removing Fabrics from DUT and Fabric index
+ enumeration using ECM [DUT - Commissionee]
PICS:
- CADMIN.S
config:
nodeId: 0x12344321
- cluster: "Basic"
+ nodeId2:
+ type: node_id
+ defaultValue: 0xCAFE
+ nodeId3:
+ type: node_id
+ defaultValue: 0xC00FEE
endpoint: 0
+ discriminator:
+ type: int16u
+ defaultValue: 3840
+ payload:
+ type: char_string
+ defaultValue: "MT:-24J0AFN00KA0648G00"
+ PakeVerifier:
+ type: octet_string
+ defaultValue:
+ "\xb9\x61\x70\xaa\xe8\x03\x34\x68\x84\x72\x4f\xe9\xa3\xb2\x87\xc3\x03\x30\xc2\xa6\x60\x37\x5d\x17\xbb\x20\x5a\x8c\xf1\xae\xcb\x35\x04\x57\xf8\xab\x79\xee\x25\x3a\xb6\xa8\xe4\x6b\xb0\x9e\x54\x3a\xe4\x22\x73\x6d\xe5\x01\xe3\xdb\x37\xd4\x41\xfe\x34\x49\x20\xd0\x95\x48\xe4\xc1\x82\x40\x63\x0c\x4f\xf4\x91\x3c\x53\x51\x38\x39\xb7\xc0\x7f\xcc\x06\x27\xa1\xb8\x57\x3a\x14\x9f\xcd\x1f\xa4\x66\xcf"
tests:
- - label: "Precondition"
+ - label: "Precondition: Reset Devices to factory defaults"
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "SystemCommands"
+ command: "FactoryReset"
+
+ - label: "Precondition: Reset Devices to factory defaults"
verification: |
- Reset Devices to factory defaults
- disabled: true
+ Not implemented in YAML
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value: "Factory Reset the DUT and enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
- label: "TH_CR1 starts a commissioning process with DUT_CE"
+ identity: "alpha"
PICS: CADMIN.S
- verification: |
- "1. Provision the device using 1st controller chip tool(use above instructions) ,
- "
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using ECM"
+ identity: "alpha"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window using ECM
-
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
- [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
- [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
- [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
- [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
- [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
- [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
- [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
- [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633]
- [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
- [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
- label: "TH_CR2 starts a commissioning process with DUT_CE"
+ identity: "beta"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
PICS: CADMIN.S
- verification: |
- On 2nd controller using chip tool connect to the accessory
-
-
- ./chip-tool pairing code 2 36217551633
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR2"
+ identity: "beta"
+ PICS: CADMIN.S
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using ECM"
+ identity: "alpha"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window using ECM
-
- ./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
-
- [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
- [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
- [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
- [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
- [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
- [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
- [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
- [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633]
- [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
- [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
- disabled: true
-
- - label: "TH_CR3 starts a commissioning process with DUT_CE"
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
+
+ - label: "TH_CR3 Commissions with DUT_CE"
PICS: CADMIN.S
- verification: |
- On 3rd controller using chip tool connect to the accessory
-
-
-
- ./chip-tool pairing code 3 36217551633
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
+ identity: "gamma"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId3
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR3"
+ PICS: CADMIN.S
+ identity: "gamma"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId3
- label: "TH_CR2 reads the list of Fabrics on DUT_CE"
+ identity: "beta"
+ cluster: "Operational Credentials"
PICS: OPCREDS.S.A0001
- verification: |
- On 2nd controller using chip tool, read fabrics list
-
- ./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193
- CHIP:TOO: Fabrics: 3 entries
- CHIP:TOO: [1]: {
- CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
- CHIP:TOO: VendorId: 65521
- CHIP:TOO: FabricId: 1
- CHIP:TOO: NodeId: 1
- CHIP:TOO: Label:
- CHIP:TOO: FabricIndex: 1
- CHIP:TOO: }
- CHIP:TOO: [2]: {
- CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- CHIP:TOO: VendorId: 65521
- CHIP:TOO: FabricId: 1
- CHIP:TOO: NodeId: 2
- CHIP:TOO: Label:
- CHIP:TOO: FabricIndex: 2
- CHIP:TOO: }
- CHIP:TOO: [3]: {
- CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- CHIP:TOO: VendorId: 65521
- CHIP:TOO: FabricId: 1
- CHIP:TOO: NodeId: 3
- CHIP:TOO: Label:
- CHIP:TOO: FabricIndex: 3
- CHIP:TOO: }
- CHIP:EM: Sending Standalone Ack for MessageCounter:9143157 on exchange 1147i
- disabled: true
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", FabricIndex: 1, nodeId: nodeId },
+ { Label: "", FabricIndex: 2, nodeId: nodeId2 },
+ { Label: "", FabricIndex: 3, nodeID: nodeId3 },
+ ]
+ constraints:
+ type: list
- label: "TH_CR2 sends RemoveFabric with FabricIndex = 2 command to DUT_CE"
PICS: OPCREDS.S.C0a.Rsp
- verification: |
- on 2nd controller using chip tool, remove fabric with FabricIndex=2
-
- ./chip-tool operationalcredentials remove-fabric 2 2 0
-
- CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
- CHIP:TOO: NOCResponse: {
- CHIP:TOO: statusCode: 0
- CHIP:TOO: fabricIndex: 2
- CHIP:TOO: }
- CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
+ identity: "beta"
+ cluster: "Operational Credentials"
+ command: "RemoveFabric"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "FabricIndex"
+ value: 2
- label:
- "TH_CR2 writes and reads the Basic Information Clusters NodeLabel
- mandatory attribute of DUT_CE"
+ "TH_CR2 writes the Basic Information Clusters NodeLabel mandatory
+ attribute of DUT_CE"
PICS: BINFO.S.A0005
+ identity: "beta"
+ command: "writeAttribute"
+ cluster: "Basic"
+ attribute: "NodeLabel"
+ arguments:
+ value: "chiptest"
+ response:
+ error: FAILURE
+
+ #Issue https://github.com/project-chip/connectedhomeip/issues/21999
+ - label:
+ "TH_CR2 reads the Basic Information Clusters NodeLabel mandatory
+ attribute of DUT_CE"
+ PICS: BINFO.S.A0005 && PICS_USER_PROMPT
verification: |
- Using your 2nd controller, write attribute and read attribute
+ Using your 2nd controller read attribute
Below is the example while using chip tool on second controller,
- ./chip-tool basic write node-label te5new 2 0
-
- Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
- [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
- [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
-
./chip-tool basic read node-label 2 0
Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
[1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
[1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
- disabled: true
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' for success"
+ - name: "expectedValue"
+ value: "y"
- label: "TH_CR1 reads the list of Fabrics on DUT_CE"
+ identity: "alpha"
PICS: OPCREDS.S.A0001
- verification: |
- On 1st controller using chip tool, read fabrics list
-
- Below is the command using chip tool controller
-
- ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219
- [1647863260.286772][9294:9299] CHIP:TOO: Fabrics: 2 entries
- [1647863260.286908][9294:9299] CHIP:TOO: [1]: {
- [1647863260.286947][9294:9299] CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
- [1647863260.286995][9294:9299] CHIP:TOO: VendorId: 65521
- [1647863260.287026][9294:9299] CHIP:TOO: FabricId: 1
- [1647863260.287055][9294:9299] CHIP:TOO: NodeId: 1
- [1647863260.287084][9294:9299] CHIP:TOO: Label:
- [1647863260.287113][9294:9299] CHIP:TOO: FabricIndex: 1
- [1647863260.287144][9294:9299] CHIP:TOO: }
- [1647863260.287185][9294:9299] CHIP:TOO: [2]: {
- [1647863260.287221][9294:9299] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- [1647863260.287253][9294:9299] CHIP:TOO: VendorId: 65521
- [1647863260.287282][9294:9299] CHIP:TOO: FabricId: 1
- [1647863260.287310][9294:9299] CHIP:TOO: NodeId: 3
- [1647863260.287339][9294:9299] CHIP:TOO: Label:
- [1647863260.287368][9294:9299] CHIP:TOO: FabricIndex: 3
- [1647863260.287396][9294:9299] CHIP:TOO: }
- [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i"
- disabled: true
-
- - label:
- "Verify DUT_CE is now discoverable over DNS-SD with 2 Operational
- service records (_matter._tcp SRV records)"
- verification: |
- grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
- + wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
- + wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local
- = wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2753]
- port = [5540]
- txt = ["T=1" "SAI=300" "SII=5000"]
- = wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2753]
- port = [5540]
- txt = ["T=1" "SAI=300" "SII=5000"]
- grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
+ cluster: "Operational Credentials"
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", FabricIndex: 1, nodeId: nodeId },
+ { Label: "", FabricIndex: 3, nodeID: nodeId3 },
+ ]
+ constraints:
+ type: list
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using ECM"
+ identity: "alpha"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window using ECM
-
- ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840
-
- [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
- [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
- [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
- [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
- [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
- [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
- [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
- [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [36217551633]
- [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
- [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
- label: "TH_CR2 starts a commissioning process with DUT_CE"
+ identity: "beta"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
PICS: CADMIN.S
- verification: |
- On 2nd controller using chip tool connect to the accessory
-
-
- ./chip-tool pairing code 2 36217551633
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR2"
+ PICS: CADMIN.S
+ identity: "beta"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
- label: "TH_CR1 reads the list of Fabrics on DUT_CE"
+ identity: "alpha"
PICS: OPCREDS.S.A0001
- verification: |
- On 1st controller, read fabrics list
-
- Below is the command using chip tool controller
-
- ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246
- [1647863342.980899][9309:9314] CHIP:TOO: Fabrics: 3 entries
- [1647863342.981158][9309:9314] CHIP:TOO: [1]: {
- [1647863342.981231][9309:9314] CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
- [1647863342.981322][9309:9314] CHIP:TOO: VendorId: 65521
- [1647863342.981380][9309:9314] CHIP:TOO: FabricId: 1
- [1647863342.981434][9309:9314] CHIP:TOO: NodeId: 1
- [1647863342.981486][9309:9314] CHIP:TOO: Label:
- [1647863342.981539][9309:9314] CHIP:TOO: FabricIndex: 1
- [1647863342.981594][9309:9314] CHIP:TOO: }
- [1647863342.981671][9309:9314] CHIP:TOO: [2]: {
- [1647863342.981737][9309:9314] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- [1647863342.981796][9309:9314] CHIP:TOO: VendorId: 65521
- [1647863342.981849][9309:9314] CHIP:TOO: FabricId: 1
- [1647863342.981901][9309:9314] CHIP:TOO: NodeId: 3
- [1647863342.981952][9309:9314] CHIP:TOO: Label:
- [1647863342.982005][9309:9314] CHIP:TOO: FabricIndex: 3
- [1647863342.982057][9309:9314] CHIP:TOO: }
- [1647863342.982131][9309:9314] CHIP:TOO: [3]: {
- [1647863342.982195][9309:9314] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- [1647863342.982252][9309:9314] CHIP:TOO: VendorId: 65521
- [1647863342.982305][9309:9314] CHIP:TOO: FabricId: 1
- [1647863342.982357][9309:9314] CHIP:TOO: NodeId: 2
- [1647863342.982409][9309:9314] CHIP:TOO: Label:
- [1647863342.982460][9309:9314] CHIP:TOO: FabricIndex: 4
- [1647863342.982512][9309:9314] CHIP:TOO: }
- [1647863342.982738][9309:9314] CHIP:EM: Sending Standalone Ack for MessageCounter:5772016 on exchange 3310i
- disabled: true
+ cluster: "Operational Credentials"
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", FabricIndex: 1, nodeId: nodeId },
+ { Label: "", FabricIndex: 4, nodeId: nodeId2 },
+ { Label: "", FabricIndex: 3, nodeID: nodeId3 },
+ ]
+ constraints:
+ type: list
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml
index 8d80ea0b08a370..ba7744562b2518 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_16.yaml
@@ -11,11 +11,10 @@
# 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.
-# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
name:
- 4.1.16. [TC-CADMIN-1.16] Removing Fabrics from DUT and Fabric index
- enumeration using BCM [DUT - Commissionee]
+ 30.1.16. [TC-CADMIN-1.16] Removing Fabrics from DUT and Fabric index
+ enumeration using BCM [DUT - Commissionee]
PICS:
- CADMIN.S
@@ -23,342 +22,247 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Basic"
+ nodeId2:
+ type: node_id
+ defaultValue: 0xCAFE
+ nodeId3:
+ type: node_id
+ defaultValue: 0xC00FEE
endpoint: 0
+ discriminator:
+ type: int16u
+ defaultValue: 3840
+ payload:
+ type: char_string
+ defaultValue: "MT:-24J0AFN00KA0648G00"
tests:
- - label: "Precondition"
+ - label: "Precondition: Reset Devices to factory defaults"
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "SystemCommands"
+ command: "FactoryReset"
+
+ - label: "Precondition: Reset Devices to factory defaults"
verification: |
- Reset Devices to factory defaults
- disabled: true
+ Not implemented in YAML
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value: "Factory Reset the DUT and enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
- label: "TH_CR1 starts a commissioning process with DUT_CE"
+ identity: "alpha"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
PICS: CADMIN.S
- verification: |
- "1. Provision the device using 1st controller chip tool(use above instructions) ,
- "
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE"
+ identity: "alpha"
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window using BCM
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
- label: "TH_CR2 starts a commissioning process with DUT_CE"
+ identity: "beta"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
PICS: CADMIN.S
- verification: |
- On 2nd controller using chip tool connect to the accessory
-
-
- ./chip-tool pairing onnetwork 2 20202021
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR2"
+ PICS: CADMIN.S
+ identity: "beta"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE"
+ identity: "alpha"
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window using BCM
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
-
- - label: "TH_CR3 starts a commissioning process with DUT_CE"
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
+
+ - label: "TH_CR3 Commissions with DUT_CE"
PICS: CADMIN.S
- verification: |
- On 3rd controller using chip tool connect to the accessory
-
-
-
- ./chip-tool pairing onnetwork 3 20202021
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
+ identity: "gamma"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId3
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR3"
+ PICS: CADMIN.S
+ identity: "gamma"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId3
- label: "TH_CR2 reads the list of Fabrics on DUT_CE"
+ identity: "beta"
+ cluster: "Operational Credentials"
PICS: OPCREDS.S.A0001
- verification: |
- On 2nd controller using chip tool, read fabrics list
-
- ./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193
- CHIP:TOO: Fabrics: 3 entries
- CHIP:TOO: [1]: {
- CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
- CHIP:TOO: VendorId: 65521
- CHIP:TOO: FabricId: 1
- CHIP:TOO: NodeId: 1
- CHIP:TOO: Label:
- CHIP:TOO: FabricIndex: 1
- CHIP:TOO: }
- CHIP:TOO: [2]: {
- CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- CHIP:TOO: VendorId: 65521
- CHIP:TOO: FabricId: 1
- CHIP:TOO: NodeId: 2
- CHIP:TOO: Label:
- CHIP:TOO: FabricIndex: 2
- CHIP:TOO: }
- CHIP:TOO: [3]: {
- CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- CHIP:TOO: VendorId: 65521
- CHIP:TOO: FabricId: 1
- CHIP:TOO: NodeId: 3
- CHIP:TOO: Label:
- CHIP:TOO: FabricIndex: 3
- CHIP:TOO: }
- CHIP:EM: Sending Standalone Ack for MessageCounter:9143157 on exchange 1147i
- disabled: true
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", FabricIndex: 1, nodeId: nodeId },
+ { Label: "", FabricIndex: 2, nodeId: nodeId2 },
+ { Label: "", FabricIndex: 3, nodeID: nodeId3 },
+ ]
+ constraints:
+ type: list
- label: "TH_CR2 sends RemoveFabric with FabricIndex = 2 command to DUT_CE"
PICS: OPCREDS.S.C0a.Rsp
- verification: |
- on 2nd controller using chip tool, remove fabric with FabricIndex=2
-
- ./chip-tool operationalcredentials remove-fabric 2 2 0
-
- CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
- CHIP:TOO: NOCResponse: {
- CHIP:TOO: statusCode: 0
- CHIP:TOO: fabricIndex: 2
- CHIP:TOO: }
- CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
+ identity: "beta"
+ cluster: "Operational Credentials"
+ command: "RemoveFabric"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "FabricIndex"
+ value: 2
- label:
- "TH_CR2 writes and reads the Basic Information Clusters NodeLabel
- mandatory attribute of DUT_CE"
+ "TH_CR2 writes the Basic Information Clusters NodeLabel mandatory
+ attribute of DUT_CE"
PICS: BINFO.S.A0005
+ identity: "beta"
+ command: "writeAttribute"
+ cluster: "Basic"
+ attribute: "NodeLabel"
+ arguments:
+ value: "chiptest"
+ response:
+ error: FAILURE
+
+ #Issue https://github.com/project-chip/connectedhomeip/issues/21999
+ - label:
+ "TH_CR2 reads the Basic Information Clusters NodeLabel mandatory
+ attribute of DUT_CE"
+ PICS: BINFO.S.A0005 && PICS_USER_PROMPT
verification: |
- Using your 2nd controller, write attribute and read attribute
+ Using your 2nd controller read attribute
Below is the example while using chip tool on second controller,
- ./chip-tool basic write node-label te5new 2 0
-
- Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
- [1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
- [1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
-
./chip-tool basic read node-label 2 0
Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
[1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
[1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
- disabled: true
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ arguments:
+ values:
+ - name: "message"
+ value: "Please enter 'y' for success"
+ - name: "expectedValue"
+ value: "y"
- label: "TH_CR1 reads the list of Fabrics on DUT_CE"
+ identity: "alpha"
PICS: OPCREDS.S.A0001
- verification: |
- On 1st controller using chip tool, read fabrics list
-
-
- Below is the command using chip tool controller
-
- ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219
- [1647863260.286772][9294:9299] CHIP:TOO: Fabrics: 2 entries
- [1647863260.286908][9294:9299] CHIP:TOO: [1]: {
- [1647863260.286947][9294:9299] CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
- [1647863260.286995][9294:9299] CHIP:TOO: VendorId: 65521
- [1647863260.287026][9294:9299] CHIP:TOO: FabricId: 1
- [1647863260.287055][9294:9299] CHIP:TOO: NodeId: 1
- [1647863260.287084][9294:9299] CHIP:TOO: Label:
- [1647863260.287113][9294:9299] CHIP:TOO: FabricIndex: 1
- [1647863260.287144][9294:9299] CHIP:TOO: }
- [1647863260.287185][9294:9299] CHIP:TOO: [2]: {
- [1647863260.287221][9294:9299] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- [1647863260.287253][9294:9299] CHIP:TOO: VendorId: 65521
- [1647863260.287282][9294:9299] CHIP:TOO: FabricId: 1
- [1647863260.287310][9294:9299] CHIP:TOO: NodeId: 3
- [1647863260.287339][9294:9299] CHIP:TOO: Label:
- [1647863260.287368][9294:9299] CHIP:TOO: FabricIndex: 3
- [1647863260.287396][9294:9299] CHIP:TOO: }
- [1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i"
- disabled: true
-
- - label:
- "Verify DUT_CE is now discoverable over DNS-SD with 2 Operational
- service records (_matter._tcp SRV records)."
- verification: |
- grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
- + wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
- + wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local
- = wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2753]
- port = [5540]
- txt = ["T=1" "SAI=300" "SII=5000"]
- = wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2753]
- port = [5540]
- txt = ["T=1" "SAI=300" "SII=5000"]
- grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE using a commissioning
- timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
+ cluster: "Operational Credentials"
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", FabricIndex: 1, nodeId: nodeId },
+ { Label: "", FabricIndex: 3, nodeID: nodeId3 },
+ ]
+ constraints:
+ type: list
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using BCM"
+ identity: "alpha"
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window using BCM
-
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
-
-
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 180
+ - name: "discriminator"
+ value: discriminator
- label: "TH_CR2 starts a commissioning process with DUT_CE"
+ identity: "beta"
+ cluster: "CommissionerCommands"
+ command: "PairWithCode"
PICS: CADMIN.S
- verification: |
- On 2nd controller using chip tool connect to the accessory
-
-
- ./chip-tool pairing onnetwork 2 20202021
-
- Verify you got below message
- Device commissioning completed with success
- disabled: true
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
+ - name: "payload"
+ value: payload
+
+ - label: "DUT_CE is commissioned to TH_CR2"
+ PICS: CADMIN.S
+ identity: "beta"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId2
- label: "TH_CR1 reads the list of Fabrics on DUT_CE"
+ identity: "alpha"
PICS: OPCREDS.S.A0001
- verification: |
- On 1st controller, read fabrics list
-
- Below is the command using chip tool controller
-
- ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246
- [1647863342.980899][9309:9314] CHIP:TOO: Fabrics: 3 entries
- [1647863342.981158][9309:9314] CHIP:TOO: [1]: {
- [1647863342.981231][9309:9314] CHIP:TOO: RootPublicKey: 04656F56DBDB677DC957028DFC0ED76709C72753C9194B117A483BDC07386BFD9529B68EB4448FBBA3964EFF37A56A8F461D348B0DAF3B56A75F3B94BF8209D36F
- [1647863342.981322][9309:9314] CHIP:TOO: VendorId: 65521
- [1647863342.981380][9309:9314] CHIP:TOO: FabricId: 1
- [1647863342.981434][9309:9314] CHIP:TOO: NodeId: 1
- [1647863342.981486][9309:9314] CHIP:TOO: Label:
- [1647863342.981539][9309:9314] CHIP:TOO: FabricIndex: 1
- [1647863342.981594][9309:9314] CHIP:TOO: }
- [1647863342.981671][9309:9314] CHIP:TOO: [2]: {
- [1647863342.981737][9309:9314] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- [1647863342.981796][9309:9314] CHIP:TOO: VendorId: 65521
- [1647863342.981849][9309:9314] CHIP:TOO: FabricId: 1
- [1647863342.981901][9309:9314] CHIP:TOO: NodeId: 3
- [1647863342.981952][9309:9314] CHIP:TOO: Label:
- [1647863342.982005][9309:9314] CHIP:TOO: FabricIndex: 3
- [1647863342.982057][9309:9314] CHIP:TOO: }
- [1647863342.982131][9309:9314] CHIP:TOO: [3]: {
- [1647863342.982195][9309:9314] CHIP:TOO: RootPublicKey: 04F8F28D5D70A4510E0F72FBBA31369796C4206FF95D97B77C1BDFD0438A3BE43510631A1B915BE189323F4CC0E015480192654D8170F8F230C7713898962958B7
- [1647863342.982252][9309:9314] CHIP:TOO: VendorId: 65521
- [1647863342.982305][9309:9314] CHIP:TOO: FabricId: 1
- [1647863342.982357][9309:9314] CHIP:TOO: NodeId: 2
- [1647863342.982409][9309:9314] CHIP:TOO: Label:
- [1647863342.982460][9309:9314] CHIP:TOO: FabricIndex: 4
- [1647863342.982512][9309:9314] CHIP:TOO: }
- [1647863342.982738][9309:9314] CHIP:EM: Sending Standalone Ack for MessageCounter:5772016 on exchange 3310i
- disabled: true
+ cluster: "Operational Credentials"
+ command: "readAttribute"
+ attribute: "Fabrics"
+ fabricFiltered: false
+ response:
+ value:
+ [
+ { Label: "", FabricIndex: 1, nodeId: nodeId },
+ { Label: "", FabricIndex: 4, nodeId: nodeId2 },
+ { Label: "", FabricIndex: 3, nodeID: nodeId3 },
+ ]
+ constraints:
+ type: list
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml
index 6ca89bc6035b65..fecdf6fc80af4d 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_17.yaml
@@ -40,7 +40,7 @@ tests:
- label: "DUT_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- "1. Provision the device using DUT controller chip tool(use above instructions) ,
+ "1. Provision the device using DUT_CR1 (Chip-tool as DUT controller)
"
disabled: true
@@ -49,13 +49,14 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On your first controller, open commissioning window using ECM
-
- Below is the example when using chip tool as controller
+ On DUT_CR1 , open commissioning window using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
+ Verify Manual pairing code on TH_CE (all-clusters-app) Log
+
[1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
[1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
[1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
@@ -86,12 +87,14 @@ tests:
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 2nd controller using chip tool connect to the accessory
+ On TH_CR2 using chip tool connect to the accessory
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing code 1 35484132896
+ ./chip-tool pairing code 1 35484132896 --commissioner-name beta
- Verify you got below message
+ Verify you got below message on TH_CE(all-clusters-app) log
Device commissioning completed with success
disabled: true
@@ -100,13 +103,14 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On your first controller chip tool, open commissioning window using ECM
-
- Below is the example when using chip tool as controller
+ On TH_CR1 (chip tool), open commissioning window using ECM
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
+ Verify Manual pairing code on TH_CE(all-clusters-app) Log
+
[1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
[1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
[1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
@@ -137,21 +141,26 @@ tests:
- label: "TH_CR3 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 3rd controller using chip tool connect to the accessory
+ On TH_CR3 using chip tool connect to the accessory
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing code 1 35484132896
+ ./chip-tool pairing code 1 35484132896 --commissioner-name gamma
- Verify you got below message
+ Verify you got below message on TH_CE(all-clusters-app) log
Device commissioning completed with success
disabled: true
- label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics"
PICS: OPCREDS.C.A0001
verification: |
- On 2nd controller using chip tool, read fabrics list
+ On DUT_CR1 using chip tool, read fabrics list
- ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ Verify TH_CE receives and processes the command successfully on TH_CE (all-clusters-app) log
+
+ ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 --commissioner-name beta
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193
CHIP:TOO: Fabrics: 3 entries
@@ -185,9 +194,13 @@ tests:
- label: "DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to TH_CE"
PICS: OPCREDS.C.C0a.Tx
verification: |
- on 2nd controller using chip tool, remove fabric with FabricIndex=2
+ on DUT_CR1 using chip tool, remove fabric with FabricIndex=2
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool operationalcredentials remove-fabric 2 1 0
+ ./chip-tool operationalcredentials remove-fabric 2 1 0 --commissioner-name beta
+
+ Verify TH_CE responses with NOCResponse with a StatusCode OK on TH_CE (all-clusters-app) log
CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
@@ -203,16 +216,22 @@ tests:
Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- Using your 2nd controller, write attribute and read attribute to and from TH_CE
+ Using TH_CR2 , write attribute and read attribute to and from TH_CE
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ Verify read/write commands fail as expected since the TH_CR2 is no longer on the network on TH_CE (all-clusters-app) log
- Below is the example while using chip tool on second controller,
- ./chip-tool basic write node-label te5new 2 0
+ ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
[1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
[1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
- ./chip-tool basic read node-label 2 0
+ ./chip-tool basic read node-label 2 0 --commissioner-name beta
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
[1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
@@ -223,12 +242,14 @@ tests:
"DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE"
PICS: OPCREDS.C.A0001
verification: |
- On first controller, read fabrics list
+ On DUT_CR1 , read fabrics list
- Below is the command using chip tool controller
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
+ Verify TH_CE receives and processes the command successfully on TH_CE (all-clusters-app) log
+
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995219
[1647863260.286772][9294:9299] CHIP:TOO: Fabrics: 2 entries
[1647863260.286908][9294:9299] CHIP:TOO: [1]: {
@@ -254,7 +275,11 @@ tests:
"Verify TH_CE is now discoverable over DNS-SD with 2 Operational
service records (_matter._tcp SRV records)."
verification: |
+ On any Linux platform execute this command or in TH_CR2
+
grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
+
+
+ wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
+ wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local
= wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
@@ -277,10 +302,13 @@ tests:
verification: |
On first controller chip tool, open commissioning window using ECM
- Below is the example when using chip tool as controller
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
+ Verify Manual pairing code on TH1(all-clusters-app) Log
+
+
[1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
[1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
[1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
@@ -297,12 +325,14 @@ tests:
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 2nd controller using chip tool connect to the accessory
+ On TH_CR2 using chip tool connect to the accessory
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing code 1 36217551633
+ ./chip-tool pairing code 1 36217551633 --commissioner-name beta
- Verify you got below message
+ Verify you got below message on TH_CE (all-clusters-app) log
Device commissioning completed with success
disabled: true
@@ -310,11 +340,13 @@ tests:
"TH_CR2 sends command to TH_CE to read the list of Fabrics on TH_CE"
PICS: OPCREDS.C.A0001
verification: |
- On second controller, read fabrics list
+ On TH_CR2 , read fabrics list
- Below is the command using chip tool controller
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
+ ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 --commissioner-name beta
+
+ Verify TH_CE receives and processes the command successfully on TH_CE (all-clusters-app) log
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246
[1647863342.980899][9309:9314] CHIP:TOO: Fabrics: 3 entries
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml
index cbc714bc930b67..a3acd649a11040 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_18.yaml
@@ -14,8 +14,8 @@
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
name:
- 4.1.18. [TC-CADMIN-1.18] Removing Fabrics from DUT and Fabric index
- enumeration using BCM [DUT - Commissioner]
+ 30.1.18. [TC-CADMIN-1.18] Removing Fabrics from DUT and Fabric index
+ enumeration using BCM [DUT - Commissioner]
PICS:
- CADMIN.C
@@ -40,7 +40,7 @@ tests:
- label: "DUT_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- "1. Provision the device using DUT controller chip tool(use above instructions) ,
+ "1. Provision the device using DUT_CR1 (Chip-tool as DUT controller)
"
disabled: true
@@ -49,11 +49,14 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On your first controller chip tool, open commissioning window using BCM
+ On DUT_CR1 (chip tool), open commissioning window using BCM
- Below is the example when using chip tool as controller
- ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
+ ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH-CE(all-clusters-app) Log
CHIP: [DMG] InvokeResponseMessage =
[1648116114630] [6871:3898916] CHIP: [DMG] {
@@ -90,12 +93,14 @@ tests:
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 2nd controller using chip tool connect to the accessory
+ On TH_CR2 using chip tool connect to the accessory
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing onnetwork 1 20202021
- Verify you got below message
+ ./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
+
+ Verify you got below message on TH_CE (all-clusters-app) log
Device commissioning completed with success
disabled: true
@@ -104,11 +109,14 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On your first controller chip tool, open commissioning window using BCM
+ On DUT_CR1 (chip tool), open commissioning window using BCM
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
- Below is the example when using chip tool as controller
./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH_CE (all-clusters-app) Log
CHIP: [DMG] InvokeResponseMessage =
[1648116114630] [6871:3898916] CHIP: [DMG] {
@@ -145,12 +153,14 @@ tests:
- label: "TH_CR3 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 3rd controller using chip tool connect to the accessory
+ On TH_CR3 using chip tool connect to the accessory
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing onnetwork 1 20202021
- Verify you got below message
+ ./chip-tool pairing onnetwork 3 20202021 --commissioner-name gamma
+
+ Verify you got below message on TH_CE (all-clusters-app) log
Device commissioning completed with success
disabled: true
@@ -158,11 +168,13 @@ tests:
"DUT_CR1 sends command to TH_CE to read the list of Fabrics on TH_CE"
PICS: OPCREDS.C.A0001
verification: |
- On first controller, read fabrics list
+ On DUT_CR1 , read fabrics list
- ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+ ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
+ Verify TH_CE receives and processes the command successfully on TH_CE (all-clusters-app) log
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995193
CHIP:TOO: Fabrics: 3 entries
@@ -194,12 +206,16 @@ tests:
"
disabled: true
- - label: "DUT_CR1 sends RemoveFabric with FabricIndex = 2 command to TH_CE"
+ - label: "DUT_CR1 sends RemoveFabric with FabricIndex = 2command to TH_CE"
PICS: OPCREDS.C.C0a.Tx
verification: |
- on 2nd controller using chip tool, remove fabric with FabricIndex=2
+ on DUT_CR1 ( using chip tool), remove fabric with FabricIndex=2
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ Verify TH_CE responses with NOCResponse with a StatusCode OK on TH_CE (all-clusters-app) log
- ./chip-tool operationalcredentials remove-fabric 2 1 0
+ ./chip-tool operationalcredentials remove-fabric 2 1 0 --commissioner-name beta
CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
@@ -215,16 +231,19 @@ tests:
Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- Using your 2nd controller, write attribute and read attribute to and from TH_CE
+ Using TH_CR2 , write attribute and read attribute to and from TH_CE
- Below is the example while using chip tool on second controller,
- ./chip-tool basic write node-label te5new 2 0
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ Verify read/write commands fail as expected since the TH_CR2 is no longer on the network on TH_CE (all-clusters-app)
+
+ ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
[1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
[1651819620.929700][4359:4364] CHIP:-: ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter at ../../commands/clusters/ModelCommand.cpp:53
- ./chip-tool basic read node-label 2 0
+ ./chip-tool basic read node-label 2 0 --commissioner-name beta
Received error (protocol code 2) during pairing process. ../../third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:1551: CHIP Error 0x00000054: Invalid CASE parameter
[1651819620.929567][4359:4364] CHIP:CTL: OperationalDeviceProxy[B8070CD13C99D367:0000000000000002]: State change 3 --> 2
@@ -234,9 +253,11 @@ tests:
- label: "DUT_CR1 sends command to TH_CE to read the list of Fabrics"
PICS: OPCREDS.C.A0001
verification: |
- On first controller, read fabrics list
+ On DUT_CR1 , read fabrics list
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the command using chip tool controller
+ Verify TH_CE receives and processes the command successfully on TH_CE (all-clusters-app)
./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
@@ -261,11 +282,12 @@ tests:
[1647863260.287515][9294:9299] CHIP:EM: Sending Standalone Ack for MessageCounter:11301761 on exchange 13180i
disabled: true
- - label:
- "Verify TH_CE is now discoverable over DNS-SD with 2 Operational
- service records (_matter._tcp SRV records)."
+ - label: ""
verification: |
- 1. Verify if the DUT is broadcasting using
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ Execute the below avahi-browse command in any LInux machine or in TH_CR2.
+
grl@grl-ThinkPad-L480:~/may16_cntrl03/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
+ wlp5s0 IPv6 8E50A59FAF52A809-0000000000000001 _matter._tcp local
+ wlp5s0 IPv6 03E707466A904C7E-0000000000000003 _matter._tcp local
@@ -287,13 +309,15 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On first controller chip tool, open commissioning window using BCM
+ On DUT_CR1 chip tool, open commissioning window using BCM
- Below is the example when using chip tool as controller
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
For BCM,
./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH_CE (all-clusters-app) Log
+
CHIP:DMG: InvokeResponseMessage =
[1650278416.248379][11064:11069] CHIP:DMG: {
[1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
@@ -330,23 +354,27 @@ tests:
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On 2nd controller using chip tool connect to the accessory
+ On TH_CR2 using chip tool connect to the accessory
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool pairing onnetwork 1 20202021
+ ./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
- Verify you got below message
+ Verify you got below message on TH_CE (all-clusters-app) log
Device commissioning completed with success
disabled: true
- label: "TH_CR2 sends command to TH_CE to read the list of Fabrics"
PICS: OPCREDS.C.A0001
verification: |
- On second controller, read fabrics list
+ On TH_CR2 , read fabrics list
- Below is the command using chip tool controller
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0
+ ./chip-tool operationalcredentials read fabrics 1234 0 --fabric-filtered 0 --commissioner-name beta
+
+ Verify TH_CE receives and processes the command successfully on TH_CE (all-clusters-app) log
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 2455995246
[1647863342.980899][9309:9314] CHIP:TOO: Fabrics: 3 entries
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml
index 269f9e66c9f9b2..83891c653b5b23 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_19.yaml
@@ -34,7 +34,7 @@ tests:
- label: "TH_CR1 starts a commissioning process with DUT_CE"
PICS: CADMIN.S
verification: |
- "1. Provision the device using 1st controller chip tool(use above instructions) ,
+ "1. Provision the device using TH_CR1 -chip tool(use above instructions) ,
"
disabled: true
@@ -43,12 +43,12 @@ tests:
timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.S.C00.Rsp
verification: |
- On 1st controller chip tool, open commissioning window using ECM
-
- Below is the example when using chip tool as controller
+ On TH_CR1 (chip tool), open commissioning window using ECM
./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
+ Verify Manual pairing code on TH_CR1 (chip-tool) Log
+
[1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
[1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
[1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
@@ -65,12 +65,12 @@ tests:
- label: "THn starts a commissioning process with DUT_CE"
PICS: CADMIN.S
verification: |
- On nth controller using chip tool connect to the accessory
+ On TH_CR1+1 controller using chip tool connect to the accessory
- ./chip-tool pairing code 2 36217551633
+ ./chip-tool pairing code 2 36217551633 --commissioner-name beta
- Verify you got below message
+ Verify you got below message on TH_CR1+1(chip-tool) log
Device commissioning completed with success
disabled: true
@@ -79,7 +79,13 @@ tests:
to reach an index value of SupportedFabrics on DUT_CE"
PICS: CADMIN.S.C00.Rsp
verification: |
- Repeat step 3 until CommissionedFabrics=SupportedFabrics
+ Repeat step 3 until CommissionedFabrics=SupportedFabrics (Supported fabrics value obtained in the precondition)
+
+ Use the following command to verify the currentcommissioned fabric (Output number may vary depends on the number successful commissioning )
+
+ ./chip-tool operationalcredentials read commissioned-fabrics 1 0
+
+ [1660907933.677983][33780:33785] CHIP:TOO: CommissionedFabrics: 16
disabled: true
- label:
@@ -87,10 +93,11 @@ tests:
with DUT_CE"
PICS: CADMIN.S
verification: |
- On nth controller using chip tool connect to the accessory
+ On THnth controller using chip tool connect to the accessory
+ ./chip-tool pairing code 6 36217551633 --commissioner-name 4
- ./chip-tool pairing code 6 36217551633
+ Verify DUT_CE responds with NOCResponse with a StatusCode of 0x05 on THn (chip-tool) log
CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
[1649756670.402192][10794:10799] CHIP:CTL: Device returned status 5 on receiving the NOC
@@ -101,7 +108,21 @@ tests:
- label: "TH_CR1 removes FabricIndex1"
PICS: OPCREDS.S.C0a.Rsp
verification: |
- on 1st controller using chip tool, remove fabric with FabricIndex=1
+ on TH_CR1 using chip tool, remove fabric with FabricIndex=1
./chip-tool operationalcredentials remove-fabric 1 1 0
+
+ CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
+ CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
+ CHIP:TOO: NOCResponse: {
+ CHIP:TOO: statusCode: 0
+ CHIP:TOO: fabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: ICR moving to [AwaitingDe]
+
+ Verify CommissionedFabrics=SupportedFabrics-1 on TH_CR1(chip-tool) log
+
+ ./chip-tool operationalcredentials read commissioned-fabrics 1 0
+
+ [1660907933.677983][33780:33785] CHIP:TOO: CommissionedFabrics: 15
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml
index 844c50fc29f807..7696714ea2df48 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_2.yaml
@@ -39,7 +39,7 @@ tests:
- label: "TH_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- Provision the device using chip tool on first controller
+ "1. Provision the TH_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi"
disabled: true
- label:
@@ -48,10 +48,13 @@ tests:
(Basic Commissioning Method)"
PICS: CADMIN.C.C01.Tx
verification: |
- On first controller, usinadministratorcommissioningg chip tool open commissioning window.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On TH_CR1 send the below command
./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify Success response On TH_CR1(CHIP-TOOL) Log
CHIP:DMG: InvokeResponseMessage =
@@ -90,10 +93,15 @@ tests:
- label: "TH_CR1 sends command to TH_CE to read the list of Fabrics"
PICS: OPCREDS.C.A0001
verification: |
- On first controller, using chip tool read fabricList
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On TH_CR1 send the below command
./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
+ On TH1(all-clusters-app) Log
+
+ Verify 1 entry in the Fabrics list attributeOn TH_CR1(CHIP-TOOL) Log
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3621507058
[1649245801.244173][10091:10096] CHIP:TOO: Fabrics: 1 entries
@@ -111,18 +119,25 @@ tests:
- label: "DUT_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On second Controller connect to the accessory.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example when using chip tool as controller
./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
- Verify you got below message
+ Verify whether you got below message in the log of DUT_CR2(CHIP-TOOL)
+
Device commissioning completed with success
disabled: true
- label: "Verify TH_CE is now discoverable over DNS-SD with two SRV Records"
verification: |
- On the raspi , Verify if the DUT is broadcasting using
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+
+ On the raspi , Verify if the TH_CE(All-cluster-app) is broadcasting
+
+ On TH_CR1 send the below command
ubuntu@ubuntu:~/may10_cntrl2/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
+ eth0 IPv6 E0AF53B23E580769-0000000000000002 _matter._tcp local
@@ -144,54 +159,63 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On the 2nd controller write attribute and read attribute to and from TH_CE
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
+ On TH2(all-clusters-app) Log
+ Verify Write request on TH_CE(all-clusters-app) Log
- Verify read attribute returns the updated value written
- ./chip-tool basic read node-label 1 0 --commissioner-name beta
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+ [1660894021.901330][2871:2871] CHIP:EM: Handling via exchange: 9616r, Delegate: 0xaaaada21ffc0
+ [1660894021.901426][2871:2871] CHIP:IM: Received Write request
+ [1660894021.901484][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
+ [1660894021.901613][2871:2871] CHIP:DMG: WriteRequestMessage =
+ [1660894021.901676][2871:2871] CHIP:DMG: {
+ [1660894021.901735][2871:2871] CHIP:DMG: suppressResponse = false,
+ [1660894021.901802][2871:2871] CHIP:DMG: timedRequest = false,
+ [1660894021.901864][2871:2871] CHIP:DMG: AttributeDataIBs =
+ [1660894021.901940][2871:2871] CHIP:DMG: [
+ [1660894021.902001][2871:2871] CHIP:DMG: AttributeDataIB =
+ [1660894021.902071][2871:2871] CHIP:DMG: {
+ [1660894021.902136][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894021.902219][2871:2871] CHIP:DMG: {
+ [1660894021.902302][2871:2871] CHIP:DMG: Endpoint = 0x0,
+
+
+ ./chip-tool basic read node-label 2 0 --commissioner-name beta
+
+ Verify read request on TH_CE(all-clusters-app) Log
+
+
+ [1660894142.828718][2871:2871] CHIP:EM: Handling via exchange: 62454r, Delegate: 0xaaaada21ffc0
+ [1660894142.828834][2871:2871] CHIP:IM: Received Read request
+ [1660894142.829023][2871:2871] CHIP:DMG: ReadRequestMessage =
+ [1660894142.829097][2871:2871] CHIP:DMG: {
+ [1660894142.829153][2871:2871] CHIP:DMG: AttributePathIBs =
+ [1660894142.829235][2871:2871] CHIP:DMG: [
+ [1660894142.829306][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894142.829376][2871:2871] CHIP:DMG: {
+ [1660894142.829449][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894142.829532][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894142.829627][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
disabled: true
- label:
"DUT_CR2 sends command to TH_CE to read the list of Fabrics on TH_CE"
PICS: OPCREDS.C.A0001
verification: |
- On second controller controller read fabricList
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0 --commissioner-name beta
+ Verify 2 entries in the Fabrics list attribute On DUT_CR2(chip-tool) Log
+
+
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 3229397217
[1650277071.834099][40790:40795] CHIP:TOO: Fabrics: 2 entries
[1650277071.834120][40790:40795] CHIP:TOO: [1]: {
@@ -218,41 +242,43 @@ tests:
Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On first controller, using chip-tool write attribute, Verify read attribute returns the updated value written.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
./chip-tool basic write node-label te8 1 0
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+
+ [1660894538.804578][2871:2871] CHIP:EM: Handling via exchange: 64932r, Delegate: 0xaaaada21ffc0
+ [1660894538.804677][2871:2871] CHIP:IM: Received Write request
+ [1660894538.804737][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
+ [1660894538.804867][2871:2871] CHIP:DMG: WriteRequestMessage =
+ [1660894538.804933][2871:2871] CHIP:DMG: {
+ [1660894538.804993][2871:2871] CHIP:DMG: suppressResponse = false,
+ [1660894538.805059][2871:2871] CHIP:DMG: timedRequest = false,
+ [1660894538.805120][2871:2871] CHIP:DMG: AttributeDataIBs =
+ [1660894538.805196][2871:2871] CHIP:DMG: [
+
- Verify read attribute returns the updated value written
./chip-tool basic read node-label 1 0
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te8
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+
+ Verify the Read request On TH_CE(all-clusters-app) Log
+
+ [1660894686.511690][2871:2871] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:155836021 on exchange 25703r
+ [1660894686.511817][2871:2871] CHIP:EM: Handling via exchange: 25703r, Delegate: 0xaaaada21ffc0
+ [1660894686.511920][2871:2871] CHIP:IM: Received Read request
+ [1660894686.512190][2871:2871] CHIP:DMG: ReadRequestMessage =
+ [1660894686.512259][2871:2871] CHIP:DMG: {
+ [1660894686.512314][2871:2871] CHIP:DMG: AttributePathIBs =
+ [1660894686.512380][2871:2871] CHIP:DMG: [
+ [1660894686.512441][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894686.512526][2871:2871] CHIP:DMG: {
+ [1660894686.512599][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894686.512683][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894686.512772][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894142.829703][2871:2871] CHIP:DMG: }
+ [1660894142.829777][2871:2871] CHIP:DMG:
disabled: true
- label:
@@ -262,11 +288,14 @@ tests:
verification: |
On second controller read, write attribute and then read attribute to and from TH_CE
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example while using chip tool on second controller,
./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
+ On TH2(all-clusters-app) Log
+
+
CHIP:DMG: WriteResponseMessage =
[1649245940.788522][10110:10115] CHIP:DMG: {
[1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
@@ -296,6 +325,10 @@ tests:
Verify read attribute returns the updated value written
./chip-tool basic read node-label 2 0 --commissioner-name beta
+
+ On TH2(all-clusters-app) Log
+
+
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
[1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
[1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
@@ -312,43 +345,17 @@ tests:
(Basic Commissioning Method)"
PICS: CADMIN.C.C01.Tx
verification: |
- On second controller using chip-tool open commissioning widow using BCM.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
+ [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660901022.112389][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
disabled: true
- label:
@@ -356,43 +363,18 @@ tests:
using the Revoke Commissioning command"
PICS: CADMIN.C.C02.Tx
verification: |
- On second controller using chip-tool run revoke command
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool administratorcommissioning revoke-commissioning 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta
+ Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
+ [1660901039.590962][3045:3045] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002
+ [1660901039.591036][3045:3045] CHIP:ZCL: Received command to close commissioning window
+ [1660901039.591094][3045:3045] CHIP:SVR: Closing pairing window
+ [1660901039.591169][3045:3045] CHIP:IN: SecureSession[0xaaaab010d400]: Released - Type:1 LSID:14411
disabled: true
- label:
@@ -400,10 +382,13 @@ tests:
with TH_CE"
PICS: CADMIN.C
verification: |
- 1. On third controller, using chip-tool connect to the accessory. Connect attempt should fail, i.e
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On TH_CR3 send the below command
+
./chip-tool pairing onnetwork 3 20202021 --commissioner-name gamma
- verify you got the following message in the TH log
+ verify you got the following message in the TH_CR3(chip-tool) log
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
@@ -415,42 +400,38 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- On second controller, write attribute and read attribute to and from TH_CE
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+ [1660902144.913634][3045:3045] CHIP:EM: Handling via exchange: 22257r, Delegate: 0xaaaaadbeffc0
+ [1660902144.913728][3045:3045] CHIP:IM: Received Write request
+ [1660902144.913785][3045:3045] CHIP:DMG: IM WH moving to [Initialized]
+ [1660902144.913912][3045:3045] CHIP:DMG: WriteRequestMessage =
+ [1660902144.913977][3045:3045] CHIP:DMG: {
+ [1660902144.914038][3045:3045] CHIP:DMG: suppressResponse = false,
+ [1660902144.914106][3045:3045] CHIP:DMG: timedRequest = false,
+ [1660902144.914168][3045:3045] CHIP:DMG: AttributeDataIBs =
+
+ [1660902144.915374][3045:3045] CHIP:DMG:
- Verify read attribute returns the updated value written
./chip-tool basic read node-label 2 0 --commissioner-name beta
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+
+ Verify the Write request On TH_CE(all-clusters-app) Log
+
+ [1660902253.379018][3045:3045] CHIP:EM: Handling via exchange: 3197r, Delegate: 0xaaaaadbeffc0
+ [1660902253.379122][3045:3045] CHIP:IM: Received Read request
+ [1660902253.379306][3045:3045] CHIP:DMG: ReadRequestMessage =
+ [1660902253.379373][3045:3045] CHIP:DMG: {
+ [1660902253.379430][3045:3045] CHIP:DMG: AttributePathIBs =
+ [1660902253.379496][3045:3045] CHIP:DMG: [
+ [1660902253.379557][3045:3045] CHIP:DMG: AttributePathIB =
+ [1660902253.379634][3045:3045] CHIP:DMG: {
+ [1660902253.379703][3045:3045] CHIP:DMG: Endpoint = 0x0,
disabled: true
- label:
@@ -458,43 +439,17 @@ tests:
BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On second controller using chip-tool open commissioning widow using BCM.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool administratorcommissioning open-basic-commissioning-window 180 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
+ [1660902413.357922][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660902413.358025][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660902413.358116][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
disabled: true
- label:
@@ -508,43 +463,17 @@ tests:
BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On second controller using chip-tool open commissioning widow using BCM.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On DUT_CR2 send the below command
- Below is the example while using chip tool on second controller,
./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
+ [1660902623.744448][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660902623.744550][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660902623.744634][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
disabled: true
- label:
@@ -552,15 +481,23 @@ tests:
from step 15"
PICS: CADMIN.C
verification: |
- Using your 1st Controller connect to the accessory.
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ On TH_CR1 send the below command
- Below is the example when using chip tool as controller
./chip-tool pairing onnetwork 1 20202021
+ Verify the OperationalCert error 9 in TH_CE(all-clusters-app) Log
+
+ [1660902716.613196][3045:3045] CHIP:DMG: Command handler moving to [AddedComma]
+ [1660902716.613274][3045:3045] CHIP:ZCL: OpCreds: Failed AddNOC request (err=../../examples/all-clusters-app/linux/third_party/connectedhomeip/src/credentials/FabricTable.cpp:1692: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists) with OperationalCert error 9
+ [1660902716.613394][3045:3045] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0
+ [1660902716.613497][3045:3045] CHIP:EM: Piggybacking Ack for MessageCounter:176866087 on exchange: 56605r
+
+ Trying to add a NOC for a fabric that already exists On TH_CR1(chip-tool) Log
+
[1651786200275] [36301:315544] CHIP: [DMG] Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
[1651786200275] [36301:315544] CHIP: [CTL] Device returned status 9 on receiving the NOC
[1651786200275] [36301:315544] CHIP: [CTL] Add NOC failed with error ../../src/controller/CHIPDeviceController.cpp:1187: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists
[1651786200275] [36301:315544] CHIP: [CTL] Error on commissioning step "SendNOC": "../../src/controller/CHIPDeviceController.cpp:1187: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists"
-
- Verify that the commissioning process fails as TH_CE was already commissioned by TH_CR1 in step 1
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml
index 50e30a8e4ef88f..18672ffa5ddad4 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_20.yaml
@@ -35,7 +35,7 @@ tests:
- label: "TH_CR1 starts a commissioning process with DUT_CE"
PICS: CADMIN.S
verification: |
- "1. Provision the device using 1st controller chip tool(use above instructions) ,
+ "1. Provision the device using TH_CR1 - chip tool(use above instructions) ,
"
disabled: true
@@ -44,12 +44,12 @@ tests:
timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.S.C01.Rsp
verification: |
- On 1st controller chip tool, open commissioning window using BCM
-
- Below is the example when using chip tool as controller
+ On TH_CR1 (chip tool), open commissioning window using BCM
./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify success response On TH_CR1(chip-tool) Log
+
CHIP:DMG: InvokeResponseMessage =
[1649756654.928453][3385:3390] CHIP:DMG: {
[1649756654.928511][3385:3390] CHIP:DMG: suppressResponse = false,
@@ -86,12 +86,11 @@ tests:
- label: "THn starts a commissioning process with DUT_CE"
PICS: CADMIN.S
verification: |
- On nth controller using chip tool connect to the accessory
-
+ On TH_CR1+1 controller using chip tool connect to the accessory
- ./chip-tool pairing onnetwork 2 20202021
+ ./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
- Verify you got below message
+ Verify you got below message on TH_CR1+1(chip-tool) log
Device commissioning completed with success
disabled: true
@@ -100,7 +99,13 @@ tests:
to reach an index value of SupportedFabrics on DUT_CE"
PICS: CADMIN.S.C01.Rsp
verification: |
- Repeat step 3 until CommissionedFabrics=SupportedFabrics
+ Repeat step 3 until CommissionedFabrics=SupportedFabrics (Supported fabrics value obtained in the precondition)
+
+ Use the following command to verify the currentcommissioned fabric (Output number may vary depends on the number successful commissioning )
+
+ ./chip-tool operationalcredentials read commissioned-fabrics 1 0
+
+ [1660907933.677983][33780:33785] CHIP:TOO: CommissionedFabrics: 16
disabled: true
- label:
@@ -108,10 +113,11 @@ tests:
with DUT_CE"
PICS: CADMIN.S.C01.Rsp
verification: |
- On nth controller using chip tool connect to the accessory
+ On THnth controller using chip tool connect to the accessory
+ ./chip-tool pairing onnetwork 6 20202021 --commissioner-name 4
- ./chip-tool pairing onnetwork 6 20202021
+ Verify DUT_CE responds with NOCResponse with a StatusCode of 0x05 on THn (chip-tool) log
CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
[1649756670.402192][10794:10799] CHIP:CTL: Device returned status 5 on receiving the NOC
@@ -122,7 +128,21 @@ tests:
- label: "TH_CR1 removes FabricIndex1"
PICS: OPCREDS.S.C0a.Rsp
verification: |
- on 1st controller using chip tool, remove fabric with FabricIndex=1
+ on TH_CR1 using chip tool, remove fabric with FabricIndex=1
./chip-tool operationalcredentials remove-fabric 1 1 0
+
+ CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
+ CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
+ CHIP:TOO: NOCResponse: {
+ CHIP:TOO: statusCode: 0
+ CHIP:TOO: fabricIndex: 1
+ CHIP:TOO: }
+ CHIP:DMG: ICR moving to [AwaitingDe]
+
+ Verify CommissionedFabrics=SupportedFabrics-1 on TH_CR1(chip-tool) log
+
+ ./chip-tool operationalcredentials read commissioned-fabrics 1 0
+
+ [1660907933.677983][33780:33785] CHIP:TOO: CommissionedFabrics: 15
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml
index 4119e0fbebea8b..3b49df915b30db 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_21.yaml
@@ -14,8 +14,8 @@
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
name:
- 4.1.21. [TC-CADMIN-1.21] Open commissioning window - durations max and max+1
- [BCM] [DUT - Commissionee]
+ 30.1.21. [TC-CADMIN-1.21] Open commissioning window - durations max and
+ max+1 [BCM] [DUT - Commissionee]
PICS:
- CADMIN.S
@@ -23,109 +23,88 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Basic"
+ timeout: 950
endpoint: 0
+ discriminator:
+ type: int16u
+ defaultValue: 3840
tests:
- - label: "Precondition"
- verification: |
- Reset Devices to factory defaults
- disabled: true
+ - label: "Precondition: Reset Devices to factory defaults"
+ PICS: PICS_SDK_CI_ONLY
+ cluster: "SystemCommands"
+ command: "FactoryReset"
- - label: "TH_CR1 starts a commissioning process with DUT_CE using BCM"
- PICS: CADMIN.S.C01.Rsp
+ - label: "Precondition: Reset Devices to factory defaults"
verification: |
- "1. Provision the device using 1st controller chip tool(use above instructions) ,
- "
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE with a value of 900
- seconds"
+ Not implemented in YAML
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value: "Factory Reset the DUT and enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label: "TH_CR1 starts a commissioning process with DUT_CE"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
+ PICS: CADMIN.S
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE using BCM"
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
+ timedInteractionTimeoutMs: 10000
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window
-
- For BCM,
-
-
- ./chip-tool administratorcommissioning open-basic-commissioning-window 900 2 0 --timedInteractionTimeoutMs 1000
-
-
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
- [1650278416.249430][11064:11069] CHIP:DMG:
- [1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
- [1650278416.249581][11064:11069] CHIP:DMG: {
- [1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
- disabled: true
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 900
+ - name: "discriminator"
+ value: discriminator
- label: "Wait for commissioning Window to 901 seconds"
- verification: |
- Wait for commissioning Window to Timeout
- disabled: true
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 901000
- label:
"TH_CR1 reads the window status to verify the DUT_CE window is closed"
+ cluster: "AdministratorCommissioning"
+ command: "readAttribute"
+ attribute: "WindowStatus"
PICS: CADMIN.S.A0000
- verification: |
- ./chip-tool administratorcommissioning read window-status 1 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
- [1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
- [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i
- disabled: true
+ response:
+ value: 0
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE with a value of 901
- seconds"
+ - label: "TH_CR1 opens a commissioning window on DUT_CE"
+ cluster: "AdministratorCommissioning"
+ command: "OpenBasicCommissioningWindow"
PICS: CADMIN.S.C01.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window
-
- For BCM,
- ./chip-tool administratorcommissioning open-basic-commissioning-window 901 2 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x85
- [1652860801.225084][9512:9517] CHIP:TOO: Error: IM Error 0x00000585: General error: 0x85 (INVALID_COMMAND)
- [1652860801.225173][9512:9517] CHIP:DMG: ICR moving to [AwaitingDe]
- [1652860801.225294][9512:9517] CHIP:EM: Sending Standalone Ack for MessageCounter:4191961 on exchange 37827i
- disabled: true
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 901
+ - name: "discriminator"
+ value: discriminator
+ response:
+ error: INVALID_COMMAND
- label:
"TH_CR1 reads the window status to verify the DUT_CE window is closed"
+ cluster: "AdministratorCommissioning"
+ command: "readAttribute"
+ attribute: "WindowStatus"
PICS: CADMIN.S.A0000
- verification: |
- On 1st controller read window status
-
- ./chip-tool administratorcommissioning read window-status 1 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
- [1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
- [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i
- disabled: true
+ response:
+ value: 0
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml
index 261b804cfc05e6..52864032e07829 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_22.yaml
@@ -14,120 +14,112 @@
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
name:
- 4.1.22. [TC-CADMIN-1.22] Open commissioning window - durations max and max+1
- [ECM] [DUT - Commissionee]
+ 30.1.22. [TC-CADMIN-1.22] Open commissioning window - durations max and
+ max+1 [ECM] [DUT - Commissionee]
PICS:
- CADMIN.S
config:
nodeId: 0x12344321
- cluster: "Basic"
+ timeout: 950
endpoint: 0
+ discriminator:
+ type: int16u
+ defaultValue: 3840
+ PakeVerifier:
+ type: octet_string
+ defaultValue:
+ "\xb9\x61\x70\xaa\xe8\x03\x34\x68\x84\x72\x4f\xe9\xa3\xb2\x87\xc3\x03\x30\xc2\xa6\x60\x37\x5d\x17\xbb\x20\x5a\x8c\xf1\xae\xcb\x35\x04\x57\xf8\xab\x79\xee\x25\x3a\xb6\xa8\xe4\x6b\xb0\x9e\x54\x3a\xe4\x22\x73\x6d\xe5\x01\xe3\xdb\x37\xd4\x41\xfe\x34\x49\x20\xd0\x95\x48\xe4\xc1\x82\x40\x63\x0c\x4f\xf4\x91\x3c\x53\x51\x38\x39\xb7\xc0\x7f\xcc\x06\x27\xa1\xb8\x57\x3a\x14\x9f\xcd\x1f\xa4\x66\xcf"
tests:
- - label: "Precondition"
- verification: |
- Reset Devices to factory defaults
- disabled: true
+ - label: "Precondition: Reset Devices to factory defaults"
+ cluster: "SystemCommands"
+ PICS: PICS_SDK_CI_ONLY
+ command: "FactoryReset"
- - label: "TH_CR1 starts a commissioning process with DUT_CE using ECM"
- PICS: CADMIN.S.C00.Rsp
+ - label: "Precondition: Reset Devices to factory defaults"
verification: |
- "1. Provision the device using 1st controller chip tool(use above instructions) ,
- "
- disabled: true
-
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE with a value of 900
- seconds"
+ Not implemented in YAML
+ cluster: "LogCommands"
+ command: "UserPrompt"
+ PICS: PICS_SKIP_SAMPLE_APP
+ arguments:
+ values:
+ - name: "message"
+ value: "Factory Reset the DUT and enter 'y' after success"
+ - name: "expectedValue"
+ value: "y"
+
+ - label: "TH_CR1 starts a commissioning process with DUT_CE"
+ cluster: "DelayCommands"
+ command: "WaitForCommissionee"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window
-
- Below is the example when using chip tool as controller
-
-
- For ECM,
- ./chip-tool pairing open-commissioning-window 1 1 900 1000 3840
-
- [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
- [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
- [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
- [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
- [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
- [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
- [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
- [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [35484132896]
- [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
- [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
- disabled: true
+ arguments:
+ values:
+ - name: "nodeId"
+ value: nodeId
+
+ - label: "TH_CR1 opens a commissioning window on DUT_CE"
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
+ PICS: CADMIN.S.C00.Rsp
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 900
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
- label: "Wait for commissioning Window to 901 seconds"
- verification: |
- On 1st controller chip tool, open commissioning window
-
- Below is the example when using chip tool as controller
-
-
- For ECM,
- ./chip-tool pairing open-commissioning-window 1 1 900 1000 3840
-
- [1635925713.966786][9695:9700] CHIP:SC: Success status report received. Session was established
- [1635925713.966839][9695:9700] CHIP:IN: New secure session created for device 0x0000000000000001, key 33!!
- [1635925713.966938][9695:9700] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635925713.972601][9695:9700] CHIP:DMG: ICR moving to [AddingComm]
- [1635925713.972705][9695:9700] CHIP:DMG: ICR moving to [AddedComma]
- [1635925713.972815][9695:9700] CHIP:IN: Prepared encrypted message 0xaaaad9b57d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 31056i with MessageCounter:0.
- [1635925713.972876][9695:9700] CHIP:IN: Sending encrypted msg 0xaaaad9b57d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 13449459 msec
- [1635925713.973006][9695:9700] CHIP:DMG: ICR moving to [CommandSen]
- [1635925713.973061][9695:9700] CHIP:CTL: Manual pairing code: [35484132896]
- [1635925713.973120][9695:9700] CHIP:CTL: SetupQRCode: [MT:00000CQM00A7F87ZT10]
- [1635925713.973178][9695:9700] CHIP:EM: Sending Standalone Ack for MessageCounter:1964916542 on exchange 31055i
- disabled: true
+ cluster: "DelayCommands"
+ command: "WaitForMs"
+ arguments:
+ values:
+ - name: "ms"
+ value: 901000
- label:
"TH_CR1 reads the window status to verify the DUT_CE window is closed"
+ cluster: "AdministratorCommissioning"
+ command: "readAttribute"
+ attribute: "WindowStatus"
PICS: CADMIN.S.A0000
- verification: |
- On 1st controller read window status
-
- ./chip-tool administratorcommissioning read window-status 1 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
- [1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
- [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i
- disabled: true
+ response:
+ value: 0
- - label:
- "TH_CR1 opens a commissioning window on DUT_CE with a value of 901
- seconds"
+ - label: "TH_CR1 opens a commissioning window on DUT_CE"
+ cluster: "AdministratorCommissioning"
+ command: "OpenCommissioningWindow"
PICS: CADMIN.S.C00.Rsp
- verification: |
- On 1st controller chip tool, open commissioning window
-
- Below is the example when using chip tool as controller
-
-
- For ECM,
- ./chip-tool pairing open-commissioning-window 1 1 901 1000 3840
-
- CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x85
- [1652860801.225084][9512:9517] CHIP:TOO: Error: IM Error 0x00000585: General error: 0x85 (INVALID_COMMAND)
- [1652860801.225173][9512:9517] CHIP:DMG: ICR moving to [AwaitingDe]
- [1652860801.225294][9512:9517] CHIP:EM: Sending Standalone Ack for MessageCounter:4191961 on exchange 37827i
- disabled: true
+ timedInteractionTimeoutMs: 10000
+ arguments:
+ values:
+ - name: "CommissioningTimeout"
+ value: 901
+ - name: "PAKEVerifier"
+ value: PakeVerifier
+ - name: "discriminator"
+ value: discriminator
+ - name: "iterations"
+ value: 1000
+ - name: "salt"
+ value: "SPAKE2P Key Salt"
+ response:
+ error: INVALID_COMMAND
- label:
"TH_CR1 reads the window status to verify the DUT_CE window is closed"
+ cluster: "AdministratorCommissioning"
+ command: "readAttribute"
+ attribute: "WindowStatus"
PICS: CADMIN.S.A0000
- verification: |
- On first controller, read window status
-
- ./chip-tool administratorcommissioning read window-status 1 0
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_0000 DataVersion: 2849200592
- [1651137648.760469][14047:14052] CHIP:TOO: WindowStatus: 0
- [1651137648.760534][14047:14052] CHIP:EM: Sending Standalone Ack for MessageCounter:5527412 on exchange 14590i
- disabled: true
+ response:
+ value: 0
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml
index 5ba018a444cd38..f014b0272aabe3 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_23.yaml
@@ -23,7 +23,7 @@ PICS:
config:
nodeId: 0x12344321
- timeout: 330
+ timeout: 200
endpoint: 0
discriminator:
type: int16u
@@ -69,7 +69,7 @@ tests:
- name: "discriminator"
value: discriminator
- - label: "Wait for commissioning Window to 301 seconds"
+ - label: "Wait for commissioning Window to 181 seconds"
cluster: "DelayCommands"
command: "WaitForMs"
arguments:
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml
index 736adc1aad733b..d589e09a309ac1 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_24.yaml
@@ -22,7 +22,7 @@ PICS:
config:
nodeId: 0x12344321
- timeout: 330
+ timeout: 200
endpoint: 0
discriminator:
type: int16u
@@ -78,7 +78,7 @@ tests:
- name: "salt"
value: "SPAKE2P Key Salt"
- - label: "Wait for commissioning Window to 301 seconds"
+ - label: "Wait for commissioning Window to 181 seconds"
cluster: "DelayCommands"
command: "WaitForMs"
arguments:
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml
index 3b2066c0c6d8a1..fc2ef27ac21f25 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_6.yaml
@@ -87,7 +87,7 @@ tests:
- name: "ms"
value: 190000
- - label: "Commission from beta"
+ - label: "TH_CR2 starts a commissioning process with DUT_CE"
identity: "beta"
cluster: "CommissionerCommands"
command: "PairWithCode"
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml
index c8371b511790e7..51584addb07c21 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_7.yaml
@@ -40,7 +40,7 @@ tests:
- label: "DUT_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- 1. Provision the device using DUT_CR1 controller on the raspi.
+ "1. Provision the TH_CE (all-cluster-app) device using DUT_CR1 (chip-tool ) on the raspi" "
disabled: true
- label:
@@ -48,19 +48,21 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On 1st controller open commissioning widow using ECM.
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners.
+
+ Verify the Open commisioning window on the TH_CE(all-cluster-app) Log:
+
+ [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
+ [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
+ [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
- [1635871058.908790][4273:4278] CHIP:SC: Success status report received. Session was established
- [1635871058.908827][4273:4278] CHIP:IN: New secure session created for device 0x0000000000000001, key 47!!
- [1635871058.908924][4273:4278] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635871058.916166][4273:4278] CHIP:DMG: ICR moving to [AddingComm]
- [1635871058.916223][4273:4278] CHIP:DMG: ICR moving to [AddedComma]
- [1635871058.916362][4273:4278] CHIP:IN: Prepared encrypted message 0xaaaac41dfd10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 21937i with MessageCounter:0.
- [1635871058.916421][4273:4278] CHIP:IN: Sending encrypted msg 0xaaaac41dfd10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 12630575 msec
+ Verify the Manual pairing code on the DUT_CR1(chip-tool) Log:
+
+ 0x0000000000000001 at monotonic time: 12630575 msec
[1635871058.916549][4273:4278] CHIP:DMG: ICR moving to [CommandSen]
[1635871058.916607][4273:4278] CHIP:CTL: Manual pairing code: [36366524220]
[1635871058.916679][4273:4278] CHIP:CTL: SetupQRCode: [MT:00000CQM0088GL3XV00]
@@ -94,13 +96,15 @@ tests:
PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds"
PICS: CADMIN.C
verification: |
- On the 2nd controller using chip-tool , connect using manual code generated by DUT Controller
+ On TH_CR2 send the below command
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example when using chip tool as controller (considering 36366524220 as the manual code generated by DUT controller)
+ (considering 36366524220 as the manual code generated by DUT controller)
./chip-tool pairing code 2 36366524220 --commissioner-name beta
- verify you got the following message in the TH log
+ Verify the below message in the TH_CR2(chip-tool) Log:
+
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
@@ -112,19 +116,21 @@ tests:
ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On your second controller open commissioning widow using ECM.
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 2 1 300 1000 3840 --commissioner-name beta
- [1635871058.908790][4273:4278] CHIP:SC: Success status report received. Session was established
- [1635871058.908827][4273:4278] CHIP:IN: New secure session created for device 0x0000000000000001, key 47!!
- [1635871058.908924][4273:4278] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635871058.916166][4273:4278] CHIP:DMG: ICR moving to [AddingComm]
- [1635871058.916223][4273:4278] CHIP:DMG: ICR moving to [AddedComma]
- [1635871058.916362][4273:4278] CHIP:IN: Prepared encrypted message 0xaaaac41dfd10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 21937i with MessageCounter:0.
- [1635871058.916421][4273:4278] CHIP:IN: Sending encrypted msg 0xaaaac41dfd10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 12630575 msec
+ Verify the Open commisioning window on the TH_CE(all-cluster-app) Log:
+
+ [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
+ [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
+ [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
+
+ Verify the Manual pairing code on the DUT_CR1(chip-tool) Log:
+
+ 0x0000000000000001 at monotonic time: 12630575 msec
[1635871058.916549][4273:4278] CHIP:DMG: ICR moving to [CommandSen]
[1635871058.916607][4273:4278] CHIP:CTL: Manual pairing code: [36366524220]
[1635871058.916679][4273:4278] CHIP:CTL: SetupQRCode: [MT:00000CQM0088GL3XV00]
@@ -134,55 +140,43 @@ tests:
- label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window"
PICS: CADMIN.C.C02.Tx
verification: |
- On First controller send revoke commissioning
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning revoke-commissioning 1 0 --timedInteractionTimeoutMs 1000
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
+ Verify success response On DUT_CR1(CHIP-TOOL) Log
+
+
[1650278416.249347][11064:11069] CHIP:DMG: },
[1650278416.249430][11064:11069] CHIP:DMG:
[1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
[1650278416.249581][11064:11069] CHIP:DMG: {
[1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
[1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
+
[1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
+
+ Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
+
+ [1660901039.590962][3045:3045] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002
+ [1660901039.591036][3045:3045] CHIP:ZCL: Received command to close commissioning window
+ [1660901039.591094][3045:3045] CHIP:SVR: Closing pairing window
+ [1660901039.591169][3045:3045] CHIP:IN: SecureSession[0xaaaab010d400]: Released - Type:1 LSID:14411
disabled: true
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On the 2nd controller using chip-tool , connect using manual code generated by DUT Controller
+ On TH_CR2 send the below command
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example when using chip tool as controller (considering 34921141778 as the manual code generated by DUT controller)
+ (considering 34921141778 as the manual code generated by DUT controller)
./chip-tool pairing code 2 34921141778 --commissioner-name beta
- verify you got the following message in the TH log
+ verify you got the following message in the TH_CR2(chip-tool) log
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
@@ -191,26 +185,22 @@ tests:
- label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window"
PICS: CADMIN.C.C02.Tx
verification: |
- On your first controller revoke commissioning
-
- Below is the example while using chip tool as controller,
-
- /chip-tool administratorcommissioning revoke-commissioning 1 0 --timedInteractionTimeoutMs 1000
-
- CHIP:DMG: InvokeResponseMessage =
- [1650524034.111241][15422:15427] CHIP:DMG: {
- [1650524034.111316][15422:15427] CHIP:DMG: suppressResponse = false,
- [1650524034.111383][15422:15427] CHIP:DMG: InvokeResponseIBs =
- [1650524034.111464][15422:15427] CHIP:DMG: [
- [1650524034.111531][15422:15427] CHIP:DMG: InvokeResponseIB =
- [1650524034.111643][15422:15427] CHIP:DMG: {
- [1650524034.111714][15422:15427] CHIP:DMG: CommandStatusIB =
- [1650524034.111803][15422:15427] CHIP:DMG: {
- [1650524034.111886][15422:15427] CHIP:DMG: CommandPathIB =
- [1650524034.111979][15422:15427] CHIP:DMG: {
- [1650524034.112072][15422:15427] CHIP:DMG: EndpointId = 0x0,
- [1650524034.112167][15422:15427] CHIP:DMG: ClusterId = 0x3c,
- [1650524034.112257][15422:15427] CHIP:DMG: CommandId = 0x2,
+ On DUT_CR1 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ ./chip-tool administratorcommissioning revoke-commissioning 1 0 --timedInteractionTimeoutMs 1000
+
+ Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
+
+ [1660901039.590962][3045:3045] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002
+ [1660901039.591036][3045:3045] CHIP:ZCL: Received command to close commissioning window
+ [1660901039.591094][3045:3045] CHIP:SVR: Closing pairing window
+ [1660901039.591169][3045:3045] CHIP:IN: SecureSession[0xaaaab010d400]: Released - Type:1 LSID:14411
+
+ Verify cluster-status code 3 On DUT_CR1(chip-tool) Log
+
+
[1650524034.112345][15422:15427] CHIP:DMG: },
[1650524034.112456][15422:15427] CHIP:DMG:
[1650524034.112543][15422:15427] CHIP:DMG: StatusIB =
@@ -219,16 +209,6 @@ tests:
[1650524034.112825][15422:15427] CHIP:DMG: cluster-status = 0x3,
[1650524034.112914][15422:15427] CHIP:DMG: },
[1650524034.113005][15422:15427] CHIP:DMG:
- [1650524034.113084][15422:15427] CHIP:DMG: },
- [1650524034.113176][15422:15427] CHIP:DMG:
- [1650524034.113245][15422:15427] CHIP:DMG: },
- [1650524034.113328][15422:15427] CHIP:DMG:
- [1650524034.113392][15422:15427] CHIP:DMG: ],
- [1650524034.113477][15422:15427] CHIP:DMG:
- [1650524034.113545][15422:15427] CHIP:DMG: InteractionModelRevision = 1
- [1650524034.113610][15422:15427] CHIP:DMG: },
- [1650524034.113780][15422:15427] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002 Status=0x1
- [1650524034.113892][15422:15427] CHIP:TOO: Error: IM Error 0x00000603: Cluster-specific error: 0x03
disabled: true
- label:
@@ -236,43 +216,52 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- Using your DUT controller, write attribute and read attribute to and from TH_CE
-
- Below is the example while using chip tool on second controller,
- ./chip-tool basic write node-label te5new 1 0
-
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
-
-
- Verify read attribute returns the updated value written
- ./chip-tool basic read node-label 2 0
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+ On DUT_CR1 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+ ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
+
+ Verify Write request on TH_CE(all-clusters-app) Log
+
+ [1660894021.901330][2871:2871] CHIP:EM: Handling via exchange: 9616r, Delegate: 0xaaaada21ffc0
+ [1660894021.901426][2871:2871] CHIP:IM: Received Write request
+ [1660894021.901484][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
+ [1660894021.901613][2871:2871] CHIP:DMG: WriteRequestMessage =
+ [1660894021.901676][2871:2871] CHIP:DMG: {
+ [1660894021.901735][2871:2871] CHIP:DMG: suppressResponse = false,
+ [1660894021.901802][2871:2871] CHIP:DMG: timedRequest = false,
+ [1660894021.901864][2871:2871] CHIP:DMG: AttributeDataIBs =
+ [1660894021.901940][2871:2871] CHIP:DMG: [
+ [1660894021.902001][2871:2871] CHIP:DMG: AttributeDataIB =
+ [1660894021.902071][2871:2871] CHIP:DMG: {
+ [1660894021.902136][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894021.902219][2871:2871] CHIP:DMG: {
+ [1660894021.902302][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894021.902394][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894021.902488][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894021.902574][2871:2871] CHIP:DMG: }
+ [1660894021.902827][2871:2871] CHIP:DMG:
+ [1660894021.902912][2871:2871] CHIP:DMG: Data = "te5new" (6 chars),
+ [1660894021.902985][2871:2871] CHIP:DMG: },
+
+ ./chip-tool basic read node-label 2 0 --commissioner-name beta
+
+ Verify read request on TH_CE(all-clusters-app) Log
+
+
+ [1660894142.828718][2871:2871] CHIP:EM: Handling via exchange: 62454r, Delegate: 0xaaaada21ffc0
+ [1660894142.828834][2871:2871] CHIP:IM: Received Read request
+ [1660894142.829023][2871:2871] CHIP:DMG: ReadRequestMessage =
+ [1660894142.829097][2871:2871] CHIP:DMG: {
+ [1660894142.829153][2871:2871] CHIP:DMG: AttributePathIBs =
+ [1660894142.829235][2871:2871] CHIP:DMG: [
+ [1660894142.829306][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894142.829376][2871:2871] CHIP:DMG: {
+ [1660894142.829449][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894142.829532][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894142.829627][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894142.829703][2871:2871] CHIP:DMG: }
+ [1660894142.829777][2871:2871] CHIP:DMG:
disabled: true
- label:
@@ -280,19 +269,21 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
PICS: CADMIN.C.C00.Tx
verification: |
- On your first controller open commissioning widow using ECM.
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing open-commissioning-window 1 1 300 1000 3840
- [1635871373.773447][4322:4328] CHIP:SC: Success status report received. Session was established
- [1635871373.773517][4322:4328] CHIP:IN: New secure session created for device 0x0000000000000001, key 54!!
- [1635871373.773611][4322:4328] CHIP:CTL: OpenCommissioningWindow for device ID 1
- [1635871373.780891][4322:4328] CHIP:DMG: ICR moving to [AddingComm]
- [1635871373.780942][4322:4328] CHIP:DMG: ICR moving to [AddedComma]
- [1635871373.781067][4322:4328] CHIP:IN: Prepared encrypted message 0xaaaae2653d10 to 0x0000000000000001 of type 0x8 and protocolId (0, 1) on exchange 62089i with MessageCounter:0.
- [1635871373.781124][4322:4328] CHIP:IN: Sending encrypted msg 0xaaaae2653d10 with MessageCounter:0 to 0x0000000000000001 at monotonic time: 12945439 msec
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
+
+ [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660901022.112389][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
+
+ Verify Manual pairing code on DUT_CR1(chip-tool) Log
+
+
[1635871373.781269][4322:4328] CHIP:DMG: ICR moving to [CommandSen]
[1635871373.781329][4322:4328] CHIP:CTL: Manual pairing code: [35256543344]
[1635871373.781482][4322:4328] CHIP:CTL: SetupQRCode: [MT:00000CQM00CIWV01J10]
@@ -302,26 +293,29 @@ tests:
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On the 2nd controller using chip-tool , connect using manual code generated by DUT Controller
+ On TH_CR2 send the below command
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example when using chip tool as controller (considering 35256543344 as the manual code generated by DUT controller)
+ (considering 35256543344 as the manual code generated by DUT controller)
./chip-tool pairing code 2 35256543344 --commissioner-name beta
- Verify you got below message
+ Verify whether you got below message in the log of TH_CR2(CHIP-TOOL)
Device commissioning completed with success
disabled: true
- label: "TH_CR3 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On the 3rd controller using chip-tool , connect using manual code generated by DUT Controller
+ On TH_CR3 send the below command
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command with their all-cluster-app and for the second and third commissioners.
- Below is the example when using chip tool as controller (considering 35256543344 as the manual code generated by DUT controller)
+ (considering 35256543344 as the manual code generated by DUT controller)
./chip-tool pairing code 3 35256543344 --commissioner-name gamma
- verify you got the following message in the TH log
+ verify you got the following message in the TH_CR3(chip-tool) log
+
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
diff --git a/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml b/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml
index eea76fb7b1cb0f..b5bec5f1454f45 100644
--- a/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CADMIN_1_8.yaml
@@ -40,7 +40,7 @@ tests:
- label: "DUT_CR1 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- 1. Provision the device using DUT_CR1 controller on the raspi.
+ "1. Provision the TH_CE (all-cluster-app) device using DUT_CR1 (chip-tool ) on the raspi" "
disabled: true
- label:
@@ -48,43 +48,28 @@ tests:
commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On your 1st controller open commissioning widow using BCM.
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
- [1650278416.249347][11064:11069] CHIP:DMG: },
+
+ Verify the Open commisioning window on the TH_CE(all-cluster-app) Log:
+
+ [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
+ [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
+ [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
+
+ Verify success response On DUT_CR1(chip-tool) Log
+
+
[1650278416.249430][11064:11069] CHIP:DMG:
[1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
[1650278416.249581][11064:11069] CHIP:DMG: {
[1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
[1650278416.249738][11064:11069] CHIP:DMG: },
[1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
disabled: true
- label:
@@ -114,11 +99,14 @@ tests:
PIXIT.CADMIN.CwDuration (that was given in step 2) + 10 seconds"
PICS: CADMIN.C
verification: |
- On the 2nd controller using chip-tool , connect to the accessory
+ On TH_CR2 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
- verify you got the following message in the TH log
+ Verify the below message in the TH_CR2(chip-tool) Log:
+
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
@@ -130,27 +118,20 @@ tests:
BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On your first controller open commissioning widow using BCM.
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000
+ Verify the Open commisioning window on the TH_CE(all-cluster-app) Log:
+
+ [1660904553.796857][3537:3537] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000
+ [1660904553.796951][3537:3537] CHIP:ZCL: Received command to open commissioning window
+ [1660904553.797255][3537:3537] CHIP:IN: SecureSession[0xaaab142ef7f0]: Allocated Type:1 LSID:34523
+
+ Verify success response On TH1(all-clusters-app) Log
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
[1650278416.249347][11064:11069] CHIP:DMG: },
[1650278416.249430][11064:11069] CHIP:DMG:
[1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
@@ -158,67 +139,45 @@ tests:
[1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
[1650278416.249738][11064:11069] CHIP:DMG: },
[1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
disabled: true
- label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window"
PICS: CADMIN.C.C02.Tx
verification: |
- On your DUT controller revoke commissioning
+ On DUT_CR1 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
- Below is the example while using chip tool as controller,
/chip-tool administratorcommissioning revoke-commissioning 1 0 --timedInteractionTimeoutMs 1000
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
+ Verify success response On DUT_CR1(CHIP-TOOL) Log
+
[1650278416.249347][11064:11069] CHIP:DMG: },
[1650278416.249430][11064:11069] CHIP:DMG:
[1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
[1650278416.249581][11064:11069] CHIP:DMG: {
[1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
[1650278416.249738][11064:11069] CHIP:DMG: },
- [1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
+
+ Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
+
+ [1660901039.590962][3045:3045] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002
+ [1660901039.591036][3045:3045] CHIP:ZCL: Received command to close commissioning window
+ [1660901039.591094][3045:3045] CHIP:SVR: Closing pairing window
+ [1660901039.591169][3045:3045] CHIP:IN: SecureSession[0xaaaab010d400]: Released - Type:1 LSID:14411
disabled: true
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On the 2nd controller using chip-tool , connect to the accessory
+ On TH_CR2 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
- verify you got the following message in the TH log
+ verify you got the following message in the TH_CR2(CHIP-TOOL) log
+
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
@@ -227,26 +186,25 @@ tests:
- label: "DUT_CR1 sends command to TH_CE to revoke the commissioning window"
PICS: CADMIN.C.C02.Tx
verification: |
- On your 1st controller revoke commissioning
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
/chip-tool administratorcommissioning revoke-commissioning 1 0 --timedInteractionTimeoutMs 1000
- CHIP:DMG: InvokeResponseMessage =
- [1650524034.111241][15422:15427] CHIP:DMG: {
- [1650524034.111316][15422:15427] CHIP:DMG: suppressResponse = false,
- [1650524034.111383][15422:15427] CHIP:DMG: InvokeResponseIBs =
- [1650524034.111464][15422:15427] CHIP:DMG: [
- [1650524034.111531][15422:15427] CHIP:DMG: InvokeResponseIB =
- [1650524034.111643][15422:15427] CHIP:DMG: {
- [1650524034.111714][15422:15427] CHIP:DMG: CommandStatusIB =
- [1650524034.111803][15422:15427] CHIP:DMG: {
- [1650524034.111886][15422:15427] CHIP:DMG: CommandPathIB =
- [1650524034.111979][15422:15427] CHIP:DMG: {
- [1650524034.112072][15422:15427] CHIP:DMG: EndpointId = 0x0,
- [1650524034.112167][15422:15427] CHIP:DMG: ClusterId = 0x3c,
- [1650524034.112257][15422:15427] CHIP:DMG: CommandId = 0x2,
+ Verify success response On TH1(all-clusters-app) Log
+
+
+ Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
+
+ [1660901039.590962][3045:3045] CHIP:DMG: Received command for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002
+ [1660901039.591036][3045:3045] CHIP:ZCL: Received command to close commissioning window
+ [1660901039.591094][3045:3045] CHIP:SVR: Closing pairing window
+ [1660901039.591169][3045:3045] CHIP:IN: SecureSession[0xaaaab010d400]: Released - Type:1 LSID:14411
+
+ Verify cluster-status code 3 On DUT_CR1(CHIP-TOOL) Log
+
+
[1650524034.112345][15422:15427] CHIP:DMG: },
[1650524034.112456][15422:15427] CHIP:DMG:
[1650524034.112543][15422:15427] CHIP:DMG: StatusIB =
@@ -255,16 +213,6 @@ tests:
[1650524034.112825][15422:15427] CHIP:DMG: cluster-status = 0x3,
[1650524034.112914][15422:15427] CHIP:DMG: },
[1650524034.113005][15422:15427] CHIP:DMG:
- [1650524034.113084][15422:15427] CHIP:DMG: },
- [1650524034.113176][15422:15427] CHIP:DMG:
- [1650524034.113245][15422:15427] CHIP:DMG: },
- [1650524034.113328][15422:15427] CHIP:DMG:
- [1650524034.113392][15422:15427] CHIP:DMG: ],
- [1650524034.113477][15422:15427] CHIP:DMG:
- [1650524034.113545][15422:15427] CHIP:DMG: InteractionModelRevision = 1
- [1650524034.113610][15422:15427] CHIP:DMG: },
- [1650524034.113780][15422:15427] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0002 Status=0x1
- [1650524034.113892][15422:15427] CHIP:TOO: Error: IM Error 0x00000603: Cluster-specific error: 0x03
disabled: true
- label:
@@ -272,42 +220,53 @@ tests:
Information Clusters NodeLabel mandatory attribute"
PICS: BINFO.C.A0005
verification: |
- Using 1st controller, write attribute and read attribute to and from TH_CE
-
- Below is the example while using chip tool on second controller,
- ./chip-tool basic write node-label te5new 2 0
-
- CHIP:DMG: WriteResponseMessage =
- [1649245940.788522][10110:10115] CHIP:DMG: {
- [1649245940.788577][10110:10115] CHIP:DMG: AttributeStatusIBs =
- [1649245940.788653][10110:10115] CHIP:DMG: [
- [1649245940.788713][10110:10115] CHIP:DMG: AttributeStatusIB =
- [1649245940.788787][10110:10115] CHIP:DMG: {
- [1649245940.788852][10110:10115] CHIP:DMG: AttributePathIB =
- [1649245940.788931][10110:10115] CHIP:DMG: {
- [1649245940.789009][10110:10115] CHIP:DMG: Endpoint = 0x0,
- [1649245940.789143][10110:10115] CHIP:DMG: Cluster = 0x28,
- [1649245940.789228][10110:10115] CHIP:DMG: Attribute = 0x0000_0005,
- [1649245940.789313][10110:10115] CHIP:DMG: }
- [1649245940.789388][10110:10115] CHIP:DMG:
- [1649245940.789454][10110:10115] CHIP:DMG: StatusIB =
- [1649245940.789519][10110:10115] CHIP:DMG: {
- [1649245940.789588][10110:10115] CHIP:DMG: status = 0x00 (SUCCESS),
- [1649245940.789654][10110:10115] CHIP:DMG: },
- [1649245940.789719][10110:10115] CHIP:DMG:
- [1649245940.789778][10110:10115] CHIP:DMG: },
- [1649245940.789841][10110:10115] CHIP:DMG:
- [1649245940.789885][10110:10115] CHIP:DMG: ],
- [1649245940.789941][10110:10115] CHIP:DMG:
- [1649245940.789984][10110:10115] CHIP:DMG: InteractionModelRevision = 1
- [1649245940.790033][10110:10115] CHIP:DMG: }
- [1649245940.790167][10110:10115] CHIP:DMG: WriteClient moving to [AwaitingDe]
-
- Verify read attribute returns the updated value written
- ./chip-tool basic read node-label 2 0
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 3061847068
- [1649245950.006849][10116:10121] CHIP:TOO: NodeLabel: te5new
- [1649245950.007024][10116:10121] CHIP:EM: Sending Standalone Ack for MessageCounter:12495101 on exchange 24816i
+ On DUT_CR1 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
+
+ ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta
+
+ Verify Write request on TH_CE(all-clusters-app) Log
+
+ [1660894021.901330][2871:2871] CHIP:EM: Handling via exchange: 9616r, Delegate: 0xaaaada21ffc0
+ [1660894021.901426][2871:2871] CHIP:IM: Received Write request
+ [1660894021.901484][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
+ [1660894021.901613][2871:2871] CHIP:DMG: WriteRequestMessage =
+ [1660894021.901676][2871:2871] CHIP:DMG: {
+ [1660894021.901735][2871:2871] CHIP:DMG: suppressResponse = false,
+ [1660894021.901802][2871:2871] CHIP:DMG: timedRequest = false,
+ [1660894021.901864][2871:2871] CHIP:DMG: AttributeDataIBs =
+ [1660894021.901940][2871:2871] CHIP:DMG: [
+ [1660894021.902001][2871:2871] CHIP:DMG: AttributeDataIB =
+ [1660894021.902071][2871:2871] CHIP:DMG: {
+ [1660894021.902136][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894021.902219][2871:2871] CHIP:DMG: {
+ [1660894021.902302][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894021.902394][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894021.902488][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894021.902574][2871:2871] CHIP:DMG: }
+ [1660894021.902827][2871:2871] CHIP:DMG:
+ [1660894021.902912][2871:2871] CHIP:DMG: Data = "te5new" (6 chars),
+ [1660894021.902985][2871:2871] CHIP:DMG: },
+
+ ./chip-tool basic read node-label 2 0 --commissioner-name beta
+
+ Verify read request on TH_CE(all-clusters-app) Log
+
+
+ [1660894142.828718][2871:2871] CHIP:EM: Handling via exchange: 62454r, Delegate: 0xaaaada21ffc0
+ [1660894142.828834][2871:2871] CHIP:IM: Received Read request
+ [1660894142.829023][2871:2871] CHIP:DMG: ReadRequestMessage =
+ [1660894142.829097][2871:2871] CHIP:DMG: {
+ [1660894142.829153][2871:2871] CHIP:DMG: AttributePathIBs =
+ [1660894142.829235][2871:2871] CHIP:DMG: [
+ [1660894142.829306][2871:2871] CHIP:DMG: AttributePathIB =
+ [1660894142.829376][2871:2871] CHIP:DMG: {
+ [1660894142.829449][2871:2871] CHIP:DMG: Endpoint = 0x0,
+ [1660894142.829532][2871:2871] CHIP:DMG: Cluster = 0x28,
+ [1660894142.829627][2871:2871] CHIP:DMG: Attribute = 0x0000_0005,
+ [1660894142.829703][2871:2871] CHIP:DMG: }
+ [1660894142.829777][2871:2871] CHIP:DMG:
disabled: true
- label:
@@ -316,28 +275,21 @@ tests:
BCM"
PICS: CADMIN.C.C01.Tx
verification: |
- On 1st controller open commissioning widow using BCM.
+ On DUT_CR1 send the below command
- Below is the example while using chip tool as controller,
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000
+ Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log
+
+ [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
+ [1660901022.112389][3045:3045] CHIP:ZCL: Commissioning window is now open
+ [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
+
+ Verify Manual pairing code on DUT_CR1(chip-tool) Log
- CHIP:DMG: InvokeResponseMessage =
- [1650278416.248379][11064:11069] CHIP:DMG: {
- [1650278416.248436][11064:11069] CHIP:DMG: suppressResponse = false,
- [1650278416.248495][11064:11069] CHIP:DMG: InvokeResponseIBs =
- [1650278416.248570][11064:11069] CHIP:DMG: [
- [1650278416.248630][11064:11069] CHIP:DMG: InvokeResponseIB =
- [1650278416.248718][11064:11069] CHIP:DMG: {
- [1650278416.248783][11064:11069] CHIP:DMG: CommandStatusIB =
- [1650278416.248860][11064:11069] CHIP:DMG: {
- [1650278416.248931][11064:11069] CHIP:DMG: CommandPathIB =
- [1650278416.249011][11064:11069] CHIP:DMG: {
- [1650278416.249100][11064:11069] CHIP:DMG: EndpointId = 0x0,
- [1650278416.249186][11064:11069] CHIP:DMG: ClusterId = 0x3c,
- [1650278416.249268][11064:11069] CHIP:DMG: CommandId = 0x1,
[1650278416.249347][11064:11069] CHIP:DMG: },
[1650278416.249430][11064:11069] CHIP:DMG:
[1650278416.249501][11064:11069] CHIP:DMG: StatusIB =
@@ -345,37 +297,32 @@ tests:
[1650278416.249664][11064:11069] CHIP:DMG: status = 0x00 (SUCCESS),
[1650278416.249738][11064:11069] CHIP:DMG: },
[1650278416.249823][11064:11069] CHIP:DMG:
- [1650278416.249889][11064:11069] CHIP:DMG: },
- [1650278416.249969][11064:11069] CHIP:DMG:
- [1650278416.250035][11064:11069] CHIP:DMG: },
- [1650278416.250113][11064:11069] CHIP:DMG:
- [1650278416.250169][11064:11069] CHIP:DMG: ],
- [1650278416.250241][11064:11069] CHIP:DMG:
- [1650278416.250298][11064:11069] CHIP:DMG: InteractionModelRevision = 1
- [1650278416.250355][11064:11069] CHIP:DMG: },
- [1650278416.250535][11064:11069] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x0
- [1650278416.250634][11064:11069] CHIP:DMG: ICR moving to [AwaitingDe]
disabled: true
- label: "TH_CR2 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On the 2nd controller using chip-tool , connect to the accessory
+ On TH_CR2 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta
- Verify you got below message
+ Verify whether you got below message in the log of TH_CR2(CHIP-TOOL)
Device commissioning completed with success
disabled: true
- label: "TH_CR3 starts a commissioning process with TH_CE"
PICS: CADMIN.C
verification: |
- On the 3rd controller using chip-tool , connect to the accessory
+ On TH_CR3 send the below command
+
+ Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers
./chip-tool pairing onnetwork 3 20202021 --commissioner-name gamma
- verify you got the following message in the TH log
+ verify you got the following message in the TH_CR3(all-clusters-app) log
+
CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
CHIP:TOO: Secure Pairing Failed
CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
diff --git a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml
index 5477760c2ef1bf..1cc684a78110d2 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_1_1.yaml
@@ -14,6 +14,9 @@
name: 25.1.1. [TC-CC-1.1] Global attributes with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
@@ -36,6 +39,15 @@ tests:
constraints:
type: int16u
+ - label: "Read the global attribute: FeatureMap"
+ PICS: ( !CC.S.F00 && !CC.S.F01 && !CC.S.F02 && !CC.S.F03 )
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: FeatureMap"
PICS: ( CC.S.F00 || CC.S.F01 || CC.S.F02 || CC.S.F03 )
command: "readAttribute"
@@ -43,7 +55,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 31
- label: "Read the global attribute: AttributeList"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml
index 5ec62e14fd1454..a629614f4b3795 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml
@@ -14,6 +14,9 @@
name: 25.3.2. [TC-CC-3.2] Hue Move functionality with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml
index f34c9bf733dc81..c3e2ad14f2714e 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml
@@ -14,6 +14,9 @@
name: 25.3.3. [TC-CC-3.3] Hue Step functionality with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml
index 861d16be0b72aa..2f4fe4a27f5e9b 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml
@@ -14,6 +14,9 @@
name: 25.3.5. [TC-CC-4.1] Saturation MoveTo functionality with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml
index 4f275574c0f43f..f338768af6aa88 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml
@@ -14,6 +14,9 @@
name: 25.3.6. [TC-CC-4.2] Saturation Move functionality with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml
index e7b72f1ef8184b..f66cfa2afa84bc 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml
@@ -14,6 +14,9 @@
name: 25.3.7. [TC-CC-4.3] Saturation Step functionality with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml
index f855351c446655..5de1f4e59a1f19 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml
@@ -15,6 +15,9 @@
name:
25.3.8. [TC-CC-4.4] MoveToHueAndSaturation functionality with server as DUT
+PICS:
+ - CC.S
+
config:
nodeId: 0x12344321
cluster: "Color Control"
diff --git a/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml
index 2a051a0531c254..1660f93e10be43 100644
--- a/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CGEN_2_2.yaml
@@ -30,7 +30,7 @@ tests:
numTrustedRootsOriginal"
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TH reads TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658482014.176273][26852:26857] CHIP:DMG: }
[1658482014.176359][26852:26857] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668
@@ -45,7 +45,7 @@ tests:
PICS: CGEN.S.A0001
verification: |
./chip-tool generalcommissioning read basic-commissioning-info 1 0
- On TH1 verify that TH reads BasicCommissioningInfo attribute from DUT
+ On TH1 verify the BasicCommissioningInfo attribute from DUT
[1658482413.950617][27013:27018] CHIP:DMG: }
[1658482413.950753][27013:27018] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0001 DataVersion: 2195123768
@@ -63,7 +63,7 @@ tests:
PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 1 1 0
- On TH1 verify that TH reads ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafe command from DUT
[1658482454.092676][27036:27041] CHIP:DMG: },
[1658482454.092739][27036:27041] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
@@ -81,7 +81,7 @@ tests:
verification: |
./chip-tool generalcommissioning read breadcrumb 1 0
- On TH1 Verify that the breadcrumb attribute value
+ On TH1 Verify the breadcrumb attribute value
[1658482504.991161][27058:27064] CHIP:DMG: }
[1658482504.991205][27058:27064] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2195123769
[1658482504.991215][27058:27064] CHIP:TOO: Breadcrumb: 1
@@ -100,8 +100,9 @@ tests:
Once build completes
3. cd out/debug
4. ./chip-cert gen-cert --type r --subject-chip-id CACACACA00000001 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key Chip-Root-Key.txt --out Chip-Root-Cert.txt --out-format chip-hex
- 5. cat Chip-Root-Key.txt
+ 5. cat Chip-Root-Cert.txt
+ While adding new add-trusted-root-certificate please use the above generated new root key
./chip-tool operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0
@@ -120,7 +121,7 @@ tests:
Operational Credentials cluster"
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658482718.809139][27144:27149] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668
[1658482718.809271][27144:27149] CHIP:TOO: TrustedRootCertificates: 2 entries
[1658482718.809327][27144:27149] CHIP:TOO: [1]: 1530010100240201370324140018260480228127260580254D3A370624140018240701240801300941045B7F0549925832A9A1294607ADC4695EA3477D3DC9E584431F53A60FC57629C6A616814389C479D3E059D931600F62CA328087462582A350AD015B32756DDC69370A3501290118240260300414A1BBCB2500D57101023ACB4AFD7EBD4FC0487AF3300514A1BBCB2500D57101023ACB4AFD7EBD4FC0487AF318300B40E878725378AEA74A5F6CB6267CB9F7ACD0DACF26741FB24356379D850DD5F23A746281C845FD76D89E97AB188E9BF8A98047B43E3E868A5A8B8E50BAE62F116F18
@@ -133,7 +134,7 @@ tests:
"TH1 waits for PIXIT.CGEN.FailsafeExpiryLengthSeconds to ensure the
failsafe timer has expired"
verification: |
- The expiry length is mentioned in above step as 900 secs so wait till 60secs and proced for next step
+ The expiry length is mentioned in above step as 900 secs so wait till 900secs and proced for next step
disabled: true
- label:
@@ -141,7 +142,7 @@ tests:
Operational Credentials cluster"
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658483361.121153][27343:27348] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668
[1658483361.121212][27343:27348] CHIP:TOO: TrustedRootCertificates: 1 entries
[1658483361.121257][27343:27348] CHIP:TOO: [1]: 1530010100240201370324140018260480228127260580254D3A370624140018240701240801300941045B7F0549925832A9A1294607ADC4695EA3477D3DC9E584431F53A60FC57629C6A616814389C479D3E059D931600F62CA328087462582A350AD015B32756DDC69370A3501290118240260300414A1BBCB2500D57101023ACB4AFD7EBD4FC0487AF3300514A1BBCB2500D57101023ACB4AFD7EBD4FC0487AF318300B40E878725378AEA74A5F6CB6267CB9F7ACD0DACF26741FB24356379D850DD5F23A746281C845FD76D89E97AB188E9BF8A98047B43E3E868A5A8B8E50BAE62F116F18
@@ -153,7 +154,7 @@ tests:
verification: |
./chip-tool generalcommissioning read breadcrumb 1 0
- On TH1 Verify that the breadcrumb attribute value
+ On TH1 Verify the breadcrumb attribute value
[1658483428.627422][27375:27380] CHIP:DMG: }
[1658483428.627566][27375:27380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2195123770
[1658483428.627610][27375:27380] CHIP:TOO: Breadcrumb: 0
@@ -163,6 +164,51 @@ tests:
- label: "TH1 repeats steps 3 through 5"
verification: |
TH1 repeats steps 3 through 5
+
+ To repeat Step 3 please send below mentioned command
+ ./chip-tool generalcommissioning arm-fail-safe 900 1 1 0
+ On TH1 verify that TH reads ArmFailSafe command from DUT
+
+ [1658482454.092676][27036:27041] CHIP:DMG: },
+ [1658482454.092739][27036:27041] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
+ [1658482454.092777][27036:27041] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
+ [1658482454.092821][27036:27041] CHIP:TOO: ArmFailSafeResponse: {
+ [1658482454.092853][27036:27041] CHIP:TOO: errorCode: 0
+ [1658482454.092866][27036:27041] CHIP:TOO: debugText:
+ [1658482454.092878][27036:27041] CHIP:TOO: }
+ [1658482454.092910][27036:27041] CHIP:DMG: ICR moving to [AwaitingDe]
+ [1658482454.092955][27036:27041] CHIP:EM: Sending Standalone Ack for MessageCounter:147679912 on exchange 8754i
+
+ To repeat Step 4 please send below mentioned command
+ ./chip-tool generalcommissioning read breadcrumb 1 0
+
+ On TH1 Verify that the breadcrumb attribute value
+ [1658482504.991161][27058:27064] CHIP:DMG: }
+ [1658482504.991205][27058:27064] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2195123769
+ [1658482504.991215][27058:27064] CHIP:TOO: Breadcrumb: 1
+ [1658482504.991243][27058:27064] CHIP:EM: Sending Standalone Ack for MessageCounter:52534281 on exchange 8370i
+
+ To repeat Step 5 please send below mentioned command
+ To generate TrustedRootCertificate, need to buld chip-cert in connectedhomeip by giving below mentioned commands
+ 1. gn gen --check out/debug
+ 2. ninja -v -C out/debug chip-cert
+ Once build completes
+ 3. cd out/debug
+ 4. ./chip-cert gen-cert --type r --subject-chip-id CACACACA00000001 --valid-from ""2020-10-15 14:23:43"" --lifetime 7305 --out-key Chip-Root-Key.txt --out Chip-Root-Cert.txt --out-format chip-hex
+ 5. cat Chip-Root-Cert.txt
+
+ While adding new add-trusted-root-certificate please use the above generated new root key
+
+ ./chip-tool operationalcredentials add-trusted-root-certificate hex:1530010828c376ebc17f21512402013703271401000000cacacaca182604ef171b2726056eb5b94c3706271401000000cacacaca182407012408013009410452c19fd9d329a738fd65722a8309fa68bcaa9ffe87d8114b802c922e5066d0b2f0573b89b38bf98fc9c424ab8ffdabcb18d42e623d82a02d0ca0c062ccadb4bc370a350129011824026030041457934de5405e9a40eacb86ee647e583141ae78f430051457934de5405e9a40eacb86ee647e583141ae78f418300b40a0b0d57bddbc7bcf44480a8b7bd0231d54ccacd68d90efb67b7aa3206adbd268725092992a0388c8e934504178613c5b932d422eed7463f38fd82aaa429b574a18 1 0
+
+
+ on TH1, Verify that the DUT responds with SUCCESS
+
+
+ [1658482609.069728][27095:27100] CHIP:DMG: InteractionModelRevision = 1
+ [1658482609.069733][27095:27100] CHIP:DMG: },
+ [1658482609.069760][27095:27100] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003E Command=0x0000_000B Status=0x0
+ [1658482609.069779][27095:27100] CHIP:DMG: ICR moving to [AwaitingDe]
disabled: true
- label:
@@ -171,7 +217,7 @@ tests:
PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx
verification: |
./chip-tool generalcommissioning arm-fail-safe 0 1 1 0
- On TH1 verify that ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafeResponse with ErrorCode as "OK"(0) and DebugText argument is of type string with max length 512 or empty from DUT
[1658483503.637026][27397:27402] CHIP:DMG: },
[1658483503.637054][27397:27402] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658483503.637074][27397:27402] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
@@ -186,6 +232,21 @@ tests:
- label: "Repeat steps 8 through 9"
verification: |
Repeat steps 8 through 9
+ To repeat Step 8 please send below mentioned command
+ ./chip-tool operationalcredentials read trusted-root-certificates 1 0
+ On TH1 verify the TrustedRootCertificates entries from DUT
+ [1658483361.121153][27343:27348] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687668
+ [1658483361.121212][27343:27348] CHIP:TOO: TrustedRootCertificates: 1 entries
+ [1658483361.121257][27343:27348] CHIP:TOO: [1]: 1530010100240201370324140018260480228127260580254D3A370624140018240701240801300941045B7F0549925832A9A1294607ADC4695EA3477D3DC9E584431F53A60FC57629C6A616814389C479D3E059D931600F62CA328087462582A350AD015B32756DDC69370A3501290118240260300414A1BBCB2500D57101023ACB4AFD7EBD4FC0487AF3300514A1BBCB2500D57101023ACB4AFD7EBD4FC0487AF318300B40E878725378AEA74A5F6CB6267CB9F7ACD0DACF26741FB24356379D850DD5F23A746281C845FD76D89E97AB188E9BF8A98047B43E3E868A5A8B8E50BAE62F116F18
+ [1658483361.121342][27343:27348] CHIP:EM: Sending Standalone Ack for MessageCounter:8407614 on exchange 22615i
+
+ To repeat Step 9 please send below mentioned command
+ ./chip-tool generalcommissioning read breadcrumb 1 0
+ On TH1 Verify the breadcrumb attribute value
+ [1658483428.627422][27375:27380] CHIP:DMG: }
+ [1658483428.627566][27375:27380] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0000 DataVersion: 2195123770
+ [1658483428.627610][27375:27380] CHIP:TOO: Breadcrumb: 0
+ [1658483428.627696][27375:27380] CHIP:EM: Sending Standalone Ack for MessageCounter:242324966 on exchange 46358i
disabled: true
- label:
@@ -222,8 +283,8 @@ tests:
- label: "TH2 opens a PASE session with the DUT"
verification: |
- ./chip-tool pairing code 1 36116400648
- On TH2 verify that the PASE established successfully
+ ./chip-tool pairing code 2 36116400648 --commissioner-name beta
+ while pairing On TH2 verify that the PASE established successfully
[1658483765.114083][8082:8087] CHIP:CTL: Stopping commissioning discovery over DNS-SD
[1658483765.114107][8082:8087] CHIP:TOO: Pairing Success
[1658483765.114130][8082:8087] CHIP:TOO: PASE establishment successful
@@ -262,7 +323,7 @@ tests:
as nocs"
verification: |
./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 0
- On TH1 verify that TH reads nocs entries from DUT
+ On TH1 verify the nocs entries from DUT
[1658484050.459056][27576:27582] CHIP:DMG: }
[1658484050.459316][27576:27582] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 527687672
[1658484050.459362][27576:27582] CHIP:TOO: NOCs: 2 entries
@@ -357,7 +418,7 @@ tests:
cluster using a non-fabric-filtered read"
verification: |
./chip-tool operationalcredentials read nocs 1 0
- On TH1 verify that TH reads nocs entries from DUT
+ On TH1 verify the nocs entries from DUT
[1658484226.587652][27658:27663] CHIP:DMG: }
[1658484226.587884][27658:27663] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672
[1658484226.587936][27658:27663] CHIP:TOO: TrustedRootCertificates: 2 entries
@@ -371,7 +432,7 @@ tests:
cluster using a non-fabric-filtered read"
verification: |
./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
- On TH1 verify that TH reads fabrics list from DUT
+ On TH1 verify the fabrics list from DUT
[1658484405.562192][27710:27716] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 527687672
[1658484405.562321][27710:27716] CHIP:TOO: Fabrics: 2 entries
[1658484405.562395][27710:27716] CHIP:TOO: [1]: {
@@ -398,7 +459,7 @@ tests:
Operational Credentials cluster"
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TH reads TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658484601.144043][28501:28506] CHIP:DMG: InteractionModelRevision = 1
[1658484601.144050][28501:28506] CHIP:DMG: }
[1658484601.144213][28501:28506] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672
@@ -413,7 +474,12 @@ tests:
- label: "TH2 fully commissions the DUT"
verification: |
- verification step to be updated.
+ While pairing between DUT and TH2, On TH2 verify that commissioning completes successfully
+ [1660748637.271112][21572:21577] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005
+ [1660748637.271128][21572:21577] CHIP:CTL: Received CommissioningComplete response, errorCode=0
+ [1660748637.271139][21572:21577] CHIP:CTL: Successfully finished commissioning step "SendComplete"
+ [1660748637.271146][21572:21577] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
+ [1660748637.271156][21572:21577] CHIP:CTL: Performing next commissioning step "Cleanup"
disabled: true
- label:
@@ -428,10 +494,10 @@ tests:
Once build completes
3. cd out/debug
4. ./chip-cert gen-cert --type r --subject-chip-id CACACACA00000001 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key Chip-Root-Key.txt --out Chip-Root-Cert.txt --out-format chip-hex
- 5. cat Chip-Root-Key.txt
+ 5. cat Chip-Root-Cert.txt
- ./chip-tool operationalcredentials add-trusted-root-certificate 04614D01D2897082D7F85832CE00AC787A5A221A6F7B19C4202C069E3D70DDC615E5B9436919266360AC847F2FAB3EAEE3902B43812A13D18C061CC5028EADB775583DCB1008E4CEBFF810EEB2BC60FF7A3CF954C57101798443DA39E75F5FFDEA 2 0
+ ./chip-tool operationalcredentials add-trusted-root-certificate 04614D01D2897082D7F85832CE00AC787A5A221A6F7B19C4202C069E3D70DDC615E5B9436919266360AC847F2FAB3EAEE3902B43812A13D18C061CC5028EADB775583DCB1008E4CEBFF810EEB2BC60FF7A3CF954C57101798443DA39E75F5FFDEA 2 0 --commissioner-name beta
On TH2 verify that DUT responds with FAILSAFE_REQUIRED
[1658484766.785916][8132:8137] CHIP:DMG:
[1658484766.785961][8132:8137] CHIP:DMG: InteractionModelRevision = 1
@@ -446,7 +512,7 @@ tests:
cluster using a non-fabric-filtered read"
verification: |
./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0
- On TH1 verify that TH reads fabrics list from DUT
+ On TH1 verify the fabrics list from DUT
[1658484969.071455][28631:28636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 527687672
[1658484969.071527][28631:28636] CHIP:TOO: NOCs: 2 entries
[1658484969.071587][28631:28636] CHIP:TOO: [1]: {
@@ -469,7 +535,7 @@ tests:
PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx
verification: |
./chip-tool generalcommissioning arm-fail-safe 60 1 1 0
- On TH1 verify that TH reads ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafe command from DUT
[1658485224.066397][28732:28737] CHIP:DMG: InteractionModelRevision = 1
[1658485224.066407][28732:28737] CHIP:DMG: },
[1658485224.066441][28732:28737] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
@@ -504,7 +570,7 @@ tests:
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TH reads TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658485696.739931][28920:28925] CHIP:DMG: InteractionModelRevision = 1
[1658485696.739936][28920:28925] CHIP:DMG: }
[1658485696.740122][28920:28925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672
@@ -521,7 +587,7 @@ tests:
PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 1 1 0
- On TH1 verify that TH reads ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafe command from DUT
[1658486181.080260][29218:29223] CHIP:DMG: },
[1658486181.080289][29218:29223] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658486181.080319][29218:29223] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
@@ -557,8 +623,8 @@ tests:
value as 1"
PICS: CGEN.S.C00.Rsp && CGEN.S.C01.Tx
verification: |
- ./chip-tool generalcommissioning arm-fail-safe 900 1 2 0
- On TH2 verify that TH reads ArmFailSafe command from DUT
+ ./chip-tool generalcommissioning arm-fail-safe 900 1 2 0 --commissioner-name beta
+ On TH2 verify the ArmFailSafe command from DUT
[1658486289.473526][8200:8205] CHIP:DMG: InteractionModelRevision = 1
[1658486289.473563][8200:8205] CHIP:DMG: },
[1658486289.473639][8200:8205] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
@@ -577,7 +643,7 @@ tests:
PICS: CGEN.S.C00.Rsp
verification: |
./chip-tool generalcommissioning arm-fail-safe 0 1 1 0
- On TH1 verify that TH reads ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafe command from DUT
[1658486510.232274][29388:29393] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658486510.232302][29388:29393] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
[1658486510.232334][29388:29393] CHIP:TOO: ArmFailSafeResponse: {
@@ -594,7 +660,7 @@ tests:
PICS: CGEN.S.C00.Rsp
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 1 1 0
- On TH1 verify that TH reads ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafe command from DUT
[1658486418.024554][29343:29348] CHIP:DMG: InteractionModelRevision = 1
[1658486418.024559][29343:29348] CHIP:DMG: },
[1658486418.024588][29343:29348] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
@@ -624,7 +690,7 @@ tests:
Once build completes
3. cd out/debug
4. ./chip-cert gen-cert --type r --subject-chip-id CACACACA00000001 --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key Chip-Root-Key.txt --out Chip-Root-Cert.txt --out-format chip-hex
- 5. cat Chip-Root-Key.txt
+ 5. cat Chip-Root-Cert.txt
@@ -642,7 +708,7 @@ tests:
Operational Credentials cluster"
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TH reads TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658487613.357548][30232:30237] CHIP:DMG: }
[1658487613.358000][30232:30237] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672
@@ -668,7 +734,7 @@ tests:
PICS: CGEN.S.C00.Rsp
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 0 1 0
- On TH1 verify that TH reads ArmFailSafe command from DUT
+ On TH1 verify the ArmFailSafe command from DUT
[1658487663.593485][30268:30273] CHIP:DMG: InteractionModelRevision = 1
[1658487663.593506][30268:30273] CHIP:DMG: },
@@ -696,7 +762,7 @@ tests:
Operational Credentials cluster"
verification: |
./chip-tool operationalcredentials read trusted-root-certificates 1 0
- On TH1 verify that TH reads TrustedRootCertificates entries from DUT
+ On TH1 verify the TrustedRootCertificates entries from DUT
[1658489869.278413][31188:31193] CHIP:DMG: }
[1658489869.278997][31188:31193] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 527687672
[1658489869.279090][31188:31193] CHIP:TOO: TrustedRootCertificates: 2 entries
diff --git a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml
index fa5005b3600bba..a988c23d18dc14 100644
--- a/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CHANNEL_1_6.yaml
@@ -40,6 +40,15 @@ tests:
constraints:
type: int16u
+ - label: "Read the global attribute: FeatureMap"
+ PICS: ( !CHANNEL.S.CL && !CHANNEL.S.LI )
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: FeatureMap"
PICS: CHANNEL.S.CL || CHANNEL.S.LI
command: "readAttribute"
@@ -47,7 +56,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 3
- label: "Read the global attribute: AttributeList"
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml
index 0d282af563100f..63861455bce4fd 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_12.yaml
@@ -26,6 +26,23 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT on Thread setup"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 2"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label:
"During the commissioning process, TH and DUT, TH sends ArmFailSafe
command to the DUT"
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml
index ee7443197417c5..68bbd8f20f9910 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_13.yaml
@@ -26,6 +26,73 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ ./chip-tool descriptor read server-list 1 0
+
+ Verify the "server-list" on the TH(Chip-tool) log
+
+ [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415
+ [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries
+ [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3
+ [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4
+ [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29
+ [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30
+ [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31
+ [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40
+ [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42
+ [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43
+ [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44
+ [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45
+ [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46
+ [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48
+ [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49
+ [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50
+ [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51
+ [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52
+ [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53
+ [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54
+ [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55
+ [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60
+ [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62
+ [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63
+ [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64
+ [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65
+ [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029
+ [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 1"
+ verification: |
+ ./chip-tool networkcommissioning read feature-map 1 0
+
+ Verify the "feature-map" on the TH(Chip-tool) log
+
+ [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167
+ [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1
+ [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i
+ disabled: true
+
+ - label:
+ "MaxNetworks attribute value is at least 4 which is saved as
+ MaxNetworksValue for future use"
+ verification: |
+ The test case is not verifiable. As MaxNetworks value is 1 but expected is 4
+
+ ./chip-tool networkcommissioning read max-networks 1 0
+
+ [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167
+ [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1
+ [1653476960.303641][30164:30169] CHIP:EM: Sending Standalone Ack for MessageCounter:2083922 on exchange 45120i
+ disabled: true
+
- label:
"TH sends ArmFailSafe command to the DUT
with ExpiryLengthSeco nds set to 900"
@@ -68,8 +135,8 @@ tests:
disabled: true
- label:
- "TH calculates the midpoint of the network list
- as floor((MaxNetwor ksValue + 1)/2) and saves as Midpoint"
+ "TH calculates the midpoint of the network list as floor((MaxNetwor
+ ksValue + 1)/2) and saves as Midpoint"
verification: |
The test case is not verifiable in RPI platform. As MaxNetworks value is 1 but expected is 4
( Pre-Condition)
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml
index 637f12813fa436..db445de96a72be 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_14.yaml
@@ -26,6 +26,73 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT on Thread setup"
+ verification: |
+
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ ./chip-tool descriptor read server-list 1 0
+
+ Verify the "server-list" on the TH(Chip-tool) log
+
+ [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415
+ [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries
+ [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3
+ [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4
+ [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29
+ [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30
+ [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31
+ [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40
+ [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42
+ [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43
+ [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44
+ [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45
+ [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46
+ [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48
+ [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49
+ [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50
+ [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51
+ [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52
+ [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53
+ [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54
+ [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55
+ [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60
+ [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62
+ [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63
+ [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64
+ [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65
+ [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029
+ [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 2"
+ verification: |
+ ./chip-tool networkcommissioning read feature-map 1 0
+
+ Verify the "feature-map" on the TH(Chip-tool) log
+
+ [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167
+ [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1
+ [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i
+ disabled: true
+
+ - label:
+ "MaxNetworks attribute value is at least 4 which is saved as
+ MaxNetworksValue for future use"
+ verification: |
+ The test case is not verifiable. As MaxNetworks value is 1 but expected is 4
+
+ ./chip-tool networkcommissioning read max-networks 1 0
+
+ [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167
+ [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1
+ [1653476960.303641][30164:30169] CHIP:EM: Sending Standalone Ack for MessageCounter:2083922 on exchange 45120i
+ disabled: true
+
- label:
"TH sends ArmFailSafe command to the DUT
with ExpiryLengthSeco nds set to 900"
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml
index 3519c474b73ec3..4c97f68359c397 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_15.yaml
@@ -26,6 +26,35 @@ config:
endpoint: 0
tests:
+ - label: "Factory Reset the DUT"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 1"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "MaxNetworks attribute value is at least 1 which is saved as
+ MaxNetworksValue for future use"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label:
"TH sends ArmFailSafe command to the DUT with
the ExpiryLengthSeco nds field set to 900"
@@ -48,7 +77,7 @@ tests:
"TH sends RemoveNetwork Command to the DUT with NetworkID
field set to PIXIT.CNET.WIFI_ 2ND_ACCESSPOIN T_SSID, which does
not match the provisioned network, and Breadcrumb field set to 1"
- PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx
+ PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx
verification: |
./chip-tool networkcommissioning remove-network hex: 1 0
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml
index 7963d5e3a75fca..c8de75528e18e3 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_16.yaml
@@ -26,6 +26,35 @@ config:
endpoint: 0
tests:
+ - label: "Factory Reset the DUT"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "Commission TH and DUT to setup the Thread"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 2"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "MaxNetworks attribute value is at least 1 which is saved as
+ MaxNetworksValue for future use"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label: "TH sends ArmFailSafe command to the DUT"
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 0 54 0
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml
index 5e70a7db0f11b4..ea25d1506d0157 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_17.yaml
@@ -31,6 +31,11 @@ tests:
Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label: "DUT reads the MaxNetworks attribute from the TH"
PICS: CNET.S.A0000
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml
index b21221f902dba5..e43c2b5422c02b 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_18.yaml
@@ -31,6 +31,11 @@ tests:
Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
+ - label: "Commission TH and DUT on Thread setup"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label: "DUT reads the MaxNetworks attribute from the TH"
PICS: CNET.S.A0000
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml
index 6ccf90ff45fb6a..c6986de08c4b45 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_19.yaml
@@ -31,6 +31,11 @@ tests:
Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
+ - label: "Commission TH and DUT on Ethernet setup"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label: "DUT reads the MaxNetworks attribute from the TH"
PICS: CNET.S.A0000
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml
index c1bcc524516814..286ad3a2b050a4 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_20.yaml
@@ -30,6 +30,11 @@ tests:
Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label: "DUT sends the ScanNetwork command to the TH"
PICS: CNET.C.C00.Tx
verification: |
@@ -60,7 +65,7 @@ tests:
disabled: true
- label: "DUT sends the AddOrUpdateWiFiNetwork command to the TH"
- PICS: CNET.C.C03.Tx
+ PICS: CNET.C.C02.Tx
verification: |
./chip-tool networkcommissioning add-or-update-wi-fi-network-network hex: 1 0
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml
index fd1cabf5b3bb18..8bb383b44f2388 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_21.yaml
@@ -31,6 +31,11 @@ tests:
Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
+ - label: "Commission TH and DUT on Thread setup"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label: "DUT sends the ScanNetwork command to the TH"
PICS: CNET.C.C00.Tx
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml
index 6fa3d6745f312b..0d5946a130707a 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_22.yaml
@@ -26,6 +26,30 @@ config:
endpoint: 0
tests:
+ - label: "DUT supports CNET.S.F01(TH)"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "DUT has a Network Commissioning cluster on endpoint
+ PIXIT.CNET.ENDPOINT_THREAD with FeatureMap attribute of 2"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "DUT is commissioned on PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "TH can communicate with the DUT on
+ PIXIT.CNET.THREAD_1ST_OPERATIONALDATASET"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label:
"TH sends ScanNetworks command to the DUT with the SSID field omitted
and the Breadcrumb field set to 1"
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml
index 8fa6d52855988d..ae7d031e7e0eaa 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_4.yaml
@@ -26,6 +26,60 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) in present in the ServerList
+ attribute"
+ verification: |
+ ./chip-tool descriptor read server-list 1 0
+
+ Verify tthe "descriptor" on the TH(Chip-tool) Log:
+
+ [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415
+ [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries
+ [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3
+ [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4
+ [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29
+ [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30
+ [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31
+ [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40
+ [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42
+ [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43
+ [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44
+ [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45
+ [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46
+ [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48
+ [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49
+ [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50
+ [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51
+ [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52
+ [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53
+ [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54
+ [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55
+ [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60
+ [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62
+ [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63
+ [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64
+ [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65
+ [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029
+ [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 1"
+ verification: |
+ ./chip-tool networkcommissioning read feature-map 1 0
+
+ Verify the "feature-map" on the TH(Chip-tool) Log:
+
+ [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167
+ [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1
+ [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i
+ disabled: true
+
- label:
"TH sends ScanNetworks command to the DUT with the SSID field set
to null and Breadcrumb field set to 1"
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml
index 8de8180dd2332c..5ca63fec18f1fc 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_5.yaml
@@ -26,6 +26,29 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 1"
+ verification: |
+ "./chip-tool networkcommissioning read feature-map 1 0
+
+ Verify the "feature-map" on the TH(Chip-tool) Log:
+
+ [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167
+ [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1
+ [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i"
+ disabled: true
+
- label:
"TH sends the AddOrUpdateWiFiNetwork command to the DUT with the
following argument: SSID argument value as Userwifi_ssid Credentials
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml
index 0f38ac33930338..5a5a0d81c960d6 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_6.yaml
@@ -26,6 +26,23 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT on Thread setup"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 2"
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label:
"TH sends the AddOrUpdateThreadNetwork command to the DUT with the
following argument: OperationalDataset argument value as Userth_op
@@ -36,7 +53,7 @@ tests:
Below is an example:
- ./chip-tool networkcommissioning add-or-update-thread-network hex:1232034768527434274 51 0
+ ./chip-tool networkcommissioning add-or-update-thread-network hex:1011101122222229 51 0
Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log:
@@ -54,7 +71,7 @@ tests:
Below is an example:
- /chip-tool networkcommissioning remove-network hex:1232034768527434274 51 0
+ ./chip-tool networkcommissioning remove-network hex:1011101122222229 51 0
Verify "FAILSAFE_REQUIRED status code" on the TH(Chip-tool) Log:
@@ -72,7 +89,7 @@ tests:
Below is an example:
- ./chip-tool networkcommissioning connect-network hex:1232034768527434274 51 0
+ ./chip-tool networkcommissioning connect-network hex:1011101122222229 51 0
Verify "FAILSAFE_REQUIRED status code" on the TH(chip-tool) Log:
diff --git a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml
index 8bbc9c3b5801fe..4a1dfefa8cd73e 100644
--- a/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CNET_4_9.yaml
@@ -26,6 +26,88 @@ config:
endpoint: 0
tests:
+ - label: "Commission TH and DUT over BLE to setup the Wi-Fi"
+ verification: |
+
+ disabled: true
+
+ - label:
+ "The cluster Identifier 49 (0x0031) is present in the ServerList
+ attribute"
+ verification: |
+ ./chip-tool descriptor read server-list 1 0
+
+ Verify the "descriptor" on the TH(Chip-tool) log
+
+ [1653474860.462391][29901:29906] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1237231415
+ [1653474860.462487][29901:29906] CHIP:TOO: server list: 25 entries
+ [1653474860.462524][29901:29906] CHIP:TOO: [1]: 3
+ [1653474860.462549][29901:29906] CHIP:TOO: [2]: 4
+ [1653474860.462574][29901:29906] CHIP:TOO: [3]: 29
+ [1653474860.462598][29901:29906] CHIP:TOO: [4]: 30
+ [1653474860.462622][29901:29906] CHIP:TOO: [5]: 31
+ [1653474860.462646][29901:29906] CHIP:TOO: [6]: 40
+ [1653474860.462670][29901:29906] CHIP:TOO: [7]: 42
+ [1653474860.462693][29901:29906] CHIP:TOO: [8]: 43
+ [1653474860.462717][29901:29906] CHIP:TOO: [9]: 44
+ [1653474860.462741][29901:29906] CHIP:TOO: [10]: 45
+ [1653474860.462765][29901:29906] CHIP:TOO: [11]: 46
+ [1653474860.462788][29901:29906] CHIP:TOO: [12]: 48
+ [1653474860.462812][29901:29906] CHIP:TOO: [13]: 49
+ [1653474860.462836][29901:29906] CHIP:TOO: [14]: 50
+ [1653474860.462859][29901:29906] CHIP:TOO: [15]: 51
+ [1653474860.462883][29901:29906] CHIP:TOO: [16]: 52
+ [1653474860.462906][29901:29906] CHIP:TOO: [17]: 53
+ [1653474860.462930][29901:29906] CHIP:TOO: [18]: 54
+ [1653474860.462954][29901:29906] CHIP:TOO: [19]: 55
+ [1653474860.462977][29901:29906] CHIP:TOO: [20]: 60
+ [1653474860.463001][29901:29906] CHIP:TOO: [21]: 62
+ [1653474860.463024][29901:29906] CHIP:TOO: [22]: 63
+ [1653474860.463048][29901:29906] CHIP:TOO: [23]: 64
+ [1653474860.463071][29901:29906] CHIP:TOO: [24]: 65
+ [1653474860.463095][29901:29906] CHIP:TOO: [25]: 1029
+ [1653474860.463296][29901:29906] CHIP:EM: Sending Standalone Ack for MessageCounter:10703464 on exchange 2435i
+ disabled: true
+
+ - label: "The FeatureMap attribute value is 1"
+ verification: |
+ ./chip-tool networkcommissioning read feature-map 1 0
+
+ Verify the "feature-map" on the TH(Chip-tool) log
+
+ [1653474932.055513][29920:29925] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFC DataVersion: 1600858167
+ [1653474932.055578][29920:29925] CHIP:TOO: FeatureMap: 1
+ [1653474932.055675][29920:29925] CHIP:EM: Sending Standalone Ack for MessageCounter:1494059 on exchange 5482i
+ disabled: true
+
+ - label: "The Networks attribute value is 1 entries"
+ verification: |
+ ./chip-tool networkcommissioning read networks 1 0
+
+ Verify the "networks" on the TH(Chip-tool) log
+
+ [1653478044.910989][30351:30356] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 1600858167
+ [1653478044.911109][30351:30356] CHIP:TOO: Networks: 1 entries
+ [1653478044.911192][30351:30356] CHIP:TOO: [1]: {
+ [1653478044.911238][30351:30356] CHIP:TOO: NetworkID: 47524C50726976617465
+ [1653478044.911280][30351:30356] CHIP:TOO: Connected: FALSE
+ [1653478044.911322][30351:30356] CHIP:TOO: }
+ [1653478044.911474][30351:30356] CHIP:EM: Sending Standalone Ack for MessageCounter:3575760 on exchange 51774i
+ disabled: true
+
+ - label:
+ "MaxNetworks attribute value is at least 1 which is saved as
+ MaxNetworksValue for future use"
+ verification: |
+ ./chip-tool networkcommissioning read max-networks 1 0
+
+ Verify the "max-networks" on the TH(Chip-tool) log
+
+ [1653476960.303444][30164:30169] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0000 DataVersion: 1600858167
+ [1653476960.303531][30164:30169] CHIP:TOO: MaxNetworks: 1
+ [1653476960.303641][30164:30169] CHIP:EM: Sending Standalone Ack for MessageCounter:2083922 on exchange 45120i
+ disabled: true
+
- label:
"TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set
to 900"
@@ -181,6 +263,8 @@ tests:
"TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set
to 0"
verification: |
+ Mark as not applicable and proceed to next step
+
./chip-tool generalcommissioning arm-fail-safe 0 0 1 0
Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log:
@@ -196,6 +280,8 @@ tests:
- label: "TH reads Networks attribute from the DUT"
PICS: CNET.S.A0001
verification: |
+ Mark as not applicable and proceed to next step
+
./chip-tool networkcommissioning read networks 1 0
Verify "Networks entiries and its status" on the TH(Chip-tool) Log:
@@ -208,6 +294,8 @@ tests:
"TH sends ArmFailSafe command to the DUT with ExpiryLengthSeco nds set
to 90"
verification: |
+ Mark as not applicable and proceed to next step
+
./chip-tool generalcommissioning arm-fail-safe 90 1 1 0
Verify "ArmFailSafeResponse" on the TH(Chip-tool) Log:
@@ -225,6 +313,8 @@ tests:
PIXIT.CNET.WIFI_ 1ST_ACCESSPOINT _SSID and Breadcrumb field set to 1"
PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx
verification: |
+ Mark as not applicable and proceed to next step
+
./chip-tool networkcommissioning remove-network hex: 1 0
Below is an example:
diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml
index 09e8cf190ec511..b24690a2ab0d75 100644
--- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml
@@ -41,6 +41,15 @@ tests:
constraints:
type: int16u
+ - label: "Read the global attribute: FeatureMap"
+ PICS: ( !CONTENTLAUNCHER.S.CS && !CONTENTLAUNCHER.S.UP )
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: FeatureMap"
PICS: CONTENTLAUNCHER.S.CS || CONTENTLAUNCHER.S.UP
command: "readAttribute"
@@ -48,7 +57,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 3
- label: "Read the global attribute: AttributeList"
diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml
index 056047d867594d..a4606fa7781765 100644
--- a/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DA_1_4.yaml
@@ -28,7 +28,14 @@ config:
tests:
- label: "Note"
verification: |
- Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Pre-Conditions"
+ verification: |
+ 1. PAA, PAI, DAC certificates are obtained and validated
+ 2. Operations happen within the Fail-Safe Context
+ 3. TH1 should be known about Commissioner based error condition/warning
disabled: true
- label: "Start the commissioning process of TH1 on DUT"
@@ -42,11 +49,20 @@ tests:
- label: "DUT generates 32-byte AttestationNonce"
verification: |
- To generate the Attestation Nonce give below command
-
- echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom)
-
- The generated Attestation Nonce is hex:F573438E58E445EAB50665023A298E351446F5E5E9493F05F4C63CCC02E1F834
+ DUT generates 32-byte AttestationNonce on TH(all-clusters-app) log
+
+ [1660832898.375011][2480:2485] CHIP:DMG: }
+ [1660832898.375071][2480:2485] CHIP:DMG: Device Type Id = 22
+ [1660832898.375136][2480:2485] CHIP:DMG: Certificate Id (19) = ZIG20142ZB330003-24
+ [1660832898.375198][2480:2485] CHIP:DMG: Security Level = 0
+ [1660832898.375257][2480:2485] CHIP:DMG: Security Information = 0
+ [1660832898.375315][2480:2485] CHIP:DMG: Version Number = 9876
+ [1660832898.375374][2480:2485] CHIP:DMG: Certification Type = 0
+ [1660832898.375431][2480:2485] CHIP:DMG: }
+ [1660832898.375496][2480:2485] CHIP:DMG: Attestation Nonce (32) = 79C7156A8580C653945226CD5B5994EF4EC3D79CEAE6D32325CA2EA24B5201CB
+ [1660832898.375552][2480:2485] CHIP:DMG: Timestamp = 0
+ [1660832898.375605][2480:2485] CHIP:DMG: }
+ [1660832898.375655][2480:2485] CHIP:DMG:
disabled: true
- label:
@@ -55,16 +71,16 @@ tests:
verification: |
DUT sends AttestationRequest Command with AttestationNonce as field to the TH1, verify attestation response is received on TH(all-clusters-app) log
- ./chip-tool operationalcredentials attestation-request hex:F573438E58E445EAB50665023A298E351446F5E5E9493F05F4C63CCC02E1F834 1 0
+ ./chip-tool operationalcredentials attestation-request hex:79C7156A8580C653945226CD5B5994EF4EC3D79CEAE6D32325CA2EA24B5201CB 1 0
- [1659514429.238042][3458:3464] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001
- [1659514429.238161][3458:3464] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0001
- [1659514429.238282][3458:3464] CHIP:TOO: AttestationResponse: {
- [1659514429.238447][3458:3464] CHIP:TOO: attestationElements: 1531011D023082021906092A864886F70D010702A082020A30820206020103310D300B06096086480165030402013082017106092A864886F70D010701A08201620482015E152400012501F1FF3602050080050180050280050380050480050580050680050780050880050980050A80050B80050C80050D80050E80050F80051080051180051280051380051480051580051680051780051880051980051A80051B80051C80051D80051E80051F80052080052180052280052380052480052580052680052780052880052980052A80052B80052C80052D80052E80052F80053080053180053280053380053480053580053680053780053880053980053A80053B80053C80053D80053E80053F80054080054180054280054380054480054580054680054780054880054980054A80054B80054C80054D80054E80054F80055080055180055280055380055480055580055680055780055880055980055A80055B80055C80055D80055E80055F80056080056180056280056380182403162C04135A494732303134325A423333303030332D3234240500240600250794
- [1659514429.238593][3458:3464] CHIP:TOO: ...................: 2624080018317D307B020103801462FA823359ACFAA9963E1CFA140ADDF504F37160300B0609608648016503040201300A06082A8648CE3D04030204473045022024E5D1F47A7D7B0D206A26EF699B7C9757B72D469089DE3192E678C745E7F60C022100F8AA2FA711FCB79B97E397CEDA667BAE464E2BD3FFDFC3CCED7AA8CA5F4C1A7C300220F573438E58E445EAB50665023A298E351446F5E5E9493F05F4C63CCC02E1F83424030018
- [1659514429.238672][3458:3464] CHIP:TOO: signature: 1644376FEC5DE29C92AD9CDF43E0051EA2C46DA93429BEEADDA5C7B74A6EF8ACFB47D8AAD77EBEEDEEFE987639ECCA596E1BBDBD39BF0ED5EE7BACAA7A899CA0
- [1659514429.238756][3458:3464] CHIP:TOO: }
+ Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0001
+ [1660833399.901252][2506:2511] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0001
+ [1660833399.901498][2506:2511] CHIP:TOO: AttestationResponse: {
+ [1660833399.901607][2506:2511] CHIP:TOO: attestationElements: 1531011D023082021906092A864886F70D010702A082020A30820206020103310D300B06096086480165030402013082017106092A864886F70D010701A08201620482015E152400012501F1FF3602050080050180050280050380050480050580050680050780050880050980050A80050B80050C80050D80050E80050F80051080051180051280051380051480051580051680051780051880051980051A80051B80051C80051D80051E80051F80052080052180052280052380052480052580052680052780052880052980052A80052B80052C80052D80052E80052F80053080053180053280053380053480053580053680053780053880053980053A80053B80053C80053D80053E80053F80054080054180054280054380054480054580054680054780054880054980054A80054B80054C80054D80054E80054F80055080055180055280055380055480055580055680055780055880055980055A80055B80055C80055D80055E80055F80056080056180056280056380182403162C04135A494732303134325A423333303030332D3234240500240600250794
+ [1660833399.901733][2506:2511] CHIP:TOO: ...................: 2624080018317D307B020103801462FA823359ACFAA9963E1CFA140ADDF504F37160300B0609608648016503040201300A06082A8648CE3D04030204473045022024E5D1F47A7D7B0D206A26EF699B7C9757B72D469089DE3192E678C745E7F60C022100F8AA2FA711FCB79B97E397CEDA667BAE464E2BD3FFDFC3CCED7AA8CA5F4C1A7C30022079C7156A8580C653945226CD5B5994EF4EC3D79CEAE6D32325CA2EA24B5201CB24030018
+ [1660833399.901816][2506:2511] CHIP:TOO: signature: 920E22FE88765058D28A248636828BDBD612D24FFA4B27A06FFFB5D76061E0D0EE7FBCED7030026624A012B32F11596FB87CE147323B13F55A3654F27ED59FB3
+ [1660833399.901881][2506:2511] CHIP:TOO: }
disabled: true
- label:
@@ -72,7 +88,7 @@ tests:
by setting the following error condition: Commissionee is not yet
certified"
verification: |
- To Execute ths step follow the following
+ To Execute this step follow the following
1. To generate the CD use the below command
./out/debug/chip-cert gen-cd -C credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem -K credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem --out dec_message.txt -f 1 -V FFF1 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
@@ -106,12 +122,7 @@ tests:
[1658320787.292739][4152:4157] CHIP:CTL: Expiring failsafe on proxy 0xffff7c000b60
disabled: true
- - label:
- "Verify that DUT notifies a warning stating that Commissionee is not a
- fully trusted device,Verify that the warning contains the information
- about the reason for error condition,If the warning message indicates
- that Commissioning is allowed then confirm that CSRRequest Command is
- sent from DUT to TH1"
+ - label: ""
PICS: MCORE.DA.ATTEST_WARNING
verification: |
------>sudo ./chip-all-clusters-app --dac_provide /dec_message.json
@@ -159,13 +170,10 @@ tests:
1. To generate the CD use the below command
./out/debug/chip-cert gen-cd -C credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.pem -K credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.pem --out dec_message_3 -f 1 -V FFF1 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
-
-
2. Use the below command to see the generated CD
xxd -p -c 1024 dec_message_3
3082021806092a864886f70d010702a082020930820205020103310d300b06096086480165030402013082017106092a864886f70d010701a08201620482015e152400012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f80056080056180056280056380182403162c04135a494732303134325a423333303030332d32342405002406002507942624080018317c307a02010380146f4b2077c703a3d97e2c7d0f7c309c9db12abbb3300b0609608648016503040201300a06082a8648ce3d04030204463044022065ce44afabe7ad98eba7f382825be984fd4da28a5b00904acaf9f904e12bfd93022037b92fc4343578c5305d0ef0fb85dd2105f8b665bfe97687e24834d7a27c5096
-
3. Copy the result from step 2 in json file and transfer the json file to Raspi That will be running chip-all-clusters-app
4. Commission TH to DUT using the above generated CD by using dac_provider parameter
@@ -180,8 +188,6 @@ tests:
[1658320256.356675][4486:4486] CHIP:IN: SecureSession[0xaaaaf9556b00]: Released - Type:1 LSID:62352
[1658320256.356758][4486:4486] CHIP:SVR: Commissioning failed (attempt 1): ../../third_party/connectedhomeip/src/app/server/CommissioningWindowManager.cpp:71: CHIP Error 0x00000032: Timeout
-
-
--->./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3840 --trace_decode 1
[1658320256.309769][4098:4103] CHIP:CTL: Commissioning stage next step: "SendAttestationRequest" -> "AttestationVerification"
@@ -195,6 +201,80 @@ tests:
[1658320256.315610][4098:4103] CHIP:CTL: Expiring failsafe on proxy 0xffff6c000b60
[1658320256.315707][4098:4103] CHIP:DMG: ICR moving to [AddingComm]
[1658320256.315748][4098:4103] CHIP:DMG: ICR moving to [AddedComma]
+
+
+ Similarly for condition 2 follow below steps
+
+ 1. To generate the CD use the below command
+ ./out/debug/chip-cert gen-cd -E vid-mismatch -C credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.der -K credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.der --out dec_message_6.txt -f 1 -V FFF1 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
+
+ 2. Use the below command to see the generated CD
+ xxd -p -c 1024 dec_message_6.txt
+ 3082021906092a864886f70d010702a082020a30820206020103310d300b06096086480165030402013082017106092a864886f70d010701a08201620482015e152400012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f80056080056180056280056380182403162c04135a494732303134325a423333303030332d32342405002406002507942624080018317d307b02010380146f4b2077c703a3d97e2c7d0f7c309c9db12abbb3300b0609608648016503040201300a06082a8648ce3d040302044730450221009bc4c8759ff98a68fb1b42f2d7b2300a856f7830982a4876ff54855dcc25e773022060c17079368bc8e33171c52d9c73a09d690614c28303c119d1bdc1f9b4be869e
+
+ 3. Copy the result from step 2 in json file and transfer the json file to Raspi That will be running chip-all-clusters-app
+
+ 4. Commission TH to DUT using the above generated CD by using dac_provider parameter
+
+ sudo rm -rf /tmp/chip_*
+ ./all-cluster-app --wifi --dac_provider /dec_3.json
+
+ [1660836160.681814][4884:4884] CHIP:DL: HandlePlatformSpecificBLEEvent 32782
+ [1660836160.681873][4884:4884] CHIP:SVR: Failsafe timer expired
+ [1660836160.681923][4884:4884] CHIP:IN: SecureSession[0xaaaad5440e10]: MarkForEviction Type:1 LSID:22448
+ [1660836160.681975][4884:4884] CHIP:SC: SecureSession[0xaaaad5440e10]: Moving from state "kActive" --> "kPendingEviction"
+ [1660836160.682126][4884:4884] CHIP:IN: SecureSession[0xaaaad5440e10]: Released - Type:1 LSID:22448
+ [1660836160.682202][4884:4884] CHIP:SVR: Commissioning failed (attempt 1): ../../third_party/connectedhomeip/src/app/server/CommissioningWindowManager.cpp:73: CHIP Error 0x00000032: Timeout
+
+
+
+ --->./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3840 --trace_decode 1
+
+ [1660836160.627772][2653:2658] CHIP:CTL: Performing next commissioning step "AttestationVerification"
+ [1660836160.627826][2653:2658] CHIP:CTL: Verifying attestation
+ [1660836160.686379][2653:2658] CHIP:CTL: Failed in verifying "Attestation Information" command received from the device: err 601. Look at AttestationVerificationResult enum to understand the errors
+ [1660836160.686579][2653:2658] CHIP:CTL: Error on commissioning step "AttestationVerification": "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660836160.686648][2653:2658] CHIP:CTL: Failed to perform commissioning step 8
+ [1660836160.686714][2653:2658] CHIP:CTL: Going from commissioning step "AttestationVerification" with lastErr = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error" -> "Cleanup"
+ [1660836160.686806][2653:2658] CHIP:CTL: Performing next commissioning step "Cleanup" with completion status = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660836160.686869][2653:2658] CHIP:CTL: Expiring failsafe on proxy 0xffffa4032330
+
+
+
+ Similarly for condition 3 follow below steps
+
+ 1. To generate the CD use the below command
+ ./out/debug/chip-cert gen-att-cert --type a --subject-cn "Matter Development PAA 01" --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key Chip-PAA-Key.pem --out Chip-PAA-Cert.pem
+
+ 2. Use the below command to see the generated CD
+ xxd -p -c 1024 Chip-PAA-Cert.pem
+ 2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d49494270444343415571674177494241674949636769574a6f6e394f653477436759494b6f5a497a6a3045417749774a4445694d434147413155454177775a0a54574630644756794945526c646d5673623342745a57353049464242515341774d544165467730794d4445774d5455784e44497a4e444e61467730304d4445770a4d5455784e44497a4e444a614d435178496a416742674e5642414d4d475531686448526c636942455a585a6c624739776257567564434251515545674d4445770a5754415442676371686b6a4f5051494242676771686b6a4f50514d4242774e4341415461314478507a5873473870372f6d755231686f5631783042797072516a0a58672b77536e742b5a6c45542b78424745373252624b4c6c474f2f54694d427776354972633534664d316e697067483546435078536258736f3259775a4441530a42674e5648524d4241663845434441474151482f416745424d41344741315564447745422f77514541774942426a416442674e564851344546675155307551580a4a6b4c73533667487174717875384a6e5a69487946343077487759445652306a42426777466f4155307551584a6b4c73533667487174717875384a6e5a6948790a46343077436759494b6f5a497a6a30454177494453414177525149674a703546485a545739617958334e575777774870543933677434614f7679424c555937500a74423875397038434951446c4e38375755324c6b6c68313339377a63517942565351345833634e6d4d426f336b5a4853584f475843673d3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0
+
+ 3. Copy the result from step 2 in json file and transfer the json file to Raspi That will be running chip-all-clusters-app
+
+ 4. Commission TH to DUT using the above generated CD by using dac_provider parameter
+
+ sudo rm -rf /tmp/chip_*
+ ./all-cluster-app --wifi --dac_provider /dec_7.json
+
+ [1660894197.335249][5005:5005] CHIP:DL: HandlePlatformSpecificBLEEvent 32782
+ [1660894197.335308][5005:5005] CHIP:SVR: Failsafe timer expired
+ [1660894197.335357][5005:5005] CHIP:IN: SecureSession[0xaaaae7002e10]: MarkForEviction Type:1 LSID:31514
+ [1660894197.335430][5005:5005] CHIP:SC: SecureSession[0xaaaae7002e10]: Moving from state "kActive" --> "kPendingEviction"
+ [1660894197.335607][5005:5005] CHIP:IN: SecureSession[0xaaaae7002e10]: Released - Type:1 LSID:31514
+ [1660894197.335686][5005:5005] CHIP:SVR: Commissioning failed (attempt 1): ../../third_party/connectedhomeip/src/app/server/CommissioningWindowManager.cpp:73: CHIP Error 0x00000032: Timeout
+
+
+ --->./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3840 --trace_decode 1
+
+ [1660894197.296303][4561:4566] CHIP:CTL: Performing next commissioning step "AttestationVerification"
+ [1660894197.296356][4561:4566] CHIP:CTL: Verifying attestation
+ [1660894197.350259][4561:4566] CHIP:CTL: Failed in verifying "Attestation Information" command received from the device: err 600. Look at AttestationVerificationResult enum to understand the errors
+ [1660894197.350444][4561:4566] CHIP:CTL: Error on commissioning step "AttestationVerification": "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660894197.350508][4561:4566] CHIP:CTL: Failed to perform commissioning step 8
+ [1660894197.350574][4561:4566] CHIP:CTL: Going from commissioning step "AttestationVerification" with lastErr = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error" -> "Cleanup"
+ [1660894197.350659][4561:4566] CHIP:CTL: Performing next commissioning step "Cleanup" with completion status = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660894197.350718][4561:4566] CHIP:CTL: Expiring failsafe on proxy 0xffff6c032330
disabled: true
- label:
@@ -207,13 +287,11 @@ tests:
Product ID (PID) the DAC is not present in the product_id_array field
in the Certification Declaration"
verification: |
- To Execute ths step for error condition 1 follow the following
+ To Execute ths step for error condition 1 follow the following steps
1. To generate the CD use the below command
./out/debug/chip-cert gen-cd -I -E dac-origin-vid-present -C credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem -K credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem --out cd_vid_present_pid_missing.txt -o 0x8000 -r 0xFFF1 -f 1 -V FFF1 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
-
-
2. Use the below command to see the generated CD
xxd -p -c 1024 cd_vid_present_pid_missing.txt
3082010506092a864886f70d010702a081f73081f4020103310d300b0609608648016503040201306106092a864886f70d010701a0540452152000012501f1ff3602050080182403162c04135a494732303134325a423333303030332d32342405002406002507942624080025090080360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502205adea20956fcdce1213f2878da4a5f4a35907eaafa70efe367edc9cec23eb2f80221009b2482360c8713ccd2738150874f9b811ec2149c3ec1f579357219985ecc765a
@@ -225,7 +303,6 @@ tests:
sudo rm -rf /tmp/chip_*
sudo ./chip-all-clusters-app --dac_provider /cd.json
-
[1658320561.405436][4521:4521] CHIP:DL: HandlePlatformSpecificBLEEvent 32782
[1658320561.405489][4521:4521] CHIP:SVR: Failsafe timer expired
[1658320561.405546][4521:4521] CHIP:IN: SecureSession[0xaaaaec7c9e10]: MarkForEviction Type:1 LSID:27478
@@ -235,7 +312,6 @@ tests:
[1658320561.405815][4521:4521] CHIP:IN: Clearing BLE pending packets.
-
--->./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3840 --trace_decode 1
[1658320561.366298][4126:4132] CHIP:CTL: Failed in verifying "Attestation Information" command received from the device: err 603. Look at AttestationVerificationResult enum to understand the errors
@@ -244,4 +320,111 @@ tests:
[1658320561.366481][4126:4132] CHIP:CTL: Going from commissioning step "AttestationVerification" with lastErr = "../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1011: CHIP Error 0x000000AC: Internal error" -> "Cleanup"
[1658320561.366524][4126:4132] CHIP:CTL: Performing next commissioning step "Cleanup" with completion status = "../../third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1011: CHIP Error 0x000000AC: Internal error"
[1658320561.366554][4126:4132] CHIP:CTL: Expiring failsafe on proxy 0xffff84000b60
+
+
+ Similarly for 2nd error condition follow the below steps
+
+ 1. To generate the CD use the below command
+ ./out/debug/chip-cert gen-cd -E vid-mismatch -C credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.der -K credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.der --out dec_message_3.txt -f 1 -V FFF5 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
+
+
+ 2. Use the below command to see the generated CD
+ xxd -p -c 1024 dec_message_3.txt
+ 3082021906092a864886f70d010702a082020a30820206020103310d300b06096086480165030402013082017106092a864886f70d010701a08201620482015e152400012501f5ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f80056080056180056280056380182403162c04135a494732303134325a423333303030332d32342405002406002507942624080018317d307b02010380140b36c601086c7232d905bd8b1eb2ce75d9aa8eee300b0609608648016503040201300a06082a8648ce3d04030204473045022100afdf19ccdf9ebb227554c11b066d70d648d030cf49c9b16bfbb82f922af325da02201ea59fcb3fb51b99f40283b736486c141f4f136fec63983d72811b5804221d9f
+
+ 3. Copy the result from step 2 in json file and transfer the json file to Raspi That will be running chip-all-clusters-app
+
+ 4. Commission TH to DUT using the above generated CD by using dac_provider parameter
+
+ ./chip-all-clusters-app --dac_provider dec.json
+
+ [1660834197.222084][4765:4765] CHIP:DL: HandlePlatformSpecificBLEEvent 32782
+ [1660834197.222142][4765:4765] CHIP:SVR: Failsafe timer expired
+ [1660834197.222191][4765:4765] CHIP:IN: SecureSession[0xaaaad7a03e10]: MarkForEviction Type:1 LSID:52084
+ [1660834197.222242][4765:4765] CHIP:SC: SecureSession[0xaaaad7a03e10]: Moving from state "kActive" --> "kPendingEviction"
+ [1660834197.222392][4765:4765] CHIP:IN: SecureSession[0xaaaad7a03e10]: Released - Type:1 LSID:52084
+ [1660834197.222468][4765:4765] CHIP:SVR: Commissioning failed (attempt 1): ../../third_party/connectedhomeip/src/app/server/CommissioningWindowManager.cpp:73: CHIP Error 0x00000032: Timeout
+
+ ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540 --trace_decode 1
+
+ [1660834197.161864][2546:2551] CHIP:CTL: Performing next commissioning step "AttestationVerification"
+ [1660834197.161918][2546:2551] CHIP:CTL: Verifying attestation
+ [1660834197.217691][2546:2551] CHIP:CTL: Failed in verifying "Attestation Information" command received from the device: err 601. Look at AttestationVerificationResult enum to understand the errors
+ [1660834197.218073][2546:2551] CHIP:CTL: Error on commissioning step "AttestationVerification": "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660834197.218139][2546:2551] CHIP:CTL: Failed to perform commissioning step 8
+ [1660834197.218207][2546:2551] CHIP:CTL: Going from commissioning step "AttestationVerification" with lastErr = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error" -> "Cleanup"
+ [1660834197.218295][2546:2551] CHIP:CTL: Performing next commissioning step "Cleanup" with completion status = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660834197.218358][2546:2551] CHIP:CTL: Expiring failsafe on proxy 0xffff80032330
+
+
+ Similary for 3rd error condition follow the below steps
+
+ 1. To generate the CD use the below command
+ ./out/debug/chip-cert gen-cd -E vid-mismatch -C credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.der -K credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.der --out dec_message_3.txt -f 1 -V FFF5 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
+
+
+ 2. Use the below command to see the generated CD
+ xxd -p -c 1024 dec_message_3.txt
+ 3082021906092a864886f70d010702a082020a30820206020103310d300b06096086480165030402013082017106092a864886f70d010701a08201620482015e152400012501f5ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f80056080056180056280056380182403162c04135a494732303134325a423333303030332d32342405002406002507942624080018317d307b02010380140b36c601086c7232d905bd8b1eb2ce75d9aa8eee300b0609608648016503040201300a06082a8648ce3d04030204473045022100afdf19ccdf9ebb227554c11b066d70d648d030cf49c9b16bfbb82f922af325da02201ea59fcb3fb51b99f40283b736486c141f4f136fec63983d72811b5804221d9f
+
+ 3. Copy the result from step 2 in json file and transfer the json file to Raspi That will be running chip-all-clusters-app
+
+ 4. Commission TH to DUT using the above generated CD by using dac_provider parameter
+
+ ./chip-all-clusters-app --dac_provider dec.json
+
+ [1660834197.222084][4765:4765] CHIP:DL: HandlePlatformSpecificBLEEvent 32782
+ [1660834197.222142][4765:4765] CHIP:SVR: Failsafe timer expired
+ [1660834197.222191][4765:4765] CHIP:IN: SecureSession[0xaaaad7a03e10]: MarkForEviction Type:1 LSID:52084
+ [1660834197.222242][4765:4765] CHIP:SC: SecureSession[0xaaaad7a03e10]: Moving from state "kActive" --> "kPendingEviction"
+ [1660834197.222392][4765:4765] CHIP:IN: SecureSession[0xaaaad7a03e10]: Released - Type:1 LSID:52084
+ [1660834197.222468][4765:4765] CHIP:SVR: Commissioning failed (attempt 1): ../../third_party/connectedhomeip/src/app/server/CommissioningWindowManager.cpp:73: CHIP Error 0x00000032: Timeout
+
+ ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540 --trace_decode 1
+
+ [1660834197.161864][2546:2551] CHIP:CTL: Performing next commissioning step "AttestationVerification"
+ [1660834197.161918][2546:2551] CHIP:CTL: Verifying attestation
+ [1660834197.217691][2546:2551] CHIP:CTL: Failed in verifying "Attestation Information" command received from the device: err 601. Look at AttestationVerificationResult enum to understand the errors
+ [1660834197.218073][2546:2551] CHIP:CTL: Error on commissioning step "AttestationVerification": "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660834197.218139][2546:2551] CHIP:CTL: Failed to perform commissioning step 8
+ [1660834197.218207][2546:2551] CHIP:CTL: Going from commissioning step "AttestationVerification" with lastErr = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error" -> "Cleanup"
+ [1660834197.218295][2546:2551] CHIP:CTL: Performing next commissioning step "Cleanup" with completion status = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660834197.218358][2546:2551] CHIP:CTL: Expiring failsafe on proxy 0xffff80032330
+
+
+ Similary for 4th error condition follow the below steps
+
+ 1. To generate the CD use the below command
+ ./out/debug/chip-cert gen-cd -E vid-mismatch -C credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.der -K credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.der --out dec_message_5.txt -f 1 -V FFF1 -p 8000 -p 8001 -p 8002 -p 8003 -p 8004 -p 8005 -p 8006 -p 8007 -p 8008 -p 8009 -p 800A -p 800B -p 800C -p 800D -p 800E -p 800F -p 8010 -p 8011 -p 8012 -p 8013 -p 8014 -p 8015 -p 8016 -p 8017 -p 8018 -p 8019 -p 801A -p 801B -p 801C -p 801D -p 801E -p 801F -p 8020 -p 8021 -p 8022 -p 8023 -p 8024 -p 8025 -p 8026 -p 8027 -p 8028 -p 8029 -p 802A -p 802B -p 802C -p 802D -p 802E -p 802F -p 8030 -p 8031 -p 8032 -p 8033 -p 8034 -p 8035 -p 8036 -p 8037 -p 8038 -p 8039 -p 803A -p 803B -p 803C -p 803D -p 803E -p 803F -p 8040 -p 8041 -p 8042 -p 8043 -p 8044 -p 8045 -p 8046 -p 8047 -p 8048 -p 8049 -p 804A -p 804B -p 804C -p 804D -p 804E -p 804F -p 8050 -p 8051 -p 8052 -p 8053 -p 8054 -p 8055 -p 8056 -p 8057 -p 8058 -p 8059 -p 805A -p 805B -p 805C -p 805D -p 805E -p 805F -p 8060 -p 8061 -p 8062 -p 8063 -d 0016 -c "ZIG20142ZB330003-24" -l 0 -i 0 -n 2694 -t 0
+
+
+ 2. Use the below command to see the generated CD
+ xxd -p -c 1024 dec_message_5.txt
+ 3082021906092a864886f70d010702a082020a30820206020103310d300b06096086480165030402013082017106092a864886f70d010701a08201620482015e152400012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f80056080056180056280056380182403162c04135a494732303134325a423333303030332d32342405002406002507942624080018317d307b0201038014e84b969e3104277c0a25ec2fd2e014cf6cabbc50300b0609608648016503040201300a06082a8648ce3d04030204473045022005a46eb5d9ba996c44abcad5498a65898a8a7711bc91b25b24949b154949b046022100873aaac936ef14cf795c59629603d6d9ffa193f3e6d13082b47b0d018b21d60f
+
+ 3. Copy the result from step 2 in json file and transfer the json file to Raspi That will be running chip-all-clusters-app
+
+ 4. Commission TH to DUT using the above generated CD by using dac_provider parameter
+
+ ./chip-all-clusters-app --dac_provider dec_1.json
+
+ [1660834938.999182][4811:4811] CHIP:DL: HandlePlatformSpecificBLEEvent 32782
+ [1660834938.999232][4811:4811] CHIP:SVR: Failsafe timer expired
+ [1660834938.999276][4811:4811] CHIP:IN: SecureSession[0xaaaae51efe10]: MarkForEviction Type:1 LSID:59289
+ [1660834938.999321][4811:4811] CHIP:SC: SecureSession[0xaaaae51efe10]: Moving from state "kActive" --> "kPendingEviction"
+ [1660834938.999452][4811:4811] CHIP:IN: SecureSession[0xaaaae51efe10]: Released - Type:1 LSID:59289
+ [1660834938.999519][4811:4811] CHIP:SVR: Commissioning failed (attempt 1): ../../third_party/connectedhomeip/src/app/server/CommissioningWindowManager.cpp:73: CHIP Error 0x00000032: Timeout
+
+
+ ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2753 5540 --trace_decode 1
+
+ [1660834938.937220][2589:2594] CHIP:CTL: Commissioning stage next step: "SendAttestationRequest" -> "AttestationVerification"
+ [1660834938.937294][2589:2594] CHIP:CTL: Performing next commissioning step "AttestationVerification"
+ [1660834938.937346][2589:2594] CHIP:CTL: Verifying attestation
+ [1660834938.995809][2589:2594] CHIP:CTL: Failed in verifying "Attestation Information" command received from the device: err 601. Look at AttestationVerificationResult enum to understand the errors
+ [1660834938.996010][2589:2594] CHIP:CTL: Error on commissioning step "AttestationVerification": "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660834938.996077][2589:2594] CHIP:CTL: Failed to perform commissioning step 8
+ [1660834938.996145][2589:2594] CHIP:CTL: Going from commissioning step "AttestationVerification" with lastErr = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error" -> "Cleanup"
+ [1660834938.996234][2589:2594] CHIP:CTL: Performing next commissioning step "Cleanup" with completion status = "../../src/controller/CHIPDeviceController.cpp:1018: CHIP Error 0x000000AC: Internal error"
+ [1660834938.996293][2589:2594] CHIP:CTL: Expiring failsafe on proxy 0xffff84032330
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml
index 1ab2e84c96a65e..717ee8f06dc1d0 100644
--- a/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DA_1_5.yaml
@@ -38,7 +38,7 @@ tests:
"TH1 establishes a CASE session to the DUT and saves the attestation
challenge as attestation_challenge"
verification: |
- Verify in TH log:
+ Verify case session is established on TH(chip-tool) log:
[1657081321.112631][2354:2359] CHIP:CTL: Operational credentials provisioned on device 0xffff68000b60
[1657081321.112706][2354:2359] CHIP:TOO: Secure Pairing Success
@@ -51,7 +51,7 @@ tests:
verification: |
./chip-tool operationalcredentials certificate-chain-request 1 1 0
- Verify CertificateChainResponse in TH log:
+ Verify CertificateChainResponse on TH(chip-tool) log:
[1658393690.991117][3329:3334] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0003
[1658393690.991168][3329:3334] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0003
@@ -67,7 +67,7 @@ tests:
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 0 1 0
- Verify ArmFailSafeResponse in TH log :
+ Verify ArmFailSafeResponse on TH(chip-tool) log :
[1658393763.804225][3345:3350] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658393763.804288][3345:3350] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
[1658393763.804376][3345:3350] CHIP:TOO: ArmFailSafeResponse: {
@@ -86,7 +86,7 @@ tests:
./chip-tool operationalcredentials csrrequest hex:AFB3070A828B7A9CABEE888688F867683C084E6E4B3F13CDEDF17EEF05A9F352 1 0
- Verify CSRResponse in TH log:
+ Verify CSRResponse on TH(chip-tool) log:
[1658393935.238621][3359:3364] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0005
[1658393935.238726][3359:3364] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0005
[1658393935.238839][3359:3364] CHIP:TOO: CSRResponse: {
@@ -111,13 +111,18 @@ tests:
verification step to be updated.
disabled: true
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
+
- label:
"TH1 sends an ArmFailSafe command to the General Commissioning cluster
with the ExpiryLengthSeconds field set to 0"
verification: |
./chip-tool generalcommissioning arm-fail-safe 0 0 1 0
- Verify ArmFailSafeResponse in TH log :
+ Verify ArmFailSafeResponse on TH(chip-tool) log :
[1658394142.961248][3378:3383] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658394142.961297][3378:3383] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
@@ -133,7 +138,7 @@ tests:
verification: |
./chip-tool generalcommissioning arm-fail-safe 900 0 1 0
- Verify ArmFailSafeResponse in TH log :
+ Verify ArmFailSafeResponse on TH(chip-tool) log :
[1658393763.804225][3345:3350] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658393763.804288][3345:3350] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
@@ -149,7 +154,7 @@ tests:
verification: |
./chip-tool operationalcredentials csrrequest hex:AFB3070A828B7A9CABEE888688F867683C084E6E4B3F13CDEDF17EEF05A9 1 0
- Verify General error INVALID_COMMAND in TH log:
+ Verify General error INVALID_COMMAND in TH(chip-tool) log:
[1658394196.798739][3387:3392] CHIP:EM: Removed CHIP MessageCounter:192677922 from RetransTable on exchange 13029i
[1658394196.798787][3387:3392] CHIP:DMG: ICR moving to [ResponseRe]
[1658394196.798859][3387:3392] CHIP:DMG: InvokeResponseMessage =
@@ -191,7 +196,7 @@ tests:
verification: |
./chip-tool generalcommissioning arm-fail-safe 0 0 1 0
- Verify ArmFailSafeResponse in TH log :
+ Verify ArmFailSafeResponse in TH(chip-tool) log :
[1658394142.961248][3378:3383] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
[1658394142.961297][3378:3383] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
@@ -207,7 +212,7 @@ tests:
verification: |
./chip-tool pairing open-commissioning-window 1 1 400 2000 3840
- Verify TH1 open commissiong window
+ Verify manual pairing code on TH(chip-tool) log
[1658394279.082812][3401:3407] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0000 Status=0x0
[1658394279.082900][3401:3407] CHIP:CTL: Successfully opened pairing window on the device
@@ -217,9 +222,9 @@ tests:
- label: "TH2 fully commissions the DUT"
verification: |
- ./chip-tool pairing code 2 34941319897 --trace_decode 1
+ ./chip-tool pairing code 2 34941319897 --trace_decode 1 --commissioner-name beta
- Verify in TH2 is commissioned successfully in log:
+ Verify TH2 is commissioned successfully on TH2(chip-tool) log:
[1658394409.242162][2474:2479] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005
[1658394409.242204][2474:2479] CHIP:CTL: Received CommissioningComplete response, errorCode=0
[1658394409.242237][2474:2479] CHIP:CTL: Successfully finished commissioning step "SendComplete"
@@ -233,9 +238,9 @@ tests:
"TH2 reads the NOCs attribute from the Node Operational Credentials
cluster using a non-fabric-scoped read"
verification: |
- ./chip-tool operationalcredentials read nocs 2 0
+ ./chip-tool operationalcredentials read nocs 2 0 --commissioner-name beta
- Verify that there are two element in the list in TH2 log:
+ Verify that there are two element in the list on TH2(chip-tool) log:
[1658394451.122862][2491:2496] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 1660110007
[1658394451.126674][2491:2496] CHIP:TOO: NOCs: 1 entries
[1658394451.126806][2491:2496] CHIP:TOO: [1]: {
@@ -247,13 +252,13 @@ tests:
- label: "TH2 extracts the pubic key from noc1 and noc2"
verification: |
- Verify both public key of noc1 and noc 2 are different
+ Verify both public key of noc1 and noc 2 are different in TH (all-clusters-app)
To extract public key follow the below step
1. Copy the NOCVALUE of TH1 in commissioning log of TH1
2. save it in a file
3. give below command to get public key
- ./out/debug/chip-cert print-cert noc_1.txt
+ ./out/debug/chip-cert print-cert noc_1.txt --commissioner-name beta
---> The extracted public key of noc1 is
CHIP Certificate:
@@ -280,6 +285,9 @@ tests:
BA D5 4F AC 3F F0 81 6E 0B D3 E0 BE C9 7E 8E FE
FB 7A 28 67 8E BA 58 8F D9 74 F1 4D C4 82 C5 F4
+
+
+
--->Follow the same steps for noc2
The generated public key for noc2 is
CHIP Certificate:
diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml
index 8881c34f0fba45..16dee77a88b348 100644
--- a/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DA_1_6.yaml
@@ -26,15 +26,14 @@ config:
tests:
- label: "Note"
verification: |
- Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
- - label:
- "Pre-Conditions 1. Device Attestation is completed 2. PAI, DAC
- certificates are obtained and validated against externally obtained
- PAA certificate 3. Operations happen within the Fail-Safe Context"
+ - label: "Pre-Conditions"
verification: |
- verification step to be updated.
+ 1. Device Attestation is completed
+ 2. PAI, DAC certificates are obtained and validated against externally obtained PAA certificate
+ 3. Operations happen within the Fail-Safe Context
disabled: true
- label: "DUT completes the attestation procedure"
diff --git a/src/app/tests/suites/certification/Test_TC_DA_1_7.yaml b/src/app/tests/suites/certification/Test_TC_DA_1_7.yaml
index 471121b5640352..f0e874045bb00b 100644
--- a/src/app/tests/suites/certification/Test_TC_DA_1_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DA_1_7.yaml
@@ -57,6 +57,31 @@ tests:
[1657774756.281289][7964:7969] CHIP:TOO: certificate: 308201CB30820171A003020102020856AD8222AD945B64300A06082A8648CE3D04030230303118301606035504030C0F4D617474657220546573742050414131143012060A2B0601040182A27C02010C04464646313020170D3232303230353030303030305A180F39393939313233313233353935395A303D3125302306035504030C1C4D6174746572204465762050414920307846464631206E6F2050494431143012060A2B0601040182A27C02010C04464646313059301306072A8648CE3D020106082A8648CE3D03010703420004419A9315C2173E0C8C876D03CCFC944852647F7FEC5E5082F4059928ECA894C594151309AC631E4CB03392AF684B0BAFB7E65B3B8162C2F52BF931B8E77AAA82A366306430120603551D130101FF040830060101FF020100300E0603551D0F0101FF040403020106301D0603551D0E0416041463540E47F64B1C38D13884A462D16C195D8FFB3C301F0603551D230418301680146AFD22771F511FECBF1641976710DCDC31A1717E300A06082A8648CE3D0403020348003045022100B2EF27F49AE9B50FB91EEAC94C4D0BDBB8D7929C6C
[1657774756.281357][7964:7969] CHIP:TOO: ...........: B88FACE529368D12054C0C0220655DC92B86BD909882A6C62177B825D7D05EDBE7C22F9FEA71220E7EA703F891
[1657774756.281388][7964:7969] CHIP:TOO: }
+
+ The log has certificate details (starting with ---BEGIN CERTIFICATE and ending with ---END CERTIFICATE ) as highlighted below , save the certificate in .pem file format. Open editor on your TH , save that in file, example: pai.pem
+
+ [1660952198157] [17290:5268348] CHIP: [DMG] Encrypted Payload (531 bytes) =
+ [1660952198157] [17290:5268348] CHIP: [DMG] {
+ [1660952198157] [17290:5268348] CHIP: [DMG] data = 001c39000820730541fea9f0e9b148d6c50bdd30d20acef8a0ee67b0458c5fe377d9793092b83e0670ad46770ce44154de4d131731f7065b8329d08be8a280db77f8c12b48300c5fb009c0d3f4b0b1b0a8f4523e319db11ee5d8eb679325c2982248aa5c75b474c50f3bbb0f617ab06a04df403557a564bac4cf08c56fd2eb951d4be875f290dd7b9da01e558fc85ad7b4922d804029410735cae9910a6df282145059b3228e9349467ddc917a268638fa7882a3f7b278355ec848c2ac3f466d3cca746ca416733b85dc6bd8e99ecd35bfc0d3b85f28db6e897636bec89fc41ee2eba78bc7ca11fe959a913ec37901b30a193e6665672e8159e194ca133831251205bca75c00dd8b10160a5b6b814e0cc4fc52f48cc2b68819212bcf71ba11785d2c4628363718e9943216a3f4a3f28adcb988997af982a48d793cd9bd0b62648aa2ffed8f373cd7d5ca86ae703415016adf45a1e8ee26a62d023a6a09accca619ca28e3db15cd4ee5b850608c8319e166dc540877683d960d4b9fde0ae4042096ce696532e9d6b8c96f030def011e59a8762753fc0d50ecf30842377249f78c9b3ee164f5f7988a777a4a1ca407f40923737480eca5e0181977b6048d8835b3d3cedd0d36b9c39098e49048c31db9b48decd744f3121b0260e07b9afe9a8a71d9c14a230e48a1b56894c0453b9779bc8fe269e072ee842aa17821ee09b83cfab5e852918a37bbc1414b7f62cd5dc4c254bfa4
+ [1660952198157] [17290:5268348] CHIP: [DMG] buffer_ptr = 140233457951312
+ [1660952198157] [17290:5268348] CHIP: [DMG] }
+ [1660952198157] [17290:5268348] CHIP: [DMG]
+ [1660952198157] [17290:5268348] CHIP: [DMG] DAC/PAI (463) =
+ [1660952198157] [17290:5268348] CHIP: [DMG] {
+ -----BEGIN CERTIFICATE-----
+ MIIByzCCAXGgAwIBAgIIVq2CIq2UW2QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP
+ TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjAyMDUw
+ MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTElMCMGA1UEAwwcTWF0dGVyIERldiBQ
+ QUkgMHhGRkYxIG5vIFBJRDEUMBIGCisGAQQBgqJ8AgEMBEZGRjEwWTATBgcqhkjO
+ PQIBBggqhkjOPQMBBwNCAARBmpMVwhc+DIyHbQPM/JRIUmR/f+xeUIL0BZko7KiU
+ xZQVEwmsYx5MsDOSr2hLC6+35ls7gWLC9Sv5MbjneqqCo2YwZDASBgNVHRMBAf8E
+ CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUY1QOR/ZLHDjROISk
+ YtFsGV2P+zwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI
+ zj0EAwIDSAAwRQIhALLvJ/Sa6bUPuR7qyUxNC9u415KcbLiPrOUpNo0SBUwMAiBl
+ Xckrhr2QmIKmxiF3uCXX0F7b58Ivn+pxIg5+pwP4kQ==
+ -----END CERTIFICATE-----
+ [1660952198157] [17290:5268348] CHIP: [DMG] }
+ [1660952198157] [17290:5268348] CHIP: [DMG]
disabled: true
- label:
@@ -77,153 +102,49 @@ tests:
[1657774717.722181][7956:7961] CHIP:TOO: certificate: 308201E73082018EA003020102020869CDF10DE9E54ED1300A06082A8648CE3D040302303D3125302306035504030C1C4D6174746572204465762050414920307846464631206E6F2050494431143012060A2B0601040182A27C02010C04464646313020170D3232303230353030303030305A180F39393939313233313233353935395A30533125302306035504030C1C4D61747465722044657620444143203078464646312F30783830303131143012060A2B0601040182A27C02010C044646463131143012060A2B0601040182A27C02020C04383030313059301306072A8648CE3D020106082A8648CE3D03010703420004463AC69342910A0E5588FC6FF56BB63E62ECCECB148F7D4EB03EE552601415767D16A5C663F793E49123260B8297A7CD7E7CFC7B316B39D98E90D29377738E82A360305E300C0603551D130101FF04023000300E0603551D0F0101FF040403020780301D0603551D0E0416041488DDE7B300382932CFF734C04624810F44168A6F301F0603551D2304183016801463540E47F64B1C38D13884A462D16C195D8FFB3C300A06082A8648CE3D040302
[1657774717.722269][7956:7961] CHIP:TOO: ...........: 034700304402200127A27B4B44610EE2FCDC4D2B7885563660BC0F76F17219ED6A08DFB2B3C1CD02206B59E0AF45F3EB2A85B919D35731528C6028C415239545E108E4E54E70971353
[1657774717.722297][7956:7961] CHIP:TOO: }
- disabled: true
- - label: "TH extracts the Authority Key Identifier from the PAI certificate"
- verification: |
- During commissioning we will get PAI certificate, see on TH(chip-tool) log:
- [1659415376.883870][2666:2671] CHIP:CTL: Performing next commissioning step "SendPAICertificateRequest"
- [1659415376.883925][2666:2671] CHIP:CTL: Sending request for PAI certificate
- [1659415376.884015][2666:2671] CHIP:CTL: Sending Certificate Chain request to 0xffffa0000b60 device
- [1659415376.884167][2666:2671] CHIP:DMG: ICR moving to [AddingComm]
- [1659415376.884302][2666:2671] CHIP:DMG: ICR moving to [AddedComma]
- [1659415376.884867][2666:2671] CHIP:IN: Prepared secure message 0xffffb37ec8d8 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 61632i with MessageCounter:72933899.
- [1659415376.884965][2666:2671] CHIP:IN: Sending encrypted msg 0xffffb37ec8d8 with MessageCounter:72933899 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000161D55 msec
- [1659415376.885796][2666:2671] CHIP:DMG: >> to BLE | 72933899 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 384 / Exchange = 61632]
- [1659415376.885890][2666:2671] CHIP:DMG: Header Flags =
- [1659415376.885944][2666:2671] CHIP:DMG: {
- [1659415376.886028][2666:2671] CHIP:DMG: Exchange (0x01) =
- [1659415376.886081][2666:2671] CHIP:DMG: {
- [1659415376.886154][2666:2671] CHIP:DMG: Initiator = true
- [1659415376.886206][2666:2671] CHIP:DMG: }
- [1659415376.886296][2666:2671] CHIP:DMG: }
- [1659415376.886350][2666:2671] CHIP:DMG:
- [1659415376.886438][2666:2671] CHIP:DMG: Encrypted Payload (62 bytes) =
- [1659415376.886492][2666:2671] CHIP:DMG: {
- [1659415376.886542][2666:2671] CHIP:DMG: data = 008001000be258046e751fb56b97dabcc7ee6b6611ede33a66461e188834bb1fe5b6332edb4a3896d32bce2eb59dee722e070c4426af77c82dfca14619bb
- [1659415376.886616][2666:2671] CHIP:DMG: buffer_ptr = 281473366182720
- [1659415376.886666][2666:2671] CHIP:DMG: }
- [1659415376.886714][2666:2671] CHIP:DMG:
- [1659415376.886900][2666:2671] CHIP:DMG: InvokeRequestMessage =
- [1659415376.886962][2666:2671] CHIP:DMG: {
- [1659415376.887039][2666:2671] CHIP:DMG: suppressResponse = false,
- [1659415376.887103][2666:2671] CHIP:DMG: timedRequest = false,
- [1659415376.887162][2666:2671] CHIP:DMG: InvokeRequests =
- [1659415376.887234][2666:2671] CHIP:DMG: [
- [1659415376.887312][2666:2671] CHIP:DMG: CommandDataIB =
- [1659415376.887380][2666:2671] CHIP:DMG: {
- [1659415376.887442][2666:2671] CHIP:DMG: CommandPathIB =
- [1659415376.887538][2666:2671] CHIP:DMG: {
- [1659415376.887633][2666:2671] CHIP:DMG: EndpointId = 0x0,
- [1659415376.887874][2666:2671] CHIP:DMG: ClusterId = 0x3e,
- [1659415376.888039][2666:2671] CHIP:DMG: CommandId = 0x2,
- [1659415376.888125][2666:2671] CHIP:DMG: },
- [1659415376.888225][2666:2671] CHIP:DMG:
- [1659415376.888289][2666:2671] CHIP:DMG: CommandFields =
- [1659415376.888384][2666:2671] CHIP:DMG: {
- [1659415376.888478][2666:2671] CHIP:DMG: 0x0 = 2,
- [1659415376.888560][2666:2671] CHIP:DMG: },
- [1659415376.888655][2666:2671] CHIP:DMG: },
- [1659415376.888728][2666:2671] CHIP:DMG:
- [1659415376.888806][2666:2671] CHIP:DMG: ],
- [1659415376.888877][2666:2671] CHIP:DMG:
- [1659415376.888955][2666:2671] CHIP:DMG: InteractionModelRevision = 1
- [1659415376.889012][2666:2671] CHIP:DMG: },
- [1659415376.889086][2666:2671] CHIP:DMG:
- [1659415376.889368][2666:2671] CHIP:DMG: ICR moving to [CommandSen]
- [1659415376.889523][2666:2671] CHIP:DMG: ICR moving to [AwaitingDe]
- [1659415376.972895][2666:2671] CHIP:DL: HandlePlatformSpecificBLEEvent 16387
- [1659415377.021227][2666:2669] CHIP:DL: Indication received, conn = 0xffffa803b9b0
- [1659415377.021488][2666:2671] CHIP:DL: HandlePlatformSpecificBLEEvent 16389
- [1659415377.122119][2666:2669] CHIP:DL: Indication received, conn = 0xffffa803b9b0
- [1659415377.122505][2666:2671] CHIP:DL: HandlePlatformSpecificBLEEvent 16389
- [1659415377.217641][2666:2669] CHIP:DL: Indication received, conn = 0xffffa803b9b0
- [1659415377.217905][2666:2671] CHIP:DL: HandlePlatformSpecificBLEEvent 16389
- [1659415377.219135][2666:2671] CHIP:DMG: << from BLE | 199585160 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 46479 / Exchange = 61632]
- [1659415377.219238][2666:2671] CHIP:DMG: Header Flags =
- [1659415377.219295][2666:2671] CHIP:DMG: {
- [1659415377.219391][2666:2671] CHIP:DMG: }
- [1659415377.219446][2666:2671] CHIP:DMG:
- [1659415377.219518][2666:2671] CHIP:DMG: Encrypted Payload (527 bytes) =
- [1659415377.219573][2666:2671] CHIP:DMG: {
- [1659415377.219626][2666:2671] CHIP:DMG: data = 008fb500886de50b9dd1c80f8f48187dc9457d6066ed57c1f15550aefb6a675573c3fcff99cc266b26bdbd97c5ac460ff50e513fd8ef02f39294c2e79b507b0d7b6342caea806048b1c64804aae7bb9d4cdb04d4c7c4d345788e332256c05e7ea38eddd7693e4a39cdfe625688f0101cf16af6f5281049b25e47e6931b06c832d9a014a8248d7cfe31d8b75ebb7805b511293591caa108030939b43b951ad2a164692b051201f9c777e769b9632f05b94bc1990718ec3d2e0fa0161da28ec39bc51017c519e994e9fbbc68693e86ae9fa72618a5a0bc9a133e919bf61ca0805a90a09807c5c4b88329bd1d99149788c5464650dc3b7223e11f4d5a487c0b589453f725b035b543b0159801bee756dcd835832af45402931d73f4977371c90a3fd406905b278fefccf607e0699cac0b082d062b563f17d6e9438720a885f6b5d0dd035d652fd9b88790b1e79995030977f4423139eff3d2e36915065474ea1996705bd63b40395344e402c191e54c1c136c4daa31040ea09cc39c5804dd4203763d05e30d2cfd50ed84e12fd01ecf9c49a4bf7fe73c13416af1cc8bed4f5f2e8919f5724d698990115f97c08f43f9dd463883b53d09e6f888ac8a8d8ba91bd65b242ae049cccd4af6fdcfa402877ba10fb560008d07054deb1e9f1a39fd9110930e1e620fc64f999255a52f8064dc1c83fe6aa35de56c44850e932c82919c1f1af174afa75f3ef77c8b08fcace33883
- [1659415377.219729][2666:2671] CHIP:DMG: buffer_ptr = 281473366176768
- [1659415377.219780][2666:2671] CHIP:DMG: }
- [1659415377.219830][2666:2671] CHIP:DMG:
- [1659415377.220104][2666:2671] CHIP:DMG: DAC/PAI (463) =
- [1659415377.220220][2666:2671] CHIP:DMG: {
+ The log has certificate details (starting with ---BEGIN CERTIFICATE and ending with ---END CERTIFICATE ) as highlighted below , save the certificate in .pem file format. Open editor on your TH , save that in file , example: dac.pem
+
+ 1660951953700] [17233:5262446] CHIP: [DMG] data = 0068e9001f1f110e4f813e5e997100f2b1c69eb72b23bd4e69002a0485ecc741a33706d82f20c8ea99d6b830b2f60ed69c07cecba48142c7f3c8ded67e9ed878b5d68fe28facaf111ee3ce4510fc9b00ad13d57c2a7bd8bdcf868ca8e0aa0bb96c873862f32f12a32207a22e33fe3d8124435207df4f5747414a21b9674685a486f0d3c0aae5d96ba2f02067be2221b98415244522a221f570b62c21a83d88a9ee1a085c5a8c8f5d598f7cb168b4b36ca2306a4554a062e058dba25e7058a4e2f9f976fc71e3d6fcdafb40346d74600e033100243c0837f30f2e6fb337582f6a7d122ffc8943bbc17ba447f80fbac538609c9822d0ab95f6c831071a68ccc9cb1e5180f4daf0a1ae16a33ee3ac7d4754d5f6dca657e44f5a1f9405e668ce848132bb62b1fab6f5cd9aa2d4357fd14e516f18f5c158373f21479aef4c290477141e6d1894901a1c88db870fc1fc005be219dce3f708868ba532c657cf98b8d154d569d6f3de7639cdf72cc43af330ddbac0b910a839416e38a8b305a7eb1b069d274c8c31868363615adb08bfe99a4353f34927785acdb8c1619e1d4f8574491a3e77a46e6c5b47bdd722adfcb00937be7f9ba8c53a8188d42795439a435e6f6a26288c9278981dcac442d480ee40397e2a808d4ae55139562111120bd69411ef301d1b6caf3a4793d143c57092d4944ca93e848f553a19145dc6c02a0b68a67ea83b66afd10988737a753ea8d1f49ca534d12590bf7c3fddd0d7d00baf0121c883a743fcd289dab3d2a8e5131bd987
+ [1660951953700] [17233:5262446] CHIP: [DMG] buffer_ptr = 140355398986080
+ [1660951953700] [17233:5262446] CHIP: [DMG] }
+ [1660951953700] [17233:5262446] CHIP: [DMG]
+ [1660951953700] [17233:5262446] CHIP: [DMG] DAC/PAI (491) =
+ [1660951953700] [17233:5262446] CHIP: [DMG] {
-----BEGIN CERTIFICATE-----
- MIIByzCCAXGgAwIBAgIIVq2CIq2UW2QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP
- TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjAyMDUw
- MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTElMCMGA1UEAwwcTWF0dGVyIERldiBQ
- QUkgMHhGRkYxIG5vIFBJRDEUMBIGCisGAQQBgqJ8AgEMBEZGRjEwWTATBgcqhkjO
- PQIBBggqhkjOPQMBBwNCAARBmpMVwhc+DIyHbQPM/JRIUmR/f+xeUIL0BZko7KiU
- xZQVEwmsYx5MsDOSr2hLC6+35ls7gWLC9Sv5MbjneqqCo2YwZDASBgNVHRMBAf8E
- CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUY1QOR/ZLHDjROISk
- YtFsGV2P+zwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI
- zj0EAwIDSAAwRQIhALLvJ/Sa6bUPuR7qyUxNC9u415KcbLiPrOUpNo0SBUwMAiBl
- Xckrhr2QmIKmxiF3uCXX0F7b58Ivn+pxIg5+pwP4kQ==
+ MIIB5zCCAY6gAwIBAgIIac3xDenlTtEwCgYIKoZIzj0EAwIwPTElMCMGA1UEAwwc
+ TWF0dGVyIERldiBQQUkgMHhGRkYxIG5vIFBJRDEUMBIGCisGAQQBgqJ8AgEMBEZG
+ RjEwIBcNMjIwMjA1MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMFMxJTAjBgNVBAMM
+ HE1hdHRlciBEZXYgREFDIDB4RkZGMS8weDgwMDExFDASBgorBgEEAYKifAIBDARG
+ RkYxMRQwEgYKKwYBBAGConwCAgwEODAwMTBZMBMGByqGSM49AgEGCCqGSM49AwEH
+ A0IABEY6xpNCkQoOVYj8b/Vrtj5i7M7LFI99TrA+5VJgFBV2fRalxmP3k+SRIyYL
+ gpenzX58/HsxaznZjpDSk3dzjoKjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/
+ BAQDAgeAMB0GA1UdDgQWBBSI3eezADgpMs/3NMBGJIEPRBaKbzAfBgNVHSMEGDAW
+ gBRjVA5H9kscONE4hKRi0WwZXY/7PDAKBggqhkjOPQQDAgNHADBEAiABJ6J7S0Rh
+ DuL83E0reIVWNmC8D3bxchntagjfsrPBzQIga1ngr0Xz6yqFuRnTVzFSjGAoxBUj
+ lUXhCOTlTnCXE1M=
-----END CERTIFICATE-----
- [1659415377.220439][2666:2671] CHIP:DMG: }
- [1659415377.220490][2666:2671] CHIP:DMG:
- [1659415377.220553][2666:2671] CHIP:DMG:
- [1659415377.220635][2666:2671] CHIP:DMG: Additional Fields =
- [1659415377.220689][2666:2671] CHIP:DMG: {
- [1659415377.220748][2666:2671] CHIP:DMG: peer_address = BLE
- [1659415377.220801][2666:2671] CHIP:DMG: }
- [1659415377.220850][2666:2671] CHIP:DMG:
- [1659415377.220914][2666:2671] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:199585160 on exchange 61632i
- [1659415377.220977][2666:2671] CHIP:EM: Found matching exchange: 61632i, Delegate: 0xffffa803c898
- [1659415377.221071][2666:2671] CHIP:DMG: ICR moving to [ResponseRe]
- [1659415377.221162][2666:2671] CHIP:DMG: InvokeResponseMessage =
- [1659415377.221222][2666:2671] CHIP:DMG: {
- [1659415377.221279][2666:2671] CHIP:DMG: suppressResponse = false,
- [1659415377.221339][2666:2671] CHIP:DMG: InvokeResponseIBs =
- [1659415377.221413][2666:2671] CHIP:DMG: [
- [1659415377.221473][2666:2671] CHIP:DMG: InvokeResponseIB =
- [1659415377.221551][2666:2671] CHIP:DMG: {
- [1659415377.221615][2666:2671] CHIP:DMG: CommandDataIB =
- [1659415377.221691][2666:2671] CHIP:DMG: {
- [1659415377.221764][2666:2671] CHIP:DMG: CommandPathIB =
- [1659415377.221855][2666:2671] CHIP:DMG: {
- [1659415377.221949][2666:2671] CHIP:DMG: EndpointId = 0x0,
- [1659415377.222037][2666:2671] CHIP:DMG: ClusterId = 0x3e,
- [1659415377.222125][2666:2671] CHIP:DMG: CommandId = 0x3,
- [1659415377.222216][2666:2671] CHIP:DMG: },
- [1659415377.222303][2666:2671] CHIP:DMG:
- [1659415377.222377][2666:2671] CHIP:DMG: CommandFields =
- [1659415377.222476][2666:2671] CHIP:DMG: {
- [1659415377.222570][2666:2671] CHIP:DMG: 0x0 = [
- [1659415377.222896][2666:2671] CHIP:DMG: 0x30, 0x82, 0x1, 0xcb, 0x30, 0x82, 0x1, 0x71, 0xa0, 0x3, 0x2, 0x1, 0x2, 0x2, 0x8, 0x56, 0xad, 0x82, 0x22, 0xad, 0x94, 0x5b, 0x64, 0x30, 0xa, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x4, 0x3, 0x2, 0x30, 0x30, 0x31, 0x18, 0x30, 0x16, 0x6, 0x3, 0x55, 0x4, 0x3, 0xc, 0xf, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x50, 0x41, 0x41, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x1, 0xc, 0x4, 0x46, 0x46, 0x46, 0x31, 0x30, 0x20, 0x17, 0xd, 0x32, 0x32, 0x30, 0x32, 0x30, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x18, 0xf, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3d, 0x31, 0x25, 0x30, 0x23, 0x6, 0x3, 0x55, 0x4, 0x3, 0xc, 0x1c, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x20, 0x50, 0x41, 0x49, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x31, 0x20, 0x6e, 0x6f, 0x20, 0x50, 0x49, 0x44, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x1, 0xc, 0x4, 0x46, 0x46, 0x46, 0x31, 0x30, 0x59, 0x30, 0x13, 0x6, 0x7, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x2, 0x1, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x3, 0x1, 0x7, 0x3, 0x42, 0x0, 0x4, 0x41, 0x9a, 0x93, 0x15, 0xc2, 0x17, 0x3e, 0xc, 0x8c, 0x87, 0x6d, 0x3, 0xcc, 0xfc, 0x94, 0x48, 0x52, 0x64, 0x7f, 0x7f, 0xec, 0x5e, 0x50, 0x82, 0xf4, 0x5, 0x99, 0x28, 0xec, 0xa8, 0x94, 0xc5, 0x94, 0x15, 0x13, 0x9, 0xac, 0x63, 0x1e, 0x4c, 0xb0, 0x33, 0x92, 0xaf, 0x68, 0x4b, 0xb, 0xaf, 0xb7, 0xe6, 0x5b, 0x3b, 0x81, 0x62, 0xc2, 0xf5, 0x2b, 0xf9, 0x31, 0xb8, 0xe7, 0x7a, 0xaa, 0x82, 0xa3, 0x66, 0x30, 0x64, 0x30, 0x12, 0x6, 0x3, 0x55, 0x1d, 0x13, 0x1, 0x1, 0xff, 0x4, 0x8, 0x30, 0x6, 0x1, 0x1, 0xff, 0x2, 0x1,
- [1659415377.223073][2666:2671] CHIP:DMG: ] (463 bytes)
- [1659415377.223156][2666:2671] CHIP:DMG: },
- [1659415377.223230][2666:2671] CHIP:DMG: },
- [1659415377.223312][2666:2671] CHIP:DMG:
- [1659415377.223374][2666:2671] CHIP:DMG: },
- [1659415377.223448][2666:2671] CHIP:DMG:
- [1659415377.223505][2666:2671] CHIP:DMG: ],
- [1659415377.223579][2666:2671] CHIP:DMG:
- [1659415377.223637][2666:2671] CHIP:DMG: InteractionModelRevision = 1
- [1659415377.223694][2666:2671] CHIP:DMG: },
- [1659415377.223832][2666:2671] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0003
- [1659415377.223908][2666:2671] CHIP:CTL: Received certificate chain from the device
- [1659415377.224018][2666:2671] CHIP:CTL: Successfully finished commissioning step "SendPAICertificateRequest"
-
+ [1660951953700] [17233:5262446] CHIP: [DMG] }
+ disabled: true
- 1. Save the PAI value from commissioning log of TH in the file as below
- vi pai_6.pem
+ - label: "TH extracts the Authority Key Identifier from the PAI certificate"
+ verification: |
+ 1. Print the PAI value saved in the step above using "openssl x509 -in pai.pem -text" as shown below
- 2. Give the below command to extract the Authority key ID
- openssl x509 -in pai_6.pem -text
+ Get the Authority Key Identifier from the console.
- Verify that below extracted authority key is not same as the SDK"s test PAA
+ Verify that below extracted authority key is not the same as the SDK"s test PAA
1. 78:5C:E7:05:B8:6B:8F:4E:6F:C7:93:AA:60:CB:43:EA:69:68:82:D5
2. 6A:FD:22:77:1F:51:1F:EC:BF:16:41:97:67:10:DC:DC:31:A1:71:7E
- Below certificate has been extracted using the sample DUT, hence the Authority key ID is same as SDK"s test PAA
+ On the reference platform implementation, this authority key id matches. But in real DUT it should not match.
- grl@grl-ThinkPad-L480:~/jul14_2ndcntrl/connectedhomeip$ openssl x509 -in pai_6.pem -text
+ Below certificate has been extracted using the sample DUT, hence the Authority key ID is the same as SDK"s test PAA
+
+ Verify the below authority key identifier (AKID) is signed by a PAA. Extract each cert in the TH PAA trust store using the below command and look for AKID is present in those certificates.
+
+ grl@grl-ThinkPad-L480:~/jul14_2ndcntrl/connectedhomeip$ openssl x509 -in pai.pem -text
Certificate:
Data:
Version: 3 (0x2)
@@ -278,163 +199,9 @@ tests:
verification: |
During commissioning we will get DAC certificate, see on TH(chip-tool) log:
- [1659509320.714103][3165:3170] CHIP:CTL: Performing next commissioning step "SendDACCertificateRequest"
- [1659509320.714155][3165:3170] CHIP:CTL: Sending request for DAC certificate
- [1659509320.714225][3165:3170] CHIP:CTL: Sending Certificate Chain request to 0xffff74000b60 device
- [1659509320.714397][3165:3170] CHIP:DMG: ICR moving to [AddingComm]
- [1659509320.714470][3165:3170] CHIP:DMG: ICR moving to [AddedComma]
- [1659509320.715027][3165:3170] CHIP:IN: Prepared secure message 0xffff74001d38 to 0xFFFFFFFB00000000 (0) of type 0x8 and protocolId (0, 1) on exchange 17089i with MessageCounter:86888459.
- [1659509320.715128][3165:3170] CHIP:IN: Sending encrypted msg 0xffff74001d38 with MessageCounter:86888459 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000ADAD48 msec
- [1659509320.715804][3165:3170] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0f:2753%eth0]:5540 | 86888459 | [Interaction Model (1) / InvokeCommandRequest (0x08) / Session = 29587 / Exchange = 17089]
- [1659509320.715898][3165:3170] CHIP:DMG: Header Flags =
- [1659509320.715952][3165:3170] CHIP:DMG: {
- [1659509320.716035][3165:3170] CHIP:DMG: Exchange (0x05) =
- [1659509320.716089][3165:3170] CHIP:DMG: {
- [1659509320.716158][3165:3170] CHIP:DMG: Initiator = true
- [1659509320.716212][3165:3170] CHIP:DMG: NeedsAck = true
- [1659509320.716264][3165:3170] CHIP:DMG: }
- [1659509320.716353][3165:3170] CHIP:DMG: }
- [1659509320.716405][3165:3170] CHIP:DMG:
- [1659509320.716491][3165:3170] CHIP:DMG: Encrypted Payload (62 bytes) =
- [1659509320.716544][3165:3170] CHIP:DMG: {
- [1659509320.716616][3165:3170] CHIP:DMG: data = 009373000bd02d05c296dbc864194390f3d020eb61ee335c0d61263dd0d5f4849a5c6a601f73c80e6775d2b422e816cf8e3ae224d59c01f53783a657bd0d
- [1659509320.716672][3165:3170] CHIP:DMG: buffer_ptr = 281472627949680
- [1659509320.716742][3165:3170] CHIP:DMG: }
- [1659509320.716793][3165:3170] CHIP:DMG:
- [1659509320.716965][3165:3170] CHIP:DMG: InvokeRequestMessage =
- [1659509320.717029][3165:3170] CHIP:DMG: {
- [1659509320.717084][3165:3170] CHIP:DMG: suppressResponse = false,
- [1659509320.717148][3165:3170] CHIP:DMG: timedRequest = false,
- [1659509320.717206][3165:3170] CHIP:DMG: InvokeRequests =
- [1659509320.717276][3165:3170] CHIP:DMG: [
- [1659509320.717335][3165:3170] CHIP:DMG: CommandDataIB =
- [1659509320.717399][3165:3170] CHIP:DMG: {
- [1659509320.717461][3165:3170] CHIP:DMG: CommandPathIB =
- [1659509320.717535][3165:3170] CHIP:DMG: {
- [1659509320.717788][3165:3170] CHIP:DMG: EndpointId = 0x0,
- [1659509320.717870][3165:3170] CHIP:DMG: ClusterId = 0x3e,
- [1659509320.717947][3165:3170] CHIP:DMG: CommandId = 0x2,
- [1659509320.718019][3165:3170] CHIP:DMG: },
- [1659509320.718116][3165:3170] CHIP:DMG:
- [1659509320.718181][3165:3170] CHIP:DMG: CommandFields =
- [1659509320.718273][3165:3170] CHIP:DMG: {
- [1659509320.718436][3165:3170] CHIP:DMG: 0x0 = 1,
- [1659509320.718521][3165:3170] CHIP:DMG: },
- [1659509320.718609][3165:3170] CHIP:DMG: },
- [1659509320.718706][3165:3170] CHIP:DMG:
- [1659509320.718766][3165:3170] CHIP:DMG: ],
- [1659509320.718855][3165:3170] CHIP:DMG:
- [1659509320.718915][3165:3170] CHIP:DMG: InteractionModelRevision = 1
- [1659509320.718971][3165:3170] CHIP:DMG: },
- [1659509320.719024][3165:3170] CHIP:DMG:
- [1659509320.719407][3165:3170] CHIP:DMG: ICR moving to [CommandSen]
- [1659509320.719536][3165:3170] CHIP:DMG: ICR moving to [AwaitingDe]
- [1659509320.719608][3165:3170] CHIP:EM: Sending Standalone Ack for MessageCounter:148943591 on exchange 17088i
- [1659509320.720332][3165:3170] CHIP:IN: Prepared secure message 0xffff88e5c9e8 to 0xFFFFFFFB00000000 (0) of type 0x10 and protocolId (0, 0) on exchange 17088i with MessageCounter:86888460.
- [1659509320.720493][3165:3170] CHIP:IN: Sending encrypted msg 0xffff88e5c9e8 with MessageCounter:86888460 to 0xFFFFFFFB00000000 (0) at monotonic time: 0000000000ADAD4E msec
- [1659509320.721152][3165:3170] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0f:2753%eth0]:5540 | 86888460 | [Secure Channel (0) / Standalone Ack (0x10) / Session = 29587 / Exchange = 17088]
- [1659509320.721242][3165:3170] CHIP:DMG: Header Flags =
- [1659509320.721298][3165:3170] CHIP:DMG: {
- [1659509320.721381][3165:3170] CHIP:DMG: Exchange (0x03) =
- [1659509320.721434][3165:3170] CHIP:DMG: {
- [1659509320.721505][3165:3170] CHIP:DMG: Initiator = true
- [1659509320.721562][3165:3170] CHIP:DMG: AckMsg = 148943591
- [1659509320.721634][3165:3170] CHIP:DMG: }
- [1659509320.721706][3165:3170] CHIP:DMG: }
- [1659509320.721759][3165:3170] CHIP:DMG:
- [1659509320.721846][3165:3170] CHIP:DMG: Encrypted Payload (34 bytes) =
- [1659509320.721901][3165:3170] CHIP:DMG: {
- [1659509320.721972][3165:3170] CHIP:DMG: data = 009373000cd02d05ff4214e467b1c7a3664b8d8c5628c4e291f833b9f2f35d953235
- [1659509320.722027][3165:3170] CHIP:DMG: buffer_ptr = 281472627939824
- [1659509320.722077][3165:3170] CHIP:DMG: }
- [1659509320.722125][3165:3170] CHIP:DMG:
- [1659509320.722485][3165:3170] CHIP:EM: Flushed pending ack for MessageCounter:148943591 on exchange 17088i
- [1659509320.724260][3165:3170] CHIP:DMG: << from UDP:[fe80::e65f:1ff:fe0f:2753%eth0]:5540 | 148943592 | [Interaction Model (1) / InvokeCommandResponse (0x09) / Session = 49327 / Exchange = 17089]
- [1659509320.724362][3165:3170] CHIP:DMG: Header Flags =
- [1659509320.724417][3165:3170] CHIP:DMG: {
- [1659509320.724503][3165:3170] CHIP:DMG: Exchange (0x06) =
- [1659509320.724558][3165:3170] CHIP:DMG: {
- [1659509320.724647][3165:3170] CHIP:DMG: AckMsg = 86888459
- [1659509320.724704][3165:3170] CHIP:DMG: NeedsAck = true
- [1659509320.724756][3165:3170] CHIP:DMG: }
- [1659509320.724827][3165:3170] CHIP:DMG: }
- [1659509320.724879][3165:3170] CHIP:DMG:
- [1659509320.724950][3165:3170] CHIP:DMG: Encrypted Payload (559 bytes) =
- [1659509320.725003][3165:3170] CHIP:DMG: {
- [1659509320.725056][3165:3170] CHIP:DMG: data = 00afc000e8b2e008b40e7ea031654ba52d0e71f9a877ec233377ef9eef00611412271b31992e30753df53f0bfac6b5f9a30217f67d03a17653c5ee991a0266f3ef286188e3f977d3dd94fbbb60323a74c2b685309d607af14c0b4c7214c7579cf43e9ed90d4256382e5d40bc46796e06fdb6b220bbc5e7b6fc812f2c5bc357fcbda79d6dcb464f42d04ab1708fdfb5ea8b90c3720257e9da78ba877b24b99d7f104c4ee199923c876d8c07903beab5f93a784f226d1e82f8d5f001f23457965c9ddbcc8661d00b7202a9932b1ae92ff36d80b8e5ac2d18d65e8a3957486ef86ca4f056218677958f9be17ab6c54d3dedb7e88a144ef607f692d3131276dbb2803e6e93dc5d330ef13b0e00289e6a9186e1f1c0e5b9615ace2c1d544f4b6bc58f700b47a11fc2278977b2a1595c96532daefe44db899e3f75f473ffbf4ac1e93ba76033dfa562beedf4b9a5fe9b985e6a0227efdcf5ced1b966bd78addb1ad5950c6378dc149a6372888683a8539a4d59958c7460b1968b0d8dcfa2d3660dc07c4e0e44095ef14c4cdd249727caad086e8630f9df296d8fa426f01f58f532ac1a91cb1da874055711edd4f13c722a0e66f850d0f455c09fbc2c049852ec936545b2bf2798f9c614e4488707a1f38fee8c08fe3c886fd89d9e3578fad68077133c7e086d5ba7df2a7323d10f03602d46c1e172e993fd3b6d5d468b7da8dc315711d53ded3ab7f38f7517f23394c7c9438ce5726449cca510956add995f76140fe3bd0a63ea024058898635373e68e9e3
- [1659509320.725163][3165:3170] CHIP:DMG: buffer_ptr = 281472627931376
- [1659509320.725214][3165:3170] CHIP:DMG: }
- [1659509320.725263][3165:3170] CHIP:DMG:
- [1659509320.725501][3165:3170] CHIP:DMG: DAC/PAI (491) =
- [1659509320.725616][3165:3170] CHIP:DMG: {
- -----BEGIN CERTIFICATE-----
- MIIB5zCCAY6gAwIBAgIIac3xDenlTtEwCgYIKoZIzj0EAwIwPTElMCMGA1UEAwwc
- TWF0dGVyIERldiBQQUkgMHhGRkYxIG5vIFBJRDEUMBIGCisGAQQBgqJ8AgEMBEZG
- RjEwIBcNMjIwMjA1MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMFMxJTAjBgNVBAMM
- HE1hdHRlciBEZXYgREFDIDB4RkZGMS8weDgwMDExFDASBgorBgEEAYKifAIBDARG
- RkYxMRQwEgYKKwYBBAGConwCAgwEODAwMTBZMBMGByqGSM49AgEGCCqGSM49AwEH
- A0IABEY6xpNCkQoOVYj8b/Vrtj5i7M7LFI99TrA+5VJgFBV2fRalxmP3k+SRIyYL
- gpenzX58/HsxaznZjpDSk3dzjoKjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/
- BAQDAgeAMB0GA1UdDgQWBBSI3eezADgpMs/3NMBGJIEPRBaKbzAfBgNVHSMEGDAW
- gBRjVA5H9kscONE4hKRi0WwZXY/7PDAKBggqhkjOPQQDAgNHADBEAiABJ6J7S0Rh
- DuL83E0reIVWNmC8D3bxchntagjfsrPBzQIga1ngr0Xz6yqFuRnTVzFSjGAoxBUj
- lUXhCOTlTnCXE1M=
- -----END CERTIFICATE-----
- [1659509320.725847][3165:3170] CHIP:DMG: }
- [1659509320.725898][3165:3170] CHIP:DMG:
- [1659509320.725961][3165:3170] CHIP:DMG:
- [1659509320.726043][3165:3170] CHIP:DMG: Additional Fields =
- [1659509320.726099][3165:3170] CHIP:DMG: {
- [1659509320.726158][3165:3170] CHIP:DMG: peer_address = UDP:[fe80::e65f:1ff:fe0f:2753%eth0]:5540
- [1659509320.726215][3165:3170] CHIP:DMG: }
- [1659509320.726265][3165:3170] CHIP:DMG:
- [1659509320.726334][3165:3170] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:148943592 on exchange 17089i
- [1659509320.726446][3165:3170] CHIP:EM: Found matching exchange: 17089i, Delegate: 0xffff74009c78
- [1659509320.726534][3165:3170] CHIP:EM: Rxd Ack; Removing MessageCounter:86888459 from Retrans Table on exchange 17089i
- [1659509320.726594][3165:3170] CHIP:EM: Removed CHIP MessageCounter:86888459 from RetransTable on exchange 17089i
- [1659509320.726669][3165:3170] CHIP:DMG: ICR moving to [ResponseRe]
- [1659509320.726761][3165:3170] CHIP:DMG: InvokeResponseMessage =
- [1659509320.726818][3165:3170] CHIP:DMG: {
- [1659509320.726876][3165:3170] CHIP:DMG: suppressResponse = false,
- [1659509320.726934][3165:3170] CHIP:DMG: InvokeResponseIBs =
- [1659509320.727010][3165:3170] CHIP:DMG: [
- [1659509320.727068][3165:3170] CHIP:DMG: InvokeResponseIB =
- [1659509320.727154][3165:3170] CHIP:DMG: {
- [1659509320.727217][3165:3170] CHIP:DMG: CommandDataIB =
- [1659509320.727291][3165:3170] CHIP:DMG: {
- [1659509320.727362][3165:3170] CHIP:DMG: CommandPathIB =
- [1659509320.727442][3165:3170] CHIP:DMG: {
- [1659509320.727523][3165:3170] CHIP:DMG: EndpointId = 0x0,
- [1659509320.727607][3165:3170] CHIP:DMG: ClusterId = 0x3e,
- [1659509320.727698][3165:3170] CHIP:DMG: CommandId = 0x3,
- [1659509320.727777][3165:3170] CHIP:DMG: },
- [1659509320.727857][3165:3170] CHIP:DMG:
- [1659509320.727928][3165:3170] CHIP:DMG: CommandFields =
- [1659509320.728004][3165:3170] CHIP:DMG: {
- [1659509320.728081][3165:3170] CHIP:DMG: 0x0 = [
- [1659509320.728404][3165:3170] CHIP:DMG: 0x30, 0x82, 0x1, 0xe7, 0x30, 0x82, 0x1, 0x8e, 0xa0, 0x3, 0x2, 0x1, 0x2, 0x2, 0x8, 0x69, 0xcd, 0xf1, 0xd, 0xe9, 0xe5, 0x4e, 0xd1, 0x30, 0xa, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x4, 0x3, 0x2, 0x30, 0x3d, 0x31, 0x25, 0x30, 0x23, 0x6, 0x3, 0x55, 0x4, 0x3, 0xc, 0x1c, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x20, 0x50, 0x41, 0x49, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x31, 0x20, 0x6e, 0x6f, 0x20, 0x50, 0x49, 0x44, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x1, 0xc, 0x4, 0x46, 0x46, 0x46, 0x31, 0x30, 0x20, 0x17, 0xd, 0x32, 0x32, 0x30, 0x32, 0x30, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x18, 0xf, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x53, 0x31, 0x25, 0x30, 0x23, 0x6, 0x3, 0x55, 0x4, 0x3, 0xc, 0x1c, 0x4d, 0x61, 0x74, 0x74, 0x65, 0x72, 0x20, 0x44, 0x65, 0x76, 0x20, 0x44, 0x41, 0x43, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x31, 0x2f, 0x30, 0x78, 0x38, 0x30, 0x30, 0x31, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x1, 0xc, 0x4, 0x46, 0x46, 0x46, 0x31, 0x31, 0x14, 0x30, 0x12, 0x6, 0xa, 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0xa2, 0x7c, 0x2, 0x2, 0xc, 0x4, 0x38, 0x30, 0x30, 0x31, 0x30, 0x59, 0x30, 0x13, 0x6, 0x7, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x2, 0x1, 0x6, 0x8, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x3, 0x1, 0x7, 0x3, 0x42, 0x0, 0x4, 0x46, 0x3a, 0xc6, 0x93, 0x42, 0x91, 0xa, 0xe, 0x55, 0x88, 0xfc, 0x6f, 0xf5, 0x6b, 0xb6, 0x3e, 0x62, 0xec, 0xce, 0xcb, 0x14, 0x8f, 0x7d, 0x4e, 0xb0, 0x3e, 0xe5, 0x52, 0x60, 0x14, 0x15, 0x76, 0x7d, 0x16, 0xa5, 0xc6, 0x63, 0xf7, 0x93, 0xe4, 0x91, 0x23, 0x26, 0xb, 0x82, 0x97, 0xa7, 0xcd, 0x7e, 0x7c, 0xfc, 0x
- [1659509320.728579][3165:3170] CHIP:DMG: ] (491 bytes)
- [1659509320.728664][3165:3170] CHIP:DMG: },
- [1659509320.728738][3165:3170] CHIP:DMG: },
- [1659509320.728818][3165:3170] CHIP:DMG:
- [1659509320.728879][3165:3170] CHIP:DMG: },
- [1659509320.728952][3165:3170] CHIP:DMG:
- [1659509320.729010][3165:3170] CHIP:DMG: ],
- [1659509320.729082][3165:3170] CHIP:DMG:
- [1659509320.729140][3165:3170] CHIP:DMG: InteractionModelRevision = 1
- [1659509320.729197][3165:3170] CHIP:DMG: },
- [1659509320.729335][3165:3170] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0003
- [1659509320.729409][3165:3170] CHIP:CTL: Received certificate chain from the device
- [1659509320.729476][3165:3170] CHIP:CTL: Successfully finished commissioning step "SendDACCertificateRequest"
-
-
-
-
-
- "1. Save the DAC value from commissioning log of TH in the file as below
- vi dac.pem
+ 1. From the dac.pem file saved above step, print the contents on the console using "openssl x509 -in dac.pem -text" as shown below.
- 2. Give the below command to extract the Authority key ID
+ 2. extract the Authority key ID and save the public key as pk1
openssl x509 -in dac.pem -text
Below certificate has been extracted using the sample DUT, hence the Authority key ID is same as SDK"s test PAA
@@ -656,6 +423,7 @@ tests:
[1659415377.223908][2666:2671] CHIP:CTL: Received certificate chain from the device
[1659415377.224018][2666:2671] CHIP:CTL: Successfully finished commissioning step "SendPAICertificateRequest"
+ To extract public key follow the below procedure and save the public key as pk2, make sure the pk2 doesn"t match pk1 in step 5
"1. Save the PAI value from commissioning log of TH in the file as below
vi pai_6.pem
@@ -663,7 +431,11 @@ tests:
2. Give the below command to extract the Authority key ID
openssl x509 -in pai_6.pem -text
- Below certificate has been extracted using the sample DUT, hence the Authority key ID is same as SDK"s test PAA
+ Below certificate has been extracted using the sample DUT, hence the Authority key ID is same as in SDK"s test PAA certs
+
+ 3. Extract the public key Public-Key: (256 bit) from the below cert
+
+ 4. Verify that pk_1 does not match with the pk_2
grl@grl-ThinkPad-L480:~/jul14_2ndcntrl/connectedhomeip$ openssl x509 -in pai_6.pem -text
Certificate:
@@ -715,10 +487,3 @@ tests:
i+oDPOUDAiAlVJQ75X1T1sR199I+v8/CA2zSm6Y5PsfvrYcUq3GCGQ==
-----END CERTIFICATE-----
disabled: true
-
- - label:
- "Repeat Step 1 to 4 with DUT2, saving the PAI, DAC and public key as
- pk_2"
- verification: |
- verification step to be updated.
- disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml
index 78dfc1daa202ef..a71ae7c5d1d491 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_12.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual)
+ disabled: true
+
- label: "Scan the DUTs QR code using the TH."
verification: |
1. Run DUT. Example for DUT=all-clusters-app
@@ -47,6 +52,9 @@ tests:
2. Parse onboarding payload using TH=chip-tool
$ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00
+
+ Verify in TH as commissioner side:
+
[1657214153060] [29000:16610528] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00
[1657214153060] [29000:16610528] CHIP: [SPL] Version: 0
[1657214153060] [29000:16610528] CHIP: [SPL] VendorID: 65521
@@ -57,25 +65,17 @@ tests:
[1657214153060] [29000:16610528] CHIP: [SPL] Passcode: 20202021
disabled: true
- - label:
- "Verify that the TH presents the user with a pairing hint in the
- CommissioningModeInitialStepsHint field of the DCL. Verify that the
- CommissioningCustomFlow field is set to a value = 0"
- verification: |
- 1. Verify CommissioningCustomFlow=0
- 2. Verify CommissioningModeInitialStepsHint contains a valid, non-zero integer = 1 for Standard Commissioning flow
- disabled: true
-
- - label:
- "If CommissioningCustomFlow field in Step 2 = 0 (Standard
- Commissioning Flow), reboot the DUT device"
+ - label: "Reboot the DUT device."
verification: |
1. Verify DUT is advertising in commissioning mode. On DUT, verify through commissioning
+ Verify in TH as commissioner side:
+
$ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
...
[1657214364908] [29006:16612760] CHIP: [CTL] Starting commissioning discovery over DNS-SD
- [1657214364908] [29006:16612760] CHIP: [DL] Browsing for: _matterc._udp,_L3840 [1657214365080] [29006:16612761] CHIP: [DL] Mdns: OnBrowseAdd name: E5EFE5FB9DC494B9, type: _matterc._udp., domain: local., interface: 7 [1657214365080] [29006:16612761] CHIP: [DL] Resolve type=_matterc._udp name=E5EFE5FB9DC494B9 interface=7
+ [1657214364908] [29006:16612760] CHIP: [DL] Browsing for: _matterc._udp,_L3840
+ [1657214365080] [29006:16612761] CHIP: [DL] Mdns: OnBrowseAdd name: E5EFE5FB9DC494B9, type: _matterc._udp., domain: local., interface: 7 [1657214365080] [29006:16612761] CHIP: [DL] Resolve type=_matterc._udp name=E5EFE5FB9DC494B9 interface=7
[1657214365080] [29006:16612761] CHIP: [DL] Mdns : OnNewInterface hostname:DCA6328D2B9F0000.local. fullname:E5EFE5FB9DC494B9._matterc._udp.local. interface: 7 [1657214365082] [29006:16612761] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2
[1657214365082] [29006:16612761] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fe80::1e81:3e0:3865:2d29
[1657214365082] [29006:16612761] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.10
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml
index ad93647feb9eb4..f0422326fb99a3 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_13.yaml
@@ -28,11 +28,17 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual)
+ disabled: true
+
- label: "Power on the DUT device."
verification: |
1. Verify DUT is NOT advertising in commissioning mode. On DUT, the DUT should not show up
$ ./chip-tool discover commissionables
+ TH Commissioner should not discover the DUT here
disabled: true
- label: "Scan the DUTs QR code from the previous step using the TH."
@@ -42,6 +48,8 @@ tests:
2. Parse onboarding payload using TH=chip-tool
$ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00
+
+ Verify in TH as commissioner side:
[1651193251086] [15494:447566] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00
[1651193251087] [15494:447566] CHIP: [SPL] CommissioningFlow: 1
[1651193251087] [15494:447566] CHIP: [SPL] VendorID: 65521
@@ -53,23 +61,16 @@ tests:
disabled: true
- label:
- "Verify that the TH presents the user with a pairing hint in the
- CommissioningModeInitialStepsHint field of the DCL. Verify that the
- CommissioningCustomFlow field is set to a value = 1"
- verification: |
- 1. Verify CommissioningCustomFlow=1
- 2. Verify CommissioningModeInitialStepsHint contains a valid, non-zero integer
- disabled: true
-
- - label:
- "Follow any steps from the resources provided by the pairing hint for
- putting the DUT Commissionee into commissioning mode"
+ "Follow any DUT-specific steps for putting the DUT Commissionee into
+ commissioning mode"
verification: |
1. Follow vendor-specific steps from the pairing hint to put DUT into commissioning mode
2. Verify DUT is advertising in commissioning mode. On DUT,
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
+
[1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32
[1651192893436] [15304:442604] CHIP: [DIS] Vendor ID: 65521
[1651192893436] [15304:442604] CHIP: [DIS] Product ID: 32769
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml
index 5635299f36e5ac..37dea4cf954852 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_14.yaml
@@ -28,11 +28,17 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1.3 - QR code/ Manual Pairing Code is printed on the device or in additional provided materials (ex: manual)
+ disabled: true
+
- label: "Power on the DUT device."
verification: |
1. Verify DUT is NOT advertising in commissioning mode. On DUT, the DUT should not show up
$ ./chip-tool discover commissionables
+ TH Commissioner should not discover the DUT here
disabled: true
- label: "Scan the DUTs QR code from the previous step using the TH."
@@ -42,6 +48,8 @@ tests:
2. Parse onboarding payload using TH=chip-tool
$ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00
+ Verify in TH as commissioner side:
+
[1651193251086] [15494:447566] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00
[1651193251087] [15494:447566] CHIP: [SPL] CommissioningFlow: 2
[1651193251087] [15494:447566] CHIP: [SPL] VendorID: 65521
@@ -53,24 +61,17 @@ tests:
disabled: true
- label:
- "Verify that the TH presents User with a URL in the
- CommissioningCustomFlowUrl field of the DCL. Verify that the
- CommissioningCustomFlow field is set to a value = 2"
+ "Follow any DUT-specific steps, guided by a service provided by the
+ DUTs manufacturer for initial device setup, then place the DUT
+ Commissionee into commissioning mode."
verification: |
- 1. Verify CommissioningCustomFlow=2
- 2. Verify CommissioningModeInitialStepsHint has bit 0 (Power Cycle) set to 0 and bit 1 (Device Manufacturer URL) set to 1
- 3. Verify CommissioningModeInitialStepsHint contains a valid, non-zero integer
- disabled: true
-
- - label:
- "Follow any steps from the URL provided by the pairing hint in the DCL
- for putting the DUT Commissionee into commissioning mode"
- verification: |
- 1. Follow vendor-specific steps from the pairing hint to put DUT into commissioning mode
+ 1. Follow DUT vendor-specific steps to put DUT into commissioning mode
2. Verify DUT is advertising in commissioning mode. On DUT,
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
+
[1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32
[1651192893436] [15304:442604] CHIP: [DIS] Vendor ID: 65521
[1651192893436] [15304:442604] CHIP: [DIS] Product ID: 32769
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml
index 7733f987ba9128..35e8f4f6d594e2 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_15.yaml
@@ -26,6 +26,11 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1 - Onboarding payload is printed on the device or in additional provided materials (ex: manual) through a QR Code, a manually entered code or as content in an NFC tag.
+ disabled: true
+
- label:
"Using the TH Onboarding payload reader, scan or read the Onboarding
payload from DUT1"
@@ -33,6 +38,8 @@ tests:
1. Parse payload for DUT1
$ ./chip-tool payload parse-setup-payload MT:-24J0AFN00KA0648G00
+ Verify in TH as commissioner side:
+
[1651194471211] [16050:465158] CHIP: [SPL] Parsing base38Representation: MT:-24J0AFN00KA0648G00
[1651194471211] [16050:465158] CHIP: [SPL] CommissioningFlow: 0
[1651194471211] [16050:465158] CHIP: [SPL] VendorID: 65521
@@ -58,6 +65,8 @@ tests:
1. Parse payload for DUT2
$ ./chip-tool payload parse-setup-payload MT:-24J0IRV01WCCN68G00
+ Verify in TH as commissioner side:
+
[1651194577916] [16053:466154] CHIP: [SPL] Parsing base38Representation: MT:-24J0IRV01WCCN68G00
[1651194577916] [16053:466154] CHIP: [SPL] CommissioningFlow: 0
[1651194577916] [16053:466154] CHIP: [SPL] VendorID: 65521
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml
index f2b6606fc1ce17..ef616a60cd51e5 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_5.yaml
@@ -27,11 +27,23 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1.7 - NFC Spec Requirements: NFC tags SHALL use the NFC Data Exchange Format (NDEF) as defined by NFC ForumTM in [NDEF 1.0 NFCForum-TS-NDEF 1.0]
+
+ An NDEF message is defined as a group of individual NDEF records as defined by NFC ForumTM in NFC Record Type Definition (RTD) RTD 1.0 [NFCForum-TS-RTD 1.0]
+
+ Onboarding Payload for NFC tags SHALL use NDEF URI Record Type Definition as defined by NFC ForumTM in URI Record Type Definition RTD-URI 1.0 [NFCForum-TS-RTD URI 1.0]. The URI for defined in section 3.3 Format
+ disabled: true
+
- label:
"Keep the DUT in packaging and bring in TH NFC scanner close to the
DUT packaging."
verification: |
- Vendor specific field verification
+ 1. Using an NFC Scanner, physically bring the scanner close to the DUT in it"s packaging.
+ 2. NFC Scanner should not be able to read the Onboarding Payload from the DUT"s NFC tag.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label:
@@ -39,7 +51,10 @@ tests:
not put the DUT in pairing mode. Bring in TH NFC scanner close to the
DUTs NFC tag"
verification: |
- Vendor specific field verification
+ 1. Using an NFC Scanner, physically bring the scanner close to the DUT that is out of it"s packaging.
+ 2. NFC Scanner should not be able to read the Onboarding Payload from the DUT"s NFC tag.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label:
@@ -47,13 +62,19 @@ tests:
scanner close to the DUTs NFC tag"
PICS: MCORE.DD.PHYSICAL_TAMPERING
verification: |
- Vendor specific field verification
+ 1. Power on the DUT.
+ 2. Using an NFC Scanner, physically bring the scanner close to the DUT.
+ 3. NFC Scanner should not be able to read the Onboarding Payload from the DUT"s NFC tag.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label: "DUT must have an explicit trigger of the the NFC pairing mode"
PICS: MCORE.DD.PHYSICAL_TAMPERING
verification: |
- Vendor specific field verification
+ 1. Manually verify that the DUT has an explicit trigger (a physical action that enables the NFC pairing flow).
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label:
@@ -61,40 +82,68 @@ tests:
close to NFC tag"
PICS: MCORE.DD.PHYSICAL_TAMPERING
verification: |
- Vendor specific field verification
+ 1. Power on the DUT.
+ 2. Put the DUT into pairing mode.
+ 2. Using an NFC Scanner, physically bring the scanner close to the DUT
+ 3. NFC Scanner should be able to read the Onboarding Payload from the DUT"s NFC tag.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label: "Power on DUT. Bring in NFC scanner close to NFC tag"
PICS: MCORE.DD.PHYSICAL_TAMPERING
verification: |
- Vendor specific field verification
+ 1. Power on the DUT.
+ 2. Using an NFC Scanner, physically bring the scanner close to the DUT.
+ 3. NFC Scanner should be able to read the Onboarding Payload from the DUT"s NFC tag.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label: "Wait for the pairing mode to expire on device"
verification: |
- Vendor specific field verification
+ 1. After pairing mode expires on the DUT, verify that the NFC Scanner cannot read advertisements from the DUT.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label: "For Read only Tags, try to write using NFC tool a payload to DUT"
verification: |
- Vendor specific field verification
+ 1. Using an NFC-programmer tool, attempt to write a payload to the DUT"s NFC tag
+ 2. DUT should reject the attempt and the NFC tag should not have been written to.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label:
"For Programmable Tag, NFC tag must be read only OTA. Try to write a
payload to DUT using NFC tool"
verification: |
- Vendor specific field verification
+ 1. Using an NFC-programmer tool, attempt to write a payload to the DUT"s NFC tag
+ 2. DUT should reject the attempt and the NFC tag should not have been written to.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label:
"Optional For Programmable Tag, NFC tag may be reconfigured using
wired means"
verification: |
- Vendor specific field verification
+ 1. This is vendor-specific, attempt to write a payload to the DUT"s NFC tag by way of a physical wired connection.
+ 2. DUT"s NFC tag should have been written to.
+
+ Note: chip-tool does not support physically scanning an NFC tag
disabled: true
- label: "Using TH NFC scanner - read NFC tag Reader type"
verification: |
- Vendor specific field verification
+ 1. Using an NFC Scanner, physically bring the scanner close to the DUT
+ 2. DUT"s NFC tag should have a Reader type equal to 2 or greater
+
+ Note: chip-tool does not support physically scanning an NFC tag
+ disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml
index b1de25771fb85c..721c334cf07c80 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_6.yaml
@@ -25,12 +25,26 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ Final label of DUT is ready to be scanned
+ disabled: true
+
- label: "Scan the DUTs QR code using the TH QR code reader"
verification: |
- Vendor specific field testcase
+ 1. Scan the QR code with a QR Code scanning device.
+ 2. Vendor specific field testcase that should be manually verified using the requirements in the Expected Outcome.
disabled: true
- label: "Verify QR code version"
verification: |
- Vendor specific field verification
+ 1. Manually verify the QR code version by referring to section 5.1.3.2 "QR Code Format" of the spec document to ensure it follows the ISO/IEC 18004:2015 (https://www.iso.org/standard/62021.html) specifications with accurate:
+ - Module size
+ - ECC Level
+ - Alphanumeric capacity
+ - Total available payload, excluding prefix (bits)
+ - Available payload for TLV data (bits)
+ 2. Vendor specific field test case that should be manually verified using the requirements in the Expected Outcome.
+
+ Note: chip-tool is not used to verify this test step
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml
index 6bfb9187288b34..9f2689fe3b10bb 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_7.yaml
@@ -25,7 +25,12 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1.4.2 - Manual Pairing Code is printed on the device or in additional provided materials (ex: manual)"
+ disabled: true
+
- label: "Verify using instruments"
verification: |
- Vendor specific field testcase
+ Vendor specific field testcase that should be manually verified using the requirements in the Expected Outcome.
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml
index 26a0b7563571df..7f8cc8a2de63d2 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_1_8.yaml
@@ -27,11 +27,41 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual). Device also has additional TLV data with a non-zero length appended to the end of the QR code.
+
+ An example onboarding QR code could be "MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes:
+
+ - 3-bit Version String=000
+
+ - 16-bit Vendor ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier")
+
+ - 16-bit Product ID=0x8001 (as defined in section 2.5.3. "Product Identifier")
+
+ - 2-bit Custom Flow=10 (Custom Commissioning Flow = 2)
+
+ - 8-bit Discovery Capabilities Bitmask=00000100 (OnNetwork)
+
+ - 12-bit Discriminator=0xF00
+
+ - 27-bit Passcode=20202021
+
+ - 4-bit Padding=0000
+
+ - TLV Data=0x152C000A3132333435363738393018 included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data")
+ disabled: true
+
- label: "Scan the TH Devices QR code using DUT"
PICS: MCORE.DD.SCAN_QR_CODE
verification: |
1. Get the QR code from the TH
- ubuntu@matter-7:~/Apr18_dut/connectedhomeip/examples/all-clusters-app/linux/out/all-clusters-app$ sudo ./chip-all-clusters-app --wifi
+ $ sudo ./chip-all-clusters-app --wifi
[13293:13293] CHIP:DL: Device Configuration:
[1653306603.740569][13293:13293] CHIP:DL: Serial Number: TEST_SN
@@ -67,9 +97,9 @@ tests:
2. Parse the DUT"s QR Code using the TH commissioner: chip-tool
- ubuntu@matter-7:~/Apr18_cntrl/connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool payload parse-setup-payload MT:-24J048N01KA0648G00
+ $ ./chip-tool payload parse-setup-payload MT:-24J048N01KA0648G00
- Verify in DUT as client side:
+ Verify in DUT as commissioner side:
[1650266365.939678][10146:10146] CHIP:SPL: CommissioningFlow: 2
[1650266365.939704][10146:10146] CHIP:SPL: VendorID: 65521
[1650266365.939724][10146:10146] CHIP:SPL: Version: 0
@@ -84,8 +114,8 @@ tests:
the Matter network."
verification: |
./chip-tool pairing code 1 MT:-24J042C00KA0648G00
-
- Verify in DUT as client side:
+ No applicable TH logs.
+ Verify in DUT as commissioner side:
CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005
CHIP:CTL: Received CommissioningComplete response, errorCode=0
CHIP:CTL: Successfully finished commissioning step "SendComplete"
@@ -102,14 +132,16 @@ tests:
MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40."
PICS: MCORE.DD.SCAN_QR_CODE
verification: |
- 1. Get QR code from TH as server side:
+ 1. Launch the TH commissionee app and get QR code from TH side
+ Verify in TH as commissionee side:
+
$ ./out/all-clusters-app/chip-all-clusters-app
...
[1657211128.302755][365927:365927] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00]
[1657211128.302783][365927:365927] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
[1657211128.302804][365927:365927] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00
- 2. Build TLV Data into TH"s QR code
+ 2. Build TLV Data into TH"s QR code using chip-tool"s generate-qrcode command
$ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --tlvBytes hex:152C000A3132333435363738393018
[1657211213125] [28612:16578643] CHIP: [TOO] QR Code: MT:-24J029Q00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40
disabled: true
@@ -120,7 +152,7 @@ tests:
verification: |
./chip-tool pairing code 1 MT:-24J0AFN00KA064IJ3P0IXZB0DK5N1K8SQ1RYCU1-A40
- Verify in DUT as client side:
+ Verify in DUT as commissioner side:
[1657210956708] [28601:16575811] CHIP: [CTL] Received CommissioningComplete response, errorCode=0
[1657210956708] [28601:16575811] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
[1657210956708] [28601:16575811] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
@@ -139,9 +171,13 @@ tests:
tag 0x82, length 0x03e8)"
PICS: MCORE.DD.SCAN_QR_CODE
verification: |
+ No applicable TH logs.
+
+ 1. Launch the TH commissionee app and get QR code from TH side
$ ./out/all-clusters-app/chip-all-clusters-app
- 1. To generate the QR code containing the 1000-byte TLV data, use the following command and piece together the 2 log lines of output. NOTE: The finished QR code is in the Test step already.
+ 2. Build TLV Data into TH"s QR code using chip-tool"s generate-qrcode command. To generate the QR code containing the 1000-byte TLV data, use the following command and piece together the 2 log lines of output.
+ NOTE: The finished QR code is in the verification step already.
./chip-tool payload generate-qrcode --existing-payload MT:-24J0AFN00KA0648G00 --tlvBytes hex:152d82e8033132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435363738393018
[1659491902.799305][3965:3965] CHIP:TOO: QR Code: MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1Z
@@ -155,10 +191,20 @@ tests:
verification: |
./chip-tool pairing code 1 MT:-24J0AFN00KA064IJ3P0JFQB7TZZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T1VFSK1S3DO1ZTZR1UNMJ1DK5N1K8SQ1RYCU1--ZL15PKP1CD5T11UXS0
- Verify in TH as server side:
+ Verify in TH as commissionee side:
[1659491845.473705][3953:3953] CHIP:SVR: Commissioning completed successfully
- Verify on the DUT as client side:
+ Verify in DUT as commissioner side:
[1659491845308] [14021:5374393] CHIP: [TOO] Device commissioning completed with success
disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml
index be9a358ee1bb8f..389197ac1e2d81 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_2_1.yaml
@@ -25,12 +25,18 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - The DUT is switched on and the DUT is transport-connected (BLE, Wi-Fi or Ethernet)
+ disabled: true
+
- label:
"If TH knows the DUTs Discovery Capability Bitmask, it starts the
commissioning process in any order of priority on all of the
networking technologies that are supported by both the TH and the DUT"
verification: |
TH selects the DUT"s capability bitmask and start the commissiong process accordingly
+ No applicable TH or DUT logs.
disabled: true
- label:
@@ -42,6 +48,7 @@ tests:
verification: |
If (PICS_CHIP_DEV) BLE discovery tool should discover the DUT else it should not
If !(PICS_CHIP_DEV) instruct DUT to start Advertising and scan again for commissionale devices using the BLE discovery tool
+ No applicable TH or DUT logs.
1. Discover commissionables over BLE using a BLE discovery tool of choice.
Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
@@ -52,12 +59,16 @@ tests:
- label: "TH does not respond to DUT and DUT keeps sending ADVs"
PICS: MCORE.COM.BLE
verification: |
+ Verify in DUT as commissionee side:
+
[5855][P][DIS]Advertise commission parameter vendorID=65521 productID=32773 discriminator=3840/15
disabled: true
- label: "TH does not respond to DUT and DUT keeps sending ADVs"
PICS: MCORE.COM.BLE
verification: |
+ No applicable TH or DUT logs.
+
This step can be verified using a BLE discovery tool of choice.
Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
OR
@@ -67,9 +78,10 @@ tests:
- label: "TH does not respond to DUT and DUT keeps sending ADVs"
PICS: MCORE.COM.BLE
verification: |
- This step can be verified using BLE discovery tool of choice (Try NRF Connect OR HCIDump)
+ This BLE advertisements can be verified using BLE discovery tool of choice (Try NRF Connect OR HCIDump)
->For T0 and 30s we have to get advertisement range between 20ms to 60ms
->For 30s and 15mins we have to get advertisement range between 150ms to 1200ms
+ Verify in DUT as commissionee side:
I: 3242 [DL]CHIPoBLE advertising started
I: 3279 [DL]NFC Tag emulation started
@@ -86,6 +98,7 @@ tests:
After 900s (that is 15min) advertisement stops
+ Verify in DUT as commissionee side:
D: 903154 [DIS]Scheduling extended discovery timeout in 900s
E: 903160 [DIS]Failed to finalize service update: Error CHIP:0x0000001C
@@ -97,6 +110,8 @@ tests:
- label: "TH does not respond to DUT. User power cycles the DUT"
PICS: MCORE.COM.BLE
verification: |
+ 1. Reboot the DUT commissionee
+
sudo reboot
disabled: true
@@ -106,6 +121,7 @@ tests:
PICS: MCORE.COM.BLE
verification: |
Check timestamp, ADV stop after 15 mins
+ Verify in DUT as commissionee side:
D: 903154 [DIS]Scheduling extended discovery timeout in 900s
E: 903160 [DIS]Failed to finalize service update: Error CHIP:0x0000001C
@@ -140,6 +156,7 @@ tests:
mandatory Commissionable Node Discovery service records over DNS-SD."
verification: |
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
Example output using all-clusters-app"s advertisements:
[1651256405894] [18453:593886] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
@@ -166,8 +183,9 @@ tests:
MCORE.DD.TXT_KEY_RI && MCORE.DD.TXT_KEY_PH && MCORE.DD.TXT_KEY_PI
verification: |
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
- Example output using all-clusters-app"s advertisements:
+ Example output using all-clusters-app"s advertisements found on the TH commissioner:
[1657218902314] [29617:16663220] CHIP: [DL] Browsing for: _matterc._udp
[1657218902488] [29617:16663220] CHIP: [DL] Mdns: OnBrowseAdd name: 5B4185091B6CAD28, type: _matterc._udp., domain: local., interface: 7 [1657218902488] [29617:16663220] CHIP: [DL] Resolve type=_matterc._udp name=5B4185091B6CAD28 interface=7
[1657218902489] [29617:16663220] CHIP: [DL] Mdns : OnNewInterface hostname:DCA6328D2B9F0000.local. fullname:5B4185091B6CAD28._matterc._udp.local. interface: 7 [1657218902490] [29617:16663220] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2
@@ -217,8 +235,9 @@ tests:
Commissionable Node Discovery service record over DNS-SD."
verification: |
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
- Example output using all-clusters-app"s advertisements:
+ Example output using all-clusters-app"s advertisements found on the TH commissioner:
[1651256405894] [18453:593886] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
[1651256405894] [18453:593886] CHIP: [DIS] Vendor ID: 65521
[1651256405894] [18453:593886] CHIP: [DIS] Product ID: 32769
@@ -258,15 +277,16 @@ tests:
verification: |
$ dns-sd -B _services._dns-sd._udp
- Example output using all-clusters-app"s advertisements:
+ Example output using all-clusters-app"s advertisements found on the TH commissioner:
11:56:29.770 Add 3 7 . _sub.local. _V65521
disabled: true
- label: "Place the DUT device into Commissioning mode"
verification: |
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
- Example output using all-clusters-app"s advertisements:
+ Example output using all-clusters-app"s advertisements found on the TH commissioner:
[1651256405894] [18453:593886] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
[1651256405894] [18453:593886] CHIP: [DIS] Vendor ID: 65521
[1651256405894] [18453:593886] CHIP: [DIS] Product ID: 32769
@@ -289,6 +309,7 @@ tests:
_matterc._udp -r)"
verification: |
$ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
[1657220492275] [29906:16679893] CHIP: [DL] Browsing for: _matterc._udp
[1657220492275] [29906:16679893] CHIP: [DL] Mdns: OnBrowseAdd name: 74AFA51731B2E373, type: _matterc._udp., domain: local., interface: 7 [1657220492275] [29906:16679893] CHIP: [DL] Resolve type=_matterc._udp name=74AFA51731B2E373 interface=7
diff --git a/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml
index f81a32a10543fd..c02101c86ed49e 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_2_2.yaml
@@ -26,10 +26,23 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.4.3. Discovery by Commissioner - DUT supports BLE (central role), Wi-Fi and IP connectivity - Wi-Fi certified n client
+
+ 2 - Test Harness must support all discovery transport technologies as the DUT (i.e. BLE, Wi-Fi and IP connectivity)
+ disabled: true
+
- label: "TH starts matter announcement procedure using BLE transport"
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
$ ./out/ble/chip-all-clusters-app --ble-device 1 --discriminator 3841
+ Verify in TH as commissionee side:
[1657221603.350406][368108:368108] CHIP:DL: Device Configuration:
[1657221603.350445][368108:368108] CHIP:DL: Serial Number: TEST_SN
@@ -56,14 +69,14 @@ tests:
verification: |
1. Discover commissionables over BLE using DUT=chip-tool pairing
- Verify in TH as server side
+ Verify in TH as commissionee side:
$ ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841
[1651743342.299897][3461:3464] CHIP:BLE: New device scanned: E4:5F:01:0F:1A:02
[1651743342.299951][3461:3464] CHIP:BLE: Device discriminator match. Attempting to connect.
[1651743342.303783][3461:3464] CHIP:BLE: Scan complete notification without an active scan.
[1651743346.244175][3461:3464] CHIP:DL: ConnectDevice complete
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
[1651743346.152716][5072:5075] CHIP:DL: Device E4:5F:01:0F:3B:B1 (Path: /org/bluez/hci0/dev_E4_5F_01_0F_3B_B1) Connected
[1651743347.908807][5072:5075] CHIP:DL: BluezCharacteristicAcquireWrite is called, conn: 0xffffa0043700
[1651743347.911151][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
@@ -114,14 +127,14 @@ tests:
verification: |
1. Discover commissionables over BLE using DUT=chip-tool pairing command
- Verify in TH as server side
+ Verify in TH as commissionee side:
$ ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841
[1651743342.299897][3461:3464] CHIP:BLE: New device scanned: E4:5F:01:0F:1A:02
[1651743342.299951][3461:3464] CHIP:BLE: Device discriminator match. Attempting to connect.
[1651743342.303783][3461:3464] CHIP:BLE: Scan complete notification without an active scan.
[1651743346.244175][3461:3464] CHIP:DL: ConnectDevice complete
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
[1651743346.152716][5072:5075] CHIP:DL: Device E4:5F:01:0F:3B:B1 (Path: /org/bluez/hci0/dev_E4_5F_01_0F_3B_B1) Connected
[1651743347.908807][5072:5075] CHIP:DL: BluezCharacteristicAcquireWrite is called, conn: 0xffffa0043700
[1651743347.911151][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
@@ -172,7 +185,7 @@ tests:
verification: |
$ ./out/all-clusters-app/chip-all-clusters-app --wifi --discriminator 3841
- Verify in TH as server side
+ Verify in TH as commissionee side
[1653087913.247229][8083:8083] CHIP:SVR: Server Listening...
[1653087913.247636][8083:8083] CHIP:DL: Device Configuration:
[1653087913.248094][8083:8083] CHIP:DL: Serial Number: TEST_SN
@@ -190,19 +203,19 @@ tests:
[1653087913.254268][8083:8083] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 29f72814
disabled: true
- - label: "DUT must find TH and provide onboarding data for validation."
+ - label: ""
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
1. Discover commissionables over BLE using DUT=chip-tool pairing command
- Verify in TH as server side
+ Verify in TH as commissionee side:
$ ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841
[1651743342.299897][3461:3464] CHIP:BLE: New device scanned: E4:5F:01:0F:1A:02
[1651743342.299951][3461:3464] CHIP:BLE: Device discriminator match. Attempting to connect.
[1651743342.303783][3461:3464] CHIP:BLE: Scan complete notification without an active scan.
[1651743346.244175][3461:3464] CHIP:DL: ConnectDevice complete
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
[1651743346.152716][5072:5075] CHIP:DL: Device E4:5F:01:0F:3B:B1 (Path: /org/bluez/hci0/dev_E4_5F_01_0F_3B_B1) Connected
[1651743347.908807][5072:5075] CHIP:DL: BluezCharacteristicAcquireWrite is called, conn: 0xffffa0043700
[1651743347.911151][5072:5075] CHIP:DL: c1 BluezCharacteristicWriteFD mtu, 517
@@ -291,22 +304,40 @@ tests:
"With DUT and TH connected to the same network over IP, DUT performs
service discovery using DNS-SD"
verification: |
- 1. TH is in commissioning mode and discoverable by DUT over IP through DNS-SD advertisements
+ 1. TH is in commissioning mode and discoverable by DUT over IP through DNS-SD advertisements. This can also be verified using through the DUT"s pairing command over IP.
+
+ Verify in TH as commissionee side:
+ $ ./out/all-clusters-app/chip-all-clusters-app
+ [1660154789.496930][7968:7968] CHIP:DIS: CHIP minimal mDNS started advertising.
+ [1660154789.499623][7968:7968] CHIP:DL: Using wifi MAC for hostname
+ [1660154789.499743][7968:7968] CHIP:DIS: Advertise commission parameter vendorID=65521 productID=32769 discriminator=3840/15 cm=1
+ [1660154789.501718][7968:7968] CHIP:DIS: Responding with _matterc._udp.local
+ [1660154789.501757][7968:7968] CHIP:DIS: Responding with 092C5C8AE5285458._matterc._udp.local
+ [1660154789.501780][7968:7968] CHIP:DIS: Responding with DCA632A849EA0000.local
+ [1660154789.501802][7968:7968] CHIP:DIS: Responding with DCA632A849EA0000.local
+ [1660154789.501830][7968:7968] CHIP:DIS: Responding with _V65521._sub._matterc._udp.local
+ [1660154789.501858][7968:7968] CHIP:DIS: Responding with _S15._sub._matterc._udp.local
+ [1660154789.501882][7968:7968] CHIP:DIS: Responding with _L3840._sub._matterc._udp.local
+ [1660154789.501907][7968:7968] CHIP:DIS: Responding with _CM._sub._matterc._udp.local
+ [1660154789.501945][7968:7968] CHIP:DIS: Responding with 092C5C8AE5285458._matterc._udp.local
+ [1660154789.501966][7968:7968] CHIP:DIS: CHIP minimal mDNS configured as "Commissionable node device".
+
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
$ ./chip-tool discover commissionables
- [1651256405894] [18453:593886] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
- [1651256405894] [18453:593886] CHIP: [DIS] Vendor ID: 65521
- [1651256405894] [18453:593886] CHIP: [DIS] Product ID: 32769
- [1651256405894] [18453:593886] CHIP: [DIS] Long Discriminator: 3840
- [1651256405894] [18453:593886] CHIP: [DIS] Pairing Hint: 33
- [1651256405894] [18453:593886] CHIP: [DIS] Hostname: DCA6328D2B9F0000 [1651256405894] [18453:593886] CHIP: [DIS] Instance Name: 8FFEE04E82830E26
- [1651256405894] [18453:593886] CHIP: [DIS] IP Address #1: fd54:23a1:c6de:4637:dea6:32ff:fe8d:2b9f
- [1651256405894] [18453:593886] CHIP: [DIS] IP Address #2: fe80::dea6:32ff:fe8d:2b9f
- [1651256405894] [18453:593886] CHIP: [DIS] IP Address #3: fe80::dea6:32ff:fe8d:2ba0
- [1651256405894] [18453:593886] CHIP: [DIS] IP Address #4: 192.168.1.2
- [1651256405894] [18453:593886] CHIP: [DIS] Port: 5540
- [1651256405894] [18453:593886] CHIP: [DIS] Commissioning Mode: 1
- [1651256405894] [18453:593886] CHIP: [DIS] Mrp Interval idle: 5000 ms
- [1651256405894] [18453:593886] CHIP: [DIS] Mrp Interval active: 300 ms
+ OR
+ $ ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
+ [1660155158954] [99591:10441026] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fe80::e5d0:7f0d:7aad:d736
+ [1660155158954] [99591:10441026] CHIP: [DIS] Hostname: DCA632A849EA0000 [1660155158954] [99591:10441026] CHIP: [DIS] IP Address #1: fd54:23a1:c6de:4637:1fac:42fd:dd74:dcc5
+ [1660155158954] [99591:10441026] CHIP: [DIS] IP Address #2: 2603:8001:7e00:e001:d669:2a30:7e9e:7121
+ [1660155158954] [99591:10441026] CHIP: [DIS] IP Address #3: fe80::e5d0:7f0d:7aad:d736
+ [1660155158954] [99591:10441026] CHIP: [DIS] Port: 5540
+ [1660155158954] [99591:10441026] CHIP: [DIS] Mrp Interval idle: 5000 ms
+ [1660155158954] [99591:10441026] CHIP: [DIS] Mrp Interval active: 300 ms
+ [1660155158954] [99591:10441026] CHIP: [DIS] Vendor ID: 65521
+ [1660155158954] [99591:10441026] CHIP: [DIS] Product ID: 32769
+ [1660155158954] [99591:10441026] CHIP: [DIS] Long Discriminator: 3840
+ [1660155158954] [99591:10441026] CHIP: [DIS] Pairing Hint: 33
+ [1660155158954] [99591:10441026] CHIP: [DIS] Instance Name: 8BA2031BFBF2BCDE
+ [1660155158954] [99591:10441026] CHIP: [DIS] Commissioning Mode: 1
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml
index 7d21c8276e1f1e..a745aae5ad4ba0 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_1.yaml
@@ -24,11 +24,16 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.5 - Commissioner is on a network. - The network can either be IP-based(Ethernet or WiFi) or Thread. Commissioner can either be a Matter device which is already on a network or the test harness connected to the network.
+ disabled: true
+
- label:
"Commissioner and Commissionee discover each other and connect via the
discovery mode applicable for the DUT."
verification: |
- Verify in TH as server side: sudo ./chip-all-clusters-app --wifi --discriminator 3841
+ Verify in DUT as commissionee side: sudo ./chip-all-clusters-app --wifi --discriminator 3841
[1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000
[1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn"t get a PASE salt, generating one.
@@ -52,7 +57,7 @@ tests:
[1653471956.972769][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00
[1653471956.972803][10713:10713] CHIP:SVR: Manual pairing code: [749701123365521327694]
-
+ Verify on TH as commissioner side:
connectedhomeip/examples/chip-tool/out/debug$ ./chip-tool discover commissionables
Waiting for device responses...
CHIP:CTL: Generating ICAC
@@ -202,7 +207,7 @@ tests:
verification: |
Verify that the responder receives the PBKDFParamRequest message
- Verify in TH as server side
+ Verify in DUT as commissionee side
CHIP:SC: Received PBKDF param request
CHIP:SC: Peer assigned session ID 18450
CHIP:SC: Found MRP parameters in the message
@@ -212,7 +217,7 @@ tests:
CHIP:IN: Sending unauthenticated msg 0xaaaaad340560 with MessageCounter:1341084110 to 0x0000000000000000 at monotonic time: 0000000000FBA380 msec
CHIP:SC: Sent PBKDF param response
- Verify in DUT as client side
+ Verify in TH as commissioner side
Sent PBKDF param request
[1653471961.364996][30157:30162] CHIP:CTL: Setting wifi credentials from parameters
[1653471961.365051][30157:30162] CHIP:CTL: Setting attestation nonce to random value
@@ -230,11 +235,11 @@ tests:
"Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
(the autonomously Fail-safe timer length set by Commissionee)"
verification: |
- Verify in TH as server side
+ Verify in DUT as commissionee side
CHIP:DL: NVS set: chip-config/fail-safe-armed = true
- Verify in DUT as client side
+ Verify in TH as commissioner side
: Performing next commissioning step "ArmFailSafe"
[1653471968.064493][30157:30162] CHIP:CTL: Arming failsafe (60 seconds)
@@ -245,13 +250,13 @@ tests:
Commissionee."
PICS: MCORE.COM.WIRELESS
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
Performing next commissioning step "ConfigRegulatory"
[1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config
[1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0)
- Verify in TH as server side
+ Verify in DUT as commissionee side
NVS set: chip-config/regulatory-location = 0 (0x0)
disabled: true
@@ -259,13 +264,13 @@ tests:
"Commissioner requests operational CSR from Commissionee with
OperationalCSRRequest command"
verification: |
- Verify in DUT as client side after commissioning
+ Verify in TH as commissioner side after commissioning
[1646909537.102263][3145:3150] CHIP:CTL: Received Attestation Information from the device
[1646909537.102418][3145:3150] CHIP:CTL: Verifying attestation
[1646909537.115081][3145:3150] CHIP:CTL: Successfully validated "Attestation Information" command received from the device.
- Verify in TH as server side
+ Verify in DUT as commissionee side
OpCreds: Received a CSRRequest command
CHIP:ZCL: OpCreds: NewCertificateSigningRequest succeeded
disabled: true
@@ -274,11 +279,11 @@ tests:
"Commissioner configures operational credentials on DUT if not
previously installed"
verification: |
- Verify in TH as server side
+ Verify in DUT as commissionee side
OpCreds: Received an AddTrustedRootCertificate command
- Verify in DUT as client side
+ Verify in TH as commissioner side
Sending root certificate to the device
CHIP:DMG: ICR moving to [AddingComm]
@@ -293,7 +298,7 @@ tests:
"Commissioner configures itself as administrator in ACL on DUT if
needed"
verification: |
- Verify in DUT as client side after commissioning
+ Verify in TH as commissioner side after commissioning
CHIP:CTL: Commissioning stage next step: "SendTrustedRootCert" -> "SendNOC"
[1653471969.812357][30157:30162] CHIP:CTL: Performing next commissioning step "SendNOC"
@@ -347,7 +352,7 @@ tests:
[1653471970.347439][30157:30162] CHIP:TOO: Secure Pairing Success
[1653471970.347485][30157:30162] CHIP:CTL: Successfully finished commissioning step "SendNOC"
- Verify in TH as server side
+ Verify in DUT as commissionee side
OpCreds: Received an AddNOC command
disabled: true
@@ -356,7 +361,7 @@ tests:
"Commissioner configures operational network on DUT if DUT both
supports and requires"
verification: |
- Verify in DUT as client side after commissioning
+ Verify in TH as commissioner side after commissioning
[1646909537.345068][3145:3150] CHIP:CTL: Received certificate signing request from the device
disabled: true
@@ -365,7 +370,7 @@ tests:
"Commissioner instructs Commissionee to connect to operational network
if not already connected"
verification: |
- Verify in DUT as client side after commissioning
+ Verify in TH as commissioner side after commissioning
[1646909537.976592][3145:3150] CHIP:CTL: Operational credentials provisioned on device 0xffffac001730
[1646909537.976664][3145:3150] CHIP:TOO: Secure Pairing Success
@@ -373,7 +378,7 @@ tests:
- label: "Commissioner starts discovery of DUT using Operational Discovery"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Commissioning stage next step: "SendNOC" -> "FindOperational"
[1653471976.344532][30157:30162] CHIP:CTL: Performing next commissioning step "FindOperational"
@@ -395,18 +400,22 @@ tests:
- label:
"Commissioner opens a CASE session with DUT over operational network"
verification: |
- Verify in TH as server side
+ Verify in DUT as commissionee side
+
+ [1660154789.690124][7968:7968] CHIP:IN: CASE Server enabling CASE session setups
+ [1660154789.690208][7968:7968] CHIP:IN: SecureSession[0xaaaab75fae10]: Allocated Type:2 LSID:55651
+ [1660154789.690248][7968:7968] CHIP:SC: Allocated SecureSession (0xaaaab75fae10) - waiting for Sigma1 msg
+ [1660154789.690276][7968:7968] CHIP:SVR: Joining Multicast groups
+ [1660154789.690304][7968:7968] CHIP:ZCL: Emitting StartUp event
+ [1660154789.690395][7968:7968] CHIP:EVL: LogEvent event number: 0x0000000000000002 priority: 2, endpoint id: 0x0 cluster id: 0x0000_0028 event id: 0x0 Sys timestamp: 0x00000000001D1D86
- CASE Server enabling CASE session setups
- [1653471957.713139][10713:10713] CHIP:SVR: Joining Multicast groups
- [1653471957.713654][10713:10713] CHIP:ZCL: Emitting StartUp event
- [1653471957.714762][10713:10713] CHIP:EVL: LogEvent event number: 0x0000000000000000 priority: 2, endpoint id: 0x0 cluster id: 0x0000_0028 event id: 0x0 Sys timestamp: 0x000000000059AC88
- [1653471957.715456][10713:10713] CHIP:ZCL: GeneralDiagnosticsDelegate: OnDeviceRebooted
+ Verify in TH as commissioner side
+ [1660154794132] [99576:10438621] CHIP: [TOO] CASE establishment successful
disabled: true
- label: "Commissioner sends CommissioningComplete command"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Received CommissioningComplete response
disabled: true
@@ -415,7 +424,7 @@ tests:
"Commissioning channel between the Commissioner and Commissionee is
terminated."
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Successfully finished commissioning step "SendComplete"
CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml
index fd3cd615e01ac3..b81143cb4ce851 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_10.yaml
@@ -27,6 +27,16 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 -DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+ disabled: true
+
- label:
"DUT receives Onboarding Payload from the TH with Custom Flow field
set to value 2"
@@ -48,26 +58,25 @@ tests:
disabled: true
- label:
- "DUT fetches commissioning data from DCL using VID and PID from
- Onboarding Payload"
- PICS: MCORE.DD.FETCH_DCL
+ "User follows any TH-specific steps to place the TH Commissionee into
+ commissioning mode."
verification: |
- 1. Observe the TH"s DCL on the DUT
- disabled: true
-
- - label:
- "Using the instructions located at the CommissioningCustomFlowURL from
- the DCL, DUT guides the user in next steps to prepare the commissionee
- (TH) for commissioning"
- PICS: MCORE.DD.FETCH_DCL
- verification: |
- 1. Follow instructions for commissioning using the URL contained in the DCL
+ 1. Launch the TH commissionee all-clusters-app:
+ $ ./chip-all-clusters-app
+ Verifiy on TH as commissionee side:
+ [1660152729.426029][648909:648909] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
+ [1660152729.426076][648909:648909] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00]
+ [1660152729.426103][648909:648909] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
+ [1660152729.426123][648909:648909] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00
disabled: true
- label: "DUT commissions TH"
verification: |
$ ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
- [1657578523795] [9610:351965] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
- [1657578523795] [9610:351965] CHIP: [TOO] Device commissioning completed with success
+ Verify in DUT as commissioner side:
+ CHIP:CTL: Received CommissioningComplete response
+
+ Verifiy on TH as commissionee side:
+ [1660154248.898113][7143:7143] CHIP:SVR: Commissioning completed successfully
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml
index a2f62b1675d2bf..82ab752313d6d3 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_11.yaml
@@ -28,6 +28,38 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual).
+
+ An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes:
+
+ - 3-bit Version String=000
+
+ - 16-bit Vendor ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier")
+
+ - 16-bit Product ID=0x8001 (as defined in section 2.5.3. "Product Identifier")
+
+ - 2-bit Custom Flow=10 (Custom Commissioning Flow = 2)
+
+ - 8-bit Discovery Capabilities Bitmask=00000100 (OnNetwork)
+
+ - 12-bit Discriminator=0xF00
+
+ - 27-bit Passcode=20202021
+
+ - 4-bit Padding=0000
+
+ - no variable-length TLV Data included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data")
+ disabled: true
+
- label:
"Standard Commissioning Flow: Use a Commissionee with a QR code that
has the Custom Flow field set to 0 and supports BLE for its Discovery
@@ -35,6 +67,8 @@ tests:
spec. documentation."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
+ Verify on the TH as commissionee side:
+
$ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 --ble-device 1
...
[1657232267.387816][370320:370320] CHIP:DL: Device Configuration:
@@ -65,13 +99,13 @@ tests:
using BLE"
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
- TH Commissionee:
+ Verify on the TH as commissionee side:
[1657232374.956508][370357:370357] CHIP:DL: HandlePlatformSpecificBLEEvent 32784
[1657232374.956534][370357:370357] CHIP:SVR: Commissioning completed successfully
[1657232374.956577][370357:370357] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on the DUT Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
[1657232374820] [31379:16804218] CHIP: [CTL] Received CommissioningComplete response, errorCode=0
@@ -92,6 +126,7 @@ tests:
verification: |
$ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 0 --capabilities 4
+ Verify on the TH as commissionee side:
[1651105420.610637][27312:27312] CHIP:DL: Device Configuration:
[1651105420.610695][27312:27312] CHIP:DL: Serial Number: TEST_SN
[1651105420.610727][27312:27312] CHIP:DL: Vendor Id: 65521 (0xFFF1)
@@ -108,7 +143,9 @@ tests:
- label: "Scan the QR code from the previous step using the DUT."
PICS: MCORE.DD.SCAN_QR_CODE
verification: |
- 1. Verify the QR code is scanned by DUT, chip-tool does not support physically scanning QR codes
+ 1. Verify the QR code is scanned by DUT
+
+ Note: chip-tool does not support physically scanning QR codes
disabled: true
- label:
@@ -117,12 +154,12 @@ tests:
using IP Network"
PICS: MCORE.DD.DISCOVERY_IP
verification: |
- TH Commissionee:
+ Verify on the TH Commissionee side:
[1651105530.973166][27371:27371] CHIP:SVR: Commissioning completed successfully
[1651105530.973215][27371:27371] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on the DUT Commissioner:
$ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
[1651105530854] [95067:65607294] CHIP: [CTL] Received CommissioningComplete response
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml
index c4d4b2ed7e5fed..9adbd5d30f2adf 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_12.yaml
@@ -28,6 +28,38 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual).
+
+ An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes:
+
+ - 3-bit Version String=000
+
+ - 16-bit Vendor ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier")
+
+ - 16-bit Product ID=0x8001 (as defined in section 2.5.3. "Product Identifier")
+
+ - 2-bit Custom Flow=10 (Custom Commissioning Flow = 2)
+
+ - 8-bit Discovery Capabilities Bitmask=00000100 (OnNetwork)
+
+ - 12-bit Discriminator=0xF00
+
+ - 27-bit Passcode=20202021
+
+ - 4-bit Padding=0000
+
+ - no variable-length TLV Data included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data")
+ disabled: true
+
- label:
"User-Intent Commissioning Flow: Use a Commissionee with a QR code
that has the Custom Flow field set to 1 and supports BLE for its
@@ -36,9 +68,10 @@ tests:
documentation."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
+ Verify on the TH as commissionee side:
+
$ ./out/ble/all-clusters-app/chip-all-clusters-app --capabilities 2 --custom-flow 1 --ble-device 1
...
- [1657234110.765139][370717:370717] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
[1657234110.765249][370717:370717] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00]
[1657234110.765314][370717:370717] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
[1657234110.765364][370717:370717] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00
@@ -48,36 +81,32 @@ tests:
PICS: MCORE.DD.SCAN_QR_CODE
verification: |
1. Verify the QR code is scanned by DUT
+
Note: chip-tool does not support physically scanning QR codes
disabled: true
- label: "DUT parses QR code."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
- 1. Follow the steps given in the TH"s pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network
+ 1. Parse the payload of the TH commissionee
- On DUT=chip-tool:
- ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
- [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
- [1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
- [1657234147237] [31454:16822562] CHIP: [CTL] Performing next commissioning step "Cleanup"
- [1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
- [1657234147237] [31454:16822562] CHIP: [TOO] Device commissioning completed with success
+ Verify on the DUT Commissioner side:
+ $ ./chip-tool payload parse-setup-payload MT:-24J0YXE00KA0648G00
+
+ 2. Verify that TH logs do not show the commissionee being commissioned by the DUT.
disabled: true
- label:
- "Follow any steps from the resources provided by the pairing hint or
- by the THs manufacturer for putting the TH Commissionee device into
- commissioning mode and to complete the commissioning process using
- BLE."
+ "User should follow any TH-specific steps for putting the TH
+ Commissionee device into commissioning mode and to complete the
+ commissioning process using BLE."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
- TH Commissionee:
+ Verify on the TH Commissionee side:
[1651101988.943015][23212:23212] CHIP:SVR: Commissioning completed successfully
[1651101988.943058][23212:23212] CHIP:DIS: Updating services using commissioning mode 0
-
- On DUT Commissioner=chip-tool:
+ Verify on the DUT Commissioner side:
./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
[1657234147237] [31454:16822562] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
[1657234147237] [31454:16822562] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
@@ -94,47 +123,43 @@ tests:
documentation."
PICS: MCORE.DD.DISCOVERY_IP
verification: |
+ Verify on the TH Commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 1 --capabilities 4
- [1657234233.898170][370755:370755] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
- [1657234233.898195][370755:370755] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00]
- [1657234233.898227][370755:370755] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
- [1657234233.898248][370755:370755] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00
+ [1660353382.200125][249074:249074] CHIP:SVR: SetupQRCode: [MT:-24J029Q00KA0648G00]
+ [1660353382.200152][249074:249074] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
+ [1660353382.200173][249074:249074] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J029Q00KA0648G00
disabled: true
- label: "Scan the QR code from the previous step using the DUT."
PICS: MCORE.DD.SCAN_QR_CODE
verification: |
1. Verify the QR code is scanned by DUT
+
Note: chip-tool does not support physically scanning QR codes
disabled: true
- label: "DUT parses QR code."
PICS: MCORE.DD.DISCOVERY_IP
verification: |
- 1. Follow the steps given in the TH"s pairing hint to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network
+ 1. Parse the payload of the TH commissionee
+ Verify on the DUT Commissioner side:
+ $ ./chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00
- On DUT=chip-tool:
- ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
- [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
- [1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
- [1657234324847] [31475:16824564] CHIP: [CTL] Performing next commissioning step "Cleanup"
- [1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
- [1657234324847] [31475:16824564] CHIP: [TOO] Device commissioning completed with success
+ 2. Verify that TH logs do not show the commissionee being commissioned by the DUT.
disabled: true
- label:
- "Follow any steps from the resources provided by the pairing hint or
- by the THs manufacturer for putting the TH Commissionee device into
- commissioning mode and to complete the commissioning process using IP
- Network."
+ "User should follow any TH-specific steps for putting the TH
+ Commissionee device into commissioning mode and to complete the
+ commissioning process using IP Network."
PICS: MCORE.DD.DISCOVERY_IP
verification: |
- TH all-clusters-app:
+ Verify on the TH Commissionee side:
[1657234324.992098][370755:370755] CHIP:SVR: Commissioning completed successfully
[1657234324.992146][370755:370755] CHIP:DIS: Updating services using commissioning mode 0
- On DUT=chip-tool:
+ Verify on the DUT Commissioner side:
./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
[1657234324847] [31475:16824564] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
[1657234324847] [31475:16824564] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
@@ -170,10 +195,9 @@ tests:
disabled: true
- label:
- "Follow any steps from the resources provided by the pairing hint or
- by the THs manufacturer for putting the TH Commissionee device into
- commissioning mode and to complete the commissioning process using
- SoftAP."
+ "User should follow any TH-specific steps for putting the TH
+ Commissionee device into commissioning mode and to complete the
+ commissioning process using SoftAP."
PICS: MCORE.DD.DISCOVERY_SOFTAP
verification: |
Out of Scope for V1.0
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml
index ce576dad278dd9..462dce0ec17513 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_13.yaml
@@ -28,6 +28,38 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual).
+
+ An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes:
+
+ - 3-bit Version String=000
+
+ - 16-bit Vendor ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier")
+
+ - 16-bit Product ID=0x8001 (as defined in section 2.5.3. "Product Identifier")
+
+ - 2-bit Custom Flow=10 (Custom Commissioning Flow = 2)
+
+ - 8-bit Discovery Capabilities Bitmask=00000100 (OnNetwork)
+
+ - 12-bit Discriminator=0xF00
+
+ - 27-bit Passcode=20202021
+
+ - 4-bit Padding=0000
+
+ - no variable-length TLV Data included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data")
+ disabled: true
+
- label:
"Custom Commissioning Flow: Use a Commissionee with a QR code that has
the Custom Flow field set to 2 and supports BLE for its Discovery
@@ -35,6 +67,7 @@ tests:
Version bit string follows the current Matter spec. documentation."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
+ Verify on the TH Commissionee side:
$ ./out/ble/all-clusters-app/chip-all-clusters-app --custom-flow 2 --capabilities 2
[1657235055.253604][370941:370941] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
@@ -53,27 +86,36 @@ tests:
- label: "DUT parses QR code."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
- 1. Follow the steps given in the TH"s URL to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network
-
- On DUT=chip-tool:
- ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
- [1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
- [1657235087918] [31502:16832693] CHIP: [TOO] Device commissioning completed with success
+ 1. Parse the payload of the TH commissionee
+
+ Verify on the DUT Commissioner side:
+ $ ./chip-tool payload parse-setup-payload MT:-24J0YXE00KA0648G00
+ [1660352364702] [20244:11810896] CHIP: [SPL] Parsing base38Representation: MT:-24J0YXE00KA0648G00
+ [1660352364702] [20244:11810896] CHIP: [SPL] Version: 0
+ [1660352364702] [20244:11810896] CHIP: [SPL] VendorID: 65521
+ [1660352364702] [20244:11810896] CHIP: [SPL] ProductID: 32769
+ [1660352364702] [20244:11810896] CHIP: [SPL] Custom flow: 2 (CUSTOM)
+ [1660352364702] [20244:11810896] CHIP: [SPL] Capabilities: 0x02 (BLE)
+ [1660352364702] [20244:11810896] CHIP: [SPL] Discriminator: 3840
+ [1660352364702] [20244:11810896] CHIP: [SPL] Passcode: 20202021
+
+ 2. Verify that TH logs do not show the commissionee being commissioned by the DUT.
disabled: true
- label:
- "User should follow any steps from the CommissioningCustomFlowUrl
- within the THs DCL, unless the DUT has alternative means to guide the
- user to successful commissioning, for putting the TH Commissionee into
- commissioning mode, for triggering the DUT Commissioner for
- commissioning, and for completing the commissioning process using BLE."
+ "User should follow any TH-specific steps, unless the DUT has
+ alternative means to guide the user to successful commissioning, for
+ putting the TH Commissionee into commissioning mode, for triggering
+ the DUT Commissioner for commissioning, and for completing the
+ commissioning process using BLE."
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
- TH all-clusters-app:
+ Verify on the TH Commissionee side:
[1657235088.040328][370941:370941] CHIP:SVR: Commissioning completed successfully
[1657235088.040371][370941:370941] CHIP:DIS: Updating services using commissioning mode 0
- DUT chip-tool: $ ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
+ Verify on the DUT Commissioner side:
+ $ ./chip-tool pairing code 1 MT:-24J0YXE00KA0648G00
[1657235087918] [31502:16832693] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
[1657235087918] [31502:16832693] CHIP: [TOO] Device commissioning completed with success
disabled: true
@@ -86,6 +128,7 @@ tests:
documentation."
PICS: MCORE.DD.DISCOVERY_IP
verification: |
+ Verify on the TH Commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app --custom-flow 2 --capabilities 4
[1657235141.663008][370963:370963] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
@@ -104,28 +147,35 @@ tests:
- label: "DUT parses QR code."
PICS: MCORE.DD.DISCOVERY_IP
verification: |
- 1. Follow the steps given in the TH"s URL to allow for commissioning to happen. TH should not be commissioned until these steps were followed and indicate DUT can proceed with commissioning the TH to the Matter network
-
- On DUT=chip-tool:
- ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
- [1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
- [1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success
+ 1. Parse the payload of the TH commissionee
+
+ Verify on the DUT Commissioner side:
+ $ ./chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00
+ [1660352541112] [20246:11812333] CHIP: [SPL] Parsing base38Representation: MT:-24J029Q00KA0648G00
+ [1660352541113] [20246:11812333] CHIP: [SPL] Version: 0
+ [1660352541113] [20246:11812333] CHIP: [SPL] VendorID: 65521
+ [1660352541113] [20246:11812333] CHIP: [SPL] ProductID: 32769
+ [1660352541114] [20246:11812333] CHIP: [SPL] Custom flow: 2 (CUSTOM)
+ [1660352541114] [20246:11812333] CHIP: [SPL] Capabilities: 0x04 (On IP network)
+ [1660352541114] [20246:11812333] CHIP: [SPL] Discriminator: 3840
+ [1660352541114] [20246:11812333] CHIP: [SPL] Passcode: 20202021
+
+ 2. Verify that TH logs do not show the commissionee being commissioned by the DUT.
disabled: true
- label:
- "User should follow any steps from the CommissioningCustomFlowUrl
- within the THs DCL, unless the DUT has alternative means to guide the
- user to successful commissioning, for putting the TH Commissionee into
- commissioning mode, for triggering the DUT Commissioner for
- commissioning, and for completing the commissioning process using IP
- Network."
+ "User should follow any TH-specific steps, unless the DUT has
+ alternative means to guide the user to successful commissioning, for
+ putting the TH Commissionee into commissioning mode, for triggering
+ the DUT Commissioner for commissioning, and for completing the
+ commissioning process using IP Network."
PICS: MCORE.DD.DISCOVERY_IP
verification: |
- TH all-clusters-app:
+ Verify on the TH Commissionee side:
[1657235198.977848][370963:370963] CHIP:SVR: Commissioning completed successfully
[1657235198.977943][370963:370963] CHIP:DIS: Updating services using commissioning mode 0
- DUT chip-tool:
+ Verify on the DUT Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
[1657235198856] [31506:16834043] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
[1657235198856] [31506:16834043] CHIP: [TOO] Device commissioning completed with success
@@ -157,12 +207,11 @@ tests:
disabled: true
- label:
- "User should follow any steps from the CommissioningCustomFlowUrl
- within the THs DCL, unless the DUT has alternative means to guide the
- user to successful commissioning, for putting the TH Commissionee into
- commissioning mode, for triggering the DUT Commissioner for
- commissioning, and for completing the commissioning process using
- SoftAP."
+ "User should follow any TH-specific steps, unless the DUT has
+ alternative means to guide the user to successful commissioning, for
+ putting the TH Commissionee into commissioning mode, for triggering
+ the DUT Commissioner for commissioning, and for completing the
+ commissioning process using SoftAP."
PICS: MCORE.DD.DISCOVERY_SOFTAP
verification: |
Out of Scope for V1.0
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml
index 42fa580bc34c8a..e09184f8560eeb 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_14.yaml
@@ -27,8 +27,41 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.3 - QR code is printed on the device or in additional provided materials (ex: manual).
+
+ An example onboarding QR code could be "MT:-24J029Q00KA0648G00" (following 5.1.3 "QR Code", Table 34 "Packed Binary Data Structure for Onboarding Payload") which includes:
+
+ - 3-bit Version String=000
+
+ - 16-bit Vendor ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier")
+
+ - 16-bit Product ID=0x8001 (as defined in section 2.5.3. "Product Identifier")
+
+ - 2-bit Custom Flow=10 (Custom Commissioning Flow = 2)
+
+ - 8-bit Discovery Capabilities Bitmask=00000100 (OnNetwork)
+
+ - 12-bit Discriminator=0xF00
+
+ - 27-bit Passcode=20202021
+
+ - 4-bit Padding=0000
+
+ - no variable-length TLV Data included (as defined in section 5.1.3.1. "Payload", subsection "TLV Data")
+ disabled: true
+
- label: "Locate and scan/read the Commissionees QR code using DUT"
verification: |
+ Verify on the TH Commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 2 --capabilities 4 --discriminator 3840 --passcode 20202021
[1657235470.970680][371041:371041] CHIP:DL: Device Configuration:
@@ -52,6 +85,7 @@ tests:
Version String (i.e. 010 or any non-zero 3-bit value)"
verification: |
1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code
+ Verify on the TH Commissionee side:
$ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --version 2
[1657235626568] [31698:16839018] CHIP: [TOO] QR Code: MT:034J029Q00KA0648G00
disabled: true
@@ -59,8 +93,10 @@ tests:
- label:
"Scan/read the QR code, generated in the previous step, using the DUT"
verification: |
- TH all-clusters-app:
+ Verify on the DUT Commissioner side:
Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:50: CHIP Error 0x0000002F: Invalid argument
+
+ No applicable TH Logs
disabled: true
- label:
@@ -70,13 +106,18 @@ tests:
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
1. Use chip-tool"s "payload generate-qrcode" command to help generate the new, invalid QR code
+ Verify on the TH Commissionee side:
$ ./chip-tool payload generate-qrcode --existing-payload MT:-24J029Q00KA0648G00 --allow-invalid-payload 1 --rendezvous 4
[1657235754393] [31702:16840391] CHIP: [TOO] QR Code: MT:-24J029Q00KA0648G00
+
+ Verify on the DUT Commissioner side:
+ No applicable logs on the DUT side
disabled: true
- label: "Scan/read the QR code of the TH device using the DUT"
PICS: MCORE.DD.DISCOVERY_BLE
verification: |
+ Verify on the DUT Commissioner side:
./chip-tool pairing code 1 MT:-24J029Q00KA0648G00
[1657235905214] [31706:16841970] CHIP: [CTL] Discovered device to be commissioned over DNS-SD
...
@@ -92,6 +133,7 @@ tests:
00000000, 11111111, 22222222, 33333333, 44444444, 55555555, 66666666,
77777777, 88888888, 99999999, 12345678, 87654321"
verification: |
+ No applicable TH or DUT Logs
"MT:-24J029Q00OC0000000" (00000000),
"MT:-24J029Q00KMSP0Z800" (11111111),
"MT:-24J029Q00GWID1WH00" (22222222),
@@ -109,7 +151,8 @@ tests:
- label:
"Scan each of the generated QR codes from the previous step using DUT"
verification: |
- TH chip-all-clusters-app Commissionee:
+ Verify on the DUT Commissioner side:
+ No applicable TH Logs
./chip-tool pairing code 1 MT:-24J029Q00OC0000000
@@ -170,11 +213,17 @@ tests:
MT: (i.e. Prefix=AB:)"
verification: |
AB:-24J029Q00KA0648G00
+
+ No applicable TH or DUT Logs
disabled: true
- label:
"Scan/read the QR code, generated in the previous step, using the DUT"
verification: |
+ Verify on the DUT Commissioner side:
+
$ ./chip-tool pairing code 1 AB:-24J029Q00KA0648G00
[1657236169984] [31732:16844455] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed
+
+ No applicable TH Logs
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml
index 039487b9d39579..30475e9ee7f05e 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_15.yaml
@@ -27,13 +27,42 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ Preconditions
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.4.2 - Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual).
+
+ An example onboarding payload could be "34970112332" (11-digit) or could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include:
+
+ - 1-bit VID_PID_PRESENT = 0 (11-digit) or = 1 (21-digit)
+
+ - 1-bit VERSION=0
+
+ - 4-bit SHORT DISCRIMINATOR=0xF00 (4 Most-significant bits of the 12-bits Discriminator value)
+
+ - 27-bit PASSCODE=20202021 (see section 5.1.6. Generation of the Passcode)
+
+ - 16-bit VENDOR_ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier", for 21-digit Manual Pairing Code only)
+
+ - 16-bit PRODUCT_ID=0x8001 (as defined in section 2.5.3. "Product Identifier", present if and only if VID is present)
+
+ - A generated CHECK_DIGIT (see section 5.1.4. Manual Pairing Code, subsection "Check Digit")
+ disabled: true
+
- label:
"Verify the THs 11-digit Manual Pairing Code meets the following
criteria: - VERSION bit string string up to date with the current
Matter spec. documentation - VID_PID_PRESENT bit string set to 0"
PICS: MCORE.DD.11_MANUAL_PC
verification: |
- On TH Commissionee:
+ Verify on the TH Commissionee side:
$ ./out/ble/all-clusters-app/chip-all-clusters-app
[1651108891.390266][30833:30833] CHIP:DL: Device Configuration:
[1651108891.390455][30833:30833] CHIP:DL: Serial Number: TEST_SN
@@ -58,11 +87,11 @@ tests:
process."
PICS: MCORE.DD.11_MANUAL_PC
verification: |
- On TH Commissionee:
+ Verify on the TH Commissionee side:
[1651109112.909458][30833:30833] CHIP:SVR: Commissioning completed successfully
[1651109112.909503][30833:30833] CHIP:DIS: Updating services using commissioning mode 0
- On DUT Commissioner:
+ Verify on the DUT Commissioner side:
$ ./chip-tool pairing code 1 34970112332
[1651109112823] [95528:65650355] CHIP: [CTL] Received CommissioningComplete response
@@ -81,7 +110,7 @@ tests:
PRODUCT_ID present (as defined in section 2.5.3. Product Identifier)"
PICS: MCORE.DD.21_MANUAL_PC
verification: |
- On TH Commissionee:
+ Verify on the TH Commissionee side:
$ ./out/ble/all-clusters-app/chip-all-clusters-app
[1651109167.022364][30980:30980] CHIP:DL: Device Configuration:
@@ -116,7 +145,7 @@ tests:
[1651109219.100167][30980:30980] CHIP:SVR: Commissioning completed successfully
[1651109219.100213][30980:30980] CHIP:DIS: Updating services using commissioning mode 0
- On DUT Commissioner:
+ Verify on the DUT Commissioner side:
$ ./chip-tool pairing code 1 749701123365521327694
[1651109219028] [95536:65652322] CHIP: [CTL] Received CommissioningComplete response
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml
index 3b34bd354eea56..6e9dd0f317e56b 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_16.yaml
@@ -27,11 +27,39 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.4.2 - 11-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual).
+
+ An example onboarding payload could be "34970112332" (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include:
+
+ - 1-bit VID_PID_PRESENT = 0 (11-digit only)
+
+ - 1-bit VERSION=0
+
+ - 4-bit SHORT DISCRIMINATOR=0xF00 (4 Most-significant bits of the 12-bits Discriminator value)
+
+ - 27-bit PASSCODE=20202021 (see section 5.1.6. Generation of the Passcode)
+
+ - 16-bit VENDOR_ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier", for 21-digit Manual Pairing Code only)
+
+ - 16-bit PRODUCT_ID=0x8001 (as defined in section 2.5.3. "Product Identifier", present if and only if VID is present)
+
+ - A generated CHECK_DIGIT (see section 5.1.4. Manual Pairing Code, subsection "Check Digit")
+ disabled: true
+
- label:
"Provide the 11-digit Manual Pairing Code from the Commissionee to the
DUT in any format supported by DUT"
verification: |
- Verify in TH as server side
+ Verify on the TH Commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021
[1651180718.960383][13218:13218] CHIP:DL: Device Configuration:
@@ -56,10 +84,10 @@ tests:
2"
verification: |
1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code
+ No applicable DUT or TH logs
$ ./chip-tool payload verhoeff-generate 8497011233
- Verify in DUT as client side
[1651186243492] [13415:349553] CHIP: [SPL] Generating Character for: 84970112331
[1651186243492] [13415:349553] CHIP: [SPL] Generated Char: 1
Manual Code: 84970112331
@@ -71,7 +99,7 @@ tests:
verification: |
$ ./chip-tool pairing code 1 84970112331
- Verify in DUT as client side
+ Verify in DUT Commissioner side
Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument
disabled: true
@@ -81,9 +109,11 @@ tests:
manual code but substituting out the current VID_PID_PRESENT with an
invalid VID_PID_PRESENT set to 1"
verification: |
+ 1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
+ No applicable DUT or TH logs
+
$ ./chip-tool payload generate-manualcode --discriminator 0xF00 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 2 --force-short-code 1
- Verify in DUT as client side
[1651181048462] [11611:269469] CHIP: [TOO] Manual Code: 74970112334
disabled: true
@@ -93,7 +123,7 @@ tests:
verification: |
$ ./chip-tool pairing code 1 74970112334
- Verify in DUT as client side
+ Verify on the DUT Commissioner side:
[1651184274318] [12512:321250] CHIP: [SPL] Failed decoding base10. Input length 10 was not expected length 20
...
[1651184274321] [12512:321244] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:63: CHIP Error 0x0000001E: Invalid string length
@@ -109,11 +139,11 @@ tests:
Discriminator value)"
verification: |
1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
+ No applicable DUT or TH logs
$ ./chip-tool payload generate-manualcode --existing-payload 34970112332 --discriminator 0xE00
[1657236763262] [31784:16850989] CHIP: [TOO] Manual Code: 33331712336
- Verify in DUT as client side
Manual Code: 33331712336
disabled: true
@@ -121,7 +151,7 @@ tests:
"Provide the Manual Pairing Code, generated in the previous step, to
the DUT in any format supported by the DUT"
verification: |
- On DUT=chip-tool:
+ Verify on the DUT Commissioner side:
$ ./chip-tool pairing code 1 33331712336
[1654001605.517505][3200:3205] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:748: CHIP Error 0x0000002D: Not Implemented at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:450
@@ -139,8 +169,7 @@ tests:
55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321"
verification: |
1. Use these as examples of how to generate manual codes with invalid passcodes
-
- Verify in DUT as client side
+ No applicable DUT or TH logs
"34915200008" (00000000),
$ ./chip-tool payload generate-manualcode --discriminator 3840 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 00000000
@@ -195,7 +224,8 @@ tests:
"Provide each of the Manual Pairing Codes, generated in the previous
step, to the DUT in any format supported by the DUT"
verification: |
- Verify in DUT as client side
+ Verify on the DUT Commissioner side:
+ No applicable TH logs
(00000000)
$ ./chip-tool pairing code 1 34915200008
@@ -253,7 +283,8 @@ tests:
CHECK_DIGIT while following Table 38. Encoding Method without Vendor
and Product IDs (VID_PID_Present == 0))"
verification: |
- 1. Change the last digit of the manual pairing code to a different digit
+ 1. Manually change the last digit of the manual pairing code to a different digit
+ No applicable DUT or TH logs
Manual Code: 34970112331
disabled: true
@@ -262,7 +293,7 @@ tests:
"Provide the Manual Pairing Code, generated in the previous step, to
the DUT in any format supported by the DUT"
verification: |
- On DUT=chip-tool:
+ Verify on the DUT Commissioner side:
$ ./chip-tool pairing code 1 34970112331
[1657586218401] [10710:465838] CHIP: [TOO] Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml
index 36730301d3760f..5f5987a38855cf 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_17.yaml
@@ -27,11 +27,40 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ Preconditions
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+
+ 2 - 5.1.4.2 - 21-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual).
+
+ An example onboarding payload could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include:
+
+ - 1-bit VID_PID_PRESENT = 1 (21-digit only)
+
+ - 1-bit VERSION=0
+
+ - 4-bit SHORT DISCRIMINATOR=0xF00 (4 Most-significant bits of the 12-bits Discriminator value)
+
+ - 27-bit PASSCODE=20202021 (see section 5.1.6. Generation of the Passcode)
+
+ - 16-bit VENDOR_ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier", for 21-digit Manual Pairing Code only)
+
+ - 16-bit PRODUCT_ID=0x8001 (as defined in section 2.5.3. "Product Identifier", present if and only if VID is present)
+
+ - A generated CHECK_DIGIT (see section 5.1.4. Manual Pairing Code, subsection "Check Digit")
+ disabled: true
+
- label:
"Provide the 21-digit Manual Pairing Code from the Commissionee to the
DUT in any format supported by DUT"
verification: |
- Verify in TH as server side
+ Verify in TH Commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app
[1657203632.334400][13827:13827] CHIP:DL: Device Configuration:
@@ -61,10 +90,10 @@ tests:
2"
verification: |
1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code
+ No applicable TH or DUT logs.
$ ./chip-tool payload verhoeff-generate 84970112336552132769
- Verify in DUT as client side
[1657238290868] [31968:16868160] CHIP: [SPL] Generating Character for: 84970112336552132769
[1657238290868] [31968:16868160] CHIP: [SPL] Generated Char: 3
@@ -77,7 +106,7 @@ tests:
verification: |
$ ./chip-tool pairing code 1 849701123365521327693
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
[1657238348848] [31971:16868925] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument
disabled: true
@@ -87,9 +116,10 @@ tests:
invalid VID_PID_PRESENT set to 0"
verification: |
1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code
+ No applicable TH or DUT logs.
+
$ ./chip-tool payload verhoeff-generate 34970112336552132769
- Verify in DUT as client side
[1651186492744] [13434:353094] CHIP: [SPL] Generating Character for: 34970112336552132769
[1651186492744] [13434:353094] CHIP: [SPL] Generated Char: 6
@@ -102,7 +132,7 @@ tests:
verification: |
$ ./chip-tool pairing code 1 349701123365521327696
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
[1657238541643] [31975:16871084] CHIP: [SPL] Failed decoding base10. Input length 20 was not expected length 10
...
[1657238541644] [31975:16871079] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:63: CHIP Error 0x0000001E: Invalid string length
@@ -118,8 +148,8 @@ tests:
Discriminator value)"
verification: |
1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
+ No applicable TH or DUT logs.
- Verify in DUT as client side
$ ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --discriminator 3584
[1657238783501] [31989:16873588] CHIP: [TOO] Manual Code: 733317123365521327692
disabled: true
@@ -130,7 +160,7 @@ tests:
verification: |
$ ./chip-tool pairing code 1 733317123365521327692
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
[1655814152.716988][3723:3726] CHIP:CTL: Commissioning discovery over BLE failed: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:829: CHIP Error 0x00000032: Timeout
[1655814152.717099][3723:3726] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:829: CHIP Error 0x00000032: Timeout at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:270
[1655814172.703455][3723:3728] CHIP:CTL: Discovery timed out
@@ -148,10 +178,10 @@ tests:
55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321"
verification: |
1. Use this as an example of how to generate a manual code with an invalid passcode. In this example the invalid passcode=00000000
+ No applicable TH or DUT logs.
Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
- Verify in DUT as client side
$ ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --setup-pin-code 00000000
[1657239062245] [32164:16876812] CHIP: [TOO] Manual Code: 749152000065521327698
disabled: true
@@ -160,7 +190,8 @@ tests:
"Provide each of the Manual Pairing Codes, generated in the previous
step, to the DUT in any format supported by the DUT"
verification: |
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
+ No applicable TH logs.
(00000000)
$ ./chip-tool pairing code 1 749152000065521327698
@@ -230,8 +261,8 @@ tests:
Test VENDOR_ID from the list: 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4"
verification: |
1. Use this as an example of how to generate a manual code with an invalid vendor IDs
+ No applicable TH or DUT logs.
- Verify in DUT as client side
$ ./chip-tool payload generate-manualcode --discriminator 3840 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 1
[1651189120686] [14218:398626] CHIP: [TOO] Manual Code: 749701123365521327694
disabled: true
@@ -241,7 +272,7 @@ tests:
step, to the DUT in any format supported by the DUT"
verification: |
1. Run each of the following DUT commands below containing invalid Vendor IDs.
- 2. Verify that the TH commissionee=all-cluserters-app does not get commissioned -or- the DUT make the user fully aware of the security risks of providing an uncertified device with operational and networking credentials
+ 2. Verify that the TH commissionee=all-cluserters-app does not get commissioned -OR- the DUT Commissioner make the user fully aware of the security risks of providing an uncertified device with operational and networking credentials
(0xFFF1)
$ ./chip-tool pairing code 1 749701123365521327694
@@ -249,11 +280,9 @@ tests:
(0xFFF2)
$ ./chip-tool pairing code 1 749701123365522327692
-
(0xFFF3)
$ ./chip-tool pairing code 1 749701123365523327697
-
(0xFFF4)
$ ./chip-tool pairing code 1 749701123365524327693
disabled: true
@@ -265,8 +294,8 @@ tests:
Identifier)"
verification: |
1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
+ No applicable TH or DUT logs.
- Verify in DUT as client side
$ ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --product-id 0x0000
[1657239418656] [32180:16880488] CHIP: [TOO] Manual Code: 749701123365521000006
disabled: true
@@ -275,7 +304,7 @@ tests:
"Provide the Manual Pairing Code, generated in the previous step, to
the DUT in any format supported by the DUT"
verification: |
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
$ ./chip-tool pairing code 1 749701123365521000006
[1657239565895] [32193:16881922] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument
@@ -289,10 +318,10 @@ tests:
Product IDs included (VID_PID_Present == 1))"
verification: |
1. Use chip-tool"s "payload verhoeff-verify" command to help verify that the check-digit is invalid
+ No applicable TH or DUT logs.
$ ./chip-tool payload verhoeff-verify 749701123365521327693 20
- Verify in DUT as client side
[1651187504088] [13629:367627] CHIP: [SPL] Verifying Manual Code: 74970112336552132769
[1651187504088] [13629:367627] CHIP: [SPL] 749701123365521327693 is INVALID at position 20
disabled: true
@@ -303,6 +332,16 @@ tests:
verification: |
$ ./chip-tool pairing code 1 749701123365521327693
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
[1651187528666] [13631:367920] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed
disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml
index aeee0bd664f89b..2531691ed693f2 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_18.yaml
@@ -27,12 +27,24 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+ 2 - 5.1.3 - QR code is printed on the Commissionee devices or in additional provided materials (ex: manual).
+ disabled: true
+
- label:
"Place TH1 into commissioning mode using the TH manufacturers means to
be discovered by a commissioner"
verification: |
1. After launching all-clusters-app using discriminator 3841 using below command
$ ./out/all-clusters-app/chip-all-clusters-app --wifi --discriminator 3841
+ No applicable TH or DUT logs.
$ dns-sd -B _matterc._udp,_L3841
Browsing for _matterc._udp,_L3841
@@ -48,6 +60,7 @@ tests:
verification: |
1. After launching all-clusters-app using discriminator 3844 using below command
sudo ./chip-all-clusters-app --wifi --discriminator 3844
+ No applicable TH or DUT logs.
$ dns-sd -B _matterc._udp,_L3844
Browsing for _matterc._udp,_L3844
@@ -69,11 +82,11 @@ tests:
Commissioner/Commissionee to complete the commissioning process over
the TH Commissionees method of device discovery"
verification: |
- TH1 Commissionee:
+ Verify on the TH1 Commissionee:
[1657240914.891250][372173:372173] CHIP:SVR: Commissioning completed successfully
[1657240914.891297][372173:372173] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on the DUT Commissioner:
$ ./chip-tool pairing code 1 MT:-24J0IRV01KA0648G00
[1657240914764] [32262:16895870] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
@@ -92,11 +105,11 @@ tests:
Commissioner/Commissionee to complete the commissioning process over
the TH Commissionees method of device discovery"
verification: |
- TH2 Commissionee:
+ Verify on the TH2 Commissionee:
[1657240985.801360][112581:112581] CHIP:SVR: Commissioning completed successfully
[1657240985.801406][112581:112581] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on the DUT Commissioner:
$ ./chip-tool pairing code 2 MT:-24J04QI14KA0648G00
[1657240985682] [32264:16896797] CHIP: [CTL] Successfully finished commissioning step "Cleanup"
@@ -109,7 +122,7 @@ tests:
verification: |
$ ./chip-tool basic read reachable 1 0
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
[1657241043430] [32266:16897416] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0011 DataVersion: 131004400
[1657241043432] [32266:16897416] CHIP: [TOO] Reachable: TRUE
@@ -121,7 +134,7 @@ tests:
verification: |
$ ./chip-tool basic read reachable 2 0
- Verify in DUT as client side
+ Verify in DUT Commissioner side:
[1657241066927] [32267:16897671] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0011 DataVersion: 2450774961
[1657241066927] [32267:16897671] CHIP: [TOO] Reachable: TRUE
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml
index 4920069bae4662..d7dc97a42dd086 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_19.yaml
@@ -27,11 +27,17 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - Commissioner is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+ 2 - 5.1.3 - QR code is printed on the Commissionee device or in additional provided materials (ex: manual).
+ disabled: true
+
- label:
"Place DUT into commissioning mode using the DUTs manufacturers means
to be discovered by the TH Commissioner"
verification: |
- DUT Commissionee:
+ Verify on DUT Commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3841
[1651111142.369356][32024:32024] CHIP:DL: Device Configuration:
@@ -45,7 +51,7 @@ tests:
[1651111142.369573][32024:32024] CHIP:DL: Device Type: 65535 (0xFFFF)
[1651111142.370760][32024:32024] CHIP:SVR: SetupQRCode: [MT:-24J0ALY01KA0648G00]
- TH Commissioner:
+ Verify on TH Commissioner side:
$ ./chip-tool discover commissionables
[1651111150395] [95835:65674062] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
@@ -68,11 +74,11 @@ tests:
for the Commissioner/Commissionee to complete the commissioning
process over the DUT Commissionees method of device discovery"
verification: |
- DUT Commissionee:
+ Verify on DUT Commissionee side:
[1651111335.475159][32130:32130] CHIP:SVR: Commissioning completed successfully
[1651111335.475204][32130:32130] CHIP:DIS: Updating services using commissioning mode 0
- TH Commissioner:
+ Verify on TH Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J0ALY01KA0648G00
[1651111335378] [95843:65675989] CHIP: [CTL] Received CommissioningComplete response
@@ -106,7 +112,7 @@ tests:
1. On RasPi DUT $ rm -rf /tmp/chip*
2. On RasPi DUT $ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3841
- On TH chip-tool:
+ Verify on TH Commissioner side:
$ ./chip-tool discover commissionables
[1651111576350] [95850:65678872] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
[1651111576350] [95850:65678872] CHIP: [DIS] Vendor ID: 65521
@@ -128,11 +134,11 @@ tests:
for the Commissioner/Commissionee to complete the commissioning
process over the DUT Commissionees method of device discovery"
verification: |
- DUT Commissionee:
+ Verify on DUT Commissionee side:
[1651111614.006849][32259:32259] CHIP:SVR: Commissioning completed successfully
[1651111614.006893][32259:32259] CHIP:DIS: Updating services using commissioning mode 0
- TH Commissioner:
+ Verify on TH Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J0ALY01KA0648G00
[1651111613912] [95856:65679504] CHIP: [CTL] Received CommissioningComplete response
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml
index 33a3be710bcd09..27b21af3206274 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_2.yaml
@@ -25,13 +25,18 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.5 - Commissioner is on a network. - The network can either be IP-based(Ethernet or WiFi) or Thread. Commissioner can either be a Matter device which is already on a network or the test harness connected to the network.
+ disabled: true
+
- label:
"Commissioner and Commissionee discover each other and connect via the
discovery mode applicable for the DUT."
verification: |
- Verify in TH as server side: start BLE Advertising by specific DUT implementation
+ Verify in DUT as commissionee side: start BLE Advertising by specific DUT implementation
- Verify in DUT as client side: start commissioning process(need to obtain the Thread dataset first)
+ Verify in TH as commissioner side: start commissioning process(need to obtain the Thread dataset first)
./chip-tool pairing ble-thread 1 hex:0e080000000000010000000300000f35060004001fffe0020811111111222222220708fd27e57b1b1e22d9051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6f01021234041061e1206d2c2b46e079eb775f41fc72190c0402a0fff8 20202021 3840
,,
@@ -41,7 +46,7 @@ tests:
"Establish encryption keys with Password Authenticated Session
Establishment on the commissioning channel"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:SC: Received PBKDF param response
disabled: true
@@ -50,7 +55,7 @@ tests:
"Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
(the autonomously Fail-safe timer length set by Commissionee)"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Arming failsafe (60 seconds)
disabled: true
@@ -60,7 +65,7 @@ tests:
Commissionee."
PICS: MCORE.COM.WIRELESS
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Setting Regulatory Config
disabled: true
@@ -69,7 +74,7 @@ tests:
"Commissioner requests operational CSR from Commissionee with
OperationalCSRRequest command"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Sending CSR request to 0xffffa4001730 device
CHIP:DMG: ICR moving to [AddingComm]
@@ -133,7 +138,7 @@ tests:
"Commissioner configures operational credentials on DUT if not
previously installed"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
[1651218829.220063][3273:3278] CHIP:CTL: Sending root certificate to the device
[1651218829.220201][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -187,7 +192,7 @@ tests:
"Commissioner configures itself as administrator in ACL on DUT if
needed"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
[1651218829.457248][3273:3278] CHIP:CTL: Sending operational certificate chain to the device
[1651218829.457372][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -243,7 +248,7 @@ tests:
"Commissioner configures operational network on DUT if DUT both
supports and requires"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
[1651218833.995054][3273:3278] CHIP:CTL: Adding thread network
[1651218833.995176][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -295,7 +300,7 @@ tests:
"Commissioner instructs Commissionee to connect to operational network
if not already connected"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
[1651218834.137891][3273:3278] CHIP:CTL: Enabling thread network
[1651218834.138014][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -353,7 +358,7 @@ tests:
- label: "Commissioner starts discovery of DUT using Operational Discovery"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:DL: Avahi resolve found
CHIP:DIS: Node ID resolved for 0x0000000000000001
@@ -364,7 +369,7 @@ tests:
- label:
"Commissioner opens a CASE session with DUT over operational network"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:SC: Sent Sigma1 msg
CHIP:CTL: Address resolved for node: 0x0000000000000001
@@ -403,7 +408,7 @@ tests:
- label: "Commissioner sends CommissioningComplete command"
verification: |
- Verify in DUT as client side
+ Verify in TH as commissioner side
CHIP:CTL: Received CommissioningComplete response
CHIP:CTL: Rendezvous cleanup
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml
index e1b52070927b42..d78e3ffc11e3be 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_20.yaml
@@ -27,11 +27,23 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+ 2 - 5.1.3 - QR code is printed on the Commissionee device or in additional provided materials (ex: manual).
+ disabled: true
+
- label:
"Place TH into commissioning mode using the TH manufacturers means to
be discovered by the DUT Commissioner"
verification: |
$ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3840
+ Verify on TH Commissionee side:
[1651109580.413197][31207:31207] CHIP:DL: Device Configuration:
[1651109580.413259][31207:31207] CHIP:DL: Serial Number: TEST_SN
@@ -58,11 +70,11 @@ tests:
Commissioner/Commissionee to complete the commissioning process over
the TH Commissionees method of device discovery"
verification: |
- TH Commissionee:
+ Verify on TH Commissionee side:
[1651109784.452770][31207:31207] CHIP:SVR: Commissioning completed successfully
[1651109784.452813][31207:31207] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on DUT Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
[1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response
@@ -78,6 +90,7 @@ tests:
network."
verification: |
./chip-tool operationalcredentials remove-fabric 1 1 0
+ Verify on DUT Commissioner side:
CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
@@ -92,7 +105,10 @@ tests:
"Place TH Commissionee back into commissioning mode using the TH
manufacturers means to be discovered by the DUT Commissioner"
verification: |
+ 1. Place the TH into commissioning mode by launching the app again
+
$ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3840
+ Verify on TH Commissionee side:
[1651110721.112368][31791:31791] CHIP:DL: Device Configuration:
[1651110721.112448][31791:31791] CHIP:DL: Serial Number: TEST_SN
@@ -119,11 +135,11 @@ tests:
Commissioner/Commissionee to complete the commissioning process over
the TH Commissionees method of device discovery"
verification: |
- TH Commissionee:
+ Verify on TH Commissionee side:
[1651110724.759825][31791:31791] CHIP:SVR: Commissioning completed successfully
[1651110724.759869][31791:31791] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on DUT Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
[1651110724689] [95810:65669790] CHIP: [CTL] Received CommissioningComplete response
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml
index ad4ea586253bbf..a860d0ddbf32f1 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_21.yaml
@@ -27,13 +27,24 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+ 2 - 5.1.3 - QR code is printed on the Commissionee device or in additional provided materials (ex: manual).
+ disabled: true
+
- label:
"Place TH into commissioning mode using the TH manufacturers means to
be discovered by the DUT Commissioner"
verification: |
$ ./out/all-clusters-app/chip-all-clusters-app --discriminator 3840
- Verify in TH as server side
+ Verify on TH Commissionee side:
[1651109580.413197][31207:31207] CHIP:DL: Device Configuration:
[1651109580.413259][31207:31207] CHIP:DL: Serial Number: TEST_SN
[1651109580.413294][31207:31207] CHIP:DL: Vendor Id: 65521 (0xFFF1)
@@ -59,11 +70,11 @@ tests:
Commissioner/Commissionee to complete the commissioning process over
the TH Commissionees method of device discovery"
verification: |
- TH Commissionee:
+ Verify on TH Commissionee side:
[1651109784.452770][31207:31207] CHIP:SVR: Commissioning completed successfully
[1651109784.452813][31207:31207] CHIP:DIS: Updating services using commissioning mode 0
- DUT Commissioner:
+ Verify on DUT Commissioner side:
$ ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
[1651109784376] [95553:65657838] CHIP: [CTL] Received CommissioningComplete response
@@ -81,12 +92,12 @@ tests:
user action to trigger such command)."
verification: |
1. Send "on" command from Commissioner to TH Endpoint 1
- On DUT=chip-tool:
+ Verify on DUT Commissioner side:
$ ./chip-tool onoff on 1 1
[...]
[1657930715416] [56399:2451384] CHIP: [DMG] Received Command Response Status for Endpoint=1 Cluster=0x0000_0006 Command=0x0000_0001 Status=0x0
- On TH=all-clusters-app:
+ Verify on TH Commissionee side:
[...]
[1657930715.432295][2911:2911] CHIP:ZCL: On/Off set value: 1 1
[1657930715.432341][2911:2911] CHIP:ZCL: Toggle on/off from 0 to 1
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml
index cb0031d272db29..d57af20dbf9a61 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_3.yaml
@@ -26,6 +26,13 @@ config:
endpoint: 0
tests:
+ - label: ""
+ verification: |
+ Preconditions
+ 1 - User must indicate the intention for commissioning using a display or other UI elements.
+ 2 - TH is not advertising Commissioner Discovery Service at start
+ disabled: true
+
- label:
"DUT start scanning for available commissioners using Commissioner
Discovery"
@@ -35,6 +42,8 @@ tests:
- label: "TH is instructed to advertise Commissioner Discovery service"
verification: |
+ chip-tv-app is used as TH
+
ubuntu@ubuntu:~/may23_DUT/connectedhomeip/examples/tv-app/linux/out/tv-app$ sudo ./chip-tv-app
Verify in tv-app side
@@ -49,10 +58,11 @@ tests:
"DUT start scanning for available commissioners using Commissioner
Discovery"
verification: |
- connectedhomeip/examples/tv-casting-app/linux/out/tv-casting-app$ sudo ./chip-tv-casting-app
+ In certification QA we are using chip-tv-casting-app as a reference app, In case of certification testing, DUT (app) vendor to provide instructions on how to scan for commissioners
+ connectedhomeip/examples/tv-casting-app/linux/out/tv-casting-app$ sudo ./chip-tv-casting-app
- Verify in tv-casting-app side
+ Verify for the commissioner advertisements from the TH in tv-casting-app side
CHIP:SVR: Discovered Commissioner #0
[1653478433.097515][3785:3785] CHIP:DIS: Hostname: E45F010F19FF0000 [1653478433.097546][3785:3785] CHIP:DIS: IP Address #1: fe80::d83a:21ff:fe24:b6d6
@@ -96,15 +106,28 @@ tests:
- label: "TH start the commissioning procedure with DUT"
verification: |
- ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2755 5640
+ Into the shell, enter "cast request 0" to send a user-directed-commissioning request to the DUT on tv-casting-app side
+
+ > cast request 0
+ [1653179218011] [47890:1899175] CHIP: [DL] request
+ [1653179218011] [47890:1899175] CHIP: [SVR] ------- PrepareForCommissioning
+ [1653179218011] [47890:1899175] CHIP: [SVR] Server initializing...
+
+
+ UX will vary by product maker. The following is the tv-app shell output:
+
+ [1653179219087] [89108:1898759] CHIP: [CTL] ------PROMPT USER: Test TV casting app is requesting permission to cast to this TV, approve? [0x0000_FFF1,0x0000_8001,E0707BB1AFFA6F23,020096D16895275F1B49A07221F0E588E06B]
+
+ [1653179219087] [89108:1898759] CHIP: [CTL] ------Via Shell Enter: controller ux ok|cancel
+
+
+ Into the DUT UX, accept request for commissioning. Manufacturer may utilize a custom method for obtaining user consent other than an on-screen prompt.
+
+ The following is the tv-app shell command to accept the request
+
+ > controller ux ok
- Verify in TH log:
+ The commissioning success completion is indicated in the TH with the following shell output:
- [1653559159.021348][4240:4246] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005
- [1653559159.021432][4240:4246] CHIP:CTL: Received CommissioningComplete response, errorCode=0
- [1653559159.021499][4240:4246] CHIP:CTL: Successfully finished commissioning step "SendComplete"
- [1653559159.021554][4240:4246] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
- [1653559159.021611][4240:4246] CHIP:CTL: Performing next commissioning step "Cleanup"
- [1653559159.021725][4240:4246] CHIP:CTL: Successfully finished commissioning step "Cleanup"
- [1653559159.021790][4240:4246] CHIP:TOO: Device commissioning completed with success
+ [1653088463910] [86837:1122544] CHIP: [SVR] Commissioning completed successfully
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml
index 202705aee928d1..de3bb357ac2a44 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_4.yaml
@@ -26,11 +26,25 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - User must indicate the intention for commissioning using a display or other UI elements."
+ disabled: true
+
- label: "DUT is instructed to advertise Commissioner Discovery service"
verification: |
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee):
+
+ chip-tv-app is used as TH
+
ubuntu@ubuntu:~/may23_DUT/connectedhomeip/examples/tv-app/linux/out/tv-app$ sudo ./chip-tv-app
- Verify in tv-app side:
+ Verify in tv-app side
CHIP:DL: Using wifi MAC for hostname
CHIP:DIS: Advertise operational node DFC28FF9FE811EF2-FFFFFFEFFFFFFFFF
@@ -42,54 +56,105 @@ tests:
"TH starts scanning for available commissioners using Commissioner
Discovery"
verification: |
- ubuntu@ubuntu:~/may23_cntrl/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matterd._udp
-
- + eth0 IPv6 A0BF4D00BE973DEC _matterd._udp local
- + eth0 IPv6 252FB62C79E2724B _matterd._udp local
- = eth0 IPv6 A0BF4D00BE973DEC _matterd._udp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2755]
- port = [5650]
- txt = ["T=1" "SAI=300" "SII=5000" "DN=Test TV" "DT=35" "VP=65521+32769"]
- = eth0 IPv6 252FB62C79E2724B _matterd._udp local
- hostname = [E45F010F27530000.local]
- address = [fe80::e65f:1ff:fe0f:2755]
- port = [5650]
- txt = ["T=1" "SAI=300" "SII=5000" "DN=Test TV" "DT=35" "VP=65521+32769"]
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee):
+
+ In certification QA we are using chip-tv-casting-app as a reference app, In case of certification testing, DUT (app) vendor to provide instructions on how to scan for commissioners
+
+ connectedhomeip/examples/tv-casting-app/linux/out/tv-casting-app$ sudo ./chip-tv-casting-app
+
+ Verify for the commissioner advertisements from the TH in tv-casting-app side
+
+ [1660758661.643392][2867:2867] CHIP:SVR: Discovered Commissioner #0
+ [1660758661.643469][2867:2867] CHIP:DIS: Discovered node:
+ [1660758661.643506][2867:2867] CHIP:DIS: Hostname: E45F010F3BAF0000 [1660758661.643561][2867:2867] CHIP:DIS: IP Address #1: fe80::9052:32ff:fe00:92c4
+ [1660758661.643606][2867:2867] CHIP:DIS: Port: 5540
+ [1660758661.643648][2867:2867] CHIP:DIS: Mrp Interval idle: 5000 ms
+ [1660758661.643691][2867:2867] CHIP:DIS: Mrp Interval active: 300 ms
+ [1660758661.643733][2867:2867] CHIP:DIS: TCP Supported: 1
+ [1660758661.643779][2867:2867] CHIP:DIS: Rotating ID: 0000406E4D7073744BF234AD391DAE869837
+ [1660758661.643832][2867:2867] CHIP:DIS: Device Name: Test TV casting app
+ [1660758661.643876][2867:2867] CHIP:DIS: Vendor ID: 65521
+ [1660758661.643918][2867:2867] CHIP:DIS: Product ID: 32769
+ [1660758661.643960][2867:2867] CHIP:DIS: Device Type: 35
+ [1660758661.644117][2867:2867] CHIP:DIS: Pairing Hint: 33
+ [1660758661.644170][2867:2867] CHIP:DIS: Instance Name: 742273AB254EDCE1
+ [1660758661.644212][2867:2867] CHIP:DIS: Commissioning Mode: 0
+ [1660758661.644256][2867:2867] CHIP:SVR: Discovered Commissioner #1
+ [1660758661.644294][2867:2867] CHIP:DIS: Discovered node:
+ [1660758661.644329][2867:2867] CHIP:DIS: Hostname: E45F010F27530000 [1660758661.644378][2867:2867] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe0f:2753
+ [1660758661.644426][2867:2867] CHIP:DIS: IP Address #2: fe80::e65f:1ff:fe0f:2753
+ [1660758661.644468][2867:2867] CHIP:DIS: Port: 5640
+ [1660758661.644510][2867:2867] CHIP:DIS: Mrp Interval idle: 5000 ms
+ [1660758661.644552][2867:2867] CHIP:DIS: Mrp Interval active: 300 ms
+ [1660758661.644594][2867:2867] CHIP:DIS: TCP Supported: 1
+ [1660758661.644638][2867:2867] CHIP:DIS: Rotating ID: 01005FDB39737473FB22B819CEBB1084AFD5
+ [1660758661.644680][2867:2867] CHIP:DIS: Device Name: Test TV
+ [1660758661.644721][2867:2867] CHIP:DIS: Vendor ID: 65521
+ [1660758661.644762][2867:2867] CHIP:DIS: Product ID: 32769
+ [1660758661.644803][2867:2867] CHIP:DIS: Device Type: 35
+ [1660758661.644844][2867:2867] CHIP:DIS: Long Discriminator: 3840
+ [1660758661.644886][2867:2867] CHIP:DIS: Pairing Hint: 33
+ [1660758661.644927][2867:2867] CHIP:DIS: Instance Name: 38D0A5D1137B8FF4
+ [1660758661.644968][2867:2867] CHIP:DIS: Commissioning Mode: 1
+ [1660758661.645010][2867:2867] CHIP:SVR: Discovered Commissioner #2
+ [1660758661.645046][2867:2867] CHIP:DIS: Discovered node:
+ [1660758661.645082][2867:2867] CHIP:DIS: Hostname: E45F010F27530000 [1660758661.645128][2867:2867] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe0f:2753
+ [1660758661.645174][2867:2867] CHIP:DIS: IP Address #2: fe80::e65f:1ff:fe0f:2753
+ [1660758661.645217][2867:2867] CHIP:DIS: Port: 5650
+ [1660758661.645258][2867:2867] CHIP:DIS: Mrp Interval idle: 5000 ms
+ [1660758661.645299][2867:2867] CHIP:DIS: Mrp Interval active: 300 ms
+ [1660758661.645340][2867:2867] CHIP:DIS: TCP Supported: 1
+ [1660758661.645382][2867:2867] CHIP:DIS: Device Name: Test TV
+ [1660758661.645424][2867:2867] CHIP:DIS: Vendor ID: 65521
+ [1660758661.645465][2867:2867] CHIP:DIS: Product ID: 32769
+ [1660758661.645506][2867:2867] CHIP:DIS: Device Type: 35
+ [1660758661.645548][2867:2867] CHIP:DIS: Instance Name: 38D0A5D1137B8FF4
+ [1660758661.645589][2867:2867] CHIP:DIS: Commissioning Mode: 0
+ [1660758661.645633][2867:2867] CHIP:SVR: 3 commissioner(s) discovered. Select one (by number# above) to request commissioning from:
+ [1660758661.645672][2867:2867] CHIP:SVR: Example: cast request 0
disabled: true
- label:
"TH is instructed to start the commissioning procedure with the DUT
found at Step 2"
verification: |
- Out of scope for V1.0 - IDM functionality
-
- https://github.com/project-chip/connectedhomeip/issues/11004
+ Out of scope for V1.0
disabled: true
- label: "DUT verifies the Identification Declaration message"
verification: |
- Out of scope for V1.0 - IDM functionality
-
- https://github.com/project-chip/connectedhomeip/issues/11004
+ Out of scope for V1.0
disabled: true
- label: "By any means, DUT prompts user for onboarding payload"
verification: |
- verification step to be updated.
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee):
+
+
+ Into the shell, enter "cast request 0" to send a user-directed-commissioning request to the DUT on tv-casting-app side
+ > cast request 0 [1653179218011] [47890:1899175] CHIP: [DL] request [1653179218011] [47890:1899175] CHIP: [SVR] ------- PrepareForCommissioning [1653179218011] [47890:1899175] CHIP: [SVR] Server initializing...
disabled: true
- label: "DUT starts the commissioning procedure with TH"
verification: |
- ./chip-tool pairing ethernet 1 20202021 3840 fe80::e65f:1ff:fe0f:2755 5640
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) or tv-casting-app (when DUT is a commissionee):
+
+
+
+ UX will vary by product maker. The following is the tv-app shell output:
+
+ [1653179219087] [89108:1898759] CHIP: [CTL] ------PROMPT USER: Test TV casting app is requesting permission to cast to this TV, approve? [0x0000_FFF1,0x0000_8001,E0707BB1AFFA6F23,020096D16895275F1B49A07221F0E588E06B]
+
+ [1653179219087] [89108:1898759] CHIP: [CTL] ------Via Shell Enter: controller ux ok|cancel
+
+
+ Into the DUT UX, accept request for commissioning. Manufacturer may utilize a custom method for obtaining user consent other than an on-screen prompt.
+
+ The following is the tv-app shell command to accept the request
+
+ > controller ux ok
- Verify in DUT as commissioner side Log:
+ The commissioning success completion is indicated in the TH with the following shell output:
- [1653559159.021348][4240:4246] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005
- [1653559159.021432][4240:4246] CHIP:CTL: Received CommissioningComplete response, errorCode=0
- [1653559159.021499][4240:4246] CHIP:CTL: Successfully finished commissioning step "SendComplete"
- [1653559159.021554][4240:4246] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
- [1653559159.021611][4240:4246] CHIP:CTL: Performing next commissioning step "Cleanup"
- [1653559159.021725][4240:4246] CHIP:CTL: Successfully finished commissioning step "Cleanup"
- [1653559159.021790][4240:4246] CHIP:TOO: Device commissioning completed with success
+ [1653088463910] [86837:1122544] CHIP: [SVR] Commissioning completed successfully
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml
index 92c0210c262910..8bb958ed534822 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_5.yaml
@@ -24,13 +24,25 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.5 - Commissioner is on a network. - The network can either be WiFi or Thread.
+
+ 2 - 5.5 - Commissionee can either be a Matter device which is already on a network or the test harness connected to the network.
+ disabled: true
+
- label:
"Commissioner has regulatory and fabric information available and has
accurate date, time and timezone"
verification: |
sudo ./chip-all-clusters-app --wifi --discriminator 3841
- Verify in TH as server side
+ Verify in TH as commissionee side:
[1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000
[1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn"t get a PASE salt, generating one.
@@ -56,7 +68,7 @@ tests:
./chip-tool pairing code 1 MT:-24J0CEK01KA0648G00
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
[1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293
[1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device , LSID:47293 PSID:201!
@@ -74,7 +86,7 @@ tests:
(DNS-SD)"
PICS: MCORE.DD.DISCOVERY_IP
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
...
[1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293
@@ -86,7 +98,7 @@ tests:
[1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo"
- Verify in TH as server side
+ Verify in TH as commissionee side:
$ ./out/all-clusters-app/chip-all-clusters-app
...
[1657226543.948995][369114:369114] CHIP:IN: SecureSession[0xaaaab60788e0]: Activated - Type:1 LSID:201
@@ -100,7 +112,7 @@ tests:
verification: |
Verify that the responder receives the PBKDFParamRequest message
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
CHIP:SC: Received PBKDF param request
CHIP:SC: Peer assigned session ID 18450
CHIP:SC: Found MRP parameters in the message
@@ -110,7 +122,7 @@ tests:
CHIP:IN: Sending unauthenticated msg 0xaaaaad340560 with MessageCounter:1341084110 to 0x0000000000000000 at monotonic time: 0000000000FBA380 msec
CHIP:SC: Sent PBKDF param response
- Verify in TH as server side
+ Verify in TH as commissionee side:
Sent PBKDF param request
[1653471961.364996][30157:30162] CHIP:CTL: Setting wifi credentials from parameters
[1653471961.365051][30157:30162] CHIP:CTL: Setting attestation nonce to random value
@@ -128,10 +140,10 @@ tests:
"Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
(the autonomously Fail-safe timer length set by Commissionee)"
verification: |
- Verify in TH as server side
+ Verify in TH as commissionee side:
CHIP:DL: NVS set: chip-config/fail-safe-armed = true
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
: Performing next commissioning step "ArmFailSafe"
[1653471968.064493][30157:30162] CHIP:CTL: Arming failsafe (60 seconds)
@@ -142,12 +154,12 @@ tests:
Commissionee."
PICS: MCORE.COM.WIRELESS
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
Performing next commissioning step "ConfigRegulatory"
[1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config
[1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0)
- Verify in TH as server side
+ Verify in TH as commissionee side
NVS set: chip-config/regulatory-location = 0 (0x0)
disabled: true
@@ -155,14 +167,14 @@ tests:
"Commissioner requests operational CSR from Commissionee with
OperationalCSRRequest command"
verification: |
- Verify the following on DUT after commissioning
+ 1. Verify the following on DUT after commissioning
- Verify in TH as server side
+ Verify in TH as commissionee side:
[1646909537.102263][3145:3150] CHIP:CTL: Received Attestation Information from the device
[1646909537.102418][3145:3150] CHIP:CTL: Verifying attestation
[1646909537.115081][3145:3150] CHIP:CTL: Successfully validated "Attestation Information" command received from the device.
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:ZCL: OpCreds: commissioner has requested a CSR
CHIP:ZCL: OpCreds: NewCertificateSigningRequest returned ../../third_party/connectedhomeip/src/crypto/CHIPCryptoPALOpenSSL.cpp:1114: Success
disabled: true
@@ -171,11 +183,11 @@ tests:
"Commissioner configures operational credentials on DUT if not
previously installed"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
OpCreds: Received an AddTrustedRootCertificate command
- Verify in TH as server side
+ Verify in TH as commissionee side:
Sending root certificate to the device
CHIP:DMG: ICR moving to [AddingComm]
@@ -190,7 +202,7 @@ tests:
"Commissioner configures itself as administrator in ACL on TH if
needed"
verification: |
- Verify in DUT as client side after commissioning
+ Verify in DUT as commissioner side after commissioning:
CHIP:CTL: Commissioning stage next step: "SendTrustedRootCert" -> "SendNOC"
[1653471969.812357][30157:30162] CHIP:CTL: Performing next commissioning step "SendNOC"
@@ -244,7 +256,7 @@ tests:
[1653471970.347439][30157:30162] CHIP:TOO: Secure Pairing Success
[1653471970.347485][30157:30162] CHIP:CTL: Successfully finished commissioning step "SendNOC"
- Verify in DUT as client side
+ Verify in TH as commissionee side:
OpCreds: Received an AddNOC command
disabled: true
@@ -253,24 +265,29 @@ tests:
"Commissioner configures operational network on TH if TH both supports
and requires"
verification: |
- Verify in DUT as client side after commissioning
-
+ Verify in DUT as commissioner side after commissioning:
[1646909537.345068][3145:3150] CHIP:CTL: Received certificate signing request from the device
+
+ Verifiy on TH as commissionee side:
+ [1660151567834] [99153:10411339] CHIP: [CTL] Received certificate signing request from the device
+ [1660151567834] [99153:10411339] CHIP: [CTL] Successfully finished commissioning step "SendOpCertSigningRequest"
disabled: true
- label:
"Commissioner instructs Commissionee to connect to operational network
if not already connected"
verification: |
- Verify in DUT as client side after commissioning
-
+ Verify in DUT as commissioner side after commissioning:
[1646909537.976592][3145:3150] CHIP:CTL: Operational credentials provisioned on device 0xffffac001730
[1646909537.976664][3145:3150] CHIP:TOO: Secure Pairing Success
+
+ Verifiy on TH as commissionee side:
+ [1660152735.835717][648909:648909] CHIP:ZCL: OpCreds: successfully created fabric index 0x1 via AddNOC
disabled: true
- label: "Commissioner starts discovery of TH using Operational Discovery"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
Commissioning stage next step: "WiFiNetworkEnable" -> "FindOperational"
[1653471976.344532][30157:30162] CHIP:CTL: Performing next commissioning step "FindOperational"
@@ -287,12 +304,18 @@ tests:
[1653471976.348732][30157:30162] CHIP:DIS: Mrp Interval idle: 5000 ms
[1653471976.348762][30157:30162] CHIP:DIS: Mrp Interval active: 300 ms
[1653471976.349059][30157:30162] CHIP:DIS: UDP:[fe80::e65f:1ff:fe0f:2753%eth0]:5540: new best score: 3
+
+ Verifiy on TH as commissionee side:
+ [1660152735.835315][648909:648909] CHIP:DIS: Broadcasting mDns reply for query from fe80::808c:7ff:fefd:3b1
+ [1660152735.835522][648909:648909] CHIP:DIS: mDNS service published: _matter._tcp
+ [1660152735.835565][648909:648909] CHIP:DMG: Endpoint 0, Cluster 0x0000_003E update version to 553aae1
+ [1660152735.835594][648909:648909] CHIP:DMG: Endpoint 0, Cluster 0x0000_003E update version to 553aae2
disabled: true
- label:
"Commissioner opens a CASE session with TH over operational network"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
CASE Server enabling CASE session setups
[1653471957.713139][10713:10713] CHIP:SVR: Joining Multicast groups
@@ -303,16 +326,18 @@ tests:
- label: "Commissioner sends CommissioningComplete command"
verification: |
- Received CommissioningComplete response
-
+ Verify in DUT as commissioner side:
CHIP:CTL: Received CommissioningComplete response
+
+ Verifiy on TH as commissionee side:
+ [1660154248.898113][7143:7143] CHIP:SVR: Commissioning completed successfully
disabled: true
- label:
"Commissioning channel between the Commissioner and Commissionee is
terminated."
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side:
CHIP:CTL: Successfully finished commissioning step "SendComplete"
CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
@@ -326,4 +351,9 @@ tests:
CHIP:DL: Closing BLE GATT connection (con 0xffff9c04df70)
CHIP:CTL: Successfully finished commissioning step "Cleanup"
CHIP:TOO: Device commissioning completed with success
+
+ Verify on TH as commissionee side:
+ [1660154249.008047][7143:7143] CHIP:IN: Expiring all PASE sessions
+ [1660154249.008069][7143:7143] CHIP:IN: SecureSession[0xaaab09155000]: MarkForEviction Type:1 LSID:5786
+ [1660154249.008090][7143:7143] CHIP:SC: SecureSession[0xaaab09155000]: Moving from state "kActive" --> "kPendingEviction"
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml
index dbd0be9c671393..8a641bdd92815e 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_6.yaml
@@ -25,6 +25,18 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.5 - Commissioner is on a network. - The network can either be WiFi or Thread.
+
+ 2 - 5.5 - Commissionee is not connected to an operational network
+ disabled: true
+
- label:
"Commissioner has regulatory and fabric information available and has
accurate date, time and timezone"
@@ -36,9 +48,9 @@ tests:
"Commissioner and Commissionee discover each other and connect via the
discovery mode applicable for the DUT."
verification: |
- Verify in TH as server side: start BLE Advertising by specific DUT implementation
+ Verify in TH as commissionee side: start BLE Advertising by specific DUT implementation
- Verify in DUT as client side: start commissioning process(need to obtain the Thread dataset first)
+ Verify in DUT as commissioner side: start commissioning process(need to obtain the Thread dataset first)
./chip-tool pairing ble-thread 1 hex:0e080000000000010000000300000f35060004001fffe0020811111111222222220708fd27e57b1b1e22d9051000112233445566778899aabbccddeeff030e4f70656e54687265616444656d6f01021234041061e1206d2c2b46e079eb775f41fc72190c0402a0fff8 20202021 3840
disabled: true
@@ -47,7 +59,7 @@ tests:
"Establish encryption keys with Password Authenticated Session
Establishment on the commissioning channel"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:SC: Received PBKDF param response
disabled: true
@@ -56,7 +68,7 @@ tests:
"Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
(the autonomously Fail-safe timer length set by Commissionee)"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:CTL: Arming failsafe (60 seconds)
disabled: true
@@ -66,13 +78,13 @@ tests:
Commissionee."
PICS: MCORE.COM.WIRELESS
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
Performing next commissioning step "ConfigRegulatory"
[1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config
[1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0)
- Verify in TH as server side
+ Verify in TH as commissionee side
NVS set: chip-config/regulatory-location = 0 (0x0)
disabled: true
@@ -80,7 +92,7 @@ tests:
"Commissioner requests operational CSR from Commissionee with
OperationalCSRRequest command"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:CTL: Sending CSR request to 0xffffa4001730 device
CHIP:DMG: ICR moving to [AddingComm]
@@ -144,7 +156,7 @@ tests:
"Commissioner configures operational credentials on DUT if not
previously installed"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
[1651218829.220063][3273:3278] CHIP:CTL: Sending root certificate to the device
[1651218829.220201][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -198,7 +210,7 @@ tests:
"Commissioner configures itself as administrator in ACL on TH if
needed"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
[1651218829.457248][3273:3278] CHIP:CTL: Sending operational certificate chain to the device
[1651218829.457372][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -254,7 +266,7 @@ tests:
"Commissioner configures operational network on TH if TH both supports
and requires"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
[1651218833.995054][3273:3278] CHIP:CTL: Adding thread network
[1651218833.995176][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -306,7 +318,7 @@ tests:
"Commissioner instructs Commissionee to connect to operational network
if not already connected"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
[1651218834.137891][3273:3278] CHIP:CTL: Enabling thread network
[1651218834.138014][3273:3278] CHIP:DMG: ICR moving to [AddingComm]
@@ -359,7 +371,7 @@ tests:
"Commissioning channel between the Commissioner and Commissionee is
terminated."
verification: |
- 1. Verify the channel was terminated on DUT=chip-tool
+ Verify the channel was terminated on DUT as commissioner side:
[1651271753284] [23287:743790] CHIP: [CTL] Received CommissioningComplete response
[1651271753284] [23287:743790] CHIP: [CTL] Successfully finished commissioning step "SendComplete"
[1651271753284] [23287:743790] CHIP: [CTL] Commissioning stage next step: "SendComplete" -> "Cleanup"
@@ -370,7 +382,7 @@ tests:
- label: "Commissioner starts discovery of TH using Operational Discovery"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:DL: Avahi resolve found
CHIP:DIS: Node ID resolved for 0x0000000000000001
@@ -381,7 +393,7 @@ tests:
- label:
"Commissioner opens a CASE session with TH over operational network"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:SC: Sent Sigma1 msg
CHIP:CTL: Address resolved for node: 0x0000000000000001
@@ -420,7 +432,7 @@ tests:
- label: "Commissioner sends CommissioningComplete command"
verification: |
- Verify in DUT as client side
+ Verify in DUT as commissioner side
CHIP:CTL: Received CommissioningComplete response
CHIP:CTL: Rendezvous cleanup
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml
index cbf22f85473687..b6ba6b2d73b862 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_7.yaml
@@ -26,6 +26,17 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.5 - Commissioner is on a network. - The network can either be WiFi or Thread.
+ 2 - 5.5 - Commissionee can either be a Matter device which is already on a network or the test harness connected to the network.
+ disabled: true
+
- label:
"Commissioner has regulatory and fabric information available and has
accurate date, time and timezone"
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml
index 18bea24ee8c4f2..95b80018c71c01 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_8.yaml
@@ -26,6 +26,17 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Preconditions"
+ verification: |
+ 1 - 5.5 - Commissioner is on a network. - The network can either be WiFi or Thread.
+ 2 - 5.5 - Commissionee is not connected to an operational network
+ disabled: true
+
- label:
"Commissioner has regulatory and fabric information available and has
accurate date, time and timezone"
@@ -758,3 +769,8 @@ tests:
CHIP:CTL: Rendezvous cleanup
CHIP:TOO: Device commissioning completed with success
disabled: true
+
+ - label: ""
+ verification: |
+ verification step to be updated.
+ disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml b/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml
index 98ceb571b3902a..7e181f2c075a3d 100644
--- a/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DD_3_9.yaml
@@ -26,9 +26,14 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions"
+ verification: |
+ 1 - Commissioner is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.
+ disabled: true
+
- label: "TH receives Onboarding Payload from the DUT"
verification: |
- 1. Parse the DUT"s QR Code using the TH commissioner: chip-tool
+ 1. Parse the DUT commissionee QR Code using the TH commissioner: chip-tool
$ ./chip-tool payload parse-setup-payload MT:-24J029Q00KA0648G00
[1657230447725] [31078:16782733] CHIP: [SPL] Parsing base38Representation: MT:-24J029Q00KA0648G00
[1657230447725] [31078:16782733] CHIP: [SPL] Version: 0
@@ -43,24 +48,36 @@ tests:
disabled: true
- label:
- "TH fetches commissioning data from Distributed Compliance Ledger
- (DCL)"
+ "Follow any custom steps, guided by a service provided by the DUTs
+ manufacturer for initial device setup, then place the DUT Commissionee
+ into commissioning mode."
verification: |
- 1. TH fetches the DCL from DUT"s DCL
- 2. Verify that DCL contains the criteria:
- - CommissioningCustomFlow field = 2
- - CommissioningModeInitialStepsHint bit 0 (Power Cycle) = 0 and bit 1 (Device Manufacturer URL) = 1
- - CommissioningCustomFlowURL populated with a URL that uses https schema
- disabled: true
+ 1. Follow DUT vendor-specific steps to put DUT into commissioning mode
- - label:
- "TH uses the provided URL to guide user on how to put DUT in a state
- that allows commissioning"
- verification: |
- 1. Follow steps from DCL"s URL given
+ 2. Verify DUT is advertising in commissioning mode. On DUT,
+
+ $ ./chip-tool discover commissionables
+ Verify in TH as commissioner side:
+
+ [1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32
+ [1651192893436] [15304:442604] CHIP: [DIS] Vendor ID: 65521
+ [1651192893436] [15304:442604] CHIP: [DIS] Product ID: 32769
+ [1651192893436] [15304:442604] CHIP: [DIS] Long Discriminator: 3840
+ [1651192893436] [15304:442604] CHIP: [DIS] Pairing Hint: 33
+ [1651192893436] [15304:442604] CHIP: [DIS] Hostname: DCA6328D6E320000 [1651192893436] [15304:442604] CHIP: [DIS] Instance Name: 914762134DA8E7D1
+ [1651192893436] [15304:442604] CHIP: [DIS] IP Address #1: fe80::dea6:32ff:fe8d:6e32
+ [1651192893436] [15304:442604] CHIP: [DIS] Port: 5540
+ [1651192893436] [15304:442604] CHIP: [DIS] Commissioning Mode: 1
+ [1651192893436] [15304:442604] CHIP: [DIS] Mrp Interval idle: 5000 ms
+ [1651192893436] [15304:442604] CHIP: [DIS] Mrp Interval active: 300 ms
disabled: true
- label: "DUT is commissioned by the TH"
verification: |
1. Verify that the DUT is commissioned to the TH commissioner successfully
+
+ Verify on the TH as commissioner side:
+ CHIP:CTL: Received CommissioningComplete response
+ CHIP:CTL: Rendezvous cleanup
+ CHIP:TOO: Device commissioning completed with success
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml
index 206342e67e963a..c2c35d4ac70359 100644
--- a/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml
@@ -24,11 +24,37 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Mandatory cluster requirements for each device type can be found here.
+ github link
+ Use the correct json required for the DUT, this file is PIXIT.DESC.DeviceTypeConformanceList.
+ disabled: true
+
+ - label: "Precondition"
+ verification: |
+ TH and DUT are commissioned
+ disabled: true
+
- label:
"TH reads DeviceTypeList and PartsList attributes from DUT for
Endpoint 0"
PICS: DESC.S.A0000 && DESC.S.A0003
verification: |
+ Send a read request to the DUT using chip-tool to read the partsList attribute in the descriptor cluster on Endpoint 0.
+ Make a note of all the items(Endpoint id’s) in the list. In the below example there are 2 endpoint id"s listed [1,2]
+
+ ./chip-tool descriptor read parts-list 1 0
+
+ Verify PartsList response on the TH (Chip-tool) Log:
+
+ [1641456769.777217][16238:16244] CHIP:DMG: SuppressResponse = true,
+ [1641456769.777267][16238:16244] CHIP:DMG: }
+ [1641456769.777839][16238:16244] CHIP:TOO: Descriptor.PartsList response: 2 entries
+ [1641456769.777925][16238:16244] CHIP:TOO: [1]: 1
+ [1641456769.777978][16238:16244] CHIP:TOO: [2]: 2
+ [1641456769.778080][16238:16244] CHIP:EM: Sending Standalone Ack for MessageCounter:2830202 on exchange 38042i
+
./chip-tool descriptor read device-list 1 0
Verify DeviceList response on the TH (Chip-tool) Log:
@@ -46,6 +72,19 @@ tests:
Endpoint supported by DUT (except Endpoint 0)."
PICS: DESC.S.A0000 && DESC.S.A0003
verification: |
+ For all the Endpoint id’s listed from the previous step run the following steps. The device type should correspond to the id value in the device_type.json
+ Chip tool outputs all values in integer, convert to hex before comparing.
+
+
+ ./chip-tool descriptor read parts-list 1 1
+
+ Verify parts-list response on the TH(Chip-tool) Log:
+
+ [1660127331.634565][46437:46442] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 934889243
+ [1660127331.634631][46437:46442] CHIP:TOO: parts list: 0 entries
+
+
+
./chip-tool descriptor read device-list 1 1
Verify DeviceList response on the TH(Chip-tool) Log:
@@ -57,54 +96,114 @@ tests:
[1657200303.724594][2509:2514] CHIP:TOO: Type: 256
[1657200303.724621][2509:2514] CHIP:TOO: Revision: 1
[1657200303.724647][2509:2514] CHIP:TOO: }
+
+
+
+ ./chip-tool descriptor read parts-list 1 2
+
+ Verify parts-list response on the TH(Chip-tool) Log:
+
+ [1660127879.565330][46472:46477] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1237610137
+ [1660127879.565473][46472:46477] CHIP:TOO: parts list: 0 entries
+
+ ./chip-tool descriptor read device-list 1 2
+
+ Verify DeviceList response on the TH(Chip-tool) Log:
+
+ [1660127725.802512][46460:46465] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1237610137
+ [1660127725.802614][46460:46465] CHIP:TOO: device list: 1 entries
+ [1660127725.802669][46460:46465] CHIP:TOO: [1]: {
+ [1660127725.802707][46460:46465] CHIP:TOO: Type: 256
+ [1660127725.802745][46460:46465] CHIP:TOO: Revision: 1
+ [1660127725.802781][46460:46465] CHIP:TOO: }
disabled: true
- label: "TH reads ServerList attribute."
PICS: DESC.S.A0001
verification: |
- ./chip-tool descriptor read server-list 1 0
+ For all the Endpoint id’s listed in step 1a run the following steps. For all the server list entries listed in the output - Convert them to Hex values. For example 29 is 0x001D. Verify that these are also present in the device_type.json. Every server cluster listed in the JSON should correspond to a number here in the output.
+
+ ./chip-tool descriptor read server-list 1 1
Verify server list on the TH (Chip-tool) Log:
- [1654155402.956829][3701:3706] CHIP:TOO: server list: 26 entries
- [1654155402.956863][3701:3706] CHIP:TOO: [1]: 3
- [1654155402.956889][3701:3706] CHIP:TOO: [2]: 4
- [1654155402.956914][3701:3706] CHIP:TOO: [3]: 29
- [1654155402.956939][3701:3706] CHIP:TOO: [4]: 30
- [1654155402.956963][3701:3706] CHIP:TOO: [5]: 31
- [1654155402.956988][3701:3706] CHIP:TOO: [6]: 40
- [1654155402.957012][3701:3706] CHIP:TOO: [7]: 42
- [1654155402.957037][3701:3706] CHIP:TOO: [8]: 43
- [1654155402.957061][3701:3706] CHIP:TOO: [9]: 44
- [1654155402.957086][3701:3706] CHIP:TOO: [10]: 45
- [1654155402.957110][3701:3706] CHIP:TOO: [11]: 46
- [1654155402.957135][3701:3706] CHIP:TOO: [12]: 47
- [1654155402.957159][3701:3706] CHIP:TOO: [13]: 48
- [1654155402.957183][3701:3706] CHIP:TOO: [14]: 49
- [1654155402.957207][3701:3706] CHIP:TOO: [15]: 50
- [1654155402.957231][3701:3706] CHIP:TOO: [16]: 51
- [1654155402.957256][3701:3706] CHIP:TOO: [17]: 52
- [1654155402.957280][3701:3706] CHIP:TOO: [18]: 53
- [1654155402.957304][3701:3706] CHIP:TOO: [19]: 54
- [1654155402.957328][3701:3706] CHIP:TOO: [20]: 55
- [1654155402.957352][3701:3706] CHIP:TOO: [21]: 60
- [1654155402.957376][3701:3706] CHIP:TOO: [22]: 62
- [1654155402.957400][3701:3706] CHIP:TOO: [23]: 63
- [1654155402.957424][3701:3706] CHIP:TOO: [24]: 64
- [1654155402.957449][3701:3706] CHIP:TOO: [25]: 65
- [1654155402.957473][3701:3706] CHIP:TOO: [26]: 1029
+ [1660149731.921734][49539:49544] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 2312399478
+ [1660149731.921749][49539:49544] CHIP:TOO: server list: 44 entries
+ [1660149731.921753][49539:49544] CHIP:TOO: [1]: 3
+ [1660149731.921755][49539:49544] CHIP:TOO: [2]: 4
+ [1660149731.921758][49539:49544] CHIP:TOO: [3]: 5
+ [1660149731.921760][49539:49544] CHIP:TOO: [4]: 6
+ [1660149731.921762][49539:49544] CHIP:TOO: [5]: 7
+ [1660149731.921765][49539:49544] CHIP:TOO: [6]: 8
+ [1660149731.921767][49539:49544] CHIP:TOO: [7]: 15
+ [1660149731.921769][49539:49544] CHIP:TOO: [8]: 29
+ [1660149731.921772][49539:49544] CHIP:TOO: [9]: 30
+ [1660149731.921774][49539:49544] CHIP:TOO: [10]: 37
+ [1660149731.921776][49539:49544] CHIP:TOO: [11]: 47
+ [1660149731.921779][49539:49544] CHIP:TOO: [12]: 59
+ [1660149731.921781][49539:49544] CHIP:TOO: [13]: 64
+ [1660149731.921783][49539:49544] CHIP:TOO: [14]: 65
+ [1660149731.921785][49539:49544] CHIP:TOO: [15]: 69
+ [1660149731.921787][49539:49544] CHIP:TOO: [16]: 80
+ [1660149731.921790][49539:49544] CHIP:TOO: [17]: 257
+ [1660149731.921792][49539:49544] CHIP:TOO: [18]: 258
+ [1660149731.921795][49539:49544] CHIP:TOO: [19]: 259
+ [1660149731.921797][49539:49544] CHIP:TOO: [20]: 512
+ [1660149731.921799][49539:49544] CHIP:TOO: [21]: 513
+ [1660149731.921801][49539:49544] CHIP:TOO: [22]: 514
+ [1660149731.921804][49539:49544] CHIP:TOO: [23]: 516
+ [1660149731.921806][49539:49544] CHIP:TOO: [24]: 768
+ [1660149731.921808][49539:49544] CHIP:TOO: [25]: 1024
+ [1660149731.921810][49539:49544] CHIP:TOO: [26]: 1026
+ [1660149731.921812][49539:49544] CHIP:TOO: [27]: 1027
+ [1660149731.921814][49539:49544] CHIP:TOO: [28]: 1028
+ [1660149731.921817][49539:49544] CHIP:TOO: [29]: 1029
+ [1660149731.921819][49539:49544] CHIP:TOO: [30]: 1030
+ [1660149731.921821][49539:49544] CHIP:TOO: [31]: 1283
+ [1660149731.921824][49539:49544] CHIP:TOO: [32]: 1284
+ [1660149731.921826][49539:49544] CHIP:TOO: [33]: 1285
+ [1660149731.921828][49539:49544] CHIP:TOO: [34]: 1286
+ [1660149731.921830][49539:49544] CHIP:TOO: [35]: 1287
+ [1660149731.921832][49539:49544] CHIP:TOO: [36]: 1288
+ [1660149731.921835][49539:49544] CHIP:TOO: [37]: 1289
+ [1660149731.921837][49539:49544] CHIP:TOO: [38]: 1290
+ [1660149731.921839][49539:49544] CHIP:TOO: [39]: 1291
+ [1660149731.921841][49539:49544] CHIP:TOO: [40]: 1292
+ [1660149731.921844][49539:49544] CHIP:TOO: [41]: 1293
+ [1660149731.921846][49539:49544] CHIP:TOO: [42]: 1294
+ [1660149731.921848][49539:49544] CHIP:TOO: [43]: 2820
+ [1660149731.921851][49539:49544] CHIP:TOO: [44]: 4294048773
+
+
+ ./chip-tool descriptor read server-list 1 2
+
+ [1660146145.982691][46811:46816] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1051414887
+ [1660146145.982733][46811:46816] CHIP:TOO: server list: 5 entries
+ [1660146145.982744][46811:46816] CHIP:TOO: [1]: 4
+ [1660146145.982752][46811:46816] CHIP:TOO: [2]: 6
+ [1660146145.982759][46811:46816] CHIP:TOO: [3]: 29
+ [1660146145.982771][46811:46816] CHIP:TOO: [4]: 47
+ [1660146145.982778][46811:46816] CHIP:TOO: [5]: 1030
disabled: true
- label: "TH reads ClientList attribute"
PICS: DESC.S.A0002
verification: |
- ./chip-tool descriptor read client-list 1 0
+ For all the Endpoint id’s listed in step 1a run the following steps. For all the client list entries listed in the output - Convert them to Hex values. For example 29 is 0x001D. Verify that these are also present in the device_type.json. Every server cluster listed in the JSON should correspond to a number here in the output.
+
+
+ ./chip-tool descriptor read client-list 1 1
Verify client list on the TH (Chip-tool) Log:
+ [1660195618.042544][2905:2910] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 2955150741
+ [1660195618.042605][2905:2910] CHIP:TOO: client list: 0 entries
- [1650281818.533446][9679:9684] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 1976976904
- [1650281818.533514][9679:9684] CHIP:TOO: client list: 1 entries
- [1650281818.533563][9679:9684] CHIP:TOO: [1]: 41
+ ./chip-tool descriptor read client-list 1 2
+
+ Verify client list on the TH (Chip-tool) Log:
+
+ [1660146160.390200][46818:46823] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 1051414887
+ [1660146160.390211][46818:46823] CHIP:TOO: client list: 0 entries
disabled: true
- label: "TH reads PartsList attribute."
@@ -127,5 +226,43 @@ tests:
to make sure all mandatory (and applicable optional)
attributes/commands are implemented."
verification: |
- verification step to be updated.
+ FOR ENDPOINTS 2
+
+
+ ./chip-tool descriptor read parts-list 1 2
+
+ Verify parts-list response on the TH(Chip-tool) Log:
+
+ [1660127879.565330][46472:46477] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0003 DataVersion: 1237610137
+ [1660127879.565473][46472:46477] CHIP:TOO: parts list: 0 entries
+
+ ./chip-tool descriptor read device-list 1 2
+
+ Verify DeviceList response on the TH(Chip-tool) Log:
+
+ [1660127725.802512][46460:46465] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0000 DataVersion: 1237610137
+ [1660127725.802614][46460:46465] CHIP:TOO: device list: 1 entries
+ [1660127725.802669][46460:46465] CHIP:TOO: [1]: {
+ [1660127725.802707][46460:46465] CHIP:TOO: Type: 256
+ [1660127725.802745][46460:46465] CHIP:TOO: Revision: 1
+ [1660127725.802781][46460:46465] CHIP:TOO: }
+
+ ./chip-tool descriptor read server-list 1 2
+
+ Verify server list on the TH (Chip-tool) Log:
+
+ [1660146145.982691][46811:46816] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0001 DataVersion: 1051414887
+ [1660146145.982733][46811:46816] CHIP:TOO: server list: 5 entries
+ [1660146145.982744][46811:46816] CHIP:TOO: [1]: 4
+ [1660146145.982752][46811:46816] CHIP:TOO: [2]: 6
+ [1660146145.982759][46811:46816] CHIP:TOO: [3]: 29
+ [1660146145.982771][46811:46816] CHIP:TOO: [4]: 47
+ [1660146145.982778][46811:46816] CHIP:TOO: [5]: 1030
+
+ ./chip-tool descriptor read client-list 1 2
+
+ Verify client list on the TH (Chip-tool) Log:
+
+ [1660146160.390200][46818:46823] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_001D Attribute 0x0000_0002 DataVersion: 1051414887
+ [1660146160.390211][46818:46823] CHIP:TOO: client list: 0 entries
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml
index 95de56495d2c2a..44ea9c363205c6 100644
--- a/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGGEN_1_1.yaml
@@ -54,7 +54,7 @@ tests:
response:
constraints:
type: list
- contains: [0, 1, 8, 65528, 65529, 65531, 65533]
+ contains: [0, 1, 8, 65528, 65529, 65531, 65532, 65533]
- label: "Read the global attribute: AcceptedCommandList"
command: "readAttribute"
diff --git a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml
index 91486a9f19c52f..e9426841124b86 100644
--- a/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGGEN_2_2.yaml
@@ -25,9 +25,23 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ "NOTE: https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux#readme
+ Events to be executed as following
+ 1. Compile app using below command in connectedhomeip folder
+ a. ./scripts/run_in_build_env.sh ""./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build""
+ b. ./scripts/run_in_build_env.sh ""./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang build""
+ 2. Build respective app (all-clusters-app)
+ 3. Commission DUT to TH
+ 4. Open 2nd terminal of DUT and provide the below command to obtain PID of DUT
+ ps -aef|grep all-clusters-app
+ 5. Follow the Verification step below to generate the event in 2nd terminal of DUT "
+ disabled: true
+
- label: "Commission DUT to TH"
verification: |
- verification step to be updated.
+
disabled: true
- label:
@@ -133,52 +147,3 @@ tests:
[1659530352.583789][4993:4998] CHIP:TOO: BootReason: 0
[1659530352.583813][4993:4998] CHIP:TOO: }
disabled: true
-
- - label: "TH initiates the subscription of NetworkFault event from DUT."
- PICS: DGGEN.S.E02
- verification: |
- On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT
-
- "echo "{"Name":"NetworkFaultChange"}" > /tmp/chip_all_clusters_fifo- (PID of all-clusters-app)"
-
-
- sudo ./chip-tool generaldiagnostics subscribe-event network-fault-change 100 1000 1 0
- On TH(chip-tool) verify that subscription response of NetworkFault event shows subscrition ID
-
- [1653659901.757441][242605:242610] CHIP:EM: Received message of type 0x4 with protocolId (0, 1) and MessageCounter:11933575 on exchange 20223i
- [1653659901.757513][242605:242610] CHIP:EM: Found matching exchange: 20223i, Delegate: 0x7fd058003950
- [1653659901.757544][242605:242610] CHIP:EM: Rxd Ack; Removing MessageCounter:3369789 from Retrans Table on exchange 20223i
- [1653659901.757564][242605:242610] CHIP:EM: Removed CHIP MessageCounter:3369789 from RetransTable on exchange 20223i
- [1653659901.757618][242605:242610] CHIP:DMG: SubscribeResponseMessage =
- [1653659901.757638][242605:242610] CHIP:DMG: {
- [1653659901.757658][242605:242610] CHIP:DMG: SubscriptionId = 0x17dc072d1130a3bd,
- [1653659901.757676][242605:242610] CHIP:DMG: MinIntervalFloorSeconds = 0x64,
- [1653659901.757690][242605:242610] CHIP:DMG: MaxIntervalCeilingSeconds = 0x3e8,
- [1653659901.757708][242605:242610] CHIP:DMG: InteractionModelRevision = 1
- [1653659901.757721][242605:242610] CHIP:DMG: }
- [1653659901.757746][242605:242610] CHIP:DMG: Subscription established with SubscriptionID = 0x17DC072D1130A3BD MinInterval = 100s MaxInterval = 1000s Peer = 01:0000000000000002
- disabled: true
-
- - label:
- "Reboot DUT with a normal reboot process. Rejoin DUT back to previous
- TH fabric."
- PICS: DGGEN.S.E03
- verification: |
- On Raspi platform the event is triggered with below command, Pls use equivalent command on the respective DUT
-
- "echo "{"Name":""}" > /tmp/chip_all_clusters_fifo- (PID of all-clusters-app)"
-
-
- 1. Reboot DUT with a normal reboot process
- 2. ./chip-tool generaldiagnostics read-event boot-reason 1 0
- On TH(chip-tool) verify that the event data of BootReason specified by Table 103 BootReason ENUM table.
-
- CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Event 0x0000_0003
- [1651562139.644134][7873:7878] CHIP:TOO: Event number: 1
- [1651562139.644157][7873:7878] CHIP:TOO: Priority: Critical
- [1651562139.644179][7873:7878] CHIP:TOO: Timestamp: 8347991
- [1651562139.644273][7873:7878] CHIP:TOO: BootReason: {
- [1651562139.644317][7873:7878] CHIP:TOO: BootReason: 0
- [1651562139.644343][7873:7878] CHIP:TOO: }
- [1651562139.644431][7873:7878] CHIP:EM: Sending Standalone Ack for MessageCounter:9685408 on exchange 6383i
- disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml
index a30e6eafd57456..9771f051c5759c 100644
--- a/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGSW_3_1.yaml
@@ -26,12 +26,12 @@ config:
tests:
- label: "Note"
verification: |
- Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
- label: "Commission TH to DUT"
verification: |
- verification step to be updated.
+
disabled: true
- label: "DUT reads a list of ThreadMetrics struct attribute from TH."
@@ -107,19 +107,19 @@ tests:
[1659972063.411625][3458:3458] CHIP:IM: Received Read request
[1659972063.411702][3458:3458] CHIP:DMG: ReadRequestMessage =
[1659972063.411740][3458:3458] CHIP:DMG: {
- [1659972063.411763][3458:3458] CHIP:DMG: AttributePathIBs =
- [1659972063.411789][3458:3458] CHIP:DMG: [
- [1659972063.411822][3458:3458] CHIP:DMG: AttributePathIB =
- [1659972063.411852][3458:3458] CHIP:DMG: {
- [1659972063.411892][3458:3458] CHIP:DMG: Endpoint = 0x0,
- [1659972063.411932][3458:3458] CHIP:DMG: Cluster = 0x34,
- [1659972063.411964][3458:3458] CHIP:DMG: Attribute = 0x0000_0002,
- [1659972063.412003][3458:3458] CHIP:DMG: }
+ [1659972063.411763][3458:3458] CHIP:DMG: AttributePathIBs =
+ [1659972063.411789][3458:3458] CHIP:DMG: [
+ [1659972063.411822][3458:3458] CHIP:DMG: AttributePathIB =
+ [1659972063.411852][3458:3458] CHIP:DMG: {
+ [1659972063.411892][3458:3458] CHIP:DMG: Endpoint = 0x0,
+ [1659972063.411932][3458:3458] CHIP:DMG: Cluster = 0x34,
+ [1659972063.411964][3458:3458] CHIP:DMG: Attribute = 0x0000_0002,
+ [1659972063.412003][3458:3458] CHIP:DMG: }
[1659972063.412032][3458:3458] CHIP:DMG:
- [1659972063.412069][3458:3458] CHIP:DMG: ],
+ [1659972063.412069][3458:3458] CHIP:DMG: ],
[1659972063.412106][3458:3458] CHIP:DMG:
- [1659972063.412133][3458:3458] CHIP:DMG: isFabricFiltered = true,
- [1659972063.412165][3458:3458] CHIP:DMG: InteractionModelRevision = 1
+ [1659972063.412133][3458:3458] CHIP:DMG: isFabricFiltered = true,
+ [1659972063.412165][3458:3458] CHIP:DMG: InteractionModelRevision = 1
[1659972063.412191][3458:3458] CHIP:DMG: },
[1659972063.412273][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports]
[1659972063.412375][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
@@ -139,19 +139,19 @@ tests:
[1659972088.497642][3458:3458] CHIP:IM: Received Read request
[1659972088.497747][3458:3458] CHIP:DMG: ReadRequestMessage =
[1659972088.497787][3458:3458] CHIP:DMG: {
- [1659972088.497816][3458:3458] CHIP:DMG: AttributePathIBs =
- [1659972088.497854][3458:3458] CHIP:DMG: [
- [1659972088.497889][3458:3458] CHIP:DMG: AttributePathIB =
- [1659972088.497928][3458:3458] CHIP:DMG: {
- [1659972088.497970][3458:3458] CHIP:DMG: Endpoint = 0x0,
- [1659972088.498016][3458:3458] CHIP:DMG: Cluster = 0x34,
- [1659972088.498061][3458:3458] CHIP:DMG: Attribute = 0x0000_0003,
- [1659972088.498103][3458:3458] CHIP:DMG: }
+ [1659972088.497816][3458:3458] CHIP:DMG: AttributePathIBs =
+ [1659972088.497854][3458:3458] CHIP:DMG: [
+ [1659972088.497889][3458:3458] CHIP:DMG: AttributePathIB =
+ [1659972088.497928][3458:3458] CHIP:DMG: {
+ [1659972088.497970][3458:3458] CHIP:DMG: Endpoint = 0x0,
+ [1659972088.498016][3458:3458] CHIP:DMG: Cluster = 0x34,
+ [1659972088.498061][3458:3458] CHIP:DMG: Attribute = 0x0000_0003,
+ [1659972088.498103][3458:3458] CHIP:DMG: }
[1659972088.498144][3458:3458] CHIP:DMG:
- [1659972088.498180][3458:3458] CHIP:DMG: ],
+ [1659972088.498180][3458:3458] CHIP:DMG: ],
[1659972088.498219][3458:3458] CHIP:DMG:
- [1659972088.498257][3458:3458] CHIP:DMG: isFabricFiltered = true,
- [1659972088.498294][3458:3458] CHIP:DMG: InteractionModelRevision = 1
+ [1659972088.498257][3458:3458] CHIP:DMG: isFabricFiltered = true,
+ [1659972088.498294][3458:3458] CHIP:DMG: InteractionModelRevision = 1
[1659972088.498328][3458:3458] CHIP:DMG: },
[1659972088.498431][3458:3458] CHIP:DMG: IM RH moving to [GeneratingReports]
[1659972088.498545][3458:3458] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml
index 5f8fee8d8262a9..a48e928599b156 100644
--- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml
@@ -41,7 +41,6 @@ tests:
type: int16u
- label: "TH reads the FeatureMap from DUT"
- PICS: DGTHREAD.S.F00 || DGTHREAD.S.F01 || DGTHREAD.S.F02 || DGTHREAD.S.F03
command: "readAttribute"
attribute: "FeatureMap"
response:
diff --git a/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml
index b370a0337bbf94..5e1e29e4de2037 100644
--- a/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGWIFI_1_1.yaml
@@ -39,6 +39,15 @@ tests:
constraints:
type: int16u
+ - label: "TH reads the FeatureMap from DUT"
+ PICS: ( !DGWIFI.S.F00 && !DGWIFI.S.F01 )
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "TH reads the FeatureMap from DUT"
PICS: DGWIFI.S.F00 || DGWIFI.S.F01
command: "readAttribute"
@@ -46,7 +55,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 3
- label: "TH reads AttributeList from DUT"
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml
index 4789c9736d130d..e83ad337d61a7e 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml
@@ -40,6 +40,18 @@ tests:
constraints:
type: int16u
+ - label: "TH reads the FeatureMap from DUT"
+ PICS:
+ " !DRLK.S.F00 && !DRLK.S.F01 && !DRLK.S.F02 && !DRLK.S.F04 &&
+ !DRLK.S.F05 && !DRLK.S.F06 && !DRLK.S.F07 && !DRLK.S.F08 &&
+ !DRLK.S.F10 && !DRLK.S.F11 "
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "TH reads the FeatureMap from DUT"
PICS:
DRLK.S.F00 || DRLK.S.F01 || DRLK.S.F02 || DRLK.S.F04 || DRLK.S.F05 ||
@@ -49,7 +61,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 4095
- label: "TH reads AttributeList from DUT"
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml
index 86a6beb3e9b8b4..fd9b809155774e 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_10.yaml
@@ -44,12 +44,16 @@ tests:
scenario)"
PICS: DRLK.S.E00 && DRLK.S.DetectLockJammed
verification: |
- To trigger the event give below command in another terminal of DUT
+ To trigger the event give below command by opening an another terminal of DUT
echo "{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }" > /tmp/chip_lock_app_fifo- (PID of lock-app)
For example :
echo "{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }" > /tmp/chip_lock_app_fifo-3940
+ disabled: true
+ - label: "TH reads the DoorLockAlarm event from DUT"
+ PICS: DRLK.S.E00
+ verification: |
./chip-tool doorlock read-event door-lock-alarm 1 1
Verify "TH receives the DoorLockAlarm event and AlarmCode is set to LockJammed " on the TH(Chip-tool) Log:
@@ -63,37 +67,16 @@ tests:
[1659521453.110591][4098:4103] CHIP:TOO: }
disabled: true
- - label: "TH reads the DoorLockAlarm event from DUT"
- PICS: DRLK.S.E00
- verification: |
- verification step to be updated.
- disabled: true
-
- label: "Trigger the DUT to generate DoorStateChange Event"
PICS: DRLK.S.F05 && DRLK.S.E01
verification: |
To trigger the event give below command in another terminal of DUT
echo "{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }" > /tmp/chip_lock_app_fifo-4055 (4055 - value changes)
-
- ./chip-tool doorlock read-event door-state-change 1 1
-
- Verify "TH recieve the DoorLockAlaram event and DoorState set to DoorClosed " on the TH(Chip-tool) Log:
-
- [1659521576.156075][4109:4114] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0001
- [1659521576.156118][4109:4114] CHIP:TOO: Event number: 1
- [1659521576.156150][4109:4114] CHIP:TOO: Priority: Critical
- [1659521576.156181][4109:4114] CHIP:TOO: Timestamp: 23466089
- [1659521576.156277][4109:4114] CHIP:TOO: DoorStateChange: {
- [1659521576.156331][4109:4114] CHIP:TOO: DoorState: 1
- [1659521576.156368][4109:4114] CHIP:TOO: }
disabled: true
- label: "TH reads the DoorStateChange event from DUT"
PICS: DRLK.S.F05 && DRLK.S.E01
verification: |
- To trigger the event give below command in another terminal of DUT
- echo "{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }" > /tmp/chip_lock_app_fifo-4055 (4055 - value changes)
-
./chip-tool doorlock read-event door-state-change 1 1
Verify "TH recieve the DoorLockAlaram event and DoorState set to DoorClosed " on the TH(Chip-tool) Log:
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml
index 18eacd39f1aae0..82e79debbf4c59 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_2.yaml
@@ -14,6 +14,9 @@
name: 111.2.2. [TC-DRLK-2.2] Verification for Door lock command[DUT-Server]
+PICS:
+ - DRLK.S
+
config:
nodeId: 0x12344321
cluster: "Door Lock"
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml
index 3f4e53638ed919..b0b2097a8e1d47 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_3.yaml
@@ -14,6 +14,9 @@
name: 111.2.3. [TC-DRLK-2.3] Verification for Unlock Door command [DUT-Server]
+PICS:
+ - DRLK.S
+
config:
nodeId: 0x12344321
cluster: "Door Lock"
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml
index caa3ac7574991a..30977190efa2a7 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_6.yaml
@@ -27,9 +27,14 @@ config:
endpoint: 0
tests:
+ - label: "Pre-Conditions"
+ verification: |
+ DUT as server
+ disabled: true
+
- label:
"TH reads NumberOfHoliday SchedulesSupported and saves for future use."
- PICS: DRLK.S.F04 && DRLK.S.A0016
+ PICS: DRLK.S.F11 && DRLK.S.A0016
verification: |
./chip-tool doorlock read number-of-holiday-schedules-supported 1 1
Verify " NumberOfHoliDay SchedulesSuppored" on the TH(Chip-tool) Log:
@@ -46,7 +51,7 @@ tests:
"TH sends Set Holiday Schedule Command to DUT with the following
values: HolidayIndex as 1 LocalStartTime as 20 Seconds LocalEndTime as
30 Seconds OperatingMode as 0"
- PICS: DRLK.S.F04 && DRLK.S.C11.Rsp
+ PICS: DRLK.S.F11 && DRLK.S.C11.Rsp
verification: |
./chip-tool doorlock set-holiday-schedule 1 20 30 0 1 1
Verify " DUT send SUCCESS response." on the TH(Chip-tool) Log:
@@ -68,7 +73,7 @@ tests:
- label:
"TH sends Get Holiday Schedule Command to DUT with HolidayIndex as 1"
- PICS: DRLK.S.F04 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
+ PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
verification: |
./chip-tool doorlock get-holiday-schedule 1 1 1
Verify " DUT responds with Get Holiday Schedule Response" on the TH(Chip-tool) Log:
@@ -126,7 +131,7 @@ tests:
- label:
"TH sends Get Holiday Schedule Command to DUT with Invalid
HolidayIndex as 15."
- PICS: DRLK.S.F04 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
+ PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
verification: |
./chip-tool doorlock get-holiday-schedule 15 1 1
Verify " DUT sends INVALID_COMMAND response" on the TH(Chip-tool) Log:
@@ -148,7 +153,7 @@ tests:
"TH sends Get Holiday Schedule Command to DUT with the HolidayIndex as
10 (value is in the the range of step 1 but Holiday Schedule entry not
available)"
- PICS: DRLK.S.F04 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
+ PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
verification: |
./chip-tool doorlock get-holiday-schedule 10 1 1
Verify " DUT sends a NOT_FOUND status" on the TH(Chip-tool) Log:
@@ -164,7 +169,7 @@ tests:
- label:
"TH send Clear Holiday Schedule Command to DUT with HolidayIndex as 1"
- PICS: DRLK.S.F04 && DRLK.S.C13.Rsp
+ PICS: DRLK.S.F11 && DRLK.S.C13.Rsp
verification: |
./chip-tool doorlock clear-holiday-schedule 1 1 1
Verify " DUT sends SUCCESS response" on the TH(Chip-tool) Log:
@@ -186,7 +191,7 @@ tests:
- label:
"TH sends Get Holiday Schedule Command to DUT with HolidayIndex as 1."
- PICS: DRLK.S.F04 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
+ PICS: DRLK.S.F11 && DRLK.S.C12.Rsp && DRLK.S.C12.Tx
verification: |
./chip-tool doorlock get-holiday-schedule 1 1 1
Verify " DUT sends a NOT_FOUND status" on the TH(Chip-tool) Log:
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_3_1.yaml
index 6dc3140f82faf5..e0dba94eac3990 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_3_1.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "DUT reads LockState from the TH."
PICS: DRLK.C.A0000
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_3_2.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_3_2.yaml
index 652cf20cf02915..9913e84fb2f000 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_3_2.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "DUT sends Lock Door command to TH."
PICS: DRLK.C.C00.Tx
verification: |
@@ -864,3 +869,35 @@ tests:
[1657115878.585752][8804:8804] CHIP:ZCL: Found unoccupied credential [endpoint=1,index=1]
[1657115878.585802][8804:8804] CHIP:ZCL: [clearCredential] Ignored attempt to clear unoccupied credential slot [endpointId=1,credentialType=1,credentialIndex=1,modifier=1]
disabled: true
+
+ - label: ""
+ verification: |
+ ./chip-tool doorlock clear-user 1 1 1 --timedInteractionTimeoutMs 1000
+
+ Verify the " clear-user command response" on TH(lock-app):
+
+
+ [1658399779.246157][2474:2474] CHIP:DMG: CommandDataIB =
+ [1658399779.246193][2474:2474] CHIP:DMG: {
+ [1658399779.246219][2474:2474] CHIP:DMG: CommandPathIB =
+ [1658399779.246258][2474:2474] CHIP:DMG: {
+ [1658399779.246301][2474:2474] CHIP:DMG: EndpointId = 0x1,
+ [1658399779.246336][2474:2474] CHIP:DMG: ClusterId = 0x101,
+ [1658399779.246381][2474:2474] CHIP:DMG: CommandId = 0x1d,
+ [1658399779.246411][2474:2474] CHIP:DMG: },
+ [1658399779.246452][2474:2474] CHIP:DMG:
+ [1658399779.246480][2474:2474] CHIP:DMG: CommandFields =
+ [1658399779.246519][2474:2474] CHIP:DMG: {
+ [1658399779.246562][2474:2474] CHIP:DMG: 0x0 = 1,
+ [1658399779.246595][2474:2474] CHIP:DMG: },
+ [1658399779.246631][2474:2474] CHIP:DMG: },
+ [1658399779.246662][2474:2474] CHIP:DMG:
+ [1658399779.246694][2474:2474] CHIP:DMG: ],
+ [1658399779.246732][2474:2474] CHIP:DMG:
+ [1658399779.246757][2474:2474] CHIP:DMG: InteractionModelRevision = 1
+ [1658399779.246788][2474:2474] CHIP:DMG: },
+ [1658399779.246862][2474:2474] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=a
+ [1658399779.246899][2474:2474] CHIP:DMG: AccessControl: allowed
+ [1658399779.246926][2474:2474] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_001D
+ [1658399779.246958][2474:2474] CHIP:ZCL: [ClearUser] Incoming command [endpointId=1,userIndex=1]
+ disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml
index 749d10874e91d8..b909f1aea6b7d7 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_3_3.yaml
@@ -27,24 +27,54 @@ config:
tests:
- label: "Note"
verification: |
- Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
+ - label: "Note"
+ verification: |
+ "NOTE: https://github.com/project-chip/connectedhomeip/tree/master/examples/lock-app/linux#readme
+ Events to be executed as following
+ 1. Compile app using below command in connectedhomeip folder
+ a. ./scripts/run_in_build_env.sh ./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build
+ b. ./scripts/run_in_build_env.sh ./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang build
+ 2. Build respective app (lock-app)
+ 3. Commission DUT to TH
+ 4. Open 2nd terminal of DUT and provide the below command to obtain PID of DUT
+ ps -aef|grep lock-app
+ 5. Follow the Verification step below to generate the event in 2nd terminal of DUT "
disabled: true
- label: "TH will initiate DoorLockAlarm Event (LockJammed scenario)"
PICS: DRLK.C.E00
verification: |
+ To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in lock-app to generate the event, Vendor Dut should have capability to generate this event)
+
+
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner) and TH as lock-app.
+
+ To generate the event give below command
+ echo "{"Cmd": "SendDoorLockAlarm", "Params": { "EndpointId": 1, "AlarmCode": 0 } }" > /tmp/chip_lock_app_fifo- (PID of lock app)
+
./chip-tool doorlock read-event door-lock-alarm 1 1
Verify "DUT receives the DoorLockAlarm event " on the TH(Lock-app) Log:
- [1659520755.536021][3987:3992] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0000
- [1659520755.536048][3987:3992] CHIP:TOO: Event number: 4
- [1659520755.536069][3987:3992] CHIP:TOO: Priority: Critical
- [1659520755.536089][3987:3992] CHIP:TOO: Timestamp: 22818908
- [1659520755.536198][3987:3992] CHIP:TOO: DoorLockAlarm: {
- [1659520755.536234][3987:3992] CHIP:TOO: AlarmCode: 0
- [1659520755.536259][3987:3992] CHIP:TOO: }
- [1659520755.536347][3987:3992] CHIP:EM: Sending Standalone Ack for MessageCounter:229373286 on exchange 22555i
+ [1660933624.278924][18319:18319] CHIP:DMG: ReadRequestMessage =
+ [1660933624.278964][18319:18319] CHIP:DMG: {
+ [1660933624.278987][18319:18319] CHIP:DMG: EventPathIBs =
+ [1660933624.279023][18319:18319] CHIP:DMG: [
+ [1660933624.279116][18319:18319] CHIP:DMG: EventPath =
+ [1660933624.279155][18319:18319] CHIP:DMG: {
+ [1660933624.279192][18319:18319] CHIP:DMG: Endpoint = 0x1,
+ [1660933624.279232][18319:18319] CHIP:DMG: Cluster = 0x101,
+ [1660933624.279271][18319:18319] CHIP:DMG: Event = 0x0,
+ [1660933624.279300][18319:18319] CHIP:DMG: },
+ [1660933624.279337][18319:18319] CHIP:DMG:
+ [1660933624.279360][18319:18319] CHIP:DMG: ],
+ [1660933624.279397][18319:18319] CHIP:DMG:
+ [1660933624.279422][18319:18319] CHIP:DMG: isFabricFiltered = true,
+ [1660933624.279455][18319:18319] CHIP:DMG: InteractionModelRevision = 1
+ [1660933624.279478][18319:18319] CHIP:DMG: },
disabled: true
- label: "DUT sends the Unlock Door command to the TH with valid PINCode"
@@ -75,35 +105,47 @@ tests:
[1658399917.775273][2474:2474] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_001A
[1658399917.775327][2474:2474] CHIP:ZCL: [SetUser] Incoming command [endpointId=1,userIndex=1]
- ./chip-tool doorlock set-credential 0 "{ "credentialType" : 1 , "credentialIndex" : 1 }" 123456 1 0 0 1 1 --timedInteractionTimeoutMs 1000
+ ./chip-tool doorlock set-credential 0 "{ "credentialType" : 1 , "credentialIndex" : 1 }" 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000
Verify "DUT receives the set-credential response " on the TH(Lock-app) Log:
- [1658400025.688730][2474:2474] CHIP:DMG: CommandFields =
- [1658400025.688777][2474:2474] CHIP:DMG: {
- [1658400025.688822][2474:2474] CHIP:DMG: 0x0 = 0,
- [1658400025.688873][2474:2474] CHIP:DMG: 0x1 =
- [1658400025.688922][2474:2474] CHIP:DMG: {
- [1658400025.688964][2474:2474] CHIP:DMG: 0x0 = 1,
- [1658400025.689016][2474:2474] CHIP:DMG: 0x1 = 1,
- [1658400025.689058][2474:2474] CHIP:DMG: },
- [1658400025.689110][2474:2474] CHIP:DMG: 0x2 = [
- [1658400025.689161][2474:2474] CHIP:DMG: 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
- [1658400025.689209][2474:2474] CHIP:DMG: ]
- [1658400025.689261][2474:2474] CHIP:DMG: 0x3 = 1,
- [1658400025.689312][2474:2474] CHIP:DMG: 0x4 = 0,
- [1658400025.689353][2474:2474] CHIP:DMG: 0x5 = 0,
- [1658400025.689403][2474:2474] CHIP:DMG: },
- [1658400025.689436][2474:2474] CHIP:DMG: },
- [1658400025.689477][2474:2474] CHIP:DMG:
- [1658400025.689529][2474:2474] CHIP:DMG: ],
- [1658400025.689575][2474:2474] CHIP:DMG:
- [1658400025.689619][2474:2474] CHIP:DMG: InteractionModelRevision = 1
- [1658400025.689648][2474:2474] CHIP:DMG: },
- [1658400025.689747][2474:2474] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0101 e=1 p=a
- [1658400025.689802][2474:2474] CHIP:DMG: AccessControl: allowed
- [1658400025.689836][2474:2474] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0022
- [1658400025.689909][2474:2474] CHIP:ZCL: [SetCredential] Incoming command [endpointId=1]
+ [1660931208.583139][18319:18319] CHIP:DMG: InvokeRequestMessage =
+ [1660931208.583184][18319:18319] CHIP:DMG: {
+ [1660931208.583226][18319:18319] CHIP:DMG: suppressResponse = false,
+ [1660931208.583275][18319:18319] CHIP:DMG: timedRequest = true,
+ [1660931208.583319][18319:18319] CHIP:DMG: InvokeRequests =
+ [1660931208.583381][18319:18319] CHIP:DMG: [
+ [1660931208.583426][18319:18319] CHIP:DMG: CommandDataIB =
+ [1660931208.583475][18319:18319] CHIP:DMG: {
+ [1660931208.583522][18319:18319] CHIP:DMG: CommandPathIB =
+ [1660931208.583579][18319:18319] CHIP:DMG: {
+ [1660931208.583636][18319:18319] CHIP:DMG: EndpointId = 0x1,
+ [1660931208.583698][18319:18319] CHIP:DMG: ClusterId = 0x101,
+ [1660931208.583757][18319:18319] CHIP:DMG: CommandId = 0x22,
+ [1660931208.583813][18319:18319] CHIP:DMG: },
+ [1660931208.583871][18319:18319] CHIP:DMG:
+ [1660931208.583923][18319:18319] CHIP:DMG: CommandFields =
+ [1660931208.583979][18319:18319] CHIP:DMG: {
+ [1660931208.584037][18319:18319] CHIP:DMG: 0x0 = 0,
+ [1660931208.584100][18319:18319] CHIP:DMG: 0x1 =
+ [1660931208.584158][18319:18319] CHIP:DMG: {
+ [1660931208.584220][18319:18319] CHIP:DMG: 0x0 = 1,
+ [1660931208.584289][18319:18319] CHIP:DMG: 0x1 = 1,
+ [1660931208.584353][18319:18319] CHIP:DMG: },
+ [1660931208.584413][18319:18319] CHIP:DMG: 0x2 = [
+ [1660931208.584473][18319:18319] CHIP:DMG: 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+ [1660931208.584540][18319:18319] CHIP:DMG: ] (6 bytes)
+ [1660931208.584596][18319:18319] CHIP:DMG: 0x3 = 1,
+ [1660931208.584662][18319:18319] CHIP:DMG: 0x4 = NULL
+ [1660931208.584722][18319:18319] CHIP:DMG: 0x5 = NULL
+ [1660931208.584781][18319:18319] CHIP:DMG: },
+ [1660931208.584834][18319:18319] CHIP:DMG: },
+ [1660931208.584895][18319:18319] CHIP:DMG:
+ [1660931208.584938][18319:18319] CHIP:DMG: ],
+ [1660931208.584999][18319:18319] CHIP:DMG:
+ [1660931208.585043][18319:18319] CHIP:DMG: InteractionModelRevision = 1
+ [1660931208.585086][18319:18319] CHIP:DMG: },
+
./chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 --PinCode 123456
@@ -163,18 +205,30 @@ tests:
- label: "TH initiates DoorStateChange event with Doorstate set to DoorOpen"
PICS: DRLK.C.F05 && DRLK.C.E01
verification: |
+ To trigger the event give below command in another terminal of DUT
+ echo "{"Cmd": "SetDoorState", "Params": { "EndpointId": 1, "DoorState": 1 } }" > /tmp/chip_lock_app_fifo- (PID of lock-app)
+
./chip-tool doorlock read-event door-state-change 1 1
Verify "DUT receives DoorStateChange Event" on the TH(Lock-app) Log:
- [1659521149.394340][4046:4051] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Event 0x0000_0001
- [1659521149.394391][4046:4051] CHIP:TOO: Event number: 1
- [1659521149.394412][4046:4051] CHIP:TOO: Priority: Critical
- [1659521149.394433][4046:4051] CHIP:TOO: Timestamp: 22783568
- [1659521149.394503][4046:4051] CHIP:TOO: DoorStateChange: {
- [1659521149.394539][4046:4051] CHIP:TOO: DoorState: 1
- [1659521149.394564][4046:4051] CHIP:TOO: }
- [1659521149.394654][4046:4051] CHIP:EM: Sending Standalone Ack for MessageCounter:231120057 on exchange 10153i
+ [1660933582.187791][18319:18319] CHIP:DMG: ReadRequestMessage =
+ [1660933582.187819][18319:18319] CHIP:DMG: {
+ [1660933582.187851][18319:18319] CHIP:DMG: EventPathIBs =
+ [1660933582.187877][18319:18319] CHIP:DMG: [
+ [1660933582.187901][18319:18319] CHIP:DMG: EventPath =
+ [1660933582.187937][18319:18319] CHIP:DMG: {
+ [1660933582.187966][18319:18319] CHIP:DMG: Endpoint = 0x1,
+ [1660933582.188006][18319:18319] CHIP:DMG: Cluster = 0x101,
+ [1660933582.188035][18319:18319] CHIP:DMG: Event = 0x1,
+ [1660933582.188069][18319:18319] CHIP:DMG: },
+ [1660933582.188100][18319:18319] CHIP:DMG:
+ [1660933582.188132][18319:18319] CHIP:DMG: ],
+ [1660933582.188159][18319:18319] CHIP:DMG:
+ [1660933582.188193][18319:18319] CHIP:DMG: isFabricFiltered = true,
+ [1660933582.188218][18319:18319] CHIP:DMG: InteractionModelRevision = 1
+ [1660933582.188250][18319:18319] CHIP:DMG: },
+ [1660933582.188328][18319:18319] CHIP:DMG: IM RH moving to [GeneratingReports]
disabled: true
- label: "DUT sends the Lock Door command to the TH with valid PINCode"
diff --git a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml
index f5dedc2c4d6f11..398e1590e5bbaf 100644
--- a/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_IDM_2_2.yaml
@@ -1197,7 +1197,8 @@ tests:
from the DUT."
verification: |
In case of chip tool, here is an example command to use
- sudo ./chip-tool any read-all 1 0xFFFF --timeout 50
- Verify on TH , DUT is responds right attributes and events for above command
+ ./chip-tool any read-all 0xFFFFFFFF,0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF,0xFFFF
+
+ on TH verify that DUT sends back data of all attributes and events that the TH has access to
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml
index 8109e78a529115..f7a6ebbc7eeb10 100644
--- a/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_IDM_3_1.yaml
@@ -15,20 +15,22 @@
name: 3.3.1. [TC-IDM-3.1] Write Request Action from DUT to TH. [{DUT_Client}]
-PICS:
- - MCORE.IDM.C.WriteRequest
-
config:
nodeId: 0x12344321
cluster: "Basic"
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT sends the WriteRequestMessage to the TH to modify one attribute
data"
verification: |
- In case of chip tool, here is an example command to use
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
sudo ./chip-tool levelcontrol write on-level 2 1 1
@@ -62,7 +64,7 @@ tests:
[1655795552.552647][7331:7331] CHIP:DMG: InteractionModelRevision = 1
[1655795552.552686][7331:7331] CHIP:DMG: },
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response
[1657883782.721742][2796:2801] CHIP:DMG: WriteResponseMessage =
[1657883782.721783][2796:2801] CHIP:DMG: {
[1657883782.721819][2796:2801] CHIP:DMG: AttributeStatusIBs =
@@ -112,7 +114,7 @@ tests:
[1657883808.063295][2457:2457] CHIP:DMG: },
[1657883808.063369][2457:2457] CHIP:DMG: IM RH moving to [GeneratingReports]
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response
[1655795604.755214][6880:6885] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 737039636
[1655795604.755363][6880:6885] CHIP:TOO: on level: 2
[1655795604.755460][6880:6885] CHIP:EM: Sending Standalone Ack for MessageCounter:83198098 on exchange 53763i
@@ -127,10 +129,11 @@ tests:
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type bool."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type bool."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bool
verification: |
- In case of chip tool, here is an example command to use
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
./chip-tool basic write local-config-disabled 1 1 0
@@ -166,7 +169,7 @@ tests:
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1657883938.394965][2822:2827] CHIP:DMG: WriteResponseMessage =
[1657883938.394995][2822:2827] CHIP:DMG: {
@@ -218,23 +221,21 @@ tests:
[1657884119.523280][2748:2748] CHIP:DMG: },
-
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1655795843.336042][6902:6907] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1263909562
[1655795843.336093][6902:6907] CHIP:TOO: LocalConfigDisabled: TRUE
[1655795843.336251][6902:6907] CHIP:EM: Sending Standalone Ack for MessageCounter:108030495 on exchange 43207i
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type string."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type string."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_String
verification: |
- In case of chip tool, here is an example command to use
-
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
./chip-tool basic write node-label node 1 0
-
verify on TH(reference app) receives the right write Request Message for the data sent in the above command
[1655796035.022296][7331:7331] CHIP:EM: Handling via exchange: 64908r, Delegate: 0xaaaad9aed418
@@ -265,8 +266,7 @@ tests:
[1655796035.023656][7331:7331] CHIP:DMG: },
[1655796035.023791][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0028 e=0 p=m
[1655796035.023851][7331:7331] CHIP:DMG: AccessControl: allowed
-
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1657884155.221193][2865:2870] CHIP:DMG: WriteResponseMessage =
[1657884155.221246][2865:2870] CHIP:DMG: {
[1657884155.221292][2865:2870] CHIP:DMG: AttributeStatusIBs =
@@ -315,8 +315,7 @@ tests:
[1657884173.739288][2748:2748] CHIP:DMG: },
-
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1655796082.079468][6918:6923] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 1263909563
[1655796082.079509][6918:6923] CHIP:TOO: NodeLabel: node
@@ -324,11 +323,11 @@ tests:
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type unsigned integer."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type unsigned integer."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_UnsignedInteger
verification: |
- In case of chip tool, here is an example command to use
-
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
./chip-tool any write-by-id 0x0008 0x0010 1 1 1
@@ -362,7 +361,8 @@ tests:
[1655796141.168253][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0008 e=1 p=o
[1655796141.168313][7331:7331] CHIP:DMG: AccessControl: allowed
- On DUT as a client side, verify that TH all-clusters-app sent success response
+
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1657884204.951658][2878:2883] CHIP:DMG: WriteResponseMessage =
[1657884204.951700][2878:2883] CHIP:DMG: {
[1657884204.951736][2878:2883] CHIP:DMG: AttributeStatusIBs =
@@ -413,53 +413,58 @@ tests:
[1657884227.860339][2748:2748] CHIP:DMG: },
[1657884227.860413][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports]
-
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1655796192.032715][6931:6936] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 737039637
[1655796192.032807][6931:6936] CHIP:TOO: on off transition time: 1
[1655796192.032908][6931:6936] CHIP:EM: Sending Standalone Ack for MessageCounter:249349258 on exchange 7433i
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type signed integer."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type signed integer."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_SignedInteger
verification: |
DUT implementation required to verify write an attribute of data type signed integer.
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type floating point."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type floating point."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_FloatingPoint
verification: |
DUT implementation required to verify write an attribute of data type float
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type Octet String."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type Octet String."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_OctetString
verification: |
DUT implementation required to verify write an attribute of data type Octet String
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type Struct."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type Struct."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Struct
verification: |
DUT implementation required to verify write an attribute ofdata type Struct
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type List."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type List."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_List
verification: |
DUT implementation required to verify write an attribute of data type List
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type enum."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type enum."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Enum
verification: |
- In case of chip tool, here is an example command to use
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
./chip-tool any write-by-id 0x0204 0 1 1 1
@@ -494,7 +499,7 @@ tests:
[1655796297.609342][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o
[1655796297.609403][7331:7331] CHIP:DMG: AccessControl: allowed
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1657884258.383116][2892:2897] CHIP:DMG: WriteResponseMessage =
[1657884258.383157][2892:2897] CHIP:DMG: {
[1657884258.383192][2892:2897] CHIP:DMG: AttributeStatusIBs =
@@ -530,19 +535,18 @@ tests:
[1657884282.303778][2898:2903] CHIP:TOO: temperature display mode: 1
[1657884282.303862][2898:2903] CHIP:EM: Sending Standalone Ack for MessageCounter:147756485 on exchange 42871i
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs,, verify that TH all-clusters-app sent success response
[1655796341.132655][6946:6951] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945391
[1655796341.132864][6946:6951] CHIP:TOO: temperature display mode: 1
[1655796341.132973][6946:6951] CHIP:EM: Sending Standalone Ack for MessageCounter:245498041 on exchange 51992i
disabled: true
- label:
- "[Optional] DUT sends the WriteRequestMessage to the TH to write an
- attribute of data type bitmap."
+ "DUT sends the WriteRequestMessage to the TH to write an attribute of
+ data type bitmap."
+ PICS: MCORE.IDM.C.WriteRequest.Attribute.DataType_Bitmap
verification: |
- In case of chip tool, here is an example command to use
-
-
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
./chip-tool colorcontrol write-by-id 0x000f 1 1 1
@@ -577,7 +581,7 @@ tests:
[1655796429.698446][7331:7331] CHIP:DMG: AccessControl: allowed
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1657884309.994598][2907:2912] CHIP:DMG: WriteResponseMessage =
[1657884309.994627][2907:2912] CHIP:DMG: {
@@ -630,8 +634,7 @@ tests:
[1657884334.614053][2748:2748] CHIP:DMG: },
[1657884334.614128][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports]
-
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1655796493.233673][6961:6966] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 2788050502
[1655796493.233761][6961:6966] CHIP:TOO: Options: 1
[1655796493.233865][6961:6966] CHIP:EM: Sending Standalone Ack for MessageCounter:185730221 on exchange 37136i
@@ -639,7 +642,8 @@ tests:
- label:
"DUT sends a WriteRequestMessage to the TH with a large list of
- attribute data which has to be sent in multiple messages."
+ attribute data, which is larger than 1 MTU(1280 bytes), that has to be
+ sent in multiple messages."
verification: |
DUT implementation required to verify write an attribute which is is larger than 1 MTU(1280 bytes)
Here is an example command to verify the write functionality. User must choose an attribute which has large list of attribute data.
@@ -650,7 +654,7 @@ tests:
"DUT sends the WriteRequestMessage to the TH to write one attribute on
a given cluster and endpoint. Repeat the above steps 3 times."
verification: |
- In case of chip tool, here is an example command to use
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
./chip-tool any write-by-id 0x0204 0 1 1 1
@@ -685,7 +689,7 @@ tests:
[1655796724.512195][7331:7331] CHIP:DMG: },
[1655796724.512344][7331:7331] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0204 e=1 p=o
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1657884369.932192][2923:2928] CHIP:DMG: WriteResponseMessage =
[1657884369.932226][2923:2928] CHIP:DMG: {
[1657884369.932255][2923:2928] CHIP:DMG: AttributeStatusIBs =
@@ -737,8 +741,7 @@ tests:
[1657884399.502907][2748:2748] CHIP:DMG: },
[1657884399.502989][2748:2748] CHIP:DMG: IM RH moving to [GeneratingReports]
-
- On DUT as a client side, verify that TH all-clusters-app sent success response
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
[1655796786.513406][6976:6981] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 3165945392
[1655796786.513496][6976:6981] CHIP:TOO: temperature display mode: 1
[1655796786.513593][6976:6981] CHIP:EM: Sending Standalone Ack for MessageCounter:190446058 on exchange 28240i
@@ -749,9 +752,9 @@ tests:
disabled: true
- label:
- "[Optional] DUT sends a ReadRequest message to the TH to read any
- attribute on two clusters. TH returns with a report data action with
- the attribute values and the dataversions of the clusters. DUT sends a
+ "DUT sends a ReadRequest message to the TH to read any attribute on
+ two clusters. TH returns with a report data action with the attribute
+ values and the dataversions of the clusters. DUT sends a
WriteRequestMessage to the DUT to both the clusters with the
appropriate dataversions(received in the previous step) to modify the
value of an attribute"
diff --git a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml
index f22a140b6cf067..a27bf4593c59d0 100644
--- a/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_IDM_4_1.yaml
@@ -26,11 +26,26 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
+ disabled: true
+
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT sends a subscription request message to the target node/reference
device for a single attribute of any data type supported."
+ PICS: MCORE.IDM.C.SubscribeRequest
verification: |
- In the case of chip tool as a client, here is an example command the client can subscribe to the TH
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
+
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
onoff subscribe on-off 10 80 1 1
@@ -60,7 +75,7 @@ tests:
[1657446108.598559][11525:11525] CHIP:DMG: IM RH moving to [GeneratingReports]
- On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
[1657884469.617473][2938:2943] CHIP:DMG: ReportDataMessage =
[1657884469.617508][2938:2943] CHIP:DMG: {
[1657884469.617538][2938:2943] CHIP:DMG: SubscriptionId = 0x2d030a2b,
@@ -109,8 +124,12 @@ tests:
- label:
"DUT sends the subscription request message to TH TH sends a report
data DUT sends the status response back to TH"
+ PICS: MCORE.IDM.C.SubscribeRequest
verification: |
- In the case of chip tool as a client, here is an example command the client can subscribe to the TH
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
+
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
onoff subscribe on-off 10 80 1 1
@@ -126,7 +145,8 @@ tests:
[1657446108.604672][11525:11525] CHIP:IM: Received status response, status is 0x00 (SUCCESS)
[1657446108.604755][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 80 seconds
- On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
+
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
[1657884569.751004][2938:2943] CHIP:DMG: ReportDataMessage =
[1657884569.751034][2938:2943] CHIP:DMG: {
[1657884569.751059][2938:2943] CHIP:DMG: SubscriptionId = 0x47cd6fdb,
@@ -177,8 +197,13 @@ tests:
an attribute of data type boolean. Modify that attribute on the TH. TH
should send the modified data to the DUT. Modify the attribute
multiple times (3 times)."
+ PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Bool
verification: |
- In the case of chip tool as a client, here is an example command the client can subscribe to the TH
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
+
+
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
basic subscribe local-config-disabled 10 100 1 0
@@ -206,7 +231,8 @@ tests:
- On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
+
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
[1657884643.152038][2938:2943] CHIP:DMG: ReportDataMessage =
[1657884643.152141][2938:2943] CHIP:DMG: {
[1657884643.152206][2938:2943] CHIP:DMG: SubscriptionId = 0x2e0592e3,
@@ -257,8 +283,12 @@ tests:
an attribute of data type string. Modify that attribute on the TH. TH
should send the modified data to the DUT. Modify the attribute
multiple times (3 times)."
+ PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_String
verification: |
- In the case of chip tool as a client, here is an example command the client can subscribe to the TH
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
+
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
basic subscribe node-label 30 200 1 0
@@ -290,7 +320,8 @@ tests:
[1657446721.226711][11525:11525] CHIP:DMG: OnReportConfirm: NumReports = 0
[1657446721.226773][11525:11525] CHIP:DMG: IM RH moving to [GeneratingReports]
- On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
+
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
[1657884902.175205][2938:2943] CHIP:DMG: ReportDataMessage =
[1657884902.175255][2938:2943] CHIP:DMG: {
[1657884902.175299][2938:2943] CHIP:DMG: SubscriptionId = 0x6a6457a1,
@@ -327,9 +358,12 @@ tests:
an attribute of data type unsigned integer. Modify that attribute on
the TH. TH should send the modified data to the DUT. Modify the
attribute multiple times (3 times)."
+ PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_UnsignedInteger
verification: |
- In the case of chip tool as a client, here is an example command the client can subscribe to the TH
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
any subscribe-by-id 0x0008 0x0010 10 100 1 1
On TH (On the reference app) Verify if DUT is responding with the below status response for the above command
@@ -404,7 +438,8 @@ tests:
[1657448453.234577][11525:11525] CHIP:DMG: OnReportConfirm: NumReports = 0
- On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
+
+ If the DUT has to provision to verify the logs, , verify that TH all-clusters-app sent Subscription report with unic subscriptionID
[1657884955.073466][2938:2943] CHIP:DMG: ReportDataMessage =
[1657884955.073516][2938:2943] CHIP:DMG: {
[1657884955.073562][2938:2943] CHIP:DMG: SubscriptionId = 0x6cee9660,
@@ -444,6 +479,7 @@ tests:
an attribute of data type signed integer. Modify that attribute on the
TH. TH should send the modified data to the DUT. Modify the attribute
multiple times (3 times)"
+ PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Integer
verification: |
DUT implementation required to verify subscribe an attribute of data type signed integer
disabled: true
@@ -453,6 +489,7 @@ tests:
an attribute of data type Floating Point. Modify that attribute on the
TH. TH should send the modified data to the DUT. Modify the attribute
multiple times (3 times)"
+ PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_FloatingPoint
verification: |
DUT implementation required to verify subscribe an attribute of data type floating point
disabled: true
@@ -462,6 +499,7 @@ tests:
an attribute of data type list. Modify that attribute on the TH. TH
should send the modified data to the DUT. Modify the attribute
multiple times (3 times)"
+ PICS: MCORE.IDM.C.SubscribeRequest.Attribute.DataType_List
verification: |
DUT implementation required to verify subscribe and list an attribute of data type list
disabled: true
@@ -472,6 +510,7 @@ tests:
of the maximum interval. After the maximum interval, TH sends a report
data with the subscription id created during the subscription
activation."
+ PICS: MCORE.IDM.C.SubscribeRequest
verification: |
This is not testable in normal scenario, and needs to be tested as part of Unit test.
disabled: true
@@ -479,8 +518,12 @@ tests:
- label:
"DUT sends a subscription request message to the target node/reference
device for multiple attributes(3 attributes)."
+ PICS: MCORE.IDM.C.SubscribeRequest.MultipleAttributes
verification: |
- In the case of chip tool as a client, here is an example command the client can subscribe to the TH
+ Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
+
+ Please use Interactive mode to Verify subscription test cases
+ Here the command to enter interactive mode:-- ./chip-tool interactive start
any subscribe-by-id "6,8,3" "0,1,0" 10 100 "1" "1,1,1"
@@ -534,7 +577,8 @@ tests:
[1657449168.674365][11525:11525] CHIP:DMG: Refresh Subscribe Sync Timer with max 100 seconds
- On DUT as a client side, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
+
+ If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent Subscription report with unic subscriptionID
884990.165955][2938:2943] CHIP:DMG: },
[1657884990.166021][2938:2943] CHIP:DMG:
[1657884990.166072][2938:2943] CHIP:DMG: ],
diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml
index 5ebd36b33d7d77..1fd77cd9e875d5 100644
--- a/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_IDM_6_2.yaml
@@ -32,11 +32,6 @@ tests:
Here the command to enter interactive mode:-- ./chip-tool interactive start
disabled: true
- - label: "Note"
- verification: |
- Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
- disabled: true
-
- label:
"TH sends Subscribe Request Message to DUT with EventRequests set to a
specific event from a specific cluster on a specific endpoint on a
diff --git a/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml b/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml
index f9c15459f0130c..ab5421f1ded75d 100644
--- a/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_IDM_6_3.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "DUT sends Read Request Message to the TH for a supported event."
verification: |
The cluster used in the below command is an example, User can use any supported chip cluster.
diff --git a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml
index 35e800441f7824..913ad1cc5aaa00 100644
--- a/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_KEYPADINPUT_1_2.yaml
@@ -41,6 +41,15 @@ tests:
constraints:
type: int16u
+ - label: "Read the global attribute: FeatureMap"
+ PICS: " !KEYPADINPUT.S.NV && KEYPADINPUT.S.LK && !KEYPADINPUT.S.NK "
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: FeatureMap"
PICS: KEYPADINPUT.S.NV || KEYPADINPUT.S.LK || KEYPADINPUT.S.NK
command: "readAttribute"
@@ -48,7 +57,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 7
- label: "Read the global attribute: AttributeList"
diff --git a/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml b/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml
index 46634220980848..45e15fe6bfd33d 100644
--- a/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LCFG_2_1.yaml
@@ -46,7 +46,7 @@ tests:
- label: "TH writes xx-XX to SupportedLocales attribute"
verification: |
- ./chip-tool any write-by-id 0x002B 1 ""xx-XX"" 1 0
+ ./chip-tool any write-by-id 0x002B 1 '"xx-XX"' 1 0
On TH(chip-tool) verify that DUT responds as UNSUPPORTED_WRITE
[1653996674.832226][7281:7286] CHIP:DMG: WriteClient moving to [AwaitingDe]
diff --git a/src/app/tests/suites/certification/Test_TC_LTIME_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LTIME_1_1.yaml
index b9caa8a2be326b..3dea75d005036b 100644
--- a/src/app/tests/suites/certification/Test_TC_LTIME_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LTIME_1_1.yaml
@@ -26,7 +26,7 @@ config:
tests:
- label: "Note"
verification: |
- Chip-tool command used below are an example to verify the DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
disabled: true
- label: "Commission DUT to TH"
@@ -149,8 +149,3 @@ tests:
[1659778463.618601][17263:17263] CHIP:DMG: IM RH moving to [GeneratingReports]
[1659778463.618663][17263:17263] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
disabled: true
-
- - label: ""
- verification: |
- verification step to be updated.
- disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml
index 5fc10aabb21232..1b3f3a04c45b3b 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_1_1.yaml
@@ -46,16 +46,25 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 7
+ - label: "Read the global attribute: FeatureMap"
+ PICS: " !LVL.S.F00 && !LVL.S.F01 && !LVL.S.F02 "
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: AttributeList"
command: "readAttribute"
attribute: "AttributeList"
response:
constraints:
type: list
- contains: [0, 15, 17]
+ contains: [0, 15, 17, 65528, 65529, 65531, 65532, 65533]
- label:
"Read the optional attribute(StartUpCurrentLevel and RemainingTime) in
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml b/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml
index d8e61b7df8e803..061f1b8d05ac29 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_2_3.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verifaction: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
@@ -633,9 +638,9 @@ tests:
TH all-clusters-minimal-app does not support optional attributes
To verify this behaviour send the below mentioned commands and check the result as unsupported attribute
- ./chip-tool levelcontrol write on-off-transition-time 5 1 1
- ./chip-tool levelcontrol write on-transition-time 5 1 1
- ./chip-tool levelcontrol write off-transition-time 5 1 1
- ./chip-tool levelcontrol write default-move-rate 5 1 1
- ./chip-tool levelcontrol write start-up-current-level 5 1 1
+ ./chip-tool levelcontrol write on-off-transition-time 5 1 1
+ ./chip-tool levelcontrol write on-transition-time 5 1 1
+ ./chip-tool levelcontrol write off-transition-time 5 1 1
+ ./chip-tool levelcontrol write default-move-rate 5 1 1
+ ./chip-tool levelcontrol write start-up-current-level 5 1 1
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml
index 23743e71284c1a..507813609a736f 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_3_1.yaml
@@ -44,6 +44,15 @@ tests:
response:
value: 1
+ #Adding below step resolve the issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/499
+ - label:
+ "Precondition: write default value of OnOffTransitionTime attribute"
+ PICS: LVL.S.A0010
+ command: "writeAttribute"
+ attribute: "OnOffTransitionTime"
+ arguments:
+ value: 0
+
- label: "TH writes 0 to the Options attribute"
PICS: LVL.S.A000f
command: "writeAttribute"
@@ -229,9 +238,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 100
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 0
@@ -255,9 +264,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 120
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 0
@@ -276,9 +285,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 140
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 1
@@ -297,9 +306,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 160
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 1
@@ -337,9 +346,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 100
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 0
@@ -363,9 +372,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 120
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 0
@@ -384,9 +393,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 140
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 1
@@ -405,9 +414,9 @@ tests:
command: "MoveToLevel"
arguments:
values:
- - name: "level"
+ - name: "Level"
value: 160
- - name: "transitionTime"
+ - name: "TransitionTime"
value: 0
- name: "OptionsMask"
value: 1
@@ -420,16 +429,3 @@ tests:
attribute: "CurrentLevel"
response:
value: 160
-
- - label: "Precondition send Off Command"
- cluster: "On/Off"
- PICS: OO.S.C00.Rsp
- command: "Off"
-
- - label: "Check on/off attribute value is false after off command"
- cluster: "On/Off"
- PICS: OO.S.A0000
- command: "readAttribute"
- attribute: "OnOff"
- response:
- value: 0
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml
index 671a275aeca385..386a7447f264d6 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_4_1.yaml
@@ -44,6 +44,15 @@ tests:
response:
value: 1
+ #Adding below step resolve the issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/499
+ - label:
+ "Precondition: write default value of OnOffTransitionTime attribute"
+ PICS: LVL.S.A0013
+ command: "writeAttribute"
+ attribute: "OnOffTransitionTime"
+ arguments:
+ value: 0
+
- label: "TH writes 0 to the Options attribute"
PICS: LVL.S.A000f
command: "writeAttribute"
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml
index f3f1bc7583f706..4febf9ad1e5248 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_5_1.yaml
@@ -44,6 +44,15 @@ tests:
response:
value: 1
+ #Adding below step resolve the issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/499
+ - label:
+ "Precondition: write default value of OnOffTransitionTime attribute"
+ PICS: LVL.S.A0013
+ command: "writeAttribute"
+ attribute: "OnOffTransitionTime"
+ arguments:
+ value: 0
+
- label: "TH writes 0 to the Options attribute"
PICS: LVL.S.A000f
command: "writeAttribute"
diff --git a/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml b/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml
index 2b87fb422a8f05..e9793c96a37ea0 100644
--- a/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LVL_6_1.yaml
@@ -44,6 +44,15 @@ tests:
response:
value: 1
+ #Adding below step resolve the issue https://github.com/CHIP-Specifications/chip-certification-tool/issues/499
+ - label:
+ "Precondition: write default value of OnOffTransitionTime attribute"
+ PICS: LVL.S.A0013
+ command: "writeAttribute"
+ attribute: "OnOffTransitionTime"
+ arguments:
+ value: 0
+
- label: "TH writes 0 to the Options attribute"
PICS: LVL.S.A000f
command: "writeAttribute"
diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml
index 79f2db2d730064..a155ab61cc3493 100644
--- a/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MEDIAPLAYBACK_1_7.yaml
@@ -41,6 +41,15 @@ tests:
constraints:
type: int16u
+ - label: "Read the global attribute: FeatureMap"
+ PICS: " !MEDIAPLAYBACK.S.AS && !MEDIAPLAYBACK.S.VS "
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: FeatureMap"
PICS: MEDIAPLAYBACK.S.AS || MEDIAPLAYBACK.S.VS
command: "readAttribute"
@@ -48,7 +57,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 3
- label: "Read the global attribute: AttributeList"
diff --git a/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml
index dedbb274dee5a3..095deb01323ba0 100644
--- a/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MOD_1_3.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
diff --git a/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml
index 28d371377c6821..a4fb3db49bba06 100644
--- a/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MOD_2_1.yaml
@@ -70,7 +70,7 @@ tests:
verification: |
./chip-tool modeselect read current-mode 1 1
- Verify on TH(chip-tool), current modes provides a list of modes
+ Verify on TH(chip-tool), current modes provides a mode Record for usage in steps 3.
[1649678800.298128][10854:10861] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073
@@ -98,7 +98,7 @@ tests:
verification: |
./chip-tool modeselect read current-mode 1 1
- Verify on TH(chip-tool), current modes provides a list ofmodes
+ Verify on TH(chip-tool), current modes provides integer provided in step 3a, not the integer from step 2
[1649678800.298128][10854:10861] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0003 DataVersion: 4277065073
diff --git a/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml
index e6653073d7a4b0..806b9c05f89290 100644
--- a/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MOD_2_2.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command
+ disabled: true
+
- label: "DUT reads the SupportedModes attribute from the TH"
PICS: MOD.C.A0002
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml
index f94f8507d782c5..3e4d2cc36f7f1f 100644
--- a/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MOD_3_1.yaml
@@ -29,7 +29,7 @@ tests:
verification: |
./chip-tool modeselect read on-mode 1 1
- on TH(chip-tool),Verify that the DUT response The attribute is nullable, and null is also acceptable
+ on TH(chip-tool),Verify that the DUT response is an integer. Record this value for usage in steps 2b.
[1649678983.679893][10871:10876] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0005 DataVersion: 4277065073
[1649678983.680002][10871:10876] CHIP:TOO: OnMode: 0
diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml
index 1dec78d5a0c0c3..63288a4d31c98d 100644
--- a/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MOD_3_3.yaml
@@ -24,6 +24,34 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ 1.To run this test case build the OTA Provider app to be build in the nRF Environment setup . Follow this step to setup the nRF build environment using container.
+ https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/nrfconnect#using-docker-container-for-setup
+
+ Once the build environmnet is ready , build teh OTA-Provider-App inside the container. Follow the below link to build the OTA-Provider app
+ https://github.com/project-chip/connectedhomeip/tree/master/examples/ota-provider-app/linux
+
+ 2. Build all-cluster-app in docker or Flash the pre-built folder from the delivered image
+
+ To build maually and flash follow steps explained in:
+ https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/nrfconnect#building
+
+ west build -b nrf52840dk_nrf52840 -- -DCONF_FILE=prj_dfu.conf -DCONFIG_CHIP_LIB_SHELL=y
+
+
+ 3.Flash
+ west flash --erase
+
+ 4.OTA Image needs to build on the docker environment as like in the first step inside the all-clusters-app folder. Refer the below link to build the OTA image with new version.
+
+ https://github.com/project-chip/connectedhomeip/tree/master/examples/ota-requestor-app/linux#ota-requestor-app-linux
+
+ To build the ota image with new version for nRF, use the following command inside the all-clusters-app folder , which will build matter.ota
+
+ west build -b nrf52840dk_nrf52840 -d build2 -- -DCONFIG_CHIP_DEVICE_SOFTWARE_VERSION=2 -DCONF_FILE=prj_dfu.conf -DCONFIG_CHIP_LIB_SHELL=y
+ disabled: true
+
- label: "TH reads the StartUpMode attribute from the DUT"
PICS: MOD.S.A0004
verification: |
@@ -99,7 +127,11 @@ tests:
verification: |
To perform an OTA update on Thread device follow the cmmds below:
- Step-1 : ./chip-ota-provider-app -f ~/chip_repos/connectedhomeip/examples/all-clusters-app/nrfconnect/build2/zephyr/matter.ota
+ Step-1 : Where we builded OTA provider app execute this cmmd . (In my case I ran connectedhomeip/out/debug ./chip-ota-provider-app -f )
+
+ ./chip-ota-provider-app -f ~/chip_repos/connectedhomeip/examples/all-clusters-app/nrfconnect/build2/zephyr/matter.ota
+
+ Ran on chip-tool:
Step-2: ./chip-tool pairing onnetwork 2 20202021
diff --git a/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml b/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml
index 56dc6c9fd5aafa..fd5883aecea22f 100644
--- a/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MOD_3_4.yaml
@@ -26,6 +26,20 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ To Execute the TC-MOD-3.4 test case using reboot in raspi device we followed the below suggested way:
+
+ To run a reboot test case on raspi, run the app with --KVS flag with a file in local directory and pass that file to the command to launch the app. Steps
+
+
+ step-1: create a file using touch command , something like touch mytest.txt
+ step-2: chmod 777 mytest.txt
+ step-3: launch the app sudo ./out/all-clusters-app/chip-all-clusters-app --KVS ./mytest.txt
+
+ if you launch the app with the above commands and provision the app, even when you reboot the app with 'sudo reboot' , next time you launch the app with 'sudo ./out/all-clusters-app/chip-all-clusters-app --KVS ./mytest.txt' , you can run read/write attribs and commands without reprovisioning the device.
+ disabled: true
+
- label: "TH reads the StartUpMode attribute from the DUT"
PICS: MOD.S.A0004
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_OCC_2_2.yaml b/src/app/tests/suites/certification/Test_TC_OCC_2_2.yaml
index 4be4ecaa5c749f..6fed52808eb096 100644
--- a/src/app/tests/suites/certification/Test_TC_OCC_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OCC_2_2.yaml
@@ -20,10 +20,15 @@ PICS:
config:
nodeId: 0x12344321
- cluster: "Occupancy Sensing"
- endpoint: 1
+ cluster: "Basic"
+ endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "Commission DUT to TH"
verification: |
verification step to be updated.
diff --git a/src/app/tests/suites/certification/Test_TC_OCC_2_4.yaml b/src/app/tests/suites/certification/Test_TC_OCC_2_4.yaml
index f70d33351a6031..333db4004d2af8 100644
--- a/src/app/tests/suites/certification/Test_TC_OCC_2_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OCC_2_4.yaml
@@ -26,6 +26,11 @@ config:
endpoint: 1
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "Commission DUT to TH"
verification: |
verification step to be updated.
diff --git a/src/app/tests/suites/certification/Test_TC_OCC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OCC_3_2.yaml
deleted file mode 100644
index 6dd4e4dc92422d..00000000000000
--- a/src/app/tests/suites/certification/Test_TC_OCC_3_2.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2021 Project CHIP Authors
-#
-# 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.
-# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
-
-name: 3.2.6. [TC-OCC-3.2] Primary functionality with client as DUT
-
-PICS:
- - OCC.C
-
-config:
- nodeId: 0x12344321
- cluster: "Basic"
- endpoint: 0
-
-tests:
- - label: "Commission TH to DUT"
- verification: |
- verification step to be updated.
- disabled: true
-
- - label: "DUT reads Occupancy attribute from TH"
- PICS: OCC.C.A0000
- verification: |
- ./chip-tool occupancysensing read occupancy 1 1
-
- verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command
-
- [1657906910.080564][2361:2361] CHIP:IM: Received Read request
- [1657906910.080689][2361:2361] CHIP:DMG: ReadRequestMessage =
- [1657906910.080758][2361:2361] CHIP:DMG: {
- [1657906910.080799][2361:2361] CHIP:DMG: AttributePathIBs =
- [1657906910.080846][2361:2361] CHIP:DMG: [
- [1657906910.080907][2361:2361] CHIP:DMG: AttributePathIB =
- [1657906910.080965][2361:2361] CHIP:DMG: {
- [1657906910.081017][2361:2361] CHIP:DMG: Endpoint = 0x1,
- [1657906910.081092][2361:2361] CHIP:DMG: Cluster = 0x406,
- [1657906910.081152][2361:2361] CHIP:DMG: Attribute = 0x0000_0000,
- [1657906910.081206][2361:2361] CHIP:DMG: }
- [1657906910.081279][2361:2361] CHIP:DMG:
- [1657906910.081331][2361:2361] CHIP:DMG: ],
- [1657906910.081398][2361:2361] CHIP:DMG:
- [1657906910.081449][2361:2361] CHIP:DMG: isFabricFiltered = true,
- [1657906910.081496][2361:2361] CHIP:DMG: InteractionModelRevision = 1
- [1657906910.081538][2361:2361] CHIP:DMG: },
- disabled: true
-
- - label: "Operate on TH to change the occupancy status"
- PICS: OCC.M.OccupancyChange
- verification: |
- Logs will be device specific[Manual operation required]
- disabled: true
-
- - label: "after a few seconds, DUT reads Occupancy attribute from TH"
- PICS: OCC.C.A0000
- verification: |
- ./chip-tool occupancysensing read occupancy 1 1
-
- verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command
-
- [1657906923.314549][2361:2361] CHIP:IM: Received Read request
- [1657906923.314735][2361:2361] CHIP:DMG: ReadRequestMessage =
- [1657906923.314792][2361:2361] CHIP:DMG: {
- [1657906923.314838][2361:2361] CHIP:DMG: AttributePathIBs =
- [1657906923.314899][2361:2361] CHIP:DMG: [
- [1657906923.314949][2361:2361] CHIP:DMG: AttributePathIB =
- [1657906923.315006][2361:2361] CHIP:DMG: {
- [1657906923.315064][2361:2361] CHIP:DMG: Endpoint = 0x1,
- [1657906923.315132][2361:2361] CHIP:DMG: Cluster = 0x406,
- [1657906923.315199][2361:2361] CHIP:DMG: Attribute = 0x0000_0000,
- [1657906923.315258][2361:2361] CHIP:DMG: }
- [1657906923.315322][2361:2361] CHIP:DMG:
- [1657906923.315380][2361:2361] CHIP:DMG: ],
- [1657906923.315438][2361:2361] CHIP:DMG:
- [1657906923.315497][2361:2361] CHIP:DMG: isFabricFiltered = true,
- [1657906923.315560][2361:2361] CHIP:DMG: InteractionModelRevision = 1
- [1657906923.315609][2361:2361] CHIP:DMG: },
- disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml
index d4affdb99c5eb4..d6af25ba58631c 100644
--- a/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OO_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
@@ -81,7 +86,7 @@ tests:
./chip-tool onoff read on-time 1 1
- verify the " on-time-control response" on the TH (all-cluster-app) log:
+ verify the " on-time response" on the TH (all-cluster-app) log:
[...]
[1650535552.255428][3678:3678] CHIP:IM: Received Read request
diff --git a/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml
index 5730c3100f97ff..9f833109f95aae 100644
--- a/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OO_3_2.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "DUT issues an Off command to the Test Harness."
PICS: OO.C.C00.Tx
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml
index 7354d15140d161..e8a8c3d394cc91 100644
--- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_2.yaml
@@ -26,6 +26,13 @@ config:
endpoint: 0
tests:
+ - label:
+ "Precondition: This test case assumes that during Commissioning AddNOC
+ will be sent with ICACValue"
+ verification: |
+
+ disabled: true
+
- label: "Factory Reset DUT"
verification: |
On both DUT and TH side use the below command
@@ -237,8 +244,8 @@ tests:
disabled: true
- label:
- "From the NOCStruct values verify the following: ,NOC matches the NOC
- sent to the DUT during commissioning process ,ICAC matches the ICAC
+ "From the NOCStruct values verify the following: NOC matches the NOC
+ sent to the DUT during commissioning process ICAC matches the ICAC
sent to the DUT during commissioning process from AddNOC in
pre-condition"
verification: |
@@ -274,10 +281,10 @@ tests:
- label:
"Verify that TH1 is able to read the FabricDescriptorStruct values
- ,Verify that Fabrics list does not have any entry as FabricID =
+ Verify that Fabrics list does not have any entry as FabricID =
FabricID2"
verification: |
- Verify the FabricDescriptorStruct values has no entry og FabricID2
+ Verify the FabricDescriptorStruct values has no entry log FabricID2 on TH1
[1657693240.722099][15129:15134] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0001 DataVersion: 908345149
[1657693240.722200][15129:15134] CHIP:TOO: Fabrics: 1 entries
@@ -388,7 +395,7 @@ tests:
- label:
"From the NOCStruct values verify the following: NOC matches the NOC
- sent to the DUT during commissioning process,ICAC matches the ICAC
+ sent to the DUT during commissioning process ICAC matches the ICAC
sent to the DUT during commissioning process from AddNOC in
pre-condition"
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml
index 3486d8b349a92e..010a2adb87b5b6 100644
--- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml
@@ -45,7 +45,7 @@ tests:
- label: "Verify that the DUT sends AttestationRequest Command to TH"
PICS: OPCREDS.C.C00.Tx
verification: |
- Verify that the DUT send AttestationRequest Command to TH(all-clusters-app)
+ Verify that the DUT send AttestationRequest Command to TH(all-clusters-app) commissioning log
[1657778307.595402][8192:8197] CHIP:CTL: Commissioning stage next step: "SendDACCertificateRequest" -> "SendAttestationRequest"
[1657778307.595466][8192:8197] CHIP:CTL: Performing next commissioning step "SendAttestationRequest"
@@ -288,7 +288,7 @@ tests:
- label: "Verify that the DUT sends CertificateChainRequest Command to TH"
PICS: OPCREDS.C.C02.Tx
verification: |
- Verify that the DUT send CertificateChainRequest Command to TH (all-clusters-app)
+ Verify that the DUT send CertificateChainRequest Command to TH (all-clusters-app) commissioning log
[1657778306.864918][8192:8197] CHIP:CTL: Sending Certificate Chain request to 0xffff78000b60 device
[1657778306.865059][8192:8197] CHIP:DMG: ICR moving to [AddingComm]
@@ -419,7 +419,7 @@ tests:
- label: "Verify that the DUT Sends CSRRequest command to TH"
PICS: OPCREDS.C.C04.Tx
verification: |
- Verify that the DUT send CSRRequest command to TH (all-clusters-app)
+ Verify that the DUT send CSRRequest command to TH (all-clusters-app) commissioning log
[1657778307.949847][8192:8197] CHIP:CTL: Sending CSR request to 0xffff78000b60 device
[1657778307.949923][8192:8197] CHIP:DMG: ICR moving to [AddingComm]
@@ -519,7 +519,7 @@ tests:
which contains the Node Operational PublicKey from CSR
AttestationSignature"
verification: |
- Extract the CSRResponse values from TH (all-clusters-app)
+ Extract the CSRResponse values from TH (all-clusters-app) commissioning log
[1657778308.175702][8192:8197] CHIP:EM: Found matching exchange: 40144i, Delegate: 0xaaaaf7819670
[1657778308.175743][8192:8197] CHIP:DMG: ICR moving to [ResponseRe]
@@ -563,7 +563,7 @@ tests:
- label: "Verify that the DUT sends AddTrustedRootCertificate command to TH"
PICS: OPCREDS.C.C0b.Tx
verification: |
- Verify that the DUT send AddTrustedRootCertificate command to TH (all-clusters-app)
+ Verify that the DUT send AddTrustedRootCertificate command to TH (all-clusters-app) commissioning log
[1657778308.179742][8192:8197] CHIP:CTL: Performing next commissioning step "SendTrustedRootCert"
[1657778308.179769][8192:8197] CHIP:CTL: Sending root certificate to the device
@@ -683,7 +683,7 @@ tests:
- label: "Verify that DUT sends the AddNOC Command to TH"
PICS: OPCREDS.C.C06.Tx
verification: |
- Verify that the DUT send AddNOC command to TH (all-clusters-app)
+ Verify that the DUT send AddNOC command to TH (all-clusters-app) commissioning log
[1657778308.374786][8192:8197] CHIP:CTL: Performing next commissioning step "SendNOC"
@@ -920,12 +920,12 @@ tests:
disabled: true
- label:
- "Verify that the size of RootPublicKey is within 65 octstr ,Verify
+ "Verify that the size of RootPublicKey is within 65 octstr. Verify
that the NodeID is the same as the chip-node-id in the NOC sent with
- AddNOC Command,Verify that the VendorID is the same as the
- AdminVendorID sent with AddNOC Command,Verify that the FabricID is the
- same as the matter-fabric-id field from the operational
- certificate,Verify that the size of Label has a maximum value of 32
+ AddNOC Command. Verify that the VendorID is the same as the
+ AdminVendorID sent with AddNOC Command. Verify that the FabricID is
+ the same as the matter-fabric-id field from the operational
+ certificate. Verify that the size of Label has a maximum value of 32
bytes."
verification: |
Verify that the following on TH (all-clusters-app) log
diff --git a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml
index 1c3774ba792444..7cf72c58584f9b 100644
--- a/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PCC_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
@@ -58,7 +63,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-speed 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148440.471321][2336:2336] CHIP:IM: Received Read request
[1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -82,7 +87,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-flow 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148472.518933][2336:2336] CHIP:IM: Received Read request
[1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -106,7 +111,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651570515.206834][9246:9246] CHIP:IM: Received Read request
[1651570515.206917][9246:9246] CHIP:DMG: ReadRequestMessage =
@@ -128,7 +133,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651570975.559213][9246:9246] CHIP:IM: Received Read request
[1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage =
@@ -147,7 +152,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read capacity 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571009.295069][9246:9246] CHIP:IM: Received Read request
[1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage =
@@ -166,7 +171,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read operation-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571334.617100][9337:9337] CHIP:IM: Received Read request
[1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage =
@@ -192,7 +197,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read min-const-pressure 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148507.711384][2336:2336] CHIP:IM: Received Read request
[1651148507.711452][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -216,7 +221,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-const-pressure 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148537.336390][2336:2336] CHIP:IM: Received Read request
[1651148537.336445][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -240,7 +245,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read min-comp-pressure 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148566.361843][2336:2336] CHIP:IM: Received Read request
[1651148566.361897][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -262,7 +267,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-comp-pressure 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148595.417817][2336:2336] CHIP:IM: Received Read request
[1651148595.417901][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -286,7 +291,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read min-const-speed 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148626.823098][2336:2336] CHIP:IM: Received Read request
[1651148626.823201][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -308,7 +313,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-const-speed 1 1
- Verify in TH all-clusters-app log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564124.345958][8748:8748] CHIP:IM: Received Read request
[1651564124.346033][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -331,7 +336,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564163.319315][8748:8748] CHIP:IM: Received Read request
[1651564163.319399][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -355,7 +360,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read min-const-flow 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564163.319315][8748:8748] CHIP:IM: Received Read request
[1651564163.319399][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -378,7 +383,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-const-flow 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564281.857728][8748:8748] CHIP:IM: Received Read request
[1651564281.857784][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -400,7 +405,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read min-const-temp 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564317.488333][8748:8748] CHIP:IM: Received Read request
[1651564317.488417][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -422,7 +427,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-const-temp 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564350.267434][8748:8748] CHIP:IM: Received Read request
[1651564350.267489][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -444,7 +449,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read pump-status 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651564415.272861][8748:8748] CHIP:IM: Received Read request
[1651564415.272946][8748:8748] CHIP:DMG: ReadRequestMessage =
@@ -466,7 +471,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read speed 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571041.252491][9246:9246] CHIP:IM: Received Read request
[1651571041.252548][9246:9246] CHIP:DMG: ReadRequestMessage =
@@ -488,7 +493,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read lifetime-running-hours 1 1
- Verify in TH all-clusters-app log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571194.810592][9337:9337] CHIP:IM: Received Read request
[1651571194.810647][9337:9337] CHIP:DMG: ReadRequestMessage =
@@ -510,7 +515,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read power 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571264.121840][9337:9337] CHIP:IM: Received Read request
[1651571264.121896][9337:9337] CHIP:DMG: ReadRequestMessage =
@@ -532,7 +537,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read lifetime-energy-consumed 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571293.017448][9337:9337] CHIP:IM: Received Read request
[1651571293.017534][9337:9337] CHIP:DMG: ReadRequestMessage =
@@ -554,7 +559,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read control-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571369.365807][9337:9337] CHIP:IM: Received Read request
[1651571369.365907][9337:9337] CHIP:DMG: ReadRequestMessage =
@@ -583,7 +588,7 @@ tests:
./chip-tool pumpconfigurationandcontrol write operation-mode 0 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the Write Request for the data sent in the above command
[1652858465.008652][2107:2107] CHIP:IM: Received Write request
[1652858465.008695][2107:2107] CHIP:DMG: IM WH moving to [Initialized]
@@ -622,7 +627,7 @@ tests:
./chip-tool pumpconfigurationandcontrol write control-mode 0 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the Write Request for the data sent in the above command
[1652858653.083434][2107:2107] CHIP:IM: Received Write request
[1652858653.083469][2107:2107] CHIP:DMG: IM WH moving to [Initialized]
@@ -655,7 +660,8 @@ tests:
./chip-tool pumpconfigurationandcontrol write lifetime-running-hours 1 1 1
- Verify in DUT as client side Log
+
+ verify on TH all-cluster-app receives the Write Request for the data sent in the above command
[1652858777.844427][2107:2107] CHIP:IM: Received Write request
[1652858777.844450][2107:2107] CHIP:DMG: IM WH moving to [Initialized]
@@ -688,7 +694,8 @@ tests:
./chip-tool pumpconfigurationandcontrol write lifetime-energy-consumed 1 1 1
- Verify in DUT as client side Log
+
+ verify on TH all-cluster-app receives the Write Request for the data sent in the above command
[1652858844.149759][2107:2107] CHIP:IM: Received Write request
[1652858844.149801][2107:2107] CHIP:DMG: IM WH moving to [Initialized]
@@ -730,36 +737,62 @@ tests:
./chip-tool pumpconfigurationandcontrol read attribute-list 1 1
- Verify in DUT as client side Log
- [1654247307401] [91803:4011207] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0200 Attribute 0x0000_FFFB DataVersion: 3055704159
- [1654247307401] [91803:4011207] CHIP: [TOO] AttributeList: 12 entries
- [1654247307401] [91803:4011207] CHIP: [TOO] [1]: 0
- [1654247307401] [91803:4011207] CHIP: [TOO] [2]: 1
- [1654247307401] [91803:4011207] CHIP: [TOO] [3]: 2
- [1654247307401] [91803:4011207] CHIP: [TOO] [4]: 17
- [1654247307401] [91803:4011207] CHIP: [TOO] [5]: 18
- [1654247307401] [91803:4011207] CHIP: [TOO] [6]: 19
- [1654247307401] [91803:4011207] CHIP: [TOO] [7]: 32
- [1654247307401] [91803:4011207] CHIP: [TOO] [8]: 65528
- [1654247307401] [91803:4011207] CHIP: [TOO] [9]: 65529
- [1654247307401] [91803:4011207] CHIP: [TOO] [10]: 65531
- [1654247307401] [91803:4011207] CHIP: [TOO] [11]: 65532
- [1654247307401] [91803:4011207] CHIP: [TOO] [12]: 65533
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
+ [1660745892.540246][3657:3657] CHIP:IM: Received Read request
+ [1660745892.540323][3657:3657] CHIP:DMG: ReadRequestMessage =
+ [1660745892.540346][3657:3657] CHIP:DMG: {
+ [1660745892.540364][3657:3657] CHIP:DMG: AttributePathIBs =
+ [1660745892.540401][3657:3657] CHIP:DMG: [
+ [1660745892.540422][3657:3657] CHIP:DMG: AttributePathIB =
+ [1660745892.540452][3657:3657] CHIP:DMG: {
+ [1660745892.540487][3657:3657] CHIP:DMG: Endpoint = 0x1,
+ [1660745892.540517][3657:3657] CHIP:DMG: Cluster = 0x200,
+ [1660745892.540556][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFB,
+ [1660745892.540582][3657:3657] CHIP:DMG: }
+ [1660745892.540616][3657:3657] CHIP:DMG:
+ [1660745892.540638][3657:3657] CHIP:DMG: ],
+ [1660745892.540673][3657:3657] CHIP:DMG:
+ [1660745892.540696][3657:3657] CHIP:DMG: isFabricFiltered = true,
+ [1660745892.540726][3657:3657] CHIP:DMG: InteractionModelRevision = 1
+ [1660745892.540747][3657:3657] CHIP:DMG: },
+ [1660745892.540821][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1660745892.540929][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1660745892.540954][3657:3657] CHIP:DMG: Cluster 200, Attribute fffb is dirty
+ [1660745892.540982][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFB (expanded=0)
./chip-tool pumpconfigurationandcontrol read feature-map 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
- [1656478569086] [49565:5734437] CHIP: [TOO] Endpoint: 1 Cluster: 0x0000_0200 Attribute 0x0000_FFFC DataVersion: 1816685251
- [1656478569086] [49565:5734437] CHIP: [TOO] FeatureMap: 0
+ [1660745929.334567][3657:3657] CHIP:IM: Received Read request
+ [1660745929.334641][3657:3657] CHIP:DMG: ReadRequestMessage =
+ [1660745929.334677][3657:3657] CHIP:DMG: {
+ [1660745929.334696][3657:3657] CHIP:DMG: AttributePathIBs =
+ [1660745929.334728][3657:3657] CHIP:DMG: [
+ [1660745929.334750][3657:3657] CHIP:DMG: AttributePathIB =
+ [1660745929.334778][3657:3657] CHIP:DMG: {
+ [1660745929.334814][3657:3657] CHIP:DMG: Endpoint = 0x1,
+ [1660745929.334853][3657:3657] CHIP:DMG: Cluster = 0x200,
+ [1660745929.334884][3657:3657] CHIP:DMG: Attribute = 0x0000_FFFC,
+ [1660745929.334920][3657:3657] CHIP:DMG: }
+ [1660745929.334947][3657:3657] CHIP:DMG:
+ [1660745929.334978][3657:3657] CHIP:DMG: ],
+ [1660745929.335006][3657:3657] CHIP:DMG:
+ [1660745929.335037][3657:3657] CHIP:DMG: isFabricFiltered = true,
+ [1660745929.335059][3657:3657] CHIP:DMG: InteractionModelRevision = 1
+ [1660745929.335079][3657:3657] CHIP:DMG: },
+ [1660745929.335155][3657:3657] CHIP:DMG: IM RH moving to [GeneratingReports]
+ [1660745929.335256][3657:3657] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+ [1660745929.335291][3657:3657] CHIP:DMG: Cluster 200, Attribute fffc is dirty
+ [1660745929.335311][3657:3657] CHIP:DMG: Reading attribute: Cluster=0x0000_0200 Endpoint=1 AttributeId=0x0000_FFFC (expanded=0)
./chip-tool pumpconfigurationandcontrol read max-pressure 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148412.273866][2336:2336] CHIP:IM: Received Read request
[1651148412.273922][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -782,7 +815,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-speed 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148440.471321][2336:2336] CHIP:IM: Received Read request
[1651148440.471389][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -806,7 +839,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read max-flow 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651148472.518933][2336:2336] CHIP:IM: Received Read request
[1651148472.518993][2336:2336] CHIP:DMG: ReadRequestMessage =
@@ -830,7 +863,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read effective-operation-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651570515.206834][9246:9246] CHIP:IM: Received Read request
@@ -853,7 +886,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read effective-control-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651570975.559213][9246:9246] CHIP:IM: Received Read request
[1651570975.559268][9246:9246] CHIP:DMG: ReadRequestMessage =
@@ -872,7 +905,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read capacity 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571009.295069][9246:9246] CHIP:IM: Received Read request
[1651571009.295158][9246:9246] CHIP:DMG: ReadRequestMessage =
@@ -891,7 +924,7 @@ tests:
./chip-tool pumpconfigurationandcontrol read operation-mode 1 1
- Verify in DUT as client side Log
+ verify on TH all-cluster-app receives the right ReadRequest for the data sent in the above command
[1651571334.617100][9337:9337] CHIP:IM: Received Read request
[1651571334.617155][9337:9337] CHIP:DMG: ReadRequestMessage =
diff --git a/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml b/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml
index ea7108c7a0d7a0..e2afec23eb8851 100644
--- a/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PRS_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
diff --git a/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml b/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml
index 0cd5f3da210b15..3a4e367bb7a47d 100644
--- a/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PSCFG_2_2.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Preconditions:"
+ verification: |
+ This test case is verified after the device is provisioned. Pls provision device first, Pass appropriate nodeID in the below command
+ disabled: true
+
- label: "Commission DUT to TH"
verification: |
verification step to be updated.
@@ -48,26 +53,26 @@ tests:
"TH reads the Order attribute from Power Source Cluster at
Enpoint[eNr] of the DUT"
verification: |
- ./chip-tool powersource read order 1 1
+ ./chip-tool powersource read order 1 2
verify on TH(chip-tool) that order attribute succeeds with no error.The order value is the same or greater than the order value of the previous iteration
- [...]
- [1653564242.694964][36231:36236] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 4212858705
- [1653564242.695038][36231:36236] CHIP:TOO: Order: 2
+ [1659879820.566144][2615:2620] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 1842182672
+ [1659879820.569572][2615:2620] CHIP:TOO: Order: 1
- ./chip-tool powersource read order 1 2
+
+ ./chip-tool powersource read order 1 1
verify on TH(chip-tool) that order attribute succeeds with no error.The order value is the same or greater than the order value of the previous iteration
- [1659879820.566144][2615:2620] CHIP:TOO: Endpoint: 2 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 1842182672
- [1659879820.569572][2615:2620] CHIP:TOO: Order: 1
+ [...]
+ [1653564242.694964][36231:36236] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 4212858705
+ [1653564242.695038][36231:36236] CHIP:TOO: Order: 2
- ./chip-tool powersource read order 1 0
+ ./chip-tool powersource read order 1 0
verify on TH(chip-tool) that order attribute succeeds with no error.The order value is the same or greater than the order value of the previous iteration
[1659879944.863570][2633:2638] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002F Attribute 0x0000_0001 DataVersion: 1479870496
[1659879944.863664][2633:2638] CHIP:TOO: Order: 3
- [1659879944.863854][2633:2638] CHIP:EM: Sending Standalone Ack for MessageCounter:4546692 on exchange 20518i
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml
index a034e954f914ec..0f419310c547c4 100644
--- a/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PS_1_1.yaml
@@ -40,7 +40,6 @@ tests:
type: int16u
- label: "Read the global attribute: FeatureMap"
- PICS: PS.S.F00 || PS.S.F01 || PS.S.F02 || PS.S.F03
command: "readAttribute"
attribute: "FeatureMap"
response:
diff --git a/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml b/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml
index dca4b6443e6364..4f33bf4e31ab3f 100644
--- a/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_RH_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml
index 3888005a6771b2..e92cba67a2088d 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_1.yaml
@@ -28,6 +28,7 @@ tests:
"DUT is Commissioned and put in Commissioning Mode using Open Basic
Commissioning Window command and starts advertising Commissionable
Node Discovery service using DNS-SD"
+ PICS: CADMIN.S.C01.Rsp
verification: |
./chip-tool administratorcommissioning open-basic-commissioning-window 200 1 0 --timedInteractionTimeoutMs 1000
@@ -76,6 +77,7 @@ tests:
MCORE.SC.DT_KEY&& MCORE.SC.DN_KEY && MCORE.SC.RI_KEY &&
MCORE.SC.PH_KEY && MCORE.SC.PI_KEY
verification: |
+ Run the below commands within the mentioned time interval used in open-commissioning-window in step-1.
Run the below avahi browse command in the TH terminal
avahi-browse -rt _matterc._udp
@@ -96,7 +98,7 @@ tests:
- Service Domain 422F10CDC290A406.local
+ If we use Thread setup, then the Service Domain will be 422F10CDC290A406.local
verify CM flag is 1
to look for subtypes, on the raspi run $ avahi-browse -p _services._dns-sd._udp | grep _matterc
@@ -109,9 +111,10 @@ tests:
disabled: true
- label:
- "DUT is rebooted and Commissioned again, then put in Commissioning
- Mode using Open Basic Commissioning Window command, starting
- advertising Commissionable Node Discovery service using DNS- SD"
+ "DUT is rebooted, then put in Commissioning Mode using Open Basic
+ Commissioning Window command, starting advertising Commissionable Node
+ Discovery service using DNS-SD"
+ PICS: CADMIN.S.C01.Rsp
verification: |
Reboot the device and commission the DUT again. Open the commissioning window using the below command in the TH (Chip-tool) terminal
@@ -172,7 +175,7 @@ tests:
+ eth0 IPv6 19DDF06C3B5DD0C8 _matterc._udp local
= veth721e1d9 IPv6 19DDF06C3B5DD0C8 _matterc._udp local
- hostname = [E45F0149AE290000.local]
+ hostname = [E45F0149AE290000.local]
address = [fe80::28e0:95ff:fed9:3085]
port = [5540]
txt = ["PI=" "PH=36" "CM=1" "D=3840" "T=1" "SAI=300" "SII=5000" "VP=65521+32769"]
@@ -198,9 +201,15 @@ tests:
+;eth0;IPv6;_CM;_sub._matterc._udp;local
disabled: true
+ - label: "Wait for OBCW timeout to expire"
+ verification: |
+ Wait until open-basic-commissioning-window time to expire.
+ disabled: true
+
- label:
"DUT is Commissioned and instructed to enter in commissioning mode
using Open Commissioning Window command"
+ PICS: CADMIN.S.C00.Rsp
verification: |
Run the below open-commissioning-window in TH Terminal
@@ -277,7 +286,7 @@ tests:
- label: "Wait for OCW timeout to expire"
verification: |
- Wait until open-commissioning-window time to expire. (In our example above its 200 sec)
+ Wait until open-commissioning-window time to expire.
disabled: true
- label: "If (MCORE.SC.EXTENDED_DISCOVERY ) enable Extended Discovery"
@@ -289,7 +298,8 @@ tests:
Reference Raspberrypi device is not supporting extended discovery.
disabled: true
- - label: "If (PICS_EXTENDED_DISCOVERY) check DNS-SD subtypes used by DUT"
+ - label:
+ "If (MCORE.SC.EXTENDED_DISCOVERY ) check DNS-SD subtypes used by DUT"
PICS:
MCORE.SC.EXTENDED_DISCOVERY && MCORE.COM.WIFI && MCORE.COM.ETH &&
MCORE.COM.THR && MCORE.SC.VENDOR_SUBTYPE && MCORE.SC.DEVTYPE_SUBTYPE
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml
index 78cc1e21346212..5398b18c3430ec 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_10.yaml
@@ -28,13 +28,13 @@ config:
tests:
- label: "DUT is instructed to advertise its service"
verification: |
- verification step to be updated.
+ 1. Provision the DUT by TH (Chip-tool)
disabled: true
- label: "TH scans for DNS-SD advertising"
verification: |
avahi-browse -rt _matter._tcp
- Verify on the TH Log:
+ Verify on the TH(Chip-tool) Log:
+ eth0 IPv6 3A235FF3FA2DAC10-0000000000000055 _matter._tcp local
+ eth0 IPv4 3A235FF3FA2DAC10-0000000000000055 _matter._tcp local
= eth0 IPv4 3A235FF3FA2DAC10-0000000000000055 _matter._tcp local
@@ -48,211 +48,3 @@ tests:
port = [5540]
txt = ["T=0" "SAI=300" "SII=5000"]
disabled: true
-
- - label: "TH writes ACL entry by setting AuthMode as Group to DUT"
- verification: |
- ./chip-tool accesscontrol write acl "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null },{"fabricIndex": 1, "privilege": 4, "authMode": 3, "subjects": [1], "targets": null }]" 1 0
-
- Verify success response on the TH Log:
-
- [1652330385.328196][3240:3245] CHIP:DMG: StatusIB =
- [1652330385.328229][3240:3245] CHIP:DMG: {
- [1652330385.328264][3240:3245] CHIP:DMG: status = 0x00 (SUCCESS),
- [1652330385.328298][3240:3245] CHIP:DMG: },
- disabled: true
-
- - label:
- "Admin generates fabric-unique GroupID, GroupName, random key,
- EpochKey0 and GroupKeySetID. Admin sets GroupKeySecurityPolicy =
- TrustFirst (1) GroupKeyMulticastPolicy = PerGroupID (0)
- EpochStartTime0 = 0"
- verification: |
- As Admin generates it is not required to verify
- disabled: true
-
- - label:
- "Admin sends KeySetWrite command to GroupKeyManagement cluster to DUT
- on PIXIT.G.ENDPOINT"
- verification: |
- ./chip-tool groupkeymanagement key-set-write "{"groupKeySetID": 42,
- "groupKeySecurityPolicy": 0, "epochKey0":
- "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1":
- "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2":
- "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }" 1 0
-
- Verify success response on the TH Log:
-
- [1650610345.847233][2626:2631] CHIP:DMG:
- [1650610345.847274][2626:2631] CHIP:DMG: StatusIB =
- [1650610345.847317][2626:2631] CHIP:DMG: {
- [1650610345.847383][2626:2631] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650610345.847429][2626:2631] CHIP:DMG: },
- [1650610345.847477][2626:2631] CHIP:DMG:
- disabled: true
-
- - label:
- "Admin binds GroupId with GroupKeySetID in the GroupKeyMap attribute
- list on GroupKeyManagement cluster"
- verification: |
- ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 42, "fabricIndex": 1}]" 1 0
-
- Verify success response on the TH Log:
-
- [1652352019.875893][2552:2557] CHIP:DMG: WriteResponseMessage =
- [1652352019.875922][2552:2557] CHIP:DMG: {
- [1652352019.875946][2552:2557] CHIP:DMG: AttributeStatusIBs =
- [1652352019.875981][2552:2557] CHIP:DMG: [
- [1652352019.876008][2552:2557] CHIP:DMG: AttributeStatusIB =
- [1652352019.876041][2552:2557] CHIP:DMG: {
- [1652352019.876070][2552:2557] CHIP:DMG: AttributePathIB =
- [1652352019.876104][2552:2557] CHIP:DMG: {
- [1652352019.876143][2552:2557] CHIP:DMG: Endpoint = 0x0,
- [1652352019.876183][2552:2557] CHIP:DMG: Cluster = 0x3f,
- [1652352019.876225][2552:2557] CHIP:DMG: Attribute = 0x0000_0000,
- [1652352019.876263][2552:2557] CHIP:DMG: }
- [1652352019.876303][2552:2557] CHIP:DMG:
- [1652352019.876337][2552:2557] CHIP:DMG: StatusIB =
- [1652352019.876375][2552:2557] CHIP:DMG: {
- [1652352019.876414][2552:2557] CHIP:DMG: status = 0x00 (SUCCESS),
- [1652352019.876450][2552:2557] CHIP:DMG: },
- [1652352019.876489][2552:2557] CHIP:DMG:
- [1652352019.876519][2552:2557] CHIP:DMG: },
- [1652352019.876562][2552:2557] CHIP:DMG:
- [1652352019.876590][2552:2557] CHIP:DMG: AttributeStatusIB =
- [1652352019.876622][2552:2557] CHIP:DMG: {
- [1652352019.876652][2552:2557] CHIP:DMG: AttributePathIB =
- [1652352019.876690][2552:2557] CHIP:DMG: {
- [1652352019.876728][2552:2557] CHIP:DMG: Endpoint = 0x0,
- [1652352019.876768][2552:2557] CHIP:DMG: Cluster = 0x3f,
- [1652352019.876809][2552:2557] CHIP:DMG: Attribute = 0x0000_0000,
- [1652352019.876849][2552:2557] CHIP:DMG: ListIndex = Null,
- [1652352019.876885][2552:2557] CHIP:DMG: }
- [1652352019.876923][2552:2557] CHIP:DMG:
- [1652352019.876961][2552:2557] CHIP:DMG: StatusIB =
- [1652352019.876995][2552:2557] CHIP:DMG: {
- [1652352019.877029][2552:2557] CHIP:DMG: status = 0x00 (SUCCESS),
- [1652352019.877077][2552:2557] CHIP:DMG: },
- [1652352019.877132][2552:2557] CHIP:DMG:
- [1652352019.877179][2552:2557] CHIP:DMG: },
- [1652352019.877224][2552:2557] CHIP:DMG:
- [1652352019.877262][2552:2557] CHIP:DMG: ],
- [1652352019.877339][2552:2557] CHIP:DMG:
- [1652352019.877381][2552:2557] CHIP:DMG: InteractionModelRevision = 1
- [1652352019.877419][2552:2557] CHIP:DMG: }
- disabled: true
-
- - label:
- "Admin sends AddGroup Command to DUT with the GroupID set by Admin on
- PIXIT.SC.ENDPOINT"
- verification: |
- ./chip-tool groups add-group 0x0001 grp1 1 1
-
- Verify AddGroupResponse on the TH Log:
-
- [1651218084.427102][2526:2531] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0000
- [1651218084.427203][2526:2531] CHIP:TOO: AddGroupResponse: {
- [1651218084.427241][2526:2531] CHIP:TOO: status: 0
- [1651218084.427264][2526:2531] CHIP:TOO: groupId: 1
- [1651218084.427314][2526:2531] CHIP:TOO: }
- disabled: true
-
- - label:
- "Admin sends ViewGroup command with the GroupID to the Group cluster
- on the DUT on PIXIT.SC.ENDPOINT"
- verification: |
- ./chip-tool groups view-group 0x0001 1 1
-
- Verify ViewGroupResponse on the TH Log:
-
- [1651218576.149152][2635:2640] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Command 0x0000_0001
- [1651218576.149231][2635:2640] CHIP:TOO: ViewGroupResponse: {
- [1651218576.149265][2635:2640] CHIP:TOO: status: 0
- [1651218576.149289][2635:2640] CHIP:TOO: groupId: 1
- [1651218576.149311][2635:2640] CHIP:TOO: groupName: grp1
- [1651218576.149335][2635:2640] CHIP:TOO: }
- disabled: true
-
- - label: "Admin sends KeySetRead Command to DUT"
- verification: |
- ./chip-tool groupkeymanagement key-set-read 42 1 0
-
- Verify KeySetReadResponse on the TH Log:
-
- [1650610759.578043][2739:2744] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003F Command=0x0000_0002
- [1650610759.578099][2739:2744] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Command 0x0000_0002
- [1650610759.578220][2739:2744] CHIP:TOO: KeySetReadResponse: {
- [1650610759.578251][2739:2744] CHIP:TOO: groupKeySet: {
- [1650610759.578291][2739:2744] CHIP:TOO: GroupKeySetID: 42
- [1650610759.578334][2739:2744] CHIP:TOO: GroupKeySecurityPolicy: 0
- [1650610759.578363][2739:2744] CHIP:TOO: EpochKey0: null
- [1650610759.578391][2739:2744] CHIP:TOO: EpochStartTime0: 2220000
- [1650610759.578418][2739:2744] CHIP:TOO: EpochKey1: null
- [1650610759.578445][2739:2744] CHIP:TOO: EpochStartTime1: 2220001
- [1650610759.578472][2739:2744] CHIP:TOO: EpochKey2: null
- [1650610759.578498][2739:2744] CHIP:TOO: EpochStartTime2: 2220002
- [1650610759.578527][2739:2744] CHIP:TOO: }
- [1650610759.578553][2739:2744] CHIP:TOO: }
- disabled: true
-
- - label:
- "TH reads GroupKeyMap Attribute from the GroupKeyManagement cluster
- from DUT"
- verification: |
- ./chip-tool groupkeymanagement read group-key-map 1 0
-
- Verify GroupKeyMapStruct on the TH Log:
-
- 1652429573.936605][2883:2888] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0000 DataVersion: 75110822
- [1652429573.936744][2883:2888] CHIP:TOO: GroupKeyMap: 1 entries
- [1652429573.936819][2883:2888] CHIP:TOO: [1]: {
- [1652429573.936860][2883:2888] CHIP:TOO: GroupId: 1
- [1652429573.936896][2883:2888] CHIP:TOO: GroupKeySetID: 42
- [1652429573.936932][2883:2888] CHIP:TOO: FabricIndex: 1
- [1652429573.936969][2883:2888] CHIP:TOO: }
- disabled: true
-
- - label:
- "TH reads GroupTable attribute from GroupKeyManagement cluster on DUT."
- verification: |
- ./chip-tool groupkeymanagement read group-table 1 0
-
- Verify GroupTable on the TH Log:
-
- [1655965817.917300][3012:3017] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_0001 DataVersion: 1208492408
- [1655965817.917408][3012:3017] CHIP:TOO: GroupTable: 1 entries
- [1655965817.917506][3012:3017] CHIP:TOO: [1]: {
- [1655965817.917559][3012:3017] CHIP:TOO: GroupId: 1
- [1655965817.917600][3012:3017] CHIP:TOO: Endpoints: 2 entries
- [1655965817.917642][3012:3017] CHIP:TOO: [1]: 0
- [1655965817.917680][3012:3017] CHIP:TOO: [2]: 1
- [1655965817.917718][3012:3017] CHIP:TOO: GroupName: grp1
- [1655965817.917752][3012:3017] CHIP:TOO: FabricIndex: 1
- [1655965817.917784][3012:3017] CHIP:TOO: }
- disabled: true
-
- - label:
- "Configure the TH for sending Group message Add the group that was
- created in step 3 to the client side Add the keysets with the
- GroupKeySetID from the step 2 for the client side Bind the
- GroupKeySetID with the GroupID created View the GroupID, GroupName and
- GroupKeySetID which is binded for sending the Group message"
- verification: |
- ./chip-tool groupsettings add-group grp1 0x0001
-
- ./chip-tool groupsettings add-keysets 0x0042 0 0x000000000021dfe0 hex:d0d1d2d3d4d5d6d7d8d9dadbdcdddedf
-
- ./chip-tool groupsettings bind-keyset 0x0001 0x0042
-
- ./chip-tool groupsettings show-groups
-
- Verify groups on the TH Log:
-
- +-------------------------------------------------------------------------------------+
- | Available Groups : |
- +-------------------------------------------------------------------------------------+
- | Group Id | KeySet Id | Group Name |
- | 0x101 0x1a1 Group #1 |
- | 0x102 0x1a2 Group #2 |
- | 0x1 0x42 grp1 |
- +-------------------------------------------------------------------------------------+
- disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_3.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_3.yaml
index e0f8cda7051c3b..c137d70c6a29e7 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_3.yaml
@@ -13,7 +13,7 @@
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
-name: 3.4.3. [TC-SC-4.3] Operational Discovery - Node
+name: 15.4.3. [TC-SC-4.3] Discovery [DUT as Commissionee]
PICS:
- MCORE.ROLE.COMMISSIONEE
@@ -24,9 +24,11 @@ config:
endpoint: 0
tests:
- - label: "TH is instructed to start advertising a service using DNS-SD"
+ - label:
+ "DUT is commissioned to TH and DUT is instructed to advertise its
+ operational service (_matter._tcp)."
verification: |
- verification step to be updated.
+ 1. Provision the DUT by TH (Chip-tool)
disabled: true
- label: "Scan for DNS-SD advertising"
@@ -35,7 +37,7 @@ tests:
MCORE.SC.SII_OP_DISCOVERY_KEY && MCORE.SC.SAI_OP_DISCOVERY_KEY &&
MCORE.SC.T_KEY
verification: |
- ubuntu@ubuntu:~$ avahi-browse -rt _matter._tcp
+ avahi-browse -rt _matter._tcp
Verify on the TH Log:
@@ -46,49 +48,3 @@ tests:
port = [5540]
txt = ["T=1" "SAI=300" "SII=5000"]
disabled: true
-
- - label:
- "TH is instructed to start advertising an operational service using
- DNS-SD with non-standard TXT record keys"
- verification: |
- Run the publish service command on TH:
-
- avahi-publish-service --subtype=_S3._sub._matter._tcp --subtype=_L840._sub._matter._tcp DD200C20D25AE5F7 --subtype=_CM._sub._matter._tcp _matter._tcp 11111 D=840 CM=2 INVALID_TEST=40
- disabled: true
-
- - label:
- "DUT is rebooted and Commissioned again, then put in Commissioning
- Mode using Open Basic Commissioning Window command, DUT is instructed
- to advertise its service with the modified TXT record."
- verification: |
- ./chip-tool administratorcommissioning open-basic-commissioning-window 200 1 0 --timedInteractionTimeoutMs 1000
-
- verify on TH (Chip-tool) logs:
-
- [1650873075.234374][7964:7969] CHIP:DMG: EndpointId = 0x0,
- [1650873075.234449][7964:7969] CHIP:DMG: ClusterId = 0x3c,
- [1650873075.234542][7964:7969] CHIP:DMG: CommandId = 0x1,
- [1650873075.234613][7964:7969] CHIP:DMG: },
- [1650873075.234693][7964:7969] CHIP:DMG:
- [1650873075.234758][7964:7969] CHIP:DMG: StatusIB =
- [1650873075.234829][7964:7969] CHIP:DMG: {
- [1650873075.234909][7964:7969] CHIP:DMG: status = 0x00 (SUCCESS),
- [1650873075.234984][7964:7969] CHIP:DMG: },
- disabled: true
-
- - label: "Scan for DNS-SD advertising"
- PICS:
- MCORE.COM.WIFI && MCORE.COM.ETH && MCORE.COM.THR &&
- MCORE.SC.SII_OP_DISCOVERY_KEY && MCORE.SC.SAI_OP_DISCOVERY_KEY &&
- MCORE.SC.T_KEY
- verification: |
- ubuntu@ubuntu:~$ avahi-browse -rt _matter._tcp
- Verify on the TH Log:
-
- + eth0 IPv6 B1605B84E886EDCF-0000000000000258 _matter._tcp local
- = eth0 IPv6 21F41C9933CAAF62-000000000000003C _matter._tcp local
- hostname = [E45F010EBE440000.local]
- address = [fe80::e65f:1ff:fe0e:be44]
- port = [5540]
- txt = ["T=1" "SAI=300" "SII=5000"]
- disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml
index aa9d9da7d7d8da..0703e6c8f9b512 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_4.yaml
@@ -13,7 +13,7 @@
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
-name: 3.4.4. [TC-SC-4.4] Operational Discovery - Controller [DUT - Controller]
+name: 15.4.4. [TC-SC-4.4] Discovery [DUT as Controller]
PICS:
- PICS_MCORE_ROLE_CONTROLLER
@@ -24,28 +24,89 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as controller test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "TH starts commissioning process with DUT"
verification: |
- verification step to be updated.
+ 1. Provision the DUT by TH (Chip-tool)
disabled: true
- - label: "DUT reads nodelabel attribute from TH"
- PICS: BINFO.C.A0005
+ - label: "DUT reads Vendor Id attribute from TH"
+ PICS: BINFO.C.A0002
verification: |
- verification step to be updated.
+ On TH, Verify that TH read and shows Vendor Id value
+ ./chip-tool basic read vendor-id 1 0
+
+ [1660776352.802689][3357:3357] CHIP:DMG:
+ [1660776352.802776][3357:3357] CHIP:DMG: ReportDataMessage =
+ [1660776352.802807][3357:3357] CHIP:DMG: {
+ [1660776352.802832][3357:3357] CHIP:DMG: AttributeReportIBs =
+ [1660776352.802868][3357:3357] CHIP:DMG: [
+ [1660776352.802896][3357:3357] CHIP:DMG: AttributeReportIB =
+ [1660776352.802933][3357:3357] CHIP:DMG: {
+ [1660776352.802963][3357:3357] CHIP:DMG: AttributeDataIB =
+ [1660776352.802999][3357:3357] CHIP:DMG: {
+ [1660776352.803040][3357:3357] CHIP:DMG: DataVersion = 0x5c6f4557,
+ [1660776352.803080][3357:3357] CHIP:DMG: AttributePathIB =
+ [1660776352.803118][3357:3357] CHIP:DMG: {
+ [1660776352.803157][3357:3357] CHIP:DMG: Endpoint = 0x0,
+ [1660776352.803198][3357:3357] CHIP:DMG: Cluster = 0x28,
+ [1660776352.803241][3357:3357] CHIP:DMG: Attribute = 0x0000_0002,
+ [1660776352.803279][3357:3357] CHIP:DMG: }
+ [1660776352.803319][3357:3357] CHIP:DMG:
+ [1660776352.803360][3357:3357] CHIP:DMG: Data = 65521,
+ [1660776352.803396][3357:3357] CHIP:DMG: },
+ [1660776352.803434][3357:3357] CHIP:DMG:
+ [1660776352.803468][3357:3357] CHIP:DMG: },
+ [1660776352.803503][3357:3357] CHIP:DMG:
+ [1660776352.803530][3357:3357] CHIP:DMG: ],
+ [1660776352.803571][3357:3357] CHIP:DMG:
+ [1660776352.803600][3357:3357] CHIP:DMG: SuppressResponse = true,
+ [1660776352.803628][3357:3357] CHIP:DMG: InteractionModelRevision = 1
+ [1660776352.803655][3357:3357] CHIP:DMG: }
+ [1660776352.803699][3357:3357] CHIP:DMG:
disabled: true
- label: "Change the IP address of TH by any means within the same network"
verification: |
- 1. Take two routers connected to the same ISP as input.
- 2. Execute step 1 to step 5 using Router1 Configuration.
- 3. Once step 1 to step 5 are executed in Router1 switch TH and DUT to Router2.
- 4. Execute step 1 to step 5 using Router2 Configuration.
- 5. Check the IP so that the Routers(Router1 and Router2) will have different IPs to Raspi.
+ Connect the raspi running the TH to another router which is on the same network. Make sure that the DUT and TH are on the same network and can ping to each other. Observe that the TH gets a new IP address. Perform Step 4
disabled: true
- - label: "DUT reads nodelabel attribute from TH"
- PICS: BINFO.C.A0005
+ - label: "DUT reads Vendor Id attribute from TH"
+ PICS: BINFO.C.A0002
verification: |
- verification step to be updated.
+ On TH, Verify that TH read and shows Vendor Id value
+ ./chip-tool basic read vendor-id 1 0
+
+ [1660776352.802689][3357:3357] CHIP:DMG:
+ [1660776352.802776][3357:3357] CHIP:DMG: ReportDataMessage =
+ [1660776352.802807][3357:3357] CHIP:DMG: {
+ [1660776352.802832][3357:3357] CHIP:DMG: AttributeReportIBs =
+ [1660776352.802868][3357:3357] CHIP:DMG: [
+ [1660776352.802896][3357:3357] CHIP:DMG: AttributeReportIB =
+ [1660776352.802933][3357:3357] CHIP:DMG: {
+ [1660776352.802963][3357:3357] CHIP:DMG: AttributeDataIB =
+ [1660776352.802999][3357:3357] CHIP:DMG: {
+ [1660776352.803040][3357:3357] CHIP:DMG: DataVersion = 0x5c6f4557,
+ [1660776352.803080][3357:3357] CHIP:DMG: AttributePathIB =
+ [1660776352.803118][3357:3357] CHIP:DMG: {
+ [1660776352.803157][3357:3357] CHIP:DMG: Endpoint = 0x0,
+ [1660776352.803198][3357:3357] CHIP:DMG: Cluster = 0x28,
+ [1660776352.803241][3357:3357] CHIP:DMG: Attribute = 0x0000_0002,
+ [1660776352.803279][3357:3357] CHIP:DMG: }
+ [1660776352.803319][3357:3357] CHIP:DMG:
+ [1660776352.803360][3357:3357] CHIP:DMG: Data = 65521,
+ [1660776352.803396][3357:3357] CHIP:DMG: },
+ [1660776352.803434][3357:3357] CHIP:DMG:
+ [1660776352.803468][3357:3357] CHIP:DMG: },
+ [1660776352.803503][3357:3357] CHIP:DMG:
+ [1660776352.803530][3357:3357] CHIP:DMG: ],
+ [1660776352.803571][3357:3357] CHIP:DMG:
+ [1660776352.803600][3357:3357] CHIP:DMG: SuppressResponse = true,
+ [1660776352.803628][3357:3357] CHIP:DMG: InteractionModelRevision = 1
+ [1660776352.803655][3357:3357] CHIP:DMG: }
+ [1660776352.803699][3357:3357] CHIP:DMG:
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml
index 5f28f3d5beaeaa..0062e1c7f3e949 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_6.yaml
@@ -26,6 +26,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT is instructed to start advertising its presence as a commissioner
in the network"
@@ -56,8 +61,7 @@ tests:
- to look for subtypes, on the raspi run $ avahi-browse -p _services._dns-sd._udp
- | grep _matterd
+ to look for subtypes, on the raspi run $ avahi-browse -p _services._dns-sd._udp | grep _matterd
+;eth0;IPv6;_CM;_sub._matterd._udp;local
+;eth0;IPv6;_L3840;_sub._matterd._udp;local
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml
index f5cf0c10623f3a..9e6781ff6b32a8 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_7.yaml
@@ -13,7 +13,7 @@
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
-name: 3.4.7. [TC-SC-4.7] Commissioner Discovery - Commissionee
+name: 15.4.7. [TC-SC-4.7] Commissioner Discovery [DUT as Commissionee]
PICS:
- MCORE.ROLE.COMMISSIONEE
@@ -34,7 +34,7 @@ tests:
- label: "Scan for DNS-SD commissioner advertisements from TH"
PICS:
MCORE.SC.DEVTYPE_SUBTYPE && MCORE.SC.VP_KEY && MCORE.SC.DT_KEY &&
- MCORE.SC.DN_KEY &&
+ MCORE.SC.DN_KEY
verification: |
if DUT supports discovering UDC, DUT should be able to scan the TV-app
@@ -49,20 +49,20 @@ tests:
address = [fe80::e65f:1ff:fe49:ae29]
port = [5650]
txt = ["T=1" "SAI=300" "SII=5000" "DN=Test TV" "DT=35" "VP=65521+32769"]
- disabled: true
- - label:
- "By any means, TH adds an unknown key/value pair in the advertised
- data(e.g. AB=12345)"
- verification: |
- Run the unknown key/value pair on TH Terminal:
+ to look for subtypes, on the raspi run $ a avahi-browse -p _services._dns-sd._udp | grep _matterd
- avahi-publish-service --subtype=_V123._sub._matterd._udp DD200C20D25AE5F7 _matterd._udp 33333 VP=123+456 DT=35 DN="Living Room TV" INVALID_TEST=40
+ +;wlan0;IPv6;_T35;_sub._matterd._udp;local
+ +;wlan0;IPv6;_V65521;_sub._matterd._udp;local
+ +;wlan0;IPv6;_matterd;_udp;local
+ +;eth0;IPv6;_T35;_sub._matterd._udp;local
+ +;eth0;IPv6;_V65521;_sub._matterd._udp;local
+ +;eth0;IPv6;_matterd;_udp;local
disabled: true
- label: "Scan for DNS-SD commissioner advertisements from TH"
verification: |
- Verify the DUT commissioner is able to discover the TH.
+ Verify the DUT is able to discover the TH.
As an example, In the case of chip-tool as commissioner, you can verify with the below command, (Use the equivalent command on the DUT)
@@ -73,24 +73,37 @@ tests:
[1659544548031] [13752:9267297] CHIP: [DIS] Mdns: OnBrowseAdd name: DD200C20D25AE5F7, type: _matterc._udp., domain: local., interface: 8 [1659544548031] [13752:9267297] CHIP: [DIS] Resolve type=_matterc._udp name=DD200C20D25AE5F7 interface=8
[1659544548032] [13752:9267297] CHIP: [DIS] Mdns : OnNewInterface hostname:ubuntuserverAccessory1.local. fullname:DD200C20D25AE5F7._matterc._udp.local. interface: 8 port: 26411 TXT:D=840CM=2INVALID_TEST=40 [1659544548033] [13752:9267297] CHIP: [DIS] Mdns: OnNewAddress interface: 8 ip:fd5d:9cc0:fc52:0:dea6:32ff:fe8d:7072
[1659544548033] [13752:9267297] CHIP: [DIS] Mdns: Resolve success on interface 8
- [1659544548033] [13752:9267297] CHIP: [DIS] Discovered node:
- [1659544548033] [13752:9267297] CHIP: [DIS] Hostname: ubuntuserverAcce [1659544548033] [13752:9267297] CHIP: [DIS] IP Address #1: fd5d:9cc0:fc52:0:dea6:32ff:fe8d:7072
- [1659544548033] [13752:9267297] CHIP: [DIS] Port: 11111
- [1659544548033] [13752:9267297] CHIP: [DIS] Mrp Interval idle: not present
- [1659544548033] [13752:9267297] CHIP: [DIS] Mrp Interval active: not present
- [1659544548033] [13752:9267297] CHIP: [DIS] TCP Supported: 0
- [1659544548033] [13752:9267297] CHIP: [DIS] Long Discriminator: 840
- [1659544548033] [13752:9267297] CHIP: [DIS] Instance Name: DD200C20D25AE5F7
- [1659544548033] [13752:9267297] CHIP: [DIS] Commissioning Mode: 2
- [1659544548033] [13752:9267297] CHIP: [DIS] Discovered node:
- [1659544548033] [13752:9267297] CHIP: [DIS] Hostname: ubuntuserverAcce [1659544548033] [13752:9267297] CHIP: [DIS] IP Address #1: fd5d:9cc0:fc52:0:dea6:32ff:fe8d:7072
- [1659544548033] [13752:9267297] CHIP: [DIS] Port: 11111
- [1659544548033] [13752:9267297] CHIP: [DIS] Mrp Interval idle: not present
- [1659544548033] [13752:9267297] CHIP: [DIS] Mrp Interval active: not present
- [1659544548033] [13752:9267297] CHIP: [DIS] TCP Supported: 0
- [1659544548033] [13752:9267297] CHIP: [DIS] Long Discriminator: 840
- [1659544548033] [13752:9267297] CHIP: [DIS] Instance Name: DD200C20D25AE5F7
- [1659544548033] [13752:9267297] CHIP: [DIS] Commissioning Mode: 2
+ [1660288371.031350][3364:3369] CHIP:DIS: Discovered node:
+ [1660288371.031374][3364:3369] CHIP:DIS: Hostname: E45F0149AE290000 [1660288371.031402][3364:3369] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe49:ae29
+ [1660288371.031427][3364:3369] CHIP:DIS: Port: 5640
+ [1660288371.031450][3364:3369] CHIP:DIS: Mrp Interval idle: 5000 ms
+ [1660288371.031473][3364:3369] CHIP:DIS: Mrp Interval active: 300 ms
+ [1660288371.031496][3364:3369] CHIP:DIS: TCP Supported: 1
+ [1660288371.031521][3364:3369] CHIP:DIS: Rotating ID: 01005FDB39737473FB22B819CEBB1084AFD5
+ [1660288371.031544][3364:3369] CHIP:DIS: Device Name: Test TV
+ [1660288371.031566][3364:3369] CHIP:DIS: Vendor ID: 65521
+ [1660288371.031589][3364:3369] CHIP:DIS: Product ID: 32769
+ [1660288371.031609][3364:3369] CHIP:DIS: Device Type: 35
+ [1660288371.031628][3364:3369] CHIP:DIS: Long Discriminator: 3840
+ [1660288371.031647][3364:3369] CHIP:DIS: Pairing Hint: 36
+ [1660288371.031669][3364:3369] CHIP:DIS: Instance Name: 35025D5C5DA30C17
+ [1660288371.031694][3364:3369] CHIP:DIS: Commissioning Mode: 0
+ [1660288371.031722][3364:3369] CHIP:DIS: Discovered node:
+ [1660288371.031743][3364:3369] CHIP:DIS: Hostname: E45F0149AE290000 [1660288371.031768][3364:3369] CHIP:DIS: IP Address #1: fe80::e65f:1ff:fe49:ae29
+ [1660288371.031791][3364:3369] CHIP:DIS: Port: 5640
+ [1660288371.031814][3364:3369] CHIP:DIS: Mrp Interval idle: 5000 ms
+ [1660288371.031836][3364:3369] CHIP:DIS: Mrp Interval active: 300 ms
+ [1660288371.031859][3364:3369] CHIP:DIS: TCP Supported: 1
+ [1660288371.031888][3364:3369] CHIP:DIS: Rotating ID: 01005FDB39737473FB22B819CEBB1084AFD5
+ [1660288371.031909][3364:3369] CHIP:DIS: Device Name: Test TV
+ [1660288371.031928][3364:3369] CHIP:DIS: Vendor ID: 65521
+ [1660288371.031950][3364:3369] CHIP:DIS: Product ID: 32769
+ [1660288371.031973][3364:3369] CHIP:DIS: Device Type: 35
+ [1660288371.031995][3364:3369] CHIP:DIS: Long Discriminator: 3840
+ [1660288371.032018][3364:3369] CHIP:DIS: Pairing Hint: 36
+ [1660288371.032042][3364:3369] CHIP:DIS: Instance Name: 35025D5C5DA30C17
+ [1660288371.032064][3364:3369] CHIP:DIS: Commissioning Mode: 0
+
[1659544578034] [13752:9267291] CHIP: [CTL] Shutting down the commissioner
[1659544578034] [13752:9267291] CHIP: [CTL] Stopping commissioning discovery over DNS-SD
[1659544578034] [13752:9267291] CHIP: [CTL] Shutting down the controller
diff --git a/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml b/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml
index 2ffd0fd3854d6b..5d2e190fdaff95 100644
--- a/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SC_4_8.yaml
@@ -26,9 +26,14 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "Commission TH1 to DUTs Fabric"
verification: |
- 1. Provision the device using 1st controller chip-tool (as example commissioner) on the raspi (use above instructions)
+ 1. Provision the device using 1st controller chip-tool (as example commissioner) on the raspi (use the instructions)
./chip-tool pairing onnetwork 2 20202021
diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml
index 33ab17b54a9b02..066cca0924ef3f 100644
--- a/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SWTCH_1_1.yaml
@@ -31,6 +31,19 @@ tests:
- name: "nodeId"
value: nodeId
+ - label:
+ "Read FeatureMap attribute and Check values of flags in this
+ FeatureMap"
+ PICS:
+ "!SWTCH.S.F00 && SWTCH.S.F01 && !SWTCH.S.F02 && !SWTCH.S.F03 &&
+ !SWTCH.S.F04"
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label:
"Read FeatureMap attribute and Check values of flags in this
FeatureMap"
@@ -42,7 +55,7 @@ tests:
response:
constraints:
type: bitmap32
- minValue: 0
+ minValue: 1
maxValue: 31
- label: "read the global attribute: ClusterRevision"
diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml
index 0a18301fb30716..a930c424fe8135 100644
--- a/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SWTCH_2_2.yaml
@@ -24,36 +24,30 @@ config:
endpoint: 0
tests:
- - label: "Commission DUT to TH (can be skipped if done in a preceding test)"
+ - label: "Note"
verification: |
-
+ NOTE: https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux#readme
+ Events to be executed as following
+ 1. Compile app using below command in connectedhomeip folder
+ a. ./scripts/run_in_build_env.sh ./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build
+ b. ./scripts/run_in_build_env.sh ./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang build
+ 2. Build respective app (all-clusters-app)
+ 3. Commission DUT to TH
+ 4. Open 2nd terminal of DUT and provide the below command to obtain PID of DUT
+ ps -aef|grep all-clusters-app
+ 5. Follow the Verification step below to generate the event in 2nd terminal of DUT
disabled: true
- label: "Commission DUT to TH (can be skipped if done in a preceding test)"
verification: |
- NOTE:
- To Run the event test case we need to build event commands on DUT[All-cluster-ap] terminal.Below I mention the commands for how to build for linux arm64 it depends on the DUT what we use.I provided the link for build events.
-
- https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux#trigger-switch-events
-
-
-
-
- Here I provide cmmds for build on linux arm64
-
- 1. ./scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build
-
- 2../scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang build
-
- 3. ./out/linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang/chip-all-clusters-app-fuzzing
-
- 4. ./out/linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang/chip-all-clusters-app-fuzzing $(INPUT_FILE)
+ Commission DUT to TH
disabled: true
- label: "Set up subscription to SwitchLatched event"
PICS: SWTCH.S.F00
verification: |
- In Raspi platform to change the switch position use the below command, Pls use equivalent command on the respective DUT.After provisioning ,open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
+
echo "{"Name":"SwitchLatched","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -76,7 +70,7 @@ tests:
- label: "Operator sets switch to first position"
PICS: SWTCH.S.F00
verification: |
- In Raspi platform to change the switch to first position use the below command, Pls use equivalent command on the respective DUT.After provisioning ,open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"SwitchLatched","NewPosition":0}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -102,7 +96,7 @@ tests:
- label: "Operator sets switch to second position"
PICS: SWTCH.S.F00
verification: |
- In Raspi platform to change the switch to second position use the below sample command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"SwitchLatched","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -125,13 +119,12 @@ tests:
disabled: true
- label:
- "If NumberOfPositions>2 (see 2c of TC-SWTCH-2.1) : - Operator sets
+ "If NumberOfPositions>2 (see 2a of TC-SWTCH-2.1) : - Operator sets
switch to next position - Read CurrentPosition attribute"
- PICS: SWTCH.S.F00
verification: |
Raspi device doesn"t support more than 2 position ,so this step is not verifiable by using raspi device
- In Raspi platform to change the switch to third position use the below sample command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"SwitchLatched","NewPosition":2}" > /tmp/chip_all_clusters_fifo (PID of DUT)
@@ -181,7 +174,7 @@ tests:
- label: "Operator returns switch to first position"
PICS: SWTCH.S.F00
verification: |
- In Raspi platform to change the switch to first position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"SwitchLatched","NewPosition":0}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -206,7 +199,7 @@ tests:
- label: "Set up subscription to InitialPress event"
PICS: SWTCH.S.F01
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -251,7 +244,7 @@ tests:
- label: "Operator operates switch (keep it pressed)"
PICS: SWTCH.S.F01
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -276,7 +269,7 @@ tests:
- label: "Operator does not operate switch (release switch)"
PICS: SWTCH.S.F01
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -299,7 +292,7 @@ tests:
- label: "Set up subscription to InitialPress and ShortRelease events"
PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -308,7 +301,7 @@ tests:
[1659686596.526820][2530:2530] CHIP:-: The new position when the momentary switch starts to be pressed:1
[1659686596.526881][2530:2530] CHIP:ZCL: SwitchServer: OnInitialPress
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -362,7 +355,7 @@ tests:
"Operator operates switch (keep pressed for long time, e.g. 5 seconds)"
PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo_2530
@@ -388,7 +381,7 @@ tests:
- label: "Operator releases switch"
PICS: SWTCH.S.F01 && SWTCH.S.F02 && !SWTCH.S.F03
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -416,7 +409,7 @@ tests:
LongRelease events"
PICS: SWTCH.S.F01 && SWTCH.S.F03
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -425,7 +418,7 @@ tests:
[1659693098.031859][2530:2530] CHIP:-: The new position when the momentary switch starts to be pressed:1
[1659693098.031888][2530:2530] CHIP:ZCL: SwitchServer: OnInitialPress
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"LongPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -434,7 +427,7 @@ tests:
[1659693130.925064][2530:2530] CHIP:-: The new position when the momentary switch has been pressed for a long time:1
[1659693130.925313][2530:2530] CHIP:ZCL: SwitchServer: OnLongPress
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -443,7 +436,7 @@ tests:
[1659693174.709479][2530:2530] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
[1659693174.709539][2530:2530] CHIP:ZCL: SwitchServer: OnShortRelease
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"LongRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -546,7 +539,7 @@ tests:
MultiPressComplete events"
PICS: SWTCH.S.F01 && SWTCH.S.F04
verification: |
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"InitialPress","NewPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -555,7 +548,7 @@ tests:
[1659693098.031859][2530:2530] CHIP:-: The new position when the momentary switch starts to be pressed:1
[1659693098.031888][2530:2530] CHIP:ZCL: SwitchServer: OnInitialPress
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"ShortRelease","PreviousPosition":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -564,7 +557,7 @@ tests:
[1659694387.720237][2530:2530] CHIP:-: The the previous value of the CurrentPosition when the momentary switch has been released:1
[1659694387.720304][2530:2530] CHIP:ZCL: SwitchServer: OnShortRelease
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"MultiPressComplete","PreviousPosition":1,"TotalNumberOfPressesCounted":1}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -572,7 +565,7 @@ tests:
[1659694592.348389][2530:2530] CHIP:DMG: Endpoint 1, Cluster 0x0000_003B update version to ee5e772b
[1659694592.348481][2530:2530] CHIP:-: The new position when the momentary switch has been pressed in a multi-press sequence:1
- In Raspi platform to change the switch to second position use the below command, Pls use equivalent command on the respective DUT.open one more terminal on DUT side execute the echo command on that terminal.
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
echo "{"Name":"MultiPressOngoing","NewPosition":1,"CurrentNumberOfPressesCounted":2}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
@@ -877,6 +870,9 @@ tests:
[1659696223.568397][3981:3986] CHIP:TOO: }
+ On Raspi platform To trigger the event give the below command by opening an another terminal in DUT (Below is the example command developed in all-clusters-app to generate the event, Vendor Dut should have capability to generate this event)
+
+ echo "{"Name":"MultiPressOngoing","previousPosition":1,"CurrentNumberOfPressesCounted":3}" > /tmp/chip_all_clusters_fifo- (PID of DUT)
Please use Interactive mode to Verify the subscription of an event
Here the command to enter interactive mode:--
@@ -888,7 +884,7 @@ tests:
[1659695330.923283][3912:3918] CHIP:TOO: Priority: Info
[1659695330.923302][3912:3918] CHIP:TOO: Timestamp: 17754336
[1659695330.923326][3912:3918] CHIP:TOO: MultiPressComplete: {
- [1659695330.923346][3912:3918] CHIP:TOO: PrevioiusPosition: 1
+ [1659695330.923346][3912:3918] CHIP:TOO: PreviousPosition: 1
[1659695330.923366][3912:3918] CHIP:TOO: TotalNumberOfPressesCounted: 3
[1659695330.923385][3912:3918] CHIP:TOO: }
disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml b/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml
index 57f53c5fb9b412..7a302ef34271d6 100644
--- a/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_SWTCH_3_2.yaml
@@ -31,22 +31,16 @@ tests:
- label: "Note"
verification: |
- To Run the event test case we need to build event commands on DUT[All-cluster-ap] side.Below I mention the commands for how to build for linux arm64 it depends on the DUT what we use.I provided the link for build events.
-
- https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux#trigger-switch-events
-
-
-
-
- Here I provide cmmds for build on linux arm64
-
- 1. ./scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build
-
- 2../scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang build
-
- 3. ./out/linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang/chip-all-clusters-app-fuzzing
-
- 4. ./out/linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang/chip-all-clusters-app-fuzzing $(INPUT_FILE)
+ NOTE: https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux#readme
+ Events to be executed as following
+ 1. Compile app using below command in connectedhomeip folder
+ a. ./scripts/run_in_build_env.sh ./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-clang build
+ b. ./scripts/run_in_build_env.sh ./scripts/build/build_examples.py --target linux-arm64-all-clusters-no-ble-asan-libfuzzer-clang build
+ 2. Build respective app (all-clusters-app)
+ 3. Commission DUT to TH
+ 4. Open 2nd terminal of DUT and provide the below command to obtain PID of DUT
+ ps -aef|grep all-clusters-app
+ 5. Follow the Verification step below to generate the event in 2nd terminal of DUT
disabled: true
- label:
diff --git a/src/app/tests/suites/certification/Test_TC_TGTNAV_8_1.yaml b/src/app/tests/suites/certification/Test_TC_TGTNAV_8_1.yaml
index 3a11538f19f7b2..d28d8404bf0a1d 100644
--- a/src/app/tests/suites/certification/Test_TC_TGTNAV_8_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TGTNAV_8_1.yaml
@@ -21,12 +21,9 @@ config:
nodeId: 0x12344321
cluster: "Target Navigator"
endpoint: 1
- targetvalue1:
+ targetvalue:
type: int8u
defaultValue: 1
- targetvalue2:
- type: int8u
- defaultValue: 2
tests:
- label: "Wait for the commissioned device to be retrieved"
@@ -62,11 +59,11 @@ tests:
arguments:
values:
- name: "Target"
- value: targetvalue1
+ value: targetvalue
- label: "Reads the CurrentTarget attribute"
PICS: TGTNAV.S.A0001 && TGTNAV.S.C00.Rsp
command: "readAttribute"
attribute: "CurrentTarget"
response:
- value: targetvalue1
+ value: targetvalue
diff --git a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml
index e4101b19ecb7a3..f2dc3a06570cfa 100644
--- a/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TMP_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
index 82c8acae87f9e8..31d769b3f5f9be 100644
--- a/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TSTAT_1_1.yaml
@@ -39,6 +39,17 @@ tests:
constraints:
type: int16u
+ - label: "Read the global attribute: FeatureMap"
+ PICS:
+ "!TSTAT.S.F00 && !TSTAT.S.F01 && !TSTAT.S.F02 && !TSTAT.S.F03 &&
+ !TSTAT.S.F04 && !TSTAT.S.F05"
+ command: "readAttribute"
+ attribute: "FeatureMap"
+ response:
+ value: 0
+ constraints:
+ type: bitmap32
+
- label: "Read the global attribute: FeatureMap"
PICS:
TSTAT.S.F00 || TSTAT.S.F01 || TSTAT.S.F02 || TSTAT.S.F03 ||
diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml
index 5ee9d5d49fae27..90989264ca2dff 100644
--- a/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TSTAT_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
diff --git a/src/app/tests/suites/certification/Test_TC_TSTAT_3_2.yaml b/src/app/tests/suites/certification/Test_TC_TSTAT_3_2.yaml
index 1aaa744557356c..ab6f0e52bac81c 100644
--- a/src/app/tests/suites/certification/Test_TC_TSTAT_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TSTAT_3_2.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT increases the temperature by sending a SetpointRaiseLower command
to the Test Harness, with a valid Mode argument (0, 1 or 2) and a
diff --git a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml
index b1667296ad68a5..93899e3ed8eb66 100644
--- a/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_TSUIC_3_1.yaml
@@ -28,6 +28,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label:
"DUT reads all supported mandatory attributes from TH one at a time in
a manufacturer specific order"
diff --git a/src/app/tests/suites/certification/Test_TC_ULABEL_3_1.yaml b/src/app/tests/suites/certification/Test_TC_ULABEL_3_1.yaml
index 099a68415e1279..391fa07689121e 100644
--- a/src/app/tests/suites/certification/Test_TC_ULABEL_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ULABEL_3_1.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "DUT reads LabelList from the TH"
PICS: ULABEL.C.A0000
verification: |
diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml
index d1b9f4360ea558..ad1a9212f3c838 100644
--- a/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_WNCV_5_1.yaml
@@ -24,12 +24,17 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "Check Attribute defining the cluster Features"
verification: |
verification step to be updated.
disabled: true
- - label: "DUT reads the (65532) _FeatureMap_ attribute from T"
+ - label: "DUT reads the (65532) _FeatureMap_ attribute from TH"
PICS: WNCV.C.Afffc
verification: |
On TestHarnes (all-cluster-app) a received read of feature-map looks like this:
diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml
index 5a5ca6f749440f..7e077c22b70943 100644
--- a/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_WNCV_6_1.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "Check UpOrOpen command"
verification: |
verification step to be updated.
diff --git a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml b/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml
index 9140778f02ca5c..c2d60eb96c7982 100644
--- a/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_WNCV_7_1.yaml
@@ -24,6 +24,11 @@ config:
endpoint: 0
tests:
+ - label: "Note"
+ verification: |
+ For DUT as client test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+ disabled: true
+
- label: "Check GoToLiftPercentage command 50%"
verification: |
verification step to be updated.
diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values
index 67322305f85885..1e7cf4e8e128fa 100644
--- a/src/app/tests/suites/certification/ci-pics-values
+++ b/src/app/tests/suites/certification/ci-pics-values
@@ -1668,3 +1668,15 @@ MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Integer=1
MCORE.IDM.C.SubscribeRequest.Attribute.DataType_FloatingPoint=1
MCORE.IDM.C.SubscribeRequest.Attribute.DataType_List=1
MCORE.IDM.S.LargeData=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_Bool=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_String=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_UnsignedInteger=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_SignedInteger=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_Struct=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_FloatingPoint=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_List=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_OctetString=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_Enum=1
+MCORE.IDM.C.WriteRequest.Attribute.DataType_Bitmap=1
+MCORE.IDM.C.SubscribeRequest.Attribute.DataType_Bool=1
+MCORE.IDM.C.SubscribeRequest.MultipleAttributes=1
diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json
index bfa3a7e67cf84e..0dbf826cca2bee 100644
--- a/src/app/tests/suites/manualTests.json
+++ b/src/app/tests/suites/manualTests.json
@@ -245,8 +245,7 @@
"Test_TC_OCC_2_2",
"Test_TC_OCC_2_3",
"Test_TC_OCC_2_4",
- "Test_TC_OCC_3_1",
- "Test_TC_OCC_3_2"
+ "Test_TC_OCC_3_1"
],
"PressureMeasurement": ["Test_TC_PRS_3_1"],
"PowerSource": ["Test_TC_PS_2_2", "Test_TC_PS_3_1"],
diff --git a/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml
index f8c764d8e139c6..e4e92aee68ea0c 100644
--- a/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml
@@ -39,5 +39,12 @@ limitations under the License.
+
+ Configure a fault to be triggered randomly, with a given probability defined as a percentage
+
+
+
+
+
diff --git a/src/controller/CHIPDeviceController.h b/src/controller/CHIPDeviceController.h
index f5a4ddf281618a..62f97c0c30e80d 100644
--- a/src/controller/CHIPDeviceController.h
+++ b/src/controller/CHIPDeviceController.h
@@ -656,6 +656,11 @@ class DLL_EXPORT DeviceCommissioner : public DeviceController,
mDeviceAttestationVerifier = deviceAttestationVerifier;
}
+ Optional GetCommissioningParameters()
+ {
+ return mDefaultCommissioner == nullptr ? NullOptional : MakeOptional(mDefaultCommissioner->GetCommissioningParameters());
+ }
+
private:
DevicePairingDelegate * mPairingDelegate;
diff --git a/src/controller/ExampleOperationalCredentialsIssuer.cpp b/src/controller/ExampleOperationalCredentialsIssuer.cpp
index cc8cd8fbcdb404..9c0b376b13716c 100644
--- a/src/controller/ExampleOperationalCredentialsIssuer.cpp
+++ b/src/controller/ExampleOperationalCredentialsIssuer.cpp
@@ -39,6 +39,127 @@ using namespace Credentials;
using namespace Crypto;
using namespace TLV;
+namespace {
+
+enum CertType : uint8_t
+{
+ kRcac = 0,
+ kIcac = 1,
+ kNoc = 2
+};
+
+CHIP_ERROR IssueX509Cert(uint32_t now, uint32_t validity, ChipDN issuerDn, ChipDN desiredDn, CertType certType, bool maximizeSize,
+ const Crypto::P256PublicKey & subjectPublicKey, Crypto::P256Keypair & issuerKeypair,
+ MutableByteSpan & outX509Cert)
+{
+ constexpr size_t kDERCertDnEncodingOverhead = 11;
+ constexpr size_t kTLVCertDnEncodingOverhead = 3;
+ constexpr size_t kMaxCertPaddingLength = 150;
+ constexpr size_t kTLVDesiredSize = kMaxCHIPCertLength - 50;
+
+ Platform::ScopedMemoryBuffer derBuf;
+ ReturnErrorCodeIf(!derBuf.Alloc(kMaxDERCertLength), CHIP_ERROR_NO_MEMORY);
+ MutableByteSpan derSpan{ derBuf.Get(), kMaxDERCertLength };
+
+ int64_t serialNumber = 1;
+
+ switch (certType)
+ {
+ case CertType::kRcac: {
+ X509CertRequestParams rcacRequest = { serialNumber, now, now + validity, desiredDn, desiredDn };
+ ReturnErrorOnFailure(NewRootX509Cert(rcacRequest, issuerKeypair, derSpan));
+ break;
+ }
+ case CertType::kIcac: {
+ X509CertRequestParams icacRequest = { serialNumber, now, now + validity, desiredDn, issuerDn };
+ ReturnErrorOnFailure(NewICAX509Cert(icacRequest, subjectPublicKey, issuerKeypair, derSpan));
+ break;
+ }
+ case CertType::kNoc: {
+ X509CertRequestParams nocRequest = { serialNumber, now, now + validity, desiredDn, issuerDn };
+ ReturnErrorOnFailure(NewNodeOperationalX509Cert(nocRequest, subjectPublicKey, issuerKeypair, derSpan));
+ break;
+ }
+ default:
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (maximizeSize && (desiredDn.RDNCount() < CHIP_CONFIG_CERT_MAX_RDN_ATTRIBUTES))
+ {
+ Platform::ScopedMemoryBuffer paddedTlvBuf;
+ ReturnErrorCodeIf(!paddedTlvBuf.Alloc(kMaxCHIPCertLength + kMaxCertPaddingLength), CHIP_ERROR_NO_MEMORY);
+ MutableByteSpan paddedTlvSpan{ paddedTlvBuf.Get(), kMaxCHIPCertLength + kMaxCertPaddingLength };
+ ReturnErrorOnFailure(ConvertX509CertToChipCert(derSpan, paddedTlvSpan));
+
+ Platform::ScopedMemoryBuffer paddedDerBuf;
+ ReturnErrorCodeIf(!paddedDerBuf.Alloc(kMaxDERCertLength + kMaxCertPaddingLength), CHIP_ERROR_NO_MEMORY);
+ MutableByteSpan paddedDerSpan{ paddedDerBuf.Get(), kMaxDERCertLength + kMaxCertPaddingLength };
+
+ Platform::ScopedMemoryBuffer fillerBuf;
+ ReturnErrorCodeIf(!fillerBuf.Alloc(kMaxCertPaddingLength), CHIP_ERROR_NO_MEMORY);
+ memset(fillerBuf.Get(), 'A', kMaxCertPaddingLength);
+
+ int derPaddingLen = static_cast(kMaxDERCertLength - kDERCertDnEncodingOverhead - derSpan.size());
+ int tlvPaddingLen = static_cast(kTLVDesiredSize - kTLVCertDnEncodingOverhead - paddedTlvSpan.size());
+ if (certType == CertType::kRcac)
+ {
+ // For RCAC the issuer/subject DN are the same so padding will be present in both
+ derPaddingLen = (derPaddingLen - static_cast(kDERCertDnEncodingOverhead)) / 2;
+ tlvPaddingLen = (tlvPaddingLen - static_cast(kTLVCertDnEncodingOverhead)) / 2;
+ }
+
+ size_t paddingLen = 0;
+ if (derPaddingLen >= 1 && tlvPaddingLen >= 1)
+ {
+ paddingLen = std::min(static_cast(std::min(derPaddingLen, tlvPaddingLen)), kMaxCertPaddingLength);
+ }
+
+ for (; paddingLen > 0; paddingLen--)
+ {
+ paddedDerSpan = MutableByteSpan{ paddedDerBuf.Get(), kMaxDERCertLength + kMaxCertPaddingLength };
+ paddedTlvSpan = MutableByteSpan{ paddedTlvBuf.Get(), kMaxCHIPCertLength + kMaxCertPaddingLength };
+
+ ChipDN certDn = desiredDn;
+ // Fill the padding in the DomainNameQualifier DN
+ certDn.AddAttribute_DNQualifier(CharSpan(fillerBuf.Get(), paddingLen), false);
+
+ switch (certType)
+ {
+ case CertType::kRcac: {
+ X509CertRequestParams rcacRequest = { serialNumber, now, now + validity, certDn, certDn };
+ ReturnErrorOnFailure(NewRootX509Cert(rcacRequest, issuerKeypair, paddedDerSpan));
+ break;
+ }
+ case CertType::kIcac: {
+ X509CertRequestParams icacRequest = { serialNumber, now, now + validity, certDn, issuerDn };
+ ReturnErrorOnFailure(NewICAX509Cert(icacRequest, subjectPublicKey, issuerKeypair, paddedDerSpan));
+ break;
+ }
+ case CertType::kNoc: {
+ X509CertRequestParams nocRequest = { serialNumber, now, now + validity, certDn, issuerDn };
+ ReturnErrorOnFailure(NewNodeOperationalX509Cert(nocRequest, subjectPublicKey, issuerKeypair, paddedDerSpan));
+ break;
+ }
+ default:
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+
+ ReturnErrorOnFailure(ConvertX509CertToChipCert(paddedDerSpan, paddedTlvSpan));
+
+ ChipLogProgress(Controller, "Generated maximized certificate with %u DER bytes, %u TLV bytes",
+ static_cast(paddedDerSpan.size()), static_cast(paddedTlvSpan.size()));
+ if (paddedDerSpan.size() <= kMaxDERCertLength && paddedTlvSpan.size() <= kMaxCHIPCertLength)
+ {
+ return CopySpanToMutableSpan(paddedDerSpan, outX509Cert);
+ }
+ }
+ }
+
+ return CopySpanToMutableSpan(derSpan, outX509Cert);
+}
+
+} // namespace
+
CHIP_ERROR ExampleOperationalCredentialsIssuer::Initialize(PersistentStorageDelegate & storage)
{
using namespace ASN1;
@@ -122,6 +243,12 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChainAfterValidation(
uint16_t rcacBufLen = static_cast(std::min(rcac.size(), static_cast(UINT16_MAX)));
PERSISTENT_KEY_OP(mIndex, kOperationalCredentialsRootCertificateStorage, key,
err = mStorage->SyncGetKeyValue(key, rcac.data(), rcacBufLen));
+ // Always regenerate RCAC on maximally sized certs. The keys remain the same, so everything is fine.
+ if (mUseMaximallySizedCerts)
+ {
+ err = CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND;
+ }
+
if (err == CHIP_NO_ERROR)
{
uint64_t rcacId;
@@ -137,10 +264,14 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChainAfterValidation(
ReturnErrorOnFailure(rcac_dn.AddAttribute_MatterRCACId(mIssuerId));
ChipLogProgress(Controller, "Generating RCAC");
- X509CertRequestParams rcac_request = { 0, mNow, mNow + mValidity, rcac_dn, rcac_dn };
- ReturnErrorOnFailure(NewRootX509Cert(rcac_request, mIssuer, rcac));
-
+ ReturnErrorOnFailure(IssueX509Cert(mNow, mValidity, rcac_dn, rcac_dn, CertType::kRcac, mUseMaximallySizedCerts,
+ mIssuer.Pubkey(), mIssuer, rcac));
VerifyOrReturnError(CanCastTo(rcac.size()), CHIP_ERROR_INTERNAL);
+
+ // Re-extract DN based on final generated cert
+ rcac_dn = ChipDN{};
+ ReturnErrorOnFailure(ExtractSubjectDNFromX509Cert(rcac, rcac_dn));
+
PERSISTENT_KEY_OP(mIndex, kOperationalCredentialsRootCertificateStorage, key,
ReturnErrorOnFailure(mStorage->SyncSetKeyValue(key, rcac.data(), static_cast(rcac.size()))));
}
@@ -149,6 +280,11 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChainAfterValidation(
uint16_t icacBufLen = static_cast(std::min(icac.size(), static_cast(UINT16_MAX)));
PERSISTENT_KEY_OP(mIndex, kOperationalCredentialsIntermediateCertificateStorage, key,
err = mStorage->SyncGetKeyValue(key, icac.data(), icacBufLen));
+ // Always regenerate ICAC on maximally sized certs. The keys remain the same, so everything is fine.
+ if (mUseMaximallySizedCerts)
+ {
+ err = CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND;
+ }
if (err == CHIP_NO_ERROR)
{
uint64_t icacId;
@@ -164,10 +300,14 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChainAfterValidation(
ReturnErrorOnFailure(icac_dn.AddAttribute_MatterICACId(mIntermediateIssuerId));
ChipLogProgress(Controller, "Generating ICAC");
- X509CertRequestParams icac_request = { 0, mNow, mNow + mValidity, icac_dn, rcac_dn };
- ReturnErrorOnFailure(NewICAX509Cert(icac_request, mIntermediateIssuer.Pubkey(), mIssuer, icac));
-
+ ReturnErrorOnFailure(IssueX509Cert(mNow, mValidity, rcac_dn, icac_dn, CertType::kIcac, mUseMaximallySizedCerts,
+ mIntermediateIssuer.Pubkey(), mIssuer, icac));
VerifyOrReturnError(CanCastTo(icac.size()), CHIP_ERROR_INTERNAL);
+
+ // Re-extract DN based on final generated cert
+ icac_dn = ChipDN{};
+ ReturnErrorOnFailure(ExtractSubjectDNFromX509Cert(icac, icac_dn));
+
PERSISTENT_KEY_OP(mIndex, kOperationalCredentialsIntermediateCertificateStorage, key,
ReturnErrorOnFailure(mStorage->SyncSetKeyValue(key, icac.data(), static_cast(icac.size()))));
}
@@ -178,8 +318,8 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChainAfterValidation(
ReturnErrorOnFailure(noc_dn.AddCATs(cats));
ChipLogProgress(Controller, "Generating NOC");
- X509CertRequestParams noc_request = { 1, mNow, mNow + mValidity, noc_dn, icac_dn };
- return NewNodeOperationalX509Cert(noc_request, pubkey, mIntermediateIssuer, noc);
+ return IssueX509Cert(mNow, mValidity, icac_dn, noc_dn, CertType::kNoc, mUseMaximallySizedCerts, pubkey, mIntermediateIssuer,
+ noc);
}
CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChain(const ByteSpan & csrElements, const ByteSpan & csrNonce,
@@ -227,16 +367,16 @@ CHIP_ERROR ExampleOperationalCredentialsIssuer::GenerateNOCChain(const ByteSpan
ReturnErrorOnFailure(VerifyCertificateSigningRequest(csr.data(), csr.size(), pubkey));
chip::Platform::ScopedMemoryBuffer noc;
- ReturnErrorCodeIf(!noc.Alloc(kMaxCHIPDERCertLength), CHIP_ERROR_NO_MEMORY);
- MutableByteSpan nocSpan(noc.Get(), kMaxCHIPDERCertLength);
+ ReturnErrorCodeIf(!noc.Alloc(kMaxDERCertLength), CHIP_ERROR_NO_MEMORY);
+ MutableByteSpan nocSpan(noc.Get(), kMaxDERCertLength);
chip::Platform::ScopedMemoryBuffer icac;
- ReturnErrorCodeIf(!icac.Alloc(kMaxCHIPDERCertLength), CHIP_ERROR_NO_MEMORY);
- MutableByteSpan icacSpan(icac.Get(), kMaxCHIPDERCertLength);
+ ReturnErrorCodeIf(!icac.Alloc(kMaxDERCertLength), CHIP_ERROR_NO_MEMORY);
+ MutableByteSpan icacSpan(icac.Get(), kMaxDERCertLength);
chip::Platform::ScopedMemoryBuffer rcac;
- ReturnErrorCodeIf(!rcac.Alloc(kMaxCHIPDERCertLength), CHIP_ERROR_NO_MEMORY);
- MutableByteSpan rcacSpan(rcac.Get(), kMaxCHIPDERCertLength);
+ ReturnErrorCodeIf(!rcac.Alloc(kMaxDERCertLength), CHIP_ERROR_NO_MEMORY);
+ MutableByteSpan rcacSpan(rcac.Get(), kMaxDERCertLength);
ReturnErrorOnFailure(
GenerateNOCChainAfterValidation(assignedId, mNextFabricId, chip::kUndefinedCATs, pubkey, rcacSpan, icacSpan, nocSpan));
diff --git a/src/controller/ExampleOperationalCredentialsIssuer.h b/src/controller/ExampleOperationalCredentialsIssuer.h
index a85684cf6957e2..6e3b1e554d4288 100644
--- a/src/controller/ExampleOperationalCredentialsIssuer.h
+++ b/src/controller/ExampleOperationalCredentialsIssuer.h
@@ -65,6 +65,8 @@ class DLL_EXPORT ExampleOperationalCredentialsIssuer : public OperationalCredent
mNodeIdRequested = true;
}
+ void SetMaximallyLargeCertsUsed(bool areMaximallyLargeCertsUsed) { mUseMaximallySizedCerts = areMaximallyLargeCertsUsed; }
+
void SetFabricIdForNextNOCRequest(FabricId fabricId) override { mNextFabricId = fabricId; }
/**
@@ -108,8 +110,8 @@ class DLL_EXPORT ExampleOperationalCredentialsIssuer : public OperationalCredent
Crypto::P256Keypair mIssuer;
Crypto::P256Keypair mIntermediateIssuer;
bool mInitialized = false;
- uint32_t mIssuerId = 0;
- uint32_t mIntermediateIssuerId = 1;
+ uint32_t mIssuerId = 1;
+ uint32_t mIntermediateIssuerId = 2;
uint32_t mNow = 0;
// By default, let's set validity to 10 years
@@ -117,6 +119,7 @@ class DLL_EXPORT ExampleOperationalCredentialsIssuer : public OperationalCredent
NodeId mNextAvailableNodeId = 1;
PersistentStorageDelegate * mStorage = nullptr;
+ bool mUseMaximallySizedCerts = false;
NodeId mNextRequestedNodeId = 1;
FabricId mNextFabricId = 1;
diff --git a/src/controller/java/AndroidDeviceControllerWrapper.cpp b/src/controller/java/AndroidDeviceControllerWrapper.cpp
index 8b28896a701d44..ada814133734fc 100644
--- a/src/controller/java/AndroidDeviceControllerWrapper.cpp
+++ b/src/controller/java/AndroidDeviceControllerWrapper.cpp
@@ -425,7 +425,7 @@ void AndroidDeviceControllerWrapper::OnCommissioningStatusUpdate(PeerId peerId,
JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread();
jmethodID onCommissioningStatusUpdateMethod;
CHIP_ERROR err = JniReferences::GetInstance().FindMethod(env, mJavaObjectRef, "onCommissioningStatusUpdate",
- "(JLjava/lang/string;I)V", &onCommissioningStatusUpdateMethod);
+ "(JLjava/lang/String;I)V", &onCommissioningStatusUpdateMethod);
VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Controller, "Error finding Java method: %" CHIP_ERROR_FORMAT, err.Format()));
UtfString jStageCompleted(env, StageToString(stageCompleted));
diff --git a/src/controller/java/AndroidOperationalCredentialsIssuer.cpp b/src/controller/java/AndroidOperationalCredentialsIssuer.cpp
index 59872b01486b52..e9808409da5d3c 100644
--- a/src/controller/java/AndroidOperationalCredentialsIssuer.cpp
+++ b/src/controller/java/AndroidOperationalCredentialsIssuer.cpp
@@ -378,7 +378,7 @@ CHIP_ERROR AndroidOperationalCredentialsIssuer::LocalGenerateNOCChain(const Byte
return CHIP_NO_ERROR;
}
-CHIP_ERROR N2J_CSRInfo(JNIEnv * env, jbyteArray nonce, jbyteArray elements, jbyteArray elementsSignature, jbyteArray csr,
+CHIP_ERROR N2J_CSRInfo(JNIEnv * env, jbyteArray nonce, jbyteArray elements, jbyteArray csrElementsSignature, jbyteArray csr,
jobject & outCSRInfo)
{
CHIP_ERROR err = CHIP_NO_ERROR;
@@ -393,7 +393,7 @@ CHIP_ERROR N2J_CSRInfo(JNIEnv * env, jbyteArray nonce, jbyteArray elements, jbyt
constructor = env->GetMethodID(infoClass, "", "([B[B[B[B)V");
VerifyOrExit(constructor != nullptr, err = CHIP_JNI_ERROR_METHOD_NOT_FOUND);
- outCSRInfo = (jobject) env->NewObject(infoClass, constructor, nonce, elements, elementsSignature, csr);
+ outCSRInfo = (jobject) env->NewObject(infoClass, constructor, nonce, elements, csrElementsSignature, csr);
VerifyOrExit(!env->ExceptionCheck(), err = CHIP_JNI_ERROR_EXCEPTION_THROWN);
exit:
diff --git a/src/controller/java/src/chip/devicecontroller/ChipDeviceController.java b/src/controller/java/src/chip/devicecontroller/ChipDeviceController.java
index 97627b56c4ce1f..47c87b364143e3 100644
--- a/src/controller/java/src/chip/devicecontroller/ChipDeviceController.java
+++ b/src/controller/java/src/chip/devicecontroller/ChipDeviceController.java
@@ -44,12 +44,11 @@ public static void loadJni() {
return;
}
- /** Returns a new {@link ChipDeviceController} with default parameters. */
- public ChipDeviceController() {
- this(ControllerParams.newBuilder().build());
- }
-
- /** Returns a new {@link ChipDeviceController} with the specified parameters. */
+ /**
+ * Returns a new {@link ChipDeviceController} with the specified parameters. you must set a vendor
+ * ID, ControllerParams.newBuilder().setControllerVendorId(0xFFF4).build() 0xFFF4 is a test vendor
+ * ID
+ */
public ChipDeviceController(ControllerParams params) {
deviceControllerPtr = newDeviceController(params);
}
diff --git a/src/controller/java/src/chip/devicecontroller/ControllerParams.java b/src/controller/java/src/chip/devicecontroller/ControllerParams.java
index 42fd04f42907de..b0413cf4a8abf0 100644
--- a/src/controller/java/src/chip/devicecontroller/ControllerParams.java
+++ b/src/controller/java/src/chip/devicecontroller/ControllerParams.java
@@ -86,7 +86,8 @@ public static Builder newBuilder() {
/**
* Returns parameters which uses the provided {@code operationalKeyConfig} as its operating
- * credentials.
+ * credentials. You must set a vendor ID, 0xFFF4 is a test vendor ID
+ * ControllerParams.newBuilder().setControllerVendorId(0xFFF4).build()
*/
public static Builder newBuilder(OperationalKeyConfig operationalKeyConfig) {
return newBuilder()
diff --git a/src/controller/python/BUILD.gn b/src/controller/python/BUILD.gn
index ab84ff86c864cf..21897af175f92d 100644
--- a/src/controller/python/BUILD.gn
+++ b/src/controller/python/BUILD.gn
@@ -185,6 +185,7 @@ chip_python_wheel_action("chip-core") {
{
src_dir = "."
sources = [
+ "chip/CertificateAuthority.py",
"chip/ChipBleBase.py",
"chip/ChipBleUtility.py",
"chip/ChipBluezMgr.py",
diff --git a/src/controller/python/ChipDeviceController-ScriptBinding.cpp b/src/controller/python/ChipDeviceController-ScriptBinding.cpp
index 7a4189a52680d2..6e74ded2cd8a32 100644
--- a/src/controller/python/ChipDeviceController-ScriptBinding.cpp
+++ b/src/controller/python/ChipDeviceController-ScriptBinding.cpp
@@ -100,7 +100,6 @@ chip::Controller::CommissioningParameters sCommissioningParameters;
chip::Controller::ScriptDevicePairingDelegate sPairingDelegate;
chip::Controller::ScriptPairingDeviceDiscoveryDelegate sPairingDeviceDiscoveryDelegate;
-chip::Controller::Python::StorageAdapter * sStorageAdapter = nullptr;
chip::Credentials::GroupDataProviderImpl sGroupDataProvider;
chip::Credentials::PersistentStorageOpCertStore sPersistentStorageOpCertStore;
@@ -111,7 +110,7 @@ chip::NodeId kDefaultLocalDeviceId = chip::kTestControllerNodeId;
chip::NodeId kRemoteDeviceId = chip::kTestDeviceNodeId;
extern "C" {
-ChipError::StorageType pychip_DeviceController_StackInit();
+ChipError::StorageType pychip_DeviceController_StackInit(Controller::Python::StorageAdapter * storageAdapter);
ChipError::StorageType pychip_DeviceController_StackShutdown();
ChipError::StorageType pychip_DeviceController_NewDeviceController(chip::Controller::DeviceCommissioner ** outDevCtrl,
@@ -205,43 +204,40 @@ chip::ChipError::StorageType pychip_InteractionModel_ShutdownSubscription(Subscr
//
// Storage
//
-void pychip_Storage_InitializeStorageAdapter(chip::Controller::Python::PyObject * context,
- chip::Controller::Python::SyncSetKeyValueCb setCb,
- chip::Controller::Python::SetGetKeyValueCb getCb,
- chip::Controller::Python::SyncDeleteKeyValueCb deleteCb);
-void pychip_Storage_ShutdownAdapter();
+void * pychip_Storage_InitializeStorageAdapter(chip::Controller::Python::PyObject * context,
+ chip::Controller::Python::SyncSetKeyValueCb setCb,
+ chip::Controller::Python::SetGetKeyValueCb getCb,
+ chip::Controller::Python::SyncDeleteKeyValueCb deleteCb);
+void pychip_Storage_ShutdownAdapter(chip::Controller::Python::StorageAdapter * storageAdapter);
}
-void pychip_Storage_InitializeStorageAdapter(chip::Controller::Python::PyObject * context,
- chip::Controller::Python::SyncSetKeyValueCb setCb,
- chip::Controller::Python::SetGetKeyValueCb getCb,
- chip::Controller::Python::SyncDeleteKeyValueCb deleteCb)
+void * pychip_Storage_InitializeStorageAdapter(chip::Controller::Python::PyObject * context,
+ chip::Controller::Python::SyncSetKeyValueCb setCb,
+ chip::Controller::Python::SetGetKeyValueCb getCb,
+ chip::Controller::Python::SyncDeleteKeyValueCb deleteCb)
{
- sStorageAdapter = new chip::Controller::Python::StorageAdapter(context, setCb, getCb, deleteCb);
+ auto ptr = new chip::Controller::Python::StorageAdapter(context, setCb, getCb, deleteCb);
+ return ptr;
}
-void pychip_Storage_ShutdownAdapter()
+void pychip_Storage_ShutdownAdapter(chip::Controller::Python::StorageAdapter * storageAdapter)
{
- delete sStorageAdapter;
+ delete storageAdapter;
}
-chip::Controller::Python::StorageAdapter * pychip_Storage_GetStorageAdapter()
+ChipError::StorageType pychip_DeviceController_StackInit(Controller::Python::StorageAdapter * storageAdapter)
{
- return sStorageAdapter;
-}
-
-ChipError::StorageType pychip_DeviceController_StackInit()
-{
- VerifyOrDie(sStorageAdapter != nullptr);
+ VerifyOrDie(storageAdapter != nullptr);
FactoryInitParams factoryParams;
- factoryParams.fabricIndependentStorage = sStorageAdapter;
- sGroupDataProvider.SetStorageDelegate(sStorageAdapter);
+ factoryParams.fabricIndependentStorage = storageAdapter;
+
+ sGroupDataProvider.SetStorageDelegate(storageAdapter);
ReturnErrorOnFailure(sGroupDataProvider.Init().AsInteger());
factoryParams.groupDataProvider = &sGroupDataProvider;
- ReturnErrorOnFailure(sPersistentStorageOpCertStore.Init(sStorageAdapter).AsInteger());
+ ReturnErrorOnFailure(sPersistentStorageOpCertStore.Init(storageAdapter).AsInteger());
factoryParams.opCertStore = &sPersistentStorageOpCertStore;
factoryParams.enableServerInteractions = true;
diff --git a/src/controller/python/OpCredsBinding.cpp b/src/controller/python/OpCredsBinding.cpp
index a17f726a314bc4..cb714ae7385fc3 100644
--- a/src/controller/python/OpCredsBinding.cpp
+++ b/src/controller/python/OpCredsBinding.cpp
@@ -77,6 +77,8 @@ class OperationalCredentialsAdapter : public OperationalCredentialsDelegate
return mExampleOpCredsIssuer.GenerateNOCChainAfterValidation(nodeId, fabricId, cats, pubKey, rcac, icac, noc);
}
+ void SetMaximallyLargeCertsUsed(bool enabled) { mExampleOpCredsIssuer.SetMaximallyLargeCertsUsed(enabled); }
+
private:
CHIP_ERROR GenerateNOCChain(const ByteSpan & csrElements, const ByteSpan & csrNonce, const ByteSpan & attestationSignature,
const ByteSpan & attestationChallenge, const ByteSpan & DAC, const ByteSpan & PAI,
@@ -97,7 +99,6 @@ class OperationalCredentialsAdapter : public OperationalCredentialsDelegate
} // namespace Controller
} // namespace chip
-extern chip::Controller::Python::StorageAdapter * pychip_Storage_GetStorageAdapter();
extern chip::Credentials::GroupDataProviderImpl sGroupDataProvider;
extern chip::Controller::ScriptDevicePairingDelegate sPairingDelegate;
@@ -291,17 +292,13 @@ struct OpCredsContext
void * mPyContext;
};
-void * pychip_OpCreds_InitializeDelegate(void * pyContext, uint32_t fabricCredentialsIndex)
+void * pychip_OpCreds_InitializeDelegate(void * pyContext, uint32_t fabricCredentialsIndex,
+ Controller::Python::StorageAdapter * storageAdapter)
{
auto context = Platform::MakeUnique();
context->mAdapter = Platform::MakeUnique(fabricCredentialsIndex);
- if (pychip_Storage_GetStorageAdapter() == nullptr)
- {
- return nullptr;
- }
-
- if (context->mAdapter->Initialize(*pychip_Storage_GetStorageAdapter()) != CHIP_NO_ERROR)
+ if (context->mAdapter->Initialize(*storageAdapter) != CHIP_NO_ERROR)
{
return nullptr;
}
@@ -326,7 +323,8 @@ void pychip_OnCommissioningStatusUpdate(chip::PeerId peerId, chip::Controller::C
ChipError::StorageType pychip_OpCreds_AllocateController(OpCredsContext * context,
chip::Controller::DeviceCommissioner ** outDevCtrl, FabricId fabricId,
chip::NodeId nodeId, chip::VendorId adminVendorId,
- const char * paaTrustStorePath, bool useTestCommissioner)
+ const char * paaTrustStorePath, bool useTestCommissioner,
+ CASEAuthTag * caseAuthTags, uint32_t caseAuthTagLen)
{
ChipLogDetail(Controller, "Creating New Device Controller");
@@ -339,6 +337,7 @@ ChipError::StorageType pychip_OpCreds_AllocateController(OpCredsContext * contex
{
paaTrustStorePath = "./credentials/development/paa-root-certs";
}
+
ChipLogProgress(Support, "Using device attestation PAA trust store path %s.", paaTrustStorePath);
// Initialize device attestation verifier
@@ -361,8 +360,18 @@ ChipError::StorageType pychip_OpCreds_AllocateController(OpCredsContext * contex
ReturnErrorCodeIf(!rcac.Alloc(Controller::kMaxCHIPDERCertLength), CHIP_ERROR_NO_MEMORY.AsInteger());
MutableByteSpan rcacSpan(rcac.Get(), Controller::kMaxCHIPDERCertLength);
- err = context->mAdapter->GenerateNOCChain(nodeId, fabricId, chip::kUndefinedCATs, ephemeralKey.Pubkey(), rcacSpan, icacSpan,
- nocSpan);
+ CATValues catValues;
+
+ if (caseAuthTagLen > kMaxSubjectCATAttributeCount)
+ {
+ ChipLogError(Controller, "Too many of CASE Tags (%u) exceeds kMaxSubjectCATAttributeCount",
+ static_cast(caseAuthTagLen));
+ return CHIP_ERROR_INVALID_ARGUMENT.AsInteger();
+ }
+
+ memcpy(catValues.values.data(), caseAuthTags, caseAuthTagLen * sizeof(CASEAuthTag));
+
+ err = context->mAdapter->GenerateNOCChain(nodeId, fabricId, catValues, ephemeralKey.Pubkey(), rcacSpan, icacSpan, nocSpan);
VerifyOrReturnError(err == CHIP_NO_ERROR, err.AsInteger());
Controller::SetupParams initParams;
@@ -408,6 +417,15 @@ ChipError::StorageType pychip_OpCreds_AllocateController(OpCredsContext * contex
return CHIP_NO_ERROR.AsInteger();
}
+ChipError::StorageType pychip_OpCreds_SetMaximallyLargeCertsUsed(OpCredsContext * context, bool enabled)
+{
+ VerifyOrReturnError(context != nullptr && context->mAdapter != nullptr, CHIP_ERROR_INCORRECT_STATE.AsInteger());
+
+ context->mAdapter->SetMaximallyLargeCertsUsed(enabled);
+
+ return CHIP_NO_ERROR.AsInteger();
+}
+
void pychip_OpCreds_FreeDelegate(OpCredsContext * context)
{
Platform::Delete(context);
diff --git a/src/controller/python/chip/CertificateAuthority.py b/src/controller/python/chip/CertificateAuthority.py
new file mode 100644
index 00000000000000..7f40f0cd016100
--- /dev/null
+++ b/src/controller/python/chip/CertificateAuthority.py
@@ -0,0 +1,311 @@
+#
+# Copyright (c) 2021 Project CHIP Authors
+# All rights reserved.
+#
+# 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.
+#
+
+# Needed to use types in type hints before they are fully defined.
+from __future__ import annotations
+
+import ctypes
+from dataclasses import dataclass, field
+from typing import *
+from ctypes import *
+from rich.pretty import pprint
+import json
+import logging
+import builtins
+import base64
+import chip.exceptions
+from chip import ChipDeviceCtrl
+from chip import ChipStack
+from chip import FabricAdmin
+from chip.storage import PersistentStorage
+
+
+class CertificateAuthority:
+ ''' This represents an operational Root Certificate Authority (CA) with a root key key pair with associated public key (i.e "Root PK") . This manages
+ a set of FabricAdmin objects, each administering a fabric identified by a unique FabricId scoped to it.
+
+ Each CertificateAuthority instance is tied to a 'CA index' that is used to look-up the list of fabrics already setup previously
+ in the provided PersistentStorage object.
+
+ >> C++ Binding Details
+
+ Each CertificateAuthority instance is associated with a single instance of the OperationalCredentialsAdapter. This adapter instance implements
+ the OperationalCredentialsDelegate and is meant to provide a Python adapter to the functions in that delegate. It relies on the in-built
+ ExampleOperationalCredentialsIssuer to then generate certificate material for the CA. This instance also uses the 'CA index' to
+ store/look-up the associated credential material from the provided PersistentStorage object.
+ '''
+ @classmethod
+ def _Handle(cls):
+ return chip.native.GetLibraryHandle()
+
+ @classmethod
+ def logger(cls):
+ return logging.getLogger('CertificateAuthority')
+
+ def __init__(self, chipStack: ChipStack.ChipStack, caIndex: int, persistentStorage: PersistentStorage = None):
+ ''' Initializes the CertificateAuthority. This will set-up the associated C++ OperationalCredentialsAdapter
+ as well.
+
+ Arguments:
+ chipStack: A reference to a chip.ChipStack object.
+ caIndex: An index used to look-up details about stored credential material and fabrics from persistent storage.
+ persistentStorage: An optional reference to a PersistentStorage object. If one is provided, it will pick that over
+ the default PersistentStorage object retrieved from the chipStack.
+ '''
+ self.logger().warning(f"New CertificateAuthority at index {caIndex}")
+
+ self._chipStack = chipStack
+ self._caIndex = caIndex
+
+ self._Handle().pychip_OpCreds_InitializeDelegate.restype = c_void_p
+ self._Handle().pychip_OpCreds_InitializeDelegate.argtypes = [ctypes.py_object, ctypes.c_uint32, ctypes.c_void_p]
+
+ self._Handle().pychip_OpCreds_SetMaximallyLargeCertsUsed.restype = c_uint32
+ self._Handle().pychip_OpCreds_SetMaximallyLargeCertsUsed.argtypes = [ctypes.c_void_p, ctypes.c_bool]
+
+ if (persistentStorage is None):
+ persistentStorage = self._chipStack.GetStorageManager()
+
+ self._persistentStorage = persistentStorage
+ self._maximizeCertChains = False
+
+ self._closure = self._chipStack.Call(
+ lambda: self._Handle().pychip_OpCreds_InitializeDelegate(
+ ctypes.py_object(self), ctypes.c_uint32(self._caIndex), self._persistentStorage.GetSdkStorageObject())
+ )
+
+ if (self._closure is None):
+ raise ValueError("Encountered error initializing OpCreds adapter")
+
+ self._isActive = True
+ self._activeAdmins = []
+
+ def LoadFabricAdminsFromStorage(self):
+ ''' If FabricAdmins had been setup previously, this re-creates them using information from persistent storage.
+ Otherwise, it initializes the REPL keys in persistent storage to sane defaults. This includes a top-level
+ key identifying the CA (using the associated CA Index) initialized to an empty list.
+
+ This expects a 'caList' key to be present in the REPL config.
+
+ Each FabricAdmin that is added there-after will insert a dictionary item into that list containing
+ 'fabricId' and 'vendorId' keys.
+ '''
+ if (not(self._isActive)):
+ raise RuntimeError("Object isn't active")
+
+ self.logger().warning("Loading fabric admins from storage...")
+
+ caList = self._persistentStorage.GetReplKey(key='caList')
+ if (str(self._caIndex) not in caList):
+ caList[str(self._caIndex)] = []
+ self._persistentStorage.SetReplKey(key='caList', value=caList)
+
+ fabricAdminMetadataList = self._persistentStorage.GetReplKey(key='caList')[str(self._caIndex)]
+ for adminMetadata in fabricAdminMetadataList:
+ self.NewFabricAdmin(vendorId=int(adminMetadata['vendorId']), fabricId=int(adminMetadata['fabricId']))
+
+ def NewFabricAdmin(self, vendorId: int, fabricId: int):
+ ''' Creates a new FabricAdmin object initialized with the provided vendorId and fabricId values.
+
+ This will update the REPL keys in persistent storage IF a 'caList' key is present. If it isn't,
+ will avoid making any updates.
+ '''
+ if (not(self._isActive)):
+ raise RuntimeError(
+ f"CertificateAuthority object was previously shutdown and is no longer valid!")
+
+ if (vendorId is None or fabricId is None):
+ raise ValueError(f"Invalid values for fabricId and vendorId")
+
+ for existingAdmin in self._activeAdmins:
+ if (existingAdmin.fabricId == fabricId):
+ raise ValueError(f"Provided fabricId of {fabricId} collides with an existing FabricAdmin instance!")
+
+ fabricAdmin = FabricAdmin.FabricAdmin(self, vendorId=vendorId, fabricId=fabricId)
+
+ caList = self._persistentStorage.GetReplKey('caList')
+ if (caList is not None):
+ replFabricEntry = {'fabricId': fabricId, 'vendorId': vendorId}
+
+ if (replFabricEntry not in caList[str(self._caIndex)]):
+ caList[str(self._caIndex)].append(replFabricEntry)
+
+ self._persistentStorage.SetReplKey(key='caList', value=caList)
+
+ self._activeAdmins.append(fabricAdmin)
+
+ return fabricAdmin
+
+ def Shutdown(self):
+ ''' Shuts down all active FabricAdmin objects managed by this CertificateAuthority before
+ shutting itself down.
+
+ You cannot interact with this object there-after.
+ '''
+ if (self._isActive):
+ for admin in self._activeAdmins:
+ admin.Shutdown()
+
+ self._activeAdmins = []
+ self._Handle().pychip_OpCreds_FreeDelegate.argtypes = [ctypes.c_void_p]
+ self._chipStack.Call(
+ lambda: self._Handle().pychip_OpCreds_FreeDelegate(
+ ctypes.c_void_p(self._closure))
+ )
+
+ self._isActive = False
+
+ def GetOpCredsContext(self):
+ ''' Returns a pointer to the underlying C++ OperationalCredentialsAdapter.
+ '''
+ if (not(self._isActive)):
+ raise RuntimeError("Object isn't active")
+
+ return self._closure
+
+ @property
+ def caIndex(self) -> int:
+ return self._caIndex
+
+ @property
+ def adminList(self) -> list[FabricAdmin.FabricAdmin]:
+ return self._activeAdmins
+
+ @property
+ def maximizeCertChains(self) -> bool:
+ return self._maximizeCertChains
+
+ @maximizeCertChains.setter
+ def maximizeCertChains(self, enabled: bool):
+ res = self._chipStack.Call(
+ lambda: self._Handle().pychip_OpCreds_SetMaximallyLargeCertsUsed(ctypes.c_void_p(self._closure), ctypes.c_bool(enabled))
+ )
+
+ if res != 0:
+ raise self._chipStack.ErrorToException(res)
+
+ self._maximizeCertChains = enabled
+
+ def __del__(self):
+ self.Shutdown()
+
+
+class CertificateAuthorityManager:
+ ''' Manages a set of CertificateAuthority instances.
+ '''
+ @classmethod
+ def _Handle(cls):
+ return chip.native.GetLibraryHandle()
+
+ @classmethod
+ def logger(cls):
+ return logging.getLogger('CertificateAuthorityManager')
+
+ def __init__(self, chipStack: ChipStack.ChipStack, persistentStorage: PersistentStorage = None):
+ ''' Initializes the manager.
+
+ chipStack: Reference to a chip.ChipStack object that is used to initialize
+ CertificateAuthority instances.
+
+ persistentStorage: If provided, over-rides the default instance in the provided chipStack
+ when initializing CertificateAuthority instances.
+ '''
+ self._activeCaIndexList = []
+ self._chipStack = chipStack
+
+ if (persistentStorage is None):
+ persistentStorage = self._chipStack.GetStorageManager()
+
+ self._persistentStorage = persistentStorage
+ self._activeCaList = []
+ self._isActive = True
+
+ def _AllocateNextCaIndex(self):
+ ''' Allocate the next un-used CA index.
+ '''
+ nextCaIndex = 1
+ for ca in self._activeCaList:
+ nextCaIndex = ca.caIndex + 1
+ return nextCaIndex
+
+ def LoadAuthoritiesFromStorage(self):
+ ''' Loads any existing CertificateAuthority instances present in persistent storage.
+ If the 'caList' key is not present in the REPL config, it will create one.
+ '''
+ if (not(self._isActive)):
+ raise RuntimeError("Object is not active")
+
+ self.logger().warning("Loading certificate authorities from storage...")
+
+ #
+ # Persist details to storage (read modify write).
+ #
+ caList = self._persistentStorage.GetReplKey('caList')
+ if (caList is None):
+ caList = {}
+
+ for caIndex in caList:
+ ca = self.NewCertificateAuthority(int(caIndex))
+ ca.LoadFabricAdminsFromStorage()
+
+ def NewCertificateAuthority(self, caIndex: int = None, maximizeCertChains: bool = False):
+ ''' Creates a new CertificateAuthority instance with the provided CA Index and the PersistentStorage
+ instance previously setup in the constructor.
+
+ This will write to the REPL keys in persistent storage to setup an empty list for the 'CA Index'
+ item.
+ '''
+ if (not(self._isActive)):
+ raise RuntimeError("Object is not active")
+
+ if (caIndex is None):
+ caIndex = self._AllocateNextCaIndex()
+
+ #
+ # Persist details to storage (read modify write).
+ #
+ caList = self._persistentStorage.GetReplKey('caList')
+ if (caList is None):
+ caList = {}
+
+ if (str(caIndex) not in caList):
+ caList[str(caIndex)] = []
+ self._persistentStorage.SetReplKey(key='caList', value=caList)
+
+ ca = CertificateAuthority(chipStack=self._chipStack, caIndex=caIndex, persistentStorage=self._persistentStorage)
+ ca.maximizeCertChains = maximizeCertChains
+ self._activeCaList.append(ca)
+
+ return ca
+
+ def Shutdown(self):
+ ''' Shuts down all active CertificateAuthority instances tracked by this manager, before shutting itself down.
+
+ You cannot interact with this object there-after.
+ '''
+ for ca in self._activeCaList:
+ ca.Shutdown()
+
+ self._activeCaList = []
+ self._isActive = False
+
+ @property
+ def activeCaList(self) -> List[CertificateAuthority]:
+ return self._activeCaList
+
+ def __del__(self):
+ self.Shutdown()
diff --git a/src/controller/python/chip/ChipDeviceCtrl.py b/src/controller/python/chip/ChipDeviceCtrl.py
index 30064a1695ace7..8e11f27a953b16 100644
--- a/src/controller/python/chip/ChipDeviceCtrl.py
+++ b/src/controller/python/chip/ChipDeviceCtrl.py
@@ -157,7 +157,7 @@ class DiscoveryFilterType(enum.IntEnum):
class ChipDeviceController():
activeList = set()
- def __init__(self, opCredsContext: ctypes.c_void_p, fabricId: int, nodeId: int, adminVendorId: int, paaTrustStorePath: str = "", useTestCommissioner: bool = False, fabricAdmin: FabricAdmin = None, name: str = None):
+ def __init__(self, opCredsContext: ctypes.c_void_p, fabricId: int, nodeId: int, adminVendorId: int, catTags: typing.List[int] = [], paaTrustStorePath: str = "", useTestCommissioner: bool = False, fabricAdmin: FabricAdmin = None, name: str = None):
self.state = DCState.NOT_INITIALIZED
self.devCtrl = None
self._ChipStack = builtins.chipStack
@@ -169,9 +169,18 @@ def __init__(self, opCredsContext: ctypes.c_void_p, fabricId: int, nodeId: int,
devCtrl = c_void_p(None)
+ c_catTags = (c_uint32 * len(catTags))()
+
+ for i, item in enumerate(catTags):
+ c_catTags[i] = item
+
+ self._dmLib.pychip_OpCreds_AllocateController.argtypes = [c_void_p, POINTER(
+ c_void_p), c_uint64, c_uint64, c_uint16, c_char_p, c_bool, POINTER(c_uint32), c_uint32]
+ self._dmLib.pychip_OpCreds_AllocateController.restype = c_uint32
+
res = self._ChipStack.Call(
- lambda: self._dmLib.pychip_OpCreds_AllocateController(ctypes.c_void_p(
- opCredsContext), pointer(devCtrl), fabricId, nodeId, adminVendorId, ctypes.c_char_p(None if len(paaTrustStorePath) == 0 else str.encode(paaTrustStorePath)), useTestCommissioner)
+ lambda: self._dmLib.pychip_OpCreds_AllocateController(c_void_p(
+ opCredsContext), pointer(devCtrl), fabricId, nodeId, adminVendorId, c_char_p(None if len(paaTrustStorePath) == 0 else str.encode(paaTrustStorePath)), useTestCommissioner, c_catTags, len(catTags))
)
if res != 0:
@@ -181,10 +190,10 @@ def __init__(self, opCredsContext: ctypes.c_void_p, fabricId: int, nodeId: int,
self._fabricAdmin = fabricAdmin
self._fabricId = fabricId
self._nodeId = nodeId
- self._adminIndex = fabricAdmin.adminIndex
+ self._caIndex = fabricAdmin.caIndex
if name is None:
- self._name = "adminIndex(%x)/fabricId(0x%016X)/nodeId(0x%016X)" % (fabricAdmin.adminIndex, fabricId, nodeId)
+ self._name = "caIndex(%x)/fabricId(0x%016X)/nodeId(0x%016X)" % (fabricAdmin.caIndex, fabricId, nodeId)
else:
self._name = name
@@ -233,7 +242,7 @@ def HandlePASEEstablishmentComplete(err):
self.devCtrl, self.cbHandleCommissioningCompleteFunct)
self.state = DCState.IDLE
- self.isActive = True
+ self._isActive = True
# Validate FabricID/NodeID followed from NOC Chain
self._fabricId = self.GetFabricIdInternal()
@@ -249,17 +258,15 @@ def fabricAdmin(self) -> FabricAdmin:
@property
def nodeId(self) -> int:
- self.CheckIsActive()
return self._nodeId
@property
def fabricId(self) -> int:
- self.CheckIsActive()
return self._fabricId
@property
- def adminIndex(self) -> int:
- return self._adminIndex
+ def caIndex(self) -> int:
+ return self._caIndex
@property
def name(self) -> str:
@@ -269,11 +276,15 @@ def name(self) -> str:
def name(self, new_name: str):
self._name = new_name
+ @property
+ def isActive(self) -> bool:
+ return self._isActive
+
def Shutdown(self):
''' Shuts down this controller and reclaims any used resources, including the bound
C++ constructor instance in the SDK.
'''
- if (self.isActive):
+ if (self._isActive):
if self.devCtrl != None:
self._ChipStack.Call(
lambda: self._dmLib.pychip_DeviceController_DeleteDeviceController(
@@ -282,7 +293,7 @@ def Shutdown(self):
self.devCtrl = None
ChipDeviceController.activeList.remove(self)
- self.isActive = False
+ self._isActive = False
def ShutdownAll():
''' Shut down all active controllers and reclaim any used resources.
@@ -304,7 +315,7 @@ def ShutdownAll():
ChipDeviceController.activeList.clear()
def CheckIsActive(self):
- if (not self.isActive):
+ if (not self._isActive):
raise RuntimeError(
"DeviceCtrl instance was already shutdown previously!")
diff --git a/src/controller/python/chip/ChipReplStartup.py b/src/controller/python/chip/ChipReplStartup.py
index cb38cc37032c92..519c292ba9d9d8 100644
--- a/src/controller/python/chip/ChipReplStartup.py
+++ b/src/controller/python/chip/ChipReplStartup.py
@@ -12,6 +12,7 @@
import argparse
import builtins
import chip.FabricAdmin
+import chip.CertificateAuthority
import chip.native
from chip.utils import CommissioningBuildingBlocks
import atexit
@@ -19,60 +20,6 @@
_fabricAdmins = None
-def LoadFabricAdmins():
- global _fabricAdmins
-
- #
- # Shutdown any fabric admins we had before as well as active controllers. This ensures we
- # relinquish some resources if this is called multiple times (e.g in a Jupyter notebook)
- #
- chip.FabricAdmin.FabricAdmin.ShutdownAll()
- ChipDeviceCtrl.ChipDeviceController.ShutdownAll()
-
- _fabricAdmins = []
- storageMgr = builtins.chipStack.GetStorageManager()
-
- console = Console()
-
- try:
- adminList = storageMgr.GetReplKey('fabricAdmins')
- except KeyError:
- console.print(
- "\n[purple]No previous fabric admins discovered in persistent storage - creating a new one...")
-
- #
- # Initialite a FabricAdmin with a VendorID of TestVendor1 (0xfff1)
- #
- _fabricAdmins.append(chip.FabricAdmin.FabricAdmin(0XFFF1))
- return _fabricAdmins
-
- console.print('\n')
-
- for k in adminList:
- console.print(
- f"[purple]Restoring FabricAdmin from storage to manage FabricId {adminList[k]['fabricId']}, AdminIndex {k}...")
- _fabricAdmins.append(chip.FabricAdmin.FabricAdmin(vendorId=int(adminList[k]['vendorId']),
- fabricId=adminList[k]['fabricId'], adminIndex=int(k)))
-
- console.print(
- '\n[blue]Fabric Admins have been loaded and are available at [red]fabricAdmins')
- return _fabricAdmins
-
-
-def CreateDefaultDeviceController():
- global _fabricAdmins
-
- if (len(_fabricAdmins) == 0):
- raise RuntimeError("Was called before calling LoadFabricAdmins()")
-
- console = Console()
-
- console.print('\n')
- console.print(
- f"[purple]Creating default device controller on fabric {_fabricAdmins[0]._fabricId}...")
- return _fabricAdmins[0].NewController()
-
-
def ReplInit(debug):
#
# Install the pretty printer that rich provides to replace the existing
@@ -105,9 +52,11 @@ def ReplInit(debug):
logging.getLogger().setLevel(logging.WARN)
+certificateAuthorityManager = None
+
+
def StackShutdown():
- chip.FabricAdmin.FabricAdmin.ShutdownAll()
- ChipDeviceCtrl.ChipDeviceController.ShutdownAll()
+ certificateAuthorityManager.Shutdown()
builtins.chipStack.Shutdown()
@@ -145,12 +94,30 @@ def mattersetdebug(enableDebugMode: bool = True):
ReplInit(args.debug)
chipStack = ChipStack(persistentStoragePath=args.storagepath)
-fabricAdmins = LoadFabricAdmins()
-devCtrl = CreateDefaultDeviceController()
+certificateAuthorityManager = chip.CertificateAuthority.CertificateAuthorityManager(chipStack, chipStack.GetStorageManager())
+certificateAuthorityManager.LoadAuthoritiesFromStorage()
+
+if (len(certificateAuthorityManager.activeCaList) == 0):
+ ca = certificateAuthorityManager.NewCertificateAuthority()
+ ca.NewFabricAdmin(vendorId=0xFFF1, fabricId=1)
+elif (len(certificateAuthorityManager.activeCaList[0].adminList) == 0):
+ certificateAuthorityManager.activeCaList[0].NewFabricAdmin(vendorId=0xFFF1, fabricId=1)
+
+caList = certificateAuthorityManager.activeCaList
+
+devCtrl = caList[0].adminList[0].NewController()
builtins.devCtrl = devCtrl
atexit.register(StackShutdown)
console.print(
- '\n\n[blue]Default CHIP Device Controller has been initialized to manage [bold red]fabricAdmins[0][blue], and is available as [bold red]devCtrl')
+ '\n\n[blue]The following objects have been created:')
+
+console.print(
+ '''\t[red]certificateAuthorityManager[blue]:\tManages a list of CertificateAuthority instances.
+\t[red]caList[blue]:\t\t\t\tThe list of CertificateAuthority instances.
+\t[red]caList\[n]\[m][blue]:\t\t\tA specific FabricAdmin object at index m for the nth CertificateAuthority instance.''')
+
+console.print(
+ f'\n\n[blue]Default CHIP Device Controller (NodeId: {devCtrl.nodeId}): has been initialized to manage [bold red]caList[0].adminList[0][blue] (FabricId = {caList[0].adminList[0].fabricId}), and is available as [bold red]devCtrl')
diff --git a/src/controller/python/chip/ChipStack.py b/src/controller/python/chip/ChipStack.py
index 5120e68fb8b3b2..cfdeeaef9a5785 100644
--- a/src/controller/python/chip/ChipStack.py
+++ b/src/controller/python/chip/ChipStack.py
@@ -266,7 +266,7 @@ def HandleChipThreadRun(callback):
self._persistentStorage = PersistentStorage(persistentStoragePath)
# Initialize the chip stack.
- res = self._ChipStackLib.pychip_DeviceController_StackInit()
+ res = self._ChipStackLib.pychip_DeviceController_StackInit(self._persistentStorage.GetSdkStorageObject())
if res != 0:
raise self.ErrorToException(res)
@@ -440,7 +440,7 @@ def _loadLib(self):
self._ChipStackLib = chip.native.GetLibraryHandle()
self._chipDLLPath = chip.native.FindNativeLibraryPath()
- self._ChipStackLib.pychip_DeviceController_StackInit.argtypes = []
+ self._ChipStackLib.pychip_DeviceController_StackInit.argtypes = [c_void_p]
self._ChipStackLib.pychip_DeviceController_StackInit.restype = c_uint32
self._ChipStackLib.pychip_DeviceController_StackShutdown.argtypes = []
self._ChipStackLib.pychip_DeviceController_StackShutdown.restype = c_uint32
diff --git a/src/controller/python/chip/FabricAdmin.py b/src/controller/python/chip/FabricAdmin.py
index d44175819ba16a..97a729035f811e 100644
--- a/src/controller/python/chip/FabricAdmin.py
+++ b/src/controller/python/chip/FabricAdmin.py
@@ -30,70 +30,29 @@
import chip.exceptions
from chip import ChipDeviceCtrl
import copy
+from .storage import PersistentStorage
+from chip.CertificateAuthority import CertificateAuthority
class FabricAdmin:
- ''' Administers a specific fabric as identified by the tuple of RCAC subject public key and Fabric ID.
- The Fabric ID can be passed into the constructor while the RCAC and ICAC are generated.
- The Fabric ID *does not* have to be unique across multiple FabricAdmin instances as
- it is scoped to the key pair used by the root CA and whose public key is in the RCAC.
-
- Each admin is identified by an 'admin index' that is unique to the running
- process. This is used to store credential information to disk so that
- it can be easily loaded later if neccessary (see 'Persistence' below for more details)
-
- When vending ChipDeviceController instances on a given fabric, each controller instance
- is associated with a unique fabric index. In the underlying FabricTable, each FabricInfo
- instance can be treated as unique identities that can collide on the same logical fabric.
-
- >> C++ Binding Details
-
- Each instance of the fabric admin is associated with a single instance
- of the OperationalCredentialsAdapter. This adapter instance implements
- the OperationalCredentialsDelegate and is meant to provide a Python
- adapter to the functions in that delegate so that the fabric admin
- can in turn, provide users the ability to generate their own NOCs for devices
- on the network (not implemented yet). For now, it relies on the in-built
- ExampleOperationalCredentialsIssuer to do that.
-
- TODO: Add support for FabricAdmin to permit callers to hook up their own GenerateNOC
- logic.
-
- >> Persistence
-
- Specifically, each instance persists its fabric ID and admin
- index to storage. This is in addition to the persistence built into the ExampleOperationalCredentialsIssuer that persists details
- about the RCAC/ICAC and associated keys as well. This facilitates re-construction of a fabric admin on subsequent
- boot for a given fabric and ensuring it automatically picks up the right ICAC/RCAC details as well.
+ ''' Administers a fabric associated with a unique FabricID under a given CertificateAuthority
+ instance.
'''
-
- activeAdminIndexList = set()
- activeAdmins = set()
-
@classmethod
def _Handle(cls):
return chip.native.GetLibraryHandle()
- def AllocateNextAdminIndex(self):
- ''' Allocate the next un-used admin index.
- '''
- nextAdminIndex = 1
- while nextAdminIndex in FabricAdmin.activeAdminIndexList:
- nextAdminIndex = nextAdminIndex + 1
- return nextAdminIndex
-
- def __init__(self, vendorId: int, adminIndex: int = None, fabricId: int = 1):
- ''' Creates a valid FabricAdmin object with valid RCAC/ICAC, and registers itself as an OperationalCredentialsDelegate
- for other parts of the system (notably, DeviceController) to vend NOCs.
-
- vendorId: Valid operational Vendor ID associated with this fabric.
- adminIndex: Local index to be associated with this fabric. This is NOT the fabric index. Each controller on the fabric
- is assigned a unique fabric index.
+ @classmethod
+ def logger(cls):
+ return logging.getLogger('FabricAdmin')
- If omitted, one will be automatically assigned.
+ def __init__(self, certificateAuthority: CertificateAuthority, vendorId: int, fabricId: int = 1):
+ ''' Initializes the object.
- fabricId: Fabric ID to be associated with this fabric. This is scoped to the public key of the resultant
- root generated by the underlying ExampleOperationalCredentialsIssuer.
+ certificateAuthority: CertificateAuthority instance that will be used to vend NOCs for both
+ DeviceControllers and commissionable nodes on this fabric.
+ vendorId: Valid operational Vendor ID associated with this fabric.
+ fabricId: Fabric ID to be associated with this fabric.
'''
self._handle = chip.native.GetLibraryHandle()
@@ -101,104 +60,69 @@ def __init__(self, vendorId: int, adminIndex: int = None, fabricId: int = 1):
raise ValueError(
f"Invalid VendorID ({vendorId}) provided!")
+ if (fabricId is None or fabricId == 0):
+ raise ValueError(
+ f"Invalid FabricId ({fabricId}) provided!")
+
self._vendorId = vendorId
self._fabricId = fabricId
+ self._certificateAuthority = certificateAuthority
- if (adminIndex is None):
- self._adminIndex = self.AllocateNextAdminIndex()
- else:
- if (adminIndex in FabricAdmin.activeAdminIndexList):
- raise ValueError(
- f"AdminIndex {adminIndex} is already being managed by an existing FabricAdmin object!")
-
- self._adminIndex = adminIndex
-
- FabricAdmin.activeAdminIndexList.add(self._adminIndex)
-
- print(
- f"New FabricAdmin: FabricId: 0x{self._fabricId:016X}, AdminIndex: {self._adminIndex}, VendorId = 0x{self.vendorId:04X}")
- self._Handle().pychip_OpCreds_InitializeDelegate.restype = c_void_p
-
- self.closure = builtins.chipStack.Call(
- lambda: self._Handle().pychip_OpCreds_InitializeDelegate(
- ctypes.py_object(self), ctypes.c_uint32(self._adminIndex))
- )
-
- if (self.closure is None):
- raise ValueError("Encountered error initializing OpCreds adapter")
+ self.logger().warning(f"New FabricAdmin: FabricId: 0x{self._fabricId:016X}, VendorId = 0x{self.vendorId:04X}")
- #
- # Persist details to storage (read modify write).
- #
- try:
- adminList = builtins.chipStack.GetStorageManager().GetReplKey('fabricAdmins')
- except KeyError:
- adminList = {str(self._adminIndex): {'fabricId': self._fabricId}}
- builtins.chipStack.GetStorageManager().SetReplKey('fabricAdmins', adminList)
+ self._isActive = True
+ self._activeControllers = []
- adminList[str(self._adminIndex)] = {'fabricId': self._fabricId, 'vendorId': self.vendorId}
- builtins.chipStack.GetStorageManager().SetReplKey('fabricAdmins', adminList)
+ def NewController(self, nodeId: int = None, paaTrustStorePath: str = "", useTestCommissioner: bool = False, catTags: List[int] = []):
+ ''' Create a new chip.ChipDeviceCtrl.ChipDeviceController instance on this fabric.
- self._isActive = True
- self.nextControllerId = 112233
+ When vending ChipDeviceController instances on a given fabric, each controller instance
+ is associated with a unique fabric index local to the running process. In the underlying FabricTable, each FabricInfo
+ instance can be treated as unique identities that can collide on the same logical fabric.
- FabricAdmin.activeAdmins.add(self)
+ nodeId: NodeID to be assigned to the controller. Automatically allocates one starting from 112233 if one
+ is not provided.
- def NewController(self, nodeId: int = None, paaTrustStorePath: str = "", useTestCommissioner: bool = False):
- ''' Vend a new controller on this fabric seeded with the right fabric details.
+ paaTrustStorePath: Path to the PAA trust store. If one isn't provided, a suitable default is selected.
+ useTestCommissioner: If a test commmisioner is to be created.
+ catTags: A list of 32-bit CAT tags that will added to the NOC generated for this controller.
'''
if (not(self._isActive)):
raise RuntimeError(
f"FabricAdmin object was previously shutdown and is no longer valid!")
+ nodeIdList = [controller.nodeId for controller in self._activeControllers if controller.isActive]
if (nodeId is None):
- nodeId = self.nextControllerId
- self.nextControllerId = self.nextControllerId + 1
-
- print(
- f"Allocating new controller with FabricId: 0x{self._fabricId:016X}, NodeId: 0x{nodeId:016X}")
-
- controller = ChipDeviceCtrl.ChipDeviceController(
- self.closure, self._fabricId, nodeId, self.vendorId, paaTrustStorePath, useTestCommissioner, fabricAdmin=self)
- return controller
+ if (len(nodeIdList) != 0):
+ nodeId = max(nodeIdList) + 1
+ else:
+ nodeId = 112233
+ else:
+ if (nodeId in nodeIdList):
+ raise RuntimeError(f"Provided NodeId {nodeId} collides with an existing controller instance!")
- def ShutdownAll():
- ''' Shuts down all active fabrics, but without deleting them from storage.
- '''
- activeAdmins = copy.copy(FabricAdmin.activeAdmins)
+ self.logger().warning(
+ f"Allocating new controller with CaIndex: {self._certificateAuthority.caIndex}, FabricId: 0x{self._fabricId:016X}, NodeId: 0x{nodeId:016X}, CatTags: {catTags}")
- for admin in activeAdmins:
- admin.Shutdown(False)
+ controller = ChipDeviceCtrl.ChipDeviceController(opCredsContext=self._certificateAuthority.GetOpCredsContext(), fabricId=self._fabricId, nodeId=nodeId,
+ adminVendorId=self._vendorId, paaTrustStorePath=paaTrustStorePath, useTestCommissioner=useTestCommissioner, fabricAdmin=self, catTags=catTags)
- FabricAdmin.activeAdmins.clear()
+ self._activeControllers.append(controller)
+ return controller
- def Shutdown(self, deleteFromStorage: bool = True):
- ''' Shutdown this fabric and free up its resources. This is important since relying
- solely on the destructor will not guarantee relishining of C++-side resources.
+ def Shutdown(self):
+ ''' Shutdown all active controllers on the fabric before shutting down the fabric itself.
- deleteFromStorage: Whether to delete this fabric's details from persistent storage.
+ You cannot interact with this object there-after.
'''
if (self._isActive):
- builtins.chipStack.Call(
- lambda: self._Handle().pychip_OpCreds_FreeDelegate(
- ctypes.c_void_p(self.closure))
- )
-
- FabricAdmin.activeAdminIndexList.remove(self._adminIndex)
-
- if (deleteFromStorage):
- adminList = builtins.chipStack.GetStorageManager().GetReplKey('fabricAdmins')
- del(adminList[str(self._adminIndex)])
- if (len(adminList) == 0):
- adminList = None
+ for controller in self._activeControllers:
+ controller.Shutdown()
- builtins.chipStack.GetStorageManager().SetReplKey('fabricAdmins', adminList)
-
- FabricAdmin.activeAdmins.remove(self)
self._isActive = False
def __del__(self):
- self.Shutdown(False)
+ self.Shutdown()
@property
def vendorId(self) -> int:
@@ -209,5 +133,9 @@ def fabricId(self) -> int:
return self._fabricId
@property
- def adminIndex(self) -> int:
- return self._adminIndex
+ def caIndex(self) -> int:
+ return self._certificateAuthority.caIndex
+
+ @property
+ def certificateAuthority(self) -> CertificateAuthority:
+ return self._certificateAuthority
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 4397258fed9dcb..d8032d8f508063 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -29040,6 +29040,25 @@ def descriptor(cls) -> ClusterObjectDescriptor:
numCallsToFail: 'uint' = 0
takeMutex: 'bool' = False
+ @dataclass
+ class FailRandomlyAtFault(ClusterCommand):
+ cluster_id: typing.ClassVar[int] = 0xFFF1FC06
+ command_id: typing.ClassVar[int] = 0x0001
+ is_client: typing.ClassVar[bool] = True
+
+ @ChipUtility.classproperty
+ def descriptor(cls) -> ClusterObjectDescriptor:
+ return ClusterObjectDescriptor(
+ Fields = [
+ ClusterObjectFieldDescriptor(Label="type", Tag=0, Type=FaultInjection.Enums.FaultType),
+ ClusterObjectFieldDescriptor(Label="id", Tag=1, Type=uint),
+ ClusterObjectFieldDescriptor(Label="percentage", Tag=2, Type=uint),
+ ])
+
+ type: 'FaultInjection.Enums.FaultType' = 0
+ id: 'uint' = 0
+ percentage: 'uint' = 0
+
class Attributes:
@dataclass
diff --git a/src/controller/python/chip/storage/__init__.py b/src/controller/python/chip/storage/__init__.py
index 362abda084075c..ad51c75754f9f4 100644
--- a/src/controller/python/chip/storage/__init__.py
+++ b/src/controller/python/chip/storage/__init__.py
@@ -51,11 +51,7 @@ def _OnSyncGetKeyValueCb(storageObj, key: str, value, size, is_found):
this method to the requirements of
PersistentStorageDelegate::SyncGetKeyValue.
'''
- try:
- keyValue = storageObj.GetSdkKey(key.decode("utf-8"))
- except Exception as ex:
- keyValue = None
-
+ keyValue = storageObj.GetSdkKey(key.decode("utf-8"))
if (keyValue is not None):
sizeOfValue = size[0]
sizeToCopy = min(sizeOfValue, len(keyValue))
@@ -85,37 +81,94 @@ def _OnSyncDeleteKeyValueCb(storageObj, key):
class PersistentStorage:
+ ''' Class that provided persistent storage to back both native Python and
+ SDK configuration key/value pairs.
+
+ Configuration native to the Python libraries is organized under the top-level
+ 'repl-config' key while configuration native to the SDK and owned by the various
+ C++ logic is organized under the top-level 'sdk-config' key.
+
+ This interfaces with a C++ adapter that implements the PersistentStorageDelegate interface
+ and can be passed into C++ logic that needs an instance of that interface.
+ '''
+ @classmethod
+ def logger(cls):
+ return logging.getLogger('PersistentStorage')
+
+ def __init__(self, path: str = None, jsonData: Dict = None):
+ ''' Initializes the object with either a path to a JSON file that contains the configuration OR
+ a JSON dictionary that contains an in-memory representation of the configuration.
+
+ In either case, if there are no valid configurations that already exist, empty Python
+ and SDK configuration records will be created upon construction.
+ '''
+ if (path is None and jsonData is None):
+ raise ValueError("Need to provide at least one of path or jsonData")
+
+ if (path is not None and jsonData is not None):
+ raise ValueError("Can't provide both a valid path and jsonData")
+
+ if (path is not None):
+ self.logger().warn(f"Initializing persistent storage from file: {path}")
+ else:
+ self.logger().warn(f"Initializing persistent storage from dict")
- def __init__(self, path: str):
- self._path = path
self._handle = chip.native.GetLibraryHandle()
self._isActive = True
+ self._path = path
- try:
- self._file = open(path, 'r')
- self._file.seek(0, 2)
- size = self._file.tell()
- self._file.seek(0)
+ if (self._path):
+ try:
+ self._file = open(path, 'r')
+ self._file.seek(0, 2)
+ size = self._file.tell()
+ self._file.seek(0)
- if (size != 0):
- logging.critical(f"Loading configuration from {path}...")
- self.jsonData = json.load(self._file)
- else:
- logging.warn(
- f"No valid configuration present at {path} - clearing out configuration")
- self.jsonData = {'repl-config': {}, 'sdk-config': {}}
+ if (size != 0):
+ self.logger().warn(f"Loading configuration from {path}...")
+ self._jsonData = json.load(self._file)
+ else:
+ self._jsonData = {}
- except Exception as ex:
- logging.error(ex)
- logging.warn(
- f"Could not load configuration from {path} - resetting configuration...")
- self.jsonData = {'repl-config': {}, 'sdk-config': {}}
+ except Exception as ex:
+ logging.error(ex)
+ logging.critical(f"Could not load configuration from {path} - resetting configuration...")
+ self._jsonData = {}
+ else:
+ self._jsonData = jsonData
+
+ if ('sdk-config' not in self._jsonData):
+ logging.warn(f"No valid SDK configuration present - clearing out configuration")
+ self._jsonData['sdk-config'] = {}
+
+ if ('repl-config' not in self._jsonData):
+ logging.warn(f"No valid REPL configuration present - clearing out configuration")
+ self._jsonData['repl-config'] = {}
+ # Clear out the file so that calling 'Commit' will re-open the file at that time in write mode.
self._file = None
- self._handle.pychip_Storage_InitializeStorageAdapter(ctypes.py_object(
+
+ self._handle.pychip_Storage_InitializeStorageAdapter.restype = c_void_p
+ self._handle.pychip_Storage_InitializeStorageAdapter.argtypes = [ctypes.py_object,
+ _SyncSetKeyValueCbFunct, _SyncGetKeyValueCbFunct, _SyncDeleteKeyValueCbFunct]
+
+ self._closure = self._handle.pychip_Storage_InitializeStorageAdapter(ctypes.py_object(
self), _OnSyncSetKeyValueCb, _OnSyncGetKeyValueCb, _OnSyncDeleteKeyValueCb)
- def Sync(self):
+ def GetSdkStorageObject(self):
+ ''' Returns a ctypes c_void_p reference to the SDK-side adapter instance.
+ '''
+ return self._closure
+
+ def Commit(self):
+ ''' Commits the cached JSON configuration to file (if one was provided in the constructor).
+ Otherwise, this is a no-op.
+ '''
+ self.logger().info("Committing...")
+
+ if (self._path is None):
+ return
+
if (self._file is None):
try:
self._file = open(self._path, 'w')
@@ -126,28 +179,38 @@ def Sync(self):
return
self._file.seek(0)
- json.dump(self.jsonData, self._file, ensure_ascii=True, indent=4)
+ json.dump(self._jsonData, self._file, ensure_ascii=True, indent=4)
self._file.truncate()
self._file.flush()
def SetReplKey(self, key: str, value):
- logging.info(f"SetReplKey: {key} = {value}")
+ ''' Set a REPL key to a specific value. Creates the key if one doesn't exist already.
+ '''
+ self.logger().info(f"SetReplKey: {key} = {value}")
if (key is None or key == ''):
raise ValueError("Invalid Key")
if (value is None):
- del(self.jsonData['repl-config'][key])
+ del(self._jsonData['repl-config'][key])
else:
- self.jsonData['repl-config'][key] = value
+ self._jsonData['repl-config'][key] = value
- self.Sync()
+ self.Commit()
def GetReplKey(self, key: str):
- return copy.deepcopy(self.jsonData['repl-config'][key])
+ ''' Retrieves the value of a REPL key. Returns 'None' if the key
+ doesn't exist.
+ '''
+ if (key not in self._jsonData['repl-config']):
+ return None
+
+ return copy.deepcopy(self._jsonData['repl-config'][key])
def SetSdkKey(self, key: str, value: bytes):
- logging.info(f"SetSdkKey: {key} = {value}")
+ ''' Set an SDK key to a specific value. Creates the key if one doesn't exist already.
+ '''
+ self.logger().info(f"SetSdkKey: {key} = {value}")
if (key is None or key == ''):
raise ValueError("Invalid Key")
@@ -155,28 +218,45 @@ def SetSdkKey(self, key: str, value: bytes):
if (value is None):
raise ValueError('value is not expected to be None')
else:
- self.jsonData['sdk-config'][key] = base64.b64encode(
+ self._jsonData['sdk-config'][key] = base64.b64encode(
value).decode("utf-8")
- self.Sync()
+ self.Commit()
def GetSdkKey(self, key: str):
- return base64.b64decode(self.jsonData['sdk-config'][key])
+ ''' Returns the SDK key if one exist. Otherwise, returns 'None'.
+ '''
+ if (key not in self._jsonData['sdk-config']):
+ return None
+
+ return base64.b64decode(self._jsonData['sdk-config'][key])
def DeleteSdkKey(self, key: str):
- del(self.jsonData['sdk-config'][key])
- self.Sync()
+ ''' Deletes an SDK key if one exists.
+ '''
+ self.logger().info(f"DeleteSdkKey: {key}")
- def GetUnderlyingStorageAdapter(self):
- return self._storageAdapterObj
+ del(self._jsonData['sdk-config'][key])
+ self.Commit()
def Shutdown(self):
+ ''' Shuts down the object by free'ing up the associated adapter instance.
+
+ You cannot interact with this object there-after.
+ '''
+ self._handle.pychip_Storage_ShutdownAdapter.argtypes = [c_void_p]
builtins.chipStack.Call(
- lambda: self._handle.pychip_Storage_ShutdownAdapter()
+ lambda: self._handle.pychip_Storage_ShutdownAdapter(self._closure)
)
self._isActive = False
+ @property
+ def jsonData(self) -> Dict:
+ ''' Returns a copy of the internal cached JSON data.
+ '''
+ return copy.deepcopy(self._jsonData)
+
def __del__(self):
if (self._isActive):
builtins.chipStack.Call(
diff --git a/src/controller/python/chip/utils/CommissioningBuildingBlocks.py b/src/controller/python/chip/utils/CommissioningBuildingBlocks.py
index ae4da4a4ee1fa8..20dbcd6441a746 100644
--- a/src/controller/python/chip/utils/CommissioningBuildingBlocks.py
+++ b/src/controller/python/chip/utils/CommissioningBuildingBlocks.py
@@ -30,7 +30,7 @@
_UINT16_MAX = 65535
-logger = logging.getLogger()
+logger = logging.getLogger('CommissioningBuildingBlocks')
async def _IsNodeInFabricList(devCtrl, nodeId):
@@ -43,7 +43,7 @@ async def _IsNodeInFabricList(devCtrl, nodeId):
return False
-async def GrantPrivilege(adminCtrl: ChipDeviceController, grantedCtrl: ChipDeviceController, privilege: Clusters.AccessControl.Enums.Privilege, targetNodeId: int):
+async def GrantPrivilege(adminCtrl: ChipDeviceController, grantedCtrl: ChipDeviceController, privilege: Clusters.AccessControl.Enums.Privilege, targetNodeId: int, targetCatTags: typing.List[int] = []):
''' Given an existing controller with admin privileges over a target node, grants the specified privilege to the new ChipDeviceController instance to the entire Node. This is achieved
by updating the ACL entries on the target.
@@ -53,20 +53,29 @@ async def GrantPrivilege(adminCtrl: ChipDeviceController, grantedCtrl: ChipDevic
Args:
adminCtrl: ChipDeviceController instance with admin privileges over the target node
grantedCtrl: ChipDeviceController instance that is being granted the new privilege.
- privilege: Privilege to grant to the granted controller
+ privilege: Privilege to grant to the granted controller. If None, no privilege is granted.
targetNodeId: Target node to which the controller is granted privilege.
+ targetCatTag: Target 32-bit CAT tag that is granted privilege. If provided, this will be used in the subject list instead of the nodeid of that of grantedCtrl.
'''
-
data = await adminCtrl.ReadAttribute(targetNodeId, [(Clusters.AccessControl.Attributes.Acl)])
if 0 not in data:
raise ValueError("Did not get back any data (possible cause: controller has no access..")
currentAcls = data[0][Clusters.AccessControl][Clusters.AccessControl.Attributes.Acl]
+ if len(targetCatTags) != 0:
+ # Convert to an ACL subject format in CAT range
+ targetSubjects = [tag | 0xFFFF_FFFD_0000_0000 for tag in targetCatTags]
+ else:
+ targetSubjects = [grantedCtrl.nodeId]
+
+ if (len(targetSubjects) > 4):
+ raise ValueError(f"List of target subjects of len {len(targetSubjects)} exceeeded the minima of 4!")
+
# Step 1: Wipe the subject from all existing ACLs.
for acl in currentAcls:
if (acl.subjects != NullValue):
- acl.subjects = [subject for subject in acl.subjects if subject != grantedCtrl.nodeId]
+ acl.subjects = [subject for subject in acl.subjects if subject not in targetSubjects]
if (privilege):
addedPrivilege = False
@@ -75,9 +84,11 @@ async def GrantPrivilege(adminCtrl: ChipDeviceController, grantedCtrl: ChipDevic
# the existing privilege in that entry matches our desired privilege.
for acl in currentAcls:
if acl.privilege == privilege:
- if grantedCtrl.nodeId not in acl.subjects:
- acl.subjects.append(grantedCtrl.nodeId)
+ subjectSet = set(acl.subjects)
+ subjectSet.update(targetSubjects)
+ acl.subjects = list(subjectSet)
addedPrivilege = True
+ break
# Step 3: If there isn't an existing entry to add to, make a new one.
if (not(addedPrivilege)):
@@ -86,14 +97,16 @@ async def GrantPrivilege(adminCtrl: ChipDeviceController, grantedCtrl: ChipDevic
f"Cannot add another ACL entry to grant privilege to existing count of {currentAcls} ACLs -- will exceed minimas!")
currentAcls.append(Clusters.AccessControl.Structs.AccessControlEntry(privilege=privilege, authMode=Clusters.AccessControl.Enums.AuthMode.kCase,
- subjects=[grantedCtrl.nodeId]))
+ subjects=targetSubjects))
# Step 4: Prune ACLs which have empty subjects.
currentAcls = [acl for acl in currentAcls if acl.subjects != NullValue and len(acl.subjects) != 0]
+
+ logger.info(f'GrantPrivilege: Writing acls: {currentAcls}')
await adminCtrl.WriteAttribute(targetNodeId, [(0, Clusters.AccessControl.Attributes.Acl(currentAcls))])
-async def CreateControllersOnFabric(fabricAdmin: FabricAdmin, adminDevCtrl: ChipDeviceController, controllerNodeIds: typing.List[int], privilege: Clusters.AccessControl.Enums.Privilege, targetNodeId: int) -> typing.List[ChipDeviceController]:
+async def CreateControllersOnFabric(fabricAdmin: FabricAdmin, adminDevCtrl: ChipDeviceController, controllerNodeIds: typing.List[int], privilege: Clusters.AccessControl.Enums.Privilege, targetNodeId: int, catTags: typing.List[int] = []) -> typing.List[ChipDeviceController]:
''' Create new ChipDeviceController instances on a given fabric with a specific privilege on a target node.
Args:
@@ -102,13 +115,14 @@ async def CreateControllersOnFabric(fabricAdmin: FabricAdmin, adminDevCtrl: Chip
controllerNodeIds: List of desired nodeIds for the controllers.
privilege: The specific ACL privilege to grant to the newly minted controllers.
targetNodeId: The Node ID of the target.
+ catTags: CAT Tags to include in the NOC of controller, as well as when setting up the ACLs on the target.
'''
controllerList = []
for nodeId in controllerNodeIds:
- newController = fabricAdmin.NewController(nodeId=nodeId)
- await GrantPrivilege(adminDevCtrl, newController, privilege, targetNodeId)
+ newController = fabricAdmin.NewController(nodeId=nodeId, catTags=catTags)
+ await GrantPrivilege(adminDevCtrl, newController, privilege, targetNodeId, catTags)
controllerList.append(newController)
return controllerList
diff --git a/src/controller/python/test/test_scripts/base.py b/src/controller/python/test/test_scripts/base.py
index 90bc43cb064781..8665c288276603 100644
--- a/src/controller/python/test/test_scripts/base.py
+++ b/src/controller/python/test/test_scripts/base.py
@@ -36,9 +36,11 @@
from chip.ChipStack import *
import chip.native
import chip.FabricAdmin
+import chip.CertificateAuthority
import copy
import secrets
import faulthandler
+import ipdb
logger = logging.getLogger('PythonMatterControllerTEST')
logger.setLevel(logging.INFO)
@@ -193,8 +195,9 @@ def __init__(self, nodeid: int, paaTrustStorePath: str, testCommissioner: bool =
chip.native.Init()
self.chipStack = ChipStack('/tmp/repl_storage.json')
- self.fabricAdmin = chip.FabricAdmin.FabricAdmin(vendorId=0XFFF1,
- fabricId=1, adminIndex=1)
+ self.certificateAuthorityManager = chip.CertificateAuthority.CertificateAuthorityManager(chipStack=self.chipStack)
+ self.certificateAuthority = self.certificateAuthorityManager.NewCertificateAuthority()
+ self.fabricAdmin = self.certificateAuthority.NewFabricAdmin(vendorId=0xFFF1, fabricId=1)
self.devCtrl = self.fabricAdmin.NewController(
nodeid, paaTrustStorePath, testCommissioner)
self.controllerNodeId = nodeid
@@ -384,6 +387,34 @@ def TestFailsafe(self, nodeid: int):
return True
return False
+ async def TestControllerCATValues(self, nodeid: int):
+ ''' This tests controllers using CAT Values
+ '''
+ # Allocate a new controller instance with a CAT tag.
+ newControllers = await CommissioningBuildingBlocks.CreateControllersOnFabric(fabricAdmin=self.fabricAdmin, adminDevCtrl=self.devCtrl, controllerNodeIds=[300], targetNodeId=nodeid, privilege=None, catTags=[0x0001_0001])
+
+ # Read out an attribute using the new controller. It has no privileges, so this should fail with an UnsupportedAccess error.
+ res = await newControllers[0].ReadAttribute(nodeid=nodeid, attributes=[(0, Clusters.AccessControl.Attributes.Acl)])
+ if(res[0][Clusters.AccessControl][Clusters.AccessControl.Attributes.Acl].Reason.status != IM.Status.UnsupportedAccess):
+ self.logger.error(f"1: Received data instead of an error:{res}")
+ return False
+
+ # Grant the new controller privilege by adding the CAT tag to the subject.
+ await CommissioningBuildingBlocks.GrantPrivilege(adminCtrl=self.devCtrl, grantedCtrl=newControllers[0], privilege=Clusters.AccessControl.Enums.Privilege.kAdminister, targetNodeId=nodeid, targetCatTags=[0x0001_0001])
+
+ # Read out the attribute again - this time, it should succeed.
+ res = await newControllers[0].ReadAttribute(nodeid=nodeid, attributes=[(0, Clusters.AccessControl.Attributes.Acl)])
+ if (type(res[0][Clusters.AccessControl][Clusters.AccessControl.Attributes.Acl][0]) != Clusters.AccessControl.Structs.AccessControlEntry):
+ self.logger.error(f"2: Received something other than data:{res}")
+ return False
+
+ # Reset the privilege back to pre-test.
+ await CommissioningBuildingBlocks.GrantPrivilege(adminCtrl=self.devCtrl, grantedCtrl=newControllers[0], privilege=None, targetNodeId=nodeid)
+
+ newControllers[0].Shutdown()
+
+ return True
+
async def TestMultiControllerFabric(self, nodeid: int):
''' This tests having multiple controller instances on the same fabric.
'''
@@ -463,7 +494,8 @@ async def TestAddUpdateRemoveFabric(self, nodeid: int):
self.logger.info("Waiting for attribute read for CommissionedFabrics")
startOfTestFabricCount = await self._GetCommissonedFabricCount(nodeid)
- tempFabric = chip.FabricAdmin.FabricAdmin(vendorId=0xFFF1)
+ tempCertificateAuthority = self.certificateAuthorityManager.NewCertificateAuthority()
+ tempFabric = tempCertificateAuthority.NewFabricAdmin(vendorId=0xFFF1, fabricId=1)
tempDevCtrl = tempFabric.NewController(self.controllerNodeId, self.paaTrustStorePath)
self.logger.info("Starting AddNOC using same node ID")
@@ -628,8 +660,7 @@ async def TestMultiFabric(self, ip: str, setuppin: int, nodeid: int):
await self.devCtrl.SendCommand(nodeid, 0, Clusters.AdministratorCommissioning.Commands.OpenBasicCommissioningWindow(180), timedRequestTimeoutMs=10000)
self.logger.info("Creating 2nd Fabric Admin")
- self.fabricAdmin2 = chip.FabricAdmin.FabricAdmin(vendorId=0xFFF1,
- fabricId=2, adminIndex=2)
+ self.fabricAdmin2 = self.certificateAuthority.NewFabricAdmin(vendorId=0xFFF1, fabricId=2)
self.logger.info("Creating Device Controller on 2nd Fabric")
self.devCtrl2 = self.fabricAdmin2.NewController(
@@ -646,15 +677,15 @@ async def TestMultiFabric(self, ip: str, setuppin: int, nodeid: int):
self.logger.info(
"Shutting down controllers & fabrics and re-initing stack...")
- ChipDeviceCtrl.ChipDeviceController.ShutdownAll()
- chip.FabricAdmin.FabricAdmin.ShutdownAll()
+ self.certificateAuthorityManager.Shutdown()
self.logger.info("Shutdown completed, starting new controllers...")
- self.fabricAdmin = chip.FabricAdmin.FabricAdmin(vendorId=0XFFF1,
- fabricId=1, adminIndex=1)
- fabricAdmin2 = chip.FabricAdmin.FabricAdmin(vendorId=0xFFF1,
- fabricId=2, adminIndex=2)
+ self.certificateAuthorityManager = chip.CertificateAuthority.CertificateAuthorityManager(chipStack=self.chipStack)
+ self.certificateAuthority = self.certificateAuthorityManager.NewCertificateAuthority()
+ self.fabricAdmin = self.certificateAuthority.NewFabricAdmin(vendorId=0xFFF1, fabricId=1)
+
+ fabricAdmin2 = self.certificateAuthority.NewFabricAdmin(vendorId=0xFFF1, fabricId=2)
self.devCtrl = self.fabricAdmin.NewController(
self.controllerNodeId, self.paaTrustStorePath)
diff --git a/src/controller/python/test/test_scripts/cluster_objects.py b/src/controller/python/test/test_scripts/cluster_objects.py
index deae10c2cd6962..5a9db3dd6ba28c 100644
--- a/src/controller/python/test/test_scripts/cluster_objects.py
+++ b/src/controller/python/test/test_scripts/cluster_objects.py
@@ -313,8 +313,6 @@ async def _TriggerEvent(cls, devCtrl):
await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestEventRequest())
await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestEventRequest())
await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestEventRequest())
- await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestFabricScopedEventRequest(arg1=0))
- await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestFabricScopedEventRequest(arg1=1))
@classmethod
async def _RetryForContent(cls, request, until, retryCount=10, intervalSeconds=1):
@@ -335,11 +333,19 @@ async def TriggerAndWaitForEvents(cls, devCtrl, req):
@base.test_case
async def TestGenerateUndefinedFabricScopedEventRequests(cls, devCtrl):
logger.info("Running TestGenerateUndefinedFabricScopedEventRequests")
- await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestFabricScopedEventRequest(arg1=0))
+ try:
+ res = await devCtrl.SendCommand(nodeid=NODE_ID, endpoint=1, payload=Clusters.TestCluster.Commands.TestEmitTestFabricScopedEventRequest(arg1=0))
+ raise ValueError(f"Unexpected Failure")
+ except chip.interaction_model.InteractionModelError as ex:
+ logger.info(f"Recevied {ex} from server.")
res = await devCtrl.ReadEvent(nodeid=NODE_ID, events=[
- (1, Clusters.TestCluster.Events.TestEvent, 0),
+ (1, Clusters.TestCluster.Events.TestFabricScopedEvent, 0),
])
logger.info(f"return result is {res}")
+ if len(res) != 0:
+ raise AssertionError("failure: not expect to receive fabric-scoped event when fabric is undefined")
+ else:
+ logger.info("TestGenerateUndefinedFabricScopedEventRequests: Success")
@classmethod
@base.test_case
diff --git a/src/controller/python/test/test_scripts/mobile-device-test.py b/src/controller/python/test/test_scripts/mobile-device-test.py
index ffea217fa526c9..99f17aabe27363 100755
--- a/src/controller/python/test/test_scripts/mobile-device-test.py
+++ b/src/controller/python/test/test_scripts/mobile-device-test.py
@@ -77,6 +77,9 @@ def ethernet_commissioning(test: BaseTestHelper, discriminator: int, setup_pin:
logger.info("Testing multi-controller setup on the same fabric")
FailIfNot(asyncio.run(test.TestMultiControllerFabric(nodeid=device_nodeid)), "Failed the multi-controller test")
+ logger.info("Testing CATs used on controllers")
+ FailIfNot(asyncio.run(test.TestControllerCATValues(nodeid=device_nodeid)), "Failed the controller CAT test")
+
ok = asyncio.run(test.TestMultiFabric(ip=address,
setuppin=20202021,
nodeid=1))
diff --git a/src/credentials/DeviceAttestationConstructor.h b/src/credentials/DeviceAttestationConstructor.h
index 242171a5c9e9db..87f1095792c0f9 100644
--- a/src/credentials/DeviceAttestationConstructor.h
+++ b/src/credentials/DeviceAttestationConstructor.h
@@ -31,12 +31,12 @@ constexpr size_t kExpectedAttestationNonceSize = 32;
* All output data stays valid while attestationElements buffer is valid.
*
* @param[in] attestationElements ByteSpan containing source of Attestation Elements data.
- * @param[out] certificationDeclaration
- * @param[out] attestationNonce
- * @param[out] timestamp
+ * @param[out] certificationDeclaration Valid Certification Declaration data.
+ * @param[out] attestationNonce Attestation Nonce - 32 octets required.
+ * @param[out] timestamp Timestamp data in epoch time format.
* @param[out] firmwareInfo ByteSpan containing Firmware Information data if present within attestationElements.
* Empty ByteSpan if not present in attestationElements.
- * @param[out] VendorReserved Placeholder to for client to examine VendorReserved elements later
+ * @param[out] vendorReserved Placeholder to for client to examine vendorReserved elements later
*/
CHIP_ERROR DeconstructAttestationElements(const ByteSpan & attestationElements, ByteSpan & certificationDeclaration,
ByteSpan & attestationNonce, uint32_t & timestamp, ByteSpan & firmwareInfo,
@@ -49,7 +49,7 @@ CHIP_ERROR DeconstructAttestationElements(const ByteSpan & attestationElements,
* @param[in] attestationNonce Attestation Nonce - 32 octets required.
* @param[in] timestamp Timestamp data in epoch time format.
* @param[in] firmwareInfo Optional Firmware Information data - Can be empty.
- * @param[in] VendorReserved Prefilled-in vendor reserved elements to be put into DA elements.
+ * @param[in] vendorReserved Prefilled-in vendor reserved elements to be put into DA elements.
* @param[out] attestationElements Buffer used to write all AttestationElements data, formed with all the data fields above.
* Provided buffer needs to be capable to handle all data fields + tags.
*/
@@ -62,7 +62,7 @@ CHIP_ERROR ConstructAttestationElements(const ByteSpan & certificationDeclaratio
* @brief Count the number of VendorReservedElements in a DeviceAttestation blob
*
* @param[in] attestationElements ByeSpan conitaining source of Attestation Elements data
- * @param[out]
+ * @param[out] numElements Count of vendor reserved elements in the DeviceAttestation
* @returns CHIP_NO_ERROR on success
*/
CHIP_ERROR CountVendorReservedElementsInDA(const ByteSpan & attestationElements, size_t & numElements);
diff --git a/src/credentials/DeviceAttestationVendorReserved.h b/src/credentials/DeviceAttestationVendorReserved.h
index d05bd4d9d25a59..7c77000e5884ce 100644
--- a/src/credentials/DeviceAttestationVendorReserved.h
+++ b/src/credentials/DeviceAttestationVendorReserved.h
@@ -211,7 +211,7 @@ class DeviceAttestationVendorReservedConstructor
// first lowest tagNum for this vendorId/profileNum
uint64_t minTagNum = UINT64_MAX;
- size_t lowestIndex;
+ size_t lowestIndex = SIZE_MAX;
for (i = starting; i < mNumEntriesUsed; i++)
{
if (mElements[i].vendorId == minVendor && mElements[i].profileNum == minProfile)
diff --git a/src/crypto/CHIPCryptoPAL.cpp b/src/crypto/CHIPCryptoPAL.cpp
index ec2e415806c23b..859f5809e4b742 100644
--- a/src/crypto/CHIPCryptoPAL.cpp
+++ b/src/crypto/CHIPCryptoPAL.cpp
@@ -1092,5 +1092,28 @@ CHIP_ERROR GenerateCertificateSigningRequest(const P256Keypair * keypair, Mutabl
return err;
}
+CHIP_ERROR VerifyCertificateSigningRequestFormat(const uint8_t * csr, size_t csr_length)
+{
+ // Ensure we have enough size to validate header
+ VerifyOrReturnError((csr_length >= 16) && (csr_length <= kMAX_CSR_Length), CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ Reader reader(csr, csr_length);
+
+ // Ensure we have an outermost SEQUENCE
+ uint8_t seq_header = 0;
+ ReturnErrorOnFailure(reader.Read8(&seq_header).StatusCode());
+ VerifyOrReturnError(seq_header == kSeqTag, CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ uint8_t seq_length = 0;
+ VerifyOrReturnError(ReadDerLength(reader, seq_length) == CHIP_NO_ERROR, CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ // Ensure that outer length matches sequence length + tag overhead, otherwise
+ // we have trailing garbage
+ size_t header_overhead = (seq_length <= 127) ? 2 : 3;
+ VerifyOrReturnError(csr_length == (seq_length + header_overhead), CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ return CHIP_NO_ERROR;
+}
+
} // namespace Crypto
} // namespace chip
diff --git a/src/crypto/CHIPCryptoPAL.h b/src/crypto/CHIPCryptoPAL.h
index ea67c59a5765c1..544a554dcb31eb 100644
--- a/src/crypto/CHIPCryptoPAL.h
+++ b/src/crypto/CHIPCryptoPAL.h
@@ -640,8 +640,23 @@ CHIP_ERROR AES_CCM_decrypt(const uint8_t * ciphertext, size_t ciphertext_length,
**/
CHIP_ERROR GenerateCertificateSigningRequest(const P256Keypair * keypair, MutableByteSpan & csr_span);
+/**
+ * @brief Common code to validate ASN.1 format/size of a CSR, used by VerifyCertificateSigningRequest.
+ *
+ * Ensures it's not obviously malformed and doesn't have trailing garbage.
+ *
+ * @param csr CSR in DER format
+ * @param csr_length The length of the CSR buffer
+ * @return CHIP_ERROR_UNSUPPORTED_CERT_FORMAT on invalid format, CHIP_NO_ERROR otherwise.
+ */
+CHIP_ERROR VerifyCertificateSigningRequestFormat(const uint8_t * csr, size_t csr_length);
+
/**
* @brief Verify the Certificate Signing Request (CSR). If successfully verified, it outputs the public key from the CSR.
+ *
+ * The CSR is valid if the format is correct, the signature validates with the embedded public
+ * key, and there is no trailing garbage data.
+ *
* @param csr CSR in DER format
* @param csr_length The length of the CSR
* @param pubkey The public key from the verified CSR
diff --git a/src/crypto/CHIPCryptoPALOpenSSL.cpp b/src/crypto/CHIPCryptoPALOpenSSL.cpp
index 761294d0cc84ee..d1211bccbc5da2 100644
--- a/src/crypto/CHIPCryptoPALOpenSSL.cpp
+++ b/src/crypto/CHIPCryptoPALOpenSSL.cpp
@@ -1254,6 +1254,8 @@ CHIP_ERROR P256Keypair::NewCertificateSigningRequest(uint8_t * out_csr, size_t &
CHIP_ERROR VerifyCertificateSigningRequest(const uint8_t * csr, size_t csr_length, P256PublicKey & pubkey)
{
+ ReturnErrorOnFailure(VerifyCertificateSigningRequestFormat(csr, csr_length));
+
ERR_clear_error();
CHIP_ERROR error = CHIP_NO_ERROR;
int result = 0;
diff --git a/src/crypto/CHIPCryptoPALTinyCrypt.cpp b/src/crypto/CHIPCryptoPALTinyCrypt.cpp
index ae166a294744fc..aa9df451cc692a 100644
--- a/src/crypto/CHIPCryptoPALTinyCrypt.cpp
+++ b/src/crypto/CHIPCryptoPALTinyCrypt.cpp
@@ -777,6 +777,8 @@ CHIP_ERROR P256Keypair::NewCertificateSigningRequest(uint8_t * out_csr, size_t &
CHIP_ERROR VerifyCertificateSigningRequest(const uint8_t * csr_buf, size_t csr_length, P256PublicKey & pubkey)
{
#if defined(MBEDTLS_X509_CSR_PARSE_C)
+ ReturnErrorOnFailure(VerifyCertificateSigningRequestFormat(csr_buf, csr_length));
+
// TODO: For some embedded targets, mbedTLS library doesn't have mbedtls_x509_csr_parse_der, and mbedtls_x509_csr_parse_free.
// Taking a step back, embedded targets likely will not process CSR requests. Adding this action item to reevaluate
// this if there's a need for this processing for embedded targets.
diff --git a/src/crypto/CHIPCryptoPALmbedTLS.cpp b/src/crypto/CHIPCryptoPALmbedTLS.cpp
index 9bce7e94430796..dfbd993f023d8d 100644
--- a/src/crypto/CHIPCryptoPALmbedTLS.cpp
+++ b/src/crypto/CHIPCryptoPALmbedTLS.cpp
@@ -889,6 +889,8 @@ CHIP_ERROR P256Keypair::NewCertificateSigningRequest(uint8_t * out_csr, size_t &
CHIP_ERROR VerifyCertificateSigningRequest(const uint8_t * csr_buf, size_t csr_length, P256PublicKey & pubkey)
{
#if defined(MBEDTLS_X509_CSR_PARSE_C)
+ ReturnErrorOnFailure(VerifyCertificateSigningRequestFormat(csr_buf, csr_length));
+
// TODO: For some embedded targets, mbedTLS library doesn't have mbedtls_x509_csr_parse_der, and mbedtls_x509_csr_parse_free.
// Taking a step back, embedded targets likely will not process CSR requests. Adding this action item to reevaluate
// this if there's a need for this processing for embedded targets.
diff --git a/src/crypto/tests/CHIPCryptoPALTest.cpp b/src/crypto/tests/CHIPCryptoPALTest.cpp
index 8c76468e6158ea..485ead2cf99322 100644
--- a/src/crypto/tests/CHIPCryptoPALTest.cpp
+++ b/src/crypto/tests/CHIPCryptoPALTest.cpp
@@ -1034,6 +1034,170 @@ static void TestP256_Keygen(nlTestSuite * inSuite, void * inContext)
NL_TEST_ASSERT(inSuite, keypair.Pubkey().ECDSA_validate_msg_signature(test_msg, msglen, test_sig) == CHIP_NO_ERROR);
}
+void TestCSR_Verify(nlTestSuite * inSuite, void * inContext)
+{
+ Crypto::P256PublicKey pubKey;
+ CHIP_ERROR err;
+
+ // First case: there is trailing garbage in the CSR
+ {
+ const uint8_t kBadTrailingGarbageCsr[255] = {
+ 0x30, 0x81, 0xda, 0x30, 0x81, 0x81, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x0c, 0x03, 0x43, 0x53, 0x41, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08,
+ 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x72, 0x48, 0xc0, 0x36, 0xf0, 0x12, 0x5f, 0xd1,
+ 0x68, 0x92, 0x2d, 0xee, 0x57, 0x2b, 0x8e, 0x20, 0x9d, 0x97, 0xfa, 0x73, 0x92, 0xf1, 0xa0, 0x91, 0x0e, 0xfd, 0x04, 0x93,
+ 0x66, 0x47, 0x3c, 0xa3, 0xf0, 0xa8, 0x47, 0xa1, 0xa3, 0x1e, 0x13, 0x3b, 0x67, 0x3b, 0x18, 0xca, 0x77, 0xd1, 0xea, 0xe3,
+ 0x74, 0x93, 0x49, 0x8b, 0x9d, 0xdc, 0xef, 0xf9, 0xd5, 0x9b, 0x27, 0x19, 0xad, 0x6e, 0x90, 0xd2, 0xa0, 0x11, 0x30, 0x0f,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x0e, 0x31, 0x02, 0x30, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a,
+ 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x20, 0x6a, 0x2e, 0x15, 0x34, 0x1b, 0xde,
+ 0xcb, 0x8f, 0xd2, 0xfd, 0x35, 0x03, 0x89, 0x0e, 0xed, 0x23, 0x54, 0xff, 0xcb, 0x79, 0xf9, 0xcb, 0x40, 0x33, 0x59, 0xb4,
+ 0x27, 0x69, 0xeb, 0x07, 0x3b, 0xd5, 0x02, 0x21, 0x00, 0xb0, 0x25, 0xc9, 0xc2, 0x21, 0xe8, 0x54, 0xcc, 0x08, 0x12, 0xf5,
+ 0x10, 0x3a, 0x0b, 0x25, 0x20, 0x0a, 0x61, 0x38, 0xc8, 0x6f, 0x82, 0xa7, 0x51, 0x84, 0x61, 0xae, 0x93, 0x69, 0xe4, 0x74,
+ 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
+
+ Crypto::ClearSecretData(pubKey.Bytes(), pubKey.Length());
+
+ err = VerifyCertificateSigningRequest(&kBadTrailingGarbageCsr[0], sizeof(kBadTrailingGarbageCsr), pubKey);
+
+ // On first test case, check if CSRs are supported at all, and skip test if they are not.
+ if (err == CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE)
+ {
+ ChipLogError(Crypto, "The current platform does not support CSR parsing.");
+ return;
+ }
+
+ NL_TEST_ASSERT(inSuite, err != CHIP_NO_ERROR);
+
+ err = VerifyCertificateSigningRequestFormat(&kBadTrailingGarbageCsr[0], sizeof(kBadTrailingGarbageCsr));
+ NL_TEST_ASSERT(inSuite, err == CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+ }
+
+ // Second case: correct CSR
+ {
+ const uint8_t kGoodCsr[205] = {
+ 0x30, 0x81, 0xca, 0x30, 0x70, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x03, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06,
+ 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xa3, 0xbe, 0xa1, 0xf5, 0x42, 0x01,
+ 0x07, 0x3c, 0x4b, 0x75, 0x85, 0xd8, 0xe2, 0x98, 0xac, 0x2f, 0xf6, 0x98, 0xdb, 0xd9, 0x5b, 0xe0, 0x7e, 0xc1, 0x04,
+ 0xd5, 0x73, 0xc5, 0xb0, 0x90, 0x77, 0x27, 0x00, 0x1e, 0x22, 0xc7, 0x89, 0x5e, 0x4d, 0x75, 0x07, 0x89, 0x82, 0x0f,
+ 0x49, 0xb6, 0x59, 0xd5, 0xc5, 0x15, 0x7d, 0x93, 0xe6, 0x80, 0x5c, 0x70, 0x89, 0x0a, 0x43, 0x10, 0x3d, 0xeb, 0x3d,
+ 0x4a, 0xa0, 0x00, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x48,
+ 0x00, 0x30, 0x45, 0x02, 0x20, 0x1d, 0x86, 0x21, 0xb4, 0xc2, 0xe1, 0xa9, 0xf3, 0xbc, 0xc8, 0x7c, 0xda, 0xb4, 0xb9,
+ 0xc6, 0x8c, 0xd0, 0xe4, 0x9a, 0x9c, 0xef, 0x02, 0x93, 0x98, 0x27, 0x7e, 0x81, 0x21, 0x5d, 0x20, 0x9d, 0x32, 0x02,
+ 0x21, 0x00, 0x8b, 0x6b, 0x49, 0xb6, 0x7d, 0x3e, 0x67, 0x9e, 0xb1, 0x22, 0xd3, 0x63, 0x82, 0x40, 0x4f, 0x49, 0xa4,
+ 0xdc, 0x17, 0x35, 0xac, 0x4b, 0x7a, 0xbf, 0x52, 0x05, 0x58, 0x68, 0xe0, 0xaa, 0xd2, 0x8e,
+ };
+ const uint8_t kGoodCsrSubjectPublicKey[65] = {
+ 0x04, 0xa3, 0xbe, 0xa1, 0xf5, 0x42, 0x01, 0x07, 0x3c, 0x4b, 0x75, 0x85, 0xd8, 0xe2, 0x98, 0xac, 0x2f,
+ 0xf6, 0x98, 0xdb, 0xd9, 0x5b, 0xe0, 0x7e, 0xc1, 0x04, 0xd5, 0x73, 0xc5, 0xb0, 0x90, 0x77, 0x27, 0x00,
+ 0x1e, 0x22, 0xc7, 0x89, 0x5e, 0x4d, 0x75, 0x07, 0x89, 0x82, 0x0f, 0x49, 0xb6, 0x59, 0xd5, 0xc5, 0x15,
+ 0x7d, 0x93, 0xe6, 0x80, 0x5c, 0x70, 0x89, 0x0a, 0x43, 0x10, 0x3d, 0xeb, 0x3d, 0x4a,
+ };
+
+ Crypto::ClearSecretData(pubKey.Bytes(), pubKey.Length());
+
+ err = VerifyCertificateSigningRequestFormat(&kGoodCsr[0], sizeof(kGoodCsr));
+ NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR);
+
+ err = VerifyCertificateSigningRequest(&kGoodCsr[0], sizeof(kGoodCsr), pubKey);
+ NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR);
+
+ Crypto::P256PublicKey expected(kGoodCsrSubjectPublicKey);
+ NL_TEST_ASSERT(inSuite, pubKey.Matches(expected));
+ }
+
+ // Third case: bad signature
+ {
+ const uint8_t kBadSignatureSignatureCsr[205] = {
+ 0x30, 0x81, 0xca, 0x30, 0x70, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x03, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06,
+ 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xa3, 0xbe, 0xa1, 0xf5, 0x42, 0x01,
+ 0x07, 0x3c, 0x4b, 0x75, 0x85, 0xd8, 0xe2, 0x98, 0xac, 0x2f, 0xf6, 0x98, 0xdb, 0xd9, 0x5b, 0xe0, 0x7e, 0xc1, 0x04,
+ 0xd5, 0x73, 0xc5, 0xb0, 0x90, 0x77, 0x27, 0x00, 0x1e, 0x22, 0xc7, 0x89, 0x5e, 0x4d, 0x75, 0x07, 0x89, 0x82, 0x0f,
+ 0x49, 0xb6, 0x59, 0xd5, 0xc5, 0x15, 0x7d, 0x93, 0xe6, 0x80, 0x5c, 0x70, 0x89, 0x0a, 0x43, 0x10, 0x3d, 0xeb, 0x3d,
+ 0x4a, 0xa0, 0x00, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x48,
+ 0x00, 0x30, 0x45, 0x02, 0x20, 0x1d, 0x86, 0x21, 0xb4, 0xc2, 0xe1, 0xa9, 0xf3, 0xbc, 0xc8, 0x7c, 0xda, 0xb4, 0xb9,
+ 0xc6, 0x8c, 0xd0, 0xe4, 0x9a, 0x9c, 0xef, 0x02, 0x93, 0x98, 0x27, 0x7e, 0x81, 0x21, 0x5d, 0x20, 0x9d, 0x32, 0x02,
+ 0x21, 0x00, 0x8b, 0x6b, 0x49, 0xb6, 0x7d, 0x3e, 0x67, 0x9e, 0xb1, 0x21, 0xd3, 0x63, 0x82, 0x40, 0x4f, 0x49, 0xa4,
+ 0xdc, 0x17, 0x35, 0xac, 0x4b, 0x7a, 0xbf, 0x52, 0x05, 0x58, 0x68, 0xe0, 0xaa, 0xd2, 0x8e,
+ };
+
+ Crypto::ClearSecretData(pubKey.Bytes(), pubKey.Length());
+
+ err = VerifyCertificateSigningRequestFormat(&kBadSignatureSignatureCsr[0], sizeof(kBadSignatureSignatureCsr));
+ NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR);
+
+ err = VerifyCertificateSigningRequest(&kBadSignatureSignatureCsr[0], sizeof(kBadSignatureSignatureCsr), pubKey);
+ NL_TEST_ASSERT(inSuite, err != CHIP_NO_ERROR);
+ }
+
+ // Fourth case: CSR too big
+ {
+ const uint8_t kBadTooBigCsr[256] = {
+ 0x30, 0x81, 0xda, 0x30, 0x81, 0x81, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x0c, 0x03, 0x43, 0x53, 0x41, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08,
+ 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x72, 0x48, 0xc0, 0x36, 0xf0, 0x12, 0x5f, 0xd1,
+ 0x68, 0x92, 0x2d, 0xee, 0x57, 0x2b, 0x8e, 0x20, 0x9d, 0x97, 0xfa, 0x73, 0x92, 0xf1, 0xa0, 0x91, 0x0e, 0xfd, 0x04, 0x93,
+ 0x66, 0x47, 0x3c, 0xa3, 0xf0, 0xa8, 0x47, 0xa1, 0xa3, 0x1e, 0x13, 0x3b, 0x67, 0x3b, 0x18, 0xca, 0x77, 0xd1, 0xea, 0xe3,
+ 0x74, 0x93, 0x49, 0x8b, 0x9d, 0xdc, 0xef, 0xf9, 0xd5, 0x9b, 0x27, 0x19, 0xad, 0x6e, 0x90, 0xd2, 0xa0, 0x11, 0x30, 0x0f,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x0e, 0x31, 0x02, 0x30, 0x00, 0x30, 0x0a, 0x06, 0x08, 0x2a,
+ 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x20, 0x6a, 0x2e, 0x15, 0x34, 0x1b, 0xde,
+ 0xcb, 0x8f, 0xd2, 0xfd, 0x35, 0x03, 0x89, 0x0e, 0xed, 0x23, 0x54, 0xff, 0xcb, 0x79, 0xf9, 0xcb, 0x40, 0x33, 0x59, 0xb4,
+ 0x27, 0x69, 0xeb, 0x07, 0x3b, 0xd5, 0x02, 0x21, 0x00, 0xb0, 0x25, 0xc9, 0xc2, 0x21, 0xe8, 0x54, 0xcc, 0x08, 0x12, 0xf5,
+ 0x10, 0x3a, 0x0b, 0x25, 0x20, 0x0a, 0x61, 0x38, 0xc8, 0x6f, 0x82, 0xa7, 0x51, 0x84, 0x61, 0xae, 0x93, 0x69, 0xe4, 0x74,
+ 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ };
+
+ Crypto::ClearSecretData(pubKey.Bytes(), pubKey.Length());
+ err = VerifyCertificateSigningRequestFormat(&kBadTooBigCsr[0], sizeof(kBadTooBigCsr));
+ NL_TEST_ASSERT(inSuite, err == CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ err = VerifyCertificateSigningRequest(&kBadTooBigCsr[0], sizeof(kBadTooBigCsr), pubKey);
+ NL_TEST_ASSERT(inSuite, err != CHIP_NO_ERROR);
+ }
+
+ // Fifth case: obviously invalid CSR (1/2)
+ {
+ const uint8_t kTooSmallCsr[10] = { 0x30, 0x81, 0xda, 0x30, 0x81, 0x81, 0x02, 0x01, 0x00, 0x30 };
+
+ Crypto::ClearSecretData(pubKey.Bytes(), pubKey.Length());
+
+ err = VerifyCertificateSigningRequestFormat(&kTooSmallCsr[0], sizeof(kTooSmallCsr));
+ NL_TEST_ASSERT(inSuite, err == CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ err = VerifyCertificateSigningRequest(&kTooSmallCsr[0], sizeof(kTooSmallCsr), pubKey);
+ NL_TEST_ASSERT(inSuite, err != CHIP_NO_ERROR);
+ }
+
+ // Sixth case: obviously invalid CSR (2/2)
+ {
+ const uint8_t kNotSequenceCsr[205] = {
+ 0x31, 0x81, 0xca, 0x30, 0x70, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x03, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06,
+ 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xa3, 0xbe, 0xa1, 0xf5, 0x42, 0x01,
+ 0x07, 0x3c, 0x4b, 0x75, 0x85, 0xd8, 0xe2, 0x98, 0xac, 0x2f, 0xf6, 0x98, 0xdb, 0xd9, 0x5b, 0xe0, 0x7e, 0xc1, 0x04,
+ 0xd5, 0x73, 0xc5, 0xb0, 0x90, 0x77, 0x27, 0x00, 0x1e, 0x22, 0xc7, 0x89, 0x5e, 0x4d, 0x75, 0x07, 0x89, 0x82, 0x0f,
+ 0x49, 0xb6, 0x59, 0xd5, 0xc5, 0x15, 0x7d, 0x93, 0xe6, 0x80, 0x5c, 0x70, 0x89, 0x0a, 0x43, 0x10, 0x3d, 0xeb, 0x3d,
+ 0x4a, 0xa0, 0x00, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x48,
+ 0x00, 0x30, 0x45, 0x02, 0x20, 0x1d, 0x86, 0x21, 0xb4, 0xc2, 0xe1, 0xa9, 0xf3, 0xbc, 0xc8, 0x7c, 0xda, 0xb4, 0xb9,
+ 0xc6, 0x8c, 0xd0, 0xe4, 0x9a, 0x9c, 0xef, 0x02, 0x93, 0x98, 0x27, 0x7e, 0x81, 0x21, 0x5d, 0x20, 0x9d, 0x32, 0x02,
+ 0x21, 0x00, 0x8b, 0x6b, 0x49, 0xb6, 0x7d, 0x3e, 0x67, 0x9e, 0xb1, 0x22, 0xd3, 0x63, 0x82, 0x40, 0x4f, 0x49, 0xa4,
+ 0xdc, 0x17, 0x35, 0xac, 0x4b, 0x7a, 0xbf, 0x52, 0x05, 0x58, 0x68, 0xe0, 0xaa, 0xd2, 0x8e,
+ };
+
+ Crypto::ClearSecretData(pubKey.Bytes(), pubKey.Length());
+
+ err = VerifyCertificateSigningRequestFormat(&kNotSequenceCsr[0], sizeof(kNotSequenceCsr));
+ NL_TEST_ASSERT(inSuite, err == CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
+
+ err = VerifyCertificateSigningRequest(&kNotSequenceCsr[0], sizeof(kNotSequenceCsr), pubKey);
+ NL_TEST_ASSERT(inSuite, err != CHIP_NO_ERROR);
+ }
+}
+
void TestCSR_GenDirect(nlTestSuite * inSuite, void * inContext)
{
uint8_t csrBuf[kMAX_CSR_Length];
@@ -2136,6 +2300,7 @@ static const nlTest sTests[] = {
NL_TEST_DEF("Test adding entropy sources", TestAddEntropySources),
NL_TEST_DEF("Test PBKDF2 SHA256", TestPBKDF2_SHA256_TestVectors),
NL_TEST_DEF("Test P256 Keygen", TestP256_Keygen),
+ NL_TEST_DEF("Test CSR Verification + PK extraction", TestCSR_Verify),
NL_TEST_DEF("Test CSR Generation via P256Keypair method", TestCSR_GenByKeypair),
NL_TEST_DEF("Test Direct CSR Generation", TestCSR_GenDirect),
NL_TEST_DEF("Test Keypair Serialize", TestKeypair_Serialize),
diff --git a/src/darwin/Framework/CHIP/MTRAttestationInfo.h b/src/darwin/Framework/CHIP/MTRAttestationInfo.h
new file mode 100644
index 00000000000000..a31c181b0daebd
--- /dev/null
+++ b/src/darwin/Framework/CHIP/MTRAttestationInfo.h
@@ -0,0 +1,55 @@
+/**
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * 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.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Represents information relating to product attestation.
+ *
+ */
+@interface AttestationInfo : NSObject
+
+@property (nonatomic, copy) NSData * challenge;
+
+@property (nonatomic, copy) NSData * nonce;
+
+@property (nonatomic, copy) NSData * elements;
+
+@property (nonatomic, copy) NSData * elementsSignature;
+
+@property (nonatomic, copy) NSData * dac;
+
+@property (nonatomic, copy) NSData * pai;
+
+@property (nonatomic, copy) NSData * certificationDeclaration;
+
+@property (nonatomic, copy) NSData * firmwareInfo;
+
+- (instancetype)initWithChallenge:(NSData *)challenge
+ nonce:(NSData *)nonce
+ elements:(NSData *)elements
+ elementsSignature:(NSData *)elementsSignature
+ dac:(NSData *)dac
+ pai:(NSData *)pai
+ certificationDeclaration:(NSData *)certificationDeclaration
+ firmwareInfo:(NSData *)firmwareInfo;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/darwin/Framework/CHIP/MTRAttestationInfo.m b/src/darwin/Framework/CHIP/MTRAttestationInfo.m
new file mode 100644
index 00000000000000..93b9483cce6fe0
--- /dev/null
+++ b/src/darwin/Framework/CHIP/MTRAttestationInfo.m
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * 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.
+ */
+
+#import "MTRAttestationInfo.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation AttestationInfo : NSObject
+
+- (instancetype)initWithChallenge:(NSData *)challenge
+ nonce:(NSData *)nonce
+ elements:(NSData *)elements
+ elementsSignature:(NSData *)elementsSignature
+ dac:(NSData *)dac
+ pai:(NSData *)pai
+ certificationDeclaration:(NSData *)certificationDeclaration
+ firmwareInfo:(NSData *)firmwareInfo
+{
+ if (self = [super init]) {
+ _challenge = challenge;
+ _nonce = nonce;
+ _elements = elements;
+ _elementsSignature = elementsSignature;
+ _dac = dac;
+ _pai = pai;
+ _certificationDeclaration = certificationDeclaration;
+ _firmwareInfo = firmwareInfo;
+ }
+ return self;
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/darwin/Framework/CHIP/MTRCSRInfo.h b/src/darwin/Framework/CHIP/MTRCSRInfo.h
new file mode 100644
index 00000000000000..8971bfd6fbd294
--- /dev/null
+++ b/src/darwin/Framework/CHIP/MTRCSRInfo.h
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * 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.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Represents information relating to NOC CSR.
+ *
+ */
+@interface CSRInfo : NSObject
+
+@property (nonatomic, copy) NSData * nonce;
+
+@property (nonatomic, copy) NSData * elements;
+
+@property (nonatomic, copy) NSData * elementsSignature;
+
+@property (nonatomic, copy) NSData * csr;
+
+- (instancetype)initWithNonce:(NSData *)nonce
+ elements:(NSData *)elements
+ elementsSignature:(NSData *)elementsSignature
+ csr:(NSData *)csr;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/examples/platform/efr32/lcd.h b/src/darwin/Framework/CHIP/MTRCSRInfo.m
similarity index 52%
rename from examples/platform/efr32/lcd.h
rename to src/darwin/Framework/CHIP/MTRCSRInfo.m
index b3702305d40f69..676aa1ed36e5b4 100644
--- a/examples/platform/efr32/lcd.h
+++ b/src/darwin/Framework/CHIP/MTRCSRInfo.m
@@ -1,7 +1,6 @@
-/*
+/**
*
- * Copyright (c) 2020 Project CHIP Authors
- * All rights reserved.
+ * Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,23 +15,25 @@
* limitations under the License.
*/
-#pragma once
+#import "MTRCSRInfo.h"
-#include "AppConfig.h"
+NS_ASSUME_NONNULL_BEGIN
-#ifdef __cplusplus
-extern "C" {
-#endif
+@implementation CSRInfo : NSObject
-#define MAX_STR_LEN 48
-
-void initLCD(void);
-void * LCDContext();
-int LCD_clear(void * pContext);
-int LCD_drawPixel(void * pContext, int32_t x, int32_t y);
-int LCD_update(void);
-void LCDWriteQRCode(uint8_t * str);
-
-#ifdef __cplusplus
+- (instancetype)initWithNonce:(NSData *)nonce
+ elements:(NSData *)elements
+ elementsSignature:(NSData *)elementsSignature
+ csr:(NSData *)csr
+{
+ if (self = [super init]) {
+ _nonce = nonce;
+ _elements = elements;
+ _elementsSignature = elementsSignature;
+ _csr = csr;
+ }
+ return self;
}
-#endif
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/darwin/Framework/CHIP/MTRDeviceController.h b/src/darwin/Framework/CHIP/MTRDeviceController.h
index 61db4061896d10..faca45ddde863b 100644
--- a/src/darwin/Framework/CHIP/MTRDeviceController.h
+++ b/src/darwin/Framework/CHIP/MTRDeviceController.h
@@ -17,6 +17,7 @@
#import
+#import
#import
@class MTRBaseDevice;
@@ -119,6 +120,16 @@ typedef void (^MTRDeviceConnectionCallback)(MTRBaseDevice * _Nullable device, NS
*/
- (void)setPairingDelegate:(id)delegate queue:(dispatch_queue_t)queue;
+/**
+ * Sets this MTRDeviceController to use the given issuer for issuing operational certs. By default, the MTRDeviceController uses an
+ * internal issuer.
+ *
+ * @param[in] nocChainIssuer the NOC Chain issuer to use for issuer operational certs
+ *
+ * @param[in] queue The queue on which the callbacks will be delivered
+ */
+- (void)setNocChainIssuer:(id)nocChainIssuer queue:(dispatch_queue_t)queue;
+
/**
* Shutdown the controller. Calls to shutdown after the first one are NO-OPs.
*/
diff --git a/src/darwin/Framework/CHIP/MTRDeviceController.mm b/src/darwin/Framework/CHIP/MTRDeviceController.mm
index 425be4e5a1ac26..b170771f77ad0b 100644
--- a/src/darwin/Framework/CHIP/MTRDeviceController.mm
+++ b/src/darwin/Framework/CHIP/MTRDeviceController.mm
@@ -106,6 +106,7 @@ - (instancetype)initWithFactory:(MTRControllerFactory *)factory queue:(dispatch_
if ([self checkForInitError:(_operationalCredentialsDelegate != nullptr) logMsg:kErrorOperationalCredentialsInit]) {
return nil;
}
+ _operationalCredentialsDelegate->setChipWorkQueue(_chipWorkQueue);
}
return self;
}
@@ -229,6 +230,8 @@ - (BOOL)startup:(MTRDeviceControllerStartupParamsInternal *)startupParams
commissionerParams.pairingDelegate = _pairingDelegateBridge;
+ _operationalCredentialsDelegate->SetDeviceCommissioner(_cppCommissioner);
+
commissionerParams.operationalCredentialsDelegate = _operationalCredentialsDelegate;
commissionerParams.controllerRCAC = _operationalCredentialsDelegate->RootCertSpan();
@@ -654,6 +657,17 @@ - (void)setPairingDelegate:(id)delegate queue:(dispatc
});
}
+- (void)setNocChainIssuer:(id)nocChainIssuer queue:(dispatch_queue_t)queue
+{
+ VerifyOrReturn([self checkIsRunning]);
+
+ dispatch_sync(_chipWorkQueue, ^{
+ VerifyOrReturn([self checkIsRunning]);
+
+ self->_operationalCredentialsDelegate->SetNocChainIssuer(nocChainIssuer, queue);
+ });
+}
+
- (BOOL)checkForInitError:(BOOL)condition logMsg:(NSString *)logMsg
{
if (condition) {
diff --git a/src/darwin/Framework/CHIP/MTRNOCChainIssuer.h b/src/darwin/Framework/CHIP/MTRNOCChainIssuer.h
new file mode 100644
index 00000000000000..2ef76670532118
--- /dev/null
+++ b/src/darwin/Framework/CHIP/MTRNOCChainIssuer.h
@@ -0,0 +1,52 @@
+/**
+ *
+ * Copyright (c) 2022 Project CHIP Authors
+ *
+ * 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.
+ */
+
+#import
+
+#import
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol MTRNOCChainIssuer
+@required
+
+/**
+ * @brief When a MTRNOCChainIssuer is set for the MTRDeviceController, then onNOCChainGenerationNeeded will be
+ * called when the NOC CSR needs to be signed. This allows for custom credentials issuer
+ * implementations, for example, when a proprietary cloud API will perform the CSR signing.
+
+ * The commissioning workflow will stop upon the onNOCChainGenerationNeeded callback and
+ * resume once onNOCChainGenerationComplete is called
+
+ * The following fields MUST be passed to onNOCChainGenerationComplete with non-nil values:
+ * rootCertificate, intermediateCertificate, operationalCertificate.
+ * If ipk and adminSubject are passed, then they will be used in
+ * the AddNOC command sent to the commissionee. If they are not passed, then the values
+ * provided in the MTRDeviceController initialization will be used.
+ *
+ * All csr and attestation fields are provided to allow for custom attestestation checks.
+ */
+- (void)onNOCChainGenerationNeeded:(CSRInfo *)csrInfo
+ attestationInfo:(AttestationInfo *)attestationInfo
+ onNOCChainGenerationComplete:(void (^)(NSData * operationalCertificate, NSData * intermediateCertificate,
+ NSData * rootCertificate, NSData * ipk, NSNumber * adminSubject,
+ NSError * __autoreleasing * error))onNOCChainGenerationComplete;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.h b/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.h
index cb812ddc41e67a..ce59ff7922bdec 100644
--- a/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.h
+++ b/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.h
@@ -24,8 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, MTROnboardingPayloadType) {
MTROnboardingPayloadTypeQRCode = 0,
MTROnboardingPayloadTypeManualCode,
- MTROnboardingPayloadTypeNFC,
- MTROnboardingPayloadTypeAdmin,
+ MTROnboardingPayloadTypeNFC
};
@interface MTROnboardingPayloadParser : NSObject
diff --git a/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.m b/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.m
index 3af4fe1a38bb9c..df68311d700914 100644
--- a/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.m
+++ b/src/darwin/Framework/CHIP/MTROnboardingPayloadParser.m
@@ -29,7 +29,6 @@ + (nullable MTRSetupPayload *)setupPayloadForOnboardingPayload:(NSString *)onboa
MTRSetupPayload * payload;
switch (type) {
case MTROnboardingPayloadTypeManualCode:
- case MTROnboardingPayloadTypeAdmin:
payload = [self setupPayloadForManualCodeOnboardingPayload:onboardingPayload error:error];
break;
case MTROnboardingPayloadTypeQRCode:
diff --git a/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.h b/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.h
index d7580bce7e9e87..803e19eee30eed 100644
--- a/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.h
+++ b/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.h
@@ -22,9 +22,11 @@
#import "MTRError_Internal.h"
#import "MTRKeypair.h"
+#import "MTRNOCChainIssuer.h"
#import "MTRP256KeypairBridge.h"
#import "MTRPersistentStorageDelegateBridge.h"
+#include
#include
#include
#include
@@ -55,6 +57,24 @@ class MTROperationalCredentialsDelegate : public chip::Controller::OperationalCr
void SetDeviceID(chip::NodeId deviceId) { mDeviceBeingPaired = deviceId; }
void ResetDeviceID() { mDeviceBeingPaired = chip::kUndefinedNodeId; }
+ void SetDeviceCommissioner(chip::Controller::DeviceCommissioner * cppCommissioner) { mCppCommissioner = cppCommissioner; }
+
+ chip::Optional GetCommissioningParameters()
+ {
+ return mCppCommissioner == nullptr ? chip::NullOptional : mCppCommissioner->GetCommissioningParameters();
+ }
+
+ void setChipWorkQueue(dispatch_queue_t chipWorkQueue) { mChipWorkQueue = chipWorkQueue; }
+
+ void SetNocChainIssuer(id nocChainIssuer, dispatch_queue_t nocChainIssuerQueue)
+ {
+ mNocChainIssuer = nocChainIssuer;
+ mNocChainIssuerQueue = nocChainIssuerQueue;
+ }
+
+ CHIP_ERROR NOCChainGenerated(CHIP_ERROR status, const chip::ByteSpan & noc, const chip::ByteSpan & icac,
+ const chip::ByteSpan & rcac, chip::Optional ipk, chip::Optional adminSubject);
+
CHIP_ERROR GenerateNOC(chip::NodeId nodeId, chip::FabricId fabricId, const chip::CATValues & cats,
const chip::Crypto::P256PublicKey & pubkey, chip::MutableByteSpan & noc);
@@ -97,6 +117,29 @@ class MTROperationalCredentialsDelegate : public chip::Controller::OperationalCr
chip::FabricId fabricId, const chip::CATValues & cats, const chip::Crypto::P256PublicKey & pubkey,
chip::MutableByteSpan & noc);
+ /**
+ * When a NOCChainIssuer is set, then onNOCChainGenerationNeeded will be called when the NOC CSR needs to be
+ * signed. This allows for custom credentials issuer implementations, for example, when a proprietary cloud API will perform the
+ * CSR signing. The commissioning workflow will stop upon the onNOCChainGenerationNeeded callback and resume once
+ * onNOCChainGenerationComplete is called.
+ *
+ * Caller must pass a non-nil value for the rootCertificate, intermediateCertificate, operationalCertificate
+ * If ipk and adminSubject are non nil, then they will be used in the AddNOC command sent to the commissionee. If they are not
+ * populated, then the values provided in the MTRDeviceController initialization will be used.
+ */
+ void onNOCChainGenerationComplete(NSData * operationalCertificate, NSData * intermediateCertificate, NSData * rootCertificate,
+ NSData * _Nullable ipk, NSNumber * _Nullable adminSubject, NSError * __autoreleasing * error);
+
+ void setNSError(CHIP_ERROR err, NSError * __autoreleasing * outError);
+
+ CHIP_ERROR CallbackGenerateNOCChain(const chip::ByteSpan & csrElements, const chip::ByteSpan & csrNonce,
+ const chip::ByteSpan & attestationSignature, const chip::ByteSpan & attestationChallenge, const chip::ByteSpan & DAC,
+ const chip::ByteSpan & PAI, chip::Callback::Callback * onCompletion);
+
+ CHIP_ERROR LocalGenerateNOCChain(const chip::ByteSpan & csrElements, const chip::ByteSpan & csrNonce,
+ const chip::ByteSpan & attestationSignature, const chip::ByteSpan & attestationChallenge, const chip::ByteSpan & DAC,
+ const chip::ByteSpan & PAI, chip::Callback::Callback * onCompletion);
+
ChipP256KeypairPtr mIssuerKey;
chip::Crypto::AesCcm128Key mIPK;
@@ -115,6 +158,12 @@ class MTROperationalCredentialsDelegate : public chip::Controller::OperationalCr
// have a root cert, and at that point it gets initialized to nil.
NSData * _Nullable mRootCert;
NSData * _Nullable mIntermediateCert;
+
+ chip::Controller::DeviceCommissioner * mCppCommissioner = nullptr;
+ id _Nullable mNocChainIssuer;
+ dispatch_queue_t _Nullable mNocChainIssuerQueue;
+ dispatch_queue_t _Nullable mChipWorkQueue;
+ chip::Callback::Callback * mOnNOCCompletionCallback = nullptr;
};
NS_ASSUME_NONNULL_END
diff --git a/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.mm b/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.mm
index 3688c9a08f7433..1113ad18505086 100644
--- a/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.mm
+++ b/src/darwin/Framework/CHIP/MTROperationalCredentialsDelegate.mm
@@ -27,7 +27,10 @@
#import "MTRLogging.h"
#import "NSDataSpanConversion.h"
+#include
#include
+#include
+#include
#include
#include
#include
@@ -112,9 +115,171 @@
return NewNodeOperationalX509Cert(noc_request, pubkey, signingKeypair, noc);
}
+CHIP_ERROR MTROperationalCredentialsDelegate::NOCChainGenerated(CHIP_ERROR status, const ByteSpan & noc, const ByteSpan & icac,
+ const ByteSpan & rcac, Optional ipk, Optional