diff --git a/.clang-format b/.clang-format index a1c292ac4afefa..4fb95466896aeb 100644 --- a/.clang-format +++ b/.clang-format @@ -106,6 +106,7 @@ SpacesInSquareBrackets: false Standard: Cpp11 TabWidth: 8 UseTab: Never +InsertNewlineAtEOF: true --- Language: ObjC BasedOnStyle: WebKit diff --git a/.clang-tidy b/.clang-tidy index fcb62d5d505d32..4073b9ae387392 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -12,6 +12,7 @@ Checks: > readability-redundant-string-init, -bugprone-assignment-in-if-condition, -bugprone-branch-clone, + -bugprone-casting-through-void, #TODO remove this after fixing issues in source code, issue 34008 -bugprone-copy-constructor-init, -bugprone-easily-swappable-parameters, -bugprone-forward-declaration-namespace, diff --git a/.flake8 b/.flake8 deleted file mode 100644 index 65b1c2a93da0e8..00000000000000 --- a/.flake8 +++ /dev/null @@ -1,6 +0,0 @@ -[flake8] -max-line-length = 132 -exclude = third_party - .* - out/* - ./examples/common/QRCode/* diff --git a/.github/.wordlist.txt b/.github/.wordlist.txt index 21708845b4ccfb..25c9ef8daa6594 100644 --- a/.github/.wordlist.txt +++ b/.github/.wordlist.txt @@ -369,6 +369,7 @@ DelayedActionTime delayedApplyActionTimeSec delayedQueryActionTimeSec delayQuery +deliverables demangle deployable depottools @@ -585,6 +586,8 @@ GenericWiFiConfigurationManagerImpl GetDeviceId GetDeviceInfo GetDns +getter +getters GetInDevelopmentTests GetIP getManualTests @@ -643,6 +646,8 @@ HomePods hostapd hostname href +HSM +hsm HTTPS HW hwadr @@ -668,6 +673,7 @@ ifdef ifdefs IGMP ihex +Illuminance IlluminanceMeasurement IM imager @@ -724,6 +730,7 @@ JLink JLinkExe JLinkRTTClient JN +jni jpg jre js @@ -898,12 +905,14 @@ MoveWithOnOff MPSL MRP MTD +MTR MTU Multiband Multicast multilib Multiprotocol multithreaded +mutex mutexes mv MX @@ -933,6 +942,7 @@ nfds NitricOxideConcentrationMeasurement NitrogenDioxideConcentrationMeasurement nl +nltest NLUnitTest NLUnitTests nmcli @@ -955,6 +965,7 @@ NTP nullable nullptr NUM +NuttX NVM NVS nwdiag @@ -964,6 +975,7 @@ objcopy OccupancySensing OctetString OECORE +OID ol Onboarding onboardingcodes @@ -985,6 +997,7 @@ openweave OperationalCredentials operationalDataset opkg +OPTIGA optionMask optionOverride optionsMask @@ -1428,6 +1441,7 @@ transitionTime TransportMgrBase TriggerEffect TRNG +trustm TrustedRootCertificates tsan TSG @@ -1440,6 +1454,7 @@ ttymxc ttyUSB TurbidityConcentrationMeasurement TvCasting +TVOC tvOS TXD txt @@ -1492,6 +1507,7 @@ utils UUID ux validator +valgrind vcom VCP Vectorcall diff --git a/.github/actions/bootstrap-cache/action.yaml b/.github/actions/bootstrap-cache/action.yaml index af0d09819a5e26..9a883ecf22da79 100644 --- a/.github/actions/bootstrap-cache/action.yaml +++ b/.github/actions/bootstrap-cache/action.yaml @@ -1,9 +1,9 @@ name: Bootstrap cache -description: Bootstrap cache +description: Bootstrap cache (deprecated) runs: using: "composite" steps: - - uses: Wandalen/wretry.action@v1.3.0 + - uses: Wandalen/wretry.action@v1.4.10 name: Bootstrap cache continue-on-error: true with: diff --git a/.github/actions/bootstrap/action.yaml b/.github/actions/bootstrap/action.yaml index 8f94830b8c0e51..749dcb739b9854 100644 --- a/.github/actions/bootstrap/action.yaml +++ b/.github/actions/bootstrap/action.yaml @@ -5,9 +5,73 @@ inputs: description: "Platform name" required: false default: none + bootstrap-log-name: + description: "Bootstrap log name" + required: false + default: bootstrap-logs-${{ github.job }} +outputs: + cache-hit: + description: "Bootstrap environment was restored from cache" + value: ${{ fromJSON(steps.restore.outputs.outputs).cache-hit }} # dynamic action returns all outputs in `outputs` + runs: using: "composite" steps: - - name: Bootstrap + - name: Determine bootstrap cache configuration + id: prepare + shell: bash + run: | + # Determine bootstrap cache configuration + # In addition to the various setup files, the work directory matters as well, + # because the bootstrapped Pigweed environment contains absolute paths. + echo "Calculating bootstrap cache key for '$PWD'" + FILES_HASH="${{ hashFiles('scripts/setup/*', 'third_party/pigweed/**') }}" + FINAL_HASH="$(echo "$PWD:$FILES_HASH" | shasum -a 256 | cut -d' ' -f1)" + echo key="${RUNNER_OS}-${RUNNER_ARCH}-${{ inputs.platform }}-${FINAL_HASH}" | tee -a "$GITHUB_OUTPUT" + + # Split caches across backends + case "$RUNNER_OS" in + macOS) echo backend=actions;; + *) echo backend=buildjet;; + esac | tee -a "$GITHUB_OUTPUT" + + - name: Bootstrap from cache + id: restore + uses: ./.github/actions/dynamic + continue-on-error: true + with: + action: ${{ steps.prepare.outputs.backend }}/cache/restore@v4 + with: | + key: ${{ steps.prepare.outputs.key }} + path: | + .environment + build_overrides/pigweed_environment.gni + + - name: Run bootstrap + if: ${{ fromJSON(steps.restore.outputs.outputs).cache-hit != 'true' }} + env: + PW_NO_CIPD_CACHE_DIR: 1 + PW_ENVSETUP_NO_BANNER: 1 shell: bash - run: bash scripts/bootstrap.sh -p all,${{ inputs.platform }} + run: source scripts/bootstrap.sh -p all,${{ inputs.platform }} + + - name: Save bootstrap cache + uses: ./.github/actions/dynamic + if: ${{ fromJSON(steps.restore.outputs.outputs).cache-hit != 'true' }} + continue-on-error: true + with: + action: ${{ steps.prepare.outputs.backend }}/cache/save@v4 + with: | + key: ${{ steps.prepare.outputs.key }} + path: | + .environment + build_overrides/pigweed_environment.gni + + - name: Upload bootstrap logs + uses: actions/upload-artifact@v4 + if: ${{ always() && !env.ACT && fromJSON(steps.restore.outputs.outputs).cache-hit != 'true' }} + with: + name: ${{ inputs.bootstrap-log-name }} + path: | + .environment/gn_out/.ninja_log + .environment/pigweed-venv/*.log diff --git a/.github/actions/checkout-submodules-and-bootstrap/action.yaml b/.github/actions/checkout-submodules-and-bootstrap/action.yaml index b514b8dd795509..df3fdff1e02ce4 100644 --- a/.github/actions/checkout-submodules-and-bootstrap/action.yaml +++ b/.github/actions/checkout-submodules-and-bootstrap/action.yaml @@ -11,7 +11,7 @@ inputs: bootstrap-log-name: description: "Bootstrap log name" required: false - default: bootstrap-logs + default: bootstrap-logs-${{ github.job }} runs: using: "composite" steps: @@ -26,18 +26,18 @@ runs: with: platform: ${{ inputs.platform }} extra-parameters: ${{ inputs.extra-submodule-parameters }} - - name: Bootstrap Cache - uses: ./.github/actions/bootstrap-cache - name: Bootstrap uses: ./.github/actions/bootstrap - env: - PW_NO_CIPD_CACHE_DIR: Y with: platform: ${{ inputs.platform }} + bootstrap-log-name: ${{ inputs.bootstrap-log-name }} - name: Dump disk info after checkout submodule & Bootstrap shell: bash run: scripts/dump_diskspace_info.sh - - name: Upload Bootstrap Logs - uses: ./.github/actions/upload-bootstrap-logs - with: - bootstrap-log-name: ${{ inputs.bootstrap-log-name }} + - name: Work around TSAN ASLR issues + if: runner.os == 'Linux' && !env.ACT + shell: bash + run: | + # See https://stackoverflow.com/a/77856955/2365113 + if [[ "$UID" == 0 ]]; then function sudo() { "$@"; }; fi + sudo sysctl vm.mmap_rnd_bits=28 diff --git a/.github/actions/checkout-submodules/action.yaml b/.github/actions/checkout-submodules/action.yaml index 429fb1a5427011..e180a8c49458a2 100644 --- a/.github/actions/checkout-submodules/action.yaml +++ b/.github/actions/checkout-submodules/action.yaml @@ -11,7 +11,7 @@ inputs: runs: using: "composite" steps: - - uses: Wandalen/wretry.action@v1.3.0 + - uses: Wandalen/wretry.action@v1.4.10 name: Checkout submodules with: command: scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform ${{ inputs.platform }} ${{ inputs.extra-parameters }} diff --git a/.github/actions/dynamic/action.yaml b/.github/actions/dynamic/action.yaml new file mode 100644 index 00000000000000..7cee233c4f4ce2 --- /dev/null +++ b/.github/actions/dynamic/action.yaml @@ -0,0 +1,38 @@ +name: Dynamic +description: Dynamically resolves another GitHub action +inputs: + action: + description: Action reference + required: true + with: + description: Action inputs as multi-line YAML string + required: false + default: "" +outputs: + outputs: + description: JSON object of outputs from the action + value: ${{ steps.run.outputs.outputs }} +runs: + using: composite + steps: + - name: Instantiate + shell: bash + run: | + # Dynamically invoke ${{ inputs.action }} + with='${{ inputs.with }}' + [[ -z "$with" ]] || with="$(echo ' with:'; sed -e 's/^/ /' <<<"$with")" + mkdir -p ./.tmp/dynamic-action-instance + cat <./.tmp/dynamic-action-instance/action.yaml + runs: + using: composite + steps: + - id: run + uses: ${{ inputs.action }} + $with + outputs: + outputs: + value: $(echo '$'){{ toJSON(steps.run.outputs) }} + END + - name: Run + id: run + uses: ./.tmp/dynamic-action-instance diff --git a/.github/actions/maximize-runner-disk/action.yaml b/.github/actions/maximize-runner-disk/action.yaml index fe5f95352aa53e..d71ba3646d3279 100644 --- a/.github/actions/maximize-runner-disk/action.yaml +++ b/.github/actions/maximize-runner-disk/action.yaml @@ -4,47 +4,45 @@ runs: using: "composite" steps: - name: Free up disk space on the github runner - if: ${{ !env.ACT }} + if: runner.os == 'Linux' && !env.ACT shell: bash run: | # maximize-runner-disk - if [[ "$RUNNER_OS" == Linux ]]; then - # Directories to prune to free up space. Candidates: - # 1.6G /usr/share/dotnet - # 1.1G /usr/local/lib/android/sdk/platforms - # 1000M /usr/local/lib/android/sdk/build-tools - # 8.9G /usr/local/lib/android/sdk - # This list can be amended later to change the trade-off between the amount of - # disk space freed up, and how long it takes to do so (deleting many files is slow). - prune=(/usr/share/dotnet /usr/local/lib/android/sdk/platforms /usr/local/lib/android/sdk/build-tools) + # Directories to prune to free up space. Candidates: + # 1.6G /usr/share/dotnet + # 1.1G /usr/local/lib/android/sdk/platforms + # 1000M /usr/local/lib/android/sdk/build-tools + # 8.9G /usr/local/lib/android/sdk + # This list can be amended later to change the trade-off between the amount of + # disk space freed up, and how long it takes to do so (deleting many files is slow). + prune=(/usr/share/dotnet /usr/local/lib/android/sdk/platforms /usr/local/lib/android/sdk/build-tools) - if [[ "$UID" -eq 0 && -d /__w ]]; then - root=/runner-root-volume - if [[ ! -d "$root" ]]; then - echo "Unable to maximize disk space, job is running inside a container and $root is not mounted" - exit 0 - fi - function sudo() { "$@"; } # we're already root (and sudo is probably unavailable) - elif [[ "$UID" -ne 0 && "$RUNNER_ENVIRONMENT" == github-hosted ]]; then - root= - else - echo "Unable to maximize disk space, unknown runner environment" + if [[ "$UID" -eq 0 && -d /__w ]]; then + root=/runner-root-volume + if [[ ! -d "$root" ]]; then + echo "Unable to maximize disk space, job is running inside a container and $root is not mounted" exit 0 fi - - echo "Freeing up runner disk space on ${root:-/}" - function avail() { df -k --output=avail "${root:-/}" | grep '^[0-9]*$'; } - function now() { date '+%s'; } - before="$(avail)" start="$(now)" - for dir in "${prune[@]}"; do - if [[ -d "${root}${dir}" ]]; then - echo "- $dir" - # du -sh -- "${root}${dir}" - sudo rm -rf -- "${root}${dir}" - else - echo "- $dir (not found)" - fi - done - after="$(avail)" end="$(now)" - echo "Done, freed up $(( (after - before) / 1024 ))M of disk space in $(( end - start )) seconds." + function sudo() { "$@"; } # we're already root (and sudo is probably unavailable) + elif [[ "$UID" -ne 0 && "$RUNNER_ENVIRONMENT" == github-hosted ]]; then + root= + else + echo "Unable to maximize disk space, unknown runner environment" + exit 0 fi + + echo "Freeing up runner disk space on ${root:-/}" + function avail() { df -k --output=avail "${root:-/}" | grep '^[0-9]*$'; } + function now() { date '+%s'; } + before="$(avail)" start="$(now)" + for dir in "${prune[@]}"; do + if [[ -d "${root}${dir}" ]]; then + echo "- $dir" + # du -sh -- "${root}${dir}" + sudo rm -rf -- "${root}${dir}" + else + echo "- $dir (not found)" + fi + done + after="$(avail)" end="$(now)" + echo "Done, freed up $(( (after - before) / 1024 ))M of disk space in $(( end - start )) seconds." diff --git a/.github/actions/perform-codeql-analysis/action.yaml b/.github/actions/perform-codeql-analysis/action.yaml index af12a9e716ee61..f1caf10dc3df1c 100644 --- a/.github/actions/perform-codeql-analysis/action.yaml +++ b/.github/actions/perform-codeql-analysis/action.yaml @@ -27,7 +27,7 @@ runs: with: sarif_file: "sarif-results/${{ inputs.language }}.sarif" - name: Upload loc as a Build Artifact - uses: actions/upload-artifact@v2.2.0 + uses: actions/upload-artifact@v4 with: name: sarif-results path: sarif-results diff --git a/.github/actions/upload-bootstrap-logs/action.yaml b/.github/actions/upload-bootstrap-logs/action.yaml deleted file mode 100644 index 85209c7302f2a5..00000000000000 --- a/.github/actions/upload-bootstrap-logs/action.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: Upload bootstrap logs -description: Upload bootstrap logs -inputs: - bootstrap-log-name: - description: "Bootstrap log name" - required: false - default: bootstrap-logs -runs: - using: "composite" - steps: - - name: Uploading bootstrap logs - uses: actions/upload-artifact@v3 - if: ${{ always() && !env.ACT }} - with: - name: ${{ inputs.bootstrap-log-name }} - path: | - .environment/gn_out/.ninja_log - .environment/pigweed-venv/*.log diff --git a/.github/actions/upload-size-reports/action.yaml b/.github/actions/upload-size-reports/action.yaml index c71312ae6578ee..41fe8c820c7cc0 100644 --- a/.github/actions/upload-size-reports/action.yaml +++ b/.github/actions/upload-size-reports/action.yaml @@ -9,7 +9,7 @@ runs: using: "composite" steps: - name: Uploading Size Reports - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ !env.ACT }} with: name: Size,${{ inputs.platform-name }}-Examples,${{ env.GH_EVENT_PR }},${{ env.GH_EVENT_HASH }},${{ env.GH_EVENT_PARENT }},${{ github.event_name }} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8275c9f1164d0a..b55417cdba78ed 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -50,7 +50,6 @@ updates: - dependency-name: "third_party/nlassert/repo" - dependency-name: "third_party/nlfaultinjection/repo" - dependency-name: "third_party/nlio/repo" - - dependency-name: "third_party/nlunit-test/repo" - dependency-name: "third_party/nxp/repo" - dependency-name: "third_party/open-iot-sdk/repo" - dependency-name: "third_party/ot-br-posix/repo" diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml index 210ae86a24fbf6..909ef045c039e4 100644 --- a/.github/issue-labeler.yml +++ b/.github/issue-labeler.yml @@ -5,9 +5,12 @@ darwin: # (like "kiosk" or whatnot), but do allow matching "ios8" and things # like that. # + # Make sure we don't trigger for the string "MAC", which almost + # certainly has nothing to do with Darwin. + # # \\b means "word boundary" # (?![a-z]) means "there is no next char in the range a-z". - - "/(\\bios(?![a-z])|homepod|darwin|\\bmac\\b|macos)/i" + - "/(\\b[Ii][Oo][Ss](?![a-zA-Z])|[Hh][Oo][Mm][Ee][Pp][Oo][Dd]|[Dd][Aa][Rr][Ww][Ii][Nn]|\\bm[Aa][Cc]\\b|\\bMa[Cc]\\b|\\bM[Aa]c\\b|[Mm][Aa][Cc][Oo][Ss])/" linux: - "/(linux)/i" diff --git a/.github/workflows/bloat_check.yaml b/.github/workflows/bloat_check.yaml index 8f04e49f961498..a1b93c882bf64f 100644 --- a/.github/workflows/bloat_check.yaml +++ b/.github/workflows/bloat_check.yaml @@ -14,6 +14,7 @@ name: Bloat Check on: + workflow_dispatch: schedule: - cron: "*/5 * * * *" @@ -33,7 +34,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 steps: - name: Checkout diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e509aab995c682..dc152c1a714f19 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,6 +16,8 @@ name: Builds on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -40,7 +42,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" @@ -136,7 +138,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" @@ -202,11 +204,13 @@ jobs: run: | ./scripts/run_in_build_env.sh "./scripts/run_codegen_targets.sh out/sanitizers" - name: Clang-tidy validation + # NOTE: clang-tidy crashes on CodegenDataModel_Write due to Nullable/std::optional check. + # See https://github.com/llvm/llvm-project/issues/97426 run: | ./scripts/run_in_build_env.sh \ "./scripts/run-clang-tidy-on-compile-commands.py \ --compile-database out/sanitizers/compile_commands.json \ - --file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|-ReadImpl|-InvokeSubscribeImpl' \ + --file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|-ReadImpl|-InvokeSubscribeImpl|CodegenDataModel_Write' \ check \ " - name: Clean output @@ -279,7 +283,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" @@ -330,8 +334,8 @@ jobs: scripts/run_in_build_env.sh 'scripts/examples/gn_build_example.sh examples/chip-tool out/' scripts/run_in_build_env.sh 'virtualenv pyenv' source pyenv/bin/activate - pip3 install -r src/setup_payload/python/requirements.txt - python3 src/setup_payload/tests/run_python_setup_payload_gen_test.py out/chip-tool + pip3 install -r scripts/setup/requirements.setuppayload.txt + python3 src/setup_payload/tests/run_python_setup_payload_test.py out/chip-tool build_linux_python_lighting_device: name: Build on Linux (python lighting-app) @@ -340,7 +344,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" @@ -369,7 +373,7 @@ jobs: build_darwin: name: Build on Darwin (clang, python_lib, simulated) - runs-on: macos-latest + runs-on: macos-13 if: github.actor != 'restyled-io[bot]' steps: @@ -420,10 +424,13 @@ jobs: run: | ./scripts/run_in_build_env.sh "./scripts/run_codegen_targets.sh out/default" - name: Clang-tidy validation + # NOTE: clang-tidy crashes on CodegenDataModel_Write due to Nullable/std::optional check. + # See https://github.com/llvm/llvm-project/issues/97426 run: | ./scripts/run_in_build_env.sh \ "./scripts/run-clang-tidy-on-compile-commands.py \ --compile-database out/default/compile_commands.json \ + --file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|CodegenDataModel_Write' \ check \ " - name: Uploading diagnostic logs @@ -449,7 +456,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/cert_test_checks.yaml b/.github/workflows/cert_test_checks.yaml new file mode 100644 index 00000000000000..44d545a6636897 --- /dev/null +++ b/.github/workflows/cert_test_checks.yaml @@ -0,0 +1,35 @@ +# Copyright (c) 2024 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: Certification test checks + +on: + pull_request: + paths: + - "src/app/tests/suites/certification/**" + +jobs: + check-certification-tests: + name: Check for common problems in certification tests + runs-on: ubuntu-latest + + container: + image: ghcr.io/project-chip/chip-build + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Run checks + run: | + python3 scripts/tests/matter_yaml_linter.py diff --git a/.github/workflows/check-data-model-directory-updates.yaml b/.github/workflows/check-data-model-directory-updates.yaml new file mode 100644 index 00000000000000..305da81d9da817 --- /dev/null +++ b/.github/workflows/check-data-model-directory-updates.yaml @@ -0,0 +1,31 @@ +# Copyright (c) 2024 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: Check for changes to data_model directory without a sha update + +on: + pull_request: + paths: + - "data_model/**" + +jobs: + check-submodule-update-label: + name: Check for changes to data_model directory without a sha update + runs-on: ubuntu-latest + if: "git diff --name-only HEAD^..HEAD data_model/ | grep -q spec_sha" + steps: + - name: Error Message + run: echo This pull request attempts to update data_model directory, but is missing updates to spec_sha file with the latest version of the sha. Files in the data_model directory are generated automatically and should not be updated manually. + - name: Fail Job + run: exit 1 diff --git a/.github/workflows/chef.yaml b/.github/workflows/chef.yaml index 3432fdc9a09779..b3d3f7f3a90f7c 100644 --- a/.github/workflows/chef.yaml +++ b/.github/workflows/chef.yaml @@ -16,6 +16,8 @@ name: Build Chef CI examples on all platforms on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -33,7 +35,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 options: --user root steps: @@ -54,7 +56,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-esp32:35 + image: ghcr.io/project-chip/chip-build-esp32:54 options: --user root steps: @@ -75,7 +77,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-nrf-platform:35 + image: ghcr.io/project-chip/chip-build-nrf-platform:54 options: --user root steps: @@ -96,7 +98,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-telink:35 + image: ghcr.io/project-chip/chip-build-telink:57 options: --user root steps: @@ -108,7 +110,7 @@ jobs: platform: telink # - name: Update Zephyr to specific revision (for developers purpose) # shell: bash - # run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py b5c8028ec94f3efa69decff3a09f0d6f8a21fd6d" + # run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py ab81a585fca6a83b30e1f4e58a021113d6a3acb8" - name: CI Examples Telink shell: bash run: | diff --git a/.github/workflows/cirque.yaml b/.github/workflows/cirque.yaml index c9fe4b296d6edb..b3e2f9d1086ee8 100644 --- a/.github/workflows/cirque.yaml +++ b/.github/workflows/cirque.yaml @@ -16,6 +16,8 @@ name: Cirque on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -40,7 +42,7 @@ jobs: # need to run with privilege, which isn't supported by job.XXX.contaner # https://github.com/actions/container-action/issues/2 # container: - # image: ghcr.io/project-chip/chip-build-cirque:35 + # image: ghcr.io/project-chip/chip-build-cirque:54 # volumes: # - "/tmp:/tmp" # - "/dev/pts:/dev/pts" @@ -57,6 +59,7 @@ jobs: with: platform: linux + # TODO: Is what's being cached here actually compatible with a regular bootstrap? - name: Bootstrap Cache uses: ./.github/actions/bootstrap-cache - name: Bootstrap Cirque @@ -71,7 +74,7 @@ jobs: - name: Get Cirque Bootstrap cache key id: cirque-bootstrap-cache-key run: echo "val=$(scripts/tests/cirque_tests.sh cachekeyhash)" >> $GITHUB_OUTPUT - - uses: Wandalen/wretry.action@v1.4.5 + - uses: Wandalen/wretry.action@v1.4.10 name: Cirque Bootstrap cache if: ${{ !env.ACT }} continue-on-error: true diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml index e6e14ec4929a11..a916250572bb6e 100644 --- a/.github/workflows/darwin-tests.yaml +++ b/.github/workflows/darwin-tests.yaml @@ -16,6 +16,8 @@ name: Darwin Tests on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -49,7 +51,7 @@ jobs: LSAN_OPTIONS: detect_leaks=1 malloc_context_size=40 suppressions=scripts/tests/chiptest/lsan-mac-suppressions.txt if: github.actor != 'restyled-io[bot]' - runs-on: macos-latest + runs-on: macos-13 steps: - name: Checkout @@ -72,15 +74,7 @@ jobs: - name: Run macOS Darwin Framework Tool Build Debug working-directory: src/darwin/Framework - # Keep whatever Xcode settings - # for OTHER_CFLAGS exist by using ${inherited}. - # - # Enable -Wconversion by hand as well, because it seems to not be - # enabled by default in the Xcode config. - # - # Disable availability annotations, since we are not building against a system - # Matter.framework. - run: xcodebuild -target "darwin-framework-tool" -sdk macosx -configuration Debug OTHER_CFLAGS='${inherited} -Wconversion' GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' + run: xcodebuild -target "darwin-framework-tool" -sdk macosx -configuration Debug - name: Delete Defaults run: defaults delete com.apple.dt.xctest.tool continue-on-error: true diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml index 088c541495665b..ba9c0f1d9f02c3 100644 --- a/.github/workflows/darwin.yaml +++ b/.github/workflows/darwin.yaml @@ -16,122 +16,121 @@ name: Darwin on: push: + branches-ignore: + - "dependabot/**" pull_request: merge_group: workflow_dispatch: concurrency: - group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} + 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 env: CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - darwin: - name: Build Darwin +jobs: + framework: + name: Build framework if: github.actor != 'restyled-io[bot]' - runs-on: macos-latest - + runs-on: macos-13 + strategy: + matrix: + options: # We don't need a full matrix + - flavor: macos-release + arguments: -sdk macosx -configuration Release + - flavor: ios-release + arguments: -sdk iphoneos -configuration Release + - flavor: tvos-debug + arguments: -sdk appletvos -configuration Debug + - flavor: watchos-debug + arguments: -sdk watchos -configuration Debug steps: - name: Checkout uses: actions/checkout@v4 - - name: Setup Environment - run: brew install python@3.9 - name: Checkout submodules & Bootstrap uses: ./.github/actions/checkout-submodules-and-bootstrap with: - platform: darwin + platform: darwin + bootstrap-log-name: + bootstrap-logs-framework-${{ matrix.options.flavor }} - name: Block zap-cli from being used - # xcodebuild is NOT expected to require zap-cli - run: scripts/run_in_build_env.sh 'D=$(dirname $(which zap-cli)) && mv $D/zap-cli $D/zap-cli.moved' - - name: Validate zap-cli is NOT available - # run_in_build_env.sh is used to ensure PATH is set to something that would otherwise find zap-cli - run: scripts/run_in_build_env.sh '(zap-cli --version && exit 1) || exit 0' - - name: Run watchOS Build Debug - working-directory: src/darwin/Framework - # Disable availability annotations, since we are not building a system - # Matter.framework. - run: xcodebuild -target "Matter" -sdk watchos -configuration Debug GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' - - name: Run iOS Build Debug - working-directory: src/darwin/Framework - # Disable availability annotations, since we are not building a system - # Matter.framework. - run: xcodebuild -target "Matter" -sdk iphoneos -configuration Debug GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' - - name: Run iOS Build Release - working-directory: src/darwin/Framework - # Disable availability annotations, since we are not building a system - # Matter.framework. - run: xcodebuild -target "Matter" -sdk iphoneos -configuration Release GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' - - name: Clean Build - run: xcodebuild clean - working-directory: src/darwin/Framework - - name: Delete Defaults - run: defaults delete com.apple.dt.xctest.tool - continue-on-error: true - - name: Run macOS Build - # Enable -Werror by hand here, because the Xcode config can't - # enable it for various reasons. Keep whatever Xcode settings - # for OTHER_CFLAGS exist by using ${inherited}. - # - # Enable -Wconversion by hand as well, because it seems to not be - # enabled by default in the Xcode config. - # - # Disable availability annotations, since we are not building a system - # Matter.framework. - run: xcodebuild -target "Matter" -sdk macosx OTHER_CFLAGS='${inherited} -Werror -Wconversion' GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' - working-directory: src/darwin/Framework - - name: Clean Build - run: xcodebuild clean + env: + PW_ENVSETUP_NO_BANNER: 1 + run: | + # Framework builds are NOT expected to require zap-cli + scripts/run_in_build_env.sh 'rm -- "$(which zap-cli)"' + # run_in_build_env.sh is used to ensure PATH is set to something that would otherwise find zap-cli + scripts/run_in_build_env.sh '(zap-cli --version && exit 1) || exit 0' + - name: Build working-directory: src/darwin/Framework - - name: Make zap-cli work again - run: scripts/run_in_build_env.sh 'D=$(dirname $(which zap-cli.moved)) && mv $D/zap-cli.moved $D/zap-cli' - - name: Validate zap-cli is again available - run: scripts/run_in_build_env.sh 'zap-cli --version' + run: xcodebuild -target "Matter" ${{ matrix.options.arguments }} + + tests: + name: Run framework tests + if: github.actor != 'restyled-io[bot]' + needs: [framework] # serialize to avoid running to many parallel macos runners + runs-on: macos-13 + strategy: + matrix: + options: # We don't need a full matrix + - flavor: asan + arguments: + -enableAddressSanitizer YES + -enableUndefinedBehaviorSanitizer YES + - flavor: tsan + arguments: -enableThreadSanitizer YES + # "leaks" does not seem to be very compatible with asan or tsan + - flavor: leaks + defines: ENABLE_LEAK_DETECTION=1 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: darwin + bootstrap-log-name: + bootstrap-logs-framework-${{ matrix.options.flavor }} - name: Build example All Clusters Server run: | - scripts/examples/gn_build_example.sh examples/all-clusters-app/linux out/debug chip_config_network_layer_ble=false + scripts/examples/gn_build_example.sh examples/all-clusters-app/linux out/debug/all-clusters-app chip_config_network_layer_ble=false - name: Build example OTA Provider run: | - scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false + scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug/ota-provider-app chip_config_network_layer_ble=false - name: Build example OTA Requestor run: | scripts/examples/gn_build_example.sh examples/ota-requestor-app/linux out/debug/ota-requestor-app chip_config_network_layer_ble=false non_spec_compliant_ota_action_delay_floor=0 - - name: Delete Defaults - run: defaults delete com.apple.dt.xctest.tool - continue-on-error: true - name: Run Framework Tests # For now disable unguarded-availability-new warnings because we # internally use APIs that we are annotating as only available on # new enough versions. Maybe we should change out deployment # target versions instead? + working-directory: src/darwin/Framework run: | mkdir -p /tmp/darwin/framework-tests - ../../../out/debug/chip-all-clusters-app --interface-id -1 > >(tee /tmp/darwin/framework-tests/all-cluster-app.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-err.log >&2) & - ../../../out/debug/chip-all-clusters-app --interface-id -1 --dac_provider ../../../credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json --product-id 32768 --discriminator 3839 --secured-device-port 5539 --KVS /tmp/chip-all-clusters-app-kvs2 > >(tee /tmp/darwin/framework-tests/all-cluster-app-origin-vid.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-origin-vid-err.log >&2) & - # Disable BLE (CHIP_IS_BLE=NO) because the app does not have the permission to use it and that may crash the CI. + echo "This is a simple log" > /tmp/darwin/framework-tests/end_user_support_log.txt + ../../../out/debug/all-clusters-app/chip-all-clusters-app --interface-id -1 --end_user_support_log /tmp/darwin/framework-tests/end_user_support_log.txt > >(tee /tmp/darwin/framework-tests/all-cluster-app.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-err.log >&2) & + ../../../out/debug/all-clusters-app/chip-all-clusters-app --interface-id -1 --dac_provider ../../../credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json --product-id 32768 --discriminator 3839 --secured-device-port 5539 --KVS /tmp/chip-all-clusters-app-kvs2 > >(tee /tmp/darwin/framework-tests/all-cluster-app-origin-vid.log) 2> >(tee /tmp/darwin/framework-tests/all-cluster-app-origin-vid-err.log >&2) & - TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1'> >(tee /tmp/darwin/framework-tests/darwin-tests-asan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-err.log >&2) - # And the same thing, but with MTR_PER_CONTROLLER_STORAGE_ENABLED turned off, so we test that it does not break for now. - TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1 MTR_PER_CONTROLLER_STORAGE_ENABLED=0' > >(tee /tmp/darwin/framework-tests/darwin-tests-asan-controller-storage.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-controller-storage-err.log >&2) - # And the same thing, but with MTR_NO_AVAILABILITY not turned on. This requires -Wno-unguarded-availability-new to avoid availability errors. - TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableAddressSanitizer YES -enableUndefinedBehaviorSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion -Wno-unguarded-availability-new' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited}' > >(tee /tmp/darwin/framework-tests/darwin-tests-asan-with-availability-annotations.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-asan-with-availability-annotations-err.log >&2) + export TEST_RUNNER_ASAN_OPTIONS=__CURRENT_VALUE__:detect_stack_use_after_return=1 - xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx -enableThreadSanitizer YES OTHER_CFLAGS='${inherited} -Werror -Wconversion' CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} MTR_NO_AVAILABILITY=1' > >(tee /tmp/darwin/framework-tests/darwin-tests-tsan.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-tsan-err.log >&2) - working-directory: src/darwin/Framework - - name: Build Matter TV Casting Bridge - run: | - xcodebuild -target "MatterTvCastingBridge" -sdk iphoneos - working-directory: examples/tv-casting-app/darwin/MatterTvCastingBridge + # Disable BLE (CHIP_IS_BLE=NO) because the app does not have the permission to use it and that may crash the CI. + xcodebuild test -target "Matter" -scheme "Matter Framework Tests" -sdk macosx ${{ matrix.options.arguments }} \ + CHIP_IS_BLE=NO GCC_PREPROCESSOR_DEFINITIONS='${inherited} ${{ matrix.options.defines }}' \ + > >(tee /tmp/darwin/framework-tests/darwin-tests.log) 2> >(tee /tmp/darwin/framework-tests/darwin-tests-err.log >&2) - name: Collect crash logs + if: failure() && !env.ACT run: | mkdir -p /tmp/darwin/framework-tests find ~/Library/Developer/Xcode/DerivedData /Library/Logs/DiagnosticReports -name '*.ips' -print0 | xargs -0 -J % cp % /tmp/darwin/framework-tests - name: Uploading log files uses: actions/upload-artifact@v4 - if: ${{ failure() && !env.ACT }} + if: failure() && !env.ACT with: - name: darwin-framework-test-logs + name: darwin-framework-test-logs-${{ matrix.options.flavor }} path: /tmp/darwin/framework-tests retention-days: 5 diff --git a/.github/workflows/doxygen.yaml b/.github/workflows/doxygen.yaml index 13da9c2b4da1d6..abe0568fb9e011 100644 --- a/.github/workflows/doxygen.yaml +++ b/.github/workflows/doxygen.yaml @@ -81,7 +81,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-doxygen:35 + image: ghcr.io/project-chip/chip-build-doxygen:54 if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/example-tv-casting-darwin.yaml b/.github/workflows/example-tv-casting-darwin.yaml new file mode 100644 index 00000000000000..d9d9ef8f37cee9 --- /dev/null +++ b/.github/workflows/example-tv-casting-darwin.yaml @@ -0,0 +1,49 @@ +# Copyright (c) 2020-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: TV Casting Example - Darwin + +on: + push: + branches-ignore: + - "dependabot/**" + pull_request: + merge_group: + workflow_dispatch: + +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 + +env: + CHIP_NO_LOG_TIMESTAMPS: true + +jobs: + tv-casting-bridge: + name: Build TV Casting Bridge example + if: github.actor != 'restyled-io[bot]' + runs-on: macos-13 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: darwin + - name: Build + working-directory: examples/tv-casting-app/darwin/MatterTvCastingBridge + run: xcodebuild -target "MatterTvCastingBridge" -sdk iphoneos diff --git a/.github/workflows/examples-ameba.yaml b/.github/workflows/examples-ameba.yaml index a10f4a84ac7d69..7c098ea57f2403 100644 --- a/.github/workflows/examples-ameba.yaml +++ b/.github/workflows/examples-ameba.yaml @@ -16,6 +16,8 @@ name: Build example - Ameba on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -36,7 +38,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-ameba:35 + image: ghcr.io/project-chip/chip-build-ameba:54 options: --user root steps: diff --git a/.github/workflows/examples-asr.yaml b/.github/workflows/examples-asr.yaml index 092f911a233642..f238d10a5cf6b3 100644 --- a/.github/workflows/examples-asr.yaml +++ b/.github/workflows/examples-asr.yaml @@ -16,6 +16,8 @@ name: Build example - ASR on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -34,7 +36,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-asr:35 + image: ghcr.io/project-chip/chip-build-asr:54 options: --user root steps: @@ -60,4 +62,4 @@ jobs: --target asr-asr582x-dishwasher \ --target asr-asr582x-refrigerator \ build \ - " \ No newline at end of file + " diff --git a/.github/workflows/examples-bouffalolab.yaml b/.github/workflows/examples-bouffalolab.yaml index ec90a39b26cf17..12b033b791f900 100644 --- a/.github/workflows/examples-bouffalolab.yaml +++ b/.github/workflows/examples-bouffalolab.yaml @@ -16,6 +16,8 @@ name: Build example - BouffaloLab on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -35,7 +37,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-bouffalolab:35 + image: ghcr.io/project-chip/chip-build-bouffalolab:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/examples-cc13x2x7_26x2x7.yaml b/.github/workflows/examples-cc13x2x7_26x2x7.yaml deleted file mode 100644 index 3c864525707a88..00000000000000 --- a/.github/workflows/examples-cc13x2x7_26x2x7.yaml +++ /dev/null @@ -1,109 +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 - TI CC26X2X7 - -on: - push: - pull_request: - merge_group: - -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 -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - cc26x2x7: - name: cc26x2x7 - - env: - BUILD_TYPE: gn_cc26x2x7 - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-ti:35 - volumes: - - "/tmp/bloat_reports:/tmp/bloat_reports" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: cc13xx_26xx - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target ti-cc13x4_26x4-lighting-ftd \ - --target ti-cc13x4_26x4-lighting-mtd \ - --target ti-cc13x4_26x4-lock-ftd \ - --target ti-cc13x4_26x4-lock-mtd \ - --target ti-cc13x4_26x4-pump-mtd \ - --target ti-cc13x4_26x4-pump-ftd \ - --target ti-cc13x4_26x4-pump-controller-mtd \ - --target ti-cc13x4_26x4-pump-controller-ftd \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get lock FTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 lock-ftd \ - out/artifacts/ti-cc13x4_26x4-lock-ftd/chip-LP_EM_CC1354P10_6-lock-example.out \ - /tmp/bloat_reports/ - - name: Get lock MTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 lock-mtd \ - out/artifacts/ti-cc13x4_26x4-lock-mtd/chip-LP_EM_CC1354P10_6-lock-example.out \ - /tmp/bloat_reports/ - - name: Get Pump App size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 pump-app \ - out/artifacts/ti-cc13x4_26x4-pump-mtd/chip-LP_EM_CC1354P10_6-pump-example.out \ - /tmp/bloat_reports/ - - name: Get Pump Controller MTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 pump-controller-app \ - out/artifacts/ti-cc13x4_26x4-pump-controller-mtd/chip-LP_EM_CC1354P10_6-pump-controller-example.out \ - /tmp/bloat_reports/ - - name: Get Lighting FTD size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cc13x4_26x4 LP_EM_CC1354P10_6 lighting-app \ - out/artifacts/ti-cc13x4_26x4-lighting-mtd/chip-LP_EM_CC1354P10_6-lighting-example.out \ - /tmp/bloat_reports/ - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: cc13x2x7_26x2x7 - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: cc13x4_26x4 diff --git a/.github/workflows/examples-cc13xx_26xx.yaml b/.github/workflows/examples-cc13xx_26xx.yaml new file mode 100644 index 00000000000000..d462d9f2725bbb --- /dev/null +++ b/.github/workflows/examples-cc13xx_26xx.yaml @@ -0,0 +1,110 @@ +# 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 - TI CC13XX_26XX + +on: + push: + branches-ignore: + - "dependabot/**" + pull_request: + merge_group: + +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 +env: + CHIP_NO_LOG_TIMESTAMPS: true + +jobs: + cc13xx_26xx: + name: cc13xx_26xx + + env: + BUILD_TYPE: gn_cc13xx_26xx + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: ghcr.io/project-chip/chip-build-ti:54 + volumes: + - "/tmp/bloat_reports:/tmp/bloat_reports" + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: cc13xx_26xx + extra-submodule-parameters: " --recursive" + - name: Set up environment for size reports + uses: ./.github/actions/setup-size-reports + if: ${{ !env.ACT }} + with: + gh-context: ${{ toJson(github) }} + + - name: Build examples + run: | + scripts/run_in_build_env.sh "\ + ./scripts/build/build_examples.py \ + --target ti-cc13x4_26x4-lighting-ftd \ + --target ti-cc13x4_26x4-lighting-mtd \ + --target ti-cc13x4_26x4-lock-ftd \ + --target ti-cc13x4_26x4-lock-mtd \ + --target ti-cc13x4_26x4-pump-mtd \ + --target ti-cc13x4_26x4-pump-ftd \ + --target ti-cc13x4_26x4-pump-controller-mtd \ + --target ti-cc13x4_26x4-pump-controller-ftd \ + build \ + --copy-artifacts-to out/artifacts \ + " + - name: Get lock FTD size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cc13x4_26x4 LP_EM_CC1354P10_6 lock-ftd \ + out/artifacts/ti-cc13x4_26x4-lock-ftd/chip-LP_EM_CC1354P10_6-lock-example.out \ + /tmp/bloat_reports/ + - name: Get lock MTD size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cc13x4_26x4 LP_EM_CC1354P10_6 lock-mtd \ + out/artifacts/ti-cc13x4_26x4-lock-mtd/chip-LP_EM_CC1354P10_6-lock-example.out \ + /tmp/bloat_reports/ + - name: Get Pump App size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cc13x4_26x4 LP_EM_CC1354P10_6 pump-app \ + out/artifacts/ti-cc13x4_26x4-pump-mtd/chip-LP_EM_CC1354P10_6-pump-example.out \ + /tmp/bloat_reports/ + - name: Get Pump Controller MTD size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cc13x4_26x4 LP_EM_CC1354P10_6 pump-controller-app \ + out/artifacts/ti-cc13x4_26x4-pump-controller-mtd/chip-LP_EM_CC1354P10_6-pump-controller-example.out \ + /tmp/bloat_reports/ + - name: Get Lighting FTD size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cc13x4_26x4 LP_EM_CC1354P10_6 lighting-app \ + out/artifacts/ti-cc13x4_26x4-lighting-mtd/chip-LP_EM_CC1354P10_6-lighting-example.out \ + /tmp/bloat_reports/ + - name: Uploading Size Reports + uses: ./.github/actions/upload-size-reports + if: ${{ !env.ACT }} + with: + platform-name: cc13x4_26x4 diff --git a/.github/workflows/examples-cc32xx.yaml b/.github/workflows/examples-cc32xx.yaml index 73f463b167707b..564cd34dddd5b2 100644 --- a/.github/workflows/examples-cc32xx.yaml +++ b/.github/workflows/examples-cc32xx.yaml @@ -16,6 +16,8 @@ name: Build example - TI CC32XX on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -37,7 +39,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-ti:35 + image: ghcr.io/project-chip/chip-build-ti:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 1dae68ced0f4a7..eaaedd226e778b 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -16,6 +16,8 @@ name: Build example - EFR32 on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -31,14 +33,14 @@ jobs: name: EFR32 env: - SILABS_BOARD: BRD4161A + SILABS_BOARD: BRD4187C BUILD_TYPE: gn_efr32 runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-efr32:36 + image: ghcr.io/project-chip/chip-build-efr32:56 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: @@ -59,15 +61,14 @@ jobs: timeout-minutes: 30 run: | scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs ./out/light-app BRD4187C --slc_generate --docker - scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs ./out/light-app BRD4164A --slc_generate --docker rm -rf ./out/ - name: Build some BRD4187C variants (1) run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target efr32-brd4187c-thermostat-openthread_mtd \ - --target efr32-brd4187c-switch-shell-use_ot_coap_lib \ + --target efr32-brd4187c-thermostat-openthread-mtd \ + --target efr32-brd4187c-switch-shell-use-ot-coap-lib \ --target efr32-brd4187c-unit-test \ build \ --copy-artifacts-to out/artifacts \ @@ -79,9 +80,9 @@ jobs: ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target efr32-brd4187c-light-use_ot_lib \ + --target efr32-brd4187c-light-use-ot-lib \ --target efr32-brd4187c-pump \ - --target efr32-brd4187c-lock-shell-enable_heap_monitoring \ + --target efr32-brd4187c-lock-shell-heap-monitoring \ build \ --copy-artifacts-to out/artifacts \ " @@ -92,7 +93,7 @@ jobs: ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target efr32-brd4187c-window-covering-additional_data_advertising \ + --target efr32-brd4187c-window-covering-additional-data-advertising \ --target efr32-brd4187c-light-rpc \ build \ --copy-artifacts-to out/artifacts \ @@ -105,33 +106,39 @@ jobs: /tmp/bloat_reports/ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ efr32 BRD4187C window-app \ - out/efr32-brd4187c-window-covering-additional_data_advertising/matter-silabs-window-example.out \ + out/efr32-brd4187c-window-covering-additional-data-advertising/matter-silabs-window-example.out \ /tmp/bloat_reports/ - name: Clean out build output run: rm -rf ./out - - name: Build BRD4338A variants + - name: Build BRD4338A WiFi Soc variants run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target efr32-brd4338a-light-wifi-917_soc-skip_rps_generation \ + --target efr32-brd4338a-light-skip-rps-generation \ + --target efr32-brd4338a-lock-skip-rps-generation \ build \ --copy-artifacts-to out/artifacts \ " - - name: Clean out build output - run: rm -rf ./out - - name: Build example EFR32+WF200 WiFi Lock app for BRD4161A + - name: Prepare bloat report for brd4338a lock app run: | - scripts/examples/gn_silabs_example.sh examples/lock-app/silabs out/lock_app_wifi_wf200 BRD4161A is_debug=false chip_logging=false --wifi wf200 --docker - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+wf200 lock-app \ - out/lock_app_wifi_wf200/BRD4161A/matter-silabs-lock-example.out /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + efr32 BRD4338a lock-app \ + out/efr32-brd4338a-lock-skip-rps-generation/matter-silabs-lock-example.out \ + /tmp/bloat_reports/ - name: Clean out build output run: rm -rf ./out - - name: Build example EFR32+RS9116 WiFi Lighting app for BRD4161A + - name: Build EFR32 with WiFi NCP run: | - scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs out/lighting_app_wifi_rs9116 BRD4161A --wifi rs9116 --docker - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+rs9116 lighting-app \ - out/lighting_app_wifi_rs9116/BRD4161A/matter-silabs-lighting-example.out /tmp/bloat_reports/ + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --enable-flashbundle \ + --target efr32-brd4187c-lock-wifi-siwx917 \ + --target efr32-brd4187c-light-wifi-rs9116 \ + --target efr32-brd4187c-lock-wifi-wf200 \ + build \ + --copy-artifacts-to out/artifacts \ + " - name: Clean out build output run: rm -rf ./out - name: Uploading Size Reports diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml index 2317da776e6a95..92415c0ce96930 100644 --- a/.github/workflows/examples-esp32.yaml +++ b/.github/workflows/examples-esp32.yaml @@ -16,6 +16,8 @@ name: Build example - ESP32 on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -34,7 +36,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-esp32:35 + image: ghcr.io/project-chip/chip-build-esp32:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -90,8 +92,8 @@ jobs: rm -rf ./zzz_pregenerated mv scripts/codegen.py.renamed scripts/codegen.py mv scripts/tools/zap/generate.py.renamed scripts/tools/zap/generate.py - - name: Build example All Clusters App C3 - run: scripts/examples/esp_example.sh all-clusters-app sdkconfig_c3devkit.defaults + - name: Build example All Clusters App(Target:ESP32C3) + run: scripts/examples/esp_example.sh all-clusters-app sdkconfig.defaults.esp32c3 esp32c3 - name: Copy aside build products run: | mkdir -p example_binaries/esp32-build @@ -106,10 +108,10 @@ jobs: run: scripts/examples/esp_example.sh pigweed-app sdkconfig.defaults - name: Build example Lighting App (Target:ESP32H2) - run: scripts/examples/esp_example.sh lighting-app sdkconfig.defaults.esp32h2 + run: scripts/examples/esp_example.sh lighting-app sdkconfig.defaults.esp32h2 esp32h2 - name: Build example Lock App (Target:ESP32C6) - run: scripts/examples/esp_example.sh lock-app sdkconfig.defaults.esp32c6 + run: scripts/examples/esp_example.sh lock-app sdkconfig.defaults.esp32c6 esp32c6 - name: Uploading Size Reports uses: ./.github/actions/upload-size-reports @@ -124,7 +126,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-esp32:35 + image: ghcr.io/project-chip/chip-build-esp32:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -155,10 +157,13 @@ jobs: run: scripts/examples/esp_example.sh ota-provider-app sdkconfig.defaults - name: Build example Light Switch App (Target:ESP32C3) - run: scripts/examples/esp_example.sh light-switch-app sdkconfig.defaults.esp32c3 + run: scripts/examples/esp_example.sh light-switch-app sdkconfig.defaults.esp32c3 esp32c3 - name: Build example Lighting App (external platform) run: scripts/examples/esp_example.sh lighting-app sdkconfig.ext_plat.defaults - name: Build example Energy Management App run: scripts/examples/esp_example.sh energy-management-app sdkconfig.defaults + + - name: Build example LIT ICD App (Target:ESP32H2) + run: scripts/examples/esp_example.sh lit-icd-app sdkconfig.defaults esp32h2 diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml index ff6f2e91a906b5..290e67273f9bd3 100644 --- a/.github/workflows/examples-infineon.yaml +++ b/.github/workflows/examples-infineon.yaml @@ -16,6 +16,8 @@ name: Build example - Infineon on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -35,7 +37,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-infineon:35 + image: ghcr.io/project-chip/chip-build-infineon:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: @@ -105,43 +107,117 @@ jobs: out/artifacts/infineon-psoc6-light/chip-psoc6-lighting-example.out \ /tmp/bloat_reports/ - - name: Build example CYW30739 Apps + - name: Build CYW30739 Lighting App run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ - --target cyw30739-cyw930739m2evb_01-light \ - --target cyw30739-cyw930739m2evb_01-lock \ - --target cyw30739-cyw930739m2evb_01-ota-requestor \ - --target cyw30739-cyw930739m2evb_01-switch \ + --target cyw30739-cyw30739b2_p5_evk_01-light \ + --target cyw30739-cyw30739b2_p5_evk_02-light \ + --target cyw30739-cyw30739b2_p5_evk_03-light \ + --target cyw30739-cyw930739m2evb_02-light \ build \ --copy-artifacts-to out/artifacts \ " - name: Get light size stats 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 \ + cyw30739 CYW30739B2-P5-EVK-01 light \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_01-light/lighting_app-CYW30739B2-P5-EVK-01.elf \ /tmp/bloat_reports/ - - name: Get lock size stats + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-02 light \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_02-light/lighting_app-CYW30739B2-P5-EVK-02.elf \ + /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-03 light \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_03-light/lighting_app-CYW30739B2-P5-EVK-03.elf \ + /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW930739M2EVB-02 light \ + out/artifacts/cyw30739-cyw930739m2evb_02-light/lighting_app-CYW930739M2EVB-02.elf \ + /tmp/bloat_reports/ + - name: Clean out build output + run: rm -rf ./out + - name: Build CYW30739 Light Switch App run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target cyw30739-cyw30739b2_p5_evk_01-light-switch \ + --target cyw30739-cyw30739b2_p5_evk_02-light-switch \ + --target cyw30739-cyw30739b2_p5_evk_03-light-switch \ + build \ + --copy-artifacts-to out/artifacts \ + " + - name: Get light-switch size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-01 light-switch \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_01-light-switch/light_switch_app-CYW30739B2-P5-EVK-01.elf \ + /tmp/bloat_reports/ .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 \ + cyw30739 CYW30739B2-P5-EVK-02 light-switch \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_02-light-switch/light_switch_app-CYW30739B2-P5-EVK-02.elf \ /tmp/bloat_reports/ - - name: Get ota-requestor size stats + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-03 light-switch \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_03-light-switch/light_switch_app-CYW30739B2-P5-EVK-03.elf \ + /tmp/bloat_reports/ + - name: Clean out build output + run: rm -rf ./out + - name: Build CYW30739 Lock App + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target cyw30739-cyw30739b2_p5_evk_01-lock \ + --target cyw30739-cyw30739b2_p5_evk_02-lock \ + --target cyw30739-cyw30739b2_p5_evk_03-lock \ + build \ + --copy-artifacts-to out/artifacts \ + " + - name: Get lock size stats run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 cyw930739m2evb_01 ota-requestor \ - out/artifacts/cyw30739-cyw930739m2evb_01-ota-requestor/chip-cyw30739-ota-requestor-example.elf \ + cyw30739 CYW30739B2-P5-EVK-01 lock \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_01-lock/lock_app-CYW30739B2-P5-EVK-01.elf \ /tmp/bloat_reports/ - - name: Get switch size stats + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-02 lock \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_02-lock/lock_app-CYW30739B2-P5-EVK-02.elf \ + /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-03 lock \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_03-lock/lock_app-CYW30739B2-P5-EVK-03.elf \ + /tmp/bloat_reports/ + - name: Clean out build output + run: rm -rf ./out + - name: Build CYW30739 Thermostat App run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target cyw30739-cyw30739b2_p5_evk_01-thermostat \ + --target cyw30739-cyw30739b2_p5_evk_02-thermostat \ + --target cyw30739-cyw30739b2_p5_evk_03-thermostat \ + build \ + --copy-artifacts-to out/artifacts \ + " + - name: Get thermostat size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-01 thermostat \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_01-thermostat/thermostat-CYW30739B2-P5-EVK-01.elf \ + /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cyw30739 CYW30739B2-P5-EVK-02 thermostat \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_02-thermostat/thermostat-CYW30739B2-P5-EVK-02.elf \ + /tmp/bloat_reports/ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - cyw30739 cyw930739m2evb_01 switch \ - out/artifacts/cyw30739-cyw930739m2evb_01-switch/chip-cyw30739-light-switch-example.elf \ + cyw30739 CYW30739B2-P5-EVK-03 thermostat \ + out/artifacts/cyw30739-cyw30739b2_p5_evk_03-thermostat/thermostat-CYW30739B2-P5-EVK-03.elf \ /tmp/bloat_reports/ + - name: Clean out build output + run: rm -rf ./out - name: Uploading Size Reports uses: ./.github/actions/upload-size-reports if: ${{ !env.ACT }} with: - platform-name: Infineon \ No newline at end of file + platform-name: Infineon diff --git a/.github/workflows/examples-k32w.yaml b/.github/workflows/examples-k32w.yaml deleted file mode 100644 index be2d372e88c177..00000000000000 --- a/.github/workflows/examples-k32w.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 - K32W - -on: - push: - pull_request: - merge_group: - -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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - k32w: - name: K32W - - env: - BUILD_TYPE: gn_k32w - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-k32w:33 - volumes: - - "/tmp/bloat_reports:/tmp/bloat_reports" - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: k32w - - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - - name: Build examples - run: | - scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py \ - --target k32w-k32w0-light-crypto-platform-tokenizer \ - --target k32w-k32w0-lock-crypto-platform-tokenizer \ - --target k32w-k32w0-lock-crypto-platform-low-power-nologs \ - --target k32w-k32w0-contact-crypto-platform-tokenizer \ - --target k32w-k32w0-contact-crypto-platform-low-power-nologs \ - --target k32w-k32w0-shell-crypto-platform \ - --target k32w-k32w1-light-crypto-platform-openthread-ftd \ - --target k32w-k32w1-contact-crypto-platform-low-power-nologs \ - build \ - --copy-artifacts-to out/artifacts \ - " - - name: Get light size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - k32w k32w0+release light \ - out/artifacts/k32w-k32w0-light-crypto-platform-tokenizer/chip-k32w0x-light-example.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - k32w k32w1+release light \ - out/artifacts/k32w-k32w1-light-crypto-platform-openthread-ftd/chip-k32w1-light-example.elf \ - /tmp/bloat_reports/ - - name: Get lock size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - k32w k32w0+release lock \ - out/artifacts/k32w-k32w0-lock-crypto-platform-tokenizer/chip-k32w0x-lock-example.elf \ - /tmp/bloat_reports/ - - name: Get contact size stats - run: | - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - k32w k32w0+release contact \ - out/artifacts/k32w-k32w0-contact-crypto-platform-tokenizer/chip-k32w0x-contact-example.elf \ - /tmp/bloat_reports/ - .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - k32w k32w1+release contact \ - out/artifacts/k32w-k32w1-contact-crypto-platform-low-power-nologs/chip-k32w1-contact-example.elf \ - /tmp/bloat_reports/ - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: K32W diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml index a346bec097fa81..e22bb903635875 100644 --- a/.github/workflows/examples-linux-arm.yaml +++ b/.github/workflows/examples-linux-arm.yaml @@ -16,6 +16,8 @@ name: Build example - Linux ARM on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -34,7 +36,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-crosscompile:35 + image: ghcr.io/project-chip/chip-build-crosscompile:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -65,6 +67,8 @@ jobs: --target linux-arm64-light-rpc-ipv6only-clang \ --target linux-arm64-thermostat-no-ble-clang \ --target linux-arm64-lit-icd-no-ble-clang \ + --target linux-arm64-fabric-admin-clang-rpc \ + --target linux-arm64-fabric-bridge-no-ble-clang-rpc \ build \ " - name: Bloat report - chip-tool diff --git a/.github/workflows/examples-linux-imx.yaml b/.github/workflows/examples-linux-imx.yaml index f6fee89fa966e4..ab32eef0801353 100644 --- a/.github/workflows/examples-linux-imx.yaml +++ b/.github/workflows/examples-linux-imx.yaml @@ -16,6 +16,8 @@ name: Build example - i.MX Linux on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -34,7 +36,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-imx:35 + image: ghcr.io/project-chip/chip-build-imx:54 steps: - name: Checkout diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml index ad1dc349163c7b..53728d33eac42a 100644 --- a/.github/workflows/examples-linux-standalone.yaml +++ b/.github/workflows/examples-linux-standalone.yaml @@ -16,6 +16,8 @@ name: Build example - Linux Standalone on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -34,7 +36,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -196,6 +198,26 @@ jobs: linux debug air-purifier-app \ out/linux-x64-air-purifier/chip-air-purifier-app \ /tmp/bloat_reports/ + - name: Build example Fabric Admin + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target linux-x64-fabric-admin-rpc \ + build" + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + linux debug fabric-admin \ + out/linux-x64-fabric-admin-rpc/fabric-admin \ + /tmp/bloat_reports/ + - name: Build example Fabric Bridge App + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target linux-x64-fabric-bridge-no-ble-rpc \ + build" + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + linux debug fabric-bridge-app \ + out/linux-x64-fabric-bridge-no-ble-rpc/fabric-bridge-app \ + /tmp/bloat_reports/ - name: Uploading Size Reports uses: ./.github/actions/upload-size-reports if: ${{ !env.ACT }} diff --git a/.github/workflows/examples-linux-tv-casting-app.yaml b/.github/workflows/examples-linux-tv-casting-app.yaml new file mode 100644 index 00000000000000..2797712bffa816 --- /dev/null +++ b/.github/workflows/examples-linux-tv-casting-app.yaml @@ -0,0 +1,86 @@ +# Copyright (c) 2024 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: Test TV Casting Example + +on: + push: + branches-ignore: + - "dependabot/**" + pull_request: + merge_group: + +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: + Linux-test: + name: Linux Test + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: ghcr.io/project-chip/chip-build:54 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: linux + + - name: Set Up Environment for Size Reports + uses: ./.github/actions/setup-size-reports + if: ${{ !env.ACT }} + with: + gh-context: ${{ toJson(github) }} + + - name: Build Linux tv-app + run: | + ./scripts/run_in_build_env.sh \ + "scripts/examples/gn_build_example.sh examples/tv-app/linux/ out/tv-app" + + - name: Build Linux tv-casting-app + run: | + ./scripts/run_in_build_env.sh \ + "scripts/examples/gn_build_example.sh examples/tv-casting-app/linux/ out/tv-casting-app chip_casting_simplified=true" + + - name: + Test casting from Linux tv-casting-app to Linux tv-app - + Commissionee Generated Passcode + run: | + ./scripts/run_in_build_env.sh \ + "python3 ./scripts/tests/run_tv_casting_test.py" + timeout-minutes: 2 # Comment this out to debug if GitHub Action times out. + + - name: + Test casting from Linux tv-casting-app to Linux tv-app - + Commissioner Generated Passcode + run: | + ./scripts/run_in_build_env.sh \ + "python3 ./scripts/tests/run_tv_casting_test.py --commissioner-generated-passcode=True" + timeout-minutes: 2 # Comment this out to debug if GitHub Action times out. + + - name: Uploading Size Reports + uses: ./.github/actions/upload-size-reports + if: ${{ !env.ACT }} + with: + platform-name: Linux diff --git a/.github/workflows/examples-mbed.yaml b/.github/workflows/examples-mbed.yaml index 54d33b9f91d3c2..e74ad8afc7a600 100644 --- a/.github/workflows/examples-mbed.yaml +++ b/.github/workflows/examples-mbed.yaml @@ -16,6 +16,8 @@ name: Build example - Mbed OS on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -40,7 +42,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-mbed-os:35 + image: ghcr.io/project-chip/chip-build-mbed-os:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -156,7 +158,8 @@ jobs: rm -rf ./out - name: Build unit tests - # Temporarily disable build due to running out of flash space + # Temporarily disabled build due to running out of flash space + # TODO Issue #33978: re-enable unit testing after split of unit tests is done if: false run: scripts/tests/mbed/mbed_unit_tests.sh -b=$APP_TARGET -p=$APP_PROFILE diff --git a/.github/workflows/examples-mw320.yaml b/.github/workflows/examples-mw320.yaml index d0e7ce3122c06b..780543a70d1f11 100644 --- a/.github/workflows/examples-mw320.yaml +++ b/.github/workflows/examples-mw320.yaml @@ -16,6 +16,8 @@ name: Build example - MW320 on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -37,7 +39,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml index 64bb5a319eafa8..c8d997d5ca6631 100644 --- a/.github/workflows/examples-nrfconnect.yaml +++ b/.github/workflows/examples-nrfconnect.yaml @@ -16,6 +16,8 @@ name: Build example - nRF Connect SDK on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -37,7 +39,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-nrf-platform:35 + image: ghcr.io/project-chip/chip-build-nrf-platform:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" diff --git a/.github/workflows/examples-nuttx.yaml b/.github/workflows/examples-nuttx.yaml new file mode 100644 index 00000000000000..5ffd19b1319ff5 --- /dev/null +++ b/.github/workflows/examples-nuttx.yaml @@ -0,0 +1,55 @@ +# Copyright (c) 2024 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 - NuttX + +on: + push: + pull_request: + merge_group: + workflow_dispatch: + +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 + +env: + CHIP_NO_LOG_TIMESTAMPS: true + +jobs: + nuttx: + name: NuttX + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: ghcr.io/project-chip/chip-build-nuttx:54 + volumes: + - "/tmp/bloat_reports:/tmp/bloat_reports" + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: nuttx + extra-submodule-parameters: " --recursive" + - name: Build example simulator NuttX Lighting App + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target nuttx-x64-light \ + build \ + " diff --git a/.github/workflows/examples-nxp.yaml b/.github/workflows/examples-nxp.yaml new file mode 100644 index 00000000000000..05d434b0a67792 --- /dev/null +++ b/.github/workflows/examples-nxp.yaml @@ -0,0 +1,98 @@ +# 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 - NXP + +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: + merge_group: + +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 + +env: + CHIP_NO_LOG_TIMESTAMPS: true + +jobs: + k32w: + name: K32W + + env: + BUILD_TYPE: gn_k32w + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: ghcr.io/project-chip/chip-build-k32w:54 + volumes: + - "/tmp/bloat_reports:/tmp/bloat_reports" + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: nxp + + - name: Set up environment for size reports + uses: ./.github/actions/setup-size-reports + if: ${{ !env.ACT }} + with: + gh-context: ${{ toJson(github) }} + + - name: Build examples + run: | + scripts/run_in_build_env.sh "\ + ./scripts/build/build_examples.py \ + --target nxp-k32w0-lighting \ + --target nxp-k32w0-lighting-factory \ + --target nxp-k32w0-lighting-rotating-id \ + --target nxp-k32w0-contact-sensor \ + --target nxp-k32w0-contact-sensor-low-power \ + --target nxp-k32w0-contact-sensor-low-power-factory \ + --target nxp-k32w1-lighting \ + --target nxp-k32w1-contact-sensor-low-power \ + build \ + --copy-artifacts-to out/artifacts \ + " + - name: Get lighting app size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + nxp k32w0+release light \ + out/artifacts/nxp-k32w0-lighting/chip-k32w0x-light-example.elf \ + /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + nxp k32w1+release light \ + out/artifacts/nxp-k32w1-lighting/chip-k32w1-light-example.elf \ + /tmp/bloat_reports/ + - name: Get contact sensor size stats + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + nxp k32w0+release contact \ + out/artifacts/nxp-k32w0-contact-sensor-low-power/chip-k32w0x-contact-example.elf \ + /tmp/bloat_reports/ + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + nxp k32w1+release contact \ + out/artifacts/nxp-k32w1-contact-sensor-low-power/chip-k32w1-contact-example.elf \ + /tmp/bloat_reports/ + - name: Uploading Size Reports + uses: ./.github/actions/upload-size-reports + if: ${{ !env.ACT }} + with: + platform-name: K32W diff --git a/.github/workflows/examples-openiotsdk.yaml b/.github/workflows/examples-openiotsdk.yaml index 254e5688d62435..2f878ea48e4540 100644 --- a/.github/workflows/examples-openiotsdk.yaml +++ b/.github/workflows/examples-openiotsdk.yaml @@ -16,6 +16,8 @@ name: Build example - Open IoT SDK on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -38,7 +40,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-openiotsdk:35 + image: ghcr.io/project-chip/chip-build-openiotsdk:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" options: --privileged diff --git a/.github/workflows/examples-qpg.yaml b/.github/workflows/examples-qpg.yaml index e012eb9b02d065..2bb85ad4acbfac 100644 --- a/.github/workflows/examples-qpg.yaml +++ b/.github/workflows/examples-qpg.yaml @@ -16,6 +16,8 @@ name: Build example - QPG on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -37,7 +39,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: @@ -61,8 +63,6 @@ jobs: --enable-flashbundle \ --target qpg-qpg6105-lock \ --target qpg-qpg6105-light \ - --target qpg-qpg6105-shell \ - --target qpg-qpg6105-persistent-storage \ --target qpg-qpg6105-light-switch \ --target qpg-qpg6105-thermostat \ build \ @@ -86,4 +86,4 @@ jobs: uses: ./.github/actions/upload-size-reports if: ${{ !env.ACT }} with: - platform-name: QPG \ No newline at end of file + platform-name: QPG diff --git a/.github/workflows/examples-rw61x.yaml b/.github/workflows/examples-rw61x.yaml new file mode 100644 index 00000000000000..15c25699f72284 --- /dev/null +++ b/.github/workflows/examples-rw61x.yaml @@ -0,0 +1,96 @@ +# Copyright (c) 2023 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 - RW61X + +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: + merge_group: + +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 + +env: + CHIP_NO_LOG_TIMESTAMPS: true + +jobs: + rw61x: + name: RW61X + + env: + BUILD_TYPE: gn_rw61x + + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: ghcr.io/project-chip/chip-build-rw61x:54 + volumes: + - "/tmp/bloat_reports:/tmp/bloat_reports" + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Checkout submodules & Bootstrap + uses: ./.github/actions/checkout-submodules-and-bootstrap + with: + platform: nxp + extra-submodule-parameters: --recursive + + - name: Set up environment for size reports + uses: ./.github/actions/setup-size-reports + if: ${{ !env.ACT }} + with: + gh-context: ${{ toJson(github) }} + + - name: Build RW61X all clusters example app + run: | + scripts/run_in_build_env.sh "\ + ./scripts/build/build_examples.py \ + --target rw61x-all-clusters-app-wifi \ + --target rw61x-all-clusters-app-thread \ + --target rw61x-all-clusters-app-thread-wifi \ + build \ + --copy-artifacts-to out/artifacts \ + " + + - name: Build RW61X thermostat example app + run: | + scripts/run_in_build_env.sh "\ + ./scripts/build/build_examples.py \ + --target rw61x-thermostat-wifi \ + --target rw61x-thermostat-thread \ + --target rw61x-thermostat-thread-wifi \ + build \ + --copy-artifacts-to out/artifacts \ + " + + - name: Build RW61X laundry-washer example app + run: | + scripts/run_in_build_env.sh "\ + ./scripts/build/build_examples.py \ + --target rw61x-laundry-washer-wifi \ + --target rw61x-laundry-washer-thread \ + --target rw61x-laundry-washer-thread-wifi \ + build \ + --copy-artifacts-to out/artifacts \ + " + - name: Uploading Size Reports + uses: ./.github/actions/upload-size-reports + if: ${{ !env.ACT }} + with: + platform-name: RW61X diff --git a/.github/workflows/examples-stm32.yaml b/.github/workflows/examples-stm32.yaml index 84442f85294d31..809861cdee179e 100644 --- a/.github/workflows/examples-stm32.yaml +++ b/.github/workflows/examples-stm32.yaml @@ -16,6 +16,8 @@ name: Build example - stm32 on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -38,7 +40,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: @@ -48,7 +50,7 @@ jobs: uses: ./.github/actions/checkout-submodules-and-bootstrap with: platform: stm32 - + extra-submodule-parameters: --recursive - name: Set up environment for size reports uses: ./.github/actions/setup-size-reports if: ${{ !env.ACT }} diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml index 9131b3969df075..15926e99cd470c 100644 --- a/.github/workflows/examples-telink.yaml +++ b/.github/workflows/examples-telink.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2022-2023 Project CHIP Authors +# Copyright (c) 2022-2024 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,6 +16,8 @@ name: Build example - Telink on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -36,7 +38,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-telink:35 + image: ghcr.io/project-chip/chip-build-telink:57 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -55,7 +57,7 @@ jobs: gh-context: ${{ toJson(github) }} # - name: Update Zephyr to specific revision (for developers purpose) - # run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py b5c8028ec94f3efa69decff3a09f0d6f8a21fd6d" + # run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py ab81a585fca6a83b30e1f4e58a021113d6a3acb8" - name: Build example Telink (B92 retention) Air Quality Sensor App run: | @@ -69,13 +71,13 @@ jobs: - name: clean out build output run: rm -rf ./out - - name: Build example Telink (B91) All Clusters App + - name: Build example Telink (W91) All Clusters App run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-all-clusters' build" + "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-all-clusters' build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - telink tlsr9518adk80d all-clusters-app \ - out/telink-tlsr9518adk80d-all-clusters/zephyr/zephyr.elf \ + telink tlsr9118bdk40d all-clusters-app \ + out/telink-tlsr9118bdk40d-all-clusters/zephyr/zephyr.elf \ /tmp/bloat_reports/ - name: clean out build output @@ -93,13 +95,13 @@ jobs: - name: clean out build output run: rm -rf ./out - - name: Build example Telink (B91) Bridge App + - name: Build example Telink (B95) Bridge App run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-bridge' build" + "./scripts/build/build_examples.py --target 'telink-tlsr9258a-bridge' build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - telink tlsr9518adk80d bridge-app \ - out/telink-tlsr9518adk80d-bridge/zephyr/zephyr.elf \ + telink tlsr9258a bridge-app \ + out/telink-tlsr9258a-bridge/zephyr/zephyr.elf \ /tmp/bloat_reports/ - name: clean out build output @@ -127,6 +129,18 @@ jobs: - name: clean out build output (keep tools) run: rm -rf ./out/telink* + - name: Build example Telink (W91) Lighting App with OTA, Factory Data + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-light-ota-factory-data' build" + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + telink tlsr9118bdk40d lighting-app-ota-factory-data \ + out/telink-tlsr9118bdk40d-light-ota-factory-data/zephyr/zephyr.elf \ + /tmp/bloat_reports/ + + - name: clean out build output (keep tools) + run: rm -rf ./out/telink* + - name: Build example Telink (B91) Lighting App with OTA, RPC, Factory Data and 4Mb flash run: | ./scripts/run_in_build_env.sh \ @@ -163,25 +177,25 @@ jobs: - name: clean out build output run: rm -rf ./out - - name: Build example Telink (B91) OTA Requestor App + - name: Build example Telink (B95) OTA Requestor App run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-ota-requestor' build" + "./scripts/build/build_examples.py --target 'telink-tlsr9258a-ota-requestor' build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - telink tlsr9518adk80d ota-requestor-app \ - out/telink-tlsr9518adk80d-ota-requestor/zephyr/zephyr.elf \ + telink tlsr9258a ota-requestor-app \ + out/telink-tlsr9258a-ota-requestor/zephyr/zephyr.elf \ /tmp/bloat_reports/ - name: clean out build output run: rm -rf ./out - - name: Build example Telink (B95 retention) Pump App + - name: Build example Telink (B91) Pump App run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target 'telink-tlsr9258a_retention-pump' build" + "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump' build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - telink tlsr9258a_retention pump-app \ - out/telink-tlsr9258a_retention-pump/zephyr/zephyr.elf \ + telink tlsr9518adk80d pump-app \ + out/telink-tlsr9518adk80d-pump/zephyr/zephyr.elf \ /tmp/bloat_reports/ - name: clean out build output @@ -247,13 +261,13 @@ jobs: - name: clean out build output run: rm -rf ./out - - name: Build example Telink (B95) Window Covering App + - name: Build example Telink (W91) Window Covering App run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target 'telink-tlsr9258a-window-covering' build" + "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-window-covering' build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ - telink tlsr9258a window-covering \ - out/telink-tlsr9258a-window-covering/zephyr/zephyr.elf \ + telink tlsr9118bdk40d window-covering \ + out/telink-tlsr9118bdk40d-window-covering/zephyr/zephyr.elf \ /tmp/bloat_reports/ - name: clean out build output diff --git a/.github/workflows/examples-tizen.yaml b/.github/workflows/examples-tizen.yaml index a289e159dc6318..ae5a847026d3c1 100644 --- a/.github/workflows/examples-tizen.yaml +++ b/.github/workflows/examples-tizen.yaml @@ -16,6 +16,8 @@ name: Build example - Tizen on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -34,7 +36,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-tizen:35 + image: ghcr.io/project-chip/chip-build-tizen:54 options: --user root volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -48,6 +50,12 @@ jobs: with: platform: tizen + - name: Set up environment for size reports + uses: ./.github/actions/setup-size-reports + if: ${{ !env.ACT }} + with: + gh-context: ${{ toJson(github) }} + - name: Build Tizen examples run: | ./scripts/run_in_build_env.sh \ @@ -59,3 +67,20 @@ jobs: build \ --copy-artifacts-to out/artifacts \ " + + - name: Bloat report - chip-tool + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + tizen arm chip-tool-ubsan out/tizen-arm-chip-tool-ubsan/chip-tool \ + /tmp/bloat_reports/ + - name: Bloat report - all-clusters-app + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + tizen arm all-clusters-app out/tizen-arm-all-clusters/chip-all-clusters-app \ + /tmp/bloat_reports/ + + - name: Uploading Size Reports + uses: ./.github/actions/upload-size-reports + if: ${{ !env.ACT }} + with: + platform-name: Tizen diff --git a/.github/workflows/examples-tv-app.yaml b/.github/workflows/examples-tv-app.yaml deleted file mode 100644 index fff6cbb39d1acb..00000000000000 --- a/.github/workflows/examples-tv-app.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2023 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 - TV App and TV Casting App - -on: - push: - pull_request: - merge_group: - -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 - -env: - CHIP_NO_LOG_TIMESTAMPS: true - -jobs: - tv-app: - name: TV App - - env: - BUILD_TYPE: tv_app - - runs-on: ubuntu-latest - if: github.actor != 'restyled-io[bot]' - - container: - image: ghcr.io/project-chip/chip-build-android:35 - volumes: - - "/tmp/bloat_reports:/tmp/bloat_reports" - - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Checkout submodules & Bootstrap - uses: ./.github/actions/checkout-submodules-and-bootstrap - with: - platform: android - - name: Set up environment for size reports - uses: ./.github/actions/setup-size-reports - if: ${{ !env.ACT }} - with: - gh-context: ${{ toJson(github) }} - - name: Build Android arm64-tv-casting-app - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm64-tv-casting-app build" - - name: Clean out build output - run: rm -rf ./out examples/tv-casting-app/android/App/app/libs/jniLibs/* examples/tv-casting-app/android/App/app/libs/*.jar - - name: Build Android arm64-tv-server - run: | - ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target android-arm64-tv-server build" - - name: Clean out build output - run: rm -rf ./out examples/tv-app/android/App/app/libs/jniLibs/* examples/tv-app/android/App/app/libs/*.jar - - name: Uploading Size Reports - uses: ./.github/actions/upload-size-reports - if: ${{ !env.ACT }} - with: - platform-name: TVApp diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml index f7a14d1f5d3d1b..c86839d8f51708 100644 --- a/.github/workflows/full-android.yaml +++ b/.github/workflows/full-android.yaml @@ -16,6 +16,8 @@ name: Full builds - Android on: push: + branches-ignore: + - 'dependabot/**' workflow_dispatch: concurrency: @@ -36,7 +38,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-android:35 + image: ghcr.io/project-chip/chip-build-android:54 volumes: - "/tmp/log_output:/tmp/test_logs" @@ -107,7 +109,9 @@ jobs: "ninja -C out/android-arm64-chip-tool build/chip/java/tests:java_build_test" - name: Clean out build output run: rm -rf ./out examples/android/CHIPTool/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar - # - name: Build Android Studio build (arm64 only) - # run: | - # ./scripts/run_in_build_env.sh \ - # "./scripts/build/build_examples.py --target android-androidstudio-arm64-chip-tool build" + - name: Build Android arm64-chip-test + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py --target android-arm64-chip-test build" + - name: Clean out build output + run: rm -rf ./out examples/android/CHIPTest/app/libs/jniLibs/* examples/android/CHIPTest/app/libs/*.jar diff --git a/.github/workflows/fuzzing-build.yaml b/.github/workflows/fuzzing-build.yaml index 341097915cab4f..30b697c5f1f6ce 100644 --- a/.github/workflows/fuzzing-build.yaml +++ b/.github/workflows/fuzzing-build.yaml @@ -33,7 +33,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/tmp/log_output:/tmp/test_logs" @@ -46,12 +46,8 @@ jobs: run: | mkdir objdir-clone || true - - name: Bootstrap Cache - uses: ./.github/actions/bootstrap-cache - name: Bootstrap uses: ./.github/actions/bootstrap - - name: Upload Bootstrap Logs - uses: ./.github/actions/upload-bootstrap-logs - name: Build all-clusters-app run: | @@ -72,7 +68,7 @@ jobs: build_darwin_fuzzing: name: Build on Darwin - runs-on: macos-latest + runs-on: macos-13 if: github.actor != 'restyled-io[bot]' steps: @@ -84,12 +80,8 @@ jobs: run: | mkdir objdir-clone || true - - name: Bootstrap Cache - uses: ./.github/actions/bootstrap-cache - name: Bootstrap uses: ./.github/actions/bootstrap - - name: Upload Bootstrap Logs - uses: ./.github/actions/upload-bootstrap-logs - name: Build all-clusters-app run: | diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 97617480d8f292..ab3f49942329ce 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -1,5 +1,9 @@ name: "Validate Gradle Wrapper" -on: [push, pull_request] +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: jobs: validation: diff --git a/.github/workflows/java-tests.yaml b/.github/workflows/java-tests.yaml index 8d21ca0bd4c56d..ff734d2d4fe338 100644 --- a/.github/workflows/java-tests.yaml +++ b/.github/workflows/java-tests.yaml @@ -16,6 +16,8 @@ name: Java Tests on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: @@ -40,7 +42,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-java:35 + image: ghcr.io/project-chip/chip-build-java:54 options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0" diff --git a/.github/workflows/kotlin-style.yaml b/.github/workflows/kotlin-style.yaml index 2f8df6f486123b..a8d328268951bf 100644 --- a/.github/workflows/kotlin-style.yaml +++ b/.github/workflows/kotlin-style.yaml @@ -22,11 +22,17 @@ jobs: uses: actions/checkout@v4 - name: "detekt" - uses: natiginfo/action-detekt-all@1.23.5 + uses: natiginfo/action-detekt-all@1.23.6 # Detekt seems not to like circular symlinks, so we set up # explicit paths below + # + # In particular, if symlinks exist and recurse, detekt tries to + # follow, so for example `examples/android/CHIPTest` as a path + # will never end (and eventually run out of HEAP) because + # `examples/android/CHIPTest/third_party/connectedhomeip` is + # circular with: - args: --parallel --build-upon-default-config --config kotlin-detect-config.yaml --input examples/android/CHIPTest,examples/android/CHIPTool,examples/java-matter-controller/java,src/controller/java + args: --parallel --build-upon-default-config --config kotlin-detect-config.yaml --input examples/android/CHIPTest/app,examples/android/CHIPTool,examples/java-matter-controller/java,src/controller/java ktlint: name: "Format check" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 70edd539eee0bf..c76ddc512b1531 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -13,14 +13,20 @@ # limitations under the License. name: Lint Code Base + on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: workflow_dispatch: concurrency: - group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} + 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: @@ -29,7 +35,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 steps: - name: Checkout @@ -40,7 +46,7 @@ jobs: - name: Checkout submodules & Bootstrap uses: ./.github/actions/checkout-submodules-and-bootstrap with: - platform: linux + platform: linux - name: Check for orphaned gn files if: always() @@ -84,28 +90,26 @@ jobs: --skip-dir platform/webos \ --skip-dir platform/Zephyr \ --skip-dir test_driver \ + --skip-dir platform/NuttX \ --known-failure app/app-platform/ContentApp.cpp \ --known-failure app/app-platform/ContentApp.h \ --known-failure app/app-platform/ContentAppPlatform.cpp \ --known-failure app/app-platform/ContentAppPlatform.h \ --known-failure controller/ExamplePersistentStorage.cpp \ --known-failure controller/ExamplePersistentStorage.h \ - --known-failure app/AttributeAccessInterface.h \ --known-failure app/AttributeAccessToken.h \ - --known-failure app/CommandHandler.h \ --known-failure app/CommandHandlerInterface.h \ + --known-failure app/CommandResponseSender.h \ --known-failure app/CommandSenderLegacyCallback.h \ - --known-failure app/data-model/ListLargeSystemExtensions.h \ --known-failure app/ReadHandler.h \ + --known-failure app/reporting/reporting.cpp \ --known-failure app/reporting/tests/MockReportScheduler.cpp \ --known-failure app/reporting/tests/MockReportScheduler.h \ - --known-failure app/TestEventTriggerDelegate.h \ - --known-failure app/util/af.h \ - --known-failure app/util/af-types.h \ --known-failure app/util/attribute-storage.cpp \ + --known-failure app/util/attribute-storage-detail.h \ --known-failure app/util/attribute-storage.h \ - --known-failure app/util/attribute-storage-null-handling.h \ --known-failure app/util/attribute-table.cpp \ + --known-failure app/util/attribute-table-detail.h \ --known-failure app/util/attribute-table.h \ --known-failure app/util/binding-table.cpp \ --known-failure app/util/binding-table.h \ @@ -113,12 +117,16 @@ jobs: --known-failure app/util/DataModelHandler.cpp \ --known-failure app/util/DataModelHandler.h \ --known-failure app/util/ember-compatibility-functions.cpp \ + --known-failure app/util/ember-compatibility-functions.h \ + --known-failure app/util/ember-global-attribute-access-interface.cpp \ + --known-failure app/util/ember-global-attribute-access-interface.h \ + --known-failure app/util/ember-io-storage.cpp \ + --known-failure app/util/ember-io-storage.h \ --known-failure app/util/endpoint-config-api.h \ --known-failure app/util/generic-callbacks.h \ --known-failure app/util/generic-callback-stubs.cpp \ --known-failure app/util/im-client-callbacks.h \ - --known-failure app/util/MatterCallbacks.h \ - --known-failure app/util/odd-sized-integers.h \ + --known-failure app/util/IMClusterCommandHandler.h \ --known-failure app/util/util.cpp \ --known-failure app/util/util.h \ --known-failure app/WriteHandler.h \ @@ -172,7 +180,8 @@ jobs: # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of PRI*8, which are not supported on some libcs. + - name: + Check for use of PRI*8, which are not supported on some libcs. if: always() run: | git grep -I -n "PRI.8" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)third_party/lwip/repo/lwip/src/include/lwip/arch.h' && exit 1 || exit 0 @@ -180,7 +189,9 @@ jobs: # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of PRI*16, which are not supported on some libcs. + - name: + Check for use of PRI*16, which are not supported on some + libcs. if: always() run: | git grep -I -n "PRI.16" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)third_party/lwip/repo/lwip/src/include/lwip/arch.h' && exit 1 || exit 0 @@ -188,7 +199,9 @@ jobs: # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of PRI*64, which are not supported on some libcs. + - name: + Check for use of PRI*64, which are not supported on some + libcs. if: always() run: | # TODO: MessageDefHelper should ideally not be excluded here. @@ -196,7 +209,7 @@ jobs: # TODO: TLVDebug should ideally not be excluded here. # TODO: protocol_decoder.cpp should ideally not be excluded here. # TODO: PersistentStorageMacros.h should ideally not be excluded here. - git grep -I -n "PRI.64" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)examples/chip-tool' ':(exclude)examples/tv-casting-app' ':(exclude)src/app/MessageDef/MessageDefHelper.cpp' ':(exclude)src/app/tests/integration/chip_im_initiator.cpp' ':(exclude)src/lib/core/TLVDebug.cpp' ':(exclude)src/lib/dnssd/tests/TestTxtFields.cpp' ':(exclude)src/lib/format/protocol_decoder.cpp' ':(exclude)src/lib/support/PersistentStorageMacros.h' ':(exclude)src/messaging/tests/echo/echo_requester.cpp' ':(exclude)src/platform/Linux' ':(exclude)src/platform/Ameba' ':(exclude)src/platform/ESP32' ':(exclude)src/platform/Darwin' ':(exclude)src/darwin' ':(exclude)src/platform/webos' ':(exclude)zzz_generated/chip-tool' ':(exclude)src/tools/chip-cert/Cmd_PrintCert.cpp' && exit 1 || exit 0 + git grep -I -n "PRI.64" -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)examples/chip-tool' ':(exclude)examples/tv-casting-app' ':(exclude)src/app/MessageDef/MessageDefHelper.cpp' ':(exclude)src/app/tests/integration/chip_im_initiator.cpp' ':(exclude)src/lib/core/TLVDebug.cpp' ':(exclude)src/lib/dnssd/tests/TestTxtFields.cpp' ':(exclude)src/lib/format/protocol_decoder.cpp' ':(exclude)src/lib/support/PersistentStorageMacros.h' ':(exclude)src/messaging/tests/echo/echo_requester.cpp' ':(exclude)src/platform/Linux' ':(exclude)src/platform/Ameba' ':(exclude)src/platform/ESP32' ':(exclude)src/platform/Darwin' ':(exclude)src/darwin' ':(exclude)src/platform/webos' ':(exclude)zzz_generated/chip-tool' ':(exclude)src/tools/chip-cert/Cmd_PrintCert.cpp' ':(exclude)src/platform/NuttX' && exit 1 || exit 0 # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, @@ -228,22 +241,28 @@ jobs: # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of 0x%u and the like, which lead to misleading output. + - name: + Check for use of 0x%u and the like, which lead to misleading + output. if: always() run: | - git grep -I -n '0x%[0-9l.-]*[^0-9lxX".-]' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 + git grep -I -n '0x%[0-9l.*-]*[^xX"0-9l.*-]' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of '"0x" PRIu*' and the like, which lead to misleading output. + - name: + Check for use of '"0x" PRIu*' and the like, which lead to + misleading output. if: always() run: | git grep -I -n '0x%[0-9-]*" *PRI[^xX]' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. - - name: Check for use of NSLog instead of Matter logging in Matter framework + - name: + Check for use of NSLog instead of Matter logging in Matter + framework if: always() run: | git grep -n 'NSLog(' -- src/darwin/Framework/CHIP && exit 1 || exit 0 @@ -252,32 +271,47 @@ jobs: # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself, as well as excluding the files # that implement the type-safe accessors - - name: Check for use of 'emberAfReadAttribute' instead of the type-safe getters + - name: + Check for use of 'emberAfReadAttribute' instead of the + type-safe getters if: always() run: | - git grep -I -n 'emberAfReadAttribute' -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)src/app/util/af.h' ':(exclude)zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp' ':(exclude)src/app/zap-templates/templates/app/attributes/Accessors-src.zapt' ':(exclude)src/app/util/attribute-table.cpp' && exit 1 || exit 0 + git grep -I -n 'emberAfReadAttribute' -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)src/app/util/attribute-table.h' ':(exclude)zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp' ':(exclude)src/app/zap-templates/templates/app/attributes/Accessors-src.zapt' ':(exclude)src/app/util/attribute-table.cpp' && exit 1 || exit 0 # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself, as well as excluding the files # that implement the type-safe accessors, attribute writing from the wire, and some # Pigweed RPC code that seems hard to update. - - name: Check for use of 'emberAfWriteAttribute' instead of the type-safe setters + - name: + Check for use of 'emberAfWriteAttribute' instead of the + type-safe setters if: always() run: | - git grep -I -n 'emberAfWriteAttribute' -- './*' ':(exclude).github/workflows/lint.yml' ':(exclude)src/app/util/af.h' ':(exclude)zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp' ':(exclude)src/app/zap-templates/templates/app/attributes/Accessors-src.zapt' ':(exclude)src/app/util/attribute-table.cpp' ':(exclude)examples/common/pigweed/rpc_services/Attributes.h' ':(exclude)src/app/util/attribute-table.h' ':(exclude)src/app/util/ember-compatibility-functions.cpp' && exit 1 || exit 0 + git grep -I -n 'emberAfWriteAttribute' -- './*' \ + ':(exclude).github/workflows/lint.yml' \ + ':(exclude)examples/common/pigweed/rpc_services/Attributes.h' \ + ':(exclude)src/app/codegen-data-model/CodegenDataModel_Write.cpp' \ + ':(exclude)src/app/codegen-data-model/tests/EmberReadWriteOverride.cpp' \ + ':(exclude)src/app/util/attribute-table.cpp' \ + ':(exclude)src/app/util/attribute-table.h' \ + ':(exclude)src/app/util/ember-compatibility-functions.cpp' \ + ':(exclude)src/app/zap-templates/templates/app/attributes/Accessors-src.zapt' \ + ':(exclude)zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp' \ + && exit 1 || exit 0 - # Run python Linter (flake8) and verify python files - # ignore some style errors, restyler should do that - - name: Check for errors using flake8 Python linter + # Run ruff python linter + - name: Check for errors using ruff Python linter if: always() run: | - flake8 --extend-ignore=E501,W391 + ruff check # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of "SuccessOrExit(CHIP_ERROR_*)", which should probably be "SuccessOrExit(err = CHIP_ERROR_*)" + - name: + Check for use of "SuccessOrExit(CHIP_ERROR_*)", which should + probably be "SuccessOrExit(err = CHIP_ERROR_*)" if: always() run: | git grep -I -n 'SuccessOrExit(CHIP_ERROR' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 @@ -285,7 +319,27 @@ jobs: # git grep exits with 0 if it finds a match, but we want # to fail (exit nonzero) on match. And we want to exclude this file, # to avoid our grep regexp matching itself. - - name: Check for use of "SuccessOrExit(something-without-assignment(", which should probably be "SuccessOrExit(err = something(" + - name: + Check for use of + "SuccessOrExit(something-without-assignment(", which should + probably be "SuccessOrExit(err = something(" if: always() run: | git grep -I -n 'SuccessOrExit([^=)]*(' -- './*' ':(exclude).github/workflows/lint.yml' && exit 1 || exit 0 + + # git grep exits with 0 if it finds a match, but we want + # to fail (exit nonzero) on match. + - name: + Check for use of "using namespace" outside of a class/function + in headers. + if: always() + run: | + # Various platforms have `using namespace chip::Ble` in their BLEManager* headers; just exclude those for now. + # + # Exclude platform openiotsdk bits that do this in their persistent storage header. + # + # Also exclude examples (for now) and third_party, which have various instances of this. + # + # Ignore uses of `System::Clock::Literals`, because that's the only way to have things using _ms32 or whatnot + # in a header file. + git grep -I -n -e '^using namespace' --and --not -e 'System::Clock::Literals' -- './**/*.h' ':(exclude)src/platform/*/BLEManager*.h' ':(exclude)src/platform/openiotsdk/KVPsaPsStore.h' ':(exclude)./examples' ':(exclude)./third_party' && exit 1 || exit 0 diff --git a/.github/workflows/minimal-build.yaml b/.github/workflows/minimal-build.yaml index 189c8db3159951..6fd9a96e151ec6 100644 --- a/.github/workflows/minimal-build.yaml +++ b/.github/workflows/minimal-build.yaml @@ -16,6 +16,8 @@ name: Minimal Build (Linux / configure) on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -24,14 +26,14 @@ concurrency: cancel-in-progress: true jobs: - minimal: + minimal-all-clusters: name: Linux / configure build of all-clusters-app if: github.actor != 'restyled-io[bot]' runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-minimal:35 + image: ghcr.io/project-chip/chip-build-minimal:54 steps: - name: Checkout @@ -45,3 +47,25 @@ jobs: - name: Configure and build All Clusters App run: | CC=gcc CXX=g++ scripts/configure --project=examples/all-clusters-app/linux && ./ninja-build + + minimal-network-manager: + name: Linux / configure build of network-manager-app + + if: github.actor != 'restyled-io[bot]' + runs-on: ubuntu-latest + + container: + image: ghcr.io/project-chip/chip-build-minimal:54 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Checkout submodules # but don't bootstrap! + uses: ./.github/actions/checkout-submodules + with: + platform: linux + + - name: Configure and build Network Manager App + run: | + CC=gcc CXX=g++ scripts/configure --project=examples/network-manager-app/linux && ./ninja-build diff --git a/.github/workflows/qemu.yaml b/.github/workflows/qemu.yaml index c4992953780911..bff12a5999586e 100644 --- a/.github/workflows/qemu.yaml +++ b/.github/workflows/qemu.yaml @@ -16,6 +16,8 @@ name: QEMU on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -38,7 +40,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-esp32-qemu:35 + image: ghcr.io/project-chip/chip-build-esp32-qemu:54 volumes: - "/tmp/log_output:/tmp/test_logs" @@ -76,7 +78,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-tizen-qemu:35 + image: ghcr.io/project-chip/chip-build-tizen-qemu:54 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/release_artifacts.yaml b/.github/workflows/release_artifacts.yaml index 65896c73b3faca..be862403037423 100644 --- a/.github/workflows/release_artifacts.yaml +++ b/.github/workflows/release_artifacts.yaml @@ -23,7 +23,7 @@ on: env: CHIP_NO_LOG_TIMESTAMPS: true - + jobs: esp32: name: ESP32 @@ -32,19 +32,15 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-esp32:35 + image: ghcr.io/project-chip/chip-build-esp32:54 steps: - name: Checkout uses: actions/checkout@v4 with: - ref: "${{ github.event.inputs.releaseTag }}" - - name: Bootstrap Cache - uses: ./.github/actions/bootstrap-cache + ref: "${{ github.event.inputs.releaseTag }}" - name: Bootstrap uses: ./.github/actions/bootstrap - - name: Upload Bootstrap Logs - uses: ./.github/actions/upload-bootstrap-logs - name: Build run: scripts/examples/esp_example.sh all-clusters-app @@ -62,27 +58,24 @@ jobs: efr32: name: EFR32 env: - SILABS_BOARD: BRD4161A - BUILD_DIRECTORY: out/lock_app_debug/BRD4161A + SILABS_BOARD: BRD4187C + BUILD_DIRECTORY: out/lock_app_debug/BRD4187C runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-efr32:36 + image: ghcr.io/project-chip/chip-build-efr32:56 steps: - name: Checkout uses: actions/checkout@v4 with: - ref: "${{ github.event.inputs.releaseTag }}" - - name: Bootstrap Cache - uses: ./.github/actions/bootstrap-cache + ref: "${{ github.event.inputs.releaseTag }}" - name: Bootstrap uses: ./.github/actions/bootstrap - - name: Upload Bootstrap Logs - uses: ./.github/actions/upload-bootstrap-logs - name: Build example EFR32 Lock App - run: scripts/examples/gn_silabs_example.sh examples/lock-app/efr32/ + run: + scripts/examples/gn_silabs_example.sh examples/lock-app/efr32/ out/lock_app_debug $SILABS_BOARD - name: Upload artifact diff --git a/.github/workflows/smoketest-android.yaml b/.github/workflows/smoketest-android.yaml index 64efaeb82ff20f..014573614a0448 100644 --- a/.github/workflows/smoketest-android.yaml +++ b/.github/workflows/smoketest-android.yaml @@ -37,7 +37,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-android:35 + image: ghcr.io/project-chip/chip-build-android:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/spell.yml b/.github/workflows/spell.yml index 1e8194a9a2075f..f37a0e28711c6f 100644 --- a/.github/workflows/spell.yml +++ b/.github/workflows/spell.yml @@ -16,6 +16,8 @@ name: Run misspell on: push: + branches-ignore: + - 'dependabot/**' paths: - "**.md" - ".github/.wordlist.txt" @@ -25,16 +27,6 @@ on: - ".github/.wordlist.txt" jobs: -# Seems redundant; removed as pyspelling is customized while this is not -# check-reviewdog: -# name: Check Spelling - reviewdog -# runs-on: ubuntu-latest -# steps: -# - name: Checkout -# uses: actions/checkout@v4 -# - uses: reviewdog/action-misspell@v1 -# with: -# github_token: ${{ secrets.GITHUB_TOKEN }} check-spellcheck: name: Check Spelling - pyspelling runs-on: ubuntu-latest diff --git a/.github/workflows/third-party-check.yaml b/.github/workflows/third-party-check.yaml new file mode 100644 index 00000000000000..575e7e3c9c7137 --- /dev/null +++ b/.github/workflows/third-party-check.yaml @@ -0,0 +1,34 @@ +# Copyright (c) 2024 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: Check for Unintentional Submodule Updates + +on: + pull_request: + branches-ignore: + - 'dependabot/**' + paths: + - "third_party/**" + - ".gitmodules" + +jobs: + check-submodule-update-label: + name: Check For Submodule Update Label + runs-on: ubuntu-latest + if: "!contains(github.event.pull_request.labels.*.name, 'changing-submodules-on-purpose')" + steps: + - name: Error Message + run: echo This pull request attempts to update submodules without the changing-submodules-on-purpose label. Please apply that label if the changes are intentional, or remove those changes. + - name: Fail Job + run: exit 1 diff --git a/.github/workflows/unit_integration_test.yaml b/.github/workflows/unit_integration_test.yaml index 15199d4d6532e3..c1d3bebddde5ae 100644 --- a/.github/workflows/unit_integration_test.yaml +++ b/.github/workflows/unit_integration_test.yaml @@ -16,6 +16,8 @@ name: Unit / Integration Tests on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -37,7 +39,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 volumes: - "/:/runner-root-volume" - "/tmp/log_output:/tmp/test_logs" @@ -50,6 +52,7 @@ jobs: uses: ./.github/actions/checkout-submodules-and-bootstrap with: platform: linux + bootstrap-log-name: bootstrap-logs-unittest-${{ matrix.type }} - name: Artifact suffix id: outsuffix uses: haya14busa/action-cond@v1 diff --git a/.github/workflows/zap_regeneration.yaml b/.github/workflows/zap_regeneration.yaml index a0ab3653d5ecb1..81ffbcbb3b057a 100644 --- a/.github/workflows/zap_regeneration.yaml +++ b/.github/workflows/zap_regeneration.yaml @@ -30,7 +30,7 @@ jobs: runs-on: ubuntu-20.04 container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 defaults: run: shell: sh diff --git a/.github/workflows/zap_templates.yaml b/.github/workflows/zap_templates.yaml index cb8bff6172a119..987cc82a2e3f06 100644 --- a/.github/workflows/zap_templates.yaml +++ b/.github/workflows/zap_templates.yaml @@ -16,6 +16,8 @@ name: ZAP on: push: + branches-ignore: + - 'dependabot/**' pull_request: merge_group: @@ -32,7 +34,7 @@ jobs: runs-on: ubuntu-20.04 container: - image: ghcr.io/project-chip/chip-build:35 + image: ghcr.io/project-chip/chip-build:54 defaults: run: shell: sh diff --git a/.gitignore b/.gitignore index d6aefb1d928c1b..1c2d1430263594 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ # Build System out/ +/examples/virtual-device-app/android/App/buildSrc/build/ /src/test_driver/nrfconnect/build/ /src/darwin/Framework/build/ diff --git a/.gitmodules b/.gitmodules index 06fb7f0e347951..d23157baea4481 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,10 +6,6 @@ path = third_party/nlio/repo url = https://github.com/nestlabs/nlio.git branch = master -[submodule "nlunit-test"] - path = third_party/nlunit-test/repo - url = https://github.com/nestlabs/nlunit-test.git - branch = master [submodule "mbedtls"] path = third_party/mbedtls/repo url = https://github.com/ARMmbed/mbedtls.git @@ -54,16 +50,16 @@ path = third_party/freertos/repo url = https://github.com/FreeRTOS/FreeRTOS-Kernel.git branch = V10.3.1-kernel-only - platforms = ameba,cc13xx_26xx,bouffalolab,esp32,k32w,infineon,qpg,cc32xx + platforms = ameba,cc13xx_26xx,bouffalolab,esp32,infineon,qpg,cc32xx [submodule "simw-top-mini"] path = third_party/simw-top-mini/repo url = https://github.com/NXP/plug-and-trust.git branch = int/CHIPSE_Release - platforms = k32w + platforms = nxp [submodule "third_party/openthread/ot-nxp"] path = third_party/openthread/ot-nxp url = https://github.com/NXP/ot-nxp.git - platforms = k32w + platforms = nxp [submodule "third_party/openthread/ot-qorvo"] path = third_party/openthread/ot-qorvo url = https://github.com/openthread/ot-qorvo.git @@ -73,6 +69,11 @@ url = https://github.com/SiliconLabs/ot-efr32.git branch = matter_sve platforms = silabs,silabs_docker +[submodule "ot-stm32"] + path = third_party/openthread/ot-stm32 + url = https://github.com/openthread/openthread + branch = eb6377f + platforms = stm32 [submodule "third_party/openthread/ot-ifx"] path = third_party/openthread/ot-ifx url = https://github.com/Infineon/ot-ifx-release.git @@ -184,22 +185,6 @@ [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/infineon/cyw30739_sdk/repos/30739A0 - url = https://github.com/Infineon/OT-Matter-30739A0.git - platforms = infineon -[submodule "cyw30739_sdk/include"] - path = third_party/infineon/cyw30739_sdk/repos/btsdk-include - url = https://github.com/Infineon/btsdk-include.git - platforms = infineon -[submodule "cyw30739_sdk/target"] - path = third_party/infineon/cyw30739_sdk/repos/CYW930739M2EVB-01 - url = https://github.com/Infineon/OT-Matter-TARGET_CYW930739M2EVB-01.git - platforms = infineon -[submodule "cyw30739_sdk/tools"] - path = third_party/infineon/cyw30739_sdk/repos/btsdk-tools - url = https://github.com/Infineon/btsdk-tools.git - platforms = infineon [submodule "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 @@ -212,6 +197,12 @@ path = third_party/infineon/psoc6/psoc6_sdk/libs/serial-flash url = https://github.com/Infineon/serial-flash platforms = infineon +[submodule "infineon/matter-wpan-sdk"] + path = third_party/infineon/repos/matter-wpan-sdk + url = https://github.com/Infineon/matter-wpan-sdk.git + branch = main + platforms = infineon + recursive = true [submodule "ti_simplelink_sdk"] path = third_party/ti_simplelink_sdk/repo_cc13xx_cc26xx url = https://github.com/TexasInstruments/cc13xx_cc26xx_sdk.git @@ -236,10 +227,10 @@ url = https://github.com/SiliconLabs/sdk_support.git branch = main platforms = silabs,silabs_docker -[submodule "third_party/silabs/gecko_sdk"] - path = third_party/silabs/gecko_sdk - url = https://github.com/SiliconLabs/gecko_sdk.git - branch = v4.4.1 +[submodule "third_party/silabs/simplicity_sdk"] + path = third_party/silabs/simplicity_sdk + url = https://github.com/SiliconLabs/simplicity_sdk.git + branch = v2024.6.0 platforms = silabs [submodule "third_party/silabs/wiseconnect-wifi-bt-sdk"] path = third_party/silabs/wiseconnect-wifi-bt-sdk @@ -249,7 +240,7 @@ [submodule "third_party/silabs/wifi_sdk"] path = third_party/silabs/wifi_sdk url = https://github.com/SiliconLabs/wiseconnect.git - branch = v3.1.3 + branch = v3.3.0 platforms = silabs [submodule "editline"] path = third_party/editline/repo @@ -257,6 +248,7 @@ [submodule "third_party/boringssl/repo/src"] path = third_party/boringssl/repo/src url = https://github.com/google/boringssl.git + branch = master [submodule "third_party/mt793x_sdk/filogic"] path = third_party/mt793x_sdk/filogic url = https://github.com/MediaTek-Labs/genio-matter-bsp.git @@ -318,9 +310,19 @@ [submodule "third_party/st/STM32CubeWB"] path = third_party/st/STM32CubeWB url = https://github.com/STMicroelectronics/STM32CubeWB.git - branch = v1.17.0 + branch = v1.18.0 platforms = stm32 [submodule "p6/lwip-network-interface-integration"] path = third_party/infineon/psoc6/psoc6_sdk/libs/lwip-network-interface-integration url = https://github.com/Infineon/lwip-network-interface-integration.git platforms = infineon +[submodule "third_party/infineon/trustm/optiga-trust-m"] + path = third_party/infineon/trustm/optiga-trust-m + url = https://github.com/Infineon/optiga-trust-m.git + branch = matter_support + platforms = infineon +[submodule "third_party/nxp/nxp_matter_support"] + path = third_party/nxp/nxp_matter_support + url = https://github.com/NXP/nxp_matter_support.git + branch = master + platforms = nxp diff --git a/.gn b/.gn index b9586c7fce69ea..f844fd20e9b87d 100644 --- a/.gn +++ b/.gn @@ -25,6 +25,7 @@ script_executable = "python3" default_args = { pw_unit_test_AUTOMATIC_RUNNER = "$dir_pigweed/targets/host/run_test" + pw_unit_test_CONFIG = "//config/pw_unit_test:define_overrides" pw_build_PIP_CONSTRAINTS = [ "//scripts/setup/constraints.txt" ] pw_build_PIP_REQUIREMENTS = [ "//scripts/setup/requirements.build.txt" ] diff --git a/.pullapprove.yml b/.pullapprove.yml index f7da2711417441..5be3f21a28a327 100644 --- a/.pullapprove.yml +++ b/.pullapprove.yml @@ -133,6 +133,14 @@ groups: teams: [reviewers-google] reviews: request: 10 + shared-reviewers-grundfos: + type: optional + conditions: + - files.include('*') + reviewers: + teams: [reviewers-grundfos] + reviews: + request: 10 shared-reviewers-irobot: type: optional conditions: @@ -165,6 +173,14 @@ groups: teams: [reviewers-nordic] reviews: request: 10 + shared-reviewers-nxp: + type: optional + conditions: + - files.include('*') + reviewers: + teams: [reviewers-nxp] + reviews: + request: 10 shared-reviewers-samsung: type: optional conditions: @@ -173,6 +189,14 @@ groups: teams: [reviewers-samsung] reviews: request: 10 + shared-reviewers-eve: + type: optional + conditions: + - files.include('*') + reviewers: + teams: [reviewers-eve] + reviews: + request: 10 # shared-reviewers-signify disabled for now, because the reviewers-signify # team is empty and pullapprove seems to mis-handle that badly and treats # _all_ reviewers as being in this group. diff --git a/.restyled.yaml b/.restyled.yaml index 56ed3061e6e1fa..f55a0e367d91bd 100644 --- a/.restyled.yaml +++ b/.restyled.yaml @@ -55,7 +55,6 @@ exclude: - "third_party/nlassert/repo/**/*" # from here down built with $ awk '/path =/ {print $3 "/**/*"}' .gitmodules - "third_party/nlfaultinjection/repo/**/*" - "third_party/nlio/repo/**/*" - - "third_party/nlunit-test/repo/**/*" - "third_party/mbedtls/repo/**/*" - "examples/common/QRCode/repo/**/*" - "examples/common/m5stack-tft/repo/**/*" @@ -74,6 +73,7 @@ exclude: - "examples/chef/sample_app_util/test_files/*.yaml" - "examples/chef/zzz_generated/**/*" - "examples/platform/nxp/k32w/k32w0/scripts/demo_generated_certs/**/*" + - "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/*" # zap-generated files - "integrations/cloudbuild/*.yaml" # uglier long command line content - "scripts/run_codegen_targets.sh" # shellharden breaks for loops over command outputs - "scripts/tagging/tag_new_release.sh" # shellharden breaks parameter passing @@ -85,7 +85,8 @@ exclude: - "integrations/docker/build-all.sh" # tries to quote loop variable - "scripts/setup/pigweed.json" # TODO(#29547). This file is temporary copy from pigweed repo that has minor edits. No restyle help in diff. - "docs/ERROR_CODES.md" # generated by scripts, not easy to align tables - - "docs/clusters.md" # generated by scripts, not easy to align tables + - "docs/zap_clusters.md" # generated by scripts, not easy to align tables + - "docs/spec_clusters.md" # generated by scripts, not easy to align tables - "docs/testing/yaml_pseudocluster.md" # generated by scripts, restyler makes the tables render improperly - "docs/testing/yaml_schema.md" # generated by scripts, restyler makes the tables render improperly @@ -230,6 +231,8 @@ restylers: command: - autopep8 - "--in-place" + - "--max-line-length" + - "132" arguments: [] include: - "**/*.py" diff --git a/.vscode/launch.json b/.vscode/launch.json index 0ed822ad0251a9..898defc9c60fe1 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -402,6 +402,23 @@ "cwd": "${workspaceFolder}" }, + { + "name": "Fabric Admin (Linux)", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/out/debug/standalone/fabric-admin", + "args": ["--log-file-path", "/tmp/fabric_admin.log"], + "cwd": "${workspaceFolder}" + }, + + { + "name": "Fabric Bridge App (Linux)", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/out/debug/standalone/fabric-bridge-app", + "cwd": "${workspaceFolder}" + }, + { "name": "OTA Requestor App (Linux)", "type": "lldb", diff --git a/.vscode/settings.json b/.vscode/settings.json index bfac435030bb4f..d38758524ac8a5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,12 +7,27 @@ "${workspaceFolder}/build/default/src/lib/**", "${workspaceFolder}/config/standalone/", "${workspaceFolder}/config/standalone/**", + "${workspaceFolder}/darwin/Framework/CHIP/**", "${workspaceFolder}/examples/**", "${workspaceFolder}/src/**", + "${workspaceFolder}/src/app/**", + "${workspaceFolder}/src/ble/**", + "${workspaceFolder}/src/controller/**", + "${workspaceFolder}/src/credentials/**", + "${workspaceFolder}/src/crypto/**", + "${workspaceFolder}/src/darwin/**", "${workspaceFolder}/src/include/", "${workspaceFolder}/src/include/**", + "${workspaceFolder}/src/inet/**", "${workspaceFolder}/src/lib/**", + "${workspaceFolder}/src/lwip/**", + "${workspaceFolder}/src/messaging/**", + "${workspaceFolder}/src/platform/**", + "${workspaceFolder}/src/protocols/**", + "${workspaceFolder}/src/setup_payload/**", "${workspaceFolder}/src/system/**", + "${workspaceFolder}/src/tracing/**", + "${workspaceFolder}/src/transport/**", "${workspaceFolder}/third_party/nlassert/repo/include/**", "${workspaceFolder}/third_party/nlio/repo/include/**" ], @@ -35,6 +50,7 @@ "editor.defaultFormatter": "esbenp.prettier-vscode" }, "files.associations": { + "*.mm": "cpp", "iostream": "cpp", "array": "cpp", "atomic": "cpp", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 6e9983700a0df7..a0ae1b95fe4730 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -557,54 +557,18 @@ "bouffalolab-xt-zb6-devkit-light", "bouffalolab-xt-zb6-devkit-light-rpc-115200", "bouffalolab-bl706-night-light-light", - "efr32-brd4161a-light", - "efr32-brd4163a-light", - "efr32-brd4164a-light", - "efr32-brd4166a-light", - "efr32-brd4170a-light", - "efr32-brd4186a-light", - "efr32-brd4187a-light", - "efr32-brd4304a-light", - "efr32-brd4161a-light-rpc", - "efr32-brd4163a-light-rpc", - "efr32-brd4164a-light-rpc", - "efr32-brd4166a-light-rpc", - "efr32-brd4170a-light-rpc", - "efr32-brd4186a-light-rpc", - "efr32-brd4187a-light-rpc", - "efr32-brd4304a-light-rpc", - "efr32-brd4161a-lock", - "efr32-brd4163a-lock", - "efr32-brd4164a-lock", - "efr32-brd4166a-lock", - "efr32-brd4170a-lock", - "efr32-brd4186a-lock", - "efr32-brd4187a-lock", - "efr32-brd4304a-lock", - "efr32-brd4161a-unit-test", - "efr32-brd4163a-unit-test", - "efr32-brd4164a-unit-test", - "efr32-brd4166a-unit-test", - "efr32-brd4170a-unit-test", - "efr32-brd4186a-unit-test", - "efr32-brd4187a-unit-test", - "efr32-brd4304a-unit-test", - "efr32-brd4161a-switch", - "efr32-brd4163a-switch", - "efr32-brd4164a-switch", - "efr32-brd4166a-switch", - "efr32-brd4170a-switch", - "efr32-brd4186a-switch", - "efr32-brd4187a-switch", - "efr32-brd4304a-switch", - "efr32-brd4161a-window-covering", - "efr32-brd4163a-window-covering", - "efr32-brd4164a-window-covering", - "efr32-brd4166a-window-covering", - "efr32-brd4170a-window-covering", - "efr32-brd4186a-window-covering", - "efr32-brd4187a-window-covering", - "efr32-brd4304a-window-covering", + "efr32-brd4186c-light", + "efr32-brd4186c-light-rpc", + "efr32-brd4186c-lock", + "efr32-brd4186c-unit-test", + "efr32-brd4186c-switch", + "efr32-brd4186c-window-covering", + "efr32-brd4187c-light", + "efr32-brd4187c-light-rpc", + "efr32-brd4187c-lock", + "efr32-brd4187c-unit-test", + "efr32-brd4187c-switch", + "efr32-brd4187c-window-covering", "efr32-brd4338a-light-wifi-917_soc-skip_rps_generation", "esp32-c3devkit-all-clusters", "esp32-devkitc-all-clusters", diff --git a/BUILD.gn b/BUILD.gn index 0992c61b0510c6..ddd893a4ca49d8 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -16,7 +16,6 @@ import("//build_overrides/build.gni") import("//build_overrides/chip.gni") import("//build_overrides/mbedtls.gni") import("//build_overrides/nlassert.gni") -import("//build_overrides/nlunit_test.gni") import("//build_overrides/pigweed.gni") import("//src/lwip/lwip.gni") @@ -135,7 +134,6 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { "${chip_root}/src/system", "${chip_root}/src/transport", "${nlassert_root}:nlassert", - "${nlunit_test_root}:nlunit-test", ] if (enable_fuzz_test_targets) { @@ -163,6 +161,7 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { "${chip_root}/examples/shell/standalone:chip-shell", "${chip_root}/src/app/tests/integration:chip-im-initiator", "${chip_root}/src/app/tests/integration:chip-im-responder", + "${chip_root}/src/inet/tests:inet-layer-test-tool", "${chip_root}/src/lib/address_resolve:address-resolve-tool", "${chip_root}/src/messaging/tests/echo:chip-echo-requester", "${chip_root}/src/messaging/tests/echo:chip-echo-responder", @@ -233,6 +232,7 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { "//scripts/build:build_examples.tests", "//scripts/py_matter_idl:matter_idl.tests", "//scripts/py_matter_yamltests:matter_yamltests.tests", + "//scripts/tests/py:metadata_parser.tests", "//src:tests_run", ] diff --git a/README.md b/README.md index 1dad5ef6fe4d4f..d2967701288875 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ [![ASR](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20ASR/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-asr.yaml) [![BouffaloLab](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20BouffaloLab/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-bouffalolab.yaml) [![Darwin](https://github.com/project-chip/connectedhomeip/workflows/Darwin/badge.svg)](https://github.com/project-chip/connectedhomeip/blob/master/.github/workflows/darwin.yaml) -[![TI CC26X2X7](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20TI%20CC26X2X7/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-cc13x2x7_26x2x7.yaml) +[![TI CC26X2X7](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20TI%20CC13XX_26XX/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-cc13xx_26xx.yaml) [![TI CC32XX](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20TI%20CC32XX/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-cc32xx.yaml) [![EFR32](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20EFR32/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-efr32.yaml) [![ESP32](https://github.com/project-chip/connectedhomeip/workflows/Build%20example%20-%20ESP32/badge.svg)](https://github.com/project-chip/connectedhomeip/actions/workflows/examples-esp32.yaml) diff --git a/build/chip/chip_test_suite.gni b/build/chip/chip_test_suite.gni index 596642d5335241..60f29346a48fa6 100644 --- a/build/chip/chip_test_suite.gni +++ b/build/chip/chip_test_suite.gni @@ -33,13 +33,12 @@ assert(chip_build_tests) # ] # # test_sources = [ -# "TestFoo.cpp", # Files are parsed for `CHIP_REGISTER_TEST_SUITE(...)` -# "TestBar.cpp", # and a driver is created automatically +# "TestFoo.cpp", +# "TestBar.cpp", # ] # # public_deps = [ # "${chip_root}/src/lib/foo", # add dependencies here -# "${nlunit_test_root}:nlunit-test", # ] # } # @@ -57,7 +56,6 @@ assert(chip_build_tests) # # public_deps = [ # "${chip_root}/src/lib/foo", # add dependencies here -# "${nlunit_test_root}:nlunit-test", # ] # # tests = [ @@ -94,9 +92,14 @@ template("chip_test_suite") { public_deps = [] } - if (current_os != "zephyr" && current_os != "mbed") { + deps = [ dir_pw_unit_test ] + + if (current_os != "zephyr" && current_os != "mbed" && + chip_device_platform != "efr32") { # Depend on stdio logging, and have it take precedence over the default platform backend - public_deps += [ "${chip_root}/src/platform/logging:force_stdio" ] + public_deps += [ "${chip_root}/src/platform/logging:stdio" ] + } else { + public_deps += [ "${chip_root}/src/platform/logging:default" ] } } if (chip_link_tests) { @@ -106,6 +109,11 @@ template("chip_test_suite") { foreach(_test, invoker.test_sources) { _test_name = string_replace(_test, ".cpp", "") + _test_output_dir = "${root_out_dir}/tests" + if (defined(invoker.output_dir)) { + _test_output_dir = invoker.output_dir + } + pw_test(_test_name) { forward_variables_from(invoker, [ @@ -116,6 +124,7 @@ template("chip_test_suite") { ]) public_deps += [ ":${_suite_name}.lib" ] sources = [ _test ] + output_dir = _test_output_dir } tests += [ _test_name ] } @@ -123,6 +132,11 @@ template("chip_test_suite") { if (defined(invoker.tests)) { foreach(_test, invoker.tests) { + _test_output_dir = "${root_out_dir}/tests" + if (defined(invoker.output_dir)) { + _test_output_dir = invoker.output_dir + } + pw_test(_test) { forward_variables_from(invoker, [ @@ -137,103 +151,7 @@ template("chip_test_suite") { "${_test}.cpp", "${_test}Driver.cpp", ] - } - tests += [ _test ] - } - } - - group(_suite_name) { - deps = [] - foreach(_test, tests) { - deps += [ ":${_test}" ] - } - } - - if (chip_pw_run_tests) { - group("${_suite_name}_run") { - deps = [] - foreach(_test, tests) { - deps += [ ":${_test}.run" ] - } - } - } - } else { - group(_suite_name) { - deps = [ ":${_suite_name}.lib" ] - } - } -} - -# TODO: remove this once transition away from nlunit-test is completed -template("chip_test_suite_using_nltest") { - _suite_name = target_name - - # Ensures that the common library has sources containing both common - # and individual unit tests. - if (!defined(invoker.sources)) { - invoker.sources = [] - } - - if (defined(invoker.test_sources)) { - invoker.sources += invoker.test_sources - } - - if (chip_build_test_static_libraries) { - _target_type = "static_library" - } else { - _target_type = "source_set" - } - target(_target_type, "${_suite_name}.lib") { - forward_variables_from(invoker, "*", [ "tests" ]) - - output_dir = "${root_out_dir}/lib" - - if (!defined(invoker.public_deps)) { - public_deps = [] - } - - if (current_os != "zephyr" && current_os != "mbed") { - # Depend on stdio logging, and have it take precedence over the default platform backend - public_deps += [ "${chip_root}/src/platform/logging:force_stdio" ] - } - } - if (chip_link_tests) { - tests = [] - - if (defined(invoker.test_sources)) { - foreach(_test, invoker.test_sources) { - _test_name = string_replace(_test, ".cpp", "") - - _driver_name = "${root_gen_dir}/${_test_name}.driver.cpp" - - action("${_test_name}_generate_driver") { - script = "${chip_root}/scripts/gen_test_driver.py" - - inputs = [ _test ] - outputs = [ _driver_name ] - args = [ - "--input_file=" + rebase_path(_test, root_build_dir), - "--output_file=" + rebase_path(_driver_name, root_build_dir), - ] - } - - chip_test(_test_name) { - sources = [ _driver_name ] - public_deps = [ - ":${_suite_name}.lib", - ":${_test_name}_generate_driver", - ] - } - tests += [ _test_name ] - } - } - - if (defined(invoker.tests)) { - foreach(_test, invoker.tests) { - chip_test(_test) { - sources = [ "${_test}Driver.cpp" ] - - public_deps = [ ":${_suite_name}.lib" ] + output_dir = _test_output_dir } tests += [ _test ] } diff --git a/build/chip/fuzz_test.gni b/build/chip/fuzz_test.gni index 7b683be047d913..784ed60273b02a 100644 --- a/build/chip/fuzz_test.gni +++ b/build/chip/fuzz_test.gni @@ -36,7 +36,6 @@ declare_args() { # # public_deps = [ # "${chip_root}/src/lib/foo", # add dependencies here -# "${nlunit_test_root}:nlunit-test", # ] # } # diff --git a/build/chip/linux/BUILD.gn b/build/chip/linux/BUILD.gn index c86f803a70f3d3..a530d5a611a25e 100644 --- a/build/chip/linux/BUILD.gn +++ b/build/chip/linux/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2020-2024 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. @@ -21,4 +21,5 @@ pkg_config("glib") { "glib-2.0", "gio-unix-2.0", ] + optional = true # Only certain conditionally-compiled modules depend on glib } diff --git a/build/chip/python_wheel.gni b/build/chip/python_wheel.gni new file mode 100644 index 00000000000000..ac00fe140456cc --- /dev/null +++ b/build/chip/python_wheel.gni @@ -0,0 +1,88 @@ +# Copyright (c) 2024 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("//build_overrides/chip.gni") +import("//build_overrides/pigweed.gni") + +import("$dir_pw_build/python.gni") +import("${chip_root}/src/system/system.gni") + +declare_args() { + chip_python_version = "0.0" + chip_python_package_prefix = "chip" + chip_python_supports_stack_locking = chip_system_config_locking != "none" +} + +template("chip_python_wheel_action") { + _dist_dir = "${root_out_dir}/controller/python" + + _py_manifest_file = "${target_gen_dir}/${target_name}.py_manifest.json" + + pw_python_action(target_name) { + script = "build-chip-wheel.py" + forward_variables_from(invoker, "*") + + _py_manifest_files_rebased = [] + foreach(_manifest_entry, py_manifest_files) { + inputs += _manifest_entry.sources + _py_manifest_files_rebased += [ + { + src_dir = rebase_path(_manifest_entry.src_dir, + get_path_info(_py_manifest_file, "dir")) + sources = + rebase_path(_manifest_entry.sources, _manifest_entry.src_dir) + }, + ] + } + + if (defined(invoker.py_scripts)) { + _py_scripts = invoker.py_scripts + } else { + _py_scripts = [] + } + + _py_manifest = { + files = _py_manifest_files_rebased + packages = py_packages + scripts = _py_scripts + package_reqs = py_package_reqs + } + + write_file(_py_manifest_file, _py_manifest, "json") + + args = [ + "--package_name", + py_package_name, + "--build_number", + chip_python_version, + "--build_dir", + rebase_path("${target_gen_dir}/${target_name}.py_build", root_build_dir), + "--dist_dir", + rebase_path(_dist_dir, root_build_dir), + "--manifest", + rebase_path(_py_manifest_file, root_build_dir), + "--plat-name", + py_platform_tag, + ] + + if (defined(invoker.lib_name)) { + args += [ + "--lib-name", + lib_name, + ] + } + + outputs = [ "${_dist_dir}/$output_name" ] + } +} diff --git a/build/chip/tests.gni b/build/chip/tests.gni old mode 100644 new mode 100755 index 61a2ad3e685682..0c2c742d646a15 --- a/build/chip/tests.gni +++ b/build/chip/tests.gni @@ -15,8 +15,14 @@ import("//build_overrides/build.gni") import("//build_overrides/chip.gni") +import("${chip_root}/build/chip/tools.gni") import("${chip_root}/src/platform/device.gni") +declare_args() { + # Build monolithic test library. + chip_monolithic_tests = false +} + declare_args() { # Enable building tests. chip_build_tests = current_os != "freertos" @@ -40,6 +46,6 @@ declare_args() { } declare_args() { - # Enable use of nlfaultinjection. - chip_with_nlfaultinjection = chip_build_tests + # Enable use of nlfaultinjection when building tests or when building tools. + chip_with_nlfaultinjection = chip_build_tests || chip_build_tools } diff --git a/build/chip/tools.gni b/build/chip/tools.gni index efb25d3fa4a43a..46c321d965d1f6 100644 --- a/build/chip/tools.gni +++ b/build/chip/tools.gni @@ -19,7 +19,7 @@ declare_args() { chip_build_tools = current_os != "freertos" && current_os != "android" && chip_device_platform != "fake" chip_can_build_cert_tool = - chip_crypto == "openssl" || + chip_crypto == "openssl" || chip_crypto == "boringssl" || (chip_crypto == "" && (current_os != "android" && current_os != "freertos" && current_os != "zephyr" && current_os != "mbed" && diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index df85153297cad7..1e634152a61d49 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -271,6 +271,11 @@ config("strict_warnings") { cflags_cc = [ "-Wnon-virtual-dtor" ] + if (current_os == "nuttx") { + cflags -= [ "-Wshadow" ] + cflags_cc -= [ "-Wnon-virtual-dtor" ] + } + configs = [] ldflags = [] @@ -351,6 +356,7 @@ config("runtime_default") { } if (current_os == "linux" || current_os == "tizen" || current_os == "webos") { libs = [ + "atomic", "dl", "pthread", "rt", diff --git a/build/config/linux/pkg-config.py b/build/config/linux/pkg-config.py index ded24789504596..f44667242de807 100755 --- a/build/config/linux/pkg-config.py +++ b/build/config/linux/pkg-config.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # Copyright (c) 2013 The Chromium Authors. All rights reserved. -# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2020-2024 Project CHIP Authors # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -99,7 +99,7 @@ def GetPkgConfigPrefixToStrip(options, args): # from pkg-config's |prefix| variable. prefix = subprocess.check_output([options.pkg_config, "--variable=prefix"] + args, env=os.environ).decode('utf-8') - if prefix[-4] == '/usr': + if prefix[:4] == '/usr': return prefix[4:] return prefix @@ -127,6 +127,7 @@ def RewritePath(path, strip_prefix, sysroot): def main(): parser = OptionParser() parser.add_option('-d', '--debug', action='store_true') + parser.add_option('-o', '--optional', action='store_true') parser.add_option('-p', action='store', dest='pkg_config', type='string', default='pkg-config') parser.add_option('-v', action='append', dest='strip_out', type='string') @@ -209,6 +210,10 @@ def main(): try: flag_string = subprocess.check_output(cmd).decode('utf-8') except Exception: + if options.optional: + sys.stderr.write('Ignoring failure to run pkg-config for optional library.\n') + print(json.dumps([False])) # Output a GN array indicating missing optional packages + return 0 sys.stderr.write('Could not run pkg-config.\n') return 1 @@ -248,10 +253,10 @@ def main(): else: cflags.append(flag) - # Output a GN array, the first one is the cflags, the second are the libs. The + # Output a GN array, indicating success and our output lists. # JSON formatter prints GN compatible lists when everything is a list of # strings. - print(json.dumps([includes, cflags, libs, lib_dirs])) + print(json.dumps([True, includes, cflags, libs, lib_dirs])) return 0 diff --git a/build/config/linux/pkg_config.gni b/build/config/linux/pkg_config.gni index 016defafbc3617..d6892d97fb976f 100644 --- a/build/config/linux/pkg_config.gni +++ b/build/config/linux/pkg_config.gni @@ -1,5 +1,5 @@ # Copyright (c) 2013 The Chromium Authors. All rights reserved. -# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2020-2024 Project CHIP Authors # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -43,9 +43,14 @@ # # You can also use "extra args" to filter out results (see pkg-config.py): # extra_args = [ "-v, "foo" ] +# # To ignore libs and ldflags (only cflags/defines will be set, which is useful # when doing manual dynamic linking), set: # ignore_libs = true +# +# To allow the build to proceed if (any of) the requested packages are absent, set: +# optional = true +# In this case the resulting config object will be empty. import("//build_overrides/build.gni") import("${build_root}/config/sysroot.gni") @@ -109,37 +114,42 @@ template("pkg_config") { } else { args = pkg_config_args + invoker.packages } + if (defined(invoker.optional) && invoker.optional) { + args += [ "-o" ] + } if (defined(invoker.extra_args)) { args += invoker.extra_args } + # pkgresult = [present, includes, cflags, libs, lib_dirs] pkgresult = exec_script(pkg_config_script, args, "value") - cflags = pkgresult[1] + if (pkgresult[0]) { + cflags = pkgresult[2] - foreach(include, pkgresult[0]) { - cflags += [ "-I$include" ] - } + foreach(include, pkgresult[1]) { + cflags += [ "-I$include" ] + } - if (!defined(invoker.ignore_libs) || !invoker.ignore_libs) { - libs = pkgresult[2] - lib_dirs = pkgresult[3] - } + if (!defined(invoker.ignore_libs) || !invoker.ignore_libs) { + libs = pkgresult[3] + lib_dirs = pkgresult[4] + } - # Link libraries statically for OSS-Fuzz fuzzer build - if (oss_fuzz) { - libs = [] - ldflags = [ "-Wl,-Bstatic" ] - foreach(lib, pkgresult[2]) { - ldflags += [ "-l$lib" ] + # Link libraries statically for OSS-Fuzz fuzzer build + if (oss_fuzz) { + libs = [] + ldflags = [ "-Wl,-Bstatic" ] + foreach(lib, pkgresult[3]) { + ldflags += [ "-l$lib" ] + } + ldflags += [ "-Wl,-Bdynamic" ] + lib_dirs = pkgresult[4] } - ldflags += [ "-Wl,-Bdynamic" ] - lib_dirs = pkgresult[3] - } - forward_variables_from(invoker, - [ - "defines", - "visibility", - ]) + forward_variables_from(invoker, [ "defines" ]) + } } + + # Always forward visibility + forward_variables_from(invoker, [ "visibility" ]) } diff --git a/build/config/mac/mac_sdk.gni b/build/config/mac/mac_sdk.gni index 0e7f02b5bb3399..29272d0dc9a500 100644 --- a/build/config/mac/mac_sdk.gni +++ b/build/config/mac/mac_sdk.gni @@ -34,7 +34,7 @@ if (current_os == "mac") { deployment_target = "11.0" } } else { - deployment_target = "13.4" + deployment_target = "14.0" } declare_args() { diff --git a/build/toolchain/android/android_toolchain.gni b/build/toolchain/android/android_toolchain.gni index e4eed1b30b577e..f1242b6cbcd855 100644 --- a/build/toolchain/android/android_toolchain.gni +++ b/build/toolchain/android/android_toolchain.gni @@ -69,6 +69,5 @@ template("android_clang_toolchain") { ar = _ndk_prefix + "llvm-ar" cc = _ndk_prefix + _tool_name_root + "clang" cxx = _ndk_prefix + _tool_name_root + "clang++" - link_generate_map_file = false } } diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni index b4b39daf711fb0..dce52ec7644df8 100644 --- a/build/toolchain/gcc_toolchain.gni +++ b/build/toolchain/gcc_toolchain.gni @@ -16,11 +16,9 @@ import("//build_overrides/pigweed.gni") import("$dir_pw_toolchain/generate_toolchain.gni") declare_args() { - # Generate Linker map files. Can skip since they can + # Generate Linker map files. By default it is disabled since they can # be quite large. - # - # Note that toolchains can individually override this - chip_generate_link_map_file = true + chip_generate_link_map_file = false } template("gcc_toolchain") { @@ -48,11 +46,7 @@ template("gcc_toolchain") { cxx = invoker.cxx } - if (defined(invoker.link_generate_map_file)) { - link_generate_map_file = invoker.link_generate_map_file - } else { - link_generate_map_file = chip_generate_link_map_file - } + link_generate_map_file = chip_generate_link_map_file is_host_toolchain = invoker_toolchain_args.current_os == host_os link_group = invoker_toolchain_args.current_os != "mac" && diff --git a/build_overrides/k32w0_sdk.gni b/build_overrides/k32w0_sdk.gni deleted file mode 100644 index fa487e9e7fb254..00000000000000 --- a/build_overrides/k32w0_sdk.gni +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2020 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. - -declare_args() { - # Root directory for K32W SDK build files. - k32w0_sdk_build_root = "//third_party/nxp/k32w0_sdk" -} diff --git a/build_overrides/nlunit_test.gni b/build_overrides/nlunit_test.gni deleted file mode 100644 index b3b729504b1be1..00000000000000 --- a/build_overrides/nlunit_test.gni +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2020 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. - -declare_args() { - # Root directory for nlunit-test. - nlunit_test_root = "//third_party/nlunit-test" -} diff --git a/build_overrides/nxp_sdk.gni b/build_overrides/nxp_sdk.gni index 0fb6234c7d5aaf..480a0ea71caf69 100644 --- a/build_overrides/nxp_sdk.gni +++ b/build_overrides/nxp_sdk.gni @@ -14,5 +14,9 @@ declare_args() { # Root directory for NXP SDKs. - nxp_sdk_build_root = "//third_party/nxp" + nxp_sdk_matter_support_root = "//third_party/nxp/nxp_matter_support" +} + +declare_args() { + nxp_sdk_build_root = "${nxp_sdk_matter_support_root}/gn_build" } diff --git a/config/ameba/args.gni b/config/ameba/args.gni index a60eee6db2887c..3be47a85291024 100755 --- a/config/ameba/args.gni +++ b/config/ameba/args.gni @@ -28,7 +28,7 @@ lwip_platform = "external" chip_build_tests = false -chip_inet_config_enable_tcp_endpoint = true +chip_inet_config_enable_tcp_endpoint = false chip_inet_config_enable_udp_endpoint = true chip_config_network_layer_ble = true diff --git a/config/ameba/chip.cmake b/config/ameba/chip.cmake index d221ab57352f94..47444055f66733 100644 --- a/config/ameba/chip.cmake +++ b/config/ameba/chip.cmake @@ -63,7 +63,6 @@ list( ${CHIP_ROOT}/src/app ${CHIP_ROOT}/third_party/nlassert/repo/include ${CHIP_ROOT}/third_party/nlio/repo/include - ${CHIP_ROOT}/third_party/nlunit-test/repo/src ) execute_process( diff --git a/config/beken/args.gni b/config/beken/args.gni index d9bbba606df7ba..018c3e99ad22bc 100755 --- a/config/beken/args.gni +++ b/config/beken/args.gni @@ -26,7 +26,7 @@ lwip_platform = "external" chip_build_tests = false -chip_inet_config_enable_tcp_endpoint = true +chip_inet_config_enable_tcp_endpoint = false chip_inet_config_enable_udp_endpoint = true chip_config_network_layer_ble = true diff --git a/config/cc13x2_26x2/toolchain/BUILD.gn b/config/cc13x2_26x2/toolchain/BUILD.gn deleted file mode 100644 index 5655b6579f0469..00000000000000 --- a/config/cc13x2_26x2/toolchain/BUILD.gn +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (c) 2020 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("//build_overrides/build.gni") -import("//build_overrides/chip.gni") - -import("${build_root}/toolchain/arm_gcc/arm_toolchain.gni") - -arm_toolchain("cc13x2x7_26x2x7_lock_app") { - toolchain_args = { - current_os = "freertos" - import("${chip_root}/examples/lock-app/cc13x2x7_26x2x7/args.gni") - } - arm_toolchain("cc13x2x7_26x2x7_all_clusters_app") { - toolchain_args = { - current_os = "freertos" - import("${chip_root}/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni") - } - } -} diff --git a/config/common/cmake/chip_gn.cmake b/config/common/cmake/chip_gn.cmake index 618fbfccec3632..c652bd4f486212 100644 --- a/config/common/cmake/chip_gn.cmake +++ b/config/common/cmake/chip_gn.cmake @@ -77,6 +77,7 @@ macro(matter_build target) LIB_PW_RPC LIB_MBEDTLS DEVICE_INFO_EXAMPLE_PROVIDER + FORCE_LOGGING_STDIO ) set(multiValueArgs GN_DEPENDENCIES) @@ -85,7 +86,11 @@ macro(matter_build target) set(MATTER_LIB_DIR ${CMAKE_CURRENT_BINARY_DIR}/lib) # Prepare Matter libraries that the application should be linked with - set(MATTER_LIBRARIES -lCHIP) + if (FORCE_LOGGING_STDIO) + set(MATTER_LIBRARIES -lCHIPWithStdioLogging) + else() + set(MATTER_LIBRARIES -lCHIP) + endif() if (ARG_LIB_MBEDTLS) list(APPEND MATTER_LIBRARIES -lmbedtls) @@ -158,6 +163,7 @@ macro(matter_build target) ${CHIP_ROOT}/src/include ${CHIP_ROOT}/third_party/nlassert/repo/include ${CHIP_ROOT}/third_party/nlio/repo/include + ${CHIP_ROOT}/third_party/nlfaultinjection/include ${CHIP_ROOT}/zzz_generated/app-common ${CMAKE_CURRENT_BINARY_DIR}/gen/include ) diff --git a/config/esp32/args.gni b/config/esp32/args.gni index c8de67ddc87506..f818a37f258e49 100644 --- a/config/esp32/args.gni +++ b/config/esp32/args.gni @@ -26,7 +26,7 @@ lwip_platform = "external" #Enabling this causes some error #chip_inet_config_enable_tun_endpoint = false -chip_inet_config_enable_tcp_endpoint = true +chip_inet_config_enable_tcp_endpoint = false chip_inet_config_enable_udp_endpoint = true custom_toolchain = "//third_party/connectedhomeip/config/esp32/toolchain:esp32" diff --git a/config/esp32/components/chip/CMakeLists.txt b/config/esp32/components/chip/CMakeLists.txt index 14594a03b74352..d0c1fc4463f442 100644 --- a/config/esp32/components/chip/CMakeLists.txt +++ b/config/esp32/components/chip/CMakeLists.txt @@ -118,7 +118,11 @@ chip_gn_arg_append("chip_config_network_layer_ble" "false") endif() if(CONFIG_DISABLE_IPV4) - chip_gn_arg_append("chip_inet_config_enable_ipv4" "false") + if(NOT CONFIG_LWIP_IPV4) + chip_gn_arg_append("chip_inet_config_enable_ipv4" "false") + else() + message(FATAL_ERROR "Please also disable config option CONFIG_LWIP_IPV4") + endif() endif() if(CONFIG_DISABLE_READ_CLIENT) @@ -441,16 +445,17 @@ if(CONFIG_OPENTHREAD_ENABLED) endif() endif() -if((NOT CONFIG_USE_MINIMAL_MDNS) AND (CONFIG_ENABLE_WIFI_STATION OR CONFIG_ENABLE_WIFI_AP)) +if(NOT CONFIG_USE_MINIMAL_MDNS) idf_build_get_property(build_components BUILD_COMPONENTS) # For IDF v5.x, the mdns component was moved to idf_managed_components. # We should use 'espressif__mdns' for 'idf_component_get_property'. if("espressif__mdns" IN_LIST build_components) idf_component_get_property(mdns_lib espressif__mdns COMPONENT_LIB) + list(APPEND chip_libraries $) elseif("mdns" IN_LIST build_components) idf_component_get_property(mdns_lib mdns COMPONENT_LIB) + list(APPEND chip_libraries $) endif() - list(APPEND chip_libraries $) endif() if (CONFIG_ENABLE_ENCRYPTED_OTA) diff --git a/config/esp32/components/chip/Kconfig b/config/esp32/components/chip/Kconfig index 589f33b1c70830..c742ddb0336764 100644 --- a/config/esp32/components/chip/Kconfig +++ b/config/esp32/components/chip/Kconfig @@ -330,9 +330,11 @@ menu "CHIP Device Layer" config MAX_EVENT_QUEUE_SIZE int "Max Event Queue Size" range 0 65535 - default 25 + default 40 help The maximum number of events that can be held in the CHIP Platform event queue. + Should be set greater than CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM. For SoCs other than + ESP32-C2, where the Wi-Fi buffer number is 8, recommended to use the default value. config ENABLE_EXTENDED_DISCOVERY bool "Enable Extended discovery Support" @@ -726,12 +728,13 @@ menu "CHIP Device Layer" should not start advertising automatically after power-up. config USE_BLE_ONLY_FOR_COMMISSIONING - bool "Use BLE only for commissioning" - default y - help - Disable this flag if BLE is used for any other purpose than commissioning. - When enabled, it deinitialized the BLE on successful commissioning, and on - bootup do not initialize the BLE if device is already provisioned with Wi-Fi/Thread credentials. + depends on BT_ENABLED + bool "Use BLE only for commissioning" + default y + help + Disable this flag if BLE is used for any other purpose than commissioning. + When enabled, it deinitialized the BLE on successful commissioning, and on + bootup do not initialize the BLE if device is already provisioned with Wi-Fi/Thread credentials. endmenu @@ -966,6 +969,16 @@ menu "CHIP Device Layer" default n help This option enables the system statistics to be sent to the insights cloud. + + config MAX_PERMIT_LIST_SIZE + int "Set permit list size for Insights traces" + range 5 30 + depends on ESP_INSIGHTS_ENABLED + default 20 + help + Maximum number of group entries that can be included in the permit list for reporting + the traces to insights. + endmenu @@ -1182,8 +1195,11 @@ menu "CHIP Device Layer" menu "Commissioning Window Options" config CHIP_DISCOVERY_TIMEOUT_SECS int "Commissioning Window Timeout in seconds" - range 180 900 - default 900 + range 180 900 if !ENABLE_BLE_EXT_ANNOUNCEMENT + range 901 172800 if ENABLE_BLE_EXT_ANNOUNCEMENT + default 900 if !ENABLE_BLE_EXT_ANNOUNCEMENT + default 172800 if ENABLE_BLE_EXT_ANNOUNCEMENT + help The amount of time (in seconds) after which the CHIP platform will close the Commissioning Window endmenu @@ -1206,4 +1222,71 @@ menu "CHIP Device Layer" endmenu + menu "Enable BLE Extended Announcement" + config ENABLE_BLE_EXT_ANNOUNCEMENT + bool "Enable BLE Extended Announcement" + default n + help + Enable BLE Extended Announcement.To be used with CHIP_DISCOVERY_TIMEOUT_SECS for extended announcement duration. + + endmenu + + menu "Message Reliable Protocol Options" + config MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_THREAD + int "MRP local active retry interval for Thread network in milliseconds" + depends on ENABLE_MATTER_OVER_THREAD + range 0 3600000 + default 800 + help + Base retry interval of the present Thread node when it is in the active state. + + config MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_WIFI_ETHERNET + int "MRP local active retry interval for WIFI or ETHERNET network in milliseconds" + depends on !ENABLE_MATTER_OVER_THREAD + range 0 3600000 + default 300 + help + Base retry interval of the present node (WIFI or ETHERNET) when it is in the active state. + + config MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_THREAD + int "MRP local idle retry interval for Thread network in milliseconds" + depends on ENABLE_MATTER_OVER_THREAD + range 0 3600000 + default 800 + help + Base retry interval of the present Thread node when it is in the idle state. + + config MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_WIFI_ETHERNET + int "MRP local idle retry interval for WIFI or ETHERNET network in milliseconds" + depends on !ENABLE_MATTER_OVER_THREAD + range 0 3600000 + default 500 + help + Base retry interval of the present node (WIFI or ETHERNET) when it is in the idle state. + + config MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_THREAD + int "MRP retransmission delta timeout for Thread network in milliseconds" + depends on ENABLE_MATTER_OVER_THREAD + range 0 3600000 + default 500 + help + A constant value added to the calculated retransmission timeout. + + config MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_WIFI_ETHERNET + int "MRP retransmission delta timeout for WIFI or ETHERNET network in milliseconds" + depends on !ENABLE_MATTER_OVER_THREAD + range 0 3600000 + default 0 + help + A constant value added to the calculated retransmission timeout. + + config MRP_MAX_RETRANS + int "MRP retransmission maximum count" + range 1 10 + default 4 + help + The maximum number of retransmissions before giving up. + + endmenu + endmenu diff --git a/config/genio/args.gni b/config/genio/args.gni index 50d0a514c10616..c2012d61d0905a 100644 --- a/config/genio/args.gni +++ b/config/genio/args.gni @@ -24,7 +24,7 @@ lwip_platform = "external" chip_build_tests = true -chip_inet_config_enable_tcp_endpoint = true +chip_inet_config_enable_tcp_endpoint = false chip_inet_config_enable_udp_endpoint = true custom_toolchain = "//third_party/connectedhomeip/config/genio/toolchain:genio" diff --git a/config/mbed/chip-gn/args.gni b/config/mbed/chip-gn/args.gni index 83753bc7ca8012..804e9efaea74f6 100644 --- a/config/mbed/chip-gn/args.gni +++ b/config/mbed/chip-gn/args.gni @@ -21,7 +21,7 @@ chip_system_project_config_include = "" chip_device_project_config_include = "" chip_inet_config_enable_udp_endpoint = true -chip_inet_config_enable_tcp_endpoint = true +chip_inet_config_enable_tcp_endpoint = false custom_toolchain = "${chip_root}/config/mbed/chip-gn/toolchain:mbed" mbedtls_target = "${chip_root}/config/mbed/chip-gn/mbedtls:mbedtls" diff --git a/config/nrfconnect/.nrfconnect-recommended-revision b/config/nrfconnect/.nrfconnect-recommended-revision index 21222ceed22ae6..8a965c116821a9 100644 --- a/config/nrfconnect/.nrfconnect-recommended-revision +++ b/config/nrfconnect/.nrfconnect-recommended-revision @@ -1 +1 @@ -v2.5.0 +v2.6.0 diff --git a/config/nrfconnect/app/enable-gnu-std.cmake b/config/nrfconnect/app/enable-gnu-std.cmake index 5f31e1a5c62ab8..4019bbd31bf27a 100644 --- a/config/nrfconnect/app/enable-gnu-std.cmake +++ b/config/nrfconnect/app/enable-gnu-std.cmake @@ -1,6 +1,5 @@ add_library(gnu17 INTERFACE) target_compile_options(gnu17 INTERFACE - $<$:-std=gnu++17> - -D_SYS__PTHREADTYPES_H_) + $<$:-std=gnu++17>) target_link_libraries(app PRIVATE gnu17) diff --git a/config/nrfconnect/chip-gn/.gn b/config/nrfconnect/chip-gn/.gn index bf81e1e8f52cef..b8e1a5a86cc803 100644 --- a/config/nrfconnect/chip-gn/.gn +++ b/config/nrfconnect/chip-gn/.gn @@ -14,6 +14,7 @@ import("//build_overrides/build.gni") import("//build_overrides/chip.gni") +import("//build_overrides/pigweed.gni") # The location of the build configuration file. buildconfig = "${build_root}/config/BUILDCONFIG.gn" @@ -25,5 +26,14 @@ default_args = { target_cpu = "arm" target_os = "zephyr" + pw_sys_io_BACKEND = dir_pw_sys_io_stdio + pw_assert_BACKEND = dir_pw_assert_log + pw_log_BACKEND = dir_pw_log_basic + + pw_build_LINK_DEPS = [ + "$dir_pw_assert:impl", + "$dir_pw_log:impl", + ] + import("${chip_root}/config/nrfconnect/chip-gn/args.gni") } diff --git a/config/nrfconnect/chip-module/CMakeLists.txt b/config/nrfconnect/chip-module/CMakeLists.txt index 9b81d7cf30282e..29560db74f38cc 100644 --- a/config/nrfconnect/chip-module/CMakeLists.txt +++ b/config/nrfconnect/chip-module/CMakeLists.txt @@ -60,13 +60,15 @@ if (CONFIG_ARM) matter_add_cflags(--specs=nosys.specs) endif() -if (CONFIG_NORDIC_SECURITY_BACKEND) +if (CONFIG_NRF_SECURITY) zephyr_include_directories($) zephyr_include_directories($) if(TARGET platform_cc3xx) zephyr_include_directories($) endif() matter_add_flags(-DMBEDTLS_CONFIG_FILE=) + matter_add_flags(-DMBEDTLS_PSA_CRYPTO_CONFIG_FILE=) + matter_add_flags(-DMBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE=) elseif(CONFIG_MBEDTLS) zephyr_include_directories($) zephyr_compile_definitions($) @@ -127,7 +129,7 @@ matter_add_gn_arg_bool ("chip_enable_nfc" CONFIG_CHIP_NF matter_add_gn_arg_bool ("chip_enable_ota_requestor" CONFIG_CHIP_OTA_REQUESTOR) matter_add_gn_arg_bool ("chip_persist_subscriptions" CONFIG_CHIP_PERSISTENT_SUBSCRIPTIONS) matter_add_gn_arg_bool ("chip_monolithic_tests" CONFIG_CHIP_BUILD_TESTS) -matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" CONFIG_CHIP_BUILD_TESTS) +matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" FALSE) matter_add_gn_arg_bool ("chip_error_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 1) matter_add_gn_arg_bool ("chip_progress_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 3) matter_add_gn_arg_bool ("chip_detail_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 4) @@ -138,6 +140,8 @@ matter_add_gn_arg_bool ("chip_system_config_provide_statistics" CONFIG_CHIP_ST matter_add_gn_arg_bool ("chip_enable_icd_server" CONFIG_CHIP_ENABLE_ICD_SUPPORT) matter_add_gn_arg_bool ("chip_enable_factory_data" CONFIG_CHIP_FACTORY_DATA) matter_add_gn_arg_bool ("chip_enable_read_client" CONFIG_CHIP_ENABLE_READ_CLIENT) +matter_add_gn_arg_bool ("chip_mdns_minimal" CONFIG_WIFI_NRF700X) +matter_add_gn_arg_bool ("chip_mdns_platform" CONFIG_NET_L2_OPENTHREAD) if (CONFIG_CHIP_ENABLE_ICD_SUPPORT) matter_add_gn_arg_bool ("chip_enable_icd_lit" CONFIG_CHIP_ICD_LIT_SUPPORT) @@ -155,16 +159,17 @@ if (CONFIG_CHIP_ROTATING_DEVICE_ID) matter_add_gn_arg_bool("chip_enable_additional_data_advertising" TRUE) endif() -if (CONFIG_NET_L2_OPENTHREAD) - matter_add_gn_arg_string("chip_mdns" "platform") -elseif(CONFIG_WIFI_NRF700X) +if(CONFIG_WIFI_NRF700X) matter_add_gn_arg_string("chip_mdns" "minimal") +elseif (CONFIG_NET_L2_OPENTHREAD) + matter_add_gn_arg_string("chip_mdns" "platform") else() matter_add_gn_arg_string("chip_mdns" "none") endif() if (CONFIG_CHIP_CRYPTO_PSA) - matter_add_gn_arg_string("chip_crypto" "psa") + matter_add_gn_arg_string("chip_crypto" "psa") + matter_add_gn_arg_bool ("chip_crypto_psa_spake2p" CONFIG_PSA_WANT_ALG_SPAKE2P_MATTER) endif() if (BOARD STREQUAL "native_posix") diff --git a/config/nrfconnect/chip-module/Kconfig b/config/nrfconnect/chip-module/Kconfig index c72080b7005409..d4ccccd983ed3f 100644 --- a/config/nrfconnect/chip-module/Kconfig +++ b/config/nrfconnect/chip-module/Kconfig @@ -106,7 +106,6 @@ config CHIP_MALLOC_SYS_HEAP config CHIP_FACTORY_DATA bool "Factory data provider" select ZCBOR - imply FPROTECT help Enables the default nRF Connect factory data provider implementation that supports reading the factory data encoded in the CBOR format from the @@ -149,7 +148,7 @@ config CHIP_FACTORY_DATA_WRITE_PROTECT bool "Enable Factory Data write protection" select FPROTECT depends on CHIP_FACTORY_DATA - default y if CHIP_FACTORY_DATA + default y help Enables the write protection of the Factory Data partition in the flash memory. This is a recommended feature, but it requires the Settings partition size to be @@ -286,4 +285,25 @@ config CHIP_ENABLE_READ_CLIENT This config can be disabled for device types that do not require Read Client functionality. Disabling this config can save flash and RAM space. +config CHIP_MIGRATE_OPERATIONAL_KEYS_TO_ITS + bool "Operational keys migration feature" + depends on CHIP_CRYPTO_PSA + help + Enables migration of the operational keys stored in the persistent storage to the PSA ITS secure storage. + Enable this feature while updating the firmware of in-field devices that run Mbed TLS cryptography backend + to the firmware based on PSA Crypto API. + +config CHIP_FACTORY_RESET_ON_KEY_MIGRATION_FAILURE + bool "Perform factory reset if the operational key migration failed" + default y + depends on CHIP_MIGRATE_OPERATIONAL_KEYS_TO_ITS + help + Perform factory reset of the device if the operational key for Fabric has not been migrated + properly to PSA ITS storage. + +config CHIP_PERSISTENT_SUBSCRIPTIONS + default n + # selecting experimental for this feature since there is an issue with multiple controllers. + select EXPERIMENTAL + endif # CHIP diff --git a/config/nrfconnect/chip-module/Kconfig.defaults b/config/nrfconnect/chip-module/Kconfig.defaults index 8684adb2be3c52..218f39a3fa8f8a 100644 --- a/config/nrfconnect/chip-module/Kconfig.defaults +++ b/config/nrfconnect/chip-module/Kconfig.defaults @@ -20,33 +20,14 @@ if CHIP -config LOG - default y - -if LOG +# ============================================================================== +# System configuration +# ============================================================================== -choice LOG_MODE - default LOG_MODE_MINIMAL +choice LIBC_IMPLEMENTATION + default NEWLIB_LIBC endchoice -choice MATTER_LOG_LEVEL_CHOICE - default MATTER_LOG_LEVEL_DBG -endchoice - -config CHIP_APP_LOG_LEVEL - default 4 # debug - -config LOG_DEFAULT_LEVEL - default 1 # error - -config CHIP_LOG_SIZE_OPTIMIZATION - default y - -endif - -config PRINTK_SYNC - default y - config ASSERT default y @@ -62,43 +43,52 @@ config HW_STACK_PROTECTION config FPU default y -config SHELL - default y - -config SHELL_MINIMAL - default y - -# Enable getting reboot reasons information -config HWINFO - bool - default y - -config HWINFO_SHELL - bool - default n - -config PTHREAD_IPC - bool - default n - config POSIX_MAX_FDS - int default 16 -# Application stack size config MAIN_STACK_SIZE default 6144 config INIT_STACKS default y +config SYSTEM_WORKQUEUE_STACK_SIZE + default 2560 if CHIP_WIFI + +config HEAP_MEM_POOL_SIZE + default 80000 if CHIP_WIFI + +config CHIP_MALLOC_SYS_HEAP_SIZE + default 30720 if CHIP_WIFI + default 8192 if NET_L2_OPENTHREAD + +# We use sys_heap based allocators, so make sure we don't reserve unused libc heap anyway +config COMMON_LIBC_MALLOC_ARENA_SIZE + default -1 + +config NVS_LOOKUP_CACHE_SIZE + default 512 + +# ============================================================================== +# Zephyr networking configuration +# ============================================================================== + config NET_IPV6_MLD default y +config NET_IPV6_NBR_CACHE + default y if CHIP_WIFI + default n if NET_L2_OPENTHREAD + +config NET_IF_UNICAST_IPV6_ADDR_COUNT + default 6 + config NET_IF_MCAST_IPV6_ADDR_COUNT default 14 -# Network buffers +config NET_IF_IPV6_PREFIX_COUNT + default NET_IF_UNICAST_IPV6_ADDR_COUNT if CHIP_WIFI + config NET_PKT_RX_COUNT default 8 @@ -111,7 +101,12 @@ config NET_BUF_RX_COUNT config NET_BUF_TX_COUNT default 16 -# Bluetooth Low Energy configs +config NET_SOCKETS_POLL_MAX + default 6 if CHIP_WIFI + +# ============================================================================== +# Bluetooth Low Energy configuration +# ============================================================================== config BT default y @@ -162,99 +157,107 @@ config BT_BUF_ACL_TX_SIZE config BT_RX_STACK_SIZE default 1200 +# Increase maximum data length of PDU supported in the Controller +config BT_CTLR_DATA_LENGTH_MAX + default 251 if SOC_SERIES_NRF52X + config BT_CTLR_ECDH - bool default n config BT_CTLR_LE_ENC - bool default n config BT_DEVICE_NAME_GATT_WRITABLE - bool default n config BT_GATT_CACHING - bool default n # Disable 2M PHY due to interoperability issues. config BT_CTLR_PHY_2M default n -# Enable NFC support +config MPSL_FEM_NRF21540_RUNTIME_PA_GAIN_CONTROL + default y if MPSL_FEM + +# ============================================================================== +# NFC configuration +# ============================================================================== config CHIP_NFC_COMMISSIONING default y # Disable not needed NFC callback to save flash config NFC_THREAD_CALLBACK - bool default n +# ============================================================================== +# DFU configuration +# ============================================================================== + config CHIP_OTA_REQUESTOR default y -# All boards besides nRF7002DK use QSPI NOR external flash -if BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840 - +# All boards except nRF7002DK use QSPI NOR external flash config CHIP_QSPI_NOR - default y - -endif # BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840 + default y if BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840 # nRF7002DK uses SPI NOR external flash -if BOARD_NRF7002DK_NRF5340_CPUAPP +if BOARD_NRF7002DK_NRF5340_CPUAPP || BOARD_NRF7002DK_NRF7001_NRF5340_CPUAPP config CHIP_SPI_NOR default y -endif # BOARD_NRF7002DK_NRF5340_CPUAPP +endif # BOARD_NRF7002DK_NRF5340_CPUAPP || BOARD_NRF7002DK_NRF7001_NRF5340_CPUAPP -# Enable extended discovery -config CHIP_EXTENDED_DISCOVERY - default n +config BOOT_IMAGE_ACCESS_HOOKS + default y if SOC_SERIES_NRF53X -config NVS_LOOKUP_CACHE_SIZE - default 512 +config UPDATEABLE_IMAGE_NUMBER + default 3 if NRF_WIFI_PATCHES_EXT_FLASH_STORE + default 2 if SOC_SERIES_NRF53X + +config DFU_MULTI_IMAGE_MAX_IMAGE_COUNT + default 3 if NRF_WIFI_PATCHES_EXT_FLASH_STORE -# Enable OpenThread +config NRF_WIFI_FW_PATCH_DFU + default y if NRF_WIFI_PATCHES_EXT_FLASH_STORE + +# ============================================================================== +# OpenThread configuration +# ============================================================================== config NET_L2_OPENTHREAD default y if !WIFI_NRF700X if NET_L2_OPENTHREAD -# Disable OpenThread shell -config OPENTHREAD_SHELL - default n - -# Disable certain parts of Zephyr IPv6 stack -config NET_IPV6_NBR_CACHE - bool - default n - # Increase the default RX stack size config IEEE802154_NRF5_RX_STACK_SIZE default 1024 config OPENTHREAD_THREAD_STACK_SIZE - default 4096 + default 6144 if PSA_CRYPTO_DRIVER_CC3XX && PSA_CRYPTO_DRIVER_OBERON + default 4096 + +config OPENTHREAD_DEFAULT_TX_POWER + default 20 if MPSL_FEM + default 3 if SOC_SERIES_NRF53X + default 8 if SOC_SERIES_NRF52X + +endif # NET_L2_OPENTHREAD -endif +# ============================================================================== +# Wi-Fi configuration +# ============================================================================== if CHIP_WIFI choice WPA_SUPP_LOG_LEVEL_CHOICE - default WPA_SUPP_LOG_LEVEL_ERR + default WPA_SUPP_LOG_LEVEL_ERR endchoice -# increase the prefixes limit to match -# maximum number of IPv6 addresses per interface -config NET_IF_IPV6_PREFIX_COUNT - default 6 - # it saves us 20kB of FLASH config WPA_SUPP_NO_DEBUG default y @@ -272,74 +275,74 @@ config NRF_WIFI_LOW_POWER config NRF700X_RX_NUM_BUFS default 16 -config NRF700X_TX_MAX_DATA_SIZE - default 1280 - -config NRF700X_RX_MAX_DATA_SIZE - default 1280 - config NRF700X_MAX_TX_TOKENS default 10 config NRF700X_MAX_TX_AGGREGATION default 1 -config MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG +# it saves 25kB of FLASH +config WPA_SUPP_ADVANCED_FEATURES default n -config SYSTEM_WORKQUEUE_STACK_SIZE - default 2560 +endif # CHIP_WIFI -# align these numbers to match the OpenThread config -config NET_IF_UNICAST_IPV6_ADDR_COUNT - default 6 +# ============================================================================== +# Crypto configuration +# ============================================================================== -config NET_IF_MCAST_IPV6_ADDR_COUNT - default 8 +choice OPENTHREAD_SECURITY + default OPENTHREAD_NRF_SECURITY_PSA_CHOICE if CHIP_CRYPTO_PSA + default OPENTHREAD_NRF_SECURITY_CHOICE + +endchoice -config NET_SOCKETS_POLL_MAX - default 6 +choice RNG_GENERATOR_CHOICE + default XOSHIRO_RANDOM_GENERATOR if SOC_SERIES_NRF53X +endchoice -config MBEDTLS_SSL_OUT_CONTENT_LEN - default 900 +config OBERON_BACKEND + default y -# options managed by IP4/IP6 simultaneous support -# aligned here to match OpenThread config -config NET_MAX_ROUTERS - default 1 +config MBEDTLS_ENABLE_HEAP + default y -config NET_MAX_CONN - default 4 +config MBEDTLS_HEAP_SIZE + default 8192 + +# Enable PSA Crypto dependencies for Matter -config SHELL_STACK_SIZE - default 2616 +config CHIP_CRYPTO_PSA + default y if !CHIP_WIFI + imply PSA_WANT_ALG_SPAKE2P_MATTER -config HEAP_MEM_POOL_SIZE - default 80000 +if CHIP_CRYPTO_PSA -endif +config PSA_CRYPTO_DRIVER_CC3XX + default n -config CHIP_MALLOC_SYS_HEAP_SIZE - default 28672 if CHIP_WIFI - default 8192 if NET_L2_OPENTHREAD +config PSA_WANT_ALG_SHA_224 + default n -# Enable mbedTLS from nrf_security library +# Extend the maximum number of PSA key slots to fit Matter requirements +config MBEDTLS_PSA_KEY_SLOT_COUNT + default 64 -choice OPENTHREAD_SECURITY - default OPENTHREAD_NRF_SECURITY_CHOICE -endchoice +if PSA_CRYPTO_DRIVER_CC3XX && PSA_CRYPTO_DRIVER_OBERON -config PSA_CRYPTO_DRIVER_CC3XX - default n +# Do not use CC3XX hash driver when both Oberon and CC3xx are enabled. +config PSA_USE_CC3XX_HASH_DRIVER + default n -config OBERON_BACKEND - default y +endif # PSA_CRYPTO_DRIVER_CC3XX && PSA_CRYPTO_DRIVER_OBERON -config MBEDTLS_ENABLE_HEAP +# Spake2+ support +config MBEDTLS_MD_C default y -config MBEDTLS_HEAP_SIZE - default 8192 +endif # CHIP_CRYPTO_PSA + +if !CHIP_CRYPTO_PSA config NRF_SECURITY_ADVANCED default y @@ -347,32 +350,46 @@ config NRF_SECURITY_ADVANCED config MBEDTLS_AES_C default y -config MBEDTLS_ECP_C - default y - -config MBEDTLS_ECP_DP_SECP256R1_ENABLED - default y - config MBEDTLS_CTR_DRBG_C default y config MBEDTLS_CIPHER_MODE_CTR default y +config MBEDTLS_SHA1_C + default y if CHIP_WIFI + config MBEDTLS_SHA256_C default y config MBEDTLS_PK_C default y +config MBEDTLS_PKCS5_C + default y + config MBEDTLS_PK_WRITE_C default y config MBEDTLS_X509_CREATE_C - default y if !CHIP_CRYPTO_PSA + default y config MBEDTLS_X509_CSR_WRITE_C - default y if !CHIP_CRYPTO_PSA + default y + +config MBEDTLS_ECP_C + default y + +config MBEDTLS_ECP_DP_SECP256R1_ENABLED + default y + +endif # !CHIP_CRYPTO_PSA + +config MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG + default n if CHIP_WIFI + +config MBEDTLS_SSL_OUT_CONTENT_LEN + default 900 if CHIP_WIFI # Disable unneeded crypto operations @@ -406,19 +423,56 @@ config MBEDTLS_SSL_SRV_C config MBEDTLS_SSL_COOKIE_C default n -# Disable not used shell modules +# ============================================================================== +# Logging configuration +# ============================================================================== -config SHELL_WILDCARD - default n +config LOG + default y -config SHELL_VT100_COLORS - default n +if LOG -config SHELL_STATS +choice LOG_MODE + default LOG_MODE_MINIMAL +endchoice + +choice MATTER_LOG_LEVEL_CHOICE + default MATTER_LOG_LEVEL_DBG +endchoice + +config CHIP_APP_LOG_LEVEL + default 4 # debug + +config LOG_DEFAULT_LEVEL + default 1 # error + +config CHIP_LOG_SIZE_OPTIMIZATION + default y + +# disable synchronous printk to avoid blocking IRQs which +# may affect time sensitive components +config PRINTK_SYNC default n +endif # LOG + +# ============================================================================== +# Shell configuration +# ============================================================================== + +config SHELL + default y + +if SHELL + +config SHELL_STACK_SIZE + default 2616 if CHIP_WIFI + +config SHELL_MINIMAL + default y if !CHIP_MEMORY_PROFILING + config KERNEL_SHELL - default n + default n if !CHIP_MEMORY_PROFILING config SENSOR_SHELL default n @@ -441,42 +495,12 @@ config CLOCK_CONTROL_NRF_SHELL config FLASH_SHELL default n -if MPSL_FEM - -config MPSL_FEM_NRF21540_RUNTIME_PA_GAIN_CONTROL - default y - -endif # MPSL_FEM - -config OPENTHREAD_DEFAULT_TX_POWER - default 20 if MPSL_FEM - default 3 if SOC_SERIES_NRF53X && !MPSL_FEM - default 8 if SOC_SERIES_NRF52X && !MPSL_FEM - -# SoC series related configuration - -if SOC_SERIES_NRF52X - -# Increase maximum data length of PDU supported in the Controller -config BT_CTLR_DATA_LENGTH_MAX - default 251 - -endif # SOC_SERIES_NRF52X - -if SOC_SERIES_NRF53X - -config BOOT_IMAGE_ACCESS_HOOKS - default y - -config UPDATEABLE_IMAGE_NUMBER - default 2 +config HWINFO_SHELL + default n -# Generate random numbers using Xoroshiro algorithm instead of direct calls -# to the cryptocell library to workaround firmware hangs. -choice RNG_GENERATOR_CHOICE - default XOROSHIRO_RANDOM_GENERATOR -endchoice +config OPENTHREAD_SHELL + default n if !CHIP_MEMORY_PROFILING -endif # SOC_SERIES_NRF53X +endif # SHELL -endif +endif # CHIP diff --git a/config/nrfconnect/chip-module/Kconfig.features b/config/nrfconnect/chip-module/Kconfig.features index a6c2ea99ad431d..667894c7696d85 100644 --- a/config/nrfconnect/chip-module/Kconfig.features +++ b/config/nrfconnect/chip-module/Kconfig.features @@ -21,7 +21,7 @@ if CHIP config CHIP_WIFI bool "Enable nrfconnect Wi-Fi support" - default y if SHIELD_NRF7002EK || BOARD_NRF7002DK_NRF5340_CPUAPP || SHIELD_NRF7002EB + default y if SHIELD_NRF7002EK || BOARD_NRF7002DK_NRF5340_CPUAPP || SHIELD_NRF7002EB || BOARD_NRF7002DK_NRF7001_NRF5340_CPUAPP select WIFI_NRF700X select WIFI select WPA_SUPP @@ -42,15 +42,13 @@ config CHIP_WIFI config CHIP_QSPI_NOR bool "Enable QSPI NOR feature set" + imply NORDIC_QSPI_NOR help Enables QSPI NOR flash with a set of options for configuring pages and buffer sizes. if CHIP_QSPI_NOR -config NORDIC_QSPI_NOR - default y - config NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE default 16 @@ -75,15 +73,20 @@ endif # CHIP_SPI_NOR config CHIP_MEMORY_PROFILING bool "Enable features for tracking memory usage" + # Matter stack select CHIP_STATISTICS + # Heap select CHIP_MALLOC_SYS_HEAP_WATERMARKS_SUPPORT if CHIP_MALLOC_SYS_HEAP + select SYS_HEAP_RUNTIME_STATS if CHIP_MALLOC_SYS_HEAP + # Crypto select MBEDTLS_MEMORY_DEBUG if !CHIP_CRYPTO_PSA - select SYS_HEAP_RUNTIME_STATS if CHIP_MALLOC_SYS_HEAP - select KERNEL_SHELL + # Network select NET_STATISTICS select NET_SHELL select NET_BUF_POOL_USAGE select OPENTHREAD_SHELL if !CHIP_WIFI + # Zephyr + select KERNEL_SHELL help Enables features for tracking memory usage in Matter. @@ -146,7 +149,7 @@ endif config CHIP_DFU_OVER_BT_SMP bool "Enable DFU over Bluetooth LE SMP feature set" imply CHIP_QSPI_NOR if BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840 - imply CHIP_SPI_NOR if BOARD_NRF7002DK_NRF5340_CPUAPP + imply CHIP_SPI_NOR if BOARD_NRF7002DK_NRF5340_CPUAPP || BOARD_NRF7002DK_NRF7001_NRF5340_CPUAPP imply BOOTLOADER_MCUBOOT select MCUMGR select MCUMGR_TRANSPORT_BT diff --git a/config/nrfconnect/chip-module/Kconfig.hci_ipc.defaults b/config/nrfconnect/chip-module/Kconfig.hci_ipc.defaults new file mode 100644 index 00000000000000..bede85fd2541d3 --- /dev/null +++ b/config/nrfconnect/chip-module/Kconfig.hci_ipc.defaults @@ -0,0 +1,83 @@ +# +# 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. +# + +# The purpose of this file is to define new default values of settings used when building hci_ipc child image for Matter samples. + +config LOG + default n + +config HEAP_MEM_POOL_SIZE + default 8192 + +config MAIN_STACK_SIZE + default 2048 + +config SYSTEM_WORKQUEUE_STACK_SIZE + default 2048 + +config BT + default y + +config BT_HCI_RAW + default y + +config BT_MAX_CONN + default 1 + +config BT_PERIPHERAL + default y + +config BT_CENTRAL + default n + +config BT_BUF_ACL_RX_SIZE + default 502 + +config BT_BUF_ACL_TX_SIZE + default 251 + +config BT_CTLR_DATA_LENGTH_MAX + default 251 + +config BT_CTLR_ASSERT_HANDLER + default y + +config BT_HCI_RAW_RESERVE + default 1 + +# Disable 2M PHY due to interoperability issues. +config BT_CTLR_PHY_2M + default n + +# Workaround: Unable to allocate command buffer when using K_NO_WAIT since +# Host number of completed commands does not follow normal flow control. +config BT_BUF_CMD_TX_COUNT + default 10 + +config ASSERT + default y + +config DEBUG_INFO + default y + +config EXCEPTION_STACK_TRACE + default y + +config IPC_SERVICE + default y + +config MBOX + default y diff --git a/config/nrfconnect/chip-module/Kconfig.hci_ipc.root b/config/nrfconnect/chip-module/Kconfig.hci_ipc.root new file mode 100644 index 00000000000000..1fe8ff85f43ee8 --- /dev/null +++ b/config/nrfconnect/chip-module/Kconfig.hci_ipc.root @@ -0,0 +1,21 @@ +# +# 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. +# + +# The purpose of this file is to create a wrapper Kconfig file that will be set as +# hci_ipc_KCONFIG_ROOT and processed before any other Kconfig for hci_ipc child image. + +rsource "Kconfig.hci_ipc.defaults" +source "Kconfig.zephyr" diff --git a/config/nrfconnect/chip-module/Kconfig.hci_rpmsg.defaults b/config/nrfconnect/chip-module/Kconfig.hci_rpmsg.defaults deleted file mode 100644 index 17c7115e28b750..00000000000000 --- a/config/nrfconnect/chip-module/Kconfig.hci_rpmsg.defaults +++ /dev/null @@ -1,83 +0,0 @@ -# -# 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. -# - -# The purpose of this file is to define new default values of settings used when building hci_rpmsg child image for Matter samples. - -config LOG - default n - -config HEAP_MEM_POOL_SIZE - default 8192 - -config MAIN_STACK_SIZE - default 2048 - -config SYSTEM_WORKQUEUE_STACK_SIZE - default 2048 - -config BT - default y - -config BT_HCI_RAW - default y - -config BT_MAX_CONN - default 1 - -config BT_PERIPHERAL - default y - -config BT_CENTRAL - default n - -config BT_BUF_ACL_RX_SIZE - default 502 - -config BT_BUF_ACL_TX_SIZE - default 251 - -config BT_CTLR_DATA_LENGTH_MAX - default 251 - -config BT_CTLR_ASSERT_HANDLER - default y - -config BT_HCI_RAW_RESERVE - default 1 - -# Disable 2M PHY due to interoperability issues. -config BT_CTLR_PHY_2M - default n - -# Workaround: Unable to allocate command buffer when using K_NO_WAIT since -# Host number of completed commands does not follow normal flow control. -config BT_BUF_CMD_TX_COUNT - default 10 - -config ASSERT - default y - -config DEBUG_INFO - default y - -config EXCEPTION_STACK_TRACE - default y - -config IPC_SERVICE - default y - -config MBOX - default y diff --git a/config/nrfconnect/chip-module/Kconfig.hci_rpmsg.root b/config/nrfconnect/chip-module/Kconfig.hci_rpmsg.root deleted file mode 100644 index 8c4f6eee49cbc2..00000000000000 --- a/config/nrfconnect/chip-module/Kconfig.hci_rpmsg.root +++ /dev/null @@ -1,21 +0,0 @@ -# -# 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. -# - -# The purpose of this file is to create a wrapper Kconfig file that will be set as -# hci_rpmsg_KCONFIG_ROOT and processed before any other Kconfig for hci_rpmsg child image. - -rsource "Kconfig.hci_rpmsg.defaults" -source "Kconfig.zephyr" diff --git a/config/nrfconnect/chip-module/Kconfig.mcuboot.defaults b/config/nrfconnect/chip-module/Kconfig.mcuboot.defaults index 31759beba22ffc..11c7dd0320f464 100644 --- a/config/nrfconnect/chip-module/Kconfig.mcuboot.defaults +++ b/config/nrfconnect/chip-module/Kconfig.mcuboot.defaults @@ -19,16 +19,7 @@ config MAIN_STACK_SIZE default 10240 -config BOOT_SWAP_SAVE_ENCTLV - default n - -config BOOT_ENCRYPT_RSA - default n - -config BOOT_ENCRYPT_EC256 - default n - -config BOOT_ENCRYPT_X25519 +config BOOT_ENCRYPT_IMAGE default n config BOOT_BOOTSTRAP @@ -48,14 +39,11 @@ choice LIBC_IMPLEMENTATION endchoice # nRF7002DK uses SPI NOR external flash -if BOARD_NRF7002DK_NRF5340_CPUAPP +if BOARD_NRF7002DK_NRF5340_CPUAPP || BOARD_NRF7002DK_NRF7001_NRF5340_CPUAPP config SPI default y -config SPI_NOR - default y - choice SPI_NOR_SFDP default SPI_NOR_SFDP_DEVICETREE endchoice @@ -74,9 +62,6 @@ endif # All boards beside nRF7002DK use QSPI NOR external flash if BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF52840DK_NRF52840 -config NORDIC_QSPI_NOR - default y - config NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE default 4096 diff --git a/config/nrfconnect/chip-module/generate_factory_data.cmake b/config/nrfconnect/chip-module/generate_factory_data.cmake index 3c286fc21dddee..b1f4ad153c4fb9 100644 --- a/config/nrfconnect/chip-module/generate_factory_data.cmake +++ b/config/nrfconnect/chip-module/generate_factory_data.cmake @@ -15,25 +15,29 @@ # -# Create a JSON file based on factory data given via kConfigs. +# Create a .hex file in CBOR format based on factory data given via kConfigs. # # This function creates a list of arguments for external script and then run it to write a JSON file. # Created JSON file can be checked using JSON SCHEMA file if it is provided. +# Next, the resulting .hex file is generated based on previously created JSON file. # # This script can be manipulated using following kConfigs: # - To merge generated factory data with final zephyr.hex file set kConfig CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=y # - To use default certification paths set CONFIG_CHIP_FACTORY_DATA_USE_DEFAULTS_CERTS_PATH=y # -# During generation process a some file will be created in zephyr's build directory: +# During generation process the following files will be created in zephyr's build directory: # - .json a file containing all factory data written in JSON format. +# - .hex a file containing all factory data in CBOR format. +# - .bin a binary file containing all raw factory data in CBOR format. +# - .cbor a file containing all factory data in CBOR format. # # [Args]: # factory_data_target - a name for target to generate factory_data. # script_path - a path to script that makes a JSON factory data file from given arguments. # schema_path - a path to JSON schema file which can be used to verify generated factory data JSON file. # This argument is optional, if you don't want to verify the JSON file put it empty "". -# output_path - a path to output directory, where created JSON file will be stored. -function(nrfconnect_create_factory_data_json factory_data_target script_path schema_path output_path) +# output_path - a path to output directory, where created hex and JSON files will be stored. +function(nrfconnect_create_factory_data factory_data_target script_path schema_path output_path) # set script args for future purpose set(script_args) @@ -120,62 +124,37 @@ if(CONFIG_CHIP_DEVICE_ENABLE_KEY) string(APPEND script_args "--enable_key \"${CONFIG_CHIP_DEVICE_ENABLE_KEY}\"\n") endif() -# Set output JSON file and path to SCHEMA file to validate generated factory data -set(factory_data_json ${output_path}/${factory_data_target}.json) -string(APPEND script_args "-o \"${factory_data_json}\"\n") +# Set output path and path to SCHEMA file to validate generated factory data +set(factory_data_output_path ${output_path}/${factory_data_target}) +string(APPEND script_args "-o \"${factory_data_output_path}\"\n") string(APPEND script_args "-s \"${schema_path}\"\n") +# Add optional offset and size arguments to generate .hex file as well as .json. +if(CONFIG_PARTITION_MANAGER_ENABLED) + string(APPEND script_args "--offset $\n") + string(APPEND script_args "--size $\n") +else() + dt_alias(factory_data_alias PROPERTY "factory-data") + dt_node_exists(factory_data_exists PATH "${factory_data_alias}") + if(NOT ${factory_data_exists}) + message(FATAL_ERROR "factory-data alias does not exist in DTS") + endif() + dt_reg_addr(factory_data_addr PATH ${factory_data_alias}) + dt_reg_size(factory_data_size PATH ${factory_data_alias}) + string(APPEND script_args "--offset ${factory_data_addr}\n") + string(APPEND script_args "--size ${factory_data_size}\n") +endif() + # execute first script to create a JSON file separate_arguments(separated_script_args NATIVE_COMMAND ${script_args}) add_custom_command( - OUTPUT ${factory_data_json} + OUTPUT ${factory_data_output_path}.hex DEPENDS ${FACTORY_DATA_SCRIPT_PATH} COMMAND ${Python3_EXECUTABLE} ${FACTORY_DATA_SCRIPT_PATH} ${separated_script_args} COMMENT "Generating new Factory Data..." ) add_custom_target(${factory_data_target} ALL - DEPENDS ${factory_data_json} - ) - -endfunction() - - -# Create a .hex file with factory data in CBOR format. -# -# This function creates a .hex and .cbor files from given JSON factory data file. -# -# -# During generation process some files will be created in zephyr's build directory: -# - .hex a file containing all factory data in CBOR format. -# - .bin a binary file containing all raw factory data in CBOR format. -# - .cbor a file containing all factory data in CBOR format. -# -# [Args]: -# factory_data_hex_target - a name for target to generate factory data HEX file. -# factory_data_target - a name for target to generate factory data JSON file. -# script_path - a path to script that makes a factory data .hex file from given arguments. -# output_path - a path to output directory, where created JSON file will be stored. -function(nrfconnect_create_factory_data_hex_file factory_data_hex_target factory_data_target script_path output_path) - -# Pass the argument list via file -set(cbor_script_args "-i ${output_path}/${factory_data_target}.json\n") -string(APPEND cbor_script_args "-o ${output_path}/${factory_data_target}\n") -# get partition address and offset from partition manager during compilation -string(APPEND cbor_script_args "--offset $\n") -string(APPEND cbor_script_args "--size $\n") -string(APPEND cbor_script_args "-r\n") - -# execute second script to create a hex file containing factory data in cbor format -separate_arguments(separated_cbor_script_args NATIVE_COMMAND ${cbor_script_args}) -set(factory_data_hex ${output_path}/${factory_data_target}.hex) - -add_custom_command(OUTPUT ${factory_data_hex} - COMMAND ${Python3_EXECUTABLE} ${script_path} ${separated_cbor_script_args} - COMMENT "Generating factory data HEX file..." - DEPENDS ${factory_data_target} ${script_path} - ) -add_custom_target(${factory_data_hex_target} - DEPENDS ${factory_data_hex} + DEPENDS ${factory_data_output_path}.hex ) endfunction() @@ -202,22 +181,21 @@ set(GENERATE_CBOR_SCRIPT_PATH ${CHIP_ROOT}/scripts/tools/nrfconnect/nrfconnect_g set(FACTORY_DATA_SCHEMA_PATH ${CHIP_ROOT}/scripts/tools/nrfconnect/nrfconnect_factory_data.schema) set(OUTPUT_FILE_PATH ${APPLICATION_BINARY_DIR}/zephyr) -# create a JSON file with all factory data -nrfconnect_create_factory_data_json(factory_data - ${FACTORY_DATA_SCRIPT_PATH} - ${FACTORY_DATA_SCHEMA_PATH} - ${OUTPUT_FILE_PATH}) - # create a .hex file with factory data in CBOR format based on the JSON file created previously -nrfconnect_create_factory_data_hex_file(factory_data_hex - factory_data - ${GENERATE_CBOR_SCRIPT_PATH} - ${OUTPUT_FILE_PATH}) - -if(CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE) - # set custom target for merging factory_data hex file - set_property(GLOBAL PROPERTY factory_data_PM_HEX_FILE ${OUTPUT_FILE_PATH}/factory_data.hex) - set_property(GLOBAL PROPERTY factory_data_PM_TARGET factory_data_hex) +nrfconnect_create_factory_data(factory_data + ${FACTORY_DATA_SCRIPT_PATH} + ${FACTORY_DATA_SCHEMA_PATH} + ${OUTPUT_FILE_PATH}) + +if(CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE) + if(CONFIG_PARTITION_MANAGER_ENABLED) + # set custom target for merging factory_data hex file + set_property(GLOBAL PROPERTY factory_data_PM_HEX_FILE ${OUTPUT_FILE_PATH}/factory_data.hex) + set_property(GLOBAL PROPERTY factory_data_PM_TARGET factory_data) + else() + set_property(GLOBAL APPEND PROPERTY HEX_FILES_TO_MERGE ${OUTPUT_FILE_PATH}/factory_data.hex ${OUTPUT_FILE_PATH}/zephyr.hex) + set_property(TARGET runners_yaml_props_target PROPERTY hex_file ${OUTPUT_FILE_PATH}/merged.hex) + endif() endif() diff --git a/config/nuttx/chip-gn/.gn b/config/nuttx/chip-gn/.gn new file mode 100644 index 00000000000000..b81b0bba35934b --- /dev/null +++ b/config/nuttx/chip-gn/.gn @@ -0,0 +1,29 @@ +# Copyright (c) 2024 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("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "" + target_os = "nuttx" + + import("${chip_root}/config/nuttx/chip-gn/args.gni") +} diff --git a/config/nuttx/chip-gn/BUILD.gn b/config/nuttx/chip-gn/BUILD.gn new file mode 100644 index 00000000000000..fbefd303425475 --- /dev/null +++ b/config/nuttx/chip-gn/BUILD.gn @@ -0,0 +1,57 @@ +# Copyright (c) 2024 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("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +import("${chip_root}/build/chip/tests.gni") + +assert(current_os == "nuttx") + +declare_args() { + chip_build_example_providers = false + chip_example_lighting = false +} + +static_library("nuttx") { + output_name = "libchipnuttx" + + public_deps = [ + "${chip_root}/examples/platform/linux:app-main", + "${chip_root}/src/lib", + ] + + if (chip_build_tests) { + public_deps += [ "${chip_root}/src:tests" ] + } + + if (chip_build_example_providers) { + public_deps += [ "${chip_root}/examples/providers:device_info_provider" ] + } + + if (chip_example_lighting) { + public_deps += [ + "${chip_root}/examples/lighting-app/lighting-common", + "${chip_root}/examples/lighting-app/lighting-common:lighting-manager", + ] + } + + output_dir = "${root_out_dir}/lib" + + complete_static_lib = true +} + +group("default") { + deps = [ ":nuttx" ] +} diff --git a/config/nuttx/chip-gn/args.gni b/config/nuttx/chip-gn/args.gni new file mode 100644 index 00000000000000..1c114464aca2ec --- /dev/null +++ b/config/nuttx/chip-gn/args.gni @@ -0,0 +1,32 @@ +# Copyright (c) 2024 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("//build_overrides/chip.gni") + +import("${chip_root}/src/crypto/crypto.gni") + +chip_device_platform = "nuttx" + +chip_build_tests = false + +chip_project_config_include = "" +chip_system_project_config_include = "" +chip_ble_project_config_include = "" + +chip_crypto = "mbedtls" +chip_external_mbedtls = true + +custom_toolchain = "${chip_root}/config/nuttx/chip-gn/toolchain:nuttx" + +pw_build_PIP_CONSTRAINTS = [ "${chip_root}/scripts/setup/constraints.txt" ] diff --git a/config/nuttx/chip-gn/toolchain/BUILD.gn b/config/nuttx/chip-gn/toolchain/BUILD.gn new file mode 100644 index 00000000000000..199979e0cd2c1d --- /dev/null +++ b/config/nuttx/chip-gn/toolchain/BUILD.gn @@ -0,0 +1,33 @@ +# Copyright (c) 2024 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("//build/toolchain/gcc_toolchain.gni") +import("//build_overrides/build.gni") + +declare_args() { + nuttx_ar = "" + nuttx_cc = "" + nuttx_cxx = "" +} + +gcc_toolchain("nuttx") { + ar = nuttx_ar + cc = nuttx_cc + cxx = nuttx_cxx + + toolchain_args = { + current_os = "nuttx" + is_clang = false + } +} diff --git a/config/nxp/chip-module/CMakeLists.txt b/config/nxp/chip-module/CMakeLists.txt index 0e35f27a44d153..6b8266970dc883 100644 --- a/config/nxp/chip-module/CMakeLists.txt +++ b/config/nxp/chip-module/CMakeLists.txt @@ -237,7 +237,7 @@ if (CONFIG_CHIP_OTA_REQUESTOR) COMMAND cp ${PROJECT_BINARY_DIR}/../modules/connectedhomeip/build_mcuboot/zephyr/zephyr.bin ${PROJECT_BINARY_DIR}/zephyr.mcuboot.bin ) - + add_dependencies(build_mcuboot ${ZEPHYR_FINAL_EXECUTABLE}) set(BLOCK_SIZE "1024") dt_nodelabel(dts_partition_path NODELABEL "boot_partition") dt_reg_size(mcuboot_size PATH ${dts_partition_path}) @@ -249,7 +249,7 @@ if (CONFIG_CHIP_OTA_REQUESTOR) COMMAND dd if=${PROJECT_BINARY_DIR}/${ZEPHYR_OUTPUT_NAME}.bin of=${PROJECT_BINARY_DIR}/zephyr_full.bin bs=${BLOCK_SIZE} seek=${boot_blocks} ) - add_dependencies(merge_mcuboot ${ZEPHYR_FINAL_EXECUTABLE}) + add_dependencies(merge_mcuboot build_mcuboot) if (CONFIG_CHIP_OTA_IMAGE_BUILD) chip_ota_image(chip-ota-image diff --git a/config/nxp/chip-module/Kconfig b/config/nxp/chip-module/Kconfig index 7ee0917ebec555..ae95e1ce348f57 100644 --- a/config/nxp/chip-module/Kconfig +++ b/config/nxp/chip-module/Kconfig @@ -256,3 +256,23 @@ config CHIP_OTA_REQUESTOR_REBOOT_ON_APPLY Reboots the device automatically after downloading a new firmware update to swap the old and the new firmware images. The reboot happens only when a user consents to apply the firmware update. + +choice CHIP_OTA_REQUEST_UPGRADE_TYPE + prompt "Type of the upgrade to apply on new images" + default CHIP_OTA_REQUEST_UPGRADE_TEST + depends on CHIP_OTA_REQUESTOR + + config CHIP_OTA_REQUEST_UPGRADE_PERMANENT + bool "Mark the image as permanent" + help + The upgrade will be permanent on the next reboot. + No coming back to the old image. + + config CHIP_OTA_REQUEST_UPGRADE_TEST + bool "Mark the image as a test" + help + The upgrade will be marked as a test. + Image will be run on the next reboot, if confirmed it + becomes permanent, otherwise the new image is reverted. + +endchoice diff --git a/config/nxp/chip-module/Kconfig.defaults b/config/nxp/chip-module/Kconfig.defaults index 531a3f38245aad..36a9934a6a63e1 100644 --- a/config/nxp/chip-module/Kconfig.defaults +++ b/config/nxp/chip-module/Kconfig.defaults @@ -127,7 +127,7 @@ choice NET_TC_THREAD_TYPE default NET_TC_THREAD_PREEMPTIVE endchoice -config NET_TCP_WORK_QUEUE_THREAD_PRIO +config NET_TCP_WORKER_PRIO default -16 config NET_TC_TX_THREAD_BASE_PRIO @@ -205,7 +205,7 @@ config BT_BUF_ACL_TX_SIZE config BT_RX_STACK_SIZE default 2048 if NO_OPTIMIZATIONS && DEBUG - default 1536 + default 1600 config BT_DEVICE_NAME_GATT_WRITABLE bool @@ -217,6 +217,9 @@ config HCI_NXP_ENABLE_AUTO_SLEEP config CHIP_OTA_REQUESTOR default n +config CHIP_DEVICE_SOFTWARE_VERSION + default 1 + # Enable extended discovery config CHIP_EXTENDED_DISCOVERY default y @@ -225,7 +228,7 @@ config NVS_LOOKUP_CACHE default y config NVS_LOOKUP_CACHE_SIZE - default 512 + default 1024 if CHIP_WIFI @@ -406,6 +409,3 @@ config FLASH_SHELL endif # SHELL endif - -config NXP_FW_LOADER_MONOLITHIC - default y if NXP_FW_LOADER diff --git a/config/nxp/lib/pw_rpc/BUILD.gn b/config/nxp/lib/pw_rpc/BUILD.gn index 05962da9299912..e8dc620d233dfb 100644 --- a/config/nxp/lib/pw_rpc/BUILD.gn +++ b/config/nxp/lib/pw_rpc/BUILD.gn @@ -24,7 +24,6 @@ static_library("pw_rpc") { "$dir_pw_rpc:server", "$dir_pw_rpc/nanopb:echo_service", "${chip_root}/examples/platform/nxp/pw_sys_io:pw_sys_io_nxp", - "${dir_pigweed}/pw_hdlc:pw_rpc", dir_pw_assert, dir_pw_hdlc, dir_pw_log, diff --git a/config/openiotsdk/CMakeLists.txt b/config/openiotsdk/CMakeLists.txt index ad659d091c4fd3..4dc0aebb6821be 100644 --- a/config/openiotsdk/CMakeLists.txt +++ b/config/openiotsdk/CMakeLists.txt @@ -79,6 +79,7 @@ matter_build(chip LIB_SHELL ${CONFIG_CHIP_LIB_SHELL} LIB_TESTS ${CONFIG_CHIP_LIB_TESTS} GN_DEPENDENCIES ${CONFIG_GN_DEPENDENCIES} + FORCE_LOGGING_STDIO ${CONFIG_CHIP_FORCE_LOGGING_STDIO} ) target_link_libraries(chip INTERFACE diff --git a/config/openiotsdk/chip-gn/.gn b/config/openiotsdk/chip-gn/.gn index 4b9894b0f943ac..f2404233d6f74d 100644 --- a/config/openiotsdk/chip-gn/.gn +++ b/config/openiotsdk/chip-gn/.gn @@ -14,6 +14,7 @@ import("//build_overrides/build.gni") import("//build_overrides/chip.gni") +import("//build_overrides/pigweed.gni") # The location of the build configuration file. buildconfig = "//build/config/BUILDCONFIG.gn" @@ -26,4 +27,14 @@ default_args = { target_os = "cmsis-rtos" import("${chip_root}/config/openiotsdk/chip-gn/args.gni") + + pw_sys_io_BACKEND = dir_pw_sys_io_stdio + + pw_assert_BACKEND = dir_pw_assert_log + pw_log_BACKEND = dir_pw_log_basic + + pw_build_LINK_DEPS = [ + "$dir_pw_assert:impl", + "$dir_pw_log:impl", + ] } diff --git a/config/openiotsdk/chip-gn/BUILD.gn b/config/openiotsdk/chip-gn/BUILD.gn index 6e6fb51d404bb1..94e2f28635d114 100644 --- a/config/openiotsdk/chip-gn/BUILD.gn +++ b/config/openiotsdk/chip-gn/BUILD.gn @@ -19,7 +19,10 @@ group("openiotsdk") { deps = [ "${chip_root}/src/lib" ] if (chip_build_tests) { - deps += [ "${chip_root}/src:tests" ] + deps += [ + "${chip_root}/src:tests", + "${chip_root}/src/lib/support:pw_tests_wrapper", + ] } } diff --git a/config/openiotsdk/cmake/chip.cmake b/config/openiotsdk/cmake/chip.cmake index 1cb5a61cdeff02..a0eef560f926a9 100644 --- a/config/openiotsdk/cmake/chip.cmake +++ b/config/openiotsdk/cmake/chip.cmake @@ -27,6 +27,7 @@ set(CONFIG_CHIP_PROJECT_CONFIG_INCLUDE_DIRS "" CACHE STRING "") set(CONFIG_CHIP_LIB_TESTS NO CACHE BOOL "") set(CONFIG_CHIP_LIB_SHELL NO CACHE BOOL "") +set(CONFIG_CHIP_FORCE_LOGGING_STDIO NO CACHE BOOL "Enable stdio logging backend") set(CONFIG_CHIP_DETAIL_LOGGING YES CACHE BOOL "Enable logging at detail level") set(CONFIG_CHIP_PROGRESS_LOGGING YES CACHE BOOL "Enable logging at progress level") set(CONFIG_CHIP_AUTOMATION_LOGGING YES CACHE BOOL "Enable logging at automation level") diff --git a/config/pw_unit_test/BUILD.gn b/config/pw_unit_test/BUILD.gn new file mode 100644 index 00000000000000..20889115f74538 --- /dev/null +++ b/config/pw_unit_test/BUILD.gn @@ -0,0 +1,32 @@ +# Copyright (c) 2024 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("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/pigweed.gni") + +import("${chip_root}/build/chip/tests.gni") + +import("$dir_pw_build/target_types.gni") +pw_source_set("define_overrides") { + public_configs = [ ":define_options" ] +} + +config("define_options") { + if (chip_fake_platform && chip_link_tests) { + defines = [ "PW_UNIT_TEST_CONFIG_MEMORY_POOL_SIZE=65536" ] + } else { + defines = [ "PW_UNIT_TEST_CONFIG_MEMORY_POOL_SIZE=16384" ] + } +} diff --git a/config/qpg/chip-gn/build.sh b/config/qpg/chip-gn/build.sh index ce0306c2ab9809..541da2625253eb 100755 --- a/config/qpg/chip-gn/build.sh +++ b/config/qpg/chip-gn/build.sh @@ -23,6 +23,7 @@ env GN_ROOT_TARGET=$(dirname "$0") CHIP_ROOT=$GN_ROOT_TARGET/../../../ OUTDIR=$CHIP_ROOT/out +GN_ARGS="qpg_target_ic=\"qpg6105\" qpg_flavour=\"_ext_flash\"" mkdir -p "$OUTDIR" gn \ @@ -33,6 +34,7 @@ gn \ --export-compile-commands \ gen \ --check \ + --args="$GN_ARGS" \ --fail-on-unused-args \ "$OUTDIR" ninja -C "$OUTDIR" diff --git a/config/telink/app/bootloader.conf b/config/telink/app/bootloader.conf index 2098bc7072cb3d..52937e1649e9af 100644 --- a/config/telink/app/bootloader.conf +++ b/config/telink/app/bootloader.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 Project CHIP Authors +# Copyright (c) 2023-2024 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. @@ -41,8 +41,3 @@ CONFIG_BOOT_MAX_IMG_SECTORS=4096 # - 3 INFO, default to write LOG_LEVEL_INFO # - 4 DEBUG, default to write LOG_LEVEL_DBG CONFIG_LOG_DEFAULT_LEVEL=1 - -# USB DFU configuration -CONFIG_USB_DFU_WILL_DETACH=n -CONFIG_BOOT_USB_DFU_GPIO=y -CONFIG_MCUBOOT_INDICATION_LED=y diff --git a/config/telink/app/bootloader_usb.conf b/config/telink/app/bootloader_usb.conf new file mode 100644 index 00000000000000..b6b0098bfc31b1 --- /dev/null +++ b/config/telink/app/bootloader_usb.conf @@ -0,0 +1,20 @@ +# +# Copyright (c) 2024 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. +# + +# USB DFU configuration +CONFIG_USB_DFU_WILL_DETACH=n +CONFIG_BOOT_USB_DFU_GPIO=y +CONFIG_MCUBOOT_INDICATION_LED=y diff --git a/config/telink/chip-module/CMakeLists.txt b/config/telink/chip-module/CMakeLists.txt index 7862d5f8b95d8e..f8986e7a954fb4 100644 --- a/config/telink/chip-module/CMakeLists.txt +++ b/config/telink/chip-module/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2022-2023 Project CHIP Authors +# Copyright (c) 2022-2024 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. @@ -46,6 +46,7 @@ include(${COMMON_CMAKE_SOURCE_DIR}/chip_gn_args.cmake) include(${COMMON_CMAKE_SOURCE_DIR}/chip_gn.cmake) # Prepare compiler flags +matter_add_flags(-isystem${ZEPHYR_BASE}/../modules/crypto/mbedtls/include/) if (CONFIG_POSIX_API) matter_add_flags(-D_DEFAULT_SOURCE) @@ -94,36 +95,42 @@ matter_add_gn_arg_bool ("chip_logging" CONFIG_LOG) matter_add_gn_arg_bool ("chip_enable_openthread" CONFIG_NET_L2_OPENTHREAD) matter_add_gn_arg_bool ("chip_openthread_ftd" CONFIG_OPENTHREAD_FTD) matter_add_gn_arg_bool ("chip_config_network_layer_ble" CONFIG_BT) -matter_add_gn_arg_bool ("chip_inet_config_enable_ipv4" CONFIG_NET_IPV4) +matter_add_gn_arg_bool ("chip_inet_config_enable_ipv4" CONFIG_CHIP_IPV4) matter_add_gn_arg_bool ("chip_enable_nfc" CONFIG_CHIP_NFC_COMMISSIONING) matter_add_gn_arg_bool ("chip_enable_ota_requestor" CONFIG_CHIP_OTA_REQUESTOR) -matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" CONFIG_CHIP_BUILD_TESTS) +matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" FALSE) matter_add_gn_arg_bool ("chip_error_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 1) matter_add_gn_arg_bool ("chip_progress_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 3) matter_add_gn_arg_bool ("chip_detail_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 4) matter_add_gn_arg_bool ("chip_automation_logging" FALSE) +matter_add_gn_arg_bool ("chip_enable_wifi" CONFIG_WIFI_W91) matter_add_gn_arg_bool ("chip_enable_icd_server" CONFIG_CHIP_ENABLE_ICD_SUPPORT) +matter_add_gn_arg_bool ("chip_enable_factory_data" CONFIG_CHIP_FACTORY_DATA) +matter_add_gn_arg_bool ("chip_mdns_minimal" CONFIG_WIFI_W91) +matter_add_gn_arg_bool ("chip_mdns_platform" CONFIG_NET_L2_OPENTHREAD) if (CONFIG_CHIP_ENABLE_ICD_SUPPORT) - matter_add_gn_arg_bool ("chip_enable_icd_lit" CONFIG_CHIP_ICD_LIT_SUPPORT) - matter_add_gn_arg_bool ("chip_enable_icd_checkin" CONFIG_CHIP_ICD_CHECK_IN_SUPPORT) - matter_add_gn_arg_bool ("chip_enable_icd_user_active_mode_trigger" CONFIG_CHIP_ICD_UAT_SUPPORT) + matter_add_gn_arg_bool ("chip_enable_icd_lit" CONFIG_CHIP_ICD_LIT_SUPPORT) + matter_add_gn_arg_bool ("chip_enable_icd_checkin" CONFIG_CHIP_ICD_CHECK_IN_SUPPORT) + matter_add_gn_arg_bool ("chip_enable_icd_user_active_mode_trigger" CONFIG_CHIP_ICD_UAT_SUPPORT) endif() -if (CONFIG_CHIP_FACTORY_DATA) - matter_add_gn_arg_bool ("chip_use_transitional_commissionable_data_provider" "false") - matter_add_gn_arg_bool ("chip_enable_factory_data" "true") -elseif (CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND) - matter_add_gn_arg_bool ("chip_use_transitional_commissionable_data_provider" "false") +if (CONFIG_CHIP_FACTORY_DATA OR CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND) + matter_add_gn_arg_bool("chip_use_transitional_commissionable_data_provider" FALSE) + matter_add_gn_arg_bool("chip_use_transitional_device_instance_info_provider" FALSE) endif() if (CONFIG_CHIP_ROTATING_DEVICE_ID) - matter_add_gn_arg_bool("chip_enable_rotating_device_id" "true") - matter_add_gn_arg_bool("chip_enable_additional_data_advertising" "true") + matter_add_gn_arg_bool("chip_enable_rotating_device_id" TRUE) + matter_add_gn_arg_bool("chip_enable_additional_data_advertising" TRUE) endif() -if (CONFIG_CHIP_ENABLE_DNSSD_SRP) +if(CONFIG_WIFI_W91) + matter_add_gn_arg_string("chip_mdns" "minimal") +elseif (CONFIG_NET_L2_OPENTHREAD) matter_add_gn_arg_string("chip_mdns" "platform") +else() + matter_add_gn_arg_string("chip_mdns" "none") endif() if (CONFIG_CHIP_PW_RPC) @@ -149,47 +156,7 @@ set_property(GLOBAL APPEND PROPERTY ZEPHYR_INTERFACE_LIBS chip) # Define 'chip-ota-image' target for building CHIP OTA image # ============================================================================== -string(REPLACE "_retention" "" BASE_BOARD ${BOARD}) - -if(${TLNK_USB_DONGLE} MATCHES y) - if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_usb_boot.overlay") - set(USB_BOOT_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_usb_boot.overlay") - else() - unset(USB_BOOT_DTC_OVERLAY_FILE) - endif() -else() - unset(USB_BOOT_DTC_OVERLAY_FILE) -endif() - -if(${TLNK_MARS_BOARD} MATCHES y) - if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_mars_boot.overlay") - set(MARS_BOOT_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_mars_boot.overlay") - else() - unset(MARS_BOOT_DTC_OVERLAY_FILE) - endif() -else() - unset(MARS_CONF_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}.overlay") - set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}.overlay") -else() - unset(GLOBAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b") -else() - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay") - message(STATUS "Flash memory size is set to: 2mb") -endif() - -if(EXISTS "${CHIP_ROOT}/config/telink/app/bootloader.conf") - set(GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE "${CHIP_ROOT}/config/telink/app/bootloader.conf") -else() - unset(GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE) -endif() +include(${TELINK_COMMON}/common.cmake) set(BLOCK_SIZE "1024") @@ -202,7 +169,7 @@ if (CONFIG_BOOTLOADER_MCUBOOT) add_custom_target(build_mcuboot ALL COMMAND west build -b ${BASE_BOARD} -d build_mcuboot ${ZEPHYR_BASE}/../bootloader/mcuboot/boot/zephyr - -- -DOVERLAY_CONFIG=${GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE} -DDTC_OVERLAY_FILE="${GLOBAL_DTC_OVERLAY_FILE};${FLASH_DTC_OVERLAY_FILE};${USB_BOOT_DTC_OVERLAY_FILE};${MARS_BOOT_DTC_OVERLAY_FILE}" + -- -DOVERLAY_CONFIG=${GLOBAL_BOOT_CONF_OVERLAY_FILE} -DDTC_OVERLAY_FILE="${GLOBAL_BOOT_DTC_OVERLAY_FILE};${FLASH_DTC_OVERLAY_FILE};${USB_BOOT_DTC_OVERLAY_FILE};${MARS_BOOT_DTC_OVERLAY_FILE}" COMMAND cp ${PROJECT_BINARY_DIR}/../modules/chip-module/build_mcuboot/zephyr/zephyr.bin ${PROJECT_BINARY_DIR}/zephyr.mcuboot.bin ) diff --git a/config/telink/chip-module/Kconfig b/config/telink/chip-module/Kconfig index b76e3962d2efbe..46dc36b8973d77 100644 --- a/config/telink/chip-module/Kconfig +++ b/config/telink/chip-module/Kconfig @@ -178,6 +178,15 @@ config CHIP_LOG_SIZE_OPTIMIZATION full configuration enabled by this option in the platform/telink/CHIPPlatformConfig.h file. +config CHIP_IPV4 + bool "IPv4 support for Matter" + default n + depends on NET_IPV4 + help + If disabled, it allows to build Telink SDK application + with IPv4 support independently of the Matter stack still + running over IPv6. + config CHIP_BUTTON_MANAGER_IRQ_MODE bool "Use GPIO in an IRQ mode instead of polling the GPIO" default PM diff --git a/config/telink/chip-module/Kconfig.defaults b/config/telink/chip-module/Kconfig.defaults index 964b08547bb0b5..ea5a6822b74cb5 100644 --- a/config/telink/chip-module/Kconfig.defaults +++ b/config/telink/chip-module/Kconfig.defaults @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 Project CHIP Authors +# Copyright (c) 2023-2024 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. @@ -20,6 +20,10 @@ if CHIP +config CHIP_PROJECT_CONFIG + string "Project configuration file for Matter" + default "include/CHIPProjectConfig.h" + config LOG default y @@ -30,11 +34,11 @@ choice LOG_MODE endchoice choice MATTER_LOG_LEVEL_CHOICE - default MATTER_LOG_LEVEL_INF + default MATTER_LOG_LEVEL_DBG endchoice config CHIP_APP_LOG_LEVEL - default 3 # info + default 4 # debug config LOG_DEFAULT_LEVEL default 1 # error @@ -106,6 +110,8 @@ config GPIO config BT default y +if BT + config BT_PERIPHERAL default y @@ -131,10 +137,12 @@ config BT_BUF_ACL_TX_SIZE default 251 config BT_RX_STACK_SIZE - default 810 + default 810 if BT_B9X + default 2048 if BT_W91 config BT_HCI_TX_STACK_SIZE - default 640 + default 640 if BT_B9X + default 2048 if BT_W91 config BT_DEVICE_NAME_GATT_WRITABLE bool @@ -157,12 +165,14 @@ choice B9X_BLE_CTRL_MAC_TYPE default B9X_BLE_CTRL_MAC_TYPE_RANDOM_STATIC endchoice +endif + # Board retention config -if BOARD_TLSR9528A_RETENTION || BOARD_TLSR9258A_RETENTION || BOARD_TLSR9518ADK80D_RETENTION -config BOARD_TLSR9X_NON_RETENTION_RAM_CODE +if BOARD_TLSR9528A_RETENTION || BOARD_TLSR9258A_RETENTION || BOARD_TLSR9518ADK80D_RETENTION +config SOC_SERIES_RISCV_TELINK_B9X_NON_RETENTION_RAM_CODE default y if PM -config TELINK_B9x_MATTER_RETENTION_LAYOUT +config TELINK_B9X_MATTER_RETENTION_LAYOUT default y if PM config PWM @@ -170,7 +180,7 @@ config PWM endif # Board non-retention config -if BOARD_TLSR9528A || BOARD_TLSR9258A || BOARD_TLSR9518ADK80D +if BOARD_TLSR9118BDK40D || BOARD_TLSR9528A || BOARD_TLSR9258A || BOARD_TLSR9518ADK80D config PWM default y endif @@ -195,7 +205,7 @@ config WARN_DEPRECATED default n # Reboot system when fault happened -config TELINK_B9X_REBOOT_ON_FAULT +config TELINK_SOC_REBOOT_ON_FAULT default y config NVS_LOOKUP_CACHE @@ -216,7 +226,13 @@ config SETTINGS_NVS_SECTOR_COUNT # Enable OpenThread config NET_L2_OPENTHREAD - default y + default y if !WIFI + +if NET_L2_OPENTHREAD + +config CHIP_OPENTHREAD_CONFIG + string "Custom OpenThread configuration file" + default "../../platform/telink/project_include/OpenThreadConfig.h" choice CHIP_THREAD_DEVICE_ROLE prompt "Thread network device role" @@ -256,6 +272,8 @@ config OPENTHREAD_DEFAULT_TX_POWER default 3 if PM default 9 +endif # NET_L2_OPENTHREAD + config NET_TX_STACK_SIZE default 554 if PM @@ -276,13 +294,108 @@ config NET_MAX_CONTEXTS config NET_CONFIG_INIT_TIMEOUT default 0 -# mbedTLS tweaks + +config CHIP_WIFI + bool "Enable Telink Wi-Fi support" + default y if BOARD_TLSR9118BDK40D + select WIFI_W91 + select WIFI + select NET_STATISTICS + select NET_IPV6_ND # enable Neighbor Discovery to handle Router Advertisements + select NET_IPV6_NBR_CACHE + select NET_STATISTICS_USER_API +# select NET_IPV4 # TODO: remove IPv4 when IPv6 will be ready (see CHIP_IPV4) +# select NET_CONFIG_NEED_IPV4 +# select NET_DHCPV4 + +if CHIP_WIFI + +config DEFAULT_WIFI_SSID + string "Default WiFi SSID" + depends on CHIP_WIFI + default "" + help + The SSID of network to connect to if no WiFi station configuration exists in NV storage + at the time the device boots. + This option is for testing only and should be disabled in production releases + +config DEFAULT_WIFI_PASSWORD + string "Default WiFi Password" + depends on CHIP_WIFI + default "" + help + The password for the default WiFi network. + This option is for testing only and should be disabled in production releases. + +config CHIP_WIFI_CONNECTION_RECOVERY_MINIMUM_INTERVAL + int "Define the minimum connection recovery time interval in milliseconds" + depends on CHIP_WIFI + default 500 + help + Specifies the minimum connection recovery interval (in milliseconds). + +config CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL + int "Define the maximum connection recovery time interval in milliseconds" + depends on CHIP_WIFI + default 3600000 # 1 hour + help + Specifies the maximum connection recovery interval (in milliseconds). + +config CHIP_WIFI_CONNECTION_RECOVERY_MAX_RETRIES_NUMBER + int "Define the maximum amount of connection recovery occurrences" + depends on CHIP_WIFI + default 0 + help + Specifies the maximum number of connection recovery attempts. + If set to 0, no limitation is applied and attempts + to recover the connection are performed indefinitely. + +config CHIP_WIFI_CONNECTION_RECOVERY_JITTER + int "Define the connection recovery jitter in milliseconds" + depends on CHIP_WIFI + default 2000 + help + Specifies the maximum connection recovery jitter interval (in milliseconds). + Once the wait time reaches the current maximum value (defined by CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL), + a random jitter interval is added to it to avoid periodicity. The random jitter is selected + within range [-JITTER; +JITTER]. + +endif # CHIP_WIFI + +config CHIP_ENABLE_PAIRING_AUTOSTART + bool "Open commissioning window on boot" + default y + help + Opens the commissioning window automatically at application boot time if + the node is not yet commissioned. + +# Configure MBEDTLS lib +config MBEDTLS + default y + config MBEDTLS_USER_CONFIG_ENABLE default y config MBEDTLS_USER_CONFIG_FILE default "telink-mbedtls-config.h" +config MBEDTLS_CIPHER_CCM_ENABLED + default y + +config MBEDTLS_PK_WRITE_C + default y + +config MBEDTLS_ECP_C + default y + +config MBEDTLS_ECP_DP_SECP256R1_ENABLED + default y + +config MBEDTLS_ECDH_C + default y + +config MBEDTLS_ECDSA_C + default y # getopt version config GETOPT_LONG diff --git a/config/zephyr/Kconfig b/config/zephyr/Kconfig index ad36a663b5fd1f..95cea7cec1a707 100644 --- a/config/zephyr/Kconfig +++ b/config/zephyr/Kconfig @@ -95,6 +95,7 @@ config CHIP_DEVICE_HARDWARE_VERSION_STRING hardware version string is exposed as an attribute of the Basic Information cluster. +if "$(APPVERSION)"="" config CHIP_DEVICE_SOFTWARE_VERSION int "Software version" default 0 @@ -116,6 +117,7 @@ config CHIP_DEVICE_SOFTWARE_VERSION_STRING software version string is exposed as an attribute of the Basic Information cluster, and included in the header of the generated Matter over-the-air (OTA) update image. +endif config CHIP_DEVICE_MANUFACTURING_DATE string "Manufacturing date (ISO 8601 format)" @@ -309,7 +311,8 @@ config CHIP_PROJECT_CONFIG config CHIP_ENABLE_DNSSD_SRP bool "OpenThread Service Registration Protocol" - default y if NET_L2_OPENTHREAD + default y + depends on NET_L2_OPENTHREAD imply OPENTHREAD_ECDSA imply OPENTHREAD_SRP_CLIENT help @@ -318,7 +321,8 @@ config CHIP_ENABLE_DNSSD_SRP config CHIP_ENABLE_DNS_CLIENT bool "OpenThread DNS client" - default y if NET_L2_OPENTHREAD + default y + depends on NET_L2_OPENTHREAD imply OPENTHREAD_DNS_CLIENT help Enables using the OpenThread DNS client for the Matter service discovery. @@ -413,6 +417,7 @@ config CHIP_THREAD_SSED config CHIP_OPENTHREAD_CONFIG string "Custom OpenThread configuration file" + depends on NET_L2_OPENTHREAD help Provides a path to an OpenThread configuration file. The path can be either absolute or relative to the application directory. When this option @@ -533,4 +538,22 @@ config CHIP_OTA_IMAGE_EXTRA_ARGS endif +config CHIP_BLE_EXT_ADVERTISING + bool "Bluetooth LE extended advertising" + help + Enable Bluetooth LE extended advertising, which allows the device to advertise + Matter service over Bluetooth LE for a period of time longer than 15 minutes. + If this config is true, + CHIP_DEVICE_CONFIG_DISCOVERY_TIMEOUT_SECS define can be set up to 172800 seconds (48h). + +config CHIP_BLE_ADVERTISING_DURATION + int "Bluetooth LE advertising duration in minutes" + range 15 2880 if CHIP_BLE_EXT_ADVERTISING + range 0 15 + default 15 + help + Specify how long the device will advertise Matter service over Bluetooth LE in minutes. + If CHIP_BLE_EXT_ADVERTISING is set to false, the maximum duration time is 15 minutes, + else the maximum duration time can be extended to 2880 minutes (48h). + endif diff --git a/config/zephyr/app/enable-gnu-std.cmake b/config/zephyr/app/enable-gnu-std.cmake index 5f31e1a5c62ab8..37c18235d0f513 100644 --- a/config/zephyr/app/enable-gnu-std.cmake +++ b/config/zephyr/app/enable-gnu-std.cmake @@ -2,5 +2,5 @@ add_library(gnu17 INTERFACE) target_compile_options(gnu17 INTERFACE $<$:-std=gnu++17> - -D_SYS__PTHREADTYPES_H_) -target_link_libraries(app PRIVATE gnu17) + -D_DEFAULT_SOURCE) +target_link_libraries(app PRIVATE gnu17) \ No newline at end of file diff --git a/config/zephyr/chip-module/CMakeLists.txt b/config/zephyr/chip-module/CMakeLists.txt index 6d84a962a69cc0..575e4ff24b4827 100644 --- a/config/zephyr/chip-module/CMakeLists.txt +++ b/config/zephyr/chip-module/CMakeLists.txt @@ -39,29 +39,27 @@ endif() get_filename_component(GN_ROOT_TARGET ${CHIP_ROOT}/config/zephyr/chip-gn REALPATH) get_filename_component(COMMON_CMAKE_SOURCE_DIR ${CHIP_ROOT}/config/common/cmake REALPATH) -# Additional configuration -if (CONFIG_CHIP_PW_RPC) - set(CONFIG_CHIP_LIB_PW_RPC YES) -endif() # Get common Cmake sources include(${COMMON_CMAKE_SOURCE_DIR}/chip_gn_args.cmake) include(${COMMON_CMAKE_SOURCE_DIR}/chip_gn.cmake) -# Prepare compiler flags -matter_add_flags(-isystem${ZEPHYR_BASE}/../modules/crypto/mbedtls/include/) - if (CONFIG_POSIX_API) - matter_add_flags(-D_SYS__PTHREADTYPES_H_) + matter_add_flags(-D_DEFAULT_SOURCE) matter_add_flags(-isystem${ZEPHYR_BASE}/include/zephyr/posix) endif() +if(CONFIG_MBEDTLS) + zephyr_include_directories($) + zephyr_compile_definitions($) +endif() + zephyr_get_compile_flags(ZEPHYR_CFLAGS_C C) -matter_add_cflags(${ZEPHYR_CFLAGS_C}) +matter_add_cflags("${ZEPHYR_CFLAGS_C}") zephyr_get_compile_flags(ZEPHYR_CFLAGS_CC CXX) -matter_add_cxxflags(${ZEPHYR_CFLAGS_CC}) +matter_add_cxxflags("${ZEPHYR_CFLAGS_CC}") zephyr_get_gnu_cpp_standard(ZEPHYR_GNU_CPP_STD) -matter_add_cxxflags(${ZEPHYR_GNU_CPP_STD}) +matter_add_cxxflags("${ZEPHYR_GNU_CPP_STD}") # Set up custom OpenThread configuration @@ -81,21 +79,52 @@ matter_common_gn_args( DEBUG CONFIG_DEBUG LIB_SHELL CONFIG_CHIP_LIB_SHELL LIB_TESTS CONFIG_CHIP_BUILD_TESTS - LIB_PW_RPC CONFIG_CHIP_PW_RPC PROJECT_CONFIG ${CONFIG_CHIP_PROJECT_CONFIG} ) -matter_add_gn_arg_string("zephyr_ar" ${CMAKE_AR}) -matter_add_gn_arg_string("zephyr_cc" ${CMAKE_C_COMPILER}) -matter_add_gn_arg_string("zephyr_cxx" ${CMAKE_CXX_COMPILER}) -matter_add_gn_arg_bool ("chip_enable_openthread" CONFIG_NET_L2_OPENTHREAD) -matter_add_gn_arg_bool ("chip_openthread_ftd" CONFIG_OPENTHREAD_FTD) -matter_add_gn_arg_bool ("chip_inet_config_enable_ipv4" CONFIG_NET_IPV4) -matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" CONFIG_CHIP_BUILD_TESTS) + +matter_add_gn_arg_string("zephyr_ar" ${CMAKE_AR}) +matter_add_gn_arg_string("zephyr_cc" ${CMAKE_C_COMPILER}) +matter_add_gn_arg_string("zephyr_cxx" ${CMAKE_CXX_COMPILER}) +matter_add_gn_arg_bool ("chip_logging" CONFIG_LOG) +matter_add_gn_arg_bool ("chip_error_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 1) +matter_add_gn_arg_bool ("chip_progress_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 3) +matter_add_gn_arg_bool ("chip_detail_logging" CONFIG_MATTER_LOG_LEVEL GREATER_EQUAL 4) +matter_add_gn_arg_bool ("chip_automation_logging" FALSE) +matter_add_gn_arg_bool ("chip_enable_openthread" CONFIG_NET_L2_OPENTHREAD) +matter_add_gn_arg_bool ("chip_openthread_ftd" CONFIG_OPENTHREAD_FTD) +matter_add_gn_arg_bool ("chip_inet_config_enable_ipv4" CONFIG_CHIP_IPV4) +matter_add_gn_arg_bool ("chip_enable_wifi" CONFIG_WIFI) +matter_add_gn_arg_bool ("chip_config_network_layer_ble" CONFIG_BT) +matter_add_gn_arg_bool ("chip_mdns_minimal" CONFIG_WIFI) +matter_add_gn_arg_bool ("chip_mdns_minimal" CONFIG_NET_L2_ETHERNET) +matter_add_gn_arg_bool ("chip_mdns_platform" CONFIG_NET_L2_OPENTHREAD) +matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" CONFIG_CHIP_BUILD_TESTS) +matter_add_gn_arg_bool ("chip_inet_config_enable_udp_endpoint" CONFIG_NET_UDP) +matter_add_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" CONFIG_NET_TCP) +matter_add_gn_arg_bool ("chip_malloc_sys_heap" CONFIG_CHIP_MALLOC_SYS_HEAP) + if (CONFIG_CHIP_ENABLE_DNSSD_SRP) matter_add_gn_arg_string("chip_mdns" "platform") endif() +if(CONFIG_WIFI) + matter_add_gn_arg_string("chip_mdns" "minimal") +elseif (CONFIG_NET_L2_ETHERNET) + matter_add_gn_arg_string("chip_mdns" "minimal") +elseif (CONFIG_NET_L2_OPENTHREAD) + matter_add_gn_arg_string("chip_mdns" "platform") +else() + matter_add_gn_arg_string("chip_mdns" "none") +endif() + +if (CONFIG_CHIP_PW_RPC) + set(PIGWEED_DIR "//third_party/pigweed/repo") + matter_add_gn_arg_string("pw_assert_BACKEND" ${PIGWEED_DIR}/pw_assert_log:check_backend) + matter_add_gn_arg_string("pw_log_BACKEND" ${PIGWEED_DIR}/pw_log_basic) + matter_add_gn_arg("pw_build_LINK_DEPS" [\"${PIGWEED_DIR}/pw_assert:impl\",\ \"${PIGWEED_DIR}/pw_log:impl\"]) +endif() + matter_generate_args_tmp_file() # ============================================================================== @@ -103,7 +132,6 @@ matter_generate_args_tmp_file() # ============================================================================== matter_build(chip LIB_SHELL ${CONFIG_CHIP_LIB_SHELL} - LIB_PW_RPC ${CONFIG_CHIP_PW_RPC} LIB_TESTS ${CONFIG_CHIP_BUILD_TESTS} GN_DEPENDENCIES kernel ) diff --git a/config/zephyr/chip-module/Kconfig.bt b/config/zephyr/chip-module/Kconfig.bt new file mode 100644 index 00000000000000..547224549df1e6 --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.bt @@ -0,0 +1,68 @@ +# +# 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. +# + +# Bluetooth Low Energy configs +config BT + bool + default y + +config BT_PERIPHERAL + bool + default y + +config BT_PERIPHERAL_PREF_MIN_INT + int + default 36 + +config BT_PERIPHERAL_PREF_MAX_INT + int + default 36 + +config BT_GAP_AUTO_UPDATE_CONN_PARAMS + bool + default y + +config BT_GATT_DYNAMIC_DB + bool + default y + +config BT_DEVICE_NAME_DYNAMIC + bool + default y + +config BT_DEVICE_NAME_MAX + int + default 15 + +config BT_MAX_CONN + int + default 1 + +config BT_L2CAP_TX_MTU + int + default 247 + +config BT_BUF_ACL_RX_SIZE + int + default 251 + +config BT_BUF_ACL_TX_SIZE + int + default 251 + +config BT_RX_STACK_SIZE + int + default 1200 \ No newline at end of file diff --git a/config/zephyr/chip-module/Kconfig.defaults b/config/zephyr/chip-module/Kconfig.defaults index 4cf4edea17a939..f092de983eade1 100644 --- a/config/zephyr/chip-module/Kconfig.defaults +++ b/config/zephyr/chip-module/Kconfig.defaults @@ -20,29 +20,11 @@ if CHIP -config LOG - bool - default y - -if LOG - -choice LOG_MODE - default LOG_MODE_MINIMAL -endchoice - -choice MATTER_LOG_LEVEL_CHOICE - default MATTER_LOG_LEVEL_DBG -endchoice - -config LOG_DEFAULT_LEVEL - int - default 2 - -endif - +# disable synchronous printk to avoid blocking IRQs which +# may affect time sensitive components config PRINTK_SYNC bool - default y + default n config ASSERT bool @@ -117,58 +99,7 @@ config NET_BUF_TX_COUNT int default 80 -# Bluetooth Low Energy configs -config BT - bool - default y - -config BT_PERIPHERAL - bool - default y - -config BT_PERIPHERAL_PREF_MIN_INT - int - default 36 - -config BT_PERIPHERAL_PREF_MAX_INT - int - default 36 - -config BT_GAP_AUTO_UPDATE_CONN_PARAMS - bool - default y - -config BT_GATT_DYNAMIC_DB - bool - default y - -config BT_DEVICE_NAME_DYNAMIC - bool - default y - -config BT_DEVICE_NAME_MAX - int - default 15 - -config BT_MAX_CONN - int - default 1 - -config BT_L2CAP_TX_MTU - int - default 247 -config BT_BUF_ACL_RX_SIZE - int - default 251 - -config BT_BUF_ACL_TX_SIZE - int - default 251 - -config BT_RX_STACK_SIZE - int - default 1200 config CHIP_OTA_REQUESTOR bool diff --git a/config/zephyr/chip-module/Kconfig.mbedtls b/config/zephyr/chip-module/Kconfig.mbedtls new file mode 100644 index 00000000000000..3e4fdc1895db3c --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.mbedtls @@ -0,0 +1,64 @@ +# +# 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. +# + +if CHIP + +config MBEDTLS + default y + +config MBEDTLS_ENTROPY_ENABLED + default y + +config MBEDTLS_ENTROPY_ENABLED + default y + +config MBEDTLS_ZEPHYR_ENTROPY + default y + +config MBEDTLS_ENABLE_HEAP + default y + +config MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED + default y + +config MBEDTLS_ECP_ALL_ENABLED + default y + +config MBEDTLS_ECP_C + default y + +config MBEDTLS_PKCS5_C + default y + +config MBEDTLS_HKDF_C + default y + +config MBEDTLS_CIPHER_CCM_ENABLED + default y + +config MBEDTLS_CTR_DRBG_ENABLED + default y + +config MBEDTLS_CIPHER_AES_ENABLED + default y + +config MBEDTLS_ECDH_C + default y + +config MBEDTLS_ECDSA_C + default y + +endif #CHIP \ No newline at end of file diff --git a/config/zephyr/ota-image.cmake b/config/zephyr/ota-image.cmake index bd7735648f8302..f254b97ea58b8a 100644 --- a/config/zephyr/ota-image.cmake +++ b/config/zephyr/ota-image.cmake @@ -31,18 +31,33 @@ function(chip_ota_image TARGET_NAME) endif() # Prepare ota_image_tool.py argument list - set(OTA_ARGS - "--vendor-id" - ${CONFIG_CHIP_DEVICE_VENDOR_ID} - "--product-id" - ${CONFIG_CHIP_DEVICE_PRODUCT_ID} - "--version" - ${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION} - "--version-str" - ${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION_STRING} - "--digest-algorithm" - "sha256" - ) + if(DEFINED APPVERSION) + set(OTA_ARGS + "--vendor-id" + ${CONFIG_CHIP_DEVICE_VENDOR_ID} + "--product-id" + ${CONFIG_CHIP_DEVICE_PRODUCT_ID} + "--version" + ${APPVERSION} + "--version-str" + ${APP_VERSION_TWEAK_STRING} + "--digest-algorithm" + "sha256" + ) + else() + set(OTA_ARGS + "--vendor-id" + ${CONFIG_CHIP_DEVICE_VENDOR_ID} + "--product-id" + ${CONFIG_CHIP_DEVICE_PRODUCT_ID} + "--version" + ${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION} + "--version-str" + ${CONFIG_CHIP_DEVICE_SOFTWARE_VERSION_STRING} + "--digest-algorithm" + "sha256" + ) + endif() separate_arguments(OTA_EXTRA_ARGS NATIVE_COMMAND "${CHIP_OTA_IMAGE_EXTRA_ARGS}") diff --git a/credentials/development/commissioner_dut/invalid_paa/test_case_vector.json b/credentials/development/commissioner_dut/invalid_paa/test_case_vector.json index 8b504a8a1b8997..b592004400ddf8 100644 --- a/credentials/development/commissioner_dut/invalid_paa/test_case_vector.json +++ b/credentials/development/commissioner_dut/invalid_paa/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAA Test Vector: Use Invalid PAA (Not Registered in the DCL).", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820172a0030201020208567d67fad563292c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c0446464631301e170d3231303632383134323334335a170d3232303632383134323334325a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043e84ccfb667a1d562229015913124f85e7c62d6f1393a21327fb3e4dc4d6e7a425b00dc77250800c07a90311bdf4f70dd85a70ec7689a45a9f063c1bd03508c7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cd5158817cba8798bf2d4c3823403a78b26a6e2c301f0603551d2304183016801460299f6439897e6f486e5f7237cd98a297ad48e1300a06082a8648ce3d040302034900304602210088a0246e9fa3314477108d6ca54be5f085d49280dc443fe36d7142b35fa7661f022100deb66d515b10a85e3da566fcdacfd6809df9969281dc6c18aa3aa397d10596fe", "pai_cert": "308201c53082016ba00302010202087a29a4e6ad8c2979300a06082a8648ce3d04030230393137303506035504030c2e496e76616c696420284e6f74205265676973746572656420696e207468652044434c29204d617474657220504141301e170d3231303632383134323334335a170d3232303632383134323334325a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000447262db2383a51c1064c0f19ff281526a8a2d31186f26e4e99435d00ed2d839184dbfa933bb69f5d2efec15558d35306d9245e926f59a69fe3018bb7ca63928fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041460299f6439897e6f486e5f7237cd98a297ad48e1301f0603551d23041830168014135ad5c6f7b95c524f346cbf2e9c124d9fbd4e2d300a06082a8648ce3d0403020348003045022100f9a560954e98b0b3ff621166727664d689a41d3b4cd107c3e87a9145b3384a8a0220586b4ad7f4c2c7c333e9cdfe3d37065d238cb7498e7629e20964e501f4a7beea", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402202f6fdf1d3e5587c6e6f4d6f2015b1a2b69a22768efe10bfbbdcc7f7c53e81db202206f4bcc3fead88b2aebb9a1ece815b5f20fee350d96127e77150d9a7b024d073f", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json index df138046c675f3..14056dd7e27db5 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The authorized_paa_list contains one valid PAA which is authorized to sign the PAI.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa003020102020866dfbc08976c91be300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000418f3f19bd1c766d85fc6f3f86773b1b3a245c4928fb24b3430294c7d3f43c26866b5aeeac77dbc8ac007195ac0ffa67412e63574a370ec024abeca5f30aa49faa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c154ccb722ff1bc9ed9f91aa597eb1e97039eb1c301f0603551d230418301680140c0527c403c6de10a5fde5c521bbbed4f0f88732300a06082a8648ce3d0403020349003046022100a5598c46a8b9991d5c488030eb6d8e6bbc6959774bac0838064d287cc1cbe485022100bbc7ba9ef547985f4956f8a65bacba7e6ebd6317ead65ef59784894e44d809c0", "pai_cert": "308201d53082017aa00302010202085cbff391288347ef300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b360814283520ecb9fb9c405780a2930bc7b833ae4106ab1259fc6d177c54edf5d4725c30e400f542ca865f7f2d74b315e0ff7b438040f75fe1128142c6bc3daa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140c0527c403c6de10a5fde5c521bbbed4f0f88732301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100aba3cf5b385fa705ff1e2b49a067d6140c591797fadfd8815e52918a77b09c430221009434b1902c4306c1300224152cf04f56d353bc6d7953005a5edf9afef94164f7", "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304806092a864886f70d010701a03b0439152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b1818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203e95e0d9d4324d9fdbb38d6880285888828427759c03b8763bda4e43953fd290022100e030484f70e8f937175c28d1ce575bd612251a4b1d83a0365a2374c613933487", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json index f88b7b80090cb7..422334bdca5ded 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The authorized_paa_list contains ten PAAs none of which is a valid PAA authorized to sign the PAI.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa0030201020208619d97b52a9bd8b5300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000444ee63eae77e514b74f16a0ffc056f5cc7e15b50be36fa820f53c8f9db55f3abf63a2d9e801294ba8856aa3b8a890331068c7e91290069951fc8b7878f689acfa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041483d1ac698457e8200c643f7dac654164e6b0c676301f0603551d230418301680144a5d2c6304ac0c2e83759550647d8d2f45cb2b14300a06082a8648ce3d040302034800304502202484b475e7db3bc35b156fb4d4987fca8522f4ae2ac4029ba2a07441d9e22073022100b68d656f8b07db08086f29d1a26a53b3446767f797bb8b1abef5ef18842ee907", "pai_cert": "308201d43082017aa0030201020208079e93d07530dbf4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047a70f9af70bb9bf2b302ecbd0ef86193ebfed1136bb62a9b115792a2b7f9ab0a920ffa8e7ff5f88a4dfbf211c5a0cf08d7265bc3513aabdf22420cdf4918f05ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144a5d2c6304ac0c2e83759550647d8d2f45cb2b14301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100acfd6e9ab1c356e6539f5208e6146627be56f80ced4fb39217e28fb7c23d0f5c0220214b75d6180d62c8d4afd7d32be976b20fcc40c1b362976b5ba65db13a1d9623", "certification_declaration": "308201d006092a864886f70d010702a08201c1308201bd020103310d300b06096086480165030402013082012806092a864886f70d010701a082011904820115152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe662010140bbbcabbc5016577aa8b44ffb90fcca140fe662010140bbb35bbc5016577aa8b44ffb90fcca140fe662010140bbb3544c5016577aa8b44ffb90fcca140fe662010140bbb35443a016577aa8b44ffb90fcca140fe662010140bbb35443afe6577aa8b44ffb90fcca140fe662010140bbb35443afe9a77aa8b44ffb90fcca140fe662010140bbb35443afe9a88aa8b44ffb90fcca140fe662010140bbb35443afe9a88558b44ffb90fcca140fe662010140bbb35443afe9a88557444ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203d4581e769a71482498f4fe9df315e486ed838951af4aad8fa94dd8ef5bf3c63022100f24ac406238eb617e7a9c18b16938bfd4540a7aa106486d37468fc3b411855e3", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json index 679398c44cbc1e..62e64dec078a64 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The authorized_paa_list contains ten PAAs one of which is valid PAA authorized to sign the PAI.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa0030201020208164c0e740ca45824300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000463aff759bddaee30f45b5b4a486d4f9fb32de4c698720054d3e95333a6d71dfb19e40a04f5c5eb4a535090e102df06e2ae8e02066bc086829f289cc9f3b7915aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414569bc3bd997dc682c1c714157c139710a38776ea301f0603551d2304183016801407a710a0ff13d00df63a9e5c8325174c5f08c8d0300a06082a8648ce3d040302034800304502203a3e6465f2cb66b3a61e2b4a44cf4a4084f4abc76a97471e3ffb444ccf1f3246022100f1e5cb7f071aa52231a4bdaee309ea3372b98875910ea14aedf76ad3f6721bc9", "pai_cert": "308201d33082017aa00302010202084feaec9a37c9398e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004142c31ebc29a3d6bb04a18ef2cc6e7648634fdbf9d3bb2c91a53799b9f458456db64372997fe1727ee95e95a2382c0b4066e2df9dbef78829d2b5b6d8e7a2a16a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041407a710a0ff13d00df63a9e5c8325174c5f08c8d0301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207e75cabe27de00bb184983ca5443416e7976c1de5f8b8a82df70444373d42cb5022077a43af72e320fc74dc1d76a859d10c700b2ffe5a49ec2d23753f27bd7f19b34", "certification_declaration": "308201d006092a864886f70d010702a08201c1308201bd020103310d300b06096086480165030402013082012806092a864886f70d010701a082011904820115152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1014f4bbcabbc5016577aa8b44ffb90fcca140fe66201014f4bb35bbc5016577aa8b44ffb90fcca140fe66201014f4bb3544c5016577aa8b44ffb90fcca140fe66201014f4bb35443a016577aa8b44ffb90fcca140fe66201014f4bb35443afe6577aa8b44ffb90fcca140fe66201014f4bb35443afe9a77aa8b44ffb90fcca140fe66201014f4bb35443afe9a88aa8b44ffb90fcca140fe66201014f4bb35443afe9a88558b44ffb90fcca140fe66201014f4bb35443afe9a88557444ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201b10656798c6360de20e30e2ebd93fa776f78eb347bc178b92064470080cd972022100e6c798a2c4dd0486b927c99d40c9a01994fd8f5000037c26e5f2bf5f3492192e", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json index 87dca92b8aaf4f..ad6fa8d2751c68 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The authorized_paa_list contains one valid PAA which is authorized to sign the PAI.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202080e5146c5fe47ba0a300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004447eff6c579f3ebb8014886ecd2031ed2b22476986c35d5db3f1516f8335aa785e9e5d5b8b1ba5f0aee3cf3dcd9f84f5431f6bae2a15a207b4a81fb0540a50d0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c54475ec42f837b7b11d186236c6329607c5c23f301f0603551d230418301680140a620b8d9e1b8da6cb6f22b275a464e4b41938b1300a06082a8648ce3d0403020349003046022100dec569252bcde62ff937f3eb5c312c437cc1cad7736b145cc5c55f7e4beb2c0e022100d79dba6ed3b1c3956f6f759f20f1472415d095bef53ab65cba0b3c743d1709a1", "pai_cert": "308201d53082017aa00302010202082a474a51bba41ea1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000420fd963ee5c8a978c5b8f2bde7262279bf5517234f93e6dded3c23baf4e53cfb886ad83a82a0791bad434d0d72563815bab9a0a48fbf15489770ce77adabba31a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140a620b8d9e1b8da6cb6f22b275a464e4b41938b1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a859075ac87461eeaade52383d8d404f7f2ed41d0bf3535f22a670c7bf393b73022100e8be368b400f6ac406e03c3a85f93139e06532b23e8547b67ae35099ef40fb48", "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100bac36c9f830bcbd49e07dd670d042df0eaa4ae1cf5308d39434fb0e7851402e902210087e279dc232a5eb68c74f19aec946ad988edfc35ac4a420cce36a1ec49c76d50", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json index 6572e21fc6a121..8d87d9342222e9 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The authorized_paa_list contains two PAAs one of which is valid PAA authorized to sign the PAI.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa00302010202082f03484bec0943da300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042c87804f5ccad479b3aa938377a54abdf689c73095f838cbf43da9dea9222e9dbcc335ad71c5175661c21604ab987c5903a5dbd8b0c4ca25104e5976d36c93a2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b5a9d50d21f956fe36544446e157e356263a3d80301f0603551d230418301680145bec2478a2da401835a0815cb4656ac4b92b0ae7300a06082a8648ce3d040302034700304402201734e114e6f6ae2c7c90b3ac5f74fb297a364fd871bf1ff4d3e78088a779c4f102204999daf1f02a331355a05bb4d79a6292726b90fa448ede1b0d052ca3e0af1dce", "pai_cert": "308201d43082017aa00302010202084663472106a76044300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b86e0da6af949217ff8df3257336ea0621ca53cc52e44a227041e32dd57a13b9ee68f33e30c13186d1232f0f44f0b004b6fd2d953165e843608a5c5750f2dee3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145bec2478a2da401835a0815cb4656ac4b92b0ae7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502201c3245a0ea743d922bbd3fb0496a4a1876941fbbddbed0d3f1a0b610655a9b3c0221008641b5be85663739e8356fafcc2057475c27cec37426e2e70417f69ffe673b74", "certification_declaration": "3082011b06092a864886f70d010702a082010c30820108020103310d300b0609608648016503040201307406092a864886f70d010701a0670465152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1014f4bbcabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b47d3b1973b72fd8be80ded8c656a3adbb98928c0d4d8f9a0bcd864a68a49d66022100de3806359f877fb51ab36e3620f873bfa07da372bc71c9d1f1407a84da6996d2", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json index 633ca150855dec..3a5a370d22c2ed 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The authorized_paa_list contains three PAAs none of which is a valid PAA authorized to sign the PAI.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202085dcb3bdbfd318499300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fa5e5d04fdf0bd8426495e3be7da6c9a83b9508a71f414fd41451bdcdde86930a85f64edd0a4ec66ecd9ea50bb2e1f5acd9f03b1b8f2c42e710886b38f432d18a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e378ed232ba0dca7ce541f8491bf217ca1d6742d301f0603551d23041830168014057dc0978692d229cb6ce732dbf8356ffcfd3efe300a06082a8648ce3d0403020349003046022100ffd65e1b7c352ad3b5db13770c5529b8b7a6693642801f07b92b49d95700ac76022100c21bf59617b444315dfbd34b35bb8eb6cfbcbb7de268210d4bf69c156097c108", "pai_cert": "308201d43082017aa003020102020812ede62cc86d392c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004161820bdda95f711e0fedd3a8d060f273c36f9a03ff7b105ff96fa7e7df0b2f951f8022f869570fce219c8f3e466881bad898b6265a8f8a2c6c5bff306761b71a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414057dc0978692d229cb6ce732dbf8356ffcfd3efe301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100acb6985b132d11929f78b38868be8b7b90ac73fd27b651930686b442d4c91a6a02201cc4b54f753703bcfe36eb4f298cb188b4a8814b44fa872d0584ccfb4649b389", "certification_declaration": "3082013106092a864886f70d010702a08201223082011e020103310d300b060960864801650304020130818a06092a864886f70d010701a07d047b152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe662010140bbbcabbc5016577aa8b44ffb90fcca140fe662010140bbb35bbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009358856426dce2550347c9c5f52c0c028193de36adeaa73afc14708e01805be302206c29d9e9926df3f0dca2e794d6a1fc5de880e94626b7be1edfcae8996af22479", diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json index 1ac95989ce5e59..ea30a8c98546ff 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The optional authorized_paa_list field is not present.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202086b9269307ec22f16300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004624dc0f62274149af021e4ad07a45635aeed76ff456d837473151de65ed2178962968f8e944a496f86b3300064ae32d4083a5fc8d32536fe83639b3c884aeebaa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141b3044abe088ea3aa56db5b2d66c5a057e8fb522301f0603551d23041830168014f0ed3106a93b842028dab233a73b796931529304300a06082a8648ce3d0403020349003046022100b4856c9f0ecde3572e807a7ffca098cfd21e808939e43880d7a7f3eda28987d9022100d865e23b12e835b38619e2fcab91edc46f5d6ff7b8a7cff98fae4ccf066a9cee", "pai_cert": "308201d43082017aa0030201020208473df880371ed255300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047c8294caa384716c2235fa8e6203aee8267cd97ab723234a66dddcef9adcfef9a341b00fb921f866c912381c2a19fe241d6f065e3bf3a5ad0ae179d106017d85a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f0ed3106a93b842028dab233a73b796931529304301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a0e8962a88901e2aac1ba5bb04d87a9947ea7683ec3339e39469f88ba1c835f702201c929aee77e48c5ace4a7610bf526532f8eab67ad1927d19e96ae7ea0e3e0541", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220763d8156ca34e8b88c06570e73192f4a424eb7db57cddae2fcc88b3921b57364022100ceb7da4b891c5044ac391fa251f093a6488164ffa745397005ba36a935121457", diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json index a9942fc7b01fc6..294e14f61dbda6 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The certificate_id field has wrong length.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202083619fcce7a54254f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a48090410a0ee48ac198ceede10cd2c2e2c0ee0ab2bbad2810830ed9671dac611b0827af584a3474eba8b01f9b70dd3ba6ebd46f6c579a27b0c2b098f847232ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ca2506782dded38684c13090e61b932da62255cd301f0603551d230418301680141d45428a2e2c60ebae19604f9be6cc9154a30460300a06082a8648ce3d0403020349003046022100a0bfeb462544dc65359cc1c774004ab7057566e73738eba9ac1b858292560cc3022100b77bf8015dcafe539df52072037cd121e3bd51d368c246e552a34b232146cf3f", "pai_cert": "308201d33082017aa0030201020208495a434bcef0386e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000481628862f3c9e7492c3b6c805f02f1f0dfd0097c794ace554dd195003dbee1a47e5e3f1ab560dfe9cb5e5323c84d73e275e329b36cc3944aabc354e77afcfea2a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141d45428a2e2c60ebae19604f9be6cc9154a30460301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022073278ff5a49cb8ade2d11b810666f15a61f3eda4670463a932284fe07f18bccb0220241cfbd676c9dc57521e5c6736c195e73ecea61adac39ac5f6cbaba4bc947483", "certification_declaration": "3081ed06092a864886f70d010702a081df3081dc020103310d300b0609608648016503040201304906092a864886f70d010701a03c043a152400012501f1ff360205008018250334122c04175a494732303134315a423333303030312d3234313233342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ea14f344941e870353931995ed58dc2d168033d62ad0959373e2da6df7b3101d0220040391e1aa30f7212ddffc046faa4bdccfa7eb85de1d9bb497946ace6f68ea6d", diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json index bd6dad51a51a48..9a931d0a211b48 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The certificate_id field doesn't contain a globally unique serial number allocated by the CSA for this CD.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202082ae17382e13a7119300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000464f5306b94ffdf12d7a7637a227130e34e17e60b956e728a28e65540b40e3cda41cc1105a1ef31fd102a3b5ba92446f79667cb65b72749bed53f9642d22a72b4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bb0ad484b4ab92e415e93d8d09e74105d45bbcf9301f0603551d230418301680149ec378a76a02aee9e859d43c3faa9af0cbf39f0c300a06082a8648ce3d04030203480030450220412ad16a485425c8868f4c19653c9306edfe2c039bc76f2144ae3ac97229c7ad022100bfcee30b78cd7ac4feb628f99bcb3c52bdd16035b34bd42dbd904e5e1ccf0b81", "pai_cert": "308201d33082017aa003020102020874ff7f5a21618e7f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f1cd573340d3df3967e4dd1c378c64b2cf0b8537deb67049b0b94a8b1d30f84e701b3dad5d9184e2e86904976bcbeda94996ac34e7b24051f41bba397ba75f0aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149ec378a76a02aee9e859d43c3faa9af0cbf39f0c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022041d3f40b2c1e22f41bfd5d6e6d3261eac42a6072baaf6618310ec33b105b759602206c45a3b31692243fdc1b6ad11bfac7834cc388535af914fa27c0341494cd7f2b", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c0413494e5632303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203e409fc0be4e30cbe2c02a022519e2ee602a986df2f35c03e0b1ef0e076b3f62022069f6216057ae3319b80c4d56f5b6bd550f3506ac1252fbac7554542ecb1a2fd6", diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json index cd13f02d943510..d745da16632fb9 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The certificate_id field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa00302010202087ea6b3e63ae97177300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042972e5bef8a607c74269b7588bf898eedde3bccdc3992691a70e44a6269dcaaac04a52e82b81266c84738358942186b42e234848150fac84e8eeab3cf818163da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142853b2227f79ab542a266240daf3fda19d893371301f0603551d23041830168014ab730a7e9b73e7e65abf187b6e429d8a086946f1300a06082a8648ce3d0403020347003044022076978c4d1ae2636b8d936162adad9a596f00be855506afac5564abc0363aa1e102206ac28f4964c168d50010a926cea6a200afe03940a7d98e1a70c6c55c1fb8c0d4", "pai_cert": "308201d43082017aa003020102020862de19dd9e730905300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c5db54bb35840be7935426f46facbfb7472be15c30f1a2be6c9c31b51f8f815354b94a356a99e8e256e21db622365086b345804ae91e34b5c0cd97f0f1c9938ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ab730a7e9b73e7e65abf187b6e429d8a086946f1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ab728f28fee7b972fb9b0a5101c8fb2b41e2efab825f91df548a0b891785f40d022039427ccee45e76b7ac2dfc35f7e1ba042605095586947aa10fd2316667290389", "certification_declaration": "3081d206092a864886f70d010702a081c43081c1020103310d300b0609608648016503040201302f06092a864886f70d010701a0220420152400012501f1ff360205008018250334122405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022056ff620b0fd9551f2f66c49370768b42a4784cb291b95a7890e8ff8f8633977202200ebe80082d30d6e1e9c83b7e370a0f1f8fe5974d26e3cf9aa392e96b139973aa", diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json index 4f2a4fb4e91575..7a0ca0c3dfd3ad 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The certification_type field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202080834f51f89b212c6300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041ea075a3f408cc172ba4aa7c4d1ea97aa3edc5835c90a8c5375d0f0f449587a9bf21bd56f563260cb5549d546a2b0c394f650f8730b7f3ae69cd0877ad235dcea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414798660df8cec17e8ae767e680d831533c8081eb6301f0603551d230418301680146cde5ddb9319d4e60c20e8d2c66f1a0f62e1d014300a06082a8648ce3d040302034800304502200be4a2179b5ee5d1977a20cf1cb354df2045675b768032ff7a3e4ee0679d3664022100f654bb5dba82f43b27d791fc1ef228e1fec0b82c352f8321f01135e5435ce958", "pai_cert": "308201d43082017aa003020102020840f0908c93495565300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048c5edea82008e14fd7d8d9af5cec08d653d990120b3814fb836fe3db262fd1b5daea3a273a799b7dca990ca9e35383a751405221b0d7a5e62954881262577c52a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146cde5ddb9319d4e60c20e8d2c66f1a0f62e1d014301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220324de9de382052b2aa2aae5e96b32ac90c01022fe642b3fa17be32efe44d15fd0221009e41b8ba2dc2471012c804b63acc80718c77afdcd2a0b70d5830564eb66e739d", "certification_declaration": "3081e606092a864886f70d010702a081d83081d5020103310d300b0609608648016503040201304206092a864886f70d010701a0350433152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022036136361524f160beacdd64b6eee06d1032448bd1ee371bf65afd46bc3ab1d3c022100d22617af7d9eff14c59a416577e1418e6f3ece0260207af0fe9e1c853ab82576", diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json index 3d26c2b7eabeaa..fc9af3524486b3 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The certification_type field is set to invalid value.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202080949f08e6e414d05300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000403d434b1f209dae90b4326eea4bf966e6d07fb13550292852f79850ea904ad86d29f9700529e380320f398de5b49defd888b1c1afb431ce98dc843ac115fbcc0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414edf7a1d367a5ce829e4868adece1260ef0244d9c301f0603551d230418301680140697d80ad514db1aa6f39ed4656411ec857d7d8d300a06082a8648ce3d0403020348003045022100bca4338871ede720a51769ab758cece080330d88597907a2a020647f776f6912022016a5c97d4941ccfda32abfa2a055f658f42a644952b123d450568ff6b9d08da6", "pai_cert": "308201d33082017aa00302010202084347b700bedeec12300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ef003fb502869af99800bb86f629446c2135c576b0b479a7f0e7370ebde491faef37eb6a3dc96f772add28df97e6b9042a331b223f8ec30d53e270eb9846a48fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140697d80ad514db1aa6f39ed4656411ec857d7d8d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402200d3d073dd237778549c97f6fac3d459c52ed829d9f1fa53fe8dc4d5b3c09459f02207354b134ea4f5bd58b9610213eaee0f0120178eb19f4a203812b74c8b3176d65", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408ff18317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221008a550a3a379571c8f81f5b17e786e4bfdfbcba3c7075e01b5dd25c7b644422000220551e26c99143a3850628d4f1206bb5895d9b82b25330bb84cdcd6197e5cc9be4", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json index 74100bfacfc7ed..dee527ed1287da 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid CMS digest algorithm SHA1.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa003020102020818d5679a80c485be300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043f504a85258308105d789fad8b9686b3c1f8e94c253109625bb1de84587de360dd12ab2fa97c913db03e8f37197e8ce2395f3e9b030ad8ab1ddee1a4d6287142a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a5f57dea9d8dce16995a071a98485ce8cd5a29a3301f0603551d2304183016801486797969584455dd4955e8de31dd2e3bf0b8786d300a06082a8648ce3d0403020347003044022057787dc1a1ae060af9e2db9b4472c9e3a80b3fc659a18175d8aa4aafd4bf25c10220045ec44d104531961904bcccf2967b437708fbd8f66c1b1579a18d25e9785b4d", "pai_cert": "308201d33082017aa003020102020828b15ead56d26dcd300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042ebac935e9ea61e7f83e2a89d55aed38e57afbe5b6448d1cb4144c9cc5e65b10f55f6d2b981ebe9fe7e89445faec11f4994398edd61c30e8fff659ab1a556ba9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041486797969584455dd4955e8de31dd2e3bf0b8786d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203ae85c041ce766ce393d942d1cce8c4127cec8e61ee0742747b07a4ecbe7163e02206e2b81a014e84d818db39ff79e8701f7b1fce24b6158c20df9e5dd97b912920a", "certification_declaration": "3081e606092a864886f70d010702a081d83081d50201033109300706052b0e03021a304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ca28ee68583948a3197e804cdd8db6cde1298938b157af05d52436ca87e8f1bd022100c3a8e7b678ab18cba8d0d861ec9900b09d881f306b379f4acf76ef5b47555d74", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json index 2ff179954db243..4a96187d322c1d 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Valid CMS digest algorithm SHA256.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa003020102020823dd9a7ed09f8bca300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040a520fd80573f5a8e69d46b5a8cc5874e10e157483c5fd4cca2a12f257423f38e4feadff92a346b8bd0354efe37b06013824349157102a8de8f4d22f07cf3544a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414250fe8cf813e21ea28829809fd34e001c392f1f2301f0603551d230418301680147ed74a75dbf1b443c03c9043a2723cb8ad8b7b32300a06082a8648ce3d0403020347003044022043c151192dba83944e615b22848091bd9ca4bc92988512d2609998fe0d7d33e502204e853e7bc3780e452db55974d49798f4cb8639913c6562c973abf3c03f73f873", "pai_cert": "308201d43082017aa003020102020806e8d71f2f54cee2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040396591399bd5e0a035caca49b67c4c41516cf6b16128710bdb199f5aafb73d1c47b3baeb8171e2eafb2bc7386428f850ad8f86852b6d5b93a78494f47100f5ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147ed74a75dbf1b443c03c9043a2723cb8ad8b7b32301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100f581bf20a9a51e35d66612740b6a92ce8e47ed1a30a0053b3616048a2550f237022051bb511dd78fe973513c42210611e9d98168a65b2067b0d58333c4c54df42ae8", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221008433a32e83d025d8463a54b34e6d99f96bc2bfda0c8c2c24d8b2d6f365995d5f0220116b9124447deefee2e09457b871be791e2bbbd1eb5f7abf75916e379bf71418", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json index 4c0dc45cf7f2e6..99fbbe1d1aafa5 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid CMS eContentType is set to Microsoft Authenticode [MSAC] OID = { 1.3.6.1.4.1.311.2.1.4 }.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa0030201020208488516846e71dd57300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004aa2757988c72225ef0fc4b6f8ebb93a10efc1a9ab5b846f0f1e39a7fff0b4b09e4789ffd42713faf5d33c26bb785118b470573969681b5dc24bdc325318ca23ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148f363885e2769db706eb333283e16bf32a7e0f25301f0603551d2304183016801473f3119b54e7a2aacf469813b2a5c9308ceb5213300a06082a8648ce3d0403020349003046022100de1bbb4ceec70e791c2576c6690814e3523cf8656a140ff8a0843b2546fadc95022100819e50615e8e5b086794b4b5f879a55056e14fd25361c38c2dbf8e7b945707bc", "pai_cert": "308201d43082017aa00302010202087a315f5afa0c9264300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004334df1df5da93e2d7550d456c380e51457d28705dd1a07b67ddae3e8d9ffe2ab334ab4bf25f93422f3a61fe588fd6e285886224b06d6600230724de11e5c36f0a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041473f3119b54e7a2aacf469813b2a5c9308ceb5213301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210090e20b2458c96f3a75b43382f516b23dcd51c865a48d2722a27c9c4ee5f6197b0220439546386978c1586351f18f114924d74b000258b40470f96d4ac199d65abc05", "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b06096086480165030402013048060c060a2b060104018237020104a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022024af5a9a1b5a67ad88ca2f457651c20a77d610d246727b14fb120e81ec044fc3022100867566c3b058593b135a2cb076c28bbf59bfe711caa2c38462abf0ebf1091d0a", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json index 2980c02f17585e..13f64bec93a4b0 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Valid CMS eContentType pkcs7-data.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa00302010202083e4c735a19aee98d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041490bef16049b1efc6a4fcc93497a0954c4e5adc291678919ab22848052462e2f1d811dfb90b9cd2b6eb2069a2b0af801678f14ea001accac3832823273ed422a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f337a308dbd8bc2eaedadac926102341e8e45414301f0603551d230418301680148aa728da3e1784ab9c2f9222f12ff9d290391e9c300a06082a8648ce3d040302034700304402201f166f6c46ec16173b8fd9e55150c8447dee1f263b4de947f5576a5597444f6b02202eeae9d033308b9a289d4d256ea260a2fed5b169beafd18e68e2d59f3702726b", "pai_cert": "308201d53082017aa00302010202083b1196f67de3cab3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042a8975640240b47be77d90d681b5b99287d8501698628ba0d0947f0b646105ee89b0420ee73db8cbdb112cfc7ef2d79b66b7e691997c6bf7328c2b9c6b8110daa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148aa728da3e1784ab9c2f9222f12ff9d290391e9c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100bed6ee124a57397d0367af396f5433cef76191a6b8cfbc0e62687bb8f5a4a5ed022100e8140314b376852700b05eae972f376a7d38cbbe5cebc23b337c2d204bc5730c", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100adf29a65c3a84a1a19e2968b997ca529fe579de5c8250a2bbd091c201dad44c80220797e85e16cb511d67a52b185a742257f9a81e7fde48fe6555adc85a2d467d649", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json index a137093200a2d1..e46975d8039d2a 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid CMS signature algorithm ECDSA_WITH_SHA1.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202086e0e9efbf1d9619b300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ec8c006c94cc032fc31de7ec8a7f0dd369175eb498cb1431745fc735ec3400912e0007512f73c0a72702b6373306e5c77dbb51b0fba27cb6e64f4d1c63ff53cfa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e455aca399560ce0fe06340a873a8ddfeaa58293301f0603551d230418301680145fb6d29163ae281d11fc7d89d8aff9da82da0e3a300a06082a8648ce3d0403020349003046022100e55f49bcbeb91907fdb1fce4192609bb42ad53ca4ac2df72ca550b7a380175b90221009461916880110ebdcc76722c978e5cc6f5ffa0b323a64e92d77d6b24e1c0848d", "pai_cert": "308201d33082017aa00302010202082970bad74acfd368300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ce94c57d7d3497df1be2950842552cc9dddf988a32a9b5310c1e10ad3e366d29ec904f5a9511024ad9e3e539421ce9220017998a7d43d0c06738e6459be57edda366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145fb6d29163ae281d11fc7d89d8aff9da82da0e3a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022075023bb0ea584b1a3429e3e15d00ca893c8767a06d4c76711f49a3ab1826d5860220769ffe8ab8bc468f1922423ae8a8280cf2d9d8cfaa8258db7ee69adaa33a1439", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300906072a8648ce3d04010447304502204cc9271c804ece5ea89f06e0c63843c795506a4c3a1d28f4a46d47c29c7db63b022100f461d4e5f10fea7f3f1ec0e74914c652a84cca9405391f77df497cb872bda61e", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json index 4a998f32779145..97c5400d0ad111 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Valid CMS signature algorithm ECDSA_WITH_SHA256.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020832f4324184fe4e26300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040b3f9dbd1212fac0046edae04939d851270e165277fd8cb122b337399f661992fc0ee93b530af6f83f1ed6257316f867ef78691d14b2ae5aec98551ae7586a05a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041406eefce739159031955de59c8885f5ab8a17ba10301f0603551d230418301680145d4290b1c895bdb7706aeb0d1391d2115c5c6a21300a06082a8648ce3d0403020348003045022100ac3bb9c66d2ebd94b7afb9d1fc249c6371f4d8e22bb03636ff69acad5cb03d8d02205ce991efe36844eac83e9205ca1edd35ceaf4342b0547f96bd1863be3f692600", "pai_cert": "308201d33082017aa00302010202081aa79db7a1e4ed1d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004690252fd790882bd9ceb5c85ab843ac5c5b431600f6eda945b42d84d5d1f364e35ef60479a1a6d8244abd0bdc5448ef55cb591c1028e276ac7f045b178bea061a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145d4290b1c895bdb7706aeb0d1391d2115c5c6a21301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022022745fb78130a7923813eb860c7192770d82edc1c2cfe5317c2afe314176358a02200582f0d8c79c986ec179ec71269ac7e72fe100fc5b26c939b05abb19e13c994d", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220706cf8d088172ff3b477993f8e8c52a1ca8e55f9dc23d3945d8e1e8a4175d90002206f000bd775a4f8018cf0ed95eb2602f962c98d033addf86e84f350abcdf58e36", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json index b34880a9f677d5..51d064472a34c8 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid CMS Signature.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202080d61e11583ee4e71300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d05f76a3b237cc3738ae7f7a03c3d93fac6dd5077c1ee18e124ce4d622914c5858b3ec97d1cce1ab1207b87fa81470f9ea2e709f66f42069dc4f483403716a20a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ad24fabacde3200591249cc2202f301418f5f4ff301f0603551d230418301680143185d867b334051a85f7b446aea68468c9678bc1300a06082a8648ce3d0403020348003045022100e79aa67f04087d96780f68ecd48745ed742b57b6cc58989988a3b18860c74eb702200d7a265d71ea0f79ecdb906678789742fa1bf9d6d3d99e8d53b62bf8d9f7b349", "pai_cert": "308201d53082017aa00302010202085df1c32d21c0d0e2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040cc77a443329420741dc26ee955a8361dfd2174a7e81e7ed376ff3c9489110fd8f8ab84cbbdc21ef34b067370ac94dadf01cd286dabb6681ea9602bdc54d53f6a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143185d867b334051a85f7b446aea68468c9678bc1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100f05b93f95b181aca7d3cd55a73f5f4a561fe52f408c501df842eb9a6089ccb22022100bb8ea5464394284303d74415dac45fd4e81471d25635ad3d4e0a9dfda7ff2545", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100bb2e93d0f26c24ace0c0cef10a0d81c0d84dcaa07d64589d62fb23147c24027a0220485ee2ba0a3e49fd2050e5d70c522e3dcb6484e03ca0439c2038d0d5d8f409a1", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json index 61d4d5141df782..1de6a7c7644b49 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid CMS version set to v2.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202083adc3cb144189aa8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e9e999a358e56209c22b38c510fb3fef64a497eae473143c566946169ca031a5e3be48abc8abd09845a39336d98ab2ca14ef2bf74bad0acd37cac490deb2624da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a5888b8340c1f7b7caeb8aa42f99b71606240dc7301f0603551d2304183016801449c9631211c3f8f30ca4b484bec2ab1114b619cd300a06082a8648ce3d0403020349003046022100b2bd8a12820bfaf7f9b6b57bf5b2725184ac2dc177ac6d716b608cf20f4c47b3022100b1315fa56a6929aa4126ebdad80658dd59c12474e3051a5ad18ee895dea79f79", "pai_cert": "308201d33082017aa00302010202084d61098263fd16fa300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048db02838ff21f937c1917a3e4b18be675cbdbb64a694a729893b8f74552888e8dfe48e0dc6c401e684cb8a39e648ff275d628c9dfe4ea64aabbb1ad648b14b7ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041449c9631211c3f8f30ca4b484bec2ab1114b619cd301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022047681ee29a1b27fa850c12f913ca606b4646770a2704385ab4fd79972cef306902203ced713480174eb0b870f388b980c6488cbcec993ba15dfc1ac1d47345b4c60d", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020102310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100eba961f6ebc6b94ff21c5b0e7b3c38c43e0b962bc2254478e707d5a19fee41d5022100b5891ea566ec4ff322c88ae42901537cbebd68cf8b9684d3be01dfc714f12aa6", diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json index 42a211632e8c8e..a4cc0fbbf587a4 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Valid CMS version set to v3.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa0030201020208609bf5957fed7d54300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004789dc05f84a38964024d1ede7a496f3233c7da6ad99b89626ca2d110678a6fc6759b0a9aa9ce4ce2963ae4541245d627c21e89b85445b9b736fafe558e234138a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ee4fb899cf58fcd00af70a5c894a3558c8913cba301f0603551d2304183016801481d80ecba12618d14bb27b6e1191068e1e9e165d300a06082a8648ce3d040302034700304402203d63196c07f428a2b86256eb778e22f750d86b5e66b672773484d49b703b4f1402206a47c70f1baeffe75d0f95ca3351bd34eca500b1013624bb322ec3c0224f41d3", "pai_cert": "308201d43082017aa00302010202083cf1c49eee2daf5c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b1c5febdd9c1f5a8909501bef8824948eede5c80704ee9c6846d367f506a8032f1c72f2ed2fe061c4065d8e2aeae44e4107d8544a8146d160ba3cbec636dd013a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041481d80ecba12618d14bb27b6e1191068e1e9e165d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022007e894383dad716eddec9da562610557178a288d2fb29155fec6543e3c0ad259022100d67324e8b92055dd07fb993f0029501a4e91eb35d5ba197aedaa297c114af358", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210099df8a735ec4a09649c1221afe848abf3880d6ee5f398d9fd9f6f59da1250d2c022100b229ca249649a3faa81a1cd7b011e80437a65abf34e2c314820df31245bbe437", diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json index 7ffc0e7136ace1..1340e0acc11120 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json @@ -1,6 +1,7 @@ { - "description": "CD Test Vector: The dac_origin_vendor_id fild is not present and dac_origin_product_id is present.", + "description": "CD Test Vector: The dac_origin_vendor_id field is not present and dac_origin_product_id is present.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202086fca8305379a51c8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048f9e81c533da04fa65f648b68a51e30e79cd25213fe0e12408de2c16143a9963b185be23b14984eaa85071801fc7f4c73d79c7c5764c6466d54bedf0d839c2b5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149a9da1de5035530cf84ae9828cce06883dd4c8c6301f0603551d2304183016801461cd58c802384c8d2b02da483df4bfdcbd7251fe300a06082a8648ce3d0403020348003045022100bd1cbf19f6c4f8755e6b4a35e589605f703cc33a620a68d4eab6803c6d46ac4c02207211efe3355790fadf84523ad67425364fb9a3fe4b9d8ca01682398e761ee006", "pai_cert": "308201d33082017aa00302010202080f9cc819a7183e74300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046c49c8545aff616e73361aaafd3ec06e34bae81ab13dc0b74431a1bda4621f4dd9a5d4f67b4fac5b5463e9f026f4172bf2385719dd002e547bd2f1f834a8ba4ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041461cd58c802384c8d2b02da483df4bfdcbd7251fe301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207fc77f59a6ca922c02b3231158cec6d44b26444116646bfbc075d09db010f7440220435f925a125174f1d8fb58c3f44186246722796356eff2afbe362b65f49801c3", "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304906092a864886f70d010701a03c043a152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800250a008018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402200d624e7be3c6724f1d4daa489b95110f06c9444f562a8d9798bed064ff562eca022052f07ef535ab980a5def109859c48f82b8a7390d0841d3bce756e57d2b664900", diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json index 00671b42ba8781..80e1a41779744f 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields are not present.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202084d50d23a1fbf1a0e300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fad5843ac6a0e6ce7595253614ca0ccfa754bff4709edf68ff81d0f3dae0d8574acafd70e41868b758ee7d00c410c4bf956ba58cbe832be98f936b1d9c2fa8e8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148fabb63e5851a5f212ce5acaed8c448e554d1481301f0603551d2304183016801473649040c70af4afbbb1bbded28377bb14a26167300a06082a8648ce3d04030203480030450221008533a38b2a3817d9511a3f9253e9f22a05d686e84a01d89fef2d4c315e2117d602207ff7732db1dc82541234789e7a82f68317440f13b9ef4510a48381fbe0c7eb00", "pai_cert": "308201d43082017aa003020102020826616921371e9c9d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000492e9e5797a852148103f60da01fdd12ab63602c297e8fe566356d7d89e573f76216ceafe379a5d6b3ea168d0ebf23537272e1a58d19021c216dd13dcbc285e6ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041473649040c70af4afbbb1bbded28377bb14a26167301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220326b9d41deff0d269e5ed4de61e7b19f4d24f7f68321415198d83164bcd20277022100e1b6ced478e5bc348d9dc2b721fa1be022e5658fff03361585ac30a471e4b913", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203917850d875473d4ceea249b1a69f3298db296c912b193dca184a9e98f111e4e022100bca116dedfcc576533d1a2912ecd005bc6fd3fecfdd850c5db2da30100ab4ea2", diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json index 5fe58f4d0cbfbc..f7b468832ccc10 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and contain the VID and PID values that match the VID and PID found in the DAC Subject DN.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202082c5f9571dca5b861300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043cd9d908a0fdeb76fa40708621cb62c4ca32be47cf69c225071ee52cc900b0f611643cee47e2bdadddd145f25ba6b12054131e568f58f9a35ffa65963a0f60f3a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a716fae6c3d9eaa950017ba8e996f9a006a126dc301f0603551d23041830168014a03ac8b3ca288b09538ec1bf8cc443eec8684937300a06082a8648ce3d0403020348003045022100befbece9c30d03aa53793e5187b92f641133459865d514d818a2e1423b52e16b022013406c2d6a15e2c8cddf188a80e37fd3d1c579a86dfa35787d07bf715f87ab30", "pai_cert": "308201d53082017aa00302010202083f02d99518e372cc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c04710951478627c5bb6e0466a81c38b8bd10a9c334ff10a3edd3717a30e792cf53478a1bc59fa53d6a539b2a0a6022ad65383d1adee308ad7c65aff94685f03a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a03ac8b3ca288b09538ec1bf8cc443eec8684937301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100edb92d9d41881a990deae2955d4a79d03dccbcbf607a0c87d07b52e0317e88c0022100fb70713bd140997b86983c51753c93c4fc09cef415003d7cab3710058c8eed00", "certification_declaration": "3081f106092a864886f70d010702a081e33081e0020103310d300b0609608648016503040201304d06092a864886f70d010701a040043e152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f1ff250a008018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cd9628a064b0421c0f2fb5ea4ddc4fadba37c70fc3fac7ba885121cb45f49384022069a14a56376e8155610eef914234a07952dc3b1287ce46926fd9b14c045ed04a", diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json index 2705fffe53e80b..b8d8d49b342d90 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and the PID value doesn't match the PID found in the DAC Subject DN.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa003020102020801a8ef779583419a300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046ba79cc6a857e4563aae3290494cd869248b5b551d7ec78e206d79d9239ef3b948a69968e1dca0962647f16de78f9b1d4414d73a724b9eb3bcbbaca6dfb3c7bba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ed5fce750f4fbaae8779ded9990bd77ed74f5deb301f0603551d230418301680140e5e0154fa83852ea9bd7d513678ce621b12db17300a06082a8648ce3d040302034700304402206f6f02d977fb7d0b5782914a76471f6f28b6bace6ba220f6bd2911b88e65ac7802204fe9c5893a713bfc65079e17f182949b1e7f30c1300e21a384ce0684a6bf37a4", "pai_cert": "308201d33082017aa003020102020807b9477dc7c08cbc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004db3961e906481011abb53af45fd9b92318c8d7081a9cf66ac9f48eb94c2582df0bf30ce9eae7839c64a7779b596096fbae6f3c107d807257fd819b19adc69aa9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140e5e0154fa83852ea9bd7d513678ce621b12db17301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220238af97ac2ac11c3a7576e0402ecc25ac7ae6b405e6f92735123c7c8e58f76da02204e07a2ed178a80f90255231be0de620c90ce653987ad61f53baff055292144df", "certification_declaration": "3081f206092a864886f70d010702a081e43081e1020103310d300b0609608648016503040201304d06092a864886f70d010701a040043e152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080025090880250a00ff18317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d08faa14c78d204d7b3f191b7b18c667eb53a4ea7b8fb2891a297c07b223c176022100842d2b037776544c70bd1206615f715fc7a2e6692189e4acb4d99807bbd05057", diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json index 6419866698444d..955a1fed7c61fb 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and the VID value doesn't match the VID found in the DAC Subject DN.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020879ca6b466a955428300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c6139148e607ce3ef190bbdb39778ac0ea10c9aca71e6c4d0a2ab4480d2c022a4bc7fe5ccfc3a307da1ee904cd6dd4bed9f9efc9accff221bd96dadb5cb3862ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144cf71355a2d6e55bfe85a2b5df3bae595c8983ac301f0603551d23041830168014dc22d4c0ba96bcec9e73febcc6a5c6a95cccd530300a06082a8648ce3d04030203480030450221008f5df6c8e03cd974f77e82af82bf236a8fe85fef1db273545342c27f36776718022049cfc7dde9ca713da03676c38e4d7be7133410404308aa065741416664617230", "pai_cert": "308201d43082017aa00302010202080a3e877acc9fc778300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000492e0c2e66114caeeea5a9071f4405edea66c2bfb28e4ee09c467ed85a4ce85e5f1f19758511daeb57875c73e76bf8c3420a245882acd4cf7f2fa65b470609cd4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414dc22d4c0ba96bcec9e73febcc6a5c6a95cccd530301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207dfa2378ccef2df8b4b46e07e480825b9f4cab1b5e951ec38b37f8f89866bb39022100e94ded063f5ad6fac41871b361b233fb440f25e800d26342d16be62443acc5d3", "certification_declaration": "3081f106092a864886f70d010702a081e33081e0020103310d300b0609608648016503040201304d06092a864886f70d010701a040043e152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080025090880250a00ff18317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220141fd1d963a4d35addceeb2588808663bf9e48869cdd7638fcd17ca7744db671022100e247d9707c2e73a241a3ecc681e98f431e926dba315a8c7af014eaed8005cb68", diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json index 60d9465c59d190..3832d7379dcccf 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { - "description": "CD Test Vector: The dac_origin_vendor_id fild is present and dac_origin_product_id fields is not present.", + "description": "CD Test Vector: The dac_origin_vendor_id field is present and dac_origin_product_id fields is not present.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202084e03eb8442bd3357300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000432775051a1188d457be69d283d2d472fcf99fd91d0ce245ef4fb4d75726f71b3775c035f5671dacba351328d95553f1d052c6681b81bb81fd670da1662fa8b27a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147409b1265bed56a570b09b12afd16cdeaa1d2516301f0603551d2304183016801415ca129c1fab4beef249c78b622dc725fdb04179300a06082a8648ce3d0403020348003045022100b263f48fd96ced033c137b21170f43bd02918dc15b73fea67ee2ae61640a7175022076a6ac30fa7996c45d8968c74891f9b8f7aa6b4e4fd1c2225f245b3c894deb6b", "pai_cert": "308201d43082017aa003020102020859c220c6e66614fb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d85129281a55c97cc9b9d6d7af6febf8fe95a6d3b78c71ed71f0f8444812b31686581e5f4010f68d9ce4f9182f7e7104d221da12184bad1a7124bcdf4ae131e0a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041415ca129c1fab4beef249c78b622dc725fdb04179301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207d9edf0f1c24a33e6d7db0a4235fce3252939ec6fc5a6b8da5241fa8d03fd21f022100ab7447a8d5eca096615f777af4f9aa43af9e4af1ba37f9c71f401a86ec31d28c", "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304906092a864886f70d010701a03c043a152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f1ff18317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203b39f5769ff990ea93efe930bf51b535b46bf27eb512b31b64d5c1ce0b14a4290220258dc57e0c162d8999cb540a663ead0f7b8afe43a81be777df57ebb94b1d0ee0", diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json index 13849c2d91c371..d5f339f58549b8 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The device_type_id field doesn't match the device_type_id value in the DCL entries associated with the VID and PID.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202085f01bc509b190dd9300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000487aecdce5fe02c34285d6ce225221bc3f7fc6fc9daf31e8f8a858e561af69322cea40af5841954c497a6e22144704dfc010b6712bdd863849c28f85f352985c5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414fd34dded7d13efc8e32240d29591f4cb66073449301f0603551d230418301680140fd6fd9e6f14f152de21f74cb71e3fe6712dd69c300a06082a8648ce3d040302034800304502207b1d0291f7b87e43a891cee458f72c3756e34f8b7e7002c81bcca930c943bdb6022100c7ce22c0f6540b829d2412af63a7619d499c80906bfcbe35a6035ece6044c6c1", "pai_cert": "308201d53082017aa0030201020208096930bcd7b1301b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047a1f689ca5b0139009ecd54f9f35c27eb5b98ee3c3798ecf673db03e0fa09bdbf2cbfc63ad218b6637d932f6dab737f028965982e2acccb3404b2812091ac45ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140fd6fd9e6f14f152de21f74cb71e3fe6712dd69c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221009e98128a4fee36e3c5e62706329c8436e899c40a7b795b02213e642153771fc10221008a2c4cdc5fca7bbe0ef90546fa20f7f3766cc19015580338aead5a6122e34d4b", "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304706092a864886f70d010701a03a0438152400012501f1ff3602050080182603cbedffff2c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100cf9ef2cd6f3d1dab544baa9b5aaea70b6566749d061ebf2fffb966f3934c94820221008de090bf9e9e4e5c52de503176ca4b8f9190eb46785676de92e709f32c4ea9dd", diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json index b408b8ae58d446..b1fdef9f0dba28 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The device_type_id field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020810b3b42fa205f9c0300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b9d8b57fb9fc15c992cfc22c529a0aa19b88dddc0a9b46b4aa13797093575e65085ba15d026d19182038db35e7609b85a6ec70f984572f5164da1dbf9200dec1a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141cde48d9ac01f2598a5fb2217df5ff58c93f2189301f0603551d23041830168014c6103d3cae2c92dc0379e8cce69bbcbfc1b4aa3c300a06082a8648ce3d040302034800304502210080574615e0e9fd4d670355ace058849224103f84b5e7b56d01c04d7f4b5378e802207011fef698625b88b6f7f79132f53bdee556e9a0fa1c2ca05e99f03b6419b569", "pai_cert": "308201d43082017aa003020102020872436953e3407211300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043d8e78d7f321594504bbab7556fde17cdc4484aefb7efefd8bb0474d00193b85f3043dfd935c2ab6cb51e476e6b39b4edc081441b8f6b191af072d920ede0901a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c6103d3cae2c92dc0379e8cce69bbcbfc1b4aa3c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c1135a1718bcc4ea707a92ccd9d5b2b6e7c45684d243fdae3fa75e02c75a18bc02207e0589ac4549b06d8fa45d728cc66fd2bcfd7d425164f33316efe8d8c2084536", "certification_declaration": "3081e506092a864886f70d010702a081d73081d4020103310d300b0609608648016503040201304106092a864886f70d010701a0340432152400012501f1ff3602050080182c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cff9aa11d224cad4658821f4de919097e83ad2f926563aee18de157e576facd60220295d0cd70509b00efeeec306bb609bef718d576b98906ff6645e3bb66ac3153e", diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json index e7c33e2f0f5893..083817981e4e17 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Valid format_version field set to 1.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa0030201020208035ec7a3a65b409a300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047186577af5c7e6dfdb08e9415c474a65f829b3572907edc2d790505e5887bc5ba2a873fcc9dcd675b87e96fcc8cf4b99cfcee7b6b3015e672230d12478f784daa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e456ebaf42c6ef15493dfc82ee9546172c80c7f3301f0603551d23041830168014c3a89febdb9d1aed09ed0ec7ced1f50c4322d95f300a06082a8648ce3d0403020348003045022100e01b2e2769d3e18ab2aa5901a93a9be4e12f084a678400f66ffe898e48a6394f022008c2f5f179c18c2231618d1528f8b28964d20455934a1a3a28d62e30cec1dfd6", "pai_cert": "308201d43082017aa003020102020848f107f0c566b40e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000474683a577879172160569252832accd2f50733b4cae596c13af815c0020d8fc4bdf20a6978f5181169a705d799a167d075eaacca19d54b5a650fd4de0f23ca16a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c3a89febdb9d1aed09ed0ec7ced1f50c4322d95f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100aad83a91f94b4ad0b0ab01a609fe0bf618f92891393536f63cbcb00b6d2560ab0220255c68bc1ee929d029c835cddd728856ebf09c00f03dc363d39097b790b0a2b5", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210091f543aa73f3665262f783002d126e06ae641d7e96d33dea516b088b44000421022100cd6e9a27613886e9c03831ad4bb4d101fabab954f7daa9e505b31081818890a3", diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json index 4c9f1508fe2160..55e5384881cb75 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid format_version field set to 2.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa0030201020208546d6d522eac4ba8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046fe3d432d949cca06e7d4571d31ace8d3e947e87623484f96594a9d8daaf1dbb4a0d64a61849818f39993cc58934778e96b6e010b6b38a798454c80f004f0d56a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f3952c383741bc8c56a4d8e65631e2427efe67b3301f0603551d230418301680145c138e7e257715f85f7fcf15de659ba17ca193de300a06082a8648ce3d04030203480030450220233534ecba0b8e4fa7f5cd4b969b93882d27b12a68dfcacb226db65ea5444065022100bc9eeb65560dfd3bb529b479ea0d1e35499b1844bbcdc4fc0a6b33a68fea573a", "pai_cert": "308201d43082017aa00302010202080ca9cc09727c82f9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000463e2721794f3e9f1d7a05127587e2f22d1ae41e1d12eeef1615d4bb624da430e5394d4c7561e0b01618cad4220f92c3a7adb3f995a68b8f0f669129116a13205a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145c138e7e257715f85f7fcf15de659ba17ca193de301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022041a7e9092f98355d832eb9161ebacb51f8e20bf016e12fff32b44dfcfc459f5c022100a7d64cda6f2fcf7e421330b6720fdf1675111cbab79a0c28e9baf55f71f92ed2", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400022501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009ad37ffe2daa88ce82ba2af513e07a97be2b1f26bdd5b9101afe70151d56d7f1022040dee6e3b812d9f51436960334409a98ad84caa4e4a2a99bc1bdf7ee6f536305", diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json index e087c92ff94c03..d15bfce64f71ff 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The format_version field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202081d0d93366a36e62c300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c2b8426d06970ff9f15fbc35ec948089718f3e4b8976ce5766a6892c7f783e4fe43bb535c239c5e2a468480288feb2bb6b0972a1ba2bae03019063ef9d0f110ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414faf55002b31f6820668e0948b002334327119f98301f0603551d2304183016801455334811118b29e0cba9a03c77084e59ba0e90eb300a06082a8648ce3d040302034800304502206ea57ae13900ec1ff6ad9a9ff401b753247a74e19565422bfa9792dd455960c2022100a5e970b31f5d28dad1b08bbb523422271b74682a69068fb03f85295260503cd3", "pai_cert": "308201d53082017aa003020102020809329adc63f55298300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fe271aa0ba3d243895c9600f3fa555e62869a6ccd2e67edd7da82300bfc3bc40bc5fc8a8d1bed78479d600f4c3db52b50b6e878bf20d966d0ddf112c24fd5af1a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041455334811118b29e0cba9a03c77084e59ba0e90eb301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b1f90ccef9c465b994748d7e480a87c50c20597cb1de338e835a295590e877a1022100a2d5570aee8609362bb3ce70188feb8daabd4432a5feb52f41ae65e8416d2c1e", "certification_declaration": "3081e606092a864886f70d010702a081d83081d5020103310d300b0609608648016503040201304206092a864886f70d010701a0350433152501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e1ab367555c9ed7816e5a307123278385ca877f2a0bdc4c9bd0e5083d279b184022031770d30da5910be7821c0f0e56265ecce55f40a19937d8f94af6461a137ea0a", diff --git a/credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json index cba8781bcd3450..f8954776dc4a84 100644 --- a/credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_origin_pid_vid_correct/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Origin VID/PID different than VID/PID (correct use of origin)", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020842746453dda3a0f5300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030313020170d3233303730343030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d030107034200048b4e27fd46d015bc8eba0c1825b3dc47110f46f59024fc298c7be623726a62ca3d212cb3fcb49727740d22f977b7d020b6c5f0d7b6cc1f507acece9d1d7d3009a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145533733f2b3bb53210597a98f50af48124001fb2301f0603551d2304183016801424391a2ca5a801e0d174a4fecf2ae5256223a087300a06082a8648ce3d0403020348003045022047e6417ee7561058828789b02f1bd44c84b49d165a10d9bdf28373dc10693537022100e85ecb093c7aa6cbdbf9a2a5f48f219c0f7cffef3c8ef4e66f8e2fe1e7bd1c9a", "pai_cert": "308201bf30820164a00302010202085705dbb9324090c1300a06082a8648ce3d040302301a3118301606035504030c0f4d61747465722054657374205041413020170d3233303730343030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d03010703420004381efd94c1d4049bcd45b803682945d13465c354964094697025920906a5d69f23cde03af2e159c662b00e3442ca69243f4e7963f47885bcfba71d8b5dc4db0ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041424391a2ca5a801e0d174a4fecf2ae5256223a087301f0603551d23041830168014785ce705b86b8f4e6fc793aa60cb43ea696882d5300a06082a8648ce3d0403020349003046022100bb12c3850de8c26559f20a2931a3067a47287f28dc8afe25b80c930397c947b5022100f67c7bfbeb08fe615480d96442539819bcd71836d1fc0d4bef9d213c171c26b7", "certification_declaration": "3081f006092a864886f70d010702a081e23081df020103310d300b0609608648016503040201304d06092a864886f70d010701a040043e152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f2ff250a018018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220494f87a430b234de3eaeb2dd756d49f5a952f99611b5e9049d864499670cad1c0220492f157848ef15bb597fb46ab387f639107bb53fc6d0dbe11b3fefc8e3baea8d", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json index 13655cc7ac64e9..aca02f4a5f9312 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field is empty TLV array.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202080dc031b7abf3d930300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047a99914b40a3d8dead6bd352f34b5e42fb5e21decc630aa4b113b84200641e44b247365a738994b4be8f090a1369addb4bc341a54e5473be3748f7e58c3af77ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146834c01c4b79aac7d003b0ba6b9ab1a400560dbc301f0603551d23041830168014eb370b914c6bcfd7979fd3f45e2fddaab5ee8d26300a06082a8648ce3d0403020349003046022100ad008178698f20bcdc0ea8626c06c07a6dcac84b0a8e0acf2262680abcf0e9ce0221008c7982c11ae70833488189b9ae6cd14bdcadc44e657d0c405e54c0e403b29ccc", "pai_cert": "308201d53082017aa00302010202085a36afe25e5dd180300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044412245c517c9a683b52cc94d75558ffc279b107281df2b0c42c07db0f9be2f8873542e666a1b992a2d250036499248debbae90ea8071408683b73c6af30336aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414eb370b914c6bcfd7979fd3f45e2fddaab5ee8d26301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100900c528c98b9fda57d0ef7910f5d6ef8b0e414224b770d766ca4b17d1a940c2c022100be3d396e3c63d2b7789574888711ca611e62b81a04bc74c4da616704a4233efa", "certification_declaration": "3081e506092a864886f70d010702a081d73081d4020103310d300b0609608648016503040201304206092a864886f70d010701a0350433152400012501f1ff360218250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022037d322978286a3de31d08ee96bd942aa72da18fbe26b063b914934e5fd4e087402205601ec5cd295d33050ec64b6f3fb23bfec1ed436c02c5cc8f71639a49b5d9bfd", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json index d1a6420a9965bf..1b551c84fe2c1c 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field has one PID value that doesn't match the PID value in DAC.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa003020102020816c768ae269faa24300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e617c522bc35989fccbaf3c1b4d1615d987c6308d9f882744ce9669a2742094a2bd1fc62abfc2807864d27ac6c2b1b8e34ad5eb614b38177bed577f235123376a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145e76235826c77cb8b422a34be5c7318799713da5301f0603551d230418301680145a91bc3c2d772cabc0febfd2e60b3f6ae7fcb7b6300a06082a8648ce3d0403020347003044022077e9c39d62d34ef5800435bbc2b4efc21bf857f1fc444c1293ea6de2effb583c0220425447084c7aa6802866797e9e80c2777e85539ab8f54ac356353721a09955b9", "pai_cert": "308201d53082017aa003020102020859befb179d081387300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004079e47bcab04f0b58e456e0b7cd5e4aa6f8e8bf3213722a94376a147e01b7369fbbc8fdbeb920294ac6db2edfd8b62594478fb56df46fb1a61154be2fc21cd8da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145a91bc3c2d772cabc0febfd2e60b3f6ae7fcb7b6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210098543371eb74e4060e9e6f0488d52f852b509d1aa35fadd8f5bcd65f4e093206022100873d70328f544762f25cd7180905c50fa8b6ab19e04dfc45446283fb1afd38e2", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205018018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c65b5b0f2133979bc4ddd7531bf401008178223bd19852a331431016cbeca0b202207cb7cc48ab35550809da5990fca76833177cc309b9d79f3420f498c127670883", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json index 59879f18149afd..481de31ca7560a 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field has one PID value which matches the PID value in DAC.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa003020102020846e7bb711b1a8f59300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004557802fa2919608b988d8e1d2014f8591d999f432c28007a8a3ad9709e9419cb67af46d0ac93db07e98c01a75883fbf4981f6017432bfc28faccaa1070d42707a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bc9f74adf13cd1c78c72957f12fdf3f8a5fe2a04301f0603551d2304183016801403dd353822461c72c01f85a7983678b0658de787300a06082a8648ce3d040302034700304402206195ed4f23756d16128ece0bdcabcf9262c1af6344a09061c07b6168acd0a75f02207ea18f2a8bf3bf7b99dc6b5e5acb344f6db92289a06e90fa51c7a817370377f0", "pai_cert": "308201d53082017aa00302010202087fb1e1f18805406f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000426e8e3bb5c21d9ed7741869e5ed5c5934d2d377be3282bd861c2e0a4d34e354bee793735503bd6efe3d6a8572ad0353693a7c50168dc0148a5ff3e796418cb3ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041403dd353822461c72c01f85a7983678b0658de787301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b56f9572ba07f32a20aac9990ecccba7a6552602d2cd4b61bc514f832f958519022100ed7caa6a6bbcef7836132472f62cb0f130b1ff28b6e48cefdc73302edcd19617", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201fd94ea4e095f4415928cd615ccfbdb4de8fd7f91452d19babae66d7e60c8568022100af9aff7d2a08426a1d2c232eccce49fdb61ac4e78c79edb3bd6fe6472a451e31", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json index 7514b727c2dbba..c3fdf882b7abb3 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field has 100 PID values none of which matches the PID value in DAC.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020813c9fe0d153b9626300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000495a09e0311075be696398378e4ecca35e1b934305e3728dcb10e9c5570490bb67e348ea57e97f4e672fa6175961f9e36ab87b4cf0defa3d36cc673975772738fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144679a512bc53543f5927544dff9389c1eefa38b5301f0603551d23041830168014f8ee1c6b27d43c7bd4dcbc64a4dc088076e2c0ba300a06082a8648ce3d04030203480030450221008a43da983e7c9b4f2f472e426cda0cf83a4262bb20f86857ccf1913d019584770220294c04a18f1cf019781d7519f39ca519e80a72ac962d56659ffb02fac6e2ded5", "pai_cert": "308201d33082017aa003020102020806d9a6b9cd17946b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e2d2d49d1f0dab8764c82f3cc0741c2eb06e9d179748e740aac361e25a4c2c8933191489ec3c3c09d525b87f8a19f9c65d6358b7310fefaeb412696842ee3444a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f8ee1c6b27d43c7bd4dcbc64a4dc088076e2c0ba301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022020a4ab2de432a23674b86c3e256c5698e6befc62c7792fa8db9da8e1757abe3502204211a398c2f98a112bcba7327bbb3142019221b459c8400e54568d44b057753f", "certification_declaration": "3082021a06092a864886f70d010702a082020b30820207020103310d300b06096086480165030402013082017206092a864886f70d010701a08201630482015f152400012501f1ff3602050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f8005608005618005628005638005648018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207edcef8e1549aa5924f99ebc30b0b117b0ea950e580f024d1d34e27fd6a78cf2022100e4bf6442c088ebe23afe5d4f245cf73ff433fc855d637c35739ad9fa339bd868", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json index 9c7038ab9d6569..4216d3c390f9e6 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field has 100 PID values one of which matches the PID value in DAC.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa00302010202083d9a50313f7e6432300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000462849005c7c5d1e478e9f7646a07194a02195c27a6744fa4ab126bde19aa996ffb1edd37166784837d00a57c49b5365e7bac81a6d58a2c4207e32da2706125eca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140f3cf8c88db35522fee3cf07d76ed6f7a74218dd301f0603551d230418301680147c7ec3a697f1d1d23c3abf16eaa8543b41db0176300a06082a8648ce3d04030203470030440220521f5c8038043a4f525ab3a962a689a984919c213c6094e2a671fd87f306a12d022067027cfeff6a89e515807b34138e1b8ab30196aa29f9374ca9ca58608e9691c9", "pai_cert": "308201d43082017aa003020102020868922259f0f88d0f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ac190feb222ae94abf5e6f4bea6c78e3a8238d56a39ccdd3da557a0923623e8e463fb12d954cc311f85b40be0b81e6ca04bb2dae2417276cbda05bf443a898d6a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147c7ec3a697f1d1d23c3abf16eaa8543b41db0176301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c9b17660bda201b3a1c620870cbd79dcfc6c5a9c26e956ca14a8ccd40de43a08022004ad90365b23ac6eb84a9e50f9c25f23e01c4fcbcc4526186c7af215e2b49c33", "certification_declaration": "3082021b06092a864886f70d010702a082020c30820208020103310d300b06096086480165030402013082017206092a864886f70d010701a08201630482015f152400012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f8005608005618005628005638018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d1ea878a4afdc2fa9421b821a0aa13c91adb7073a7aa522a37427e3deedddb0f022100fb4bd91f26623af67968c235f769685dbd216676a3a5e8be68a22882e8bb5426", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json index 560412e4a8d322..02b77d7b71d511 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field has 10 PID values none of which matches the PID value in DAC.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202086c50b4cec0f6ee67300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041bd6caac43916f3205141a69f6f23701bf475ee1afdd2050e2e4e2d8061f92c0dc2289bf5b6f81bee05ad5f0844d2f346cf457064bd2a4115f5ac4bc13296660a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144f0ccaaedf52bea1d44f2044d9512515206ece41301f0603551d230418301680141de7c0e2d372e7e9786407337e2865d41c988d09300a06082a8648ce3d040302034800304502200172eb172b66f6f52e9f859f488f3efe1fa56ce2ec26bedcd431849d7a0cca63022100f6bc3169ce75c7aafa1aa97b008cf1e0152dcedbfb951eb3d388a2674a726af3", "pai_cert": "308201d43082017aa00302010202082857dd601ea8b4da300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000436904f5521859435ce88e12ca860d4db2a9226ba508c0078ad8df155e2304b6a82a1fcb0ee824bb6ee9bbefdf533a6da58e7bbeda8a401fccec570613f9b31c8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141de7c0e2d372e7e9786407337e2865d41c988d09301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210094280a7789b65d3ea3285645e92ef7b4bd6d41e479fa4299a03f1a0c8bdf29e202204621f7a2a509a6806fa4c607b3e0d037fa7d4114f42aebd51a4f45e31f466254", "certification_declaration": "3082010406092a864886f70d010702a081f63081f3020103310d300b0609608648016503040201306006092a864886f70d010701a0530451152400012501f1ff3602050180050280050380050480050580050680050780050880050980050a8018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022003ee4d0af4f660acb22916e20add28c200535ff6119c9b6f265ad91f306e0c1f022100a93bb5f92bedba63c2d0ca7109e61191dbad4ddae05e05c43e153c162dbd6e17", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json index 61a9e7c0acf6e2..c6a6ccb9324511 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field has 10 PID values one of which matches the PID value in DAC.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020813c727933283774e300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044d30a0a2913d3e430a5290f6f7b7c10f091367cf3c35cacd4918ebeba70e16500f8a8f7205750cfb7ed7c8239302903a30f616b2c9b64570aebc8c5710af03c0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041407c291d0533f40e07526020c813e667658ea4314301f0603551d23041830168014751351fbfa9f9a5ecc254cca72530027e084aab3300a06082a8648ce3d0403020348003045022100eb85f860a40dca1ecd37fc5edd320ed9e4eb63475a819bec600a7a877456d84c022014da291fd311a09d622269da16456efba5138a2a5242ce50230725ddaad694f5", "pai_cert": "308201d33082017aa003020102020812d4b50d55511fef300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044ff414682c6efa040a931d69d47375531d73385dcccbcd5573973efa2399c0319fa3d42d2789c00abffbd9636856130bdaece1e735b25a7947596e8cf9871c3da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414751351fbfa9f9a5ecc254cca72530027e084aab3301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204f5189cbd11c19c3dc0cbbb172cc500f17379dc64d6569fa77a9c02c3508d3330220511cbb9543a21f4020c302ff30c4fa78a4a3a971b57445c2c585bd56a05d9ed5", "certification_declaration": "3082010406092a864886f70d010702a081f63081f3020103310d300b0609608648016503040201306006092a864886f70d010701a0530451152400012501f1ff360205008005018005028005038005048005058005068005078005088005098018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220302965578573f3811244946361f79ce605b02863de179d8ac6a36efb8b78a67e0221009f15b1f4c93acfae9d9c4302c18f6ead7a2a3f3beeb37575085dd1f157db42aa", diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json index 7fabff203d094e..1ada3777846d1e 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The product_id_array field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa00302010202081fdaa42991ccbf5c300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044febdf8a83168d7a7c7be2fc6d42da9f778362105e0a5cc2709f712aed71b1893bbec09fb1e501b75b4df6e99d73a2cdacb0de68dddb01bef0aef2d466b9e1dda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414136fde481954f10977aab54c0e4ab7220f690741301f0603551d230418301680149fcf9ea3beed65ae0e5edca69600f4a20fa10597300a06082a8648ce3d040302034700304402206324cabab17126abcb90925d0501cc172f07d7eb8ab43390f0da92b1b18f2a2602205921cf9056d51ada910adc6a377c645369700d31a8a218eaac99d30b605e7f59", "pai_cert": "308201d43082017aa0030201020208724dda0890c6a378300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041cf4b099d094496b6fa3f4dd72f52a0a0742bb67582e20d24ef4d1cf8e6f4d8870684cc49ae09e5adecb024393fd67203246e21d06351c324622665cc2b724d4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149fcf9ea3beed65ae0e5edca69600f4a20fa10597301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221008f91a73b5646800340e04e1f7478771086430561ef1ed02ed19d95c29ccc06aa02204e019062c79e9715b254204091dbb38da2b67624deb13629b30b933008db02db", "certification_declaration": "3081e406092a864886f70d010702a081d63081d3020103310d300b0609608648016503040201303f06092a864886f70d010701a0320430152400012501f1ff250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210090cc80d5df9abd077d88a1419ab98362e7dca75c63d792f55587bf60aac3a6be022100814b62096f52d8c92e724c411e9d566c37b243f1ad75685a7c25a182acb59786", diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json index c26acd865bf73a..53ff3961ecafc2 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The security_information field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202081f9839b2310bf858300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004162f2d706590ca77c9e1de0a183d11ca1dc998d6d31bc5e0f2ccb9ba652bcbab07c71366c1359f56872a6bc715f72fe9f1f4a8ffcb3cd487c91eded0cb842000a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041462c90493c8edbab9e28c3ed0898190b43a937432301f0603551d230418301680147f9df096b23be219ff644d75ac3ec084eadd2b15300a06082a8648ce3d0403020348003045022055a69069836e345832d570b1e8294388acb62e04b007f5fd524cbd955711ef43022100b99c4a9a55412bc33ede6f3f7aaed189bc1b3a06a3acc2fa1314710e7d9b42d5", "pai_cert": "308201d53082017aa00302010202082dbfc301ef98a555300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004dea4531769105d7a18cfc800847149e0675797adfe557502ba78a2f0340a5aad74d0d91377743ca89d51258e4d2a31b98b27db29c8631c226cf8dd8b92d9b4b3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147f9df096b23be219ff644d75ac3ec084eadd2b15301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210082c316171a4f9d96a11a3038735d8f7876a2ce670d2d43055888903bac5223e90221009e2bed4651004bf7b1b71d4f88b0034dd07d0ea7677a5133dd3b265be0cf7516", "certification_declaration": "3081e606092a864886f70d010702a081d83081d5020103310d300b0609608648016503040201304206092a864886f70d010701a0350433152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cf1310f8316f1d1d5b2ee2aee1e0169195ce52fc98f18b5c81327ae66b40ec6f02202ee3d05d763838996818ed91d77c5ee2813c056f4b4c8029c771dd2573c6a4d8", diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json index 5c14ce4b86606a..7f0ee787bf20c1 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The security_information field is set to invalid value (different from 0).", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202081f9e401f772b4b2f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004989423f9e0db0bb3f22cd8c6869e192c4d09782c723ba25fb2e3fc623fa40932bcf22aa721679df6fa800808ae58da2399c254ba0ba2436812b3f96b94c6db54a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a38f1563a5e2ae848a8e681258f5a25000cd48fc301f0603551d230418301680146367ba130fd87aa3c438cfdcf41b241cf8321269300a06082a8648ce3d0403020348003045022100e7f32d095ae49428636c66f58509c9ff3db8ba9820266d0dec22ad3b96f881fa02200b78756b2cf84e15e368d199fdc17083f9319f4d50e5d7a2c21c0179d87091b9", "pai_cert": "308201d43082017aa003020102020828c893a7a03b5015300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049c433bab616a79c7b9b65caf2d497527ff899a5a429b2cfd875802adab808ffa038a2c6d63b11d207f9a8ac2cd7b23d4a77406718f33d22819b9c7199242fcf9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146367ba130fd87aa3c438cfdcf41b241cf8321269301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502202b2408789db2e47d5c0a04878f542f5a985c63c28765c33bdbe55761ff2b81e8022100a6258588e1d045f14de82f943bcf3ad01b1a14aec661413f38c4f83f1af04419", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304606092a864886f70d010701a0390437152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002506ffff2507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220087385c9846e5d1ec7608356d9ae0597608686a47218820410ef4b2e0fa59945022100d1a0ede842c249956c5238a6a4084ac43a1920fbbe740f95f019abd41c98ce17", diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json index 1482d88cc91df4..46ffb2f91b22a8 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The security_level field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020848ebeaa6effaa8c6300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b1ccb8b35d098507cb83f5275c02fa24b036596eb3be4d3f74c5ef15bbde05cfbcfddf3fd7799d0f1125aa4214cbac75aa16fc95380b9c0c930440559c639ccca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041416784a005e7a505f13d9086dcf6fab07bddf129d301f0603551d230418301680141b15686cf8e9a85132a6aca592145435ffcb42b5300a06082a8648ce3d0403020348003045022017a3caf6b18960695b2fdc5097a851886a8ae9d54410e1b589e51ea950b07487022100bb271f958f2bc17c654559bc2fe5bc516585dc68840a93a328c18065c6611ead", "pai_cert": "308201d43082017aa00302010202085e6d13de4408d344300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000402d85361c4d4c7a9192e820d7864f3b98fada105aeda108f7cabcd33dc0cd6222c5f1dd6fda7666af4062e97ef7ab78aa2c618ca1ffc3bf1960b083fe27d4968a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141b15686cf8e9a85132a6aca592145435ffcb42b5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220425d3621f8a037ff10abcab5c55ee41f08af5633b6154c6a66f8c745bb1da844022100ab1c118fbcb73681a0492fe7479651c17c4c7c5ae529559d01b210fd6832c48f", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304206092a864886f70d010701a0350433152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100a072d7b4e71515e0828a0a0eec39f90a008d0ce906c147bed9c672ed985847cc022100e12aacef50a0e61f482c73293ea2f9098240a1a3daae2db574c657399dfece40", diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json index 460cf3ee650282..dde5ccf5f492ff 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The security_level field is set to invalid value (different from 0).", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202080da10cfa103085bf300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042acb38b065a4b6e841ed078be69c436333eb4f3fcd3fba131c58fc550a3bbf2b26af1a4b075c465ecd8bcc3ebfe746ea77cff82c27f4eeb180239cb66857b054a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e76139ac056d314ff584a7087c19465c1614e5d7301f0603551d230418301680143698b9c4bfc47425bea49e984414c1048c4eef64300a06082a8648ce3d04030203480030450220532d60d475d105724d6a47be4643f0aa458f6d6785ee04f2c0529b72e6195088022100c0806be0fe17f1a0258b6ca20bc16ddd0b819bedb423617f748051007ab6592d", "pai_cert": "308201d53082017aa003020102020847139e5a7216dc3c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ab5566db90184e7fc7022d3edf7e1a2be3b1ebb766d7c155eac812eb9de16bb0ac8402f8a37fd821eb2175d3d8688f50d5b9cd0a2a1327ce7b30929302bdc311a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143698b9c4bfc47425bea49e984414c1048c4eef64301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b130f4fc0fdf7e6131082a17b697a5c34b26c7889216b94ea7daff49c7e486740221009059d04e3b9d5d9fed2f9306920838c74b0d5128fe428a9f3a92b979ea5802d3", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405ff2406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100f2429a0c926703d64c4cba672c919e9200603b3745211444dd84b21bebaa575c0221009c0d6e198957dbfdb88f2ffaec61496061071a9fabd2b8ac0246215fa1e805f6", diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json index b59c8a9840aede..949a53ac942c75 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid Signer Info digest algorithm SHA1.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202083fd918dfc8b2ab58300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b6387fd34152c23e5441d49ca6908963dcf491c9f52189ddcf989fa7812b91601f3f594a058c10f370df4c083d90d4550eae838af2edc6ae0badf9f97aac4ac8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e1b81c9f7fcb6b11a16b3d06e2f17436f7ad344b301f0603551d23041830168014bfd5be8cf033ac82dedd9e3eb53982ee1bb1e014300a06082a8648ce3d0403020349003046022100a529d4b2b1134beccf3e85e8919ae0d710d22a05c4052120e7c9a30477406ab7022100b964a21ae055b24328fd7c20c70d0d19e5fd38a835de187b293c6636748e555c", "pai_cert": "308201d53082017aa00302010202083630ed293ceef824300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049f78c2ab73260fe70af9b13456b5eb28a94fa62cefa0d67cd95ae4b9286e42c3d6eacf970911b8fb0152b9bb610e8a82367381c19d0e0fe609a24f023c78f57ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414bfd5be8cf033ac82dedd9e3eb53982ee1bb1e014301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221009223d81d992907e9f7e6edfdd1903a36ce177b0f4175ed7e64e053ce6a36db50022100c6d630576e94cbb8495dc78601277ad8b1988869a43d279cbcde0220a9ff98d9", "certification_declaration": "3081e506092a864886f70d010702a081d73081d4020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408001831793077020103801462fa823359acfaa9963e1cfa140addf504f37160300706052b0e03021a300a06082a8648ce3d0403020447304502202c35d141be0c27a9bd5a5c69faa663b3f310d87e10899407061cebfd62cd360a022100f99c7b60e2b8d226129b4e87e0b38626fa6ef230539fb00b02d7a4d7123302b1", diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json index 791268974dd2a6..ac131dd75ea70d 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The subjectKeyIdentifier contains invalid SKID of a certificate unknown by Zigbee Alliance.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa00302010202080449b1ba0ca6610b300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004476192ba7879dad903fde4281882fd9c31a932923794eec239011efac81c8f43fd679eb193215a01caafbde6a4e2416113554f898ce20d599efd2aae0d939f78a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a8cf7fca675bcb56264159cba7de9e50976f1e36301f0603551d23041830168014257bc2516e2e8f4a49eba7fcdcfad18132d89d42300a06082a8648ce3d040302034700304402202378a409779deef171791b30b8b8554a6ad795447ef68dfacd6ab2455ed3ce8d02206348fbcecea4c3867a597b0866b8327c3485b55e1078cf5a52ae53f5c9b52d4b", "pai_cert": "308201d33082017aa00302010202086b9fd2adb9fa9bb7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c56c72fa79ada0f211f0c1f80976ecc4cd20ce6eb107ad09454b35684c8e2e05c30f6ef41a5bd6382d1d8587c5d3dc4047a20e6b9e9b0e50c40821726c24005ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414257bc2516e2e8f4a49eba7fcdcfad18132d89d42301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207bd148bc1deb4c4d2a57be1555e7151acd39ee254f49ad43b5fab8cfd4166a1802205db03aef7fe68dc04a68b84a4d4459b66b87c0b812e9e1e1d89cabdb7231d2ba", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfa56963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100843a5ae80128a72747c4813a2bd3e2d05399efe724c7e9fd96796be90481bdd702204a53adf892aae04987d392968f4e19f1d6b410f2980da7fba91ea64e1be54dcb", diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json index 18a7ae0cf3a447..6fb7844e370e40 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The subjectKeyIdentifier contains SKID of a well-known Zigbee Alliance certificate.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa003020102020879d85bc8631fa644300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004cc3e63d50a1b6e95642df72a96d92017b528b34df8d6953c9b98482c7194017cb8eb7d87bbb326a37b4cac070dbacfdfbb1e64b0f0c0438b68bd70cb61431671a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414149a29058d0f857530f54686f995de0749434cb4301f0603551d23041830168014e42531c02856a9106eeee19ee9dfb3b360670708300a06082a8648ce3d04030203490030460221008a83809ac121294c36fbee051047e6e8580bc2d98bf29cf30a6c3028e7a41e08022100934913fb9f4265c5542461169de56e9b96c7c83be0d0059cd1cd5abf4f4e3035", "pai_cert": "308201d43082017aa0030201020208728baea41135814d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000423d95d94a1c9e4c4736795f260c37ebc8b7c8c6f3dbe5b1f9cae382fc778eadb3f3b25ec5505eaebff847e5820e4f6d8f471fc456bdbeefbde75f7f3325eb3bfa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e42531c02856a9106eeee19ee9dfb3b360670708301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100965f9a824426d8e2c4f223180b1f1622ae5fd96f9989ebc019942bd13a2bd2bb02202a3a72e40c36687602f4d73a979851b6e51ffd96f39febe42d2e1ffcbb0b16be", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022034b2293a7b5613f4cbc8a2f26b7da0ba28bc0915bb0142263d292d71789c271c022100d9039bb5de1d9d7250fe93562fd2adc897b9664bebbfbeb05cbfce5a3ddf3684", diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json index 5755956e594ceb..75fae25b38822c 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: Invalid Signer Info version set to v2.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa0030201020208117917a583cbd6b0300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d939262dd82a30a9840f0fb114b097edb80808b7bc34ed999d048cfc64c54eabfa3e0c2b2cea96275392e7b69f6bc55a9d9e9d38052997ce47f331565a2bfc29a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145a29f560c9204c6e4f3decb4de05f0793d6bfd01301f0603551d230418301680149491d720f4889bfa448ab4986b445df01cb52df4300a06082a8648ce3d0403020348003045022100e9f0d2836cad376ee9152ca51f4f42ddc0846b151c47fda4f65be7704436918e022058bdd4dd12658d9fd6a356d063098d47085a06d209ab0c31f4fe7fbd575eb76e", "pai_cert": "308201d43082017aa0030201020208656b64005678b171300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e35323689b50ae5067c80a1a01f8c2788905617a4b763ebb266601fc5d96268e3e728e1761e06348e8985bb3c3e0090c62da47d4aa3e991ff54a760c33e5aa7ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149491d720f4889bfa448ab4986b445df01cb52df4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022066273021cb039d8d3b44958addd88b95ef5487b63f6c2584b635b88c34ea9d84022100aac3275db29e500f9e1bed9dcbfc8382765837c6d9961a1c71f97c6f619db585", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020102801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ee6175515701e2506a15163c7427596f5cc04af9ed42c0f2e30838d5231c95bb022100a2a6286141b7980fbe899f6b671617d3dc69289e86b6a5214c1c9f6bd78f3ac4", diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json index 40c37bac4d6f63..e8b42883266175 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The version_number field matches the VID and PID used in a DeviceSoftwareVersionModel entry in the DCL matching the certification record associated with the product presenting this CD.", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e53082018aa00302010202081622551da2d4d778300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048a940dc6c40efed5115ab4c5ecac5a07430cd076a0d147492923a1b33575c0808c32727eecc8c566a3a36fd36530d66d5282d95e1d2ce203f5074a376dbeb9d6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414316e558aed0f53a0cc88b5cad2459dcfe9b9ca28301f0603551d23041830168014518e46252f80867fc0469500b4dad94252a2b67e300a06082a8648ce3d04030203490030460221008fbb74877a92d7e721fa401452883242dab41cd361cf02d409da9c929f4718f5022100df09d5daea186377e943fe3b9369704287a6a4f3c79f7ab8f693de3d1dac9d26", "pai_cert": "308201d43082017aa0030201020208748e9a8416b212e2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004cb76fdac5fa085929c1ba9a9102d88e83582a8595a0db63a95329a693fe65a9b5a8eb9d19b515fb2e86eeb5adc8ef3be5789c232753f3f186a0fa9d77b3b9cb4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414518e46252f80867fc0469500b4dad94252a2b67e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022028ec372f5c36f2283ea0a41a15b2ec345f6ef701811859954bb9b6376b3df167022100e54a2b587e8616a4150cfeaefaf6b351b37e67264b6cd46f41f9b4c916c85bc7", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022012283adfefbe5c4a23cc33c6ec70201b26fe420a2b3da2f1ac147b70174decea02207dcfc97d3c49892086c6b719d70f82da7fff2220279524cf8c29add1c08f1330", diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json index 09ac52a80ae23f..904287ed7fd886 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The version_number field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202086a7765b081a40335300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047e38ed35bc996dbef312cdf85e2eadd11c4b6c3843125082721d2590a5e5e8897d95b1120120dca618c683d7dade04623cb1a4258ccd47a05429c228b48d87a8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414dab3eb82c3de0abef0ec250be90e26e673526228301f0603551d230418301680143274e481933e00139cd4e50e7f42cd52a403d821300a06082a8648ce3d0403020348003045022100cd7a6d0635e941363bb2424df39c1be8fbef4e8f4f7ba04ddd0fbb4a0008efd902207448d9b041a803f6b9d07788aaaf23e16ab15a44e7db9e573e5a926721dba8eb", "pai_cert": "308201d43082017aa00302010202081e737e8e518372b2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042b03124639fa4d89fca2aa66d5f671220772d1ca7605d17e24ac4d7e7b47bd8bd182a85fa16f466d7f635f46499abdea211eaec7146208cef25c90d3c62d14cfa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143274e481933e00139cd4e50e7f42cd52a403d821301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502202802b12408cba31c5e097ef8ca46481d6c5ed22e8766d4c049a9d5131e81601802210085a2eb460b96399dff7b464e543c70d0a1d543c5af125c24a6a4f00642fb153b", "certification_declaration": "3081e606092a864886f70d010702a081d83081d5020103310d300b0609608648016503040201304106092a864886f70d010701a0340432152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060024080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e2135149a92dbe0ca02398b9dea402d46cc2149e20298050ccbbc102d6a2abdf022100b977c0aad94469db8fbe2305814997e3584494768d3baea235eccbc8ef6b820d", diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json index db9807522e592b..5e5771102c0348 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The version_number field doesn't match the VID and PID used in a DeviceSoftwareVersionModel entry in the DCL matching the certification record associated with the product presenting this CD.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa00302010202087833051dc59f62dd300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e828793a41eda8d9efdde853b217c5a17c0e16e2ce144120c4780cdc257004e8bf76f32cbd5a76294111afdd23cf8073592c77ad8414c460c6826f3b5a9f48a7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145cd566edb8f6893abd4d1c04e74611931941d49c301f0603551d230418301680148e7778040228fc629f85dcc3fa1dfe10a5c2c49d300a06082a8648ce3d0403020348003045022100fd05569524e9054428e54c012fa6a7d6699af9ae7ca4af0423d055349c4c09c5022032c3b9ca820c120dc96bfa5c0c54d3916fdd2bdb357a18f0a7054c93e5a17f50", "pai_cert": "308201d53082017aa00302010202082b66d1b34a08c30d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d96ad82ce1bb46c468b84e98001a8704ff11a1e071f32bc8ea936226dfb9fee1e489675f5f4978a90331a22f59d994d3c5e37373122a27c06702e5f16a3e1620a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148e7778040228fc629f85dcc3fa1dfe10a5c2c49d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b92fd57713007c3d2774ab4717dfbe896f94e937e0039586c470839c16ed1dd3022100eb0521d25d3f3f285771c336258a8e988124be5419e03d6058c753185c1476ee", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507896724080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022020c748c4293aa2b81659b0a91d38d1e35bc3eb41ce36221fdc2fb58dd33a26de02210087aeae2865e0cc513c9911a69a82d6f2c796ed2abfd0c3a2779e79d76447fdab", diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json index 8b6321d787ad43..e1827ceb6a6d6c 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The vendor_id field doesn't match the VID in DAC.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e43082018aa003020102020832adb0737dd0acd7300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000415f2697e787d00181354f898f65f7e018ced4c15c86164a69bcf75d20837376e524b991641ac066a2b20144c8de1b00bca902057523a7301b32d8ac4c450da69a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148f156be29da80c8230b174e8e83ec9927a25760d301f0603551d23041830168014d48b2c316539e3d42ad29a9b3b90775eb7a30e1f300a06082a8648ce3d0403020348003045022007b798ce60c8c0fe98c0444875e968fc2a1c402839989789863857851ea3d1c1022100f473c74cc7841444319f2d6f29570266451f7369f7418f42f92a5459cd971141", "pai_cert": "308201d53082017aa0030201020208157f8d400118dd85300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041532284406a7912580aeda7612483096a3dc644ff2882dcf6e87501790d2d256ab2beae2abc8d07b56394b0e14d4c6632493374dcfb67ccfb81e3c89fcc6b2a4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d48b2c316539e3d42ad29a9b3b90775eb7a30e1f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008c868b4f621fb63184c12022a43051bf73bbe981bcedf78c44b4dc7864323398022100cde48ee54a93c0c2373f2a5de308fbc247691ce91d8a2576d04f0850373ef451", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a03704351524000124010e360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c9b82be3af53917e8aff31d191207bedf84b37b38db9c9438c2b0834c4a98f36022022a5fa1ee66e3c620a879b8b64165238c72c136c0358187d3b4727454c105fef", diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json index d9c704ea4a9a42..40f67b397d6c91 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "CD Test Vector: The vendor_id field is missing.", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201e33082018aa0030201020208736178e6191897a8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048e3fe403838d9946a4f77157594ee7c28600f37487809f8303dbd565a85db0fe550956e121d4f9ccc113b82a4827857721b43274a8f7612ad486d036ea87b157a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041443a32ab12530dff0130d4851778e88eeb80a7ae5301f0603551d23041830168014b2350028b1fc772516e26f04be22f6c963a2a232300a06082a8648ce3d040302034700304402206ec4f784b52e2fb9a3733a3b074c45db84c3faa573bb2aef9e59647dd698716b02205767c6d2baf4567bbd412319020eb25304903af3b5b9a0874e303144c79693bc", "pai_cert": "308201d53082017aa00302010202084efd06d050ba2959300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040534d2d6c918c3a96e63f57be94ceb6d97bce8abe2e2d2c7d30ad9d12fec61a2fed0eff139332a152e40ef22720b3d5dc07ce1de84894c5842f4011c2e6e79f3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b2350028b1fc772516e26f04be22f6c963a2a232301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b7229c9b630cec2c53a1c2098417a8418f4c48579336f6e0c6108dd8b384f388022100adb8085f4714917274c93fb919789528ba6d35ede12e47b3d4eb8d6b5c5f5c2a", "certification_declaration": "3081e606092a864886f70d010702a081d83081d5020103310d300b0609608648016503040201304106092a864886f70d010701a034043215240001360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210099fe1cb4ec023c66da5664313a73149bf5d8c3d4aea85bcb77adce5955b40bbc022100e4861d428bd36d52967a1054c950195e6b9f94baa87b2e3ecf875a74397b429f", diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json index 68a341172fa433..e86d10b0af2fec 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Invalid certificate version field set to v2(1)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010102083ba3eb7cb6fb2a51300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f5885a28e31cbc62c567542c3c1c8a3b54df9451afca02cf270f4b683f232e7087476332722d4981e3e9b7e3a26fb561ca1def1f2ad1aa4bfc3f335fa1cda037a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cefc2960347781458d49ae9f10ddcb124d8bfd13301f0603551d230418301680144f50dd7c6c853aca876237d9888b1d1ec3e60b9f300a06082a8648ce3d0403020348003045022100d063ad4c4b3b41eacdedefff0a76132c22f974b2d39188863c5b3913360ada3102201858dd9a65dd131e628d3d2c88bf9e772d2b9e068400893ffd0b136e661c3f33", "pai_cert": "308201be30820164a003020102020837029f464ffc10c2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004a8217a150f37a40310cf8429eadf6c8134c0f1f89366c6d2f74557990f056f62aa4318759930ffada0738864d913d239b6bb1e228a675ecdb59e3f8fc6dd14cca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144f50dd7c6c853aca876237d9888b1d1ec3e60b9f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210085998213b7727fb36e500a25af052e72dcce6b620ee45e5bf5c95b268abe5e17022015a7daedcd6489195dfe558da40cb3b1682eb8883e328d8bf4d89f84965afc01", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502204d3fb38c767492bbdd3811dc1f7457c065a4b670404656ae69f9151c5a03fec002210082239902f8046dee65d2b3354de83f292d4083c6f9dbc8a7487426762ee9c516", diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json index 5986030ae10785..b2b2643463ba27 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Valid certificate version field set to v3(2)", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202081908efc4bf218221300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000476dec962e5904000cd9f27bf234beb45f4c4a78c53937fb8e47389a4f68c2954dca78f0165f190015c9b0e4fc45855f3ffd1d34e37efcdb535c96edb8306381ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f1be91588378dcd745b2988757ce15d0ad9471b6301f0603551d23041830168014e31628f499bf0098610ad2b5f7a3e9de13d2efa6300a06082a8648ce3d04030203480030450221008603cd3f9dcc7778233d641b3182dd661d799179a0fc955525960bd0d4d898dc0220498a12f7160b037eaad711d4168e0d60962435d3cfab5dbd0cb7bc9210206f19", "pai_cert": "308201be30820164a0030201020208098e968682049bf2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042b2285059c4149c0e35089f640d60e7e6fc65dd82469bc1a9b931b507c0ed9a03c74f2f62854a7798d8934f0ccda282cbba0596b0668add094e722350c902e0ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e31628f499bf0098610ad2b5f7a3e9de13d2efa6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206b51e0affd4462d7af4985e27ccf20a15baa4b8b8b3d2dff7a8794419797d77c02210086cb585c5af3c09370f408360b3f6d13f6d09021ae58bc3ab55af035e5785f9b", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502202ef313c5feb221f1eddd34a97ea43444f9a86f97909e45dd05ec421e7fc3e965022100fdc7b7f459c983863a90cf590db765da9db6f9c83310536770fd3e12b14b78cc", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json index 58210e49605c04..fcf062fa0e8df3 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate doesn't include Authority Key ID (AKID) extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ae30820153a00302010202084b6cacca28f2d38f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040d678eabcb6d2ecaffd48577ec7d6ce32cee7fbb83fd88a0261db48a311ca4444220d4065d9a637b680146b51b58aaeb951391e62d4b6d9e6b1652418daef3bba33f303d300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414edf6f700acee89c30181b52cdc7ce035886c58fc300a06082a8648ce3d0403020349003046022100e39de7644bc6c7df2bee6ea677be430ec551eb6be466fc32a83273b5de82beaa0221009890aff16d4ba21f1e48286be90b70e37a31f5e6b96da253c762fe11e6c7e60f", "pai_cert": "308201bd30820164a0030201020208422ac4704756678a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043d63829b651906834d8803cca3f7275a19b0107588ecd02efd15a90eac94bcb56ddc7ca53f90bd6c637a02b081fa26ef14b16308703ffe22120ed8d38b155ebca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141cb346961663080a366c07e5da9326ecb5d8393c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022054816ff16b3a3c6a8fbfb68c7121ed504f0d8c9820e32e5d0a01ad9b01d5236b0220748491a820cc39be4dda5d7773309b4f3759552a5da358ebe3684e986320fac1", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d94c50f3261628f77100cea34594e5b67acbefaa7e3ada07a5f74079bfd19203022100d96e258ae4ccc2bcc8bcf51537756e4e36046339f01e149bbe873129ea7af420", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json index 3438843c7872dd..b1157d6c97bbcf 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate includes optional Authority Information Access extension", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "30820206308201aca00302010202080f0adb750d58d690300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047cd0bc7ae419622908143e7dd44e58210f60f40f90153b8501440d9ef1c0998c042c06ec2d315ffbff161bf369f1e2798a41c3274eb024f927bec6019e115bdda38197308194300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cb73817e8b5134890901f64afb9947eec041bab8301f0603551d23041830168014443baf79ed2ce8ac121be322c591696d7c488ccc303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e6578616d706c652e636f6d2f300a06082a8648ce3d040302034800304502202e1065617620a4cd52fe6a95bee5e7e93b731f75c5c60e2f6c495533e34a93e402210090fce33ff921169b5e90f81516f10583f7db861082651ecac035ba78f9aaa4a9", "pai_cert": "308201bd30820164a00302010202082ab9c139e3697f81300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004383bbdd5efbf439184db94779bc8872e613029ee241c9da12870a286c1a229ae40056338c75de07d538973692fa513c7fde5c2d35c72614411563b0a82eb4074a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414443baf79ed2ce8ac121be322c591696d7c488ccc301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402202e9cb6821140ff4352795ef52e3b95c97ea8360a8405855bc7439fb00eb22c5002205dbf0d04f9d74118467e6542d59e19432e824bd1a9bfb3d8825fad9188a32a62", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100a4978fe543e824a18c9a3c3f54ebd419893b4e4a22abdabcdc3fd6dce32869e3022100e22b532c829406ce468c0206c1b995a30801cb8a52b70b9278055c6f868e6930", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json index 3b4c95122e1235..ee875e2cd0489b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension CA field is missing", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201d130820177a00302010202082a89723f6d68826a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a8593b0eb959925294b794904335fb2e1890577033aeeae23d196118582c2e6b1ce7165135bb92f4416e6781eb1169459fa4fd4b36521ef8d4a8f6b9ca2b8e41a3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e041604148b27a5fdd6d22159190befc07fac12de1c331a24301f0603551d2304183016801404647c4ceab82731e63d5a7222da36ad6c284ec8300a06082a8648ce3d0403020348003045022063baf9dc5b7fb720fc4e49ae80e662ce64834979453dda41965c3b3960b11c0d022100aa6d3c931a7d5b1da41e5716127ceb762ca4c1757f726b7d382f5d05602669c5", "pai_cert": "308201be30820164a003020102020815dc92eb5f39a695300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000419ed4905a90cd1eab92b974feeccda816e3c3556f467b1fd76515a88bad173900b85ea027cbe755b6f5d58cc415b7fbfb19db86bdeb0abc5fbd2a2c8783a999ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041404647c4ceab82731e63d5a7222da36ad6c284ec8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207859f542713c2a0e756983b4a86086450456d48d389d1ff31d0aed8befa230c7022100afa3084ff5dd21ff3cb14ef9ca57aefa182cd95fa73d41f3c5b9aadb6a8be2e6", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207582b5c46b19b264491a5bf4ea91dcba332fd38777c09255c71b16261127f96d02210080f3dab3e24ebb6e37586c3213e3d8227d7b72895188addc678548e09ff055de", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json index c7911dec9b82f6..039f4955b706a3 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension CA field is wrong (TRUE for DAC and FALSE for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201d130820177a00302010202083b56a43ddd336667300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000445b4b2be47ed9b260dcb3e7083b62d826a65d798f5173daae437d43a44ebc471cdfa6f77259262643041936522f0ec35c84a3eb9589ed95279eba9afa8d81bbda3633061300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020780301d0603551d0e04160414da0e770aa51514be235842ba34494867f0a87d35301f0603551d230418301680145d227b7af2389dfcf038be059d03a8845fa5958e300a06082a8648ce3d0403020348003045022100f4d16c045c3b94aa44b4515ffe0db0af003a2edf98742c161401bb1223a6aee7022023a97ffc1d72704122ec036e9404b79a363d25bd9dd75e1420bcab33e724c4d7", "pai_cert": "308201be30820164a0030201020208399cc990009060a3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000436323ffb940179b7795f28f7b0777d5e92c8ab8fc258e2fab5efd7dc095402111c4d9ab60a9b3bcd761ff0c97ea88c39491a7e110efb2167407a0c1d95eaf95da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145d227b7af2389dfcf038be059d03a8845fa5958e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220038b785c2d8a1e213660b860d781b49794399a852bb303f5bbb34c5e6b247cc6022100e63ba37ecb72f10f8cb01075923a3f006808ff84cf8b8c997da657d7e1a6e3f0", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022028cc0043c6f627c9aaef3441800fa99746c1a5728157df2aeb4946fc6c071ffe022100b03185ac043cbb929dcdb20274350c5290128b214027235e4b5480d3ee559e8c", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json index 18ddcb21e3562e..d642aaf2c9f2d0 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension critical field is missing", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cb30820171a00302010202083c39dee6ad443f78300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045d61999120ad734bc24c8c3e9a90a84cb6b51af16e0d37de263cafaf28d1d909b798576d25aa24d5626bec1c5d0b4c2657e0db398c94d0ba54ffe6b9734249cfa35d305b30090603551d1304023000300e0603551d0f0101ff040403020780301d0603551d0e04160414747770ef34ad307ca070906631fcb25fc2240e6a301f0603551d23041830168014de80b24cc570d05bcb56b30c3ca94610971aa597300a06082a8648ce3d0403020348003045022100e7a1b28d1e029ab2b4bcfb0f1b21288bc37bb25c54234af9f5cb2a2ba13174fb02206da535b89c9501e7a99a7dabf02981b61fe81841fcda04fd8f8a67421cc5b7b1", "pai_cert": "308201be30820164a0030201020208756697d1ce94f554300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043400358a3bdf6236c43f4d2a315049b439c9129c9cd00af4f52b00b32812c267fbc117caf5683b68eb252b01430c9896bc49b1581546d9aaff4666c349cc985fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414de80b24cc570d05bcb56b30c3ca94610971aa597301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ec865d2661a6b69a44ef4cd7ad7cf7fdafa6d82130e67da379fea4d477d40c08022058eb4a2ebfb940b71f0afa95f7619a911e7e051ab44b5de694a180a158c7b115", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502202490a27b9cb1b226d0b0995ccbcb6512a24d34dc49892d7bd9c8394776061e2b022100de5cc2332376522eb1dfee5e6fc9cd5933e5b9770b2ea597289a211f4b66fd21", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json index d350034e1f0bb5..0e8df7e0c0eda9 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension critical field is set as 'non-critical'", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cb30820171a003020102020851d4a5d08cb1f84d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049aa9753a30ff3c64fd1ad087dab0d17adece618301e4169dc53aedb03c6dbeaa82b36bb45a33bb0c2b2ea04011595d8d9a61fe431aed07d7ca0f69b16a7190d6a35d305b30090603551d1304023000300e0603551d0f0101ff040403020780301d0603551d0e041604141893e06a3689a6ae4c7b9e3e8369b8c94ef457a4301f0603551d2304183016801494a409152a5af16b2e00d13c56af80a20322fa8f300a06082a8648ce3d0403020348003045022100f6acbc9b4df278a5bebd570e261bfa456a01eed1eca49a0c0e9a0d603978d5bf022007b769e544a8e3cf468428120f803e0d4b4182a67a03294ab4fabcd335d76eef", "pai_cert": "308201bf30820164a00302010202084ab968740d296814300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042fa2bb9feec3a00343693dd8d6ad018f81017e7824daf37ba64bcdaf6c5675ff10d7fbcddadacf4e4430e098da8c84c75a9c9af41270bc941299e7db04642ecea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041494a409152a5af16b2e00d13c56af80a20322fa8f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100ba40d3c8d1ddc146437b0ace816e269beb3240ff76f851944df16934282d6b40022100ffee871ee17f746f8dfacddecf30aa1a86eeed8a7ac31a467a373eea19999c5a", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402207a3b2f30fdcc229d11dce2e6ed02f9517603b40df5ed43453e4cb8c66ba8a87602202cd7245305a1091e35fe40d5e65214a6be88045f9ac85647579f45262606e85e", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json index 03aa9b93626d01..fa0a068e4d41dd 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate doesn't include Basic Constraint extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201bf30820166a0030201020208542ccbf9dad43cba300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000431e1d0a4f3806cf848bc6786abddf0414368c9e8e52bf92c8b29727f51ed12966d5a62dc7f1cb593a3cad939aa7a97c59cc0933363e964031b9197271065e3cba3523050300e0603551d0f0101ff040403020780301d0603551d0e04160414436b63c18e30d814b871bb3474a5873a4412c44c301f0603551d230418301680145f287b658fd9a7591673d80cd11f50018bb9035f300a06082a8648ce3d0403020347003044022026814c1a9939549333821c691205961ffb72853c1721cc30b2e4500b1d8cca0502200b4c23eb42ad94bea9e35afc44d0d084a894dcfd53435ecadd9b7540c2dce082", "pai_cert": "308201bf30820164a00302010202086f9fd8a98ab9867b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f0fafdf21f5a7910fc1e8cead30ffe2361d0ccde01a59b43642e9f9a1d2e2dfad47c076f3742672b26821b5021cef6b2aecf80194cb7c1ba6b11a9a846f85ee3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145f287b658fd9a7591673d80cd11f50018bb9035f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100ba450ce2dbc3863c543405cbb765b8dad28e1729521c503587d3b9068c06419502210080550950f0572aa0767805737b0f7dfd93ea11a30818eef071e39543de59e25e", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022049da2eccffd79253257db90af188605d300f91ffee448766e7268e17f8ba9308022100f29e915e4a179959d7f0192d2459a8e7b534f0abe60219de6a8ad7c9200abd37", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json index 289f278da85469..fbadc9c9091149 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field set to 0", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201d130820177a003020102020871174449215ddf62300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000429b58a07cf52b3f6efbb339c63b7b946c827125f99a1236a4c19f57faaefaeec9748cc3d18a2c9416fe0ee234c9d65e7653c5a20a68c1de45e48f3a2aac346b5a3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e041604146ef90b0c8e122dc424ef5ddc9c36f922cd621640301f0603551d23041830168014ea2b3f73c70d1e91485a2a4c2eccc4ef88f0cc95300a06082a8648ce3d0403020348003045022025390c50ce52fcf58251cebd6c21a35faa2f760e56ba9fa553bfdb0fd0d4e29d0221009f30d5b20ac08f8543ebb4dd6a71c1889c15eb8029daa33b2b7d81075d41749f", "pai_cert": "308201be30820164a00302010202084678cbbf38e656de300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042c914c52129b7f1f4b582205926773676e0bc10f57f896889e460360d730734523d7fb614da73383459c1b2c00d1f5d2164145f2127d23e4148bbe142211fda7a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ea2b3f73c70d1e91485a2a4c2eccc4ef88f0cc95301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100bdb293acc0bb3a1aa5cd4d3b4c9fc59239b8684932932365bb42040571ae5f98022036e9bc2296d6e41e8bbb8c4e7960f8d91196644e4afcf53fb8ebf868d54a1711", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502200cbe95b5a51390421af00f726fb09796e4afc87cc64e6aa234cefdda1ff1b404022100d303c3cf20f95ddbade9090b6bb8862bad9068b721165a370d15a1f93db4ebd5", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json index b707f4cdf72563..fe4bba9ba9cbda 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field set to 1", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201d030820177a00302010202086fc58fce497f4fc1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043085781ed7aba5f074985a252618703bc6a590a0123257091b132b30ea41f6f6cff67245c9284201a5dc93f9e790e40617c2b1201f8c90dbb6aac2b6450c7033a3633061300f0603551d130101ff04053003020101300e0603551d0f0101ff040403020780301d0603551d0e04160414f10202fd24f013a98856b2f6b8e0737050a84ff7301f0603551d23041830168014cbcaab55db4778ce253aa016c4db01a67b1d83d4300a06082a8648ce3d0403020347003044022077f76c063eb3d61e1682d83571b15cc1af35b28281d13cfc54adefa3beca1bfc0220166661e380c214fed2198d656a7828a9525e5e5efa2153af9da3c4706c722628", "pai_cert": "308201be30820164a0030201020208279ddc8990db76e0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ea7f9047324cf0d380efda4b84487f9f25319436878beeaad973c6378ffe068fe7a439c6896e84f96e911309e331793fcccc54909399238136e8b6e3d0fa684ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414cbcaab55db4778ce253aa016c4db01a67b1d83d4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210090b5d666fd5fc9572fb629a44c1602e45c512cd79d6fdd07fd00137f0a4bc75e02207d9e29fe8dbf530ff79950f5bf63be84e349e32b29692fa94ca86c4d6d2d5910", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a1c34943dfe859c5f0a5359796dc6a10c04d39c7ef5098ae80faac357ffecd1b02203fe70b403dfb6f3437101f389dcb56bdc09add14897c222b6bf28cbbc4577d29", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json index c21db084383862..74998c6f87289e 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field set to 2", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201d130820177a0030201020208749b848de9fc6fc8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049ffc39348e12c9a3cb9e4473baa867b0ea17a30121570dba19b764c96cde81de2d0a1483bbee43f1a611f8c3bab803b020f919f135cd052106d8ee4457dba018a3633061300f0603551d130101ff04053003020102300e0603551d0f0101ff040403020780301d0603551d0e0416041478a5e892cb6ec13e24751c611d75680c1d889b3d301f0603551d230418301680146cba764869bca2a7708c602b810b5a7fb7cfdd8a300a06082a8648ce3d040302034800304502210095d47efc8e5c1cb9fc87466deff1777b369fdb5e1bbb46986794b76546d4482d02207470ddab67618b1c684fd1b62a52b748704ba370bfc58bbe11c21fe600ccad10", "pai_cert": "308201be30820164a0030201020208360f4343b7b7f7d0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ab1f3b6308a2565fa2ee43880a9242c0261f90a06ec9a57f11a9b32c228512d4886f5a2fede0e401fdbe9ffb22260f39e613bcee26504b4322386245d6268363a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146cba764869bca2a7708c602b810b5a7fb7cfdd8a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205b0843cdf3e909f9991ce8fb54d94a1ca1bfce42d3d044c00358cac93c1277e5022100c880ae96eab90cd3fa54939e97631a2e51086571dbf566219b7fa9d06dd01e2a", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206f199c1ec502d8f15804f9ab1ea5fbb9a0f5cd6461d84cddb0f825702a6dc60f022100d57a257aaa10244c511b870fd9f803123e0df10b24e4edf669656ed1a0bdb9ed", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json index d253e27cbc5c7d..4e591fb59c1ef0 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field presence is wrong (present for DAC not present for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201d130820177a00302010202087d22548c9509fd23300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047a5f946faf1cac4d26d442e01acec757bb23033ed21f1aa9d66380a0570596ab983321a6622c41878e5a5e3d7274e6cce519e0673aa974450ba26165549f62bda3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e04160414be9782bcc685ffa4348f4d548f9e2952bc3cce2e301f0603551d23041830168014aa8c521a1f45b4c5a352baf9b967c9a2189ebbe7300a06082a8648ce3d0403020348003045022100972e50f245c051eafb3f37b951a86d21413ab5a2d2f05940c5d164f878ff2aa8022009648b741f1e672a28df8c2f76a31d99396637b5553848aab541350c059c4f1c", "pai_cert": "308201bf30820164a00302010202084599ae62becfd7a2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200041ecb6f06cc52b8a26f9b9b4ecf3fb0d321d12bd1957cb03e466b7f0cd2a8fba696bc5210b30acbf2c483d7d4204382abf4d66f81303c96818fe485cb9b13a32da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414aa8c521a1f45b4c5a352baf9b967c9a2189ebbe7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b1d26f42e3e4f049c9e5d6c3522e818982b04e59cb0a7a31b18c85bf11eafd93022100e36d9bee94de52af9d301a5c6c3313f48e29c43466fa8d211751d0e6d3abdd26", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022019367fc550de0d8f86325e9b3a1fe8a062894e97ad0088159c25421640d68631022100e78d14dfb028254f05a496eb027541ff71c13428f1bc6e2e56a4677852845eac", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json index d50e7b59d3422f..36ec4fe1562d0e 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate includes optional Extended Key Usage extension", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201f330820198a003020102020826c07e13fdadaf74300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c1af73f31aadf87241edcf509a2e804781c4543f899e798eb511750c3cb4dc845ef9dc8b37142ac86f5805603840700b03883796097e4c5c45ed080e9bc3bad0a38183308180300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c66199baa73c7d6f96cf12ce7b65cf602504e64e301f0603551d23041830168014e83beedeb8b896935f5181271297c76edda5d0c230200603551d250101ff0416301406082b0601050507030206082b06010505070301300a06082a8648ce3d0403020349003046022100f5fbd1b41261451a44b0236b769d9f973e8083761bd56d246fdc2e25d6d1ed71022100e4cdc36166ba78593bb907b2065267838a595ae47edd80427e8b034201f8c8e2", "pai_cert": "308201be30820164a00302010202080676e3d48faf5485300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046fa6974e916a3136a2fbb352686387bbfa03ced00f4fef8fe03bc52ef9850564b089bc48535e9177453c80fb6d5d1cb62924a52d87ffc93bce7a3841a83b4931a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e83beedeb8b896935f5181271297c76edda5d0c2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502201f32b837f5fa576b91caa6bef6ae2500de51b0b9113474f36e4dde8bcfb93694022100d005466eca37d941a6329b8f790497fa14f4876e66e805aa7f5e9148950c1d0d", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c3dceb4a5486a898f6620304bd70b3030ea9b419455aca2f5a67ca9e192b5ba3022100b7adae5df4362351230f9579dbee9af8946fce3b64b5bf9d596c838e3ffe57bb", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json index 0617f430376521..d8a8adb132de72 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Key Usage extension critical field is missing", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cb30820171a00302010202085348b71d57879b61300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000404d635d5be07c4308366156e2209a5fdbf94cc18f11e3c724d9693d8f1e3baa12568282f42bbb55eede338c52dd45c112ad80741b68656a7058088e4138defbea35d305b300c0603551d130101ff04023000300b0603551d0f040403020780301d0603551d0e04160414cc5ea58fc66136108949afafd04ae350ee917300301f0603551d230418301680143cc58ec619899ee81c163ae8bde46544cfe0338e300a06082a8648ce3d04030203480030450220376e6a1f774cbbc0146cfdb0385c639f237a9a9256c9f091e640006fa3074808022100db7d5a67914cc8a987a5bce3f0e85cb73d9f44502e5b1842d579398ecc6f3361", "pai_cert": "308201be30820164a00302010202083d6fb5d8a98c2fe2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200040dd923d0de469285babbc47b2f3dc862f78918a6bee3279379b45b139dfc4aa6c1f296de9cb4995fc537dfee841a4a9f99fedce203f57943612f0d0f1946bc9fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143cc58ec619899ee81c163ae8bde46544cfe0338e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022045fd0514bced09f3e770cdf71e565523dd7c198bdc1a6c87d1d060abe2387c7402210089c258654f1a89f8feeb0f0ee42fbd9c0cd3eeb9878524a6e64ac6767b4e058b", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022074621792528816a56829309de1dccf9d15d6346f2023f1a664a16b647fe97a43022100eb2eb9a4b1f738d462c578c18737bb30d321a2a89ca2d496f9dd4b5cbfc9fb28", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json index ca136fa6d03771..03acab338c5fc5 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Key Usage extension critical field is set as 'non-critical'", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cb30820171a0030201020208099959334677fd34300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e9ccf6f8c208c955ce3e26924932ff176f3d79253e01335decd3eb05005e070552c9ae9c3a9b5a2c40b3da83bbd78fa51db04579f99d3a8e1e809cb44151db95a35d305b300c0603551d130101ff04023000300b0603551d0f040403020780301d0603551d0e0416041427e590aefc5446e019594cd218a24dd9527bd647301f0603551d23041830168014f5f420cf4f8968961caadd6d812281da1e447450300a06082a8648ce3d04030203480030450220463641e9ce1c371bd5827ad9d2c05dfacb21d4906b23093a2d06b1adf7e1ee76022100aa975a1db7a90c7b17cc8202917ae23bff5f6180f2bf513ff8313037bcd341af", "pai_cert": "308201be30820164a00302010202087647db73d75e27f8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000435d4c111ed8b651ae24d39a66d7534c1ce8255f9f14e8ad060dcbc96969a0f7f49a4dd827ec6fcc925ba9ac55ffb7a3a001d7bafb03a3418c1982099b5fccd1ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f5f420cf4f8968961caadd6d812281da1e447450301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206b3241d06d443f88962b9268ab8fc2e7456c038a591a29f2ef54ffbbe9f9ab25022100ce3da7a5235435b687fa17ae02dc878e756070c3808c0a356b32f912eb1ecf5c", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220298b626198b5038bb9a7f79ba3ccc271208db7c3df475f3697807ee601e273390220121e915fecc02bf1715a32ed36bf696c62bbf89cba7747d9be787a7dba7cb353", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json index 4066f7d309dddb..49fcb1702240c4 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Key Usage extension cRLSign field is wrong (present for DAC and not present for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a003020102020868e0dac009f4c70b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000455e3fd5482e746ba7fdd5a28e01e58f02c5841681b5c94134e0d3386e4845b59765f065d451e01ba089b7a6d5d4aa71e8284b0c9cf5612582828297c45d75ef1a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020182301d0603551d0e041604143f7aaa92d6b76dc33647f689c1c5b38dcf1c1559301f0603551d230418301680145b740c56ac25d90bbccc73f87b63cd511a57cd95300a06082a8648ce3d0403020348003045022046122080b94fc7767fcb43b7d2b77e66a918fc0f8d792ab411912652c838259c022100a9eab5046dbcaef8d2a9193186a86fcbed42b651c6c74f6da6e524349bbc29dd", "pai_cert": "308201be30820164a0030201020208157c8cfe500deb91300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042dcf3568044c9481cd2c6b0ad4b6740500629a1318c8b73a741f17ae639fb5f59f16c715cdb27e995d39dce78bb805ed5099d68113116b41f9a78a2eb4c6d4a4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145b740c56ac25d90bbccc73f87b63cd511a57cd95301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203b233512afda913788e740ce27fc06eddda62e06349acb066b90a9f11a3904430221008fa819829062bfd84d8e82732e891dcf3e7c6475fe5d8341e0eb9185224c9827", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022038de2b21625bd80e63b2789ca3165c934ed6880ca7785570e9eac250042639e3022100f97714fa8caa770eb151ee032ddcf91e7e12cafaa89a2930f260e631b9d98419", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json index 9fe2a05cdd2a71..95ffd720f33281 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Key Usage extension digitalSignature field is wrong (not present for DAC and present for PAI, which is OK as optional)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a0030201020208611516cb5e8ce57b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000445b50fdfe1cc48523ea80ea86773611d507fd6d7df96b97a00e65118e908b2e8de80de34522efa043671c42648b8d1ad5d4d497f2b68bb275a7d5ef5cc977439a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020520301d0603551d0e04160414f3bc17e68fbb09ff2a77f7f06499b32b91d74d01301f0603551d23041830168014a66e9305a0a0bdfe507e29ae9e2e0fa9ed61c920300a06082a8648ce3d040302034700304402205352aed11ca8a49ab9fd1221cde5ef90a993f78af55480afce070ee92888069802202e40e6757b97f9a55aa6a7b2048b20a3537a27876b111e0eb2b321724d92ecfc", "pai_cert": "308201bd30820164a00302010202085ced6956be8aa63b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004cf18213b48c9bf7301785414ccde69bd6ac7212ccae0f41fd4d67b3b658d36f60a60978ab7522b3899c815fe374795e7a994d6d11ebfc2403210599fb778e97da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a66e9305a0a0bdfe507e29ae9e2e0fa9ed61c920301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402205ce2d4931c0f16df3ee2d7b7c0566e103aff4d5a975c139ca926a781da50a3f002205e56862b0376d06f4379519b19e3731f21aa287292816baffe1570031aa50656", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a561ca1272a12d7e6edd2b0cac5767b57e4c24c08ab9089b5494feea9090b6d902201c80bc16baca9f9f0c82f8fa96e3243e87506ac1061a0e3c4bf7ed99ab7bc43a", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json index bb3c12e010b7c2..5a2802ff55c83f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate Key Usage extension keyCertSign field is wrong (present for DAC and not present for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a00302010202084ceca31fe8cc1d0d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004dc2019cdc198486fb105aa585ae2b7afe9fde3cd954ce68b7ebdaebd18bcaade8763af72673ce4b207b7740d8308d7087b68638fea8926496635d9c584adc7bda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020284301d0603551d0e04160414ad528529598849df671c22eb8526c9e0fd99ca33301f0603551d230418301680144adf4539d1902c0b9291fdcd1f5029bf352dd179300a06082a8648ce3d040302034700304402200f1948065b198f04554dd393b7d778b3f2fbe04a0ad677ad2e9991da822917a002202dc4540e2bb6393b768830547553cf5abd65cd4766b034a33f2b98e20a9e042f", "pai_cert": "308201bf30820164a0030201020208693f674e6ceb37a2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042edec26ffcb4a4ee30202a348962d50206a340a0a6719301300f9a7ef0b919b89c97139d705e52ff0b9795bbf785ef22fb7fb2e3270c553aeee331eff7006fcaa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144adf4539d1902c0b9291fdcd1f5029bf352dd179301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c9a5d2168863c80821ae8fdad1240ae832b5dc88d9548c62285b2c841b35e8c4022100f6e5972f2b1a33279fb7d41d47f23591977f358c409ef0bdf7012f8e8a3417cd", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e0c8bcd6f8b5eb6d16250a0687afcfcc61015d83b1ec39eb5bdcc189d0e5048b022100c6a3c7a04eb90cdf844ab205d61f86377829f3051f41509c505e94077ff39f0c", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json index 014486db725b2a..d009ce9d3c46c1 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate doesn't include Key Usage extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201bd30820164a0030201020208215044dce27eb102300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004612aac6db63e5765671fe50f881fc9e90a38ac1fbf4949076ce258c390e57e21ade916828afb2884bf8895a621272fb400d689163db116acdb5da464ff0460aca350304e300c0603551d130101ff04023000301d0603551d0e0416041489b91701325ce525f7c1fc5cccefecf6218b71f0301f0603551d230418301680147328ddbeece00ae84eff0cf947bcb0a858bfd0dc300a06082a8648ce3d040302034700304402205103c4420c96c641f974db5fedb3f2c12c2da211d4f20ba2d2cb55183b2dece8022001995dab82273f252b6e9e13cdde4c52afca7fe6d3d46d32dfe68bc6d2029c19", "pai_cert": "308201be30820164a003020102020810041d2abde2b12e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000458be50cabeb209738307adc953e1d7d9841b603c817d14128770eb320afa980490b749c2cd9d173c7fa70cf55dc523aa76c171a10df395b62e47a867d56e26dca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147328ddbeece00ae84eff0cf947bcb0a858bfd0dc301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100e596e48cd423eb9540f861336d7e7a1e05245a50101b9d904380ea8664629e6c02207dfdbc97e12b83e9a1fce02e532b08ca6e2abfbea8b323da35ad9b4ed7b90a2a", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221008045ad78fe8fad5793f806a2b9f0a09cb1dfe5d56bf8634d5d8b7fa78783c9d402207463239b653f440d424d9ae9a3806918c6c9257e7ec0ed8f2813762c2487c45d", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json index e5ae862e44b3d2..882bd28f3312d1 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate doesn't include Subject Key ID (SKID) extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201af30820155a00302010202081624edc6605cecfc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f1d31a47a1cd755e27dee511a2fc6d9d7b737242f42ff0ae0e30bbbdac292b5c0575ec2ea357b55f23e79f49b8a00dd6be753413b0354d60d7e64ace2869e4f1a341303f300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301f0603551d230418301680144baea6b29882dc8d950b25655b5125fa337dd193300a06082a8648ce3d040302034800304502203a1e77e24d4aaa8235f90fb986d8dd465023e1cfd8adc6f24453777b0a345fd1022100cf6999b65788156f482dcbb1894e9746ba8784f34919ad775d33510727680211", "pai_cert": "308201bd30820164a003020102020875e948035f22b7c0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042c4ff7bc3c1ea2ee45973921b1f5007ca11d4374065cbed6331a06774670a11a9fdf949b87c39b28441fd7297e5cb8bb776ad16c354c109d83d4f6580f530c8ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144baea6b29882dc8d950b25655b5125fa337dd193301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402206311a445fcbc207559893b6725803f100c40952ef548aca996a2aa1812c908e702205f7824d931e848b08870b7a13fd3dcd31288f9bb7736c570e27419a932e6a4ad", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220556a3bd62b64c80275221b1ed77ee92886edf238ccfc5c0aa45eaf2bb9d2a2d5022100bd8481340dc5e0d2d6c73fa131e32eed0d15e305abd5127e53e2a4e0164c2a6e", diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json index 23db7bbf3ed594..e0f737e0511b69 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate includes optional Subject Alternative Name extension", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201e230820189a003020102020863fd2c36c3425772300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004277673d904f61fdb8937ff76ce0f4526ca57519cbadc2a2b9575220b5b96eadf4753025b28f2873878a7dd24a2799a7ceae717e7bdc95dfaaee2413a63af7347a3753073300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a8172a9c541cc215c46c39a00245808a36d892a1301f0603551d230418301680149c0190bf16a2c24db91025bc806e7e86694c261430130603551d11040c300a8208746573742e636f6d300a06082a8648ce3d040302034700304402203850a8248d4fa35f358a5870e1528434a27c7daab752d0688b5710982b6a8c240220403309ed122ddf0a6a23335b65439a55e399a051b30cfae046401c9aefdf7a00", "pai_cert": "308201bd30820164a00302010202081d89c8f23d658174300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004306c393635a68d0f557dac73f1d4d17da33f80cc1b8f056a8f6513d28b44a59996087ac57f002628c3464475856555b175b055a76a3f79ff6ac306b0fcc90de0a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149c0190bf16a2c24db91025bc806e7e86694c2614301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402205a23780da0942070d5353875fae9df3241648ea458f30d3bf2e6edc796e97400022002170e33f252681cef2cd7d249771d6f390ecdc6d766b0792d071afd7e513528", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221009942c494728d2f6703ad6df3c14d35d9df4e60d40fe62af4c74bf4e0c31924b4022100d3cf9ef9427fe415f121638660a5b22b1a314f4e485be6b6469fbcaafa1a73f9", diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json index 13a95b6b4eaf7c..b9d0199ac277ad 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Invalid certificate signature algorithm ECDSA_WITH_SHA1", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cc30820173a003020102020864fb8736e4754686300906072a8648ce3d040130303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047420dc78fdb8cae68663f3a6d8516853d1b86026752e00ca1a8f283011c6dc143c38a91ae52c40588ea823f1ee82520656f0509d71405645f9df04d4e5646e19a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140f44403635d6eafd79b22ff6c901bb052c3bbb2b301f0603551d23041830168014b4edcb1351cd27facb24982c663cc803266760b8300906072a8648ce3d04010348003045022053fee0973bb4d8778f08fb8f00996ab6b109b9994e52f382eca00d8eca1f944f0221009b0c99672f16ea3947277f2bbef916267562dc990e824d1fa391685d1571c4ce", "pai_cert": "308201bd30820164a003020102020868cea4056d3de1da300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200041e4940f0f728561c933a879238c3c14a7b9268bc8bafe67eb4bd33a8eb84fa5d129535e8996e3447a35c32e7d808776c9c45c9c5cae4f6dc2c8faba1d4aa4d53a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b4edcb1351cd27facb24982c663cc803266760b8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220689929a3c2e2da24d1ccee4764da7c2523aaaaca9f2835217108daf9a624d22d022062347d9d9c64259f4e354705e41dd92380fa6c33b683deba2430b020d934eef2", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100954bd416e8fc9d9e3732717e14248df49200cfb0264f9efbd2ef7e7dd5031013022100d9fcdeb6dc660c2fb9dc93518b3326e127a8ee52a56c7cfb3b1b108d5453af6c", diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json index 591298dea07bb4..eb5e3033a0de18 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a003020102020824f194f28e119296300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045d288fc7196587d1aac5a77526009c0b8ea2adbaae92586a5849587314e0f7f6c648d6d5e367f62df669b3b3caa8becaddc0c9449efee47e5dd260af2cb10afca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ee2830029214d5da28183c52a557554cbfc2b943301f0603551d23041830168014f155cf235ed49b00fa8190434153698a284a8651300a06082a8648ce3d040302034700304402200c3ace47a075c421ea59fe213a239550d9ead779008d7bbf80614a540d32ab60022001055efd005ceb0d444a6688e27d6cea2f6647646710913a833d3129a5d33a6c", "pai_cert": "308201bd30820164a00302010202084f3894c89b211080300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004088513eede3ab06f4d9abe3a25923ae513f6777e35ba254b34613651376ccf78e6eeda590685ffe90b5e9189e45b7f5dafe0baa337cf18fa6a5dee42260bbbf2a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f155cf235ed49b00fa8190434153698a284a8651301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220052019ac1f580c3115008252de19ab594f200964d252c6d440c9d7f861d5911302203a54ae629a0a181d39ad3e9f43151ef8f240507db6d042bc89eab8341ec1dacc", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203599859820fc64f9229084378c292e1c5dea3cf6fd765d4ecb48cf70c2a2f9b702202825485a2177c59251ff7f3e4bc3a447c2eacfff5d29281d104193f634e00700", diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json index d31111b3a49436..941e3271ae7eea 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Valid certificate public key curve prime256v1", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202084fa605523a924039300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fb73081dcfa2edb8388ec783661740abd2774a4ef2faabc869d7ec3f805f8558bead9c2d13eb104ee8098941ee9eddc84bae682433c37e5fc95fa68535b120a5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414fc8bbcfdb58cfd7cbd6473c19a827814a157d87c301f0603551d2304183016801446595df0f1411c1644e21fcaee47d4c02f248428300a06082a8648ce3d04030203480030450221008a1ee737ace2fd03cf6cf7b422436ea3c1a702530617f2ab0f22918579cd6e5d02201d57b49f7b1d564bd7b29a2c73c16fa412e698950baf2bec1e9c02bdfec3c7f3", "pai_cert": "308201bf30820164a00302010202084f92417a050994e5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000434e3ca01932672dbcbb2de13833866d814680b68c2e11d8632fcce66726753fe931badc727868a1ce79a205db626945163a9e231a2cfc552f7acb0559bf33d8aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041446595df0f1411c1644e21fcaee47d4c02f248428301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008163aaede9e613c8f90c4dfe2f51be67294448fc0011e5ca8a2244a0c8b10d3e0221009d7014afbaae2b19905b6215276653802eb2fb1cc1188ac563937195fc79089d", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ee94924e33c79dc11d0abc6ac93ca3a759d45524acc643f896056a8e32fd58cf022100e63935de6e1211a8cffc4877b6627478958fad5eca2fcf50f310d44c4f75d916", diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json index 2e6ed327486af3..3e17f75cde7958 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Invalid certificate public key curve secp256k1", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cb30820171a00302010202081866a3a6b7953852300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303056301006072a8648ce3d020106052b8104000a03420004f088ff60e922b7a96c21551efc6f1160fa48867b2e94950061c89ff7609670a96f1e08b9a85e39c04ae9aea903dcf23ae970386f21223ca4193011dd639c126ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149c8f72681f6ab4fcb1cb4a7cbbad8da23dbd50fd301f0603551d230418301680145853934314b362f5fa3516761838ebd60d68a0f1300a06082a8648ce3d04030203480030450220521d46359aec4710281048ca439e1416b8883224fa7f3ce76716a4d74eb255d50221008d714bd9347f081239f4c26b38e9c066bdee431bfe28f3c1eb062b3957fb769d", "pai_cert": "308201bf30820164a00302010202083072d109efc5d603300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043eaacbcb56242620d0f15864fb9e97622bfe1375591ceb294a283ddacc5ae841c5e8ca5dcb908f22fddb57094885ed3688edd5559aa9fae96afd0cb44d5434a9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145853934314b362f5fa3516761838ebd60d68a0f1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c4021880a744b21079ecf98533a63d674755650dc0c35cb849d8bde14895baf5022100e45cd3046e540c195ebce04b4080afc6074f826590909c5707ad174e73fd256f", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402202c7ea0026fee921c2266373c2134e14e7aaff35e4550b217db1f74ef160f7e2202207ba6bd9a23218fabe3ce14c34ef8a186aca257a34dc8e66ba10741c586a6c45b", diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json index 71e64580e6428e..de9dff5afb3641 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: PID in Subject field doesn't match PID in Issuer field", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cf30820174a0030201020208551e399f250c0835300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d0301070342000420fd52098a02c099a0b86a0f916d91e695ac582b378306417e531f2408f19a8b82844fd0a6c03a8fa661fd0b97f55d02a9ce9f27829a7bb66420359ac93ebe9da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041441c0285c10a3cc4e512bf66221faee35616b41ec301f0603551d230418301680144df465e80dad07c9ebb774f907cf6a43cb623f90300a06082a8648ce3d0403020349003046022100f076fc3bfe9ec463f57718d0a80e5cc88c7ae965e98e4235e17d811ecbe9633c022100b98dabdc08cb3ce17eb8cf2b3b78cb36340b09113b4ce6e34853488fce7c006b", "pai_cert": "308201be30820164a00302010202087c7b761799be9ebc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e1044ce2148836899fa9ecb81478b0205816b5e5775eed2ddcab9d58c3e971db3e508786ac31047f5c854e98a3b9151959e76f304d118d2696bd68cfa75e5b30a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144df465e80dad07c9ebb774f907cf6a43cb623f90301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200b6df23fb68eb1714ef2190b8b9195702c2623c21c6f81b3d991e171d7e650de022100a5bc3cc9cb5138ba0127e84dd7b5c5b42aa5f33757d6f231a9fb7f6534deab44", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d34a8ab1574e04baa20fc24877b4db32bcd0c6012369737f0408091bbf17c46a0221009c8609a1ab18c44c85ad54527adb49d94289ad0219717f931247877be416e755", diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json index 54654882246a19..7842af988a7b5a 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: VID in Subject field doesn't match VID in Issuer field", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a003020102020878b6ab2d77f820c1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000498d621a99b15a5f6df769e6c0f17041fad89164fa035e0d3f21e338cc257332186265663200b697997716dd8ed374e93714bcffe680b7174ac06061698f6cb92a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f54c3bee10d991c2f415b2851befbeee27c92609301f0603551d23041830168014aab0257418f9f8f9ae317f0de08edda1de9b3270300a06082a8648ce3d0403020347003044022030046109abb1dffa97c7bff48e46abbea1741aa0db7e041d4a08528a85c7754402205b12ba25c7b5e49b77e9fd1a4ef92bde48dda1db8776e50dbfdd2772b64f043c", "pai_cert": "308201bf30820164a00302010202087268af4a142801ea300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044b4c6e509f3fd142ce7f91e2d82f2a0765e9a99ef150106f36bb680e6a9790fa6858a8a0ad2039265a240989b97d8278c5e9dfbda3e28f628734f8df1b6dbc1aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414aab0257418f9f8f9ae317f0de08edda1de9b3270301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100dbbc0a6300d09c989a48c2e640f6e7f759b4a0d716f719f03d77d84db0c249b3022100b60b0b242a0e4dba2903419e6eb145e5f7ef9bf2783bf1bab93492ff9d5e2c8a", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100eb10f6b73cfba8500f6cf106e36e7b11b5b8672872ef39f9fdd4f67701119916022100e0025a63abe9c70577dd58caa15fb18abdcdaf357e1ad663a28626984299c6c8", diff --git a/credentials/development/commissioner_dut/struct_dac_valid_in_future/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_valid_in_future/test_case_vector.json index b3623c513884be..29af9fff6ddcb1 100644 --- a/credentials/development/commissioner_dut/struct_dac_valid_in_future/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_valid_in_future/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate validity period starts in the future", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cc30820172a003020102020847f5c234304b0eea300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c0446464631301e170d3331303632383134323334335a170d3333303632373134323334325a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004dffc8b46b0b48fff1cae51e2c6ecd0665f753872f4c449087eabf6f7ffa71236e61befe5ab5a8e999205f304cd2190370c3e796cb9dfa3c092f2a86c2609bba2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d2a45a15861772b85dd6c6424aa6e2bb2699e3bc301f0603551d230418301680143d564896f8107ddf5806a812ac6db916614ef69f300a06082a8648ce3d04030203480030450221009f09b8a2514bf896fc23c3887ef12d5d15e86bf8fb634b0041ef40a4f06690b102204e4ef9bc2c238c9df62ffb8846833f70501c9329538c4524f3e23095bd951651", "pai_cert": "308201bc30820162a00302010202087eee6a44e8b53a7f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c0446464631301e170d3232303932383134323334335a170d3234303932373134323334325a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200041d4eb35cd8828c1887806db9c283ec3c8eeeaaa7dc48e16f4c3f14af005e15a7a0add8a736a9bfa9fcfe3dca02a3093d679ecd3354d5081e2c839376e09d30a8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143d564896f8107ddf5806a812ac6db916614ef69f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100cfe62184f758b1472e7cb1d4aba2c8bfd97a84d5ac4c31f61d6959fb65501f0702202cdc7eccca24b4df5f1d0325a20c2d42106b46c6f9236ecfbab634843ed32104", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100dba9d6d965f78bb8abad896e8adcfc6d282a4cecb5d8d6ce0a8a066839f29bf9022100e230a8ef5cf5bc455de07a1402fa9c8b83319dde36af7e88456a5c0ccc4865a4", diff --git a/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json index d48e04537ffa3f..092d6988c5b91c 100644 --- a/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_valid_in_past/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Certificate validity period starts in the past", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cb30820172a00302010202087998c2933542a7fb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c0446464631301e170d3230303632383134323334335a170d3232303632383134323334325a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004209d671b451f4b2578d2f933241b9d1935044757af06cb76e677fa37c16227726dca7384e34b0cb85ca51afd268a878e55963b65beddc5f40d2ccb2ac739ae1ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ffd806e2e6a889ac55f204ea0a8bb3f0c3d01f92301f0603551d230418301680149079fe1583f7b6ea355da01a02ddb614f11ba531300a06082a8648ce3d040302034700304402203a2ce7d7fc8436e212d6b0587a762f0b085b7eb607bdd8bdcbd4c86ae9b17715022030edf4169b2c96899849a42255c9bc7aaf8e04465eeb81a453aec3374f8620b6", "pai_cert": "308201bc30820162a003020102020816f012fe28135023300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c0446464631301e170d3232303932383134323334335a170d3234303932373134323334325a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004eebfd588e5d8957dfd59433e7cf86edc419fcb657424015bbd1fb4567775391e02644a382ace6c9000ea79c45e58d0f8a52b4e7918f29b946db412169a52840ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149079fe1583f7b6ea355da01a02ddb614f11ba531301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022077691f6f34428bde66acf50b95aa31be46274f4264dc77a3a52b2f7ce3f041bc0221008662090c1105194d42d5192c88877dcc1b4df0ab0e620869c89e806b131760b2", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402202b43d330506c1dee3c9c1b2d40a91600567630ee881814994d8993fbae8a6ab002206f91e1a6a1a6b75f830f72cfd5fde5490567783c936b51f67595c7a5df1f2c5c", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json index f503b4acf3d6dd..c8d3948ece98e4 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201db30820181a0030201020208218c28889f5dcf84300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d0301070342000454255cc112ec505476e1b979a7935fa85f7126c4567c261be5d282fc26f6c85113db4043172eb3c7cd8135b907bc28e740839ba0215862210728524efbcd8e6ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041467885bc65c513e9f715aba9bf2a09930e244c1b3301f0603551d230418301680144710b9dc061857dfb72666f42648b9108b3ee007300a06082a8648ce3d040302034800304502200ffa0ca4b1fee309d87542e3b00ce520cdbd6b96d587ac8f947dde61f29e0d11022100a9b28c7e6d379582b6d97ca05a0f4a51b4fb1895a8233b4dd56cf2908107cd24", "pai_cert": "308201d53082017aa00302010202080dc4ea29d33c798d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000499fa98d8811876dd5f5208194d13ff917ef4aa0f33a604a27e38ea218507dfaf07db0bcc8ee09be80fb668e0896f6cb9679bb4e278ff54ed190a1e359d6be1e1a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144710b9dc061857dfb72666f42648b9108b3ee007301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c8acebfbe735bb9a69af26f77472af404a2cc1ec6dbc5094c62fd1a42e8679e302210094df643736bea83e987a029b82c819a2b40c9d1253e0c38115174c9778fd2be4", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502210080094e7ed4e6513c65aafc6ed4a62c5ac44b191c0101b3678a3914be841913c702200642b29f67f492a898ede088c207a448d108cdc4ae992016d1e0dec1c599e750", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json index 8f7047b8b3c101..ee4df7f78ec28a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201dc30820181a00302010202082bd17a8aec741a87300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7069643a30304231204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000462ee4e03f4e5e0f9e995e5bdc8b8ac822e637a5d4da1b8f0ab84414741d109b1cbf2e5c08210c445888afa14d5813744a0c32ed1ae74098e66d778b8e92199b6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e68b0e84e1452483fb9ff6414e045201d6754546301f0603551d2304183016801495e3dc38383b32b155de4430f1549acaea15ede9300a06082a8648ce3d0403020349003046022100eae3d005a98989ee75b09667c159b9a2c4b8ea506e5cae15018de3a39b3edd8d022100e002e74dbd037c90b77997112856b3b9012ae8f8f1106c79dee376dffe2e2171", "pai_cert": "308201d53082017aa0030201020208118f5672c3cd3bb7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000446e6ca5c4e0591b98886ee982274b1fae00b0635fba2a418a9d87c7f88b88735e0e87c012676fbb6c3aead87181f237a3eccd95c545786191a57da1061902609a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041495e3dc38383b32b155de4430f1549acaea15ede9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a97b870a7b44e36d6b760fd854454f879c496da6d358b1a5d16450b15ff5d999022100cfd5091a46a0b9ad7793ff783258652c04c0d1b7869e33647223f6b2c47167c1", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c345f58fbdd7ed83339dffada42578b622301fc930ea5b93d166b075174179de022100a83e0a21d78bddf8f4c67eafa98da04fe212fe10345168a44f94c564d53d1269", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json index 63c39b604b1c54..451663474dfd6d 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201db30820181a00302010202083756dd5e5948e624300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c204441432035434441393839392c4d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004b60c4242a83072da725974f05e9c378e8c5e9199a0075c27d5fbb3c3516be1b19dd359330396c7d7289e0f62257b29aff2af10925b651421a849853fdc00cf8aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ac88377781ab961af7a0a3f3d460a95ffc6b213a301f0603551d23041830168014f93941ac2d56ffba3a7eb9c6cc48c236d6739485300a06082a8648ce3d0403020348003045022100d9970cca51d4f368cbe877af4445f8338b00c5db600be3c5dc1128e3072e6dde02203818d384eb817c30f12f531556f2ef0dd3dde8b674915c84586ee11b817208f2", "pai_cert": "308201d43082017aa00302010202084d2be5dedf5d3af1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004013ba7ac6a3b1f23d62b0b55822d903be033f001807ed79f0bacdea514c4dbbeb649004fe13276dad1bf3141973c2badc705da8995f9f4b4c610e146c8c95affa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f93941ac2d56ffba3a7eb9c6cc48c236d6739485301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022054a160e148f4b1aa3027e69abc31d67b45613466f10933c5696960f10aa2d5e5022100bd34c3285635c0b84c86582b3d0716d8c84d620099ee008e6f27ef0ba69f2750", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c652b84aba698335386111a799fb3443520ce1b2814daeebf86abd85f9730e48022100e47e0a508493fb4c1cbaf88b52bf71d958799452b7739540925987c44a71fed4", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json index 2ecc078555da1f..2d2a34eb8469ae 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid, but less readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201da30820180a00302010202086e7bbaad3ebfa8d8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20444143203543444139383939204d7669643a464646314d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200044f0de20910c7136428ce428a85c0f7339ac0ecc6c25075f86b2bbd3a3e45768987834215d62ae2d17a253f3d0c7e7c3706f91f3e69a4f71c5cb2e58fd1dcc416a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cd814efbaa0fea8be236fd6d7e235b541193e16c301f0603551d23041830168014bd410eaf521aaa4e90382e6d464ffae404dcc07b300a06082a8648ce3d040302034800304502205e5e78c65005711d60068a717c114e9540eb5fc89a082bd347230fdd18e28d65022100c48a04a1d307d15fb9b62965ac66051915af50c87ecae4e43a28f74b4ab909d5", "pai_cert": "308201d53082017aa003020102020827c6ddb3cfcf32f1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004405df1a48a5a2f58245848934fec18b7cd66ca2730c2bbd53111ff24b4b9b4bac51f458bf2c6bd344fb6504aedf8f456f77c6407e156154317f53500b356c62fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414bd410eaf521aaa4e90382e6d464ffae404dcc07b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221009fd6463bf0201e3287a713f925d668b6c54f075b554782256c4534784cdfb5ef02210090820447701b0cc663af7fff6f15590e7a443e4d6788d9078c92ed766315b877", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220100e16ff557c192bf3ed3d07598599ed5cbf264ad6f60bb5b033fa35a2eee1cb022100d51aef4415d156224a22c8ad01c9910fcfa094b18e5ca17188e07a7cd0016bd8", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json index 0ae04af0363c25..7bc4d1ea2e0881 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid, but highly discouraged, since embedding of substrings within other substrings may be confusing to human readers", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201da3082017fa00302010202084488071c48c43872300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2044414320354344414d7069643a30304231393839393059301306072a8648ce3d020106082a8648ce3d03010703420004ee4c5bad28b2f0523c0fcbf5560fabc01d08c73efd1f6804de97408bcee7c583814e2cb8e249f0377b30fdf149f37374d584fec389f1ae381efa8a29f658167ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414854d2bb3666656944d04a0a6ff6feb43966a2cf5301f0603551d23041830168014cf50a43f2fde415036c0d339a83279503e1520d2300a06082a8648ce3d0403020349003046022100f069e4ff73b8b15435c163da275ee51cd04bd65ea4f31cd2d6adee9158ff5c230221009b8c6bb3d694bf68a705835f30f10bce400b728812bbe69a68489264fb165bb7", "pai_cert": "308201d53082017aa0030201020208055f644d34af6fe2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000401e61a17689fa5f057c474f0dd495d938365081687b8325dd37feb99072bfc7def72b04bb890deea110bdfbb44516d6eac0f6e68a285f057a830d30f179f5a59a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414cf50a43f2fde415036c0d339a83279503e1520d2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100f0e2ec517536a6e74fd8b543229dd6b0397e259063405b32d4002df3a2e26c38022100e593dcd186470449fe26264cada693ab361c5789887dd2553049767597f9a7a5", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502205e1ea3ed215af5407a4d0b15f57b9456a7338a0ca60451a35d75adcf6ee5ca7a022100e7f6a4d997457a40d1cc798d00b3166e0a35e4b362f098dc5f6a952ebf044aee", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json index d8bf73a4323047..7c8a06915131e0 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201d930820180a00302010202081e8fb8b53313faa0300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20444143203543444139383939204d7669643a464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004d79211241a9aed2da74e1ab50f93c7379f1b93151c9c887144b8dd12bb285faaa2e83dd2ebbc856e135fc5c17b09c57a60a60ac9700b13d8110e4c5e9a66acdaa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414508e71f1ea785992e921ab1449a43ad58aa4f3af301f0603551d230418301680145cdf2fabbf52c17fa5e7b2c9974e1ebb19c71b1b300a06082a8648ce3d040302034700304402202686df38f7a27c889481fcd722cfcd36c62eb5c5887c8614bed3ef2f7eddb40e022026f8c3c00e971320590fbbf7c7b84526b43deaa02a66364b68f9b01383346a02", "pai_cert": "308201d33082017aa003020102020829ff9cd0d4fa3679300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004a052c3ba7ffcf738e3b9dfbbfd809aee3b7694b3eba78d6da2d7ca31339d2e5e6ff33b22719c26cfaa5da93297cc77e1506a9b333548cdfd82081a16e9b7406aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145cdf2fabbf52c17fa5e7b2c9974e1ebb19c71b1b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022033828a26306e2f18315e270cb26cdc6ee42be922ee69a5aed49a0cf8fb53ca9002201ebe4167282c703ad9b5f05ff7774ef819cc07050288f930cc7e98b625788b79", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e1a9240f055e6c87e0a4f870d24664cc6a1bca1b32041e41ee5423a835ea6452022100a2449e952ac701724ea2f44c6650d4e0281887e3f3506a1d6163723749ad7b91", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json index 0da0d32f3e62de..116c5079385001 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201da30820181a003020102020808cb431057aecabe300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a66666631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bf1ba2406b80a7c0c9d2253aae44fce12c4c4b67655a6482af03d8427aa7f053dd5fdbbfd12d5021128e612bd450ac5bd0b287b4d6bdc5295b5b77cea8312b61a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414566544693fc947f0744779ff1612d27191d4173e301f0603551d2304183016801465c4094c43bf88b432b816f7d25d27a229a2f313300a06082a8648ce3d0403020347003044022064693383f20445ae19986ffa44cd335c19180e75795f2710abbc44603d64c54e022054fec013f7943cd789948495376771e70383bfc1037d2c85b1f06c1046175106", "pai_cert": "308201d33082017aa00302010202081d3d8dc0c2c28f5a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200042f0038158c9fa863429af0b9ece6452b47ff594f0fa4d934020f0c3dded9d345d8312b91e170907f70772d9a2eb382b045042983376b9407886ccc2db62d0297a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041465c4094c43bf88b432b816f7d25d27a229a2f313301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044021f2fec41df9db50622935573910be33482bdef484329824fe63e1af37282efdd02210084b3e0dcb437299232e83c919d65527a608154e1f40a8c4f8af72828e1c316ba", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100d8b1c71d5289d9b26d25d64c2c1e33b5d9da868cedf796924f3d2ecce3c480a602203d452031217f0759733d9fef6b5dd4946fc6c1bbec8800cc84927b4f54a7da71", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json index 15b13083dab8ca..07641d5a15fb30 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201da3082017fa003020102020815118084cc202563300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a303b3139303706035504030c3041434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a42313059301306072a8648ce3d020106082a8648ce3d030107034200049a4ba942340178f5572b97094d7013eddcaf575ead694b179f6ec4c9d400310c1ef0aa8c35d416d4c623436b4b04dcb95bf19f3cf8fbd30254563ce38c9a3599a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414680fc332a9f467a85f67acb3cb11cc74f0e66209301f0603551d230418301680142bb7cbab0af209ab02a54bd74c9f2355e1bbe51f300a06082a8648ce3d0403020349003046022100a4fe134d392b7514d910d10328ad58d8f1514cdc1734e2c70463b40c2e1fa0970221008a97360f3a3dd383785f699cd0f9899a8d3cdc8a1aa39a6e79b6992bbfd76d20", "pai_cert": "308201d43082017aa003020102020842b162c932382dac300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bdb42970bf96e40e6683146fd55ea5f44615c7dbd065264820573804a97cfdc886183e300a546a040b0f79a4ef35a420d67be4a09eddc94be52269aa512567c6a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604142bb7cbab0af209ab02a54bd74c9f2355e1bbe51f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204ca398a053c3cc55eee29bb386cd493c4a411be38f8907e21433f0e0159d91aa022100aecd14c9953b544fd4d8ede7885be59611385a18bfb104e5426228bb801b5319", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220580f20832badfc322185a629da2b41a0341aa12dd72f592852722191efee5162022029c288ce573eec499ca06e84aafecdb538cb2da979021437c6788a0bc1156cd2", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json index 485d082b3da7dc..1c75f3253d66b6 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201d63082017da00302010202086ffa2e5eeb61d406300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30393137303506035504030c2e41434d45204d617474657220446576656c20444143203543444139383939204d7069643a204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ce4d70843a23252eba74614a37f5a5309b4e13be66a8b5db3baf44bf80d59a4e838deb550e9fd4481d9f54d214ef5ed9af822307440272fee7e166d863eac66ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414de00d539bd03626849da26b45fdacf7884ffcc8d301f0603551d23041830168014dfa8b46a49b566b099e2bcd09bd449a0d5f52e49300a06082a8648ce3d040302034700304402207fb82f1ebe6ab11a1e5133feef13c6d6d63c6dad64133dab8d81910c99e6ee9502203fa0c22ee58177489661cd2a4d0f034b0c358732de7bdc14cce5ef4ab2c95f3d", "pai_cert": "308201d43082017aa0030201020208054a79fab29370b3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200042416a7d58bbbb41bc77fc9b3c793a8c7d2a2f7f85815754c4545361d918062d82bedc5e987d47a48e72a576841646d1269a783884075f23e0a6ca442da8b2129a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414dfa8b46a49b566b099e2bcd09bd449a0d5f52e49301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204c3f22a3d37c42f228eb9441815bb05951ada27977e428e814e3122c44f7891c022100fb8c458dbb450d16ab904cd8a43bf0bb0f330185d68f3e00a40ed394d05776f6", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201dde96d7c08e23175c5052dfaa521bb8a063f84c5899a52436b5d032aab93aea022029a551c50d0d52133c388cb23d3adc1389149ea22449fc42390241bd67f3b2f1", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json index 22e6fb2f2de4b7..2d018aa2b25a1b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid VID encoding", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201bd30820163a003020102020830a812bc7c5c45fe300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783059301306072a8648ce3d020106082a8648ce3d030107034200048065be52b8f4ab2caf3013d05346c16689ecd45d5cd779f323d62f61d864866ccb2703987409dc8d5b99b16bb7c24b11b35bb134f9df21425ba39da0172540a3a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148ca0167efc3c765c91adf0e6cef7d662e1eb1538301f0603551d23041830168014e60a5e4b9217965291327e05b6eabcfd80326640300a06082a8648ce3d0403020348003045022100d17449f3cf83a85d16e7c4343bc10e264bdc92875a8051ab7f3f2eea6481b45102201ebd3950c7be50ff6222dfec1590e7b201d9aab8bbf7f18a0f9ae23f0014009f", "pai_cert": "308201d33082017aa003020102020832ba94c42f74da1e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004688ee8607b720b9997ae51bd6db5b4467dea88794583b43f8ee79e19b9f4120e31235ae9749127e780591131090d2114721d14f0883f5008a7cccaad4e6156eca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e60a5e4b9217965291327e05b6eabcfd80326640301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022014c85a0afc1bb6f24d8b9eff1fba7ef049330e7cd49c973be00a0e6f59e99737022004ff84dfb14274ce375126e609e679d34c6f5e86d1b6671b5f25f22ddafc5711", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220664fde5adea91e45342122a9d1d6df5cb634b50956bad69157b91aa8ccba0084022100ba2c1fb85725104068eaead244ba215aed326a21433d1e712771b9a8f3bc4de3", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json index 461b111e9870a0..2599481a26b64b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: valid, but less human-readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201cc30820173a00302010202082b65e3dc5275db3d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004ba680af819b925bcdedc9bf8adb080cd4bcfc7b287236a499e0c1fe6bb33c30c18c95455aa07a98ffc65945a22d6e3e725b43bb070fd02f47d50e6859f02acfda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141bd5a542acdd410c440c1224b492951f594ae3a9301f0603551d230418301680141c7b7b8c9b9444086455ca4ce3b6563d2db6fc5f300a06082a8648ce3d04030203470030440220506754efadb8356f065731f8ebcf22fd7d577978c9dc854b38e9fff872dcb401022017ebcb6fe47212cd883dd9e639283c69e819e248086bd5951591e2a0e93cbcc3", "pai_cert": "308201d33082017aa003020102020818b1e076dc0aaedf300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004383f11ca89935c512504a4c39539b9aab4e11f292d89ef271bab8051d0b51572824b41a3e2c8e8ee55338d143e9930b47b47aae438c9b4da95aadd06cc7d63ffa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141c7b7b8c9b9444086455ca4ce3b6563d2db6fc5f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022058540296ee569d219b66e12ea142dda6101d65be04485ca5feb514fc8e8ff6680220194efcf508d4adfa3e1e68203603e280e3dfd99c1f057a7faa358564571a5e44", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220427a3a99df86e798d5b7a2a840b0b260058873852a384eb67d8604eb3b78c500022100f59b32440d29408adcbcb3b608b1ce68382f6981e230fb5e7d637da4dbf878d1", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json index c947eb0d00da7b..895ec2b48fc7bb 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid, PID not present and VID not upper case", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201c83082016ea00302010202087c8421ecfe7949ba300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a302a3128302606035504030c1f4d617474657220446576656c20444143204d7069643a4d7669643a466666313059301306072a8648ce3d020106082a8648ce3d03010703420004bd4ba68cb580e099310b890f1ab893dabe7dfdcd7969e64e307a3565b85ff613ec36b355229cec16ede8b797d86bfc34e1c48c5a79c4662b784d920810fb0115a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142ec709463ab3334a1fd77c81ed982dffa1d14f22301f0603551d23041830168014ddf00375d43c65047c1f08f5810164623a6fa713300a06082a8648ce3d04030203480030450221008d9cfc8c4e869cad6336f68266260da78872bad3696fc17b16993b8a2f4e545f0220423cd64e619af9bcbf5faacd44a3ae6cf5fe8d0e5bb5e0bbb465361238dce282", "pai_cert": "308201d43082017aa00302010202084ae2fd4c611e745b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200041e0609f32b8e09d499769c750ca07a13a1776e88d3c5c0b70942d2478865c6a8208d9f32ed3a5d6e8febc29a0bea7c8ec42bc958ce4bcd057a02e37d68abceaba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ddf00375d43c65047c1f08f5810164623a6fa713301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c1550f3aa8778dfc255032f2fa2321df90a45dae082949c2118b3cd49a2c4ce702202430ebf9bdab7a68da642d631f3e5b6a41e94ab46a14d4ae558375dbb11ad9d7", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201af8cbecbb93be21db9bfe79c87ec7a1ded945770b575ca07d0d3cbacced41620220794cc4afd4f78c505d6dce4f370d62d3baf077f19da4cf9880da21eed8190fa5", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json index ac2017d012a1a7..eec0ed8f0ef5f2 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid VID prefix", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201cc30820173a00302010202083f8263fb83bfe6ae300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20444143204d7069643a30304231204d5649443a464646313059301306072a8648ce3d020106082a8648ce3d030107034200049c0038fd271daee28494a945f6470e84c40e0882edb6244dd2df37cbb0da0b5a62e8f4a527d92c37ffd721dacec95676ac477e1ca9be4e348fd0bd75982984d5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414df04f63745fcdf01b3670c6c24bd3595192aa4cc301f0603551d2304183016801420e0fd720609784388c6eff1f54c904157c70c44300a06082a8648ce3d04030203470030440220497a5592ca7b49b2ceba425167f00051c04d683c9ac4a1966ecf26a526bfd7c502204ac15272ee4224d300d8640493622fd120f72522d57d9a2f33c9bb9b6e51e460", "pai_cert": "308201d43082017aa003020102020821861c678a0297c4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004eabc8faa45012e9e2a153ca7244da524cfa1686555490d0da5981076b19c5667e17b5444f95c7ef8c89ca322687d0930828558b2ffc7b9e54161ec5bf34c9a5ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041420e0fd720609784388c6eff1f54c904157c70c44301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502202819789de8214bc07d64951f2ebc74a59ec20f59c915599e5e40b15f7ddd9b18022100e7ded830e374dec8f0d8b65c2e42fc5d30005a7c0df5f4ef6734069093c51166", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022012193cc131c18e54fc39553eafd3819ca98e40bdc6972de116322888006a0552022100ed76446da827bfc346940b396e7a2ff41d451733972bb707762b6bea864b30c7", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json index 2d05374bcdf6c2..990d26d0c60de3 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid PID and VID prefixes", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201cd30820173a00302010202083450a052182d2cd6300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20444143204d7069645f30304231204d7669645f464646313059301306072a8648ce3d020106082a8648ce3d03010703420004d4ca44d3452d78c8272daae93b6f9ce5885146e82a8f8415612388fe3ef94580b4fed9093f1008639017801e0125cf3792ba473b37d305576e984ca8bdd72ffea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140223a890046a4bb69b719552fd74bc8af09682c2301f0603551d23041830168014521d2fc8ae62dfb20fd7f5ddbe3a798380e31a89300a06082a8648ce3d0403020348003045022100cb49911425ce8e585513bf06ee68dc9fa39d6ad9e1492082d42ddbc49b9d6e3302202fe59c8e895e86095c7f47858725445a1b5d17a8d9848a0ea60ba14162968cab", "pai_cert": "308201d43082017aa0030201020208165f8b7932120930300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004078a4476badb7b22fb9713707d9f9a4c3ba556bc937fc346a7e4083abbdee63b12402c347502ede77f88962109a7a7e573e3bc2f96970d7980a2797ac6384c34a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414521d2fc8ae62dfb20fd7f5ddbe3a798380e31a89301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210091ac483821f0810c318bccf17763aa2001fb7a0b81b9f9b5ac6848ae5eb4ef940220737e0e7af6d1f4686dfc919e4f2c635a31cf4f7516ed33738657611de7909f4c", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100f1da2112b47840cd3598b14f5e9a305724b89041869b6c8f3a248d48669b99fc02207203ef330fed84804ea37cb901fa0e516ed0ddbb78db798e3298410880428e80", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json index b0299181dcf5f6..69186cb3ce2cef 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: valid, Matter OIDs are used and wrong values in the common-name are ignored", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "30820206308201ada00302010202087f2f44adebfd0fbe300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004482e4f2df94a413a6bf7598f8a5a8a0add1dd4e4ae32ffcc0c449a07c334fd5ca78d07296dbfc42ce8b106861328fa721d1203750ec1bf1fbef8ba3aa41d4168a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c39a416240515bddb8e098f4362665f4b7d6d0da301f0603551d230418301680147bcf35dfe7adb6c6ba01440ae2cd783a07c0ebf5300a06082a8648ce3d04030203470030440220487add268c7496438e82c4b1894f418ca748336175ef0fcc7db325b4fdae245702201786614af15ed5f62f92681115495f453898cb1290f7e22651954a64a172c37f", "pai_cert": "308201d43082017aa0030201020208771738ec2233c74a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200043667dbd8353646f14f82c21a3f204e44829ef4111d5a9b619af9eaeef18cf4329ff92cffd26a6e3c38df91ac9342eea582c814e6ee20c3559bf72ffb3cd8257fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147bcf35dfe7adb6c6ba01440ae2cd783a07c0ebf5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205ed27aaa89a3167abc38c0417dbe86c55489abea5d54449d11199dab8a4711fe022100debedfe7e6026dd26d2ebdacec63a252e86c8670f465ab89d11792c1de5ce4da", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201219fcff318b3195d01aa3c4b240849bb3b3234ab2fb974b71ad11bb70ef728d022050dcba92eb4886ab90488dfde585184e19033b9e38fe1819826edc8619a58d1d", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json index 733a9965c7d559..c587e55f509a03 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: wrong, Correct values encoded in the common-name are ignored", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "30820208308201ada00302010202080a03470de9c83043300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323059301306072a8648ce3d020106082a8648ce3d03010703420004e7840a07aa0063e0c297520bfeb2ef0f01dabfb0d422183a29389a208569d7a589d42cc91311e6c2784efe9c6014bb0ef4da910daeabe72c81fbe64f79532a13a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041459e179e39d784efbcc8ab5724c8f0b192b1677cb301f0603551d2304183016801441cf771c87daef27d962d08e1a5d01a96ffa6bfa300a06082a8648ce3d0403020349003046022100db985b1699bd68cbbe8d4766af64570278401d069e4ce301e0744d7801ff0e11022100ca900b1dedd5732201d189de06a1324ecf7329ad293d72ab431b0eb4c72f6492", "pai_cert": "308201d53082017aa00302010202082961eae45ffb0ece300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004d50a4fd8812153d6abb41aa6f2efc40ca72c0d6eac26efffb137a762ee15fc7d0cec02b27591e7b67ed8412f14bb2e9cbf999d6927733164f914351eece7f469a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041441cf771c87daef27d962d08e1a5d01a96ffa6bfa301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100ce95bbb8317d27966a9e7cdaad4a48159bb58692076b19312dcd467e7ecb9c150221009e9638acb3cc4de3170e975cecf855495a4a10ec3325934a997ec8570c038f53", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ec1c30f9f1faf9d449e3dcb911079759f5218b2c046cf4439357a4c97555309702207629f39b6819882403f061008ba6b5839a0bb42b62211ee70a382e168199fa94", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json index dd60dd1a87ed20..feef4ef79c4f9d 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: invalid, PID is using Matter OID then VID must also use Matter OID", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201c83082016ea00302010202081ba0df19c6aa35e2300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200043070b6bea8a294089468f19f351f6bcd16fb16237ad1039d5ca72e35ec63ca32fd1420ea34058b3671d66ac7d8fa6370628b625711c20646dd29262a8a110305a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414fdfe4dae471eb7cba37742b3c97ef7c6ed36c5e8301f0603551d230418301680143b6885a0010569ceb25af20b26968ef1386a882b300a06082a8648ce3d0403020348003045022025e3cdf47e060f9099fc5eb11d1268a370ae7014c93336e925ef2690f52db010022100985ba7e0d07335f8d952f528f22a721397003613dbdc364bd084619e301e3b76", "pai_cert": "308201d43082017aa00302010202082b94a3b21c530ab1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000497f9659ae16a8244bd4698f822174443bf4655a415275f477661d59c3954a2a1b20ed40ae2ca7e512253ad03691ba0b5cdbd6dd00792b31a5ecc7c853c93f86ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143b6885a0010569ceb25af20b26968ef1386a882b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200bca5acf0b4a0530dea70af719217122de931c44cb1a87be0c8af33c04ec97b0022100d0eb16b1fdeac91dcec53fce2decd4ac019d09d1becb722452808d63588e1293", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220307a9a66f9aca664b34c8a14eaa71358395e7961599c88aef48b5c1af143bc4a02204895f6bf1127b829d31f7dd4c4bfd6b838802c5f6de4641beb93626557ad1b4e", diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/cd.der new file mode 100644 index 00000000000000..24e6e9dec05f5c Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Cert.der new file mode 100644 index 00000000000000..2e2ce63f4f4b8e Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Cert.pem new file mode 100644 index 00000000000000..09da4ecbded64b --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB2zCCAYGgAwIBAgIIB5qc0XSVOCYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB +gqJ8AgIMBDAwMDEwIBcNMjQwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x +OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG +RjEgTXBpZDowMDAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfy5IIaX59HfG +8Xj+x06J6KWHOU/v6d0veBAjPiy9jGh4yyTDRIflyGmPrlucapOBNnu3nyJmFPX7 +b8/ymkIUiKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFBx5LoDsZ6pOW3IrrHwGQelecC8jMB8GA1UdIwQYMBaAFHiaFhohzYS8cSno +S4eCUb8nU0e+MAoGCCqGSM49BAMCA0gAMEUCIQDv7GVzgeUeSh0EOtx69uki5Xwn +rYipgojOke9HeUhbswIgN+pmVAzXFTjopbuuTx1gJKevuA9riRO7yZ/PDJRD8ys= +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Key.der new file mode 100644 index 00000000000000..466b687ad2ae85 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Key.pem new file mode 100644 index 00000000000000..ca86e76a353735 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/dac-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIESZSb3mZAkDm3KvGO7rwaA9s/1kZD9F9pGBuXnOeoNhoAoGCCqGSM49 +AwEHoUQDQgAEfy5IIaX59HfG8Xj+x06J6KWHOU/v6d0veBAjPiy9jGh4yyTDRIfl +yGmPrlucapOBNnu3nyJmFPX7b8/ymkIUiA== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Cert.der new file mode 100644 index 00000000000000..008e6708e16daa Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Cert.pem new file mode 100644 index 00000000000000..d4e9ac3c453fb4 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB1DCCAXqgAwIBAgIIRYduW1O7kEIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yNDA1Mjcw +MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg +UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwMDEw +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQHJ46wU1RTjpInrpG7EYGjlLY2LPci +iiYfV9X7YpWI86cGUKXNOfluiQqcyLx+SE5m2BNh+Cpq6sfdH8/VTrd1o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUeJoW +GiHNhLxxKehLh4JRvydTR74wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgDTuPeVvtQpuTwGX0saojLLWiF+60DTQP0LAP +9bttO7MCIQCPlRnVn+SKevtCpOzK77e9USJnfaKuf5r4hZTwzBg6rw== +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Key.der new file mode 100644 index 00000000000000..2a611532b61a2f Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Key.pem new file mode 100644 index 00000000000000..5db35921210b97 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/pai-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIIPYlVBwy3UZgnpr+/hdNA+FWtfgAtt+QuJZvLxgbQc1oAoGCCqGSM49 +AwEHoUQDQgAEByeOsFNUU46SJ66RuxGBo5S2Niz3IoomH1fV+2KViPOnBlClzTn5 +bokKnMi8fkhOZtgTYfgqaurH3R/P1U63dQ== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/test_case_vector.json new file mode 100644 index 00000000000000..28129abe2b152a --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_18/test_case_vector.json @@ -0,0 +1,10 @@ +{ + "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid and PID numeric only", + "is_success_case": "true", + "basic_info_pid": 1, + "dac_cert": "308201db30820181a0030201020208079a9cd174953826300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303030313020170d3234303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a303030313059301306072a8648ce3d020106082a8648ce3d030107034200047f2e4821a5f9f477c6f178fec74e89e8a587394fefe9dd2f7810233e2cbd8c6878cb24c34487e5c8698fae5b9c6a9381367bb79f226614f5fb6fcff29a421488a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141c792e80ec67aa4e5b722bac7c0641e95e702f23301f0603551d23041830168014789a161a21cd84bc7129e84b878251bf275347be300a06082a8648ce3d0403020348003045022100efec657381e51e4a1d043adc7af6e922e57c27ad88a98288ce91ef4779485bb3022037ea66540cd71538e8a5bbae4f1d6024a7afb80f6b8913bbc99fcf0c9443f32b", + "pai_cert": "308201d43082017aa003020102020845876e5b53bb9042300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3234303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303030313059301306072a8648ce3d020106082a8648ce3d0301070342000407278eb05354538e9227ae91bb1181a394b6362cf7228a261f57d5fb629588f3a70650a5cd39f96e890a9cc8bc7e484e66d81361f82a6aeac7dd1fcfd54eb775a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414789a161a21cd84bc7129e84b878251bf275347be301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200d3b8f795bed429b93c065f4b1aa232cb5a217eeb40d340fd0b00ff5bb6d3bb30221008f9519d59fe48a7afb42a4eccaefb7bd5122677da2ae7f9af88594f0cc183aaf", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff3602040118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100dcf5d10789c25461065bb909766a014f49ebad35bf60afc890bd438bfc583f23022044caee28fa5e735e18171e692aa02d4652615ed78ef10417ae0741147da8128f", + "dac_private_key": "449949bde66409039b72af18eeebc1a03db3fd64643f45f69181b979ce7a8361", + "dac_public_key": "047f2e4821a5f9f477c6f178fec74e89e8a587394fefe9dd2f7810233e2cbd8c6878cb24c34487e5c8698fae5b9c6a9381367bb79f226614f5fb6fcff29a421488" +} diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/cd.der new file mode 100644 index 00000000000000..844539ca544392 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Cert.der new file mode 100644 index 00000000000000..0b45e92fd74a93 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Cert.pem new file mode 100644 index 00000000000000..b10d2d2165b2be --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB2zCCAYGgAwIBAgIIJdjKyvIZ/tgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB +gqJ8AgIMBDAwQjEwIBcNMjQwNjA0MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x +OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG +RjEgTXBpZDpYWVoxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEo5NnM/L7X0m0 +ZousChiCzREHJFafU55sC3up8Zm2HeZcNk5gCF7ABwPv95YXWU6CXPol81BwtKQQ +ijZDpJQ/JKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFAzYu/mCr1UavHYCwLoNWjjuy1TaMB8GA1UdIwQYMBaAFCROIBP0h/EL1kP+ +zTuCYIkZMVH8MAoGCCqGSM49BAMCA0gAMEUCIDvYccQbgAjuzmFYrU6rMo4mKCVE +lEO6n2hpNTso/iLKAiEAx4Fssb9QJSuOadt/ASOv2voxs1Z6poHHdfgaFv6YHSg= +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Key.der new file mode 100644 index 00000000000000..4ed65614b470c2 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Key.pem new file mode 100644 index 00000000000000..3942f4ac05a9a0 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/dac-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIEPyI5pBVq3w4VbCah6rOhQFZeGZySF1dnG54DfgJZ50oAoGCCqGSM49 +AwEHoUQDQgAEo5NnM/L7X0m0ZousChiCzREHJFafU55sC3up8Zm2HeZcNk5gCF7A +BwPv95YXWU6CXPol81BwtKQQijZDpJQ/JA== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Cert.der new file mode 100644 index 00000000000000..6c46c5c002b8ed Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Cert.pem new file mode 100644 index 00000000000000..006a62ab9411b0 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB1DCCAXqgAwIBAgIICuoFfHq2ZwQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yNDA2MDQw +MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg +UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS3SD4xJYCRh024kzeGsRuY5ao/R0D3 +zOl2fQ8EyNdsUvOZnsmYcnTc0FDIFTjXJ6QTMu+u1bZIKzyS3smA50oOo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJE4g +E/SH8QvWQ/7NO4JgiRkxUfwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhALIxcUEZKkuWlguvAlE+7j5YfvTINBPwvD9R +8Jpghvv9AiBF/3rhC9Yo9ADrE5lpT7yiThGgId/rjEFs83efQnbUIg== +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Key.der new file mode 100644 index 00000000000000..866ce56865af7f Binary files /dev/null and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Key.pem new file mode 100644 index 00000000000000..7d356675ce086b --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/pai-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIK6m/RoSnVZfQNybhbwEvvpC9HdwsIQanArN/E6C8K1eoAoGCCqGSM49 +AwEHoUQDQgAEt0g+MSWAkYdNuJM3hrEbmOWqP0dA98zpdn0PBMjXbFLzmZ7JmHJ0 +3NBQyBU41yekEzLvrtW2SCs8kt7JgOdKDg== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/test_case_vector.json new file mode 100644 index 00000000000000..3e261feec13384 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_19/test_case_vector.json @@ -0,0 +1,10 @@ +{ + "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: PID is not a number", + "is_success_case": "false", + "basic_info_pid": 177, + "dac_cert": "308201db30820181a003020102020825d8cacaf219fed8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3234303630343030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a58595a313059301306072a8648ce3d020106082a8648ce3d03010703420004a3936733f2fb5f49b4668bac0a1882cd110724569f539e6c0b7ba9f199b61de65c364e60085ec00703eff79617594e825cfa25f35070b4a4108a3643a4943f24a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140cd8bbf982af551abc7602c0ba0d5a38eecb54da301f0603551d23041830168014244e2013f487f10bd643fecd3b826089193151fc300a06082a8648ce3d040302034800304502203bd871c41b8008eece6158ad4eab328e262825449443ba9f6869353b28fe22ca022100c7816cb1bf50252b8e69db7f0123afdafa31b3567aa681c775f81a16fe981d28", + "pai_cert": "308201d43082017aa00302010202080aea057c7ab66704300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3234303630343030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b7483e31258091874db8933786b11b98e5aa3f4740f7cce9767d0f04c8d76c52f3999ec9987274dcd050c81538d727a41332efaed5b6482b3c92dec980e74a0ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414244e2013f487f10bd643fecd3b826089193151fc301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b2317141192a4b96960baf02513eee3e587ef4c83413f0bc3f51f09a6086fbfd022045ff7ae10bd628f400eb1399694fbca24e11a021dfeb8c416cf3779f4276d422", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100f15ca4fa4e1a6daa21ff766ea2aa2663eeb5adf24bc6146027ebcee309f4960d022100eb1e0bc129f4952eac5fcaf4cf7160a13aac1edf8208bb928de1a31e6052f5bc", + "dac_private_key": "43f2239a4156adf0e156c26a1eab3a140565e199c921757671b9e037e0259e74", + "dac_public_key": "04a3936733f2fb5f49b4668bac0a1882cd110724569f539e6c0b7ba9f199b61de65c364e60085ec00703eff79617594e825cfa25f35070b4a4108a3643a4943f24" +} diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json index 9e5e28fe05f7a1..8609753221ba61 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Invalid certificate version field set to v2(1)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a003020102020853499e9c955b61fc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f0a8942174fe219a54b7f6ad3c949301515de6de4194408f8116a475d7ea0b29f00feead0795e9a1e80e48d6a78949e8301aedb87652ff2671f8ad61d846ac87a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041414a140f46a5e334e943da00d8d5e66aad6850c13301f0603551d230418301680147023997434718457c8db8642eb761d711e33a348300a06082a8648ce3d040302034700304402207759805c4a05e63de5010259f857516182da37de51bebf1540bd0cd13520b64502203e90821c21ea3b6e047098630d1e79593398732ffc02bf156f957ca0e81f5ecd", "pai_cert": "308201bd30820163a00302010102071e1322349cf11c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000477285c42d8d1e7349a28c95f58b9e08d75adb20c5b44c2652996c8efcb313ae1f44e5ecad0d536373a9128bf1dc6d30958abd81155410132a122dfe89dae1e7ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147023997434718457c8db8642eb761d711e33a348301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022056248c4803fd254d197f55b901f0a3f33f9073068a1b9e750635d288f97ced8a0221008a0e687bfc73ece00b7795c86bceed053636a339c9c0cbf111ad25c82a02cf13", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100d59084416599184bb5169ee6a392ce3488eb86bd06e317752e1563a72add18e70220146e03a36e55eed8f4467b2426f853b91a157746618fca05662de230fcecd2d5", diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json index 6fcc37d0d05f16..e7918feccd423f 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Valid certificate version field set to v3(2)", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202082cc0bb7d7ebfada7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e8ca85d13d91dc036fa21a0c9335bd80e7f8fb76e2dd5d388435351c3cf74350002ceac9023918702083aae14eef77db21e7a737538d0df1edcc75ec1d6f8d0ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d296cd819f482c86d9c1f8305a524b0daf473884301f0603551d23041830168014d1769a48f728c7f09b6f91ef9d80c7522a04a141300a06082a8648ce3d0403020348003045022100a8fc296d51d3f2cbfcdd846503021df9d7f8788467686558379f020ccc94d63e022011fcea517f1781205652d11ce7ac6fb0cb070f36be88b2b83b2f4a70d5181980", "pai_cert": "308201be30820164a003020102020861117a7f475c53eb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200045bef0c28d8dac3cb09e207947322e762c791864ba321754c8fc5749abae091393c7bbc24b4bbd2ffebc918eddb81172b56917b62702e95c88571c03bd1ddb478a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d1769a48f728c7f09b6f91ef9d80c7522a04a141301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207f3799f2c535ad1d97268a0c90542c4792113eeed924d89cba7274a7825b3733022100a7856cc5665b8fab0e4447f4dae3a04c1a5fba459c0fb3d1faf77a3c8a41bbee", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100acded09e95dcbd884b869f5ed6cdaf524a1467fd1eee5bdb28b5958278175389022100f9d0e11ce33df0c97e9412d78828aa0ed1ac14b6324987a103274036c49c7393", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json index fa54b4abe77c5a..b49eaf20ce6ac9 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate doesn't include Authority Key ID (AKID) extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cf30820174a00302010202081b93836c5ddad56a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047840aed224047eff722068ae926aa3f9ff4dc1aa8b95f2cf63c39fd6999ba35073d96cf78dbf2d3a6058556d75e175916d15b8563df6f1c99e768f89c8396aa2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041472cd0b27ad47feb17aecaf0c6ff71a6628a115b6301f0603551d23041830168014f4bd62526842e86245a82d6a42900ad4e3386072300a06082a8648ce3d0403020349003046022100ca8d2134e7130334f9ceaecdc076bc7cce40198e23a3ef1c7be9d28643b40b0e022100e36aa2a1705fc4081459b6b53f3d218c77538d2da69c0ee2095aa4eefce810b9", "pai_cert": "3082019c30820143a00302010202084f12cae8e5e05ad5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004b2645a171296a7f51ab03f068547ac5ec69660c59ecb2ca1adcef1ca7e80bf241ffcf177049da9e4b4889f605415703cb77f128291a8426fb4d4ea6efdc8b481a345304330120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f4bd62526842e86245a82d6a42900ad4e3386072300a06082a8648ce3d0403020347003044022077c30a76932fe2b935732bbe9c68974b32d064f6c9f1e9c6920aeb09f23befdb022042a84cba15ec67ad535552b2c9ed29d7314c7391c45838d0aa4e55e31689054d", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e0cb8b443946cd3594a80e9c18b3df41a16491fbeeee8892b895c6cd052e49ef022067594e7c83d152d1d91a955f9eae9e12de19919baa9000eaa92d52f754ab507e", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json index 38545eddb78cea..5c2d048b6706fb 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate includes optional Authority Information Access extension", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a0030201020208045f8fc2bf378703300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000448c64ef84c0632a6608d3cb364bf69a0079d29ab901d7ff3b4b597c436638ef428a2be74f4bf8fc3773e6cdfbbb176ddbf8c502f298fbddff84f97269a29e1cca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ea686fb79495b0ef9c6b6b561561964f5eac812c301f0603551d230418301680145a9fa55f2b054f3dd076b1ebeb2deaf5c18330d2300a06082a8648ce3d0403020347003044022022d7c1e9ac63169a27cdfe7bdff0f25fb78e5c3444ad92ec3d3890e2726a7bca022032f20a3181309bc75615d49c0cd6fd2b0c27ebbaee7181b8b36e38899e63db23", "pai_cert": "308201f63082019ca0030201020208592e0f65157b6c51300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004fd659aa96867d771e47a195f2ee510fa5594e8318cb48a65285d8e5b58a59007a0a56c72819501008b38bd785d7c67e4bcd03ecfcf8603dde9762fc4124f94a5a3819d30819a30120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145a9fa55f2b054f3dd076b1ebeb2deaf5c18330d2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e6578616d706c652e636f6d2f300a06082a8648ce3d040302034800304502207350999eeaa0384f01e503791dc977a0489da4a3dab2730779a3dc3307cc759c022100b0bbbf0980cb7a37af2bd28f682030098f2503db43d7362da1e4ca951bd846f3", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100f36cb0e6769c61700f27a50387d2ce379705a0f223e52d5d8b6260cfdf28445a02204eb0bfd34be8d16a9b87cce43a6516fdd6655e52c4b5a6cde13ad407c42f2c98", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json index 1c59b0639725f7..ca32b6b69efb58 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension CA field is missing", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202083da5054519e6ce3d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004064e5abc04fcb2b47d268d13fd4ff72f8ce55f1c3c293e1241d0a14a38d11a221fbb0dd9f6711d14c37e079ee7dde2467a28ab857a5a387a23125f0a36d82f35a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c67e05126f57c04e0abb6efdb4c9a011d25c32a2301f0603551d230418301680147f77d01bdf45599ccb76e0d373f179772c84f08c300a06082a8648ce3d0403020348003045022100d49fe259ba477edbde3f30c41f83d28db133885312a2d3cf10d0870fceb71432022020920412c466836d80c9fb1de72b25039893c07ada387854fec4500dbda2a98c", "pai_cert": "308201bb30820161a00302010202084ec927cae6554828300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f34ae625b3fe0fbee4f596128d61f9deda5381c9831e50fe4e6bde25c85f8426bac7661d5bb6e43180bc4b1e1a91fa970b81e7d3b75c60d8e8ce534193ff1794a3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020106301d0603551d0e041604147f77d01bdf45599ccb76e0d373f179772c84f08c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207fb09866b5f6ce0d99aec5df54ac94c0e0fbb896023a15e027b553718033add3022100ffa43e9c1d02c52035e29391aa3a3748acd0ba1b9a70d796932cd6f3d911f0cc", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220538824384db76fd9c646a69a8f9db13e607e38b793bb7be892cf20c0ba1d3fd40220577258b59a9aa3071799525ff00596c24263cee0c4ce8c81a8bea92872c665c7", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json index 873c265f87537c..bbfcc82288e877 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension CA field is wrong (TRUE for DAC and FALSE for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202085f5697509d14da42300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b8a6c2a9787c84464beb4f7494d7b81aa010eb58fbe88487f3124d7971b09c37c7c82f8a6ae63365726364445ec8a0c2508530e3c9442d99b6e18fd649eaa1fda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414fcaf5898e4a3480ba3738c6b284f2185fd019a31301f0603551d230418301680143c576f9ada6b95c32c6a2f74450696f648afc7a5300a06082a8648ce3d04030203480030450221009fbbc2cfeb46c6c6a7d039ef1a059c0b02609aa0b323a666558e4a2fff1a12a102207d4135e4a55324231816e79fa9a0e51a8961e0232de7381fe0337412bed035f8", "pai_cert": "308201bb30820161a003020102020871d0ac32c5c88c11300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200040fe489d1fde9f4baff3c98a9f7c1ac148730ed42dacfcec0f60fabf3c235d280831eebc7a4b931489f1d289da0142c52a0024021b6e732e6eebb48f41fae317ba3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020106301d0603551d0e041604143c576f9ada6b95c32c6a2f74450696f648afc7a5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207b57f3414541b34a8e90c35aa6aa0ab0c395afb7fc8cd5859e1a1af9091bd21d022100e6aea34126b617195fbc453e42638789e513d0c6569c67a64e60a0122da0642c", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ae657400ce20681866c99961b4ba2d88cdf61d3f7c618d9dce44545b89f1839702201ee4c334498527feafe8e987d83b46c72351ee4ccfcbbcd316be89f9ee5f4867", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json index dc74be67a4eb5e..ba6c1583a4f58d 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension critical field is missing", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a00302010202085735aa4df0fb78da300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000487c885471fe9ae6bb7f38408132097df241bf77ea4e7e334c52bdf46e2c55cbbb412bbf4081f21a24ecbcfbbef77713c5fe2cf96e60b80a8ef4eecb1de3ccb7ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041422adaedd3b8cb9ad9fb376582c9f2a433443d576301f0603551d23041830168014a1db0e2e2e7e02c0e672e1203884584afebd97f7300a06082a8648ce3d040302034700304402205680339414256c009b11e30554d45acdb04713189fa26754ac47e763a1ca1f910220705677cdbe689bbc07af8023915b8c90654a1d52b3e9304409ff737079b6ba3c", "pai_cert": "308201ba30820161a00302010202083dea43b1b8847394300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000410b0a48be19c83105351114cdf2dfe7d99352a504afa63506e0ea066d2fea9aea850b8cbbd42218b95b61617f3fcb27e3e911cfa8e8bdec7c7810fd3270413c2a3633061300f0603551d13040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a1db0e2e2e7e02c0e672e1203884584afebd97f7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204706506e13bc371d04b9eee18ca902eb16f6e257556d5ed66d37d9c14b222d060220755831501c025255f5b69adc8aab0cd4d67a69c327dcab7e642f905d938601d0", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ee77d7928d173e1fc11ab55622df33f35bde695a80eac6320f029e9e9536c8d002204748360facc01b838b708fffb3e928c20a27f6526926baa3d32325abee5fd852", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json index 2856d5a09fc731..bc3ff1b91d07e9 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension critical field is set as 'non-critical'", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a003020102020868428acfa7e73993300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042c7ed8ee0883e6c64e767e8b2d662a0df7e809bfd6df3ab5536261da71f333a76f852a78fe6e1705213c3de201fe90d62aaef5c2260f2330447c2dca16a0555da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b047ec75da0f7c894a6e911ce2fa4131c60ab8e5301f0603551d230418301680146e1c39b859b602e989412560645508a8ca28332a300a06082a8648ce3d0403020348003045022100a9907d40197990c189fa7b83a14db2e731fc0620483cddf8e7025bfb5e8649ff02202b6c48f282f032877e8fa58369657188118f1d81eae51e529f80764ada2a4d37", "pai_cert": "308201bb30820161a0030201020208439d87350c23c9ff300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000476a3d16e576b83313570ed8e8d398856c5988d3085c61b8bb0c0953683574f4e37e251fae65d8038e951852ac3f1f01212ca83d377aa9e63578b94b7612c1f72a3633061300f0603551d13040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146e1c39b859b602e989412560645508a8ca28332a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206b0130bb0da4edff11454b97ea3073fc61d8c0207e10c836d1992ed5143eed66022100834f343586a204c6bc31b47fb09ee7b85b22ca9ade0e3f6e122fc7c985acab05", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ad10134969b09e9b74a0489d9621b79638fb9bf224d84be4ebe5eaf882593b1602200bd739740d0ff82387853b60beebd147eaac9274861d64a9044a79d25fb0deda", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json index e88f53c63ae608..344f4e244bb002 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate doesn't include Basic Constraint extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202087ad62b72306c96b9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c7a3741f0af023a3eb364552cc16b3633f2b27f8ddd224aad9e8b9308f4216fc90f7d0ec0af850db936c19e363d033c5ade87c6d8c5d9fc5983d86f01c9ffe67a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414693f0a13b54495a8a2f668fa2775e6ee2f53266a301f0603551d230418301680147b0a00c60189441264e94b9a473049301200ea98300a06082a8648ce3d04030203480030450220422b0b365f5f893727a3ed71b2085299406444f35246a696cedc37678a0c22bd022100a0b67b0670aae4a08385268a743a73941403b88b7c99970b20bd41519c583b66", "pai_cert": "308201aa30820150a00302010202082d41c9cdfc7382ee300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046e2940dca41b8edcf359ba47a5dd28cc0125f6831c09c2cbc6f49c90dc3404a01a7ed0cbc60340532d022970c13d42244ea172e35dd88ccb0e7cbaa237cd8e54a3523050300e0603551d0f0101ff040403020106301d0603551d0e041604147b0a00c60189441264e94b9a473049301200ea98301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207c5eb799ab5ffd32af857674b0db22b55096f813ec9b2b3e7ff6b9bd31fa8ce4022100b7df7ab6907bcffeddc683f48183ef08287a1ae5b6bc6f53e63dbec2634d4293", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221009da0f7f0329a4287636107a5eeafa3d92ec28176079b24c2a79e53c299a26776022100e1569a19519b6fb1f885236524cfa1fa18cfbd427f64d5c33af00c0b39badba7", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json index 626f1fb215c45f..c8913003e0ee1b 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 0", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202081b0efb24062d0358300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045f21d1a84085998650bd4bc6ce58c27d8d155269cde2d1dfc5c2a1a7448d506e857e38d7add3df5e5afbb13de23ecc86c56d64ca5f62345436cda6c61db9ce81a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041490d6e1ad41c80b124667b968ce654303a7636f57301f0603551d2304183016801410cde8ee32b2d118f49d7c67ab308e51fc0583f4300a06082a8648ce3d0403020348003045022100a1ec287ac9eaea60c849a54770104b4657b304c258189a6f634dc8bf1d4b52fb02200e6d3f2fbcc7f904cabb83ef5605d0e42c5e1a3d15fed462e89d219d3cbfd2b1", "pai_cert": "308201be30820164a003020102020852c9c7028e5bc313300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e27260551a621b14c87cd1d0bed9b67a7928f0f3cf4e40114034e22743240baa309addb8d3928e3603cfc5cf6a4d55a10d3bd85d5a11297689979ab27171426fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041410cde8ee32b2d118f49d7c67ab308e51fc0583f4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009c7fc7d6ce8700f80009ec49af5265e6659559f9bb9c2e31765edccde3738fc4022028ae84c2c73480f65538ebdfbe0ec68bcac4605fa33f7c4890e2c022ae8a7160", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220515f2129149d39d763f4741aac9cfd8d63f2854794e04d9910accc1a26905125022100affd2a0d45a97fda7507e93c3c0a61530e34ae2b58aa74393d79983025b3a5dd", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json index 73b9d0f4485043..12c3553fce523b 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 1", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a003020102020845ddc355eb44cb0b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000497a72a93460efc389bd2dcd98d417b51684b300e6a2557732350b7536442ae84acd361ef369eb1a3c13632cb9cbf2e05042b1906b076eb34cb7ec700ccc50fc2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414746bb4f5d6507f725492773f087ec9a129cbaf6e301f0603551d230418301680143592c45097add67f130549956a328d45ec65d7b3300a06082a8648ce3d0403020348003045022100c32916e1ba8794a674f851ef69790973a2461cb8b8436b9f5971b39f404e5ea80220428f059eee31dc407a2dca16a34e1512430c144fe2de0febd34afef36e101d84", "pai_cert": "308201bf30820164a00302010202081c6855b8c003bc1f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004c6e5d766d0276558b06b6719073942d2c4f82bb4bd68b3a2ad769610e66bc6710b982fff125c87d2304d3f22db8764bfc7e4538dd8cc4caa68ca833d6906c0b2a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604143592c45097add67f130549956a328d45ec65d7b3301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a0d8148f6b64ce392594d0b0740e411121b20ab2b32171b37a887d4b58c733960221009dfeb55fd3ed97e09b9388833e92d7628adcda2f980466cebc21f14ef61d4947", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100dbe77876c0798d5b2dd778fb2836f60c02e433d8dac1e268c910a8b312eb7d9002203d73c8347b3afdf61324fec7d3757401086950c5b3e202c2893339708fb02f13", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json index 2dc89941584741..50e4305252e1ff 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 2", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a0030201020208536312714af9628d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000428a2ab42bb49a7d6c8f9bc12a39bb65395d8f7542b1fc120805e29fc95eec92a320f8395a8b00353d2e68a85bc34fa6ec52439ac79c237ee70e537d966eb0f52a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414193d5e2b787e4546689f37b760b034c05a182a14301f0603551d2304183016801465300898455f00e39a1cdf41722c1e4faa351480300a06082a8648ce3d0403020347003044022066b1464aa4287113e4d09ba0f5091d1fea5b1bf7d78cc406c7034a16f5ed0d6e022036cbcea757db79eeb18f58118c614a8293e2bc39113bba3b16fec623f47a9308", "pai_cert": "308201bf30820164a003020102020808fede6e9cfde69f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044d5be8e5adeb82a780fe4843f61656bd66f8797e4d1d29b9ae3b5d85a3fd763a750677435e0b7c7d1bc31de5348724b777d11a50641aa7e939da89723a58a7d7a366306430120603551d130101ff040830060101ff020102300e0603551d0f0101ff040403020106301d0603551d0e0416041465300898455f00e39a1cdf41722c1e4faa351480301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a98155f54f94c12642f3cc2943def076896c59c56a6ef05b2b0baaac8bad5255022100d22675e47c094c20728707f336308e0506840d82efadefc2659fa50df0e14c3b", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022043857ce28dc06fc4f47dec75539d0fb06db7a83b004c33fa15aaec319c893770022045919bcf544eb9f9f2fabdb2d531086ff8d5267b1f2973178285bfdd3a0a8ff3", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json index c8299dddcc0703..6e8bcd13901af9 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field presence is wrong (present for DAC not present for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a0030201020208053c754c98e06d70300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f5db47972a50f94333082f22deb5441d9d3b689a27ed37f991613a4e4975584a2e63a6ee0abcea1be4167581a32557044cdd78e95530c3b91ad8f6249dd10489a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b4c1a2cea21341f6d5e37bbd18eccc2c51ce7793301f0603551d23041830168014933cfeb600529db3dab05fdbd807e47508955f3c300a06082a8648ce3d040302034700304402206d13aa5ee281423d98a602cb198953c85a49ea4af689ae21f0a46501757fec48022055f9dea608e26eeac0c72e535685a2d137f86b652cfb722edb534a292fd9912a", "pai_cert": "308201bb30820161a0030201020208745bea427d2ec5b7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ca752ea764c0a75c56d3035523ce48bee4d81f8d47782b3924130fb88f4c6f32b540d186f8f9b479bc803a75959f728386797f745d25c1cafb67c4fa0e058600a3633061300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020106301d0603551d0e04160414933cfeb600529db3dab05fdbd807e47508955f3c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022036474ef7f9807381c98d2a504cf8d1f3557a6a2c6e175e48d2e551bc0814b908022100ad3c08555de905e94dafcd89d36b6b4f0a897512edbdbd4d3a1cff69a241a0b0", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022070452625af7b0288d6316771c93405847db0b1d5baeaeb3fba505c55cd0e5c44022100ec154c7011209cad3e0b2a3f3286bb0c748bb2393612248d01a09c6943e2f932", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json index be1806379c5af9..22ff0ccd71d8a5 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate includes optional Extended Key Usage extension", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a00302010202083c523c0b57effdb3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004055f2f885618861199a5db69764c7811cbfd035dbe1cc696e014bec17414e918203e0765ed0d293a4fb1fde2ff9c59e32d81e51f4a9cc67ec9413044e2f837a4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141edff8148dbcaf2cc25ba42fc3c3cb0e3fbf6125301f0603551d23041830168014014bc0cdc665fb2486c66af5be4728cf6c900a61300a06082a8648ce3d040302034700304402203012eece615e9f9daf5d5e7f45a4c017c2d446dedbe0fdad70b1bbc07efb025202201bfc2b2dbc8c5443703dad78f7062f6ca7a40fac5210b2497210222ddf74a994", "pai_cert": "308201e130820188a003020102020862271f0ab28f7f07300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004bd2223da4d3069b6488c7cd6ee59e06af0fba4edd56b7d181ff3c833121b30d48d0f32db9259b98037b3526c7684cafd513a146a29d4d7baadc5782fb47dc785a3818930818630120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414014bc0cdc665fb2486c66af5be4728cf6c900a61301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e30200603551d250101ff0416301406082b0601050507030206082b06010505070301300a06082a8648ce3d0403020347003044022004636ce4b632b98b3431e57715979eaffcb138cb3abac44fd2cbec0f30c64fe902207386f51775528275449f09b4259e8296dd828497b8f59e7201ced3214ee12427", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c38a7f5dac777dfb5e8d557eb460d15ea2b681c1d167ae9ab96651e42f42f79f0220279eb7ba6f3dc379f37ac4b2f07cdfacf004c503a8a2c5d109f1cd239648ece4", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json index 26119dc176171a..41fdc55e63a3e4 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Key Usage extension critical field is missing", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a00302010202082ff7dd31d12569f5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000405a5323abcd8edb41ac5a69fc6bacabb83dc0f75c5b43b745d53c7bbfabe839e019d3bc9be44d5360291cd8e826ce9626003c333fcfc99ce5b9d49dab87fb78da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141c99fd290b5709778a16cc3a68352b1edc4f8644301f0603551d23041830168014e4e747a7d0fe5105831ed079e820595673461bd4300a06082a8648ce3d040302034700304402203e1d07f6c2019695c6e1eb4e38654560ad30f82c38f4c8f231c95bd69553fcd5022058abaa2e7a82322b5d81f16786cc9237b3d10bdd5d621a5b2ce7ef5fef2c12ac", "pai_cert": "308201ba30820161a00302010202081bfdafa03b0d8201300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004645e57c86ecd4345faf4548c6192a42ed184fbdd59ff3700a1dd1dd97109a2fe2388065fcaa3278fd91cf16951c45b26d166a6b377b56e09b5d6ff2bad421c6da363306130120603551d130101ff040830060101ff020100300b0603551d0f040403020106301d0603551d0e04160414e4e747a7d0fe5105831ed079e820595673461bd4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402201f1ca77038af496dedb9dbfca24b54809db0fcb8fe1841f8b900a36e625d22e20220577e6f488214267a3d3bdb8b3f76d693a0e1110aa95ebb4cad704728aadb022f", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c18d4416e5ce172103bd33a4282438c8fdcd40e965ee4c2d0602249c18f72f4a022100c705a866c0bfb10fe9cf89e0846b752f4b8447a110186ec311538258cb1d36b2", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json index 89ae327284be82..403a7bc9757ae3 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Key Usage extension critical field is set as 'non-critical'", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a0030201020208390f18304e91f339300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000456a4433af46b51d3a9109e6b5a1c59bdd13e19b5a3d31047b25eb3bf5d96392152ada13f3000719771b7ef9affd85c265c7d901c10aac888af727bc24125754ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147a6079d172001dbeccdb1c920af00acd76c2d71e301f0603551d23041830168014003b6b25e8cb0898ff00caef87a5a6f0fcc6ee0e300a06082a8648ce3d0403020348003045022029742df6bd63c94f3bf49b9eb907d36634b798eab6da0545c99b7ae06dc803900221008fd2e4925ade569b594365cef9717d00b7fc8dbef32f091500299a80edc21f4a", "pai_cert": "308201bc30820161a00302010202087910e2400eab872b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000417ce00698978d36f38cd9e3596c7640b18aa1fd4c6e8069865a584e8f1da13e7c5047c831ffc517d417a8cf8c8087a827891e9e9680659ac56a854ee300f8427a363306130120603551d130101ff040830060101ff020100300b0603551d0f040403020106301d0603551d0e04160414003b6b25e8cb0898ff00caef87a5a6f0fcc6ee0e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008954e8a1d5ca5688bf724babdc15a6c9ac9c570c53c1a1ebfe8a983d8b2b2ae2022100ff7822f92b3a143f08c2f27912a849fcd387854f5891ae5a953046e7ac5bdeba", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221008470dea64aae7eee67a213db62e7eab7a53af1fe0b1f8aa7ac137f102487cd0d02203e24b8cfd5abeacb19055071e01fc28b9de43567bcb300b070dc562ba0e77cd5", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json index b54cfde97e335a..00663111609102 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Key Usage extension cRLSign field is wrong (present for DAC and not present for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a0030201020208021f05d9209b5eed300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d54d447e8096edc631867938576b4cde7ced88a3a201a7b5645b706fe1427071be4f8a2bfe3e53e2ae25b7540d08d491b05e0c53ecef7313fd32782882b7d21ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041499d27e55b5cc920feaa2062fbc5b045acfe87e32301f0603551d23041830168014de884c14c6f2bfb8911120f195130d1181f4df6b300a06082a8648ce3d0403020348003045022100c9a86509c9430ec42e9a4783451184f283c485d7ebaf0829865f473ca5deb99502207cde5f2591b80f0ad0b27d2f1bcb0e27b1b4e55a9d5034ff60a2b891e2b80ba2", "pai_cert": "308201be30820164a003020102020857c3959e77c71e37300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004c7b0a2a21b5cb8a8b04c7f074e44ab0d183b50623bcc4a7d58c7d9c30a4e6bdd4b7e03e4f6b8dd664c991894c6f805d7cb621e6a49d0c1a459550cc530fc1a48a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020204301d0603551d0e04160414de884c14c6f2bfb8911120f195130d1181f4df6b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009d9e282f05420d5c4eb9bd17d53e1dffbc485e621df668b96f9ea5736921ba0f02203d68a141312687eff02b58fed54caf96e6117481744fd4a7254fa7acbd0f66c2", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203a79f41c3abfc33d4a7341fd9613a1485015b659ebbb75dfc6ee9faafa8b3eb7022066cd96103af8fe1e9fb14471997ecef5aabae69e44eb0714a0417b29d7198e10", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json index d24649ef06d780..0a5e5fed786a81 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Key Usage extension digitalSignature field is wrong (not present for DAC and present for PAI, which is OK as optional)", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a0030201020208568288cb4b319ee2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000491d6c7888cf88fe930493409a59e9bffcb7da6dfe8a24fef4366368171c407d4ab2cadc2a4d3aedf78f86034b510644795e8d60503f3393024102ef1bb3445d6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ce4916a3fb7cca300ed9b27bcfa6c52b32ace0ee301f0603551d230418301680146501d5f9b760746c421ffa03f40ee1233d87bad3300a06082a8648ce3d04030203480030450220273649bfb1b74c74a583f18b43dc0e998c8187b0862d4d8b7ecd4a38d76db1a90221009f8f26312ef21f1525ab3b1872c2601acb73543b97aba395111c4604b388d1a4", "pai_cert": "308201bf30820164a00302010202085067032f9c6011dc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000407e035085865ff28c03934454eaa22dc1c4f36c0844f1d7c7ffaaeacfba0e777efa63547f59a4384448841476d9955f943372f43aa7d498c128dac0b3ac5b362a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020186301d0603551d0e041604146501d5f9b760746c421ffa03f40ee1233d87bad3301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c4cc07bb7c45d705406ff6d3b7ee858cec34822d97ded78593387bd708a0f219022100b5a010d2b5695dcee2ce4f4f3fe7fb0765671b4c29a556fc773575002c5c4235", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203b8a87ccaf348a4a13a6ce23504c741ec4a8a56c63c5c02601e7aff8b7adc86602201f3848c9ee0a4141091184dd7bbe75fd44264447d7d75c69bc80432850778dc1", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json index 84edfb431b15cf..d33d85d9eb4e10 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate Key Usage extension keyCertSign field is wrong (present for DAC and not present for PAI)", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202087924884a38f4a5f9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043ff5af3215758482cd3e77eec68c76311493aa69bc9135dffb142ca7f4fe943f5a5498ce135c7ff260af9bef4e95a83fc20b7276c9033999f3aa2cf744ffc794a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145d2e60837f18264fb553e58c21328969723c56f6301f0603551d2304183016801434a3a3a12ce0eaaaca884a4e022b4adc5147510c300a06082a8648ce3d0403020348003045022020ddefb0c44583276a368c74d61b2061f6c05efbb96e83700c15e03afe3662fd022100efd96ab7972c087230bb2b6ebf9da69e2abe69bd6ddaf68b4a9d64de847163ee", "pai_cert": "308201bd30820164a003020102020845bb60ecbb58ff00300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004a93151daa785620f6b04045438900303a6987e6c2a67cc1216fc37dd84c62b9c6e429084d6c5f24478b917813cbd92087c3210ceb16fd1fc1ab88cf03b2a0bcda366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020102301d0603551d0e0416041434a3a3a12ce0eaaaca884a4e022b4adc5147510c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203d2d0a078afcdb2cf493d9e788b0d5eec81867f7278b4f6f4a667a4ac3155a5c0220452e9d85ea0e6be15989662ab7dd00cc49e8c7250648fb74b4c841f3fdef52cb", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100cf4f0659d5ce494fc94022fae7a010790cc4967f81385d05f3eaf1d73f9576bd022100d7d876e9b7f58cdc63413b5d8c9882f837baec2e0766d6c6359ddc5c582c823f", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json index 07192fd11176ab..bfb135ef06cf1f 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate doesn't include Key Usage extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cd30820174a00302010202087d057f834fe94eba300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ab4ce79364db7231c37b47fcc8f74842557750575ad601d9f0ec133f5822f0be460589c0bad5ff8a64632bf2f1cec2fb7ff8ff7c540abf412af029ab50144869a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141706f69bef3e85e7f2c404db903b3b15937a3e9c301f0603551d230418301680149ac3631ee8a6ea4db6d66f6ef8b48653415deda6300a06082a8648ce3d0403020347003044022061249ef479d1dae146c9fad56a596edb487f7f907f52c83831707b02cdfea23502205819279fe8bc41bb95eb2784f1e31b3261a7d54306772094de97b7a84225c786", "pai_cert": "308201ae30820154a003020102020839ded80c128124e1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000464e59ce6959d0a7ef1369052d40f3a7a1ff39896b6f2b93c41f7e09f8207af46af12e996c460d8c6e310825684d5d925169df233508cd511d989bfa54f3889a8a356305430120603551d130101ff040830060101ff020100301d0603551d0e041604149ac3631ee8a6ea4db6d66f6ef8b48653415deda6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022043d0153166f4b8c4bad6bfea956f5beef2fe96febb2684ec92a2c99828b7a402022100e37b10e382e43ac44d759121d3faf7882598e46b3337ef5fdcd3edee383bf24d", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201648c9173efde4f9d472307d760fba1dc8450db3b519a47b6e087d27eb5c5b07022100acf41d1e385382b6cbce70dbcef4735bbae8c57e8f69115d41fba11a807cb0ba", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json index 42d8d45bfe2692..f248eb94d4b644 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate doesn't include Subject Key ID (SKID) extension", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ad30820153a00302010202086e2ed492bc70d71d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042072871fa6fc54a1885c486f01f8f98412aaf0c51b9565da9bb531227f0d0e2b3ae2ddac35c8f95e1b40b9e49c3af84fe9fec864a2a17cff7df6299349e2a491a33f303d300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cb6d33825513ad3ca95e666e46b402246ffd1b81300a06082a8648ce3d040302034800304502206a006730723f9b2935daa5e73a217b49de60195b01f9242d53d31ed901a59671022100a2720f5c12c542e1e559bfc38499449720baa863ce704233fd21142bfae0faa2", "pai_cert": "3082019f30820145a00302010202082d4efa1768bd9df6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e8c32f125ab85828abd0168b08e2e17637ee1a90bddc2a6621b45a161435711caf3cdfdfd7e5c994b6e2a033daaee3c82da0a38e9c9858ed7426a7b0bcb39094a347304530120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009b5e5d069368ab4c684368da10b1dacdd4861a0c4421d03dc47b8ce749969b840220656909b3a25b4d39965078f453022ec2c0192c3e62f344227144b08b970c4640", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220577d16c1b4e48f5d8aa4a2f89ab44684ea2b8c23eaf76ed4d62e0e4924c7df070220711ea523f0311b2aba70568b0e0dd3023b10a5887ee487f1a4db479d8f1ea7a8", diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json index 9b3805eb26e501..d7dcdfbf34c0a6 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate includes optional Subject Alternative Name extension", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a003020102020876cd3daa9f77b736300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000480bb57fb5c29071c16c72dd9ca923f0a308395d1598589de90a67ad67efa0bbce89b9f24ca57112be21bd0782b3520c53289a3a55528134b3a3da80a5923459da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142b39990c7d963956b520dbd4762edbdc9d2210bd301f0603551d23041830168014741a7b63672a6a1b52850d2c5fc610fe1b70bc37300a06082a8648ce3d040302034800304502210085d0d397c932ae4c614cb4a25038494333dea82c216227d9dbca696af684ea0502206f9d844bf37f4484798d089fa4fd442c9d74d3af1bae246dc89d64d6a0e58347", "pai_cert": "308201d330820179a003020102020847e8708a15a23c84300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ac0fe95dacbbdef66a9bf7d65fa16f396965708558f962ad654410b30c435837542e94c7c6bfac2ba5a5f5e86380a7a9084b5ce14fac6eafcf83ca3eae90494ea37b307930120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414741a7b63672a6a1b52850d2c5fc610fe1b70bc37301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e30130603551d11040c300a8208746573742e636f6d300a06082a8648ce3d04030203480030450220760375098e7b13fb67cd344eacdad6dcc82bafd169e2d1ac310c6bf2d8752205022100f4be9ef00b70882019241b2a6b76354313711962def73c3d16cb64b2ad8212a9", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502210090124c1624a6ec5f6ed299ba83ad2d2d640fa92290982a15f6e33fb3b06676dd022051ebaeaaea7e24f58c96540fc075dcdc0bc437c439c547b5d878e271157e9f6f", diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json index 4d0b865bcf34c6..880c2c100c0d8f 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Invalid certificate signature algorithm ECDSA_WITH_SHA1", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cf30820174a00302010202084c92c16ce75c48bb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004bd174e9109a8e7cda6c486ea56e2f0b194f874a14a29bd2ba63f9a94e8eef8ef733b212fe230725ee424792ab41fd5a3ebc5326e41d0a9846b65e97a5a8b049ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b1a07af3016f22fc71a32df1ef88841c6922ada6301f0603551d23041830168014ffb717ceb81d8d127e9cbc8588a2eaabe60419d9300a06082a8648ce3d0403020349003046022100b55b9ccc5734554e8bd0e3902424ca55837002ec307de04151c5bd72f0972ba70221009e5e620993c7a60341a796f21f0b3aea1e843ba8c0d4c97041b9782cada89cf4", "pai_cert": "308201bc30820163a0030201020208394bd8ef7c25fa52300906072a8648ce3d040130303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200049614adbdb52ebb9cd39657f43310decb7be7723cb52df8660ea86d49a294bea2ebd92c0188a72c2281c523d6b082f575fcf1a936c0040841467a14d7a31b23fea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ffb717ceb81d8d127e9cbc8588a2eaabe60419d9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300906072a8648ce3d04010348003045022050539e0f36bce10825ebf4876f54d04e7de6f7aa40ff6232a444bfc345352255022100d2e05048e249ab2ba422d0e09a233aef5ba4719a6f7cb4f83e9b43ca8134dbea", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022062ace16c24819f25cef24ef481df62fbcb8ff6ab86f3225421adeddebcfecfd502210085cfd967564cd84698de4f4b1ff1a8032363d1b4f3a5ae4e463c75e0d4e2fb57", diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json index ae15b5319c4c8d..a4292047f4275b 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201cf30820174a00302010202080a6d20ec541a9788300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fef168ed076810e44c4d93f6e9b7dd63562f488dd8a562fdc14b4150d701d5fa864bb0b03f3e681c75aa3b92a47db445888b16c363e1e931903d8a6f5c994c8da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414684fafbfe3001b075b41233abfb8c2e9fa27e280301f0603551d23041830168014967d9859b09201222a48f2d3a06df7fbd0c0d605300a06082a8648ce3d040302034900304602210091b44bfd54e94510b67c9b325a1f00d9cb467bd5c12d336961acc5a3a37324d9022100e51014934fd403c7ab9f4f408b291098e744861fed66bb3e0c5754e7140a019d", "pai_cert": "308201bf30820164a00302010202087c76d8c6b0513e6a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044a0345ebc50a500be2db044330f80bb7e64fdda251ee5323d5b96c56ae3d18f25fdf78f1bfdc8d4ab137aa0fc98fbaeb4d7aae565ce269fe01bbf40f2d3df168a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414967d9859b09201222a48f2d3a06df7fbd0c0d605301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b4a69ed8ae34b9e69ba5945154d66b59ae79c7685d644b31dad5061875d1ce86022100ae682994a517a96a454178a78d9e2e7f7e7f0036d518852485d7283b3fb372d5", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ac0b49310f9c603472ef27b77b7adacb934bd62c225474f70d39eea62cd53a5a02210099a89f2297dd55e8f98992c3928c3d834b1ab27b287116f1a94eeabe4d68331e", diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json index 64a3e70734ecf2..fed4e721296cd3 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Valid certificate public key curve prime256v1", "is_success_case": "true", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a0030201020208034c3cf7ef307f83300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000498f6b8f8c098d01a3c93bd4cf213af4758f48978a18172fe0e5b2bb0bf3fa0af666bb945e45ab4e2a5826d2ea4ae7cd1ec384d9d97022b3febab74557288208ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b350bdf1aad4fb3d74eaa03c2abdb2764d6cd535301f0603551d23041830168014da7a67a5f221866661471e808a6523dd55856834300a06082a8648ce3d0403020348003045022100d692846be1b39c154cd0f5ef0536c7fcc0e21c5cb24ef1d7794e12209f184fe102201731bebf38c51acd3913b7612c92f69f5a3d8c42fa5a921c0e62865dc06a709d", "pai_cert": "308201be30820164a0030201020208065cc0521db0ce10300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f0d91b8f91e6722112f2f88021ff3e04731d6af15edc4ed0368c7e9d4098b442d437b7ef758ce7feca8eb100c81916c26ce49b8b0d3ae1d6c4b8d96dd7823b6aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414da7a67a5f221866661471e808a6523dd55856834301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221008a904657f43c8c7e43f002a812639a391870bfa51b482481ff4c50e8fcb88e2b022047ef3730d97d29198cf0c55e84b778d267a16ef17a10de9c6b9379b37c3a7d20", "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210083107ee77d879acd4fc612dbb4d96f4ad5d40ccd7350b509f88f432f626f8ec7022100bfa421c220aa548d2fe939e4bdb4adb4e90194c89d9d93b79aa7c257de9bc8c0", diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json index 3bb8980e1f7c19..1d4bfd8c37458b 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Invalid certificate public key curve secp256k1", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a0030201020208159f2db80c8688b6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d68bf47e479b220605e3a4a31ab9618609951cbc5a394a7d5ce7d8fa6c977f3dac3e32135f863af41133d42589e67246f9447508ef19ac8c21ee459c389cc350a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d2ccafbcc0e990f3a7f49d5f57ad736ba401b483301f0603551d230418301680148532c4fafa4e2f896107e5e9b1540e20859792d8300a06082a8648ce3d040302034800304502206300b25907bd1fe1e2a88b9b8574686815a49314db8d151f9edf0bbf342e3b25022100c993b4c6ec106ff87fc748fa976994200b06b1d176e44d658ab45b3152f7cee7", "pai_cert": "308201ba30820160a00302010202076da356b4a721b6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313056301006072a8648ce3d020106052b8104000a0342000453769340c2226a57d673e9f998a3f903fa017e9bce91f49a3bf5f064d9464c7a7a961864a4932c5bdcf9fbe19ea4da25fefca60bbc58b4c4dc93bba82adc3713a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148532c4fafa4e2f896107e5e9b1540e20859792d8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220228543574dbd43da23f084df886c61619a876749e2a66226ab67c5d541565ccc022100976a69d6d0785de76d9852c172c32bbadbfb259a314ef134b07fc9ebc880e9d8", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220420e4db19950c3e205c427e9678bb78f701a93c2caaaf5bf54f2a3506e0a6a0302201493ac9216695935d70aad5b06e835efa1b49da6b7de9ed83224fa1c707170b7", diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json index d96f25dde02781..bac15b7737d55f 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: PID in Subject field doesn't match PID in Issuer field", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a00302010202083c116225d1c63705300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d030107034200040e6d3bb1f6f06ce5db1b6aeb24587339fbaad8fb40b613754119e2d8c7b654801cd1ecc07c349ee88b9a53487cc201f9347f3e0564be7f60a4d6ea61ce17ea3aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414df0ef175cececc49f84e2b5583b9eadf3497a93f301f0603551d23041830168014ab768451266a206497d304c55a9baddfb8afd934300a06082a8648ce3d04030203480030450221008924ea4a9581fd864cd9767f5a30c95b526e808fedeeb81fee60e6c9e3dde903022006f8c637cee3b4caf34207b9fcc8c87816460740fd73358051614c3c43d576f0", "pai_cert": "308201be30820164a00302010202086c4e02d4f7ee51ac300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000424f8a26698f7c85a69359fbb724a05485b7caf964796aaa4f02513e790a289f32d5add93e78fdc2820a855c024079c3d75bfc242b279a1332ec516f3097fcc74a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ab768451266a206497d304c55a9baddfb8afd934301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c31c78e5ea4a825efcbfcc758b9dbe9401eb33475ffc02e8e9c01bdefa228e4b02205c076387c2d796e3509e0a6a9ae4993ee56c3d00b2f058cebff7b68b6c5b0977", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205018018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c843fccfdd89f6d5cc457f1f58f5184c975b19fd1178312328563a606fb93f8702206ed82aa8d3824d3ea9434813a49ad731702ed69650cf9be09151272294945a96", diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json index c274c22d7538c9..4196d49a74bb5e 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: VID in Subject field doesn't match VID in Issuer field", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201ce30820174a003020102020867c142f97f529383300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646323020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047e8d29adbd27901afd2ba88ee8127ab4890abb5883a28069a09b3af53b307dd1e0f530ba36a0a164fcc3eac230326629a59eb330b6bd1d8cf34f92a54e187e6ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d5a162c530ee09695c6751392113e4f5c859a98a301f0603551d2304183016801441b45b408991886acac75afeb780845c93ceea0f300a06082a8648ce3d04030203480030450221008ce4aedcbdb09488f98205bbd013f986f023d402fffce2e079505b25a144227d02201de53d35dcfefaf0863e2187e90a84b176cf3f5f1e4d915c70edc345ae0821b8", "pai_cert": "308201be30820164a0030201020208178ee14bbc76933e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646323059301306072a8648ce3d020106082a8648ce3d0301070342000477731ebe24d0f7889902843c7b37c3aa05f65f3c527d3cebee0838a9edda8ec4db1ecae4ad671b8acdf115654d032975a85782600b937896a9d69de1a50f5c0ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041441b45b408991886acac75afeb780845c93ceea0f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100fd6966017df84701e73c105c862fbde730e02101f86c4a3f4ded69a33ae225f102201cde0e4dafb66f426d4a5ef56fe2176f8852b51f89eedd6b51656043bf40048d", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f2ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022016558fc85fa9ddc2b6a8fd315465288e10df64a4fa5c7df97a4d4ad5d718624b0220369af39142dd44abc12fc1b9f9acd8896bede8f4325ba5aad422133adaea0be5", diff --git a/credentials/development/commissioner_dut/struct_pai_valid_in_future/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_valid_in_future/test_case_vector.json index 36ad3a635b65e1..11d762523e0540 100644 --- a/credentials/development/commissioner_dut/struct_pai_valid_in_future/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_valid_in_future/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate validity period starts in the future", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cc30820172a0030201020208454a6dc9e9a2974a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c0446464631301e170d3232303932383134323334335a170d3234303932373134323334325a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042de758a70ead588db0aa679e72178fe3291b5e6a850f7994bc9c4a7af6fcffd2ff114461b29b86ef6bfc01208b83740dbcf11fdea4d1a196f98896bb428bd83ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c83ec91c2a4a2b72f023cba57ab8aebd1450d2ab301f0603551d230418301680141b52835b0aea1b0ca641e2ac307a42359efc373f300a06082a8648ce3d0403020348003045022100ab803db22f397fd7203cd196e47a71be404719a582429be2338fc4314bb4171702204c847835c3eef57f8dcb6e2dd361df8b5764d7d682a0a393d056834f0c6fb6ee", "pai_cert": "308201bc30820162a00302010202086f23132964c502fa300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c0446464631301e170d3331303632383134323334335a170d3333303632373134323334325a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000478e5567aa7cfa53759aa645e288e8ab50cc355723e98a6b9189fefaed87048917c294b106ec478a0f264afc05a5d7f1efb57d63ebc3abeecc0b48454a5c5d380a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141b52835b0aea1b0ca641e2ac307a42359efc373f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009cad628b2b80361fab025d2607ca9b44262ede96ed26eced42d3ba5b8276b4fa0220229cb4fa39f9e39e74623ce86612a30555b9f0a6ecfe2ef85b75fe97be148ddb", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220119f54818c1ab5e24f23be069a8e552a96aa2627bb5b431ec3769216822c96e7022100a8bfc1afcc6e3dcbd93faf9c93ac93e690fbe2558fdf22716a0c0933e03a1687", diff --git a/credentials/development/commissioner_dut/struct_pai_valid_in_past/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_valid_in_past/test_case_vector.json index 0f1e2e64544159..9f64d438cb41a1 100644 --- a/credentials/development/commissioner_dut/struct_pai_valid_in_past/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_valid_in_past/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Certificate validity period starts in the past", "is_success_case": "false", + "basic_info_pid": 32768, "dac_cert": "308201cc30820172a003020102020804a1377d00a6d962300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c0446464631301e170d3232303932383134323334335a170d3234303932373134323334325a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048b8fab592168f44e47b6e5db325b98f7be98893588bae4a37d0e14c6c4c36b28f903de55eb8b20738cf941cdc5d1cb664798916c2c1272ad90240b5041c5e842a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a08873bc22f7d3b12c0413b1fc4bc907a09605f1301f0603551d23041830168014ceafb2800c542e5c7a25c1927f67fcc9e24dc317300a06082a8648ce3d040302034800304502205b59ef30fb501126afd11fb309822c45a03287fec0c709ed32bbb977f47bf0d9022100c98647b5e33a6a91e4cadafb66fb4974a6d4ddb2a044f8eece655852e58e28e3", "pai_cert": "308201bc30820162a0030201020208498271f690d142d1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c0446464631301e170d3230303632383134323334335a170d3232303632383134323334325a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200045f65df3af4144e4d2a8dff68620011a5a24f00081464281522a47823b84bc38e647d0ebf20d172fa6a6c0f810bfaf02ad6046e71b1f9bfb70f382fba4694b9b0a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ceafb2800c542e5c7a25c1927f67fcc9e24dc317301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100dd489d437280309b39dbb01a76c3be6e18c55c76913df455db9fd4b993e70237022002e0c2d331fb7abe0684ef467159bede7a57fa6a3212f86d925c90be1d33fdec", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402205dc619e5096ea45ea834b77bd680e9d766ea79bf537f77def6048eeead88696802202f6ed57530098471cb085fd2d10e32088abf227e066178fda7dc78a77ca0f244", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json index 18b22bc258ddfc..beb43d8051fcaf 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201da30820181a0030201020208075b92e4e6b84e82300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004c17fc6509ae5a59424f3c708c0608fb7a6c0315e11d4b2225d1bdafa9086c3a14408da49d9c20b67eff3d682f3d04c970b6c4f635a20d41783481bf2ff49ee01a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bba10e4b38e2c0e246051e84715e5baf6a13fd60301f0603551d230418301680148dfb62ca6a6bc48ac92ec1ac6a2371fe4fe3267e300a06082a8648ce3d0403020347003044022057b0b3d07ca9dff103f666d325028046200168451b599f091a8fcae50430ee74022057557b6bea2d6a8945a783b15b4b95697d815bb1f4fc99f2174ce62307ecd692", "pai_cert": "308201cc30820171a00302010202081798022b33fbf3d5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bc34fa7fc9ea49b2731e65c1d78e13be11af24e7631cd36292ba3a7d6bdb56934717611170b9c989f64d5b7557081fb3a6504b3a443772528cfc5d0bf2699d92a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148dfb62ca6a6bc48ac92ec1ac6a2371fe4fe3267e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a0090fdd7dbdc51282166ccb310ea9fac1e099235bdd60d454366e889d287b170221008d86d2cf63e6e351a0185c5357186fd86e078895810e3a8a0e1af1c1cc8be0aa", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b621544bb08ad4d9f4726bda7ee7d4401d8b371dbf55ecf23c5f77f9cfc99dec022100e3b4ea7d887641f74f88d53baab86c22b156c49a6f5d26c39133361100c52eef", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json index c45442381c8753..732d70cb510e00 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201da30820181a003020102020827b0ccb4f6500d10300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7069643a30304231204d7669643a464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200043f9fd0355ae1d7e07718cdd18ef833424630cdfc170bc1bcc75fea873bb74fbcdb66ef0a146488433252c69a41e01c233d3aa055710308a1385c9fa80c5a945da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414264be0d1bace3eca7b1a402b913e33af96cbe7d0301f0603551d23041830168014d68f452a3f23173b4f09351fb28b94500a5cd815300a06082a8648ce3d040302034700304402207ee9bf16ab2d8ecf7f1dae17e13a276ada3823dada77d9c248ffd31490ce37ab02205e6c75a73c03a736b3d107b3f6b61eb5829ad7a41718e1c4c3aa954ea08c3627", "pai_cert": "308201cb30820171a00302010202083c82008c7ca9964e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7069643a30304231204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004515a9008f7a5bea6990873b1f97b413c701af0c92f345faff86688e1b5b918dda5792fa097d12196e94fdf06430b58e685505456126936fa896280eaf012ed23a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d68f452a3f23173b4f09351fb28b94500a5cd815301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205e6088ae22c474f3a74c9ccffadd5af64f2b454ce2f8be307231038721d088fe022100ba91ba65bc7ae67077e4cd359d8e8c62731976f7afe100bb1626e951fc0864c8", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c4d3874a8c4d4f346fde865cc123e2fabcdd12e5836ed35006673599df20d144022100e137b6a190860571970460a6926d8867d7bbed46c8ceaa0b9166ed85654c920b", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json index ae8d9f2dc9953e..796c4f0a8d491c 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201db30820181a00302010202086be6588a0c214e50300a06082a8648ce3d040302303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c205041492035434441393839392c4d7669643a464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040fe5f58712656d94acf12ca89e42de64bd93905c95f0c21b1450dbdbc5bd9b2c5f6dfbdd3379952a61b6dbb45db303423770ade5adf037c90fcfa5f089b00490a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414acc5e72ec60a3ac2916034340054df20d90ea6f7301f0603551d23041830168014fb76451848399889897ef5c1cf23e443c147c3bb300a06082a8648ce3d040302034800304502205c9a54117930e18b7ee39e5d694d1fc2c2841ff161a59fb52b575ebca9b19cbc0221009f1a4ed576680ea6c409deedc44d91f4fcb16224b49b84dbebd78aeaccad01db", "pai_cert": "308201cc30820171a0030201020208702ce8a9372b6270300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c205041492035434441393839392c4d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000488a08cabc9aba0b4dcd4afe8b0d5af7947b14a282a5b68dde65fe243d556360ea9cc5f39c01915168b83aefebf88358ab8d1f1e1746a6865ab91439e5bb4adcca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414fb76451848399889897ef5c1cf23e443c147c3bb301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100913e3da905a8b6526eeb1a00060367688f7616512150c0a5aa902fdd60a58a30022100d5af59745c178cad737b59b81c3a5be5bb97c59fb1cc71d096f0a1b61f2cc91c", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a446bdfd25f2f265c8e5af02a04e66b97cde7c110093ae69e1b30037936f060d022047ee346e38e0329c6376fd2412f946874aea76b4f8bc31380d71528020e02152", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json index c0fd626b74fff3..a42eaccb1defb1 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid, but less readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201da30820180a0030201020208341c84535eef2a8c300a06082a8648ce3d040302303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464646314d7069643a303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200043759eca89e16c6ea71d19373251b626735c40e4cc7676ee27d2d8b1a0b3adfebd30a1bb4c9debfb2bf38d884017f559b4ab643e3c1bccda8f95d2f190fa9cdcca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b10e44888842fb2a4baeee56310b35e27c922432301f0603551d230418301680145cde37f2a41f16a31733ce16d13a77ebf05c48df300a06082a8648ce3d0403020348003045022100c676782b8f33aa2c7bb4e91e07d078c3ef02bb985fbad909262768868d1f3f3902204fe363f95746e4f4473011cff3790b0b27d946a23fb307ab287e99845863d612", "pai_cert": "308201cb30820170a0030201020208607acf46f1d3e5ce300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464646314d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004141fe85b64ccfaf4cf08decd5e527efedb6ffbd894a57f4841bcc6786c404757f596f438dc32ce9203284ffc13fb4361d8a621e70ac1c7ea0c229a90286bf7faa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145cde37f2a41f16a31733ce16d13a77ebf05c48df301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a607e0db00ebf2410df9fc436d812c630e352d98f5353f0cc57d5bcc2c2707b5022100d3db92986d7187ff45f487b3033cab026645c64603461f95f48a57102351bb84", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220718da3c75864aaafae04ae718df356f20cdb4688a3b6934d37bff390e3111d170221008d6449aec65b2c295effd4f8136fc8fcd014bb7bf43e741947e56d744dbb05c1", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json index 1749235ae42c2a..589ff774d27cdd 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid, but highly discouraged, since embedding of substrings within other substrings may be confusing to human readers", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201d93082017fa0030201020208788c1dba87df1eca300a06082a8648ce3d040302303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2050414920354344414d7069643a30304231393839393020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200047dcffdc020b98cf45243ff00b6e6ecb9b2104716acf58caada56594e15d9765c3ab3d5ef5915710be74b2a98e8c556cd7501cf54d11f381fda345e3ebbf891afa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414aa332dd474f438cfefda10c9de746d47a26c2aef301f0603551d23041830168014eb78ed1e616d294a4ba80c7143272368e8a15f73300a06082a8648ce3d040302034800304502210082eceb5aa56a1b4c55176520c8d36b059ce56c0523a902312d4d821fa750b71302207c24a9d3904db54a967c50e39cfdd88bd2600d5fdfbbb5b04305cc6b8d3b013e", "pai_cert": "308201ca3082016fa003020102020876d8e013abbff228300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2050414920354344414d7069643a30304231393839393059301306072a8648ce3d020106082a8648ce3d030107034200044529d3117c1620b85bedba1625d0532dcf27aacabf727de5fd87718fa831c2219d7e290e5569a98383aeddd6535c1ce7f7132074b051cbc44941cd4b9f88c8a5a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414eb78ed1e616d294a4ba80c7143272368e8a15f73301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100d857ca39185d655e765ed86a8e0267c804ef370831abd643b49cc915d2367234022100cb42abba9290c7e98b541e44e1dea0836acf28efca6444339401769f9ee01e72", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221008c5e26f9803a761df58dad43a982b9d847c3c5314e3f96f2ded64e141506dae402205fd7b4753013d99a84a7ffbedf849f637c2460aabe0aff798766cf9b4cc973b2", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json index fbb97c09628413..1ca355f8b9214b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201da30820180a00302010202082cc0ab89c5737671300a06082a8648ce3d040302303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464631204d7069643a303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000474c36871149a64e878220a79752c019edb7193c2144a4a6e882efb594a96ec9f7ca0953fa4238b9a49fe94d60c28c7df0ba1e0852c60fb1b82a9c4c6ab6b05eca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ba73a4cbefd9468fbdd7ea29bfab5069aacbcf54301f0603551d230418301680144039994c01e076690db8bde12379548d58249492300a06082a8648ce3d040302034800304502202a717bdb5ec4317bdc38eba5107f62a33fe8776638ef4e434a63a0493dab935c022100c73160c265f43bab397d8023bc50854de3cbc8f61e9458deb80233aa54b659a4", "pai_cert": "308201ca30820170a00302010202081c51c96c3a6e7917300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200046d8237afd1aaa978d61d7bb45be106dc29c6513061b63cdc7af3004d7e88ea14da1855741e805f54dd8292676871d3464c25234c2dd54a567ccb84566ecd1dbca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144039994c01e076690db8bde12379548d58249492301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022027de262c9345cea9a8f45597d6aef12ef7dce0c3ccd1d12305146c5c940355be022100ea342226806500b0bf0ca69ec2f233afb6c440e0197cfa3ddfad47dbf3888a62", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022076a4dd713a309fecfa71e707b71519a76d545c4d9a5195a0d58a4c9c49464bcc022100d562b3b2ef277df2cf64873d9e308ab622b81abe89aaa9114bbae1ad3efa9c4d", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json index ff957566887a19..92c74a639578b0 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201db30820181a0030201020208459e7c161800bb79300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a66666631204d7069643a303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040d64bbd9912a0905f5e7a199dd2c0ca9dc9c9186f9a6401e74367f08eac15a6de1b2b11e67a45c8b01f3f017748f756900f15aa61397dd342e2e8e5b5860a5d7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c61c03351d3689580e3d30793a0e98941308df93301f0603551d23041830168014b65bea13eda87ae7349b417429fcdc21b5e0c6ac300a06082a8648ce3d040302034800304502200631989f1bce923a41d708ae157f72d9a9b0dfa1cd6d85b013b46ef36e4fcc28022100963813cc6f68d125d4108a4e9dc30a4e7de9d1157e1b29732631b4682597172d", "pai_cert": "308201cb30820171a003020102020836de254c09e2c5b5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a66666631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004c305250f66442203f5d0a1d4a69b15e2a04d3234da18db17144171b1fc6e711399e532ed4e1cf2e7ea25f6939330b4200c2aa9957955f1a877673bdecff80ef1a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b65bea13eda87ae7349b417429fcdc21b5e0c6ac301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ae883e1c02bf892d9735e997ea1e4e3fb457604d922156d69db0d56a2de6f77c022020c2548237913179861a2b7cffa998a490cfd8a7ad06dc5970f27f403429f036", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022078c7912cf529c6667355bdcc47943465c0e0938a39097b729944b8eca11b2c33022100cb500ec6b4291d8a1ec7fa4190e295ef1581af65fc79236dd728f36adc29a6ec", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json index 41d5d3d94211cb..2b19a74f79aa8c 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201d93082017fa003020102020846cb41af3a7fc9c3300a06082a8648ce3d040302303b3139303706035504030c3041434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a42313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004d3e1c5422ab213f118f959a33d2204342cf598dffcf5cec0474a1bba6e4c1a7263a59c605cf892038a704fd266149b5c89fe35e17e8dda279bb03cb1c7bf8ca6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041430616dcabe874ac65e3dce88de7c5cc5defd86f9301f0603551d230418301680148fa036268e8eedbc73e12a0eeadcb2fbec8faaac300a06082a8648ce3d040302034800304502204ef134d60bb150def30f7c2df8f88c46755e36f48a12831aaedf17c4944cd70d022100f61555085107e4e783a5ad6abc64e1ee1f0d719b7d83a5f8bace41949f85c284", "pai_cert": "308201c93082016fa003020102020821b17d362fe9afae300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a303b3139303706035504030c3041434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a42313059301306072a8648ce3d020106082a8648ce3d03010703420004e72dbe2a0f600358978022ea70fb7ef3ef14de92a0dfb9cfb83b542fbccb7b8a7b13d3f37a26dfd2400224ae4ab82e1c13ca57a45e4ee54e862a192a6d4f1f3aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148fa036268e8eedbc73e12a0eeadcb2fbec8faaac301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210093a63c6f397d39dfa5b60c06c2839448ab5db0bf0728c7449c66bdc55e3ff6c302207b0c997ff95f1795b86828d1137b34f3f2aef1ffb2183a6e4c02836c1c735171", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e1d4967878513c474101db44c68061689be47443e21f6675c34b872edc5a319c022100a963e07bcd8e4abeb8b4fcb19f6a59c92f1a3bad4d7153f333684f93a836e3f9", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json index 210bc861b49deb..04737915883859 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201d83082017da0030201020208697ea481e17f0f9c300a06082a8648ce3d04030230393137303506035504030c2e41434d45204d617474657220446576656c20504149203543444139383939204d7069643a204d7669643a464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200046eb8078776faf91061011baca81d4577b5b6b64e6f3009ddbc05aea20eaa044dbde2f70716de1d0ea2221a57ba5ca2ab23995fff18e63c6c675e403f7bf7ed53a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141c1bdaa7b3c18076e81187da63295ee068a7fe29301f0603551d23041830168014bd781517ec524b8b752e7e529063de96d6c2deb1300a06082a8648ce3d0403020349003046022100ca59fb5cc9fd777641ba761c9fbf16dc24f044fcfca5dead17ed7cae02a3f64d022100bb501e52bef2e0ff3d9b6c9bc8dac1c6adf94a19d66f38cf840b89e0bbd7dc12", "pai_cert": "308201c63082016da00302010202082dbfc034ee2ebe32300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30393137303506035504030c2e41434d45204d617474657220446576656c20504149203543444139383939204d7069643a204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d030107034200041a872e39c4f8337945c51b1a5dfa009e0f8402a59d996da057aa370acb18450bc3316babcf7c6eed0555300d7e9e4ac42c0e9556857835e8e8de2d91a1bbd27da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414bd781517ec524b8b752e7e529063de96d6c2deb1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402205c38ff93c407961a98e61bc23ea65381a760f97ac0481ece8ee21bcd451b8c2002201d6c7ee510aec10ea02402f5f6d80bc74489fb8793d64a77e06b8fece69cd4b8", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201f38b426df25ab4f552ded014845afb1a353e808e9250fc19dcfcab3d717679f0220575a610c996f0221628ff9a76123d3462922f91b6011ba727e6d42884ae88c08", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json index 3615a6d9a15024..d9feb73cd2286b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid VID encoding", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201bd30820163a00302010202086e40d9d03d53e04c300a06082a8648ce3d040302301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000414db8ee1d3c8e43a400352c581370f73bd380ed7b21ba20797f528c29dc980ec596df6819b2b71eb278c528f2d40a25371dbc576fa79bc1f94f54f49a1c58f45a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414603a7f4c6ccf6008057b8ae8262261fd7bdaa558301f0603551d230418301680149470b6ee8199d7d22da4759bf40c6c86a2e62d5f300a06082a8648ce3d0403020348003045022028af44d175bb2617ec5e526c252e58c15c4130ce70954e06acad5661d25a8185022100a22fac60cb1b01cc6d891f9339177ec5ab9cfa877773b81b2db9b10dd1acdbc3", "pai_cert": "308201ae30820153a0030201020208139e9818eb206aa2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783059301306072a8648ce3d020106082a8648ce3d0301070342000441ce3856f31dcd073f9c3ea26df801f476761731f5c19b57ca9fbb99ea7289df4545287ed407505e1b4f9550410b6d3b4d3d4d73721286b4f0554613abf6567da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149470b6ee8199d7d22da4759bf40c6c86a2e62d5f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a96cefd90329c9d9b3383e9d1afb43615851906d62fd46264201172fcb5e528d022100ee557e6c1fa5d5136c334561e3a24c083dec63adda0ed71f74a11dc1d4181829", "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402206cd818861259869d69ed0b9cc2b32e31daccf37f7151336fa0c4f165f505d03e022050ac584e1fcd7cb6caca10b21f5c54ac6450610af6d7f2bf8c49905ca2e887ae", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json index e9a09a8272b614..a4cd10cafacd46 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: valid, but less human-readable", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "308201cd30820173a00302010202084bdb341f5fc5937a300a06082a8648ce3d040302302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e8254678b023c1734aea87337d4348a062e5766d98b185a7b411fd99e07058411fc83964936c48023ee62549792980e918da22631a8f4d26c570b417cec5a5eda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141443640055a45c380ea0a7588d0c146347e4c0aa301f0603551d23041830168014c50fde1ee7a77909db33145fbf848f088684cb32300a06082a8648ce3d0403020348003045022100c768aa66b6f1f4db7a3a7faa441066c51619ded33bf993bb926d4d1eb73fda78022010b7ada24220522a1a971952ab0c6d338533c84e2a755259ae6b2a23a95b8a3c", "pai_cert": "308201bc30820162a00302010202074750dd89bd3491300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004c391114e7fd627e3c152235bf1615eac8a879c7e9a51ba7c9e64595891bcac89b066416948376bb4f4f042d3f401918dff876013f99ec3d1f31bf78fcdda77baa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c50fde1ee7a77909db33145fbf848f088684cb32301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a8a04d5f669aa9b1f328dc875a4991631f425b930fc16728cd63c29f48dc465c02201e41ed42e59bb842749f457e062f73215cd60680fe478add46865bca36ab1dd0", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502200f2df28c96fdf4315f3aedc2047dc27b7e37b586a2748a6c06803be853289643022100d5f943449ab4e9e5424d425e3572569b784039e0f196fb12ebfae1ab7539fecf", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json index f6b538b9a7961a..60293876c966d4 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid, PID not present and VID not upper case", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201c83082016ea003020102020822d3664b338a186d300a06082a8648ce3d040302302a3128302606035504030c1f4d617474657220446576656c20504149204d7069643a4d7669643a466666313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e33d89b7d1a4123229b9040dddd131d1f233ac45b2b50773394b6d136fb78be57d6e0f0d89ff3065170d6e0b414fa8f8ec17ce2f56501ac3dbc649bde5ed3d68a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146dbfd588aa275b31aaac6cf7275d4362c4829b45301f0603551d23041830168014e3da5c94dbdfacf38d137be8d4bf7a452af29af7300a06082a8648ce3d040302034800304502206932c2909878b6b14ad28da8805ec06e9f7976bb9174dc58b3793c99f6407816022100a2c6f4d90b4a70ff204e40ecc4340f3438f7baa1ae5a9fb854e4697ad4d232f1", "pai_cert": "308201b83082015ea00302010202082dbc38a238629a58300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a302a3128302606035504030c1f4d617474657220446576656c20504149204d7069643a4d7669643a466666313059301306072a8648ce3d020106082a8648ce3d03010703420004e7c625c4c041fae1941c05256efb9b984c0730244d6d8f0da751e661b0799271e0d66b95ef9a14df8250e269929a2d8137996e2e95f852a001675b9bac436276a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e3da5c94dbdfacf38d137be8d4bf7a452af29af7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022036e4641213b0979eac7fae35b2398250738c3506488b7e212ba39d3a60edf2680221009990708a87b42319c14b0be0003221ed0475a7f340206674490645a45634fdf4", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b4d83918fdaf27d2be610752b8eec9e6d171bdb9bf9adbc3bef6454ff9e70f80022100d92c92837d48c482883ee4b5dbfda63803f99eddc48b771c50b6594a857b55c0", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json index 9aafc1fe40ce3b..250adcd5de6fb1 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid VID prefix", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201ce30820173a0030201020208574a49bb6e801508300a06082a8648ce3d040302302f312d302b06035504030c244d617474657220446576656c20504149204d7069643a30304231204d5649443a464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004201bec5f397f2c81cde7e8982f4f8fae69ae2ace8bdd0bafce04d4dc56ffa1b2fa5eebdcb41afb93c8ca93fc414369e7fcf4645a1bbcb9a8ac4afb32b4610aeba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cdea6bc02803e30d56e95bfb5550742123869df0301f0603551d23041830168014b8aedf531ad42608d18dcd0e5d7bd1a28e897f7c300a06082a8648ce3d0403020349003046022100d3e60f58ac65a92c06ee6cd1b9fe05efaa407858b3fead97e5d93a69ed7b6c56022100891bc4ec5622f9079048d6a0de1395496ef027dd824b237e6bc40578bd0188bb", "pai_cert": "308201be30820163a003020102020869c1d77b203a0a2e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20504149204d7069643a30304231204d5649443a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000411c1801d3bdf4b502f672711747091621441c425f3f33171b86850a66c4140685ff7984331b4ee36aa1ba814313981feb0aad82ecaa912d4c0fc059a218a3d26a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b8aedf531ad42608d18dcd0e5d7bd1a28e897f7c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100e2356b850362726d3df98f26f7488f0fc73e957669ee5c125dc0a7ce659819f402210084b5c669d8fa4fcd4fa314f6084bf051e8f3159dba00bfb75bc5972e08c6d26b", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e436f76060ebcc3f73aa2ec87de249727b57125160fb154d8b8ed9b4ce9092d202206eed7e11edac26e3c348a41a298507501afba8ad6842d82cbb1fa38a15022daa", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json index bb4ec7ed45158c..50ee40c6adae25 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid PID and VID prefixes", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201ce30820173a00302010202086c9fdd8da9351b8d300a06082a8648ce3d040302302f312d302b06035504030c244d617474657220446576656c20504149204d7069645f30304231204d7669645f464646313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040bd69bee62d407baa92d7b4c68dc403fc8b2fef5d9d180e9118debcca84ea66fff8a5a36dbde69f8d3d97f1cddf50c79633ba4292cc6f5bcdd412197fcfb1ecca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144ee61e7b13c450a62d630433a01bb40ec43dfb81301f0603551d2304183016801490743e23c01d37d935d6a526d94dbc415178ad6a300a06082a8648ce3d0403020349003046022100f6205f88dcc23ea2aca9952bd714eff2f71dcdfb3f34a20cb71c833f8d6743e6022100b99dfdb0ab3baffd03298e2f5e584d92cab4da7bcd615bbc11d430c0edf1cda3", "pai_cert": "308201bd30820163a00302010202081d70ffaeec319495300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20504149204d7069645f30304231204d7669645f464646313059301306072a8648ce3d020106082a8648ce3d030107034200046f34d25034b716e7f95139f6975328763cb9f58bd6cdbcd2831f0d3caa664b3eafbba86ab9cc8dfaae719e279e63b209d4af23e025f0ba30853491940dbaedb7a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041490743e23c01d37d935d6a526d94dbc415178ad6a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100fb4f85ded34dfddedf619a032d1f455b06561fcc4e6422578bd37222833602b1022008c2cf2199e6406abcde6e53c76fe9f221bd2cfbd89c613f77d3b903f0fadfe7", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022040f04031f06158305cb23570f815684eda648cd9c631adf3533e72315d11892f022100e64ab06c1da4d959126bf1c7b816dfa495dc57451df41597699419b114ee45e5", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json index ea6f3cf8d2ada6..8716676bf8923e 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: valid, Matter OIDs are used and wrong values in the common-name are ignored", "is_success_case": "true", + "basic_info_pid": 177, "dac_cert": "30820207308201ada003020102020829533b15b435e877300a06082a8648ce3d0403023069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200048afa3ede5112dec9f6798199c8ffa0d1f03a0f2e3fb46536b4dac7d4992938da3d7d939a86a590942b20f92d916406f31359d1a7266f510603e5e325bbcfae98a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041488064d10fd091fd07a227335aa25992a856263f9301f0603551d23041830168014b5c1398fa5d54d71868582d94afcc2d4e1aa1cec300a06082a8648ce3d0403020348003045022100cabe598239debfc7a34cc2785c5c42c4a8ea9b0219f7cf79b19ad03e54387314022052ddc7703d3b622aab04f5cf7b2576ccedc41d76a326111a78c48d57329b350b", "pai_cert": "308201f83082019da00302010202081c4df132887a800d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000466415c7ed0c8d2c281192083b84a304d1bce565fd9b7ef9ef37e05f747d9a064555cb6a1ad22fed19d279cfeedb45c904e2e0d2caabd412eced85ea784824cd8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b5c1398fa5d54d71868582d94afcc2d4e1aa1cec301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c32bb6595944549a5e4eb08b44ead56b5accd1d26dfc0ed757ceae44f19aab6802210080cebaf169e855c6299b6f2bb3804f05ccf7d8135b06bf6c645456c7306ce73e", "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100cefdbc32a0201dc87435343bb0e7da622955af7b2379f8222210dcf30a70d720022100968c705242ce3b863d173977abaebc43e9d1df8b5e7f7293cf9e389dd142bb38", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json index 41c2a7aebf0395..5726cbdc564037 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: wrong, Correct values encoded in the common-name are ignored", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "30820207308201ada003020102020875315e809fb604f4300a06082a8648ce3d0403023069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004ba2d344def6691a3f38ce971437c2841868d078d7d163629baddef4d3601eae9229fe3752a8d0a664271b3e49340c55dbc20b35b9db780910d91170a3551d561a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e68ac3723efd401494ce4b30d286d45479620516301f0603551d2304183016801456d6e273ea24e5dfeb570b1ff9f44f549b6d364b300a06082a8648ce3d040302034800304502206a255bb249a4dfeefd42ec6e04adff59338efb40299e323b72237af30db7afb3022100d60e8288883ec9e97116ffb571f2295bceafaf97ccd8318557b65eb15c8b0ac6", "pai_cert": "308201f73082019da0030201020208139609613795a5ef300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323059301306072a8648ce3d020106082a8648ce3d030107034200041c7be69a1432aac427700729d16b4116bbe9269849ee7123d1e88ea2ed55da8ddea715fa754bf657ba4628972ab6de59efa5f40c085e35fe8a82a5f8aba51448a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041456d6e273ea24e5dfeb570b1ff9f44f549b6d364b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502202e5a430a4e0e13ca4b8bac28f8f2a02e23779def59c93a7ed8b3419c92c4e38e0221008c3e9653298e9bdc23128aeab143e8e24d0b95700052617020d9342f8fb3e543", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100bf3f12a780ed57f091c7954f4ead03785b333ce9c1b50c4591cf98bb338add83022043898fe00565598e0e2308aa67d232179d7c5e84a76ad08a99f52365dbb33bca", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json index d77bc898dd40b4..edef7e2ac3490c 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json @@ -1,6 +1,7 @@ { "description": "PAI Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: invalid, PID is using Matter OID then VID must also use Matter OID", "is_success_case": "false", + "basic_info_pid": 177, "dac_cert": "308201c73082016ea003020102020853a06a36c4eab9bf300a06082a8648ce3d040302302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313020170d3232303932333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200047b52109ce0e498f87b5effb42e7d69f0950ab8f2b1a25039436bd4dcc249b1f9240f291c43b7880078c25bef91e0428c988ce91c710f10a6cb112d2ad2bceac4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140ef4cee4b1073d60c236291562705ac3884ee03f301f0603551d23041830168014e37d6ed3c0603d3bf0ca20dc925ba48c44c7482d300a06082a8648ce3d04030203470030440220132e0b4da310c490a3f2c4b05d6b042a80d286bd7e740cb5f375fb68f0d9f7020220661a046b87a32229d7d78bc70d307956304805bbe8e0522c011e4420ca71911e", "pai_cert": "308201b73082015ea0030201020208603cb8419e67f161300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303932333030303030305a180f39393939313233313233353935395a302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200049c722b78bb7967f39787fb4c50e2b3b225240742917959eb8c5302b7df678e52eb3cd49597e7996f62a15cb94089b2ad848447971196b2a7c10e0956795d607ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e37d6ed3c0603d3bf0ca20dc925ba48c44c7482d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203e2304d6633f0c7d79399ecc40af655a0b7006a550849e15114f24bd837bf15f022032c314c6226b8a7dc91d102b5fa862b555da33884adf80491b4156bdce6bfd0a", "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c3d32a2be9bf2fb5b82199dde590e1af5304c05739de1556fa089a3cab58938c02204915813b12f18101383d9be2157ca725645da86c011c29506f8ac6412cad4d77", diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/cd.der new file mode 100644 index 00000000000000..e1b469faa5e1fb Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Cert.der new file mode 100644 index 00000000000000..dc3455b2a18bb7 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Cert.pem new file mode 100644 index 00000000000000..8bd0ecaa26fc81 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB2zCCAYGgAwIBAgIIQ2UN1VZVQIUwCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy +QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOjAw +MDEwIBcNMjQwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM +D01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjExFDASBgorBgEE +AYKifAICDAQwMDAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9+tcPqMIp2kb +ZczvJIP8kCR5+KNEWDhgrS6Gt7uqeBFOZ9UYa24afTl2ypTZvTjni1EWjlnsbXqu +JgDpO5BeiKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFI3U1meHMosbo+JEj4nRxJDkweqQMB8GA1UdIwQYMBaAFFdsunsrbJYkBM1j +cWnJGpa/K8BoMAoGCCqGSM49BAMCA0gAMEUCIBa5RzCDo8mfVE5m0xVWuoz9bRdx +QhkN1avYUrXP0z0KAiEAoQvZv+R8vECcn5MiSR7mUTLFQMi97cJiNr9H9kMZphA= +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Key.der new file mode 100644 index 00000000000000..e77330c9c7cf91 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Key.pem new file mode 100644 index 00000000000000..0c03a1806c8ad5 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/dac-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIOyBCXP7CdIHSWUJ2BoUr/XaMyePEuNdCF4XaVZfrMG2oAoGCCqGSM49 +AwEHoUQDQgAE9+tcPqMIp2kbZczvJIP8kCR5+KNEWDhgrS6Gt7uqeBFOZ9UYa24a +fTl2ypTZvTjni1EWjlnsbXquJgDpO5BeiA== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Cert.der new file mode 100644 index 00000000000000..150c7c73c03e83 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Cert.pem new file mode 100644 index 00000000000000..c31efc8b053f4a --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIByzCCAXGgAwIBAgIIE2lYAsHi5rIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yNDA1Mjcw +MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg +RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOjAwMDEwWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAATDxm43+EAMinF+njGtuBO7vjnCMvkh+ErO9vxmON+g +/y0D/0kbcKud7DGhj/jvDWTQ7jHpmOHgxtWEzBb7dTdfo2YwZDASBgNVHRMBAf8E +CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUV2y6eytsliQEzWNx +ackalr8rwGgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI +zj0EAwIDSAAwRQIhANt6a6UBwW3gPjypFnSu7s0IGhMCFpGeBtKyeMtggIe9AiB9 +jOAQqo78kEf8Zf4C7VwKcChkg7TO/yr1mKt6VolVGQ== +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Key.der new file mode 100644 index 00000000000000..e2f6a204faea2f Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Key.pem new file mode 100644 index 00000000000000..2ced90401e4572 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/pai-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIMeqSL/JP2rDJ0r8x0Y9e49j7f49k/NhbeLAuzYkWsG9oAoGCCqGSM49 +AwEHoUQDQgAEw8ZuN/hADIpxfp4xrbgTu745wjL5IfhKzvb8ZjjfoP8tA/9JG3Cr +newxoY/47w1k0O4x6Zjh4MbVhMwW+3U3Xw== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/test_case_vector.json new file mode 100644 index 00000000000000..a935f55d85df7d --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_18/test_case_vector.json @@ -0,0 +1,10 @@ +{ + "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid and PID numeric only", + "is_success_case": "true", + "basic_info_pid": 1, + "dac_cert": "308201db30820181a003020102020843650dd556554085300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303030313020170d3234303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303030313059301306072a8648ce3d020106082a8648ce3d03010703420004f7eb5c3ea308a7691b65ccef2483fc902479f8a344583860ad2e86b7bbaa78114e67d5186b6e1a7d3976ca94d9bd38e78b51168e59ec6d7aae2600e93b905e88a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148dd4d66787328b1ba3e2448f89d1c490e4c1ea90301f0603551d23041830168014576cba7b2b6c962404cd637169c91a96bf2bc068300a06082a8648ce3d0403020348003045022016b9473083a3c99f544e66d31556ba8cfd6d177142190dd5abd852b5cfd33d0a022100a10bd9bfe47cbc409c9f9322491ee65132c540c8bdedc26236bf47f64319a610", + "pai_cert": "308201cb30820171a003020102020813695802c1e2e6b2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3234303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303030313059301306072a8648ce3d020106082a8648ce3d03010703420004c3c66e37f8400c8a717e9e31adb813bbbe39c232f921f84acef6fc6638dfa0ff2d03ff491b70ab9dec31a18ff8ef0d64d0ee31e998e1e0c6d584cc16fb75375fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414576cba7b2b6c962404cd637169c91a96bf2bc068301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100db7a6ba501c16de03e3ca91674aeeecd081a130216919e06d2b278cb608087bd02207d8ce010aa8efc9047fc65fe02ed5c0a70286483b4ceff2af598ab7a56895519", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff3602040118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100f3240528a1ce8a0154892dae718c47ba1d2db84a9f2e941bc0efffba46f7333402204ac1df237392e052e5d5ff5644852fad8949cd62721cae2e852c0a1c314cb0c2", + "dac_private_key": "ec810973fb09d207496509d81a14aff5da33278f12e35d085e1769565facc1b6", + "dac_public_key": "04f7eb5c3ea308a7691b65ccef2483fc902479f8a344583860ad2e86b7bbaa78114e67d5186b6e1a7d3976ca94d9bd38e78b51168e59ec6d7aae2600e93b905e88" +} diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/cd.der new file mode 100644 index 00000000000000..7c52ac3e97aa07 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Cert.der new file mode 100644 index 00000000000000..d72cdf58c690c6 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Cert.pem new file mode 100644 index 00000000000000..33d325a690e139 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB2zCCAYGgAwIBAgIIFP/2kH51+TEwCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy +QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOlhZ +WjEwIBcNMjQwNjA0MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM +D01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjExFDASBgorBgEE +AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoBmAoYlJISxi +RNyNqxSw9S4PvRmGrMnqDa5HxBoK5zgRFrjx1hjBqDtKQ1lvq5EjEAuYK0Ow0KQw +q7ATMDgLiKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFCDrwHTadCY+vH8EJ4xojDX4ibFIMB8GA1UdIwQYMBaAFJr0OUksjt5i9u2F +Ern8ZSkt88ORMAoGCCqGSM49BAMCA0gAMEUCIB8TDWkU86YaXRcd7fpR5aXxD32g +WnHmntzg0Ox0pRYEAiEA56PblfVta56iMtwXImr23TGZBnnFNlsLuV3IM94jc7Q= +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Key.der new file mode 100644 index 00000000000000..7b81f6a6933039 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Key.pem new file mode 100644 index 00000000000000..f6866266928e7e --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/dac-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIGzPAZ//bv4Envt0+MDML6LF0B4K4o87STD7JF+IdzpvoAoGCCqGSM49 +AwEHoUQDQgAEoBmAoYlJISxiRNyNqxSw9S4PvRmGrMnqDa5HxBoK5zgRFrjx1hjB +qDtKQ1lvq5EjEAuYK0Ow0KQwq7ATMDgLiA== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Cert.der new file mode 100644 index 00000000000000..faeb4118d11188 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Cert.pem new file mode 100644 index 00000000000000..9cf14e01b2a1b0 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIByzCCAXGgAwIBAgIIOWRFZRdrJTQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yNDA2MDQw +MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg +RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOlhZWjEwWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAASCVYw3FjswWXDnDM8U7Yqd7xelsExdQyJNU73fM8ya +AREEg+p4KvcNIrjFH82v6mKmYOedZKaaolB+MFQ7Gnhoo2YwZDASBgNVHRMBAf8E +CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmvQ5SSyO3mL27YUS +ufxlKS3zw5EwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI +zj0EAwIDSAAwRQIgLpYicNbIn+Lpbt1G++jQolDVrlDvQz8CHfDflGLJIWMCIQCJ +VDw0RTTWTSDBNtCMMpy6M96DQwEn1bc3jZTK5a941Q== +-----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Key.der new file mode 100644 index 00000000000000..91cd0c7c6196f0 Binary files /dev/null and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Key.pem new file mode 100644 index 00000000000000..652b95059d958f --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/pai-Key.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIAT0pLawB2gz1l/XLScbWT8+aPTnGbkQTGOyzoeGMuuVoAoGCCqGSM49 +AwEHoUQDQgAEglWMNxY7MFlw5wzPFO2Kne8XpbBMXUMiTVO93zPMmgERBIPqeCr3 +DSK4xR/Nr+pipmDnnWSmmqJQfjBUOxp4aA== +-----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/test_case_vector.json new file mode 100644 index 00000000000000..9dec5504865db1 --- /dev/null +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_19/test_case_vector.json @@ -0,0 +1,10 @@ +{ + "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: PID is not a number", + "is_success_case": "false", + "basic_info_pid": 177, + "dac_cert": "308201db30820181a003020102020814fff6907e75f931300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a58595a313020170d3234303630343030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004a01980a18949212c6244dc8dab14b0f52e0fbd1986acc9ea0dae47c41a0ae7381116b8f1d618c1a83b4a43596fab9123100b982b43b0d0a430abb01330380b88a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041420ebc074da74263ebc7f04278c688c35f889b148301f0603551d230418301680149af439492c8ede62f6ed8512b9fc65292df3c391300a06082a8648ce3d040302034800304502201f130d6914f3a61a5d171dedfa51e5a5f10f7da05a71e69edce0d0ec74a51604022100e7a3db95f56d6b9ea232dc17226af6dd31990679c5365b0bb95dc833de2373b4", + "pai_cert": "308201cb30820171a003020102020839644565176b2534300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3234303630343030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a58595a313059301306072a8648ce3d020106082a8648ce3d0301070342000482558c37163b305970e70ccf14ed8a9def17a5b04c5d43224d53bddf33cc9a01110483ea782af70d22b8c51fcdafea62a660e79d64a69aa2507e30543b1a7868a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149af439492c8ede62f6ed8512b9fc65292df3c391301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502202e962270d6c89fe2e96edd46fbe8d0a250d5ae50ef433f021df0df9462c9216302210089543c344534d64d20c136d08c329cba33de83430127d5b7378d94cae5af78d5", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b1b689324b4de19288909fc0db14cb0542601dafe28b298db1d59befbdacf45a022100939e14803038355e9c29ebdd48f51af99253402440fb79c8e985dab592a024b1", + "dac_private_key": "6ccf019fff6efe049efb74f8c0cc2fa2c5d01e0ae28f3b4930fb245f88773a6f", + "dac_public_key": "04a01980a18949212c6244dc8dab14b0f52e0fbd1986acc9ea0dae47c41a0ae7381116b8f1d618c1a83b4a43596fab9123100b982b43b0d0a430abb01330380b88" +} diff --git a/credentials/development/gen_commissioner_dut_test_plan_table.py b/credentials/development/gen_commissioner_dut_test_plan_table.py index fb3ca49087e0b7..450f1c7d7c0da3 100755 --- a/credentials/development/gen_commissioner_dut_test_plan_table.py +++ b/credentials/development/gen_commissioner_dut_test_plan_table.py @@ -86,8 +86,7 @@ def main(): with open(path, 'r') as f: j = json.loads(f.read()) success_expected = j['is_success_case'].lower() == 'true' - pid = 177 if 'fallback_encoding' in p else 32768 - desc = TestInfo(desc=j['description'], dir=p, pid=pid) + desc = TestInfo(desc=j['description'], dir=p, pid=int(j['basic_info_pid'])) if success_expected: success_cases.append(desc) else: diff --git a/credentials/fetch-paa-certs-from-dcl.py b/credentials/fetch-paa-certs-from-dcl.py deleted file mode 100644 index d440398c472be7..00000000000000 --- a/credentials/fetch-paa-certs-from-dcl.py +++ /dev/null @@ -1,187 +0,0 @@ -#!/usr/bin/python - -# -# 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. -# - -# Script that was used to fetch CHIP Development Product Attestation Authority (PAA) -# certificates from DCL. -# For usage please run:. -# python ./credentials/fetch-paa-certs-from-dcl.py --help - -import copy -import os -import re -import subprocess -import sys - -import click -import requests -from click_option_group import RequiredMutuallyExclusiveOptionGroup, optgroup -from cryptography import x509 -from cryptography.hazmat.primitives import serialization - -PRODUCTION_NODE_URL = "https://on.dcl.csa-iot.org:26657" -PRODUCTION_NODE_URL_REST = "https://on.dcl.csa-iot.org" -TEST_NODE_URL_REST = "https://on.test-net.dcl.csa-iot.org" - - -def parse_paa_root_certs(cmdpipe, paa_list): - """ - example output of a query to all x509 root certs in DCL: - - certs: - - subject: MCExHzAdBgNVBAMMFk1hdHRlciBEZXZlbG9wbWVudCBQQUE= - subjectKeyId: FA:92:CF:09:5E:FA:42:E1:14:30:65:16:32:FE:FE:1B:2C:77:A7:C8 - - subject: MDAxGDAWBgNVBAMMD01hdHRlciBUZXN0IFBBQTEUMBIGCisGAQQBgqJ8AgEMBDEyNUQ= - subjectKeyId: E2:90:8D:36:9C:3C:A3:C1:13:BB:09:E2:4D:C1:CC:C5:A6:66:91:D4 - - subject: MEsxCzAJBgNVBAYTAlVTMQ8wDQYDVQQKDAZHb29nbGUxFTATBgNVBAMMDE1hdHRlciBQQUEgMTEUMBIGCisGAQQBgqJ8AgEMBDYwMDY= - subjectKeyId: B0:00:56:81:B8:88:62:89:62:80:E1:21:18:A1:A8:BE:09:DE:93:21 - - subject: MFUxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjEtMCsGA1UEAxMkRGlnaUNlcnQgVEVTVCBSb290IENBIGZvciBNQVRURVIgUEtJ - subjectKeyId: C0:E0:64:15:00:EC:67:E2:7C:AF:7C:6E:2D:49:94:C7:73:DE:B7:BA - - subject: MDAxLjAsBgNVBAMMJU5vbiBQcm9kdWN0aW9uIE9OTFkgLSBYRk4gUEFBIENsYXNzIDM= - subjectKeyId: F8:99:A9:D5:AD:71:71:E4:C3:81:7F:14:10:7F:78:F0:D9:F7:62:E9 - - subject: MEIxGDAWBgNVBAMMD01hdHRlciBUZXN0IFBBQTEQMA4GA1UECgwHU2Ftc3VuZzEUMBIGCisGAQQBgqJ8AgEMBDEwRTE= - subjectKeyId: CF:9E:0A:16:78:8B:40:30:EC:DD:AB:34:B9:C2:EC:7B:E5:34:55:C0 - - Brief: - This method will search for the first line that contains ': ' char sequence. - From there, it assumes every 2 lines contain subject and subject key id info of - a valid PAA root certificate. - The paa_list parameter will contain a list of all valid PAA Root certificates - from DCL. - """ - - result = {} - - while True: - line = cmdpipe.stdout.readline() - if not line: - break - else: - if b': ' in line: - key, value = line.split(b': ') - result[key.strip(b' -').decode("utf-8")] = value.strip().decode("utf-8") - parse_paa_root_certs.counter += 1 - if parse_paa_root_certs.counter % 2 == 0: - paa_list.append(copy.deepcopy(result)) - - -def write_paa_root_cert(certificate, subject): - filename = 'dcld_mirror_' + \ - re.sub('[^a-zA-Z0-9_-]', '', re.sub('[=, ]', '_', subject)) - with open(filename + '.pem', 'w+') as outfile: - outfile.write(certificate) - # convert pem file to der - try: - with open(filename + '.pem', 'rb') as infile: - pem_certificate = x509.load_pem_x509_certificate(infile.read()) - with open(filename + '.der', 'wb+') as outfile: - der_certificate = pem_certificate.public_bytes( - serialization.Encoding.DER) - outfile.write(der_certificate) - except (IOError, ValueError) as e: - print(f"ERROR: Failed to convert {filename + '.pem'}: {str(e)}. Skipping...") - - -def parse_paa_root_cert_from_dcld(cmdpipe): - subject = None - certificate = "" - - while True: - line = cmdpipe.stdout.readline() - if not line: - break - else: - if b'pemCert: |' in line: - while True: - line = cmdpipe.stdout.readline() - certificate += line.strip(b' \t').decode("utf-8") - if b'-----END CERTIFICATE-----' in line: - break - if b'subjectAsText:' in line: - subject = line.split(b': ')[1].strip().decode("utf-8") - break - - return (certificate, subject) - - -def use_dcld(dcld, production, cmdlist): - return [dcld] + cmdlist + (['--node', PRODUCTION_NODE_URL] if production else []) - - -@click.command() -@click.help_option('-h', '--help') -@optgroup.group('Input data sources', cls=RequiredMutuallyExclusiveOptionGroup) -@optgroup.option('--use-main-net-dcld', type=str, default='', metavar='PATH', help="Location of `dcld` binary, to use `dcld` for mirroring MainNet.") -@optgroup.option('--use-test-net-dcld', type=str, default='', metavar='PATH', help="Location of `dcld` binary, to use `dcld` for mirroring TestNet.") -@optgroup.option('--use-main-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public MainNet observer.") -@optgroup.option('--use-test-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public TestNet observer.") -@optgroup.group('Optional arguments') -@optgroup.option('--paa-trust-store-path', default='paa-root-certs', type=str, metavar='PATH', help="PAA trust store path (default: paa-root-certs)") -def main(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path): - """DCL PAA mirroring tools""" - - production = False - dcld = use_test_net_dcld - - if len(use_main_net_dcld) > 0: - dcld = use_main_net_dcld - production = True - - use_rest = use_main_net_http or use_test_net_http - if use_main_net_http: - production = True - - rest_node_url = PRODUCTION_NODE_URL_REST if production else TEST_NODE_URL_REST - - os.makedirs(paa_trust_store_path, exist_ok=True) - os.chdir(paa_trust_store_path) - - if use_rest: - paa_list = requests.get(f"{rest_node_url}/dcl/pki/root-certificates").json()["approvedRootCertificates"]["certs"] - else: - cmdlist = ['query', 'pki', 'all-x509-root-certs'] - - cmdpipe = subprocess.Popen(use_dcld(dcld, production, cmdlist), stdout=subprocess.PIPE, stderr=subprocess.PIPE) - - paa_list = [] - parse_paa_root_certs.counter = 0 - parse_paa_root_certs(cmdpipe, paa_list) - - for paa in paa_list: - if use_rest: - response = requests.get( - f"{rest_node_url}/dcl/pki/certificates/{paa['subject']}/{paa['subjectKeyId']}").json()["approvedCertificates"]["certs"][0] - certificate = response["pemCert"] - subject = response["subjectAsText"] - else: - cmdlist = ['query', 'pki', 'x509-cert', '-u', paa['subject'], '-k', paa['subjectKeyId']] - - cmdpipe = subprocess.Popen(use_dcld(dcld, production, cmdlist), stdout=subprocess.PIPE, stderr=subprocess.PIPE) - - (certificate, subject) = parse_paa_root_cert_from_dcld(cmdpipe) - - certificate = certificate.rstrip('\n') - - print(f"Downloaded certificate with subject: {subject}") - write_paa_root_cert(certificate, subject) - - -if __name__ == "__main__": - if len(sys.argv) == 1: - main.main(['--help']) - else: - main() diff --git a/credentials/fetch_paa_certs_from_dcl.py b/credentials/fetch_paa_certs_from_dcl.py new file mode 100644 index 00000000000000..3bcd74b6534e26 --- /dev/null +++ b/credentials/fetch_paa_certs_from_dcl.py @@ -0,0 +1,230 @@ +#!/usr/bin/python + +# +# 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. +# + +# Script that was used to fetch CHIP Development Product Attestation Authority (PAA) +# certificates from DCL. +# For usage please run:. +# python ./credentials/fetch-paa-certs-from-dcl.py --help + +import copy +import os +import re +import subprocess +import sys + +import click +import requests +from click_option_group import RequiredMutuallyExclusiveOptionGroup, optgroup +from cryptography import x509 +from cryptography.hazmat.primitives import serialization + +PRODUCTION_NODE_URL = "https://on.dcl.csa-iot.org:26657" +PRODUCTION_NODE_URL_REST = "https://on.dcl.csa-iot.org" +TEST_NODE_URL_REST = "https://on.test-net.dcl.csa-iot.org" + +MATTER_CERT_CA_SUBJECT = "MFIxDDAKBgNVBAoMA0NTQTEsMCoGA1UEAwwjTWF0dGVyIENlcnRpZmljYXRpb24gYW5kIFRlc3RpbmcgQ0ExFDASBgorBgEEAYKifAIBDARDNUEw" +MATTER_CERT_CA_SUBJECT_KEY_ID = "97:E4:69:D0:C5:04:14:C2:6F:C7:01:F7:7E:94:77:39:09:8D:F6:A5" + + +def parse_paa_root_certs(cmdpipe, paa_list): + """ + example output of a query to all x509 root certs in DCL: + + certs: + - subject: MCExHzAdBgNVBAMMFk1hdHRlciBEZXZlbG9wbWVudCBQQUE= + subjectKeyId: FA:92:CF:09:5E:FA:42:E1:14:30:65:16:32:FE:FE:1B:2C:77:A7:C8 + - subject: MDAxGDAWBgNVBAMMD01hdHRlciBUZXN0IFBBQTEUMBIGCisGAQQBgqJ8AgEMBDEyNUQ= + subjectKeyId: E2:90:8D:36:9C:3C:A3:C1:13:BB:09:E2:4D:C1:CC:C5:A6:66:91:D4 + - subject: MEsxCzAJBgNVBAYTAlVTMQ8wDQYDVQQKDAZHb29nbGUxFTATBgNVBAMMDE1hdHRlciBQQUEgMTEUMBIGCisGAQQBgqJ8AgEMBDYwMDY= + subjectKeyId: B0:00:56:81:B8:88:62:89:62:80:E1:21:18:A1:A8:BE:09:DE:93:21 + - subject: MFUxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjEtMCsGA1UEAxMkRGlnaUNlcnQgVEVTVCBSb290IENBIGZvciBNQVRURVIgUEtJ + subjectKeyId: C0:E0:64:15:00:EC:67:E2:7C:AF:7C:6E:2D:49:94:C7:73:DE:B7:BA + - subject: MDAxLjAsBgNVBAMMJU5vbiBQcm9kdWN0aW9uIE9OTFkgLSBYRk4gUEFBIENsYXNzIDM= + subjectKeyId: F8:99:A9:D5:AD:71:71:E4:C3:81:7F:14:10:7F:78:F0:D9:F7:62:E9 + - subject: MEIxGDAWBgNVBAMMD01hdHRlciBUZXN0IFBBQTEQMA4GA1UECgwHU2Ftc3VuZzEUMBIGCisGAQQBgqJ8AgEMBDEwRTE= + subjectKeyId: CF:9E:0A:16:78:8B:40:30:EC:DD:AB:34:B9:C2:EC:7B:E5:34:55:C0 + + Brief: + This method will search for the first line that contains ': ' char sequence. + From there, it assumes every 2 lines contain subject and subject key id info of + a valid PAA root certificate. + The paa_list parameter will contain a list of all valid PAA Root certificates + from DCL. + """ + + result = {} + + while True: + line = cmdpipe.stdout.readline() + if not line: + break + else: + if b': ' in line: + key, value = line.split(b': ') + result[key.strip(b' -').decode("utf-8") + ] = value.strip().decode("utf-8") + parse_paa_root_certs.counter += 1 + if parse_paa_root_certs.counter % 2 == 0: + paa_list.append(copy.deepcopy(result)) + + +def write_cert(certificate, subject): + filename = 'dcld_mirror_' + \ + re.sub('[^a-zA-Z0-9_-]', '', re.sub('[=, ]', '_', subject)) + with open(filename + '.pem', 'w+') as outfile: + outfile.write(certificate) + # convert pem file to der + try: + with open(filename + '.pem', 'rb') as infile: + pem_certificate = x509.load_pem_x509_certificate(infile.read()) + with open(filename + '.der', 'wb+') as outfile: + der_certificate = pem_certificate.public_bytes( + serialization.Encoding.DER) + outfile.write(der_certificate) + except (IOError, ValueError) as e: + print( + f"ERROR: Failed to convert {filename + '.pem'}: {str(e)}. Skipping...") + + +def parse_paa_root_cert_from_dcld(cmdpipe): + subject = None + certificate = "" + + while True: + line = cmdpipe.stdout.readline() + if not line: + break + else: + if b'pemCert: |' in line: + while True: + line = cmdpipe.stdout.readline() + certificate += line.strip(b' \t').decode("utf-8") + if b'-----END CERTIFICATE-----' in line: + break + if b'subjectAsText:' in line: + subject = line.split(b': ')[1].strip().decode("utf-8") + break + + return (certificate, subject) + + +def use_dcld(dcld, production, cmdlist): + return [dcld] + cmdlist + (['--node', PRODUCTION_NODE_URL] if production else []) + + +@click.command() +@click.help_option('-h', '--help') +@optgroup.group('Input data sources', cls=RequiredMutuallyExclusiveOptionGroup) +@optgroup.option('--use-main-net-dcld', type=str, default='', metavar='PATH', help="Location of `dcld` binary, to use `dcld` for mirroring MainNet.") +@optgroup.option('--use-test-net-dcld', type=str, default='', metavar='PATH', help="Location of `dcld` binary, to use `dcld` for mirroring TestNet.") +@optgroup.option('--use-main-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public MainNet observer.") +@optgroup.option('--use-test-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public TestNet observer.") +@optgroup.group('Optional arguments') +@optgroup.option('--paa-trust-store-path', default='paa-root-certs', type=str, metavar='PATH', help="PAA trust store path (default: paa-root-certs)") +def main(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path): + """DCL PAA mirroring tools""" + fetch_paa_certs(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path) + + +def get_cert_from_rest(rest_node_url, subject, subject_key_id): + response = requests.get( + f"{rest_node_url}/dcl/pki/certificates/{subject}/{subject_key_id}").json()["approvedCertificates"]["certs"][0] + certificate = response["pemCert"].rstrip("\n") + subject = response["subjectAsText"] + return certificate, subject + + +def fetch_cd_signing_certs(store_path): + ''' Only supports using main net http currently.''' + rest_node_url = PRODUCTION_NODE_URL_REST + os.makedirs(store_path, exist_ok=True) + original_dir = os.getcwd() + os.chdir(store_path) + + cd_signer_ids = requests.get( + f"{rest_node_url}/dcl/pki/child-certificates/{MATTER_CERT_CA_SUBJECT}/{MATTER_CERT_CA_SUBJECT_KEY_ID}").json()['childCertificates']['certIds'] + for signer in cd_signer_ids: + subject = signer['subject'] + subject_key_id = signer['subjectKeyId'] + certificate, subject = get_cert_from_rest(rest_node_url, subject, subject_key_id) + + print(f"Downloaded CD signing cert with subject: {subject}") + write_cert(certificate, subject) + + os.chdir(original_dir) + + +def fetch_paa_certs(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path): + production = False + dcld = use_test_net_dcld + + if len(use_main_net_dcld) > 0: + dcld = use_main_net_dcld + production = True + + use_rest = use_main_net_http or use_test_net_http + if use_main_net_http: + production = True + + rest_node_url = PRODUCTION_NODE_URL_REST if production else TEST_NODE_URL_REST + + os.makedirs(paa_trust_store_path, exist_ok=True) + original_dir = os.getcwd() + os.chdir(paa_trust_store_path) + + if use_rest: + paa_list = requests.get( + f"{rest_node_url}/dcl/pki/root-certificates").json()["approvedRootCertificates"]["certs"] + else: + cmdlist = ['query', 'pki', 'all-x509-root-certs'] + + cmdpipe = subprocess.Popen(use_dcld( + dcld, production, cmdlist), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + paa_list = [] + parse_paa_root_certs.counter = 0 + parse_paa_root_certs(cmdpipe, paa_list) + + for paa in paa_list: + if paa['subject'] == MATTER_CERT_CA_SUBJECT and paa['subjectKeyId'] == MATTER_CERT_CA_SUBJECT_KEY_ID: + # Don't include the CD signing cert as a PAA root. + continue + if use_rest: + certificate, subject = get_cert_from_rest(rest_node_url, paa['subject'], paa['subjectKeyId']) + else: + cmdlist = ['query', 'pki', 'x509-cert', '-u', + paa['subject'], '-k', paa['subjectKeyId']] + + cmdpipe = subprocess.Popen(use_dcld( + dcld, production, cmdlist), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + (certificate, subject) = parse_paa_root_cert_from_dcld(cmdpipe) + + certificate = certificate.rstrip('\n') + + print(f"Downloaded PAA certificate with subject: {subject}") + write_cert(certificate, subject) + + os.chdir(original_dir) + + +if __name__ == "__main__": + if len(sys.argv) == 1: + main.main(['--help']) + else: + main() diff --git a/credentials/generate-revocation-set.py b/credentials/generate-revocation-set.py new file mode 100644 index 00000000000000..e0d0cb611fa072 --- /dev/null +++ b/credentials/generate-revocation-set.py @@ -0,0 +1,423 @@ +#!/usr/bin/env python3 + +# +# Copyright (c) 2023-2024 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. +# + +# Generates a basic RevocationSet from TestNet +# Usage: +# python ./credentials/generate-revocation-set.py --help + +import base64 +import json +import logging +import subprocess +import sys +from enum import Enum + +import click +import requests +from click_option_group import RequiredMutuallyExclusiveOptionGroup, optgroup +from cryptography import x509 +from cryptography.hazmat.primitives.asymmetric import ec +from cryptography.x509.oid import NameOID + +# Supported log levels, mapping string values required for argument +# parsing into logging constants +__LOG_LEVELS__ = { + 'debug': logging.DEBUG, + 'info': logging.INFO, + 'warn': logging.WARN, + 'fatal': logging.FATAL, +} + + +class RevocationType(Enum): + CRL = 1 + + +OID_VENDOR_ID = x509.ObjectIdentifier("1.3.6.1.4.1.37244.2.1") +OID_PRODUCT_ID = x509.ObjectIdentifier("1.3.6.1.4.1.37244.2.2") + +PRODUCTION_NODE_URL = "https://on.dcl.csa-iot.org:26657" +PRODUCTION_NODE_URL_REST = "https://on.dcl.csa-iot.org" +TEST_NODE_URL_REST = "https://on.test-net.dcl.csa-iot.org" + + +def extract_single_integer_attribute(subject, oid): + attribute_list = subject.get_attributes_for_oid(oid) + + if len(attribute_list) == 1: + return int(attribute_list[0].value, 16) + + return None + + +def extract_fallback_tag_from_common_name(cn, marker): + val_len = 4 + start_idx = cn.find(marker) + + if start_idx != -1: + val_start_idx = start_idx + len(marker) + val = cn[val_start_idx:val_start_idx + val_len] + return int(val, 16) if len(val) == 4 else None + + return None + + +def parse_vid_pid_from_distinguished_name(distinguished_name): + # VID/PID encoded using Matter specific RDNs + vid = extract_single_integer_attribute(distinguished_name, OID_VENDOR_ID) + pid = extract_single_integer_attribute(distinguished_name, OID_PRODUCT_ID) + + # Fallback method to get the VID/PID, encoded in CN as "Mvid:FFFF Mpid:1234" + if vid is None and pid is None: + cn = distinguished_name.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value + vid = extract_fallback_tag_from_common_name(cn, 'Mvid:') + pid = extract_fallback_tag_from_common_name(cn, 'Mpid:') + + return vid, pid + + +class DCLDClient: + ''' + A client for interacting with DCLD using either the REST API or command line interface (CLI). + + ''' + + def __init__(self, use_rest: bool, dcld_exe: str, production: bool, rest_node_url: str): + ''' + Initialize the client + + use_rest: bool + Use RESTful API with HTTPS against `rest_node_url` + dcld_exe: str + Path to `dcld` executable + production: bool + Use MainNet DCL URL with dcld executable + rest_node_url: str + RESTful API URL + ''' + + self.use_rest = use_rest + self.dcld_exe = dcld_exe + self.production = production + self.rest_node_url = rest_node_url + + def build_dcld_command_line(self, cmdlist: list[str]) -> list[str]: + ''' + Build command line for `dcld` executable. + + Parameters + ---------- + cmdlist: list[str] + List of command line arguments to append to some predefined arguments + + Returns + ------- + list[str] + The complete command list including the DCLD executable and node option if in production + ''' + + return [self.dcld_exe] + cmdlist + (['--node', PRODUCTION_NODE_URL] if self.production else []) + + def get_dcld_cmd_output_json(self, cmdlist: list[str]) -> dict: + ''' + Executes a DCLD CLI command and returns the JSON output. + + Parameters + ---------- + cmdlist: list[str] + List of command line arguments to append to some predefined arguments + + Returns + ------- + dict + The JSON output from the command + ''' + + # Set the output as JSON + subprocess.Popen([self.dcld_exe, 'config', 'output', 'json']) + + cmdpipe = subprocess.Popen(self.build_dcld_command_line(cmdlist), + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + return json.loads(cmdpipe.stdout.read()) + + def get_revocation_points(self) -> list[dict]: + ''' + Get revocation points from DCL + + Returns + ------- + list[dict] + List of revocation points + ''' + + if self.use_rest: + response = requests.get(f"{self.rest_node_url}/dcl/pki/revocation-points").json() + else: + response = self.get_dcld_cmd_output_json(['query', 'pki', 'all-revocation-points']) + + return response["PkiRevocationDistributionPoint"] + + def get_paa_cert_for_crl_issuer(self, crl_signer_issuer_name_b64, crl_signer_authority_key_id) -> str: + ''' + Get PAA certificate for CRL issuer + + Parameters + ---------- + crl_signer_issuer_name_b64: str + The issuer name of the CRL signer. + crl_signer_authority_key_id: str + The authority key ID of the CRL signer. + + Returns + ------- + str + PAA certificate in PEM format + ''' + if self.use_rest: + response = requests.get( + f"{self.rest_node_url}/dcl/pki/certificates/{crl_signer_issuer_name_b64}/{crl_signer_authority_key_id}").json() + else: + response = self.get_dcld_cmd_output_json( + ['query', 'pki', 'x509-cert', '-u', crl_signer_issuer_name_b64, '-k', crl_signer_authority_key_id]) + + return response["approvedCertificates"]["certs"][0]["pemCert"] + + def get_revocations_points_by_skid(self, issuer_subject_key_id) -> list[dict]: + ''' + Get revocation points by subject key ID + + Parameters + ---------- + issuer_subject_key_id: str + Subject key ID + + Returns + ------- + list[dict] + List of revocation points + ''' + if self.use_rest: + response = requests.get(f"{self.rest_node_url}/dcl/pki/revocation-points/{issuer_subject_key_id}").json() + else: + response = self.get_dcld_cmd_output_json(['query', 'pki', 'revocation-points', + '--issuer-subject-key-id', issuer_subject_key_id]) + + return response["pkiRevocationDistributionPointsByIssuerSubjectKeyID"]["points"] + + +@click.command() +@click.help_option('-h', '--help') +@optgroup.group('Input data sources', cls=RequiredMutuallyExclusiveOptionGroup) +@optgroup.option('--use-main-net-dcld', type=str, default='', metavar='PATH', help="Location of `dcld` binary, to use `dcld` for mirroring MainNet.") +@optgroup.option('--use-test-net-dcld', type=str, default='', metavar='PATH', help="Location of `dcld` binary, to use `dcld` for mirroring TestNet.") +@optgroup.option('--use-main-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public MainNet observer.") +@optgroup.option('--use-test-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public TestNet observer.") +@optgroup.group('Optional arguments') +@optgroup.option('--output', default='sample_revocation_set_list.json', type=str, metavar='FILEPATH', + help="Output filename (default: sample_revocation_set_list.json)") +@optgroup.option('--log-level', default='INFO', show_default=True, type=click.Choice(__LOG_LEVELS__.keys(), + case_sensitive=False), callback=lambda c, p, v: __LOG_LEVELS__[v], + help='Determines the verbosity of script output') +def main(use_main_net_dcld: str, use_test_net_dcld: str, use_main_net_http: bool, use_test_net_http: bool, output: str, log_level: str): + """Tool to construct revocation set from DCL""" + + logging.basicConfig( + level=log_level, + format='%(asctime)s %(name)s %(levelname)-7s %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + ) + + production = False + dcld = use_test_net_dcld + + if len(use_main_net_dcld) > 0: + dcld = use_main_net_dcld + production = True + + use_rest = use_main_net_http or use_test_net_http + if use_main_net_http: + production = True + + rest_node_url = PRODUCTION_NODE_URL_REST if production else TEST_NODE_URL_REST + + dcld_client = DCLDClient(use_rest, dcld, production, rest_node_url) + + revocation_point_list = dcld_client.get_revocation_points() + + revocation_set = [] + + for revocation_point in revocation_point_list: + # 1. Validate Revocation Type + if revocation_point["revocationType"] != RevocationType.CRL.value: + logging.warning("Revocation Type is not CRL, continue...") + continue + + # 2. Parse the certificate + crl_signer_certificate = x509.load_pem_x509_certificate(bytes(revocation_point["crlSignerCertificate"], 'utf-8')) + + vid = revocation_point["vid"] + pid = revocation_point["pid"] + is_paa = revocation_point["isPAA"] + + # 3. && 4. Validate VID/PID + crl_vid, crl_pid = parse_vid_pid_from_distinguished_name(crl_signer_certificate.subject) + + if is_paa: + if crl_vid is not None: + if vid != crl_vid: + logging.warning("VID is not CRL VID, continue...") + continue + else: + if crl_vid is None or vid != crl_vid: + logging.warning("VID is not CRL VID, continue...") + continue + if crl_pid is not None: + if pid != crl_pid: + logging.warning("PID is not CRL PID, continue...") + continue + + # 5. Validate the certification path containing CRLSignerCertificate. + crl_signer_issuer_name = base64.b64encode(crl_signer_certificate.issuer.public_bytes()).decode('utf-8') + + crl_signer_authority_key_id = crl_signer_certificate.extensions.get_extension_for_oid( + x509.OID_AUTHORITY_KEY_IDENTIFIER).value.key_identifier + + # Convert CRL Signer AKID to colon separated hex + crl_signer_authority_key_id = crl_signer_authority_key_id.hex().upper() + crl_signer_authority_key_id = ':'.join([crl_signer_authority_key_id[i:i+2] + for i in range(0, len(crl_signer_authority_key_id), 2)]) + + paa_certificate = dcld_client.get_paa_cert_for_crl_issuer(crl_signer_issuer_name, crl_signer_authority_key_id) + + if paa_certificate is None: + logging.warning("PAA Certificate not found, continue...") + continue + + paa_certificate_object = x509.load_pem_x509_certificate(bytes(paa_certificate, 'utf-8')) + + # TODO: use verify_directly_issued_by() method when we upgrade cryptography to v40.0.0 + # Verify issuer matches with subject + if crl_signer_certificate.issuer != paa_certificate_object.subject: + logging.warning("CRL Signer Certificate issuer does not match with PAA Certificate subject, continue...") + continue + + # Check crl signers AKID matches with SKID of paa_certificate_object's AKID + paa_skid = paa_certificate_object.extensions.get_extension_for_oid(x509.OID_SUBJECT_KEY_IDENTIFIER).value.key_identifier + crl_akid = crl_signer_certificate.extensions.get_extension_for_oid(x509.OID_AUTHORITY_KEY_IDENTIFIER).value.key_identifier + if paa_skid != crl_akid: + logging.warning("CRL Signer's AKID does not match with PAA Certificate SKID, continue...") + continue + + # verify if PAA singed the crl signer certificate + try: + paa_certificate_object.public_key().verify(crl_signer_certificate.signature, + crl_signer_certificate.tbs_certificate_bytes, + ec.ECDSA(crl_signer_certificate.signature_hash_algorithm)) + except Exception: + logging.warning("CRL Signer Certificate is not signed by PAA Certificate, continue...") + continue + + # 6. Obtain the CRL + logging.debug(f"Fetching CRL from {revocation_point['dataURL']}") + try: + r = requests.get(revocation_point["dataURL"], timeout=5) + except Exception: + logging.error('Failed to fetch CRL') + continue + + try: + crl_file = x509.load_der_x509_crl(r.content) + except Exception: + logging.error('Failed to load CRL') + continue + + # 7. Perform CRL File Validation + crl_authority_key_id = crl_file.extensions.get_extension_for_oid(x509.OID_AUTHORITY_KEY_IDENTIFIER).value.key_identifier + crl_signer_subject_key_id = crl_signer_certificate.extensions.get_extension_for_oid( + x509.OID_SUBJECT_KEY_IDENTIFIER).value.key_identifier + if crl_authority_key_id != crl_signer_subject_key_id: + logging.warning("CRL Authority Key ID is not CRL Signer Subject Key ID, continue...") + continue + + issuer_subject_key_id = ''.join('{:02X}'.format(x) for x in crl_authority_key_id) + + # b. + same_issuer_points = dcld_client.get_revocations_points_by_skid(issuer_subject_key_id) + count_with_matching_vid_issuer_skid = sum(item.get('vid') == vid for item in same_issuer_points) + + if count_with_matching_vid_issuer_skid > 1: + try: + issuing_distribution_point = crl_file.extensions.get_extension_for_oid( + x509.OID_ISSUING_DISTRIBUTION_POINT).value + except Exception: + logging.warning("CRL Issuing Distribution Point not found, continue...") + continue + + uri_list = issuing_distribution_point.full_name + if len(uri_list) == 1 and isinstance(uri_list[0], x509.UniformResourceIdentifier): + if uri_list[0].value != revocation_point["dataURL"]: + logging.warning("CRL Issuing Distribution Point URI is not CRL URL, continue...") + continue + else: + logging.warning("CRL Issuing Distribution Point URI is not CRL URL, continue...") + continue + + # 9. Assign CRL File Issuer + certificate_authority_name = base64.b64encode(crl_file.issuer.public_bytes()).decode('utf-8') + logging.debug(f"CRL File Issuer: {certificate_authority_name}") + + serialnumber_list = [] + # 10. Iterate through the Revoked Certificates List + for revoked_cert in crl_file: + # a. + try: + revoked_cert_issuer = revoked_cert.extensions.get_extension_for_oid( + x509.CRLEntryExtensionOID.CERTIFICATE_ISSUER).value.get_values_for_type(x509.DirectoryName).value + + if revoked_cert_issuer is not None: + if revoked_cert_issuer != certificate_authority_name: + logging.warning("CRL Issuer is not CRL File Issuer, continue...") + continue + except Exception: + pass + + # b. + # TODO: Verify that the certificate chain of the entry is linking to the same PAA + # that issued the CRLSignerCertificate for this entry, including path through + # CRLSignerDelegator if present. If the PAAs under which were issued the certificate + # and the CRLSignerCertificate are different, ignore the entry. + + # c. and d. + serialnumber_list.append(bytes(str('{:02X}'.format(revoked_cert.serial_number)), 'utf-8').decode('utf-8')) + + issuer_name = base64.b64encode(crl_file.issuer.public_bytes()).decode('utf-8') + + revocation_set.append({"type": "revocation_set", + "issuer_subject_key_id": issuer_subject_key_id, + "issuer_name": issuer_name, + "revoked_serial_numbers": serialnumber_list}) + + with open(output, 'w+') as outfile: + json.dump(revocation_set, outfile, indent=4) + + +if __name__ == "__main__": + if len(sys.argv) == 1: + main.main(['--help']) + else: + main() diff --git a/data_model/1.3/clusters/ACL-Cluster.xml b/data_model/1.3/clusters/ACL-Cluster.xml new file mode 100644 index 00000000000000..a193ef2ac3206f --- /dev/null +++ b/data_model/1.3/clusters/ACL-Cluster.xml @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/AccountLogin.xml b/data_model/1.3/clusters/AccountLogin.xml new file mode 100644 index 00000000000000..8a9ed7d9389f40 --- /dev/null +++ b/data_model/1.3/clusters/AccountLogin.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/AdminCommissioningCluster.xml b/data_model/1.3/clusters/AdminCommissioningCluster.xml new file mode 100644 index 00000000000000..ccbb579134dc00 --- /dev/null +++ b/data_model/1.3/clusters/AdminCommissioningCluster.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/AirQuality.xml b/data_model/1.3/clusters/AirQuality.xml new file mode 100644 index 00000000000000..c05717863c5ff4 --- /dev/null +++ b/data_model/1.3/clusters/AirQuality.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/AlarmBase.xml b/data_model/1.3/clusters/AlarmBase.xml new file mode 100644 index 00000000000000..fd0ccb5bc19d46 --- /dev/null +++ b/data_model/1.3/clusters/AlarmBase.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ApplicationBasic.xml b/data_model/1.3/clusters/ApplicationBasic.xml new file mode 100644 index 00000000000000..ee39b8a421209d --- /dev/null +++ b/data_model/1.3/clusters/ApplicationBasic.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ApplicationLauncher.xml b/data_model/1.3/clusters/ApplicationLauncher.xml new file mode 100644 index 00000000000000..57d6858dd8ce14 --- /dev/null +++ b/data_model/1.3/clusters/ApplicationLauncher.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/AudioOutput.xml b/data_model/1.3/clusters/AudioOutput.xml new file mode 100644 index 00000000000000..27bb5a20bb7952 --- /dev/null +++ b/data_model/1.3/clusters/AudioOutput.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/BallastConfiguration.xml b/data_model/1.3/clusters/BallastConfiguration.xml new file mode 100644 index 00000000000000..0f37d86067e994 --- /dev/null +++ b/data_model/1.3/clusters/BallastConfiguration.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/BasicInformationCluster.xml b/data_model/1.3/clusters/BasicInformationCluster.xml new file mode 100644 index 00000000000000..137e8b70408bf8 --- /dev/null +++ b/data_model/1.3/clusters/BasicInformationCluster.xml @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Binding-Cluster.xml b/data_model/1.3/clusters/Binding-Cluster.xml new file mode 100644 index 00000000000000..444c99b315348d --- /dev/null +++ b/data_model/1.3/clusters/Binding-Cluster.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/BooleanState.xml b/data_model/1.3/clusters/BooleanState.xml new file mode 100644 index 00000000000000..5bb29f53ae0c3e --- /dev/null +++ b/data_model/1.3/clusters/BooleanState.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/BooleanStateConfiguration.xml b/data_model/1.3/clusters/BooleanStateConfiguration.xml new file mode 100644 index 00000000000000..01444d565294b3 --- /dev/null +++ b/data_model/1.3/clusters/BooleanStateConfiguration.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Channel.xml b/data_model/1.3/clusters/Channel.xml new file mode 100644 index 00000000000000..17144c9032c3e5 --- /dev/null +++ b/data_model/1.3/clusters/Channel.xml @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ColorControl.xml b/data_model/1.3/clusters/ColorControl.xml new file mode 100644 index 00000000000000..456b3ff14cfff9 --- /dev/null +++ b/data_model/1.3/clusters/ColorControl.xml @@ -0,0 +1,1028 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ConcentrationMeasurement.xml b/data_model/1.3/clusters/ConcentrationMeasurement.xml similarity index 100% rename from data_model/clusters/ConcentrationMeasurement.xml rename to data_model/1.3/clusters/ConcentrationMeasurement.xml diff --git a/data_model/1.3/clusters/ContentAppObserver.xml b/data_model/1.3/clusters/ContentAppObserver.xml new file mode 100644 index 00000000000000..d6808baf982215 --- /dev/null +++ b/data_model/1.3/clusters/ContentAppObserver.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ContentControl.xml b/data_model/1.3/clusters/ContentControl.xml new file mode 100644 index 00000000000000..b2539cf445c289 --- /dev/null +++ b/data_model/1.3/clusters/ContentControl.xml @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ContentLauncher.xml b/data_model/1.3/clusters/ContentLauncher.xml new file mode 100644 index 00000000000000..9a5674efa8eb64 --- /dev/null +++ b/data_model/1.3/clusters/ContentLauncher.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Descriptor-Cluster.xml b/data_model/1.3/clusters/Descriptor-Cluster.xml new file mode 100644 index 00000000000000..659b2ffaa5ddc0 --- /dev/null +++ b/data_model/1.3/clusters/Descriptor-Cluster.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DeviceEnergyManagement.xml b/data_model/1.3/clusters/DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..f74d7e572550cc --- /dev/null +++ b/data_model/1.3/clusters/DeviceEnergyManagement.xml @@ -0,0 +1,617 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DiagnosticLogsCluster.xml b/data_model/1.3/clusters/DiagnosticLogsCluster.xml new file mode 100644 index 00000000000000..38520e81a85e16 --- /dev/null +++ b/data_model/1.3/clusters/DiagnosticLogsCluster.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DiagnosticsEthernet.xml b/data_model/1.3/clusters/DiagnosticsEthernet.xml new file mode 100644 index 00000000000000..dfcd3d11c41f52 --- /dev/null +++ b/data_model/1.3/clusters/DiagnosticsEthernet.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DiagnosticsGeneral.xml b/data_model/1.3/clusters/DiagnosticsGeneral.xml new file mode 100644 index 00000000000000..4da912b03dc3df --- /dev/null +++ b/data_model/1.3/clusters/DiagnosticsGeneral.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DiagnosticsSoftware.xml b/data_model/1.3/clusters/DiagnosticsSoftware.xml new file mode 100644 index 00000000000000..7cb3c9ff39ad2f --- /dev/null +++ b/data_model/1.3/clusters/DiagnosticsSoftware.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DiagnosticsThread.xml b/data_model/1.3/clusters/DiagnosticsThread.xml new file mode 100644 index 00000000000000..120efaddf8c08e --- /dev/null +++ b/data_model/1.3/clusters/DiagnosticsThread.xml @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DiagnosticsWiFi.xml b/data_model/1.3/clusters/DiagnosticsWiFi.xml new file mode 100644 index 00000000000000..b3951d967dc31f --- /dev/null +++ b/data_model/1.3/clusters/DiagnosticsWiFi.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DishwasherAlarm.xml b/data_model/1.3/clusters/DishwasherAlarm.xml new file mode 100644 index 00000000000000..bdc399f9399486 --- /dev/null +++ b/data_model/1.3/clusters/DishwasherAlarm.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/DoorLock.xml b/data_model/1.3/clusters/DoorLock.xml new file mode 100644 index 00000000000000..fcf86f3a95aa24 --- /dev/null +++ b/data_model/1.3/clusters/DoorLock.xml @@ -0,0 +1,2078 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ElectricalEnergyMeasurement.xml b/data_model/1.3/clusters/ElectricalEnergyMeasurement.xml new file mode 100644 index 00000000000000..f8bbec4c03db95 --- /dev/null +++ b/data_model/1.3/clusters/ElectricalEnergyMeasurement.xml @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ElectricalPowerMeasurement.xml b/data_model/1.3/clusters/ElectricalPowerMeasurement.xml new file mode 100644 index 00000000000000..cfb8ce9018e73c --- /dev/null +++ b/data_model/1.3/clusters/ElectricalPowerMeasurement.xml @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/EnergyEVSE.xml b/data_model/1.3/clusters/EnergyEVSE.xml new file mode 100644 index 00000000000000..4b881f5a1135a4 --- /dev/null +++ b/data_model/1.3/clusters/EnergyEVSE.xml @@ -0,0 +1,564 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/EnergyPreference.xml b/data_model/1.3/clusters/EnergyPreference.xml new file mode 100644 index 00000000000000..eafb527a868b22 --- /dev/null +++ b/data_model/1.3/clusters/EnergyPreference.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/FanControl.xml b/data_model/1.3/clusters/FanControl.xml new file mode 100644 index 00000000000000..224f811261f68b --- /dev/null +++ b/data_model/1.3/clusters/FanControl.xml @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/FlowMeasurement.xml b/data_model/1.3/clusters/FlowMeasurement.xml new file mode 100644 index 00000000000000..71178874d57c14 --- /dev/null +++ b/data_model/1.3/clusters/FlowMeasurement.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/GeneralCommissioningCluster.xml b/data_model/1.3/clusters/GeneralCommissioningCluster.xml new file mode 100644 index 00000000000000..e440222780ea02 --- /dev/null +++ b/data_model/1.3/clusters/GeneralCommissioningCluster.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Group-Key-Management-Cluster.xml b/data_model/1.3/clusters/Group-Key-Management-Cluster.xml new file mode 100644 index 00000000000000..c1819628e34d7b --- /dev/null +++ b/data_model/1.3/clusters/Group-Key-Management-Cluster.xml @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Groups.xml b/data_model/1.3/clusters/Groups.xml new file mode 100644 index 00000000000000..1f168e13fad933 --- /dev/null +++ b/data_model/1.3/clusters/Groups.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ICDManagement.xml b/data_model/1.3/clusters/ICDManagement.xml new file mode 100644 index 00000000000000..512dfd119efef7 --- /dev/null +++ b/data_model/1.3/clusters/ICDManagement.xml @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Identify.xml b/data_model/1.3/clusters/Identify.xml new file mode 100644 index 00000000000000..8044ceb33dc3bd --- /dev/null +++ b/data_model/1.3/clusters/Identify.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/IlluminanceMeasurement.xml b/data_model/1.3/clusters/IlluminanceMeasurement.xml new file mode 100644 index 00000000000000..d3228b845ca058 --- /dev/null +++ b/data_model/1.3/clusters/IlluminanceMeasurement.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/KeypadInput.xml b/data_model/1.3/clusters/KeypadInput.xml new file mode 100644 index 00000000000000..57d6ef4650e013 --- /dev/null +++ b/data_model/1.3/clusters/KeypadInput.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/1.3/clusters/Label-Cluster-FixedLabelCluster.xml new file mode 100644 index 00000000000000..98106b6fc33e40 --- /dev/null +++ b/data_model/1.3/clusters/Label-Cluster-FixedLabelCluster.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Label-Cluster-LabelCluster.xml b/data_model/1.3/clusters/Label-Cluster-LabelCluster.xml new file mode 100644 index 00000000000000..0ca5566f0dc132 --- /dev/null +++ b/data_model/1.3/clusters/Label-Cluster-LabelCluster.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/1.3/clusters/Label-Cluster-UserLabelCluster.xml new file mode 100644 index 00000000000000..eba0099ffb59d2 --- /dev/null +++ b/data_model/1.3/clusters/Label-Cluster-UserLabelCluster.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LaundryDryerControls.xml b/data_model/1.3/clusters/LaundryDryerControls.xml new file mode 100644 index 00000000000000..af4f787c0432b7 --- /dev/null +++ b/data_model/1.3/clusters/LaundryDryerControls.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LaundryWasherControls.xml b/data_model/1.3/clusters/LaundryWasherControls.xml new file mode 100644 index 00000000000000..6c4f4bc0b0c3a5 --- /dev/null +++ b/data_model/1.3/clusters/LaundryWasherControls.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LevelControl.xml b/data_model/1.3/clusters/LevelControl.xml new file mode 100644 index 00000000000000..fa6cbe397a672a --- /dev/null +++ b/data_model/1.3/clusters/LevelControl.xml @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LocalizationConfiguration.xml b/data_model/1.3/clusters/LocalizationConfiguration.xml new file mode 100644 index 00000000000000..66809f545389be --- /dev/null +++ b/data_model/1.3/clusters/LocalizationConfiguration.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LocalizationTimeFormat.xml b/data_model/1.3/clusters/LocalizationTimeFormat.xml new file mode 100644 index 00000000000000..db8b809b0341a9 --- /dev/null +++ b/data_model/1.3/clusters/LocalizationTimeFormat.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LocalizationUnit.xml b/data_model/1.3/clusters/LocalizationUnit.xml new file mode 100644 index 00000000000000..2c6e1ecbd648e6 --- /dev/null +++ b/data_model/1.3/clusters/LocalizationUnit.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/LowPower.xml b/data_model/1.3/clusters/LowPower.xml new file mode 100644 index 00000000000000..cf75cb0c680164 --- /dev/null +++ b/data_model/1.3/clusters/LowPower.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/MediaInput.xml b/data_model/1.3/clusters/MediaInput.xml new file mode 100644 index 00000000000000..a92985ff924a75 --- /dev/null +++ b/data_model/1.3/clusters/MediaInput.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/MediaPlayback.xml b/data_model/1.3/clusters/MediaPlayback.xml new file mode 100644 index 00000000000000..03175277dc12c5 --- /dev/null +++ b/data_model/1.3/clusters/MediaPlayback.xml @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Messages.xml b/data_model/1.3/clusters/Messages.xml new file mode 100644 index 00000000000000..402310c4b92eea --- /dev/null +++ b/data_model/1.3/clusters/Messages.xml @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/MicrowaveOvenControl.xml b/data_model/1.3/clusters/MicrowaveOvenControl.xml new file mode 100644 index 00000000000000..ecc9d23b143d4b --- /dev/null +++ b/data_model/1.3/clusters/MicrowaveOvenControl.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ModeBase.xml b/data_model/1.3/clusters/ModeBase.xml new file mode 100644 index 00000000000000..dcd6cf1c448028 --- /dev/null +++ b/data_model/1.3/clusters/ModeBase.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ModeSelect.xml b/data_model/1.3/clusters/ModeSelect.xml new file mode 100644 index 00000000000000..cfdf7adb92761c --- /dev/null +++ b/data_model/1.3/clusters/ModeSelect.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_DeviceEnergyManagement.xml b/data_model/1.3/clusters/Mode_DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..e167e8649650ba --- /dev/null +++ b/data_model/1.3/clusters/Mode_DeviceEnergyManagement.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_Dishwasher.xml b/data_model/1.3/clusters/Mode_Dishwasher.xml new file mode 100644 index 00000000000000..40a19828d44ebb --- /dev/null +++ b/data_model/1.3/clusters/Mode_Dishwasher.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_EVSE.xml b/data_model/1.3/clusters/Mode_EVSE.xml new file mode 100644 index 00000000000000..27a1adcfcd5a2a --- /dev/null +++ b/data_model/1.3/clusters/Mode_EVSE.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_LaundryWasher.xml b/data_model/1.3/clusters/Mode_LaundryWasher.xml new file mode 100644 index 00000000000000..5d3cce891790e1 --- /dev/null +++ b/data_model/1.3/clusters/Mode_LaundryWasher.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_MicrowaveOven.xml b/data_model/1.3/clusters/Mode_MicrowaveOven.xml new file mode 100644 index 00000000000000..6f1e8ed895f489 --- /dev/null +++ b/data_model/1.3/clusters/Mode_MicrowaveOven.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_Oven.xml b/data_model/1.3/clusters/Mode_Oven.xml new file mode 100644 index 00000000000000..9c596e01467418 --- /dev/null +++ b/data_model/1.3/clusters/Mode_Oven.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_RVCClean.xml b/data_model/1.3/clusters/Mode_RVCClean.xml new file mode 100644 index 00000000000000..eed508072f6460 --- /dev/null +++ b/data_model/1.3/clusters/Mode_RVCClean.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_RVCRun.xml b/data_model/1.3/clusters/Mode_RVCRun.xml new file mode 100644 index 00000000000000..314afe1be2a984 --- /dev/null +++ b/data_model/1.3/clusters/Mode_RVCRun.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Mode_Refrigerator.xml b/data_model/1.3/clusters/Mode_Refrigerator.xml new file mode 100644 index 00000000000000..b4550283daf9e5 --- /dev/null +++ b/data_model/1.3/clusters/Mode_Refrigerator.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/NetworkCommissioningCluster.xml b/data_model/1.3/clusters/NetworkCommissioningCluster.xml new file mode 100644 index 00000000000000..855947e5dda349 --- /dev/null +++ b/data_model/1.3/clusters/NetworkCommissioningCluster.xml @@ -0,0 +1,513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OTAProvider.xml b/data_model/1.3/clusters/OTAProvider.xml new file mode 100644 index 00000000000000..2a5be10961f02c --- /dev/null +++ b/data_model/1.3/clusters/OTAProvider.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OTARequestor.xml b/data_model/1.3/clusters/OTARequestor.xml new file mode 100644 index 00000000000000..f6a5ff0365abed --- /dev/null +++ b/data_model/1.3/clusters/OTARequestor.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OccupancySensing.xml b/data_model/1.3/clusters/OccupancySensing.xml new file mode 100644 index 00000000000000..48756121d24769 --- /dev/null +++ b/data_model/1.3/clusters/OccupancySensing.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OnOff.xml b/data_model/1.3/clusters/OnOff.xml new file mode 100644 index 00000000000000..9366985e5ce35e --- /dev/null +++ b/data_model/1.3/clusters/OnOff.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OperationalCredentialCluster.xml b/data_model/1.3/clusters/OperationalCredentialCluster.xml new file mode 100644 index 00000000000000..2aa070f96b2573 --- /dev/null +++ b/data_model/1.3/clusters/OperationalCredentialCluster.xml @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OperationalState.xml b/data_model/1.3/clusters/OperationalState.xml new file mode 100644 index 00000000000000..3648a8c81ec8f4 --- /dev/null +++ b/data_model/1.3/clusters/OperationalState.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OperationalState_Oven.xml b/data_model/1.3/clusters/OperationalState_Oven.xml new file mode 100644 index 00000000000000..fbcc634330faa7 --- /dev/null +++ b/data_model/1.3/clusters/OperationalState_Oven.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/OperationalState_RVC.xml b/data_model/1.3/clusters/OperationalState_RVC.xml new file mode 100644 index 00000000000000..f33791fcf86407 --- /dev/null +++ b/data_model/1.3/clusters/OperationalState_RVC.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/PowerSourceCluster.xml b/data_model/1.3/clusters/PowerSourceCluster.xml new file mode 100644 index 00000000000000..1c01cc548bfdee --- /dev/null +++ b/data_model/1.3/clusters/PowerSourceCluster.xml @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/PowerSourceConfigurationCluster.xml b/data_model/1.3/clusters/PowerSourceConfigurationCluster.xml new file mode 100644 index 00000000000000..6a47ce1b54cdbd --- /dev/null +++ b/data_model/1.3/clusters/PowerSourceConfigurationCluster.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/PowerTopology.xml b/data_model/1.3/clusters/PowerTopology.xml new file mode 100644 index 00000000000000..4ebdda614a4aec --- /dev/null +++ b/data_model/1.3/clusters/PowerTopology.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/PressureMeasurement.xml b/data_model/1.3/clusters/PressureMeasurement.xml new file mode 100644 index 00000000000000..a46e911253941f --- /dev/null +++ b/data_model/1.3/clusters/PressureMeasurement.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ProxyConfiguration-Cluster.xml b/data_model/1.3/clusters/ProxyConfiguration-Cluster.xml new file mode 100644 index 00000000000000..8ad566ec8527b2 --- /dev/null +++ b/data_model/1.3/clusters/ProxyConfiguration-Cluster.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ProxyDiscovery-Cluster.xml b/data_model/1.3/clusters/ProxyDiscovery-Cluster.xml new file mode 100644 index 00000000000000..6fa4a9eb6f3a06 --- /dev/null +++ b/data_model/1.3/clusters/ProxyDiscovery-Cluster.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/PumpConfigurationControl.xml b/data_model/1.3/clusters/PumpConfigurationControl.xml new file mode 100644 index 00000000000000..79fafe659c95e2 --- /dev/null +++ b/data_model/1.3/clusters/PumpConfigurationControl.xml @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/RefrigeratorAlarm.xml b/data_model/1.3/clusters/RefrigeratorAlarm.xml new file mode 100644 index 00000000000000..a3a75011813cd1 --- /dev/null +++ b/data_model/1.3/clusters/RefrigeratorAlarm.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/ResourceMonitoring.xml b/data_model/1.3/clusters/ResourceMonitoring.xml similarity index 100% rename from data_model/clusters/ResourceMonitoring.xml rename to data_model/1.3/clusters/ResourceMonitoring.xml diff --git a/data_model/1.3/clusters/Scenes.xml b/data_model/1.3/clusters/Scenes.xml new file mode 100644 index 00000000000000..9150a754d3041a --- /dev/null +++ b/data_model/1.3/clusters/Scenes.xml @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data_model/1.3/clusters/SmokeCOAlarm.xml b/data_model/1.3/clusters/SmokeCOAlarm.xml new file mode 100644 index 00000000000000..25c034ac94082c --- /dev/null +++ b/data_model/1.3/clusters/SmokeCOAlarm.xml @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Switch.xml b/data_model/1.3/clusters/Switch.xml new file mode 100644 index 00000000000000..c7b607c637c74c --- /dev/null +++ b/data_model/1.3/clusters/Switch.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/TargetNavigator.xml b/data_model/1.3/clusters/TargetNavigator.xml new file mode 100644 index 00000000000000..c5fb59919585c1 --- /dev/null +++ b/data_model/1.3/clusters/TargetNavigator.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/TemperatureControl.xml b/data_model/1.3/clusters/TemperatureControl.xml new file mode 100644 index 00000000000000..3f5fa9c00332d6 --- /dev/null +++ b/data_model/1.3/clusters/TemperatureControl.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/TemperatureMeasurement.xml b/data_model/1.3/clusters/TemperatureMeasurement.xml new file mode 100644 index 00000000000000..176fad6b246a60 --- /dev/null +++ b/data_model/1.3/clusters/TemperatureMeasurement.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/Thermostat.xml b/data_model/1.3/clusters/Thermostat.xml new file mode 100644 index 00000000000000..75640c697e0478 --- /dev/null +++ b/data_model/1.3/clusters/Thermostat.xml @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/1.3/clusters/ThermostatUserInterfaceConfiguration.xml new file mode 100644 index 00000000000000..b4ecd49f93ae4a --- /dev/null +++ b/data_model/1.3/clusters/ThermostatUserInterfaceConfiguration.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/TimeSync.xml b/data_model/1.3/clusters/TimeSync.xml new file mode 100644 index 00000000000000..9d4057db8bdb85 --- /dev/null +++ b/data_model/1.3/clusters/TimeSync.xml @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ValidProxies-Cluster.xml b/data_model/1.3/clusters/ValidProxies-Cluster.xml new file mode 100644 index 00000000000000..b9db8e1762647f --- /dev/null +++ b/data_model/1.3/clusters/ValidProxies-Cluster.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/ValveConfigurationControl.xml b/data_model/1.3/clusters/ValveConfigurationControl.xml new file mode 100644 index 00000000000000..b0f2ec91b0fa95 --- /dev/null +++ b/data_model/1.3/clusters/ValveConfigurationControl.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/WakeOnLAN.xml b/data_model/1.3/clusters/WakeOnLAN.xml new file mode 100644 index 00000000000000..4f6e032c084b38 --- /dev/null +++ b/data_model/1.3/clusters/WakeOnLAN.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/WaterContentMeasurement.xml b/data_model/1.3/clusters/WaterContentMeasurement.xml similarity index 100% rename from data_model/clusters/WaterContentMeasurement.xml rename to data_model/1.3/clusters/WaterContentMeasurement.xml diff --git a/data_model/1.3/clusters/WindowCovering.xml b/data_model/1.3/clusters/WindowCovering.xml new file mode 100644 index 00000000000000..af59da5a9f72de --- /dev/null +++ b/data_model/1.3/clusters/WindowCovering.xml @@ -0,0 +1,699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/bridge-clusters-ActionsCluster.xml b/data_model/1.3/clusters/bridge-clusters-ActionsCluster.xml new file mode 100644 index 00000000000000..5b9b54429b9429 --- /dev/null +++ b/data_model/1.3/clusters/bridge-clusters-ActionsCluster.xml @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/1.3/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml new file mode 100644 index 00000000000000..a7c990182a7dde --- /dev/null +++ b/data_model/1.3/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/clusters/cluster_ids.json b/data_model/1.3/clusters/cluster_ids.json new file mode 100644 index 00000000000000..40a46edd00722e --- /dev/null +++ b/data_model/1.3/clusters/cluster_ids.json @@ -0,0 +1,111 @@ +{ + "3": "Identify", + "4": "Groups", + "6": "On/Off", + "8": "Level Control", + "28": "Pulse Width Modulation", + "29": "Descriptor", + "30": "Binding", + "31": "AccessControl", + "37": "Actions", + "40": "Basic Information", + "41": "OTA Software Update Provider", + "42": "OTA Software Update Requestor", + "43": "Localization Configuration", + "44": "Time Format Localization", + "45": "Unit Localization", + "46": "Power Source Configuration", + "47": "Power Source", + "48": "General Commissioning", + "49": "Network Commissioning", + "50": "Diagnostic Logs", + "51": "General Diagnostics", + "52": "Software Diagnostics", + "53": "Thread Network Diagnostics", + "54": "Wi", + "55": "Ethernet Network Diagnostics", + "56": "Time Synchronization", + "57": "Bridged Device Basic Information", + "59": "Switch", + "60": "Administrator Commissioning", + "62": "Operational Credentials", + "63": "GroupKeyManagement", + "64": "Fixed Label", + "65": "User Label", + "66": "ProxyConfiguration", + "67": "ProxyDiscovery", + "68": "ValidProxies", + "69": "Boolean State", + "70": "ICDManagement", + "72": "Oven Cavity Operational State", + "73": "Oven Mode", + "74": "Laundry Dryer Controls", + "80": "Mode Select", + "81": "Laundry Washer Mode", + "82": "Refrigerator And Temperature Controlled Cabinet Mode", + "83": "Laundry Washer Controls", + "84": "RVC Run Mode", + "85": "RVC Clean Mode", + "86": "Temperature Control", + "87": "Refrigerator Alarm", + "89": "Dishwasher Mode", + "91": "Air Quality", + "92": "Smoke CO Alarm", + "93": "Dishwasher Alarm", + "94": "Microwave Oven Mode", + "95": "Microwave Oven Control", + "96": "Operational State", + "97": "RVC Operational State", + "98": "Scenes Management", + "113": "HEPA Filter Monitoring", + "114": "Activated Carbon Filter Monitoring", + "128": "Boolean State Configuration", + "129": "Valve Configuration and Control", + "144": "Electrical Power Measurement", + "145": "Electrical Energy Measurement", + "151": "Messages", + "152": "Device Energy Management", + "153": "Energy EVSE", + "155": "Energy Preference", + "156": "Power Topology", + "157": "Energy EVSE Mode", + "159": "Device Energy Management Mode", + "257": "Door Lock", + "258": "Window Covering", + "512": "Pump Configuration and Control", + "513": "Thermostat", + "514": "Fan Control", + "516": "Thermostat User Interface Configuration", + "768": "Color Control", + "769": "Ballast Configuration", + "1024": "Illuminance Measurement", + "1026": "Temperature Measurement", + "1027": "Pressure Measurement", + "1028": "Flow Measurement", + "1029": "Relative Humidity Measurement", + "1030": "Occupancy Sensing", + "1036": "Carbon Monoxide Concentration Measurement", + "1037": "Carbon Dioxide Concentration Measurement", + "1043": "Nitrogen Dioxide Concentration Measurement", + "1045": "Ozone Concentration Measurement", + "1066": "PM2", + "1067": "Formaldehyde Concentration Measurement", + "1068": "PM1 Concentration Measurement", + "1069": "PM10 Concentration Measurement", + "1070": "Total Volatile Organic Compounds Concentration Measurement", + "1071": "Radon Concentration Measurement", + "1283": "Wake on LAN", + "1284": "Channel", + "1285": "Target Navigator", + "1286": "Media Playback", + "1287": "Media Input", + "1288": "Low Power", + "1289": "Keypad Input", + "1290": "Content Launcher", + "1291": "Audio Output", + "1292": "Application Launcher", + "1293": "Application Basic", + "1294": "Account Login", + "1295": "Content Control", + "1296": "Content App Observer" +} diff --git a/data_model/1.3/device_types/Aggregator.xml b/data_model/1.3/device_types/Aggregator.xml new file mode 100644 index 00000000000000..48aa4347d850e1 --- /dev/null +++ b/data_model/1.3/device_types/Aggregator.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/AirPurifier.xml b/data_model/1.3/device_types/AirPurifier.xml similarity index 100% rename from data_model/device_types/AirPurifier.xml rename to data_model/1.3/device_types/AirPurifier.xml diff --git a/data_model/device_types/AirQualitySensor.xml b/data_model/1.3/device_types/AirQualitySensor.xml similarity index 100% rename from data_model/device_types/AirQualitySensor.xml rename to data_model/1.3/device_types/AirQualitySensor.xml diff --git a/data_model/1.3/device_types/BaseDeviceType.xml b/data_model/1.3/device_types/BaseDeviceType.xml new file mode 100644 index 00000000000000..ddcc49f258f0cb --- /dev/null +++ b/data_model/1.3/device_types/BaseDeviceType.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/BasicVideoPlayer.xml b/data_model/1.3/device_types/BasicVideoPlayer.xml new file mode 100644 index 00000000000000..ed82d08bc7a112 --- /dev/null +++ b/data_model/1.3/device_types/BasicVideoPlayer.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/BridgedNode.xml b/data_model/1.3/device_types/BridgedNode.xml new file mode 100644 index 00000000000000..59414205c052b5 --- /dev/null +++ b/data_model/1.3/device_types/BridgedNode.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/CastingVideoClient.xml b/data_model/1.3/device_types/CastingVideoClient.xml new file mode 100644 index 00000000000000..8f816b3e2a8056 --- /dev/null +++ b/data_model/1.3/device_types/CastingVideoClient.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/CastingVideoPlayer.xml b/data_model/1.3/device_types/CastingVideoPlayer.xml new file mode 100644 index 00000000000000..0b65f4f7aab57d --- /dev/null +++ b/data_model/1.3/device_types/CastingVideoPlayer.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/ColorDimmerSwitch.xml b/data_model/1.3/device_types/ColorDimmerSwitch.xml new file mode 100644 index 00000000000000..190ab6c7fc8b7e --- /dev/null +++ b/data_model/1.3/device_types/ColorDimmerSwitch.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/ColorTemperatureLight.xml b/data_model/1.3/device_types/ColorTemperatureLight.xml new file mode 100644 index 00000000000000..4f7cf64a9fd0a2 --- /dev/null +++ b/data_model/1.3/device_types/ColorTemperatureLight.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/ContactSensor.xml b/data_model/1.3/device_types/ContactSensor.xml similarity index 100% rename from data_model/device_types/ContactSensor.xml rename to data_model/1.3/device_types/ContactSensor.xml diff --git a/data_model/1.3/device_types/ContentApp.xml b/data_model/1.3/device_types/ContentApp.xml new file mode 100644 index 00000000000000..300e3122336ef4 --- /dev/null +++ b/data_model/1.3/device_types/ContentApp.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/ControlBridge.xml b/data_model/1.3/device_types/ControlBridge.xml new file mode 100644 index 00000000000000..04ff66db808cc9 --- /dev/null +++ b/data_model/1.3/device_types/ControlBridge.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/CookSurface.xml b/data_model/1.3/device_types/CookSurface.xml new file mode 100644 index 00000000000000..a32425e2f1df08 --- /dev/null +++ b/data_model/1.3/device_types/CookSurface.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/Cooktop.xml b/data_model/1.3/device_types/Cooktop.xml similarity index 100% rename from data_model/device_types/Cooktop.xml rename to data_model/1.3/device_types/Cooktop.xml diff --git a/data_model/device_types/DeviceEnergyManagement.xml b/data_model/1.3/device_types/DeviceEnergyManagement.xml similarity index 100% rename from data_model/device_types/DeviceEnergyManagement.xml rename to data_model/1.3/device_types/DeviceEnergyManagement.xml diff --git a/data_model/1.3/device_types/DimmableLight.xml b/data_model/1.3/device_types/DimmableLight.xml new file mode 100644 index 00000000000000..059a0802f77906 --- /dev/null +++ b/data_model/1.3/device_types/DimmableLight.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/DimmablePlug-InUnit.xml b/data_model/1.3/device_types/DimmablePlug-InUnit.xml new file mode 100644 index 00000000000000..4d344bfc9fb89c --- /dev/null +++ b/data_model/1.3/device_types/DimmablePlug-InUnit.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/DimmerSwitch.xml b/data_model/1.3/device_types/DimmerSwitch.xml new file mode 100644 index 00000000000000..0ad9f23638349a --- /dev/null +++ b/data_model/1.3/device_types/DimmerSwitch.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/Dishwasher.xml b/data_model/1.3/device_types/Dishwasher.xml new file mode 100644 index 00000000000000..6e351f38360e4e --- /dev/null +++ b/data_model/1.3/device_types/Dishwasher.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/DoorLock.xml b/data_model/1.3/device_types/DoorLock.xml new file mode 100644 index 00000000000000..8b73bbf8679a6b --- /dev/null +++ b/data_model/1.3/device_types/DoorLock.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/DoorLockController.xml b/data_model/1.3/device_types/DoorLockController.xml new file mode 100644 index 00000000000000..4d031a37be1eec --- /dev/null +++ b/data_model/1.3/device_types/DoorLockController.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/EVSE.xml b/data_model/1.3/device_types/EVSE.xml similarity index 100% rename from data_model/device_types/EVSE.xml rename to data_model/1.3/device_types/EVSE.xml diff --git a/data_model/device_types/ElectricalSensor.xml b/data_model/1.3/device_types/ElectricalSensor.xml similarity index 100% rename from data_model/device_types/ElectricalSensor.xml rename to data_model/1.3/device_types/ElectricalSensor.xml diff --git a/data_model/1.3/device_types/ExtendedColorLight.xml b/data_model/1.3/device_types/ExtendedColorLight.xml new file mode 100644 index 00000000000000..b4057d6b5bc997 --- /dev/null +++ b/data_model/1.3/device_types/ExtendedColorLight.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/ExtractorHood.xml b/data_model/1.3/device_types/ExtractorHood.xml similarity index 100% rename from data_model/device_types/ExtractorHood.xml rename to data_model/1.3/device_types/ExtractorHood.xml diff --git a/data_model/device_types/Fan.xml b/data_model/1.3/device_types/Fan.xml similarity index 100% rename from data_model/device_types/Fan.xml rename to data_model/1.3/device_types/Fan.xml diff --git a/data_model/1.3/device_types/FlowSensor.xml b/data_model/1.3/device_types/FlowSensor.xml new file mode 100644 index 00000000000000..bcc27b318aac36 --- /dev/null +++ b/data_model/1.3/device_types/FlowSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/GenericSwitch.xml b/data_model/1.3/device_types/GenericSwitch.xml new file mode 100644 index 00000000000000..acfa0a95005291 --- /dev/null +++ b/data_model/1.3/device_types/GenericSwitch.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/HumiditySensor.xml b/data_model/1.3/device_types/HumiditySensor.xml new file mode 100644 index 00000000000000..4a1808d7e0c580 --- /dev/null +++ b/data_model/1.3/device_types/HumiditySensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/LaundryDryer.xml b/data_model/1.3/device_types/LaundryDryer.xml new file mode 100644 index 00000000000000..d4692c7ad818a5 --- /dev/null +++ b/data_model/1.3/device_types/LaundryDryer.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/LaundryWasher.xml b/data_model/1.3/device_types/LaundryWasher.xml new file mode 100644 index 00000000000000..03b85f3bd363b4 --- /dev/null +++ b/data_model/1.3/device_types/LaundryWasher.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/LightSensor.xml b/data_model/1.3/device_types/LightSensor.xml new file mode 100644 index 00000000000000..0eca130f921623 --- /dev/null +++ b/data_model/1.3/device_types/LightSensor.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/MicrowaveOven.xml b/data_model/1.3/device_types/MicrowaveOven.xml similarity index 100% rename from data_model/device_types/MicrowaveOven.xml rename to data_model/1.3/device_types/MicrowaveOven.xml diff --git a/data_model/1.3/device_types/ModeSelectDeviceType.xml b/data_model/1.3/device_types/ModeSelectDeviceType.xml new file mode 100644 index 00000000000000..7848ba0adc787f --- /dev/null +++ b/data_model/1.3/device_types/ModeSelectDeviceType.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OccupancySensor.xml b/data_model/1.3/device_types/OccupancySensor.xml new file mode 100644 index 00000000000000..29213e43beb8f1 --- /dev/null +++ b/data_model/1.3/device_types/OccupancySensor.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OnOffLight.xml b/data_model/1.3/device_types/OnOffLight.xml new file mode 100644 index 00000000000000..f71c0bf77fa42c --- /dev/null +++ b/data_model/1.3/device_types/OnOffLight.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OnOffLightSwitch.xml b/data_model/1.3/device_types/OnOffLightSwitch.xml new file mode 100644 index 00000000000000..d6ac7f79520d26 --- /dev/null +++ b/data_model/1.3/device_types/OnOffLightSwitch.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OnOffPlug-inUnit.xml b/data_model/1.3/device_types/OnOffPlug-inUnit.xml new file mode 100644 index 00000000000000..3be1ed0f9eb13d --- /dev/null +++ b/data_model/1.3/device_types/OnOffPlug-inUnit.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OnOffSensor.xml b/data_model/1.3/device_types/OnOffSensor.xml new file mode 100644 index 00000000000000..935a438fb0bbef --- /dev/null +++ b/data_model/1.3/device_types/OnOffSensor.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OtaProvider.xml b/data_model/1.3/device_types/OtaProvider.xml new file mode 100644 index 00000000000000..375ab4e36aa987 --- /dev/null +++ b/data_model/1.3/device_types/OtaProvider.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/OtaRequestor.xml b/data_model/1.3/device_types/OtaRequestor.xml new file mode 100644 index 00000000000000..840e322bdccb72 --- /dev/null +++ b/data_model/1.3/device_types/OtaRequestor.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/Oven.xml b/data_model/1.3/device_types/Oven.xml similarity index 100% rename from data_model/device_types/Oven.xml rename to data_model/1.3/device_types/Oven.xml diff --git a/data_model/device_types/PowerSource.xml b/data_model/1.3/device_types/PowerSource.xml similarity index 100% rename from data_model/device_types/PowerSource.xml rename to data_model/1.3/device_types/PowerSource.xml diff --git a/data_model/1.3/device_types/PressureSensor.xml b/data_model/1.3/device_types/PressureSensor.xml new file mode 100644 index 00000000000000..f2b7855db91c83 --- /dev/null +++ b/data_model/1.3/device_types/PressureSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/Pump.xml b/data_model/1.3/device_types/Pump.xml new file mode 100644 index 00000000000000..461725136abaec --- /dev/null +++ b/data_model/1.3/device_types/Pump.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/PumpController.xml b/data_model/1.3/device_types/PumpController.xml new file mode 100644 index 00000000000000..3dcb36899ec908 --- /dev/null +++ b/data_model/1.3/device_types/PumpController.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/RainSensor.xml b/data_model/1.3/device_types/RainSensor.xml similarity index 100% rename from data_model/device_types/RainSensor.xml rename to data_model/1.3/device_types/RainSensor.xml diff --git a/data_model/device_types/Refrigerator.xml b/data_model/1.3/device_types/Refrigerator.xml similarity index 100% rename from data_model/device_types/Refrigerator.xml rename to data_model/1.3/device_types/Refrigerator.xml diff --git a/data_model/device_types/RoboticVacuumCleaner.xml b/data_model/1.3/device_types/RoboticVacuumCleaner.xml similarity index 100% rename from data_model/device_types/RoboticVacuumCleaner.xml rename to data_model/1.3/device_types/RoboticVacuumCleaner.xml diff --git a/data_model/1.3/device_types/RoomAirConditioner.xml b/data_model/1.3/device_types/RoomAirConditioner.xml new file mode 100644 index 00000000000000..305a893dabc0fe --- /dev/null +++ b/data_model/1.3/device_types/RoomAirConditioner.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/RootNodeDeviceType.xml b/data_model/1.3/device_types/RootNodeDeviceType.xml new file mode 100644 index 00000000000000..c2028f07d91548 --- /dev/null +++ b/data_model/1.3/device_types/RootNodeDeviceType.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/SmokeCOAlarm.xml b/data_model/1.3/device_types/SmokeCOAlarm.xml similarity index 100% rename from data_model/device_types/SmokeCOAlarm.xml rename to data_model/1.3/device_types/SmokeCOAlarm.xml diff --git a/data_model/1.3/device_types/Speaker.xml b/data_model/1.3/device_types/Speaker.xml new file mode 100644 index 00000000000000..d1d9d85beb84c8 --- /dev/null +++ b/data_model/1.3/device_types/Speaker.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/TemperatureControlledCabinet.xml b/data_model/1.3/device_types/TemperatureControlledCabinet.xml similarity index 100% rename from data_model/device_types/TemperatureControlledCabinet.xml rename to data_model/1.3/device_types/TemperatureControlledCabinet.xml diff --git a/data_model/1.3/device_types/TemperatureSensor.xml b/data_model/1.3/device_types/TemperatureSensor.xml new file mode 100644 index 00000000000000..d6ccd5c18db89f --- /dev/null +++ b/data_model/1.3/device_types/TemperatureSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/Thermostat.xml b/data_model/1.3/device_types/Thermostat.xml new file mode 100644 index 00000000000000..49ba4b6779f084 --- /dev/null +++ b/data_model/1.3/device_types/Thermostat.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/VideoRemoteControl.xml b/data_model/1.3/device_types/VideoRemoteControl.xml new file mode 100644 index 00000000000000..7896a6f6ee6be5 --- /dev/null +++ b/data_model/1.3/device_types/VideoRemoteControl.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/WaterFreezeDetector.xml b/data_model/1.3/device_types/WaterFreezeDetector.xml similarity index 100% rename from data_model/device_types/WaterFreezeDetector.xml rename to data_model/1.3/device_types/WaterFreezeDetector.xml diff --git a/data_model/device_types/WaterLeakDetector.xml b/data_model/1.3/device_types/WaterLeakDetector.xml similarity index 100% rename from data_model/device_types/WaterLeakDetector.xml rename to data_model/1.3/device_types/WaterLeakDetector.xml diff --git a/data_model/device_types/WaterValve.xml b/data_model/1.3/device_types/WaterValve.xml similarity index 100% rename from data_model/device_types/WaterValve.xml rename to data_model/1.3/device_types/WaterValve.xml diff --git a/data_model/1.3/device_types/WindowCovering.xml b/data_model/1.3/device_types/WindowCovering.xml new file mode 100644 index 00000000000000..a2d54453b7337f --- /dev/null +++ b/data_model/1.3/device_types/WindowCovering.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/1.3/device_types/WindowCoveringController.xml b/data_model/1.3/device_types/WindowCoveringController.xml new file mode 100644 index 00000000000000..c48f327754c599 --- /dev/null +++ b/data_model/1.3/device_types/WindowCoveringController.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/scraper_version b/data_model/1.3/scraper_version similarity index 100% rename from data_model/scraper_version rename to data_model/1.3/scraper_version diff --git a/data_model/1.3/spec_sha b/data_model/1.3/spec_sha new file mode 100644 index 00000000000000..274f0d55122714 --- /dev/null +++ b/data_model/1.3/spec_sha @@ -0,0 +1 @@ +ab9cf4653d40fe9193bbc7fe9febf74c08bf7dfa diff --git a/data_model/clusters/ACL-Cluster.xml b/data_model/clusters/ACL-Cluster.xml deleted file mode 100644 index b965eb84234e0d..00000000000000 --- a/data_model/clusters/ACL-Cluster.xml +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/AccountLogin.xml b/data_model/clusters/AccountLogin.xml deleted file mode 100644 index db87d05dc74902..00000000000000 --- a/data_model/clusters/AccountLogin.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/AdminCommissioningCluster.xml b/data_model/clusters/AdminCommissioningCluster.xml deleted file mode 100644 index eea41bc65b6e2c..00000000000000 --- a/data_model/clusters/AdminCommissioningCluster.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/AirQuality.xml b/data_model/clusters/AirQuality.xml deleted file mode 100644 index 2e188b97d23336..00000000000000 --- a/data_model/clusters/AirQuality.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/AlarmBase.xml b/data_model/clusters/AlarmBase.xml deleted file mode 100644 index f4ffc6344a8b90..00000000000000 --- a/data_model/clusters/AlarmBase.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ApplicationBasic.xml b/data_model/clusters/ApplicationBasic.xml deleted file mode 100644 index fa197a8d1e5cca..00000000000000 --- a/data_model/clusters/ApplicationBasic.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ApplicationLauncher.xml b/data_model/clusters/ApplicationLauncher.xml deleted file mode 100644 index 6b84436e73d42d..00000000000000 --- a/data_model/clusters/ApplicationLauncher.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/AudioOutput.xml b/data_model/clusters/AudioOutput.xml deleted file mode 100644 index 468ba2750152a6..00000000000000 --- a/data_model/clusters/AudioOutput.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/BallastConfiguration.xml b/data_model/clusters/BallastConfiguration.xml deleted file mode 100644 index f25bef22cb4b6c..00000000000000 --- a/data_model/clusters/BallastConfiguration.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/BasicInformationCluster.xml b/data_model/clusters/BasicInformationCluster.xml deleted file mode 100644 index 82b9283b0d21d6..00000000000000 --- a/data_model/clusters/BasicInformationCluster.xml +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Binding-Cluster.xml b/data_model/clusters/Binding-Cluster.xml deleted file mode 100644 index 937b9164e2a4f8..00000000000000 --- a/data_model/clusters/Binding-Cluster.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/BooleanState.xml b/data_model/clusters/BooleanState.xml deleted file mode 100644 index 9205310c58f2be..00000000000000 --- a/data_model/clusters/BooleanState.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/BooleanStateConfiguration.xml b/data_model/clusters/BooleanStateConfiguration.xml deleted file mode 100644 index dc17f93a7295f0..00000000000000 --- a/data_model/clusters/BooleanStateConfiguration.xml +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Channel.xml b/data_model/clusters/Channel.xml deleted file mode 100644 index 1809f5262e7166..00000000000000 --- a/data_model/clusters/Channel.xml +++ /dev/null @@ -1,465 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ColorControl.xml b/data_model/clusters/ColorControl.xml deleted file mode 100644 index 14d471b78a3043..00000000000000 --- a/data_model/clusters/ColorControl.xml +++ /dev/null @@ -1,1029 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ContentAppObserver.xml b/data_model/clusters/ContentAppObserver.xml deleted file mode 100644 index 184cce14924cda..00000000000000 --- a/data_model/clusters/ContentAppObserver.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ContentControl.xml b/data_model/clusters/ContentControl.xml deleted file mode 100644 index 14996a7c28011a..00000000000000 --- a/data_model/clusters/ContentControl.xml +++ /dev/null @@ -1,428 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ContentLauncher.xml b/data_model/clusters/ContentLauncher.xml deleted file mode 100644 index b8f80de2e51ea7..00000000000000 --- a/data_model/clusters/ContentLauncher.xml +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DemandResponseLoadControl.xml b/data_model/clusters/DemandResponseLoadControl.xml deleted file mode 100644 index 206201b347612c..00000000000000 --- a/data_model/clusters/DemandResponseLoadControl.xml +++ /dev/null @@ -1,554 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Descriptor-Cluster.xml b/data_model/clusters/Descriptor-Cluster.xml deleted file mode 100644 index 1b17fb4fdfdaea..00000000000000 --- a/data_model/clusters/Descriptor-Cluster.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DeviceEnergyManagement.xml b/data_model/clusters/DeviceEnergyManagement.xml deleted file mode 100644 index e493c5b332182e..00000000000000 --- a/data_model/clusters/DeviceEnergyManagement.xml +++ /dev/null @@ -1,617 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DiagnosticLogsCluster.xml b/data_model/clusters/DiagnosticLogsCluster.xml deleted file mode 100644 index 5b67564b18f298..00000000000000 --- a/data_model/clusters/DiagnosticLogsCluster.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsEthernet.xml b/data_model/clusters/DiagnosticsEthernet.xml deleted file mode 100644 index 9d4822479ef5a6..00000000000000 --- a/data_model/clusters/DiagnosticsEthernet.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsGeneral.xml b/data_model/clusters/DiagnosticsGeneral.xml deleted file mode 100644 index 27046ded399425..00000000000000 --- a/data_model/clusters/DiagnosticsGeneral.xml +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsSoftware.xml b/data_model/clusters/DiagnosticsSoftware.xml deleted file mode 100644 index 2c0b0b8a91a6ae..00000000000000 --- a/data_model/clusters/DiagnosticsSoftware.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsThread.xml b/data_model/clusters/DiagnosticsThread.xml deleted file mode 100644 index a05d5dc1b2d2fc..00000000000000 --- a/data_model/clusters/DiagnosticsThread.xml +++ /dev/null @@ -1,698 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DiagnosticsWiFi.xml b/data_model/clusters/DiagnosticsWiFi.xml deleted file mode 100644 index 49ef964da7a545..00000000000000 --- a/data_model/clusters/DiagnosticsWiFi.xml +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DishwasherAlarm.xml b/data_model/clusters/DishwasherAlarm.xml deleted file mode 100644 index b3b67e2bffb500..00000000000000 --- a/data_model/clusters/DishwasherAlarm.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/DoorLock.xml b/data_model/clusters/DoorLock.xml deleted file mode 100644 index 16d26420fe2009..00000000000000 --- a/data_model/clusters/DoorLock.xml +++ /dev/null @@ -1,2078 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ElectricalEnergyMeasurement.xml b/data_model/clusters/ElectricalEnergyMeasurement.xml deleted file mode 100644 index 98020764397116..00000000000000 --- a/data_model/clusters/ElectricalEnergyMeasurement.xml +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ElectricalPowerMeasurement.xml b/data_model/clusters/ElectricalPowerMeasurement.xml deleted file mode 100644 index c695e8db031790..00000000000000 --- a/data_model/clusters/ElectricalPowerMeasurement.xml +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/EnergyEVSE.xml b/data_model/clusters/EnergyEVSE.xml deleted file mode 100644 index fa15692e78896d..00000000000000 --- a/data_model/clusters/EnergyEVSE.xml +++ /dev/null @@ -1,564 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/EnergyPreference.xml b/data_model/clusters/EnergyPreference.xml deleted file mode 100644 index c3676520ed6d01..00000000000000 --- a/data_model/clusters/EnergyPreference.xml +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/FanControl.xml b/data_model/clusters/FanControl.xml deleted file mode 100644 index 756a7bd27466b3..00000000000000 --- a/data_model/clusters/FanControl.xml +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/FlowMeasurement.xml b/data_model/clusters/FlowMeasurement.xml deleted file mode 100644 index 29f9d9d7ae58f9..00000000000000 --- a/data_model/clusters/FlowMeasurement.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/GeneralCommissioningCluster.xml b/data_model/clusters/GeneralCommissioningCluster.xml deleted file mode 100644 index e7877635bbac68..00000000000000 --- a/data_model/clusters/GeneralCommissioningCluster.xml +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Group-Key-Management-Cluster.xml b/data_model/clusters/Group-Key-Management-Cluster.xml deleted file mode 100644 index 8867a395299bbd..00000000000000 --- a/data_model/clusters/Group-Key-Management-Cluster.xml +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Groups.xml b/data_model/clusters/Groups.xml deleted file mode 100644 index 72902e878cbe9f..00000000000000 --- a/data_model/clusters/Groups.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ICDManagement.xml b/data_model/clusters/ICDManagement.xml deleted file mode 100644 index 534b8340143083..00000000000000 --- a/data_model/clusters/ICDManagement.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Identify.xml b/data_model/clusters/Identify.xml deleted file mode 100644 index 1cdc33aa0df727..00000000000000 --- a/data_model/clusters/Identify.xml +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/IlluminanceMeasurement.xml b/data_model/clusters/IlluminanceMeasurement.xml deleted file mode 100644 index c39daa0e6bdc4d..00000000000000 --- a/data_model/clusters/IlluminanceMeasurement.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/KeypadInput.xml b/data_model/clusters/KeypadInput.xml deleted file mode 100644 index 4cfb509b06d0be..00000000000000 --- a/data_model/clusters/KeypadInput.xml +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/clusters/Label-Cluster-FixedLabelCluster.xml deleted file mode 100644 index e73bfc274a9da4..00000000000000 --- a/data_model/clusters/Label-Cluster-FixedLabelCluster.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Label-Cluster-LabelCluster.xml b/data_model/clusters/Label-Cluster-LabelCluster.xml deleted file mode 100644 index f107a0a7b3f12b..00000000000000 --- a/data_model/clusters/Label-Cluster-LabelCluster.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/clusters/Label-Cluster-UserLabelCluster.xml deleted file mode 100644 index f7e809ab785c00..00000000000000 --- a/data_model/clusters/Label-Cluster-UserLabelCluster.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LaundryDryerControls.xml b/data_model/clusters/LaundryDryerControls.xml deleted file mode 100644 index a3f7b911fc9e9c..00000000000000 --- a/data_model/clusters/LaundryDryerControls.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LaundryWasherControls.xml b/data_model/clusters/LaundryWasherControls.xml deleted file mode 100644 index 16879842721473..00000000000000 --- a/data_model/clusters/LaundryWasherControls.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LevelControl.xml b/data_model/clusters/LevelControl.xml deleted file mode 100644 index 13522bf0698b9e..00000000000000 --- a/data_model/clusters/LevelControl.xml +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LocalizationConfiguration.xml b/data_model/clusters/LocalizationConfiguration.xml deleted file mode 100644 index f3c2d5b2d7662b..00000000000000 --- a/data_model/clusters/LocalizationConfiguration.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LocalizationTimeFormat.xml b/data_model/clusters/LocalizationTimeFormat.xml deleted file mode 100644 index fb8ceea3ee17a8..00000000000000 --- a/data_model/clusters/LocalizationTimeFormat.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LocalizationUnit.xml b/data_model/clusters/LocalizationUnit.xml deleted file mode 100644 index be7ea6a0aa2d78..00000000000000 --- a/data_model/clusters/LocalizationUnit.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/LowPower.xml b/data_model/clusters/LowPower.xml deleted file mode 100644 index 4c228d3154dfa1..00000000000000 --- a/data_model/clusters/LowPower.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/MediaInput.xml b/data_model/clusters/MediaInput.xml deleted file mode 100644 index b7d9d2ef017035..00000000000000 --- a/data_model/clusters/MediaInput.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/MediaPlayback.xml b/data_model/clusters/MediaPlayback.xml deleted file mode 100644 index e9194b6854c569..00000000000000 --- a/data_model/clusters/MediaPlayback.xml +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Messages.xml b/data_model/clusters/Messages.xml deleted file mode 100644 index 61f21bef9c95f3..00000000000000 --- a/data_model/clusters/Messages.xml +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/MicrowaveOvenControl.xml b/data_model/clusters/MicrowaveOvenControl.xml deleted file mode 100644 index d7c6f72f740d3d..00000000000000 --- a/data_model/clusters/MicrowaveOvenControl.xml +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ModeBase.xml b/data_model/clusters/ModeBase.xml deleted file mode 100644 index 2a11f85d343b39..00000000000000 --- a/data_model/clusters/ModeBase.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ModeSelect.xml b/data_model/clusters/ModeSelect.xml deleted file mode 100644 index a30a5b9bf8eca5..00000000000000 --- a/data_model/clusters/ModeSelect.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_DeviceEnergyManagement.xml b/data_model/clusters/Mode_DeviceEnergyManagement.xml deleted file mode 100644 index 592c7d4290a342..00000000000000 --- a/data_model/clusters/Mode_DeviceEnergyManagement.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_Dishwasher.xml b/data_model/clusters/Mode_Dishwasher.xml deleted file mode 100644 index 4ff6e78714f648..00000000000000 --- a/data_model/clusters/Mode_Dishwasher.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_EVSE.xml b/data_model/clusters/Mode_EVSE.xml deleted file mode 100644 index de88cb3717c8bf..00000000000000 --- a/data_model/clusters/Mode_EVSE.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_LaundryWasher.xml b/data_model/clusters/Mode_LaundryWasher.xml deleted file mode 100644 index c59b2c3fef9051..00000000000000 --- a/data_model/clusters/Mode_LaundryWasher.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_MicrowaveOven.xml b/data_model/clusters/Mode_MicrowaveOven.xml deleted file mode 100644 index 6e8a129444b9fd..00000000000000 --- a/data_model/clusters/Mode_MicrowaveOven.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_Oven.xml b/data_model/clusters/Mode_Oven.xml deleted file mode 100644 index f6c7111bb844cd..00000000000000 --- a/data_model/clusters/Mode_Oven.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_RVCClean.xml b/data_model/clusters/Mode_RVCClean.xml deleted file mode 100644 index d1b2272fc7e756..00000000000000 --- a/data_model/clusters/Mode_RVCClean.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_RVCRun.xml b/data_model/clusters/Mode_RVCRun.xml deleted file mode 100644 index 8e19b45a8385fc..00000000000000 --- a/data_model/clusters/Mode_RVCRun.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Mode_Refrigerator.xml b/data_model/clusters/Mode_Refrigerator.xml deleted file mode 100644 index d51e30b68d1320..00000000000000 --- a/data_model/clusters/Mode_Refrigerator.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/NetworkCommissioningCluster.xml b/data_model/clusters/NetworkCommissioningCluster.xml deleted file mode 100644 index 745a659f1b900b..00000000000000 --- a/data_model/clusters/NetworkCommissioningCluster.xml +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OTAProvider.xml b/data_model/clusters/OTAProvider.xml deleted file mode 100644 index baf3996d3b911f..00000000000000 --- a/data_model/clusters/OTAProvider.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OTARequestor.xml b/data_model/clusters/OTARequestor.xml deleted file mode 100644 index 592e900ff6720b..00000000000000 --- a/data_model/clusters/OTARequestor.xml +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OTASoftwareUpdate.xml b/data_model/clusters/OTASoftwareUpdate.xml deleted file mode 100644 index 16389bd7fe9b67..00000000000000 --- a/data_model/clusters/OTASoftwareUpdate.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - \ No newline at end of file diff --git a/data_model/clusters/OccupancySensing.xml b/data_model/clusters/OccupancySensing.xml deleted file mode 100644 index 9479f2041d6c6b..00000000000000 --- a/data_model/clusters/OccupancySensing.xml +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OnOff.xml b/data_model/clusters/OnOff.xml deleted file mode 100644 index 0b1e32af50cddb..00000000000000 --- a/data_model/clusters/OnOff.xml +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OperationalCredentialCluster.xml b/data_model/clusters/OperationalCredentialCluster.xml deleted file mode 100644 index 1a2becd5c478a2..00000000000000 --- a/data_model/clusters/OperationalCredentialCluster.xml +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OperationalState.xml b/data_model/clusters/OperationalState.xml deleted file mode 100644 index 37dc6b6e2f8cf4..00000000000000 --- a/data_model/clusters/OperationalState.xml +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OperationalState_Oven.xml b/data_model/clusters/OperationalState_Oven.xml deleted file mode 100644 index c44ac37b7ccac9..00000000000000 --- a/data_model/clusters/OperationalState_Oven.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/OperationalState_RVC.xml b/data_model/clusters/OperationalState_RVC.xml deleted file mode 100644 index 6426e2639a7b83..00000000000000 --- a/data_model/clusters/OperationalState_RVC.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/PowerSourceCluster.xml b/data_model/clusters/PowerSourceCluster.xml deleted file mode 100644 index 28a9154116ed7c..00000000000000 --- a/data_model/clusters/PowerSourceCluster.xml +++ /dev/null @@ -1,829 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/PowerSourceConfigurationCluster.xml b/data_model/clusters/PowerSourceConfigurationCluster.xml deleted file mode 100644 index 11e3bd47dd9186..00000000000000 --- a/data_model/clusters/PowerSourceConfigurationCluster.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/PowerTopology.xml b/data_model/clusters/PowerTopology.xml deleted file mode 100644 index d8c8a50d22a3a6..00000000000000 --- a/data_model/clusters/PowerTopology.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/PressureMeasurement.xml b/data_model/clusters/PressureMeasurement.xml deleted file mode 100644 index d9c4a4584404fe..00000000000000 --- a/data_model/clusters/PressureMeasurement.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/PumpConfigurationControl.xml b/data_model/clusters/PumpConfigurationControl.xml deleted file mode 100644 index cfd2971a395ecb..00000000000000 --- a/data_model/clusters/PumpConfigurationControl.xml +++ /dev/null @@ -1,445 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/RefrigeratorAlarm.xml b/data_model/clusters/RefrigeratorAlarm.xml deleted file mode 100644 index caad94da1f6fad..00000000000000 --- a/data_model/clusters/RefrigeratorAlarm.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Scenes.xml b/data_model/clusters/Scenes.xml deleted file mode 100644 index 5d9be300d1abbc..00000000000000 --- a/data_model/clusters/Scenes.xml +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/SmokeCOAlarm.xml b/data_model/clusters/SmokeCOAlarm.xml deleted file mode 100644 index d3d35f13f15f25..00000000000000 --- a/data_model/clusters/SmokeCOAlarm.xml +++ /dev/null @@ -1,308 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Switch.xml b/data_model/clusters/Switch.xml deleted file mode 100644 index e7170049ac051f..00000000000000 --- a/data_model/clusters/Switch.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/TargetNavigator.xml b/data_model/clusters/TargetNavigator.xml deleted file mode 100644 index cfb3a0c17a6f99..00000000000000 --- a/data_model/clusters/TargetNavigator.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/TemperatureControl.xml b/data_model/clusters/TemperatureControl.xml deleted file mode 100644 index 70fc100d83bbab..00000000000000 --- a/data_model/clusters/TemperatureControl.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/TemperatureMeasurement.xml b/data_model/clusters/TemperatureMeasurement.xml deleted file mode 100644 index 540af82bcedd18..00000000000000 --- a/data_model/clusters/TemperatureMeasurement.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/Thermostat.xml b/data_model/clusters/Thermostat.xml deleted file mode 100644 index 71a0c48c6a8eb8..00000000000000 --- a/data_model/clusters/Thermostat.xml +++ /dev/null @@ -1,940 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/clusters/ThermostatUserInterfaceConfiguration.xml deleted file mode 100644 index 63fdba001c67a9..00000000000000 --- a/data_model/clusters/ThermostatUserInterfaceConfiguration.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ThreadBorderRouterDiagnostics.xml b/data_model/clusters/ThreadBorderRouterDiagnostics.xml deleted file mode 100644 index 5527c486a0cc51..00000000000000 --- a/data_model/clusters/ThreadBorderRouterDiagnostics.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/TimeSync.xml b/data_model/clusters/TimeSync.xml deleted file mode 100644 index c6c57ece628bbd..00000000000000 --- a/data_model/clusters/TimeSync.xml +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/ValveConfigurationControl.xml b/data_model/clusters/ValveConfigurationControl.xml deleted file mode 100644 index 548fed7d7357c2..00000000000000 --- a/data_model/clusters/ValveConfigurationControl.xml +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/WakeOnLAN.xml b/data_model/clusters/WakeOnLAN.xml deleted file mode 100644 index deb5af5a75ac7d..00000000000000 --- a/data_model/clusters/WakeOnLAN.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/WiFiPerDeviceCredentials.xml b/data_model/clusters/WiFiPerDeviceCredentials.xml deleted file mode 100644 index 807ea27c64053b..00000000000000 --- a/data_model/clusters/WiFiPerDeviceCredentials.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - \ No newline at end of file diff --git a/data_model/clusters/WindowCovering.xml b/data_model/clusters/WindowCovering.xml deleted file mode 100644 index 7b0afd461fcb96..00000000000000 --- a/data_model/clusters/WindowCovering.xml +++ /dev/null @@ -1,699 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/bridge-clusters-ActionsCluster.xml b/data_model/clusters/bridge-clusters-ActionsCluster.xml deleted file mode 100644 index e02b12e43d64a4..00000000000000 --- a/data_model/clusters/bridge-clusters-ActionsCluster.xml +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml deleted file mode 100644 index db85cc296b8922..00000000000000 --- a/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/clusters/energy_management.xml b/data_model/clusters/energy_management.xml deleted file mode 100644 index 93858d1d1b3c89..00000000000000 --- a/data_model/clusters/energy_management.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - \ No newline at end of file diff --git a/data_model/clusters/network_infrastructure.xml b/data_model/clusters/network_infrastructure.xml deleted file mode 100644 index 7e75cc0af8229f..00000000000000 --- a/data_model/clusters/network_infrastructure.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/data_model/device_types/Aggregator.xml b/data_model/device_types/Aggregator.xml deleted file mode 100644 index 4e0eb1cee512c3..00000000000000 --- a/data_model/device_types/Aggregator.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/BaseDeviceType.xml b/data_model/device_types/BaseDeviceType.xml deleted file mode 100644 index 0df3ba00d26e2b..00000000000000 --- a/data_model/device_types/BaseDeviceType.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/BasicVideoPlayer.xml b/data_model/device_types/BasicVideoPlayer.xml deleted file mode 100644 index 2b9b52c3b43ee6..00000000000000 --- a/data_model/device_types/BasicVideoPlayer.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/BooleanSensor.xml b/data_model/device_types/BooleanSensor.xml deleted file mode 100644 index 185fdc47176813..00000000000000 --- a/data_model/device_types/BooleanSensor.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/BridgedNode.xml b/data_model/device_types/BridgedNode.xml deleted file mode 100644 index 29b7a59299c37b..00000000000000 --- a/data_model/device_types/BridgedNode.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/CastingVideoClient.xml b/data_model/device_types/CastingVideoClient.xml deleted file mode 100644 index d79506b9cf66a0..00000000000000 --- a/data_model/device_types/CastingVideoClient.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/CastingVideoPlayer.xml b/data_model/device_types/CastingVideoPlayer.xml deleted file mode 100644 index 336416508660a8..00000000000000 --- a/data_model/device_types/CastingVideoPlayer.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ColorDimmerSwitch.xml b/data_model/device_types/ColorDimmerSwitch.xml deleted file mode 100644 index 0da15b82a2cd08..00000000000000 --- a/data_model/device_types/ColorDimmerSwitch.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ColorTemperatureLight.xml b/data_model/device_types/ColorTemperatureLight.xml deleted file mode 100644 index 5a54a36a7a0fbf..00000000000000 --- a/data_model/device_types/ColorTemperatureLight.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ContentApp.xml b/data_model/device_types/ContentApp.xml deleted file mode 100644 index 84bf58698f426d..00000000000000 --- a/data_model/device_types/ContentApp.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ControlBridge.xml b/data_model/device_types/ControlBridge.xml deleted file mode 100644 index f427becc14f791..00000000000000 --- a/data_model/device_types/ControlBridge.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/CookSurface.xml b/data_model/device_types/CookSurface.xml deleted file mode 100644 index b18897b3f0f9ff..00000000000000 --- a/data_model/device_types/CookSurface.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/DimmableLight.xml b/data_model/device_types/DimmableLight.xml deleted file mode 100644 index ce0c280de6f0a6..00000000000000 --- a/data_model/device_types/DimmableLight.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/DimmablePlug-InUnit.xml b/data_model/device_types/DimmablePlug-InUnit.xml deleted file mode 100644 index 98895640fe1bc5..00000000000000 --- a/data_model/device_types/DimmablePlug-InUnit.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/DimmerSwitch.xml b/data_model/device_types/DimmerSwitch.xml deleted file mode 100644 index 137adfd9117cf7..00000000000000 --- a/data_model/device_types/DimmerSwitch.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/Dishwasher.xml b/data_model/device_types/Dishwasher.xml deleted file mode 100644 index a07fdc9c3adddb..00000000000000 --- a/data_model/device_types/Dishwasher.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/DoorLock.xml b/data_model/device_types/DoorLock.xml deleted file mode 100644 index 9b6c7fd145621d..00000000000000 --- a/data_model/device_types/DoorLock.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/DoorLockController.xml b/data_model/device_types/DoorLockController.xml deleted file mode 100644 index 0279f0100a5fc0..00000000000000 --- a/data_model/device_types/DoorLockController.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ExtendedColorLight.xml b/data_model/device_types/ExtendedColorLight.xml deleted file mode 100644 index 97cb3eaf66377c..00000000000000 --- a/data_model/device_types/ExtendedColorLight.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/FlowSensor.xml b/data_model/device_types/FlowSensor.xml deleted file mode 100644 index 8c604586481536..00000000000000 --- a/data_model/device_types/FlowSensor.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/GenericSwitch.xml b/data_model/device_types/GenericSwitch.xml deleted file mode 100644 index e381914be42921..00000000000000 --- a/data_model/device_types/GenericSwitch.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/HeatingCoolingUnit.xml b/data_model/device_types/HeatingCoolingUnit.xml deleted file mode 100644 index 39fbb766111b31..00000000000000 --- a/data_model/device_types/HeatingCoolingUnit.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/HumiditySensor.xml b/data_model/device_types/HumiditySensor.xml deleted file mode 100644 index d59ed7caf43abe..00000000000000 --- a/data_model/device_types/HumiditySensor.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/LaundryDryer.xml b/data_model/device_types/LaundryDryer.xml deleted file mode 100644 index 78f9383800ad8c..00000000000000 --- a/data_model/device_types/LaundryDryer.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/LaundryWasher.xml b/data_model/device_types/LaundryWasher.xml deleted file mode 100644 index f0f48212b8d062..00000000000000 --- a/data_model/device_types/LaundryWasher.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/LightSensor.xml b/data_model/device_types/LightSensor.xml deleted file mode 100644 index 618901b398b5f8..00000000000000 --- a/data_model/device_types/LightSensor.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ModeSelectDeviceType.xml b/data_model/device_types/ModeSelectDeviceType.xml deleted file mode 100644 index 748dc1bae2f0a3..00000000000000 --- a/data_model/device_types/ModeSelectDeviceType.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/NetworkInfraIntro-CommonRequirements.xml b/data_model/device_types/NetworkInfraIntro-CommonRequirements.xml deleted file mode 100644 index 454dc857f0b8db..00000000000000 --- a/data_model/device_types/NetworkInfraIntro-CommonRequirements.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - \ No newline at end of file diff --git a/data_model/device_types/NetworkInfraIntro.xml b/data_model/device_types/NetworkInfraIntro.xml deleted file mode 100644 index 22d91b6f459c6d..00000000000000 --- a/data_model/device_types/NetworkInfraIntro.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - \ No newline at end of file diff --git a/data_model/device_types/OccupancySensor.xml b/data_model/device_types/OccupancySensor.xml deleted file mode 100644 index 1ac4e0ab937830..00000000000000 --- a/data_model/device_types/OccupancySensor.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/OnOffLight.xml b/data_model/device_types/OnOffLight.xml deleted file mode 100644 index 59e8739cab0275..00000000000000 --- a/data_model/device_types/OnOffLight.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/OnOffLightSwitch.xml b/data_model/device_types/OnOffLightSwitch.xml deleted file mode 100644 index 9b9d72ba4f0964..00000000000000 --- a/data_model/device_types/OnOffLightSwitch.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/OnOffPlug-inUnit.xml b/data_model/device_types/OnOffPlug-inUnit.xml deleted file mode 100644 index 4b4f49725cf9fa..00000000000000 --- a/data_model/device_types/OnOffPlug-inUnit.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/OnOffSensor.xml b/data_model/device_types/OnOffSensor.xml deleted file mode 100644 index e1bd3c3806c8a4..00000000000000 --- a/data_model/device_types/OnOffSensor.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/OtaProvider.xml b/data_model/device_types/OtaProvider.xml deleted file mode 100644 index 28c4e3c70b88e9..00000000000000 --- a/data_model/device_types/OtaProvider.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/OtaRequestor.xml b/data_model/device_types/OtaRequestor.xml deleted file mode 100644 index 7f5a8ca11c58c8..00000000000000 --- a/data_model/device_types/OtaRequestor.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/PressureSensor.xml b/data_model/device_types/PressureSensor.xml deleted file mode 100644 index f472daaf4e39ff..00000000000000 --- a/data_model/device_types/PressureSensor.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/Pump.xml b/data_model/device_types/Pump.xml deleted file mode 100644 index 9ab8700abb10f5..00000000000000 --- a/data_model/device_types/Pump.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/PumpController.xml b/data_model/device_types/PumpController.xml deleted file mode 100644 index ca1486e4ea657e..00000000000000 --- a/data_model/device_types/PumpController.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/RoomAirConditioner.xml b/data_model/device_types/RoomAirConditioner.xml deleted file mode 100644 index e8c557a21800b9..00000000000000 --- a/data_model/device_types/RoomAirConditioner.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/RootNodeDeviceType.xml b/data_model/device_types/RootNodeDeviceType.xml deleted file mode 100644 index 57b204036092c7..00000000000000 --- a/data_model/device_types/RootNodeDeviceType.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/Speaker.xml b/data_model/device_types/Speaker.xml deleted file mode 100644 index f8bc0ab150036e..00000000000000 --- a/data_model/device_types/Speaker.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/TemperatureSensor.xml b/data_model/device_types/TemperatureSensor.xml deleted file mode 100644 index 19d3fef781c717..00000000000000 --- a/data_model/device_types/TemperatureSensor.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/Thermostat.xml b/data_model/device_types/Thermostat.xml deleted file mode 100644 index 9f5c8e7de5b11c..00000000000000 --- a/data_model/device_types/Thermostat.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/ThreePhasePowerSource.xml b/data_model/device_types/ThreePhasePowerSource.xml deleted file mode 100644 index 726af1a16c10a4..00000000000000 --- a/data_model/device_types/ThreePhasePowerSource.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/Valve.xml b/data_model/device_types/Valve.xml deleted file mode 100644 index 4ce864b01ab246..00000000000000 --- a/data_model/device_types/Valve.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/VideoRemoteControl.xml b/data_model/device_types/VideoRemoteControl.xml deleted file mode 100644 index 33bab95b9207c1..00000000000000 --- a/data_model/device_types/VideoRemoteControl.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/WindowCovering.xml b/data_model/device_types/WindowCovering.xml deleted file mode 100644 index b9a33b47ac4d9b..00000000000000 --- a/data_model/device_types/WindowCovering.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/device_types/WindowCoveringController.xml b/data_model/device_types/WindowCoveringController.xml deleted file mode 100644 index 76f0cf1b1e2147..00000000000000 --- a/data_model/device_types/WindowCoveringController.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/data_model/master/clusters/ACL-Cluster.xml b/data_model/master/clusters/ACL-Cluster.xml new file mode 100644 index 00000000000000..5c4c96a687cb13 --- /dev/null +++ b/data_model/master/clusters/ACL-Cluster.xml @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AccountLogin.xml b/data_model/master/clusters/AccountLogin.xml new file mode 100644 index 00000000000000..8a9ed7d9389f40 --- /dev/null +++ b/data_model/master/clusters/AccountLogin.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AdminCommissioningCluster.xml b/data_model/master/clusters/AdminCommissioningCluster.xml new file mode 100644 index 00000000000000..ccbb579134dc00 --- /dev/null +++ b/data_model/master/clusters/AdminCommissioningCluster.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AirQuality.xml b/data_model/master/clusters/AirQuality.xml new file mode 100644 index 00000000000000..c05717863c5ff4 --- /dev/null +++ b/data_model/master/clusters/AirQuality.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AlarmBase.xml b/data_model/master/clusters/AlarmBase.xml new file mode 100644 index 00000000000000..fd0ccb5bc19d46 --- /dev/null +++ b/data_model/master/clusters/AlarmBase.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ApplicationBasic.xml b/data_model/master/clusters/ApplicationBasic.xml new file mode 100644 index 00000000000000..ee39b8a421209d --- /dev/null +++ b/data_model/master/clusters/ApplicationBasic.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ApplicationLauncher.xml b/data_model/master/clusters/ApplicationLauncher.xml new file mode 100644 index 00000000000000..57d6858dd8ce14 --- /dev/null +++ b/data_model/master/clusters/ApplicationLauncher.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AudioOutput.xml b/data_model/master/clusters/AudioOutput.xml new file mode 100644 index 00000000000000..27bb5a20bb7952 --- /dev/null +++ b/data_model/master/clusters/AudioOutput.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BallastConfiguration.xml b/data_model/master/clusters/BallastConfiguration.xml new file mode 100644 index 00000000000000..0f37d86067e994 --- /dev/null +++ b/data_model/master/clusters/BallastConfiguration.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BasicInformationCluster.xml b/data_model/master/clusters/BasicInformationCluster.xml new file mode 100644 index 00000000000000..428c683a0ea803 --- /dev/null +++ b/data_model/master/clusters/BasicInformationCluster.xml @@ -0,0 +1,364 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Binding-Cluster.xml b/data_model/master/clusters/Binding-Cluster.xml new file mode 100644 index 00000000000000..444c99b315348d --- /dev/null +++ b/data_model/master/clusters/Binding-Cluster.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BooleanState.xml b/data_model/master/clusters/BooleanState.xml new file mode 100644 index 00000000000000..5bb29f53ae0c3e --- /dev/null +++ b/data_model/master/clusters/BooleanState.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BooleanStateConfiguration.xml b/data_model/master/clusters/BooleanStateConfiguration.xml new file mode 100644 index 00000000000000..01444d565294b3 --- /dev/null +++ b/data_model/master/clusters/BooleanStateConfiguration.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Channel.xml b/data_model/master/clusters/Channel.xml new file mode 100644 index 00000000000000..17144c9032c3e5 --- /dev/null +++ b/data_model/master/clusters/Channel.xml @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ColorControl.xml b/data_model/master/clusters/ColorControl.xml new file mode 100644 index 00000000000000..90d999fa20b4ac --- /dev/null +++ b/data_model/master/clusters/ColorControl.xml @@ -0,0 +1,1168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/CommissionerControlCluster.xml b/data_model/master/clusters/CommissionerControlCluster.xml new file mode 100644 index 00000000000000..eaaa3c51ec4a30 --- /dev/null +++ b/data_model/master/clusters/CommissionerControlCluster.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ConcentrationMeasurement.xml b/data_model/master/clusters/ConcentrationMeasurement.xml new file mode 100644 index 00000000000000..4b51cffa124321 --- /dev/null +++ b/data_model/master/clusters/ConcentrationMeasurement.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ContentAppObserver.xml b/data_model/master/clusters/ContentAppObserver.xml new file mode 100644 index 00000000000000..d6808baf982215 --- /dev/null +++ b/data_model/master/clusters/ContentAppObserver.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ContentControl.xml b/data_model/master/clusters/ContentControl.xml new file mode 100644 index 00000000000000..b2539cf445c289 --- /dev/null +++ b/data_model/master/clusters/ContentControl.xml @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ContentLauncher.xml b/data_model/master/clusters/ContentLauncher.xml new file mode 100644 index 00000000000000..9a5674efa8eb64 --- /dev/null +++ b/data_model/master/clusters/ContentLauncher.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DemandResponseLoadControl.xml b/data_model/master/clusters/DemandResponseLoadControl.xml new file mode 100644 index 00000000000000..c20a7c3b7f013f --- /dev/null +++ b/data_model/master/clusters/DemandResponseLoadControl.xml @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Descriptor-Cluster.xml b/data_model/master/clusters/Descriptor-Cluster.xml new file mode 100644 index 00000000000000..94d262473d4c9c --- /dev/null +++ b/data_model/master/clusters/Descriptor-Cluster.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DeviceEnergyManagement.xml b/data_model/master/clusters/DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..ee1b2f0f2725e6 --- /dev/null +++ b/data_model/master/clusters/DeviceEnergyManagement.xml @@ -0,0 +1,668 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticLogsCluster.xml b/data_model/master/clusters/DiagnosticLogsCluster.xml new file mode 100644 index 00000000000000..38520e81a85e16 --- /dev/null +++ b/data_model/master/clusters/DiagnosticLogsCluster.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsEthernet.xml b/data_model/master/clusters/DiagnosticsEthernet.xml new file mode 100644 index 00000000000000..dfcd3d11c41f52 --- /dev/null +++ b/data_model/master/clusters/DiagnosticsEthernet.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsGeneral.xml b/data_model/master/clusters/DiagnosticsGeneral.xml new file mode 100644 index 00000000000000..4da912b03dc3df --- /dev/null +++ b/data_model/master/clusters/DiagnosticsGeneral.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsSoftware.xml b/data_model/master/clusters/DiagnosticsSoftware.xml new file mode 100644 index 00000000000000..7cb3c9ff39ad2f --- /dev/null +++ b/data_model/master/clusters/DiagnosticsSoftware.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsThread.xml b/data_model/master/clusters/DiagnosticsThread.xml new file mode 100644 index 00000000000000..120efaddf8c08e --- /dev/null +++ b/data_model/master/clusters/DiagnosticsThread.xml @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsWiFi.xml b/data_model/master/clusters/DiagnosticsWiFi.xml new file mode 100644 index 00000000000000..b3951d967dc31f --- /dev/null +++ b/data_model/master/clusters/DiagnosticsWiFi.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DishwasherAlarm.xml b/data_model/master/clusters/DishwasherAlarm.xml new file mode 100644 index 00000000000000..bdc399f9399486 --- /dev/null +++ b/data_model/master/clusters/DishwasherAlarm.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DoorLock.xml b/data_model/master/clusters/DoorLock.xml new file mode 100644 index 00000000000000..ea4b9fe1ebbbf8 --- /dev/null +++ b/data_model/master/clusters/DoorLock.xml @@ -0,0 +1,2284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ElectricalEnergyMeasurement.xml b/data_model/master/clusters/ElectricalEnergyMeasurement.xml new file mode 100644 index 00000000000000..d89b19472a6bbb --- /dev/null +++ b/data_model/master/clusters/ElectricalEnergyMeasurement.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ElectricalPowerMeasurement.xml b/data_model/master/clusters/ElectricalPowerMeasurement.xml new file mode 100644 index 00000000000000..89ad5fa3255fcd --- /dev/null +++ b/data_model/master/clusters/ElectricalPowerMeasurement.xml @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/EnergyCalendar.xml b/data_model/master/clusters/EnergyCalendar.xml similarity index 82% rename from data_model/clusters/EnergyCalendar.xml rename to data_model/master/clusters/EnergyCalendar.xml index 8d3f1b343bb4a7..40a8a87f04ec17 100644 --- a/data_model/clusters/EnergyCalendar.xml +++ b/data_model/master/clusters/EnergyCalendar.xml @@ -57,7 +57,7 @@ Davis, CA 95616, USA :xrefstyle: short --> - + @@ -66,7 +66,7 @@ Davis, CA 95616, USA - + @@ -83,27 +83,16 @@ Davis, CA 95616, USA - + - + - + - - - - - - - - - - - - + @@ -156,20 +145,21 @@ Davis, CA 95616, USA - + + + - + - + - @@ -178,27 +168,32 @@ Davis, CA 95616, USA - + + + + - - + + - + - + + - + + - + @@ -243,54 +238,45 @@ Davis, CA 95616, USA + - + + + - - - - - - - + + - + - + - + - - - - - - - - + - + diff --git a/data_model/master/clusters/EnergyEVSE.xml b/data_model/master/clusters/EnergyEVSE.xml new file mode 100644 index 00000000000000..53605899d05550 --- /dev/null +++ b/data_model/master/clusters/EnergyEVSE.xml @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/EnergyPreference.xml b/data_model/master/clusters/EnergyPreference.xml new file mode 100644 index 00000000000000..37559dfbc30850 --- /dev/null +++ b/data_model/master/clusters/EnergyPreference.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/EnergyPrice.xml b/data_model/master/clusters/EnergyPrice.xml similarity index 95% rename from data_model/clusters/EnergyPrice.xml rename to data_model/master/clusters/EnergyPrice.xml index 1683fe1bbc13cf..fa46810900890f 100644 --- a/data_model/clusters/EnergyPrice.xml +++ b/data_model/master/clusters/EnergyPrice.xml @@ -57,7 +57,7 @@ Davis, CA 95616, USA :xrefstyle: short --> - + @@ -75,10 +75,10 @@ Davis, CA 95616, USA - + - + @@ -125,7 +125,7 @@ Davis, CA 95616, USA - + @@ -186,8 +186,9 @@ Davis, CA 95616, USA - - + + + @@ -203,10 +204,9 @@ Davis, CA 95616, USA - - - - + + + diff --git a/data_model/master/clusters/FanControl.xml b/data_model/master/clusters/FanControl.xml new file mode 100644 index 00000000000000..12d57967801646 --- /dev/null +++ b/data_model/master/clusters/FanControl.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/FlowMeasurement.xml b/data_model/master/clusters/FlowMeasurement.xml new file mode 100644 index 00000000000000..d488b5899b05f0 --- /dev/null +++ b/data_model/master/clusters/FlowMeasurement.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/GeneralCommissioningCluster.xml b/data_model/master/clusters/GeneralCommissioningCluster.xml new file mode 100644 index 00000000000000..519285af02f103 --- /dev/null +++ b/data_model/master/clusters/GeneralCommissioningCluster.xml @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Group-Key-Management-Cluster.xml b/data_model/master/clusters/Group-Key-Management-Cluster.xml new file mode 100644 index 00000000000000..c1819628e34d7b --- /dev/null +++ b/data_model/master/clusters/Group-Key-Management-Cluster.xml @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Groups.xml b/data_model/master/clusters/Groups.xml new file mode 100644 index 00000000000000..1f168e13fad933 --- /dev/null +++ b/data_model/master/clusters/Groups.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Humidistat.xml b/data_model/master/clusters/Humidistat.xml new file mode 100644 index 00000000000000..b709b5d50d2f24 --- /dev/null +++ b/data_model/master/clusters/Humidistat.xml @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ICDManagement.xml b/data_model/master/clusters/ICDManagement.xml new file mode 100644 index 00000000000000..0f15a2729052fa --- /dev/null +++ b/data_model/master/clusters/ICDManagement.xml @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Identify.xml b/data_model/master/clusters/Identify.xml new file mode 100644 index 00000000000000..dbb9daca72fce4 --- /dev/null +++ b/data_model/master/clusters/Identify.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/IlluminanceMeasurement.xml b/data_model/master/clusters/IlluminanceMeasurement.xml new file mode 100644 index 00000000000000..75cf30cd35d931 --- /dev/null +++ b/data_model/master/clusters/IlluminanceMeasurement.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/JointFabricDatastoreCluster.xml b/data_model/master/clusters/JointFabricDatastoreCluster.xml new file mode 100644 index 00000000000000..40e46ecc78519c --- /dev/null +++ b/data_model/master/clusters/JointFabricDatastoreCluster.xml @@ -0,0 +1,435 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/JointFabricPKICluster.xml b/data_model/master/clusters/JointFabricPKICluster.xml new file mode 100644 index 00000000000000..3519a11cec79c6 --- /dev/null +++ b/data_model/master/clusters/JointFabricPKICluster.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/KeypadInput.xml b/data_model/master/clusters/KeypadInput.xml new file mode 100644 index 00000000000000..57d6ef4650e013 --- /dev/null +++ b/data_model/master/clusters/KeypadInput.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml new file mode 100644 index 00000000000000..98106b6fc33e40 --- /dev/null +++ b/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Label-Cluster-LabelCluster.xml b/data_model/master/clusters/Label-Cluster-LabelCluster.xml new file mode 100644 index 00000000000000..0ca5566f0dc132 --- /dev/null +++ b/data_model/master/clusters/Label-Cluster-LabelCluster.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml new file mode 100644 index 00000000000000..eba0099ffb59d2 --- /dev/null +++ b/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LaundryDryerControls.xml b/data_model/master/clusters/LaundryDryerControls.xml new file mode 100644 index 00000000000000..af4f787c0432b7 --- /dev/null +++ b/data_model/master/clusters/LaundryDryerControls.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LaundryWasherControls.xml b/data_model/master/clusters/LaundryWasherControls.xml new file mode 100644 index 00000000000000..ff001c3a405652 --- /dev/null +++ b/data_model/master/clusters/LaundryWasherControls.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LevelControl.xml b/data_model/master/clusters/LevelControl.xml new file mode 100644 index 00000000000000..c98db485e6e00a --- /dev/null +++ b/data_model/master/clusters/LevelControl.xml @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LocalizationConfiguration.xml b/data_model/master/clusters/LocalizationConfiguration.xml new file mode 100644 index 00000000000000..66809f545389be --- /dev/null +++ b/data_model/master/clusters/LocalizationConfiguration.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LocalizationTimeFormat.xml b/data_model/master/clusters/LocalizationTimeFormat.xml new file mode 100644 index 00000000000000..db8b809b0341a9 --- /dev/null +++ b/data_model/master/clusters/LocalizationTimeFormat.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LocalizationUnit.xml b/data_model/master/clusters/LocalizationUnit.xml new file mode 100644 index 00000000000000..2c6e1ecbd648e6 --- /dev/null +++ b/data_model/master/clusters/LocalizationUnit.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LowPower.xml b/data_model/master/clusters/LowPower.xml new file mode 100644 index 00000000000000..cf75cb0c680164 --- /dev/null +++ b/data_model/master/clusters/LowPower.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/MediaInput.xml b/data_model/master/clusters/MediaInput.xml new file mode 100644 index 00000000000000..a92985ff924a75 --- /dev/null +++ b/data_model/master/clusters/MediaInput.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/MediaPlayback.xml b/data_model/master/clusters/MediaPlayback.xml new file mode 100644 index 00000000000000..03175277dc12c5 --- /dev/null +++ b/data_model/master/clusters/MediaPlayback.xml @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Messages.xml b/data_model/master/clusters/Messages.xml new file mode 100644 index 00000000000000..402310c4b92eea --- /dev/null +++ b/data_model/master/clusters/Messages.xml @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/MicrowaveOvenControl.xml b/data_model/master/clusters/MicrowaveOvenControl.xml new file mode 100644 index 00000000000000..b927685e534e0c --- /dev/null +++ b/data_model/master/clusters/MicrowaveOvenControl.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ModeBase.xml b/data_model/master/clusters/ModeBase.xml new file mode 100644 index 00000000000000..48b4d4adac1634 --- /dev/null +++ b/data_model/master/clusters/ModeBase.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ModeSelect.xml b/data_model/master/clusters/ModeSelect.xml new file mode 100644 index 00000000000000..cfdf7adb92761c --- /dev/null +++ b/data_model/master/clusters/ModeSelect.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_DeviceEnergyManagement.xml b/data_model/master/clusters/Mode_DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..9cb426eb51785d --- /dev/null +++ b/data_model/master/clusters/Mode_DeviceEnergyManagement.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_Dishwasher.xml b/data_model/master/clusters/Mode_Dishwasher.xml new file mode 100644 index 00000000000000..40a19828d44ebb --- /dev/null +++ b/data_model/master/clusters/Mode_Dishwasher.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_EVSE.xml b/data_model/master/clusters/Mode_EVSE.xml new file mode 100644 index 00000000000000..ffce1a6a2980ce --- /dev/null +++ b/data_model/master/clusters/Mode_EVSE.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_LaundryWasher.xml b/data_model/master/clusters/Mode_LaundryWasher.xml new file mode 100644 index 00000000000000..5d3cce891790e1 --- /dev/null +++ b/data_model/master/clusters/Mode_LaundryWasher.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_MicrowaveOven.xml b/data_model/master/clusters/Mode_MicrowaveOven.xml new file mode 100644 index 00000000000000..6f1e8ed895f489 --- /dev/null +++ b/data_model/master/clusters/Mode_MicrowaveOven.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_Oven.xml b/data_model/master/clusters/Mode_Oven.xml new file mode 100644 index 00000000000000..bf6c1b57928a57 --- /dev/null +++ b/data_model/master/clusters/Mode_Oven.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_RVCClean.xml b/data_model/master/clusters/Mode_RVCClean.xml new file mode 100644 index 00000000000000..b48ffa24a35b50 --- /dev/null +++ b/data_model/master/clusters/Mode_RVCClean.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_RVCRun.xml b/data_model/master/clusters/Mode_RVCRun.xml new file mode 100644 index 00000000000000..ddfad8adc89d2e --- /dev/null +++ b/data_model/master/clusters/Mode_RVCRun.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_Refrigerator.xml b/data_model/master/clusters/Mode_Refrigerator.xml new file mode 100644 index 00000000000000..b4550283daf9e5 --- /dev/null +++ b/data_model/master/clusters/Mode_Refrigerator.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/Mode_WaterHeater.xml b/data_model/master/clusters/Mode_WaterHeater.xml similarity index 88% rename from data_model/clusters/Mode_WaterHeater.xml rename to data_model/master/clusters/Mode_WaterHeater.xml index 56f1a1e9a66951..482ea0e33d0f9a 100644 --- a/data_model/clusters/Mode_WaterHeater.xml +++ b/data_model/master/clusters/Mode_WaterHeater.xml @@ -57,7 +57,7 @@ Davis, CA 95616, USA :xrefstyle: basic --> - + @@ -65,4 +65,18 @@ Davis, CA 95616, USA + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/NetworkCommissioningCluster.xml b/data_model/master/clusters/NetworkCommissioningCluster.xml new file mode 100644 index 00000000000000..cb6e935dcd189e --- /dev/null +++ b/data_model/master/clusters/NetworkCommissioningCluster.xml @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/NetworkIdentityManagement.xml b/data_model/master/clusters/NetworkIdentityManagement.xml similarity index 98% rename from data_model/clusters/NetworkIdentityManagement.xml rename to data_model/master/clusters/NetworkIdentityManagement.xml index 20e264277a4330..0cb3ee17251741 100644 --- a/data_model/clusters/NetworkIdentityManagement.xml +++ b/data_model/master/clusters/NetworkIdentityManagement.xml @@ -57,7 +57,7 @@ Davis, CA 95616, USA :xrefstyle: basic --> - + diff --git a/data_model/master/clusters/OTAProvider.xml b/data_model/master/clusters/OTAProvider.xml new file mode 100644 index 00000000000000..2a5be10961f02c --- /dev/null +++ b/data_model/master/clusters/OTAProvider.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OTARequestor.xml b/data_model/master/clusters/OTARequestor.xml new file mode 100644 index 00000000000000..f6a5ff0365abed --- /dev/null +++ b/data_model/master/clusters/OTARequestor.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OccupancySensing.xml b/data_model/master/clusters/OccupancySensing.xml new file mode 100644 index 00000000000000..2aae8530b1d512 --- /dev/null +++ b/data_model/master/clusters/OccupancySensing.xml @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OnOff.xml b/data_model/master/clusters/OnOff.xml new file mode 100644 index 00000000000000..a12de2b2e25eb8 --- /dev/null +++ b/data_model/master/clusters/OnOff.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalCredentialCluster.xml b/data_model/master/clusters/OperationalCredentialCluster.xml new file mode 100644 index 00000000000000..2aa070f96b2573 --- /dev/null +++ b/data_model/master/clusters/OperationalCredentialCluster.xml @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalState.xml b/data_model/master/clusters/OperationalState.xml new file mode 100644 index 00000000000000..124362e459e429 --- /dev/null +++ b/data_model/master/clusters/OperationalState.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalState_Oven.xml b/data_model/master/clusters/OperationalState_Oven.xml new file mode 100644 index 00000000000000..fbcc634330faa7 --- /dev/null +++ b/data_model/master/clusters/OperationalState_Oven.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalState_RVC.xml b/data_model/master/clusters/OperationalState_RVC.xml new file mode 100644 index 00000000000000..f33791fcf86407 --- /dev/null +++ b/data_model/master/clusters/OperationalState_RVC.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PowerSourceCluster.xml b/data_model/master/clusters/PowerSourceCluster.xml new file mode 100644 index 00000000000000..1c01cc548bfdee --- /dev/null +++ b/data_model/master/clusters/PowerSourceCluster.xml @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PowerSourceConfigurationCluster.xml b/data_model/master/clusters/PowerSourceConfigurationCluster.xml new file mode 100644 index 00000000000000..6a47ce1b54cdbd --- /dev/null +++ b/data_model/master/clusters/PowerSourceConfigurationCluster.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PowerTopology.xml b/data_model/master/clusters/PowerTopology.xml new file mode 100644 index 00000000000000..4ebdda614a4aec --- /dev/null +++ b/data_model/master/clusters/PowerTopology.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PressureMeasurement.xml b/data_model/master/clusters/PressureMeasurement.xml new file mode 100644 index 00000000000000..a46e911253941f --- /dev/null +++ b/data_model/master/clusters/PressureMeasurement.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ProxyConfiguration-Cluster.xml b/data_model/master/clusters/ProxyConfiguration-Cluster.xml new file mode 100644 index 00000000000000..8ad566ec8527b2 --- /dev/null +++ b/data_model/master/clusters/ProxyConfiguration-Cluster.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ProxyDiscovery-Cluster.xml b/data_model/master/clusters/ProxyDiscovery-Cluster.xml new file mode 100644 index 00000000000000..6fa4a9eb6f3a06 --- /dev/null +++ b/data_model/master/clusters/ProxyDiscovery-Cluster.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PumpConfigurationControl.xml b/data_model/master/clusters/PumpConfigurationControl.xml new file mode 100644 index 00000000000000..c3f79ce8108975 --- /dev/null +++ b/data_model/master/clusters/PumpConfigurationControl.xml @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/RefrigeratorAlarm.xml b/data_model/master/clusters/RefrigeratorAlarm.xml new file mode 100644 index 00000000000000..a3a75011813cd1 --- /dev/null +++ b/data_model/master/clusters/RefrigeratorAlarm.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ResourceMonitoring.xml b/data_model/master/clusters/ResourceMonitoring.xml new file mode 100644 index 00000000000000..43bf28868f3709 --- /dev/null +++ b/data_model/master/clusters/ResourceMonitoring.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Scenes.xml b/data_model/master/clusters/Scenes.xml new file mode 100644 index 00000000000000..bf68f8528fa159 --- /dev/null +++ b/data_model/master/clusters/Scenes.xml @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ServiceArea.xml b/data_model/master/clusters/ServiceArea.xml new file mode 100644 index 00000000000000..7963d93b7eb222 --- /dev/null +++ b/data_model/master/clusters/ServiceArea.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/SmokeCOAlarm.xml b/data_model/master/clusters/SmokeCOAlarm.xml new file mode 100644 index 00000000000000..25c034ac94082c --- /dev/null +++ b/data_model/master/clusters/SmokeCOAlarm.xml @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Switch.xml b/data_model/master/clusters/Switch.xml new file mode 100644 index 00000000000000..c7c94524bed52c --- /dev/null +++ b/data_model/master/clusters/Switch.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TargetNavigator.xml b/data_model/master/clusters/TargetNavigator.xml new file mode 100644 index 00000000000000..c5fb59919585c1 --- /dev/null +++ b/data_model/master/clusters/TargetNavigator.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TemperatureControl.xml b/data_model/master/clusters/TemperatureControl.xml new file mode 100644 index 00000000000000..3f5fa9c00332d6 --- /dev/null +++ b/data_model/master/clusters/TemperatureControl.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TemperatureMeasurement.xml b/data_model/master/clusters/TemperatureMeasurement.xml new file mode 100644 index 00000000000000..176fad6b246a60 --- /dev/null +++ b/data_model/master/clusters/TemperatureMeasurement.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Thermostat.xml b/data_model/master/clusters/Thermostat.xml new file mode 100644 index 00000000000000..7345fc2e2c9177 --- /dev/null +++ b/data_model/master/clusters/Thermostat.xml @@ -0,0 +1,1290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml new file mode 100644 index 00000000000000..b4ecd49f93ae4a --- /dev/null +++ b/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ThreadBorderRouterManagement.xml b/data_model/master/clusters/ThreadBorderRouterManagement.xml new file mode 100644 index 00000000000000..f1e88f8ab86e70 --- /dev/null +++ b/data_model/master/clusters/ThreadBorderRouterManagement.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ThreadNetworkDirectory.xml b/data_model/master/clusters/ThreadNetworkDirectory.xml new file mode 100644 index 00000000000000..3a770c36a214f9 --- /dev/null +++ b/data_model/master/clusters/ThreadNetworkDirectory.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TimeSync.xml b/data_model/master/clusters/TimeSync.xml new file mode 100644 index 00000000000000..9d4057db8bdb85 --- /dev/null +++ b/data_model/master/clusters/TimeSync.xml @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ValidProxies-Cluster.xml b/data_model/master/clusters/ValidProxies-Cluster.xml new file mode 100644 index 00000000000000..b9db8e1762647f --- /dev/null +++ b/data_model/master/clusters/ValidProxies-Cluster.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ValveConfigurationControl.xml b/data_model/master/clusters/ValveConfigurationControl.xml new file mode 100644 index 00000000000000..e8dcece07432d3 --- /dev/null +++ b/data_model/master/clusters/ValveConfigurationControl.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WakeOnLAN.xml b/data_model/master/clusters/WakeOnLAN.xml new file mode 100644 index 00000000000000..4f6e032c084b38 --- /dev/null +++ b/data_model/master/clusters/WakeOnLAN.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WaterContentMeasurement.xml b/data_model/master/clusters/WaterContentMeasurement.xml new file mode 100644 index 00000000000000..85d44793c93ae4 --- /dev/null +++ b/data_model/master/clusters/WaterContentMeasurement.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/clusters/WaterHeaterManagement.xml b/data_model/master/clusters/WaterHeaterManagement.xml similarity index 88% rename from data_model/clusters/WaterHeaterManagement.xml rename to data_model/master/clusters/WaterHeaterManagement.xml index cc641c8269fb3c..52e1020f164472 100644 --- a/data_model/clusters/WaterHeaterManagement.xml +++ b/data_model/master/clusters/WaterHeaterManagement.xml @@ -57,16 +57,19 @@ Davis, CA 95616, USA :xrefstyle: basic --> - + - + - + + + + @@ -130,7 +133,13 @@ Davis, CA 95616, USA - + + + + + + + @@ -140,20 +149,24 @@ Davis, CA 95616, USA - - + + - - + + - + + + - + + + diff --git a/data_model/clusters/WiFiNetworkManagement.xml b/data_model/master/clusters/WiFiNetworkManagement.xml similarity index 97% rename from data_model/clusters/WiFiNetworkManagement.xml rename to data_model/master/clusters/WiFiNetworkManagement.xml index 1a3fceec2747d3..e1c03fbc7061d4 100644 --- a/data_model/clusters/WiFiNetworkManagement.xml +++ b/data_model/master/clusters/WiFiNetworkManagement.xml @@ -57,7 +57,7 @@ Davis, CA 95616, USA :xrefstyle: basic --> - + diff --git a/data_model/master/clusters/WindowCovering.xml b/data_model/master/clusters/WindowCovering.xml new file mode 100644 index 00000000000000..7ec63dd442d8ae --- /dev/null +++ b/data_model/master/clusters/WindowCovering.xml @@ -0,0 +1,700 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/bridge-clusters-ActionsCluster.xml b/data_model/master/clusters/bridge-clusters-ActionsCluster.xml new file mode 100644 index 00000000000000..5b9b54429b9429 --- /dev/null +++ b/data_model/master/clusters/bridge-clusters-ActionsCluster.xml @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml new file mode 100644 index 00000000000000..318ad7fa54dd2a --- /dev/null +++ b/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml b/data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml new file mode 100644 index 00000000000000..42ae5c4fe44cee --- /dev/null +++ b/data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/cluster_ids.json b/data_model/master/clusters/cluster_ids.json new file mode 100644 index 00000000000000..c7654179ede2b5 --- /dev/null +++ b/data_model/master/clusters/cluster_ids.json @@ -0,0 +1,124 @@ +{ + "3": "Identify", + "4": "Groups", + "6": "On/Off", + "8": "Level Control", + "29": "Descriptor", + "30": "Binding", + "31": "AccessControl", + "37": "Actions", + "40": "Basic Information", + "41": "OTA Software Update Provider", + "42": "OTA Software Update Requestor", + "43": "Localization Configuration", + "44": "Time Format Localization", + "45": "Unit Localization", + "46": "Power Source Configuration", + "47": "Power Source", + "48": "General Commissioning", + "49": "Network Commissioning", + "50": "Diagnostic Logs", + "51": "General Diagnostics", + "52": "Software Diagnostics", + "53": "Thread Network Diagnostics", + "54": "Wi", + "55": "Ethernet Network Diagnostics", + "56": "Time Synchronization", + "57": "Bridged Device Basic Information", + "59": "Switch", + "60": "Administrator Commissioning", + "62": "Operational Credentials", + "63": "GroupKeyManagement", + "64": "Fixed Label", + "65": "User Label", + "66": "ProxyConfiguration", + "67": "ProxyDiscovery", + "68": "ValidProxies", + "69": "Boolean State", + "70": "ICDManagement", + "72": "Oven Cavity Operational State", + "73": "Oven Mode", + "74": "Laundry Dryer Controls", + "80": "Mode Select", + "81": "Laundry Washer Mode", + "82": "Refrigerator And Temperature Controlled Cabinet Mode", + "83": "Laundry Washer Controls", + "84": "RVC Run Mode", + "85": "RVC Clean Mode", + "86": "Temperature Control", + "87": "Refrigerator Alarm", + "89": "Dishwasher Mode", + "91": "Air Quality", + "92": "Smoke CO Alarm", + "93": "Dishwasher Alarm", + "94": "Microwave Oven Mode", + "95": "Microwave Oven Control", + "96": "Operational State", + "97": "RVC Operational State", + "98": "Scenes Management", + "113": "HEPA Filter Monitoring", + "114": "Activated Carbon Filter Monitoring", + "121": "Water Tank Level Monitoring", + "128": "Boolean State Configuration", + "129": "Valve Configuration and Control", + "144": "Electrical Power Measurement", + "145": "Electrical Energy Measurement", + "148": "Water Heater Management", + "149": "Energy Price", + "150": "Demand Response Load Control", + "151": "Messages", + "152": "Device Energy Management", + "153": "Energy EVSE", + "154": "Energy Calendar", + "155": "Energy Preference", + "156": "Power Topology", + "157": "Energy EVSE Mode", + "158": "Water Heater Mode", + "159": "Device Energy Management Mode", + "257": "Door Lock", + "258": "Window Covering", + "336": "Service Area", + "512": "Pump Configuration and Control", + "513": "Thermostat", + "514": "Fan Control", + "516": "Thermostat User Interface Configuration", + "517": "Humidistat", + "768": "Color Control", + "769": "Ballast Configuration", + "1024": "Illuminance Measurement", + "1026": "Temperature Measurement", + "1027": "Pressure Measurement", + "1028": "Flow Measurement", + "1029": "Relative Humidity Measurement", + "1030": "Occupancy Sensing", + "1036": "Carbon Monoxide Concentration Measurement", + "1037": "Carbon Dioxide Concentration Measurement", + "1043": "Nitrogen Dioxide Concentration Measurement", + "1045": "Ozone Concentration Measurement", + "1066": "PM2", + "1067": "Formaldehyde Concentration Measurement", + "1068": "PM1 Concentration Measurement", + "1069": "PM10 Concentration Measurement", + "1070": "Total Volatile Organic Compounds Concentration Measurement", + "1071": "Radon Concentration Measurement", + "1104": "Network Identity Management", + "1105": "Wi", + "1106": "Thread Border Router Management", + "1107": "Thread Network Directory", + "1283": "Wake on LAN", + "1284": "Channel", + "1285": "Target Navigator", + "1286": "Media Playback", + "1287": "Media Input", + "1288": "Low Power", + "1289": "Keypad Input", + "1290": "Content Launcher", + "1291": "Audio Output", + "1292": "Application Launcher", + "1293": "Application Basic", + "1294": "Account Login", + "1295": "Content Control", + "1296": "Content App Observer", + "1872": "Ecosystem Information", + "1873": "Commissioner Control" +} diff --git a/data_model/master/device_types/Aggregator.xml b/data_model/master/device_types/Aggregator.xml new file mode 100644 index 00000000000000..48aa4347d850e1 --- /dev/null +++ b/data_model/master/device_types/Aggregator.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/AirPurifier.xml b/data_model/master/device_types/AirPurifier.xml new file mode 100644 index 00000000000000..538d9a4e341efb --- /dev/null +++ b/data_model/master/device_types/AirPurifier.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/AirQualitySensor.xml b/data_model/master/device_types/AirQualitySensor.xml new file mode 100644 index 00000000000000..602781819d1696 --- /dev/null +++ b/data_model/master/device_types/AirQualitySensor.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BaseDeviceType.xml b/data_model/master/device_types/BaseDeviceType.xml new file mode 100644 index 00000000000000..ddcc49f258f0cb --- /dev/null +++ b/data_model/master/device_types/BaseDeviceType.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BasicVideoPlayer.xml b/data_model/master/device_types/BasicVideoPlayer.xml new file mode 100644 index 00000000000000..ed82d08bc7a112 --- /dev/null +++ b/data_model/master/device_types/BasicVideoPlayer.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BatteryStorage.xml b/data_model/master/device_types/BatteryStorage.xml new file mode 100644 index 00000000000000..321e9f9dfe2159 --- /dev/null +++ b/data_model/master/device_types/BatteryStorage.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BridgedNode.xml b/data_model/master/device_types/BridgedNode.xml new file mode 100644 index 00000000000000..59414205c052b5 --- /dev/null +++ b/data_model/master/device_types/BridgedNode.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/CastingVideoClient.xml b/data_model/master/device_types/CastingVideoClient.xml new file mode 100644 index 00000000000000..8f816b3e2a8056 --- /dev/null +++ b/data_model/master/device_types/CastingVideoClient.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/CastingVideoPlayer.xml b/data_model/master/device_types/CastingVideoPlayer.xml new file mode 100644 index 00000000000000..0b65f4f7aab57d --- /dev/null +++ b/data_model/master/device_types/CastingVideoPlayer.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ColorDimmerSwitch.xml b/data_model/master/device_types/ColorDimmerSwitch.xml new file mode 100644 index 00000000000000..190ab6c7fc8b7e --- /dev/null +++ b/data_model/master/device_types/ColorDimmerSwitch.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ColorTemperatureLight.xml b/data_model/master/device_types/ColorTemperatureLight.xml new file mode 100644 index 00000000000000..4f7cf64a9fd0a2 --- /dev/null +++ b/data_model/master/device_types/ColorTemperatureLight.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ContactSensor.xml b/data_model/master/device_types/ContactSensor.xml new file mode 100644 index 00000000000000..6fa5620a77bebb --- /dev/null +++ b/data_model/master/device_types/ContactSensor.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ContentApp.xml b/data_model/master/device_types/ContentApp.xml new file mode 100644 index 00000000000000..300e3122336ef4 --- /dev/null +++ b/data_model/master/device_types/ContentApp.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ControlBridge.xml b/data_model/master/device_types/ControlBridge.xml new file mode 100644 index 00000000000000..04ff66db808cc9 --- /dev/null +++ b/data_model/master/device_types/ControlBridge.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/CookSurface.xml b/data_model/master/device_types/CookSurface.xml new file mode 100644 index 00000000000000..a32425e2f1df08 --- /dev/null +++ b/data_model/master/device_types/CookSurface.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Cooktop.xml b/data_model/master/device_types/Cooktop.xml new file mode 100644 index 00000000000000..ea94653008d25a --- /dev/null +++ b/data_model/master/device_types/Cooktop.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DeviceEnergyManagement.xml b/data_model/master/device_types/DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..cf148dabc13679 --- /dev/null +++ b/data_model/master/device_types/DeviceEnergyManagement.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DimmableLight.xml b/data_model/master/device_types/DimmableLight.xml new file mode 100644 index 00000000000000..059a0802f77906 --- /dev/null +++ b/data_model/master/device_types/DimmableLight.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DimmablePlug-InUnit.xml b/data_model/master/device_types/DimmablePlug-InUnit.xml new file mode 100644 index 00000000000000..4d344bfc9fb89c --- /dev/null +++ b/data_model/master/device_types/DimmablePlug-InUnit.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DimmerSwitch.xml b/data_model/master/device_types/DimmerSwitch.xml new file mode 100644 index 00000000000000..0ad9f23638349a --- /dev/null +++ b/data_model/master/device_types/DimmerSwitch.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Dishwasher.xml b/data_model/master/device_types/Dishwasher.xml new file mode 100644 index 00000000000000..6e351f38360e4e --- /dev/null +++ b/data_model/master/device_types/Dishwasher.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DoorLock.xml b/data_model/master/device_types/DoorLock.xml new file mode 100644 index 00000000000000..8b73bbf8679a6b --- /dev/null +++ b/data_model/master/device_types/DoorLock.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DoorLockController.xml b/data_model/master/device_types/DoorLockController.xml new file mode 100644 index 00000000000000..64d26eba8d8eeb --- /dev/null +++ b/data_model/master/device_types/DoorLockController.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/EVSE.xml b/data_model/master/device_types/EVSE.xml new file mode 100644 index 00000000000000..a6a1e3854c88eb --- /dev/null +++ b/data_model/master/device_types/EVSE.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ElectricalSensor.xml b/data_model/master/device_types/ElectricalSensor.xml new file mode 100644 index 00000000000000..62c6dd9b4128b2 --- /dev/null +++ b/data_model/master/device_types/ElectricalSensor.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/EnergyTariff.xml b/data_model/master/device_types/EnergyTariff.xml similarity index 100% rename from data_model/device_types/EnergyTariff.xml rename to data_model/master/device_types/EnergyTariff.xml diff --git a/data_model/device_types/EnergyTariffCalendar.xml b/data_model/master/device_types/EnergyTariffCalendar.xml similarity index 95% rename from data_model/device_types/EnergyTariffCalendar.xml rename to data_model/master/device_types/EnergyTariffCalendar.xml index 7b0becfc52e1c9..ee3a6b9347db38 100644 --- a/data_model/device_types/EnergyTariffCalendar.xml +++ b/data_model/master/device_types/EnergyTariffCalendar.xml @@ -55,9 +55,9 @@ Connectivity Standards Alliance 508 Second Street, Suite 206 Davis, CA 95616, USA --> - + - + diff --git a/data_model/master/device_types/ExtendedColorLight.xml b/data_model/master/device_types/ExtendedColorLight.xml new file mode 100644 index 00000000000000..b4057d6b5bc997 --- /dev/null +++ b/data_model/master/device_types/ExtendedColorLight.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ExtractorHood.xml b/data_model/master/device_types/ExtractorHood.xml new file mode 100644 index 00000000000000..6606b377f47a39 --- /dev/null +++ b/data_model/master/device_types/ExtractorHood.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Fan.xml b/data_model/master/device_types/Fan.xml new file mode 100644 index 00000000000000..8bf8347e93c5b0 --- /dev/null +++ b/data_model/master/device_types/Fan.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/FlowSensor.xml b/data_model/master/device_types/FlowSensor.xml new file mode 100644 index 00000000000000..bcc27b318aac36 --- /dev/null +++ b/data_model/master/device_types/FlowSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/GenericSwitch.xml b/data_model/master/device_types/GenericSwitch.xml new file mode 100644 index 00000000000000..acfa0a95005291 --- /dev/null +++ b/data_model/master/device_types/GenericSwitch.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/HeatPump.xml b/data_model/master/device_types/HeatPump.xml new file mode 100644 index 00000000000000..ae0ce0e9a4d30a --- /dev/null +++ b/data_model/master/device_types/HeatPump.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/HumidifierDehumidifier.xml b/data_model/master/device_types/HumidifierDehumidifier.xml new file mode 100644 index 00000000000000..a917cbff4450f0 --- /dev/null +++ b/data_model/master/device_types/HumidifierDehumidifier.xml @@ -0,0 +1,63 @@ + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/HumiditySensor.xml b/data_model/master/device_types/HumiditySensor.xml new file mode 100644 index 00000000000000..4a1808d7e0c580 --- /dev/null +++ b/data_model/master/device_types/HumiditySensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/JointFabricAdmin.xml b/data_model/master/device_types/JointFabricAdmin.xml new file mode 100644 index 00000000000000..eb57fad58127a4 --- /dev/null +++ b/data_model/master/device_types/JointFabricAdmin.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/LaundryDryer.xml b/data_model/master/device_types/LaundryDryer.xml new file mode 100644 index 00000000000000..d4692c7ad818a5 --- /dev/null +++ b/data_model/master/device_types/LaundryDryer.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/LaundryWasher.xml b/data_model/master/device_types/LaundryWasher.xml new file mode 100644 index 00000000000000..03b85f3bd363b4 --- /dev/null +++ b/data_model/master/device_types/LaundryWasher.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/LightSensor.xml b/data_model/master/device_types/LightSensor.xml new file mode 100644 index 00000000000000..0eca130f921623 --- /dev/null +++ b/data_model/master/device_types/LightSensor.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/MicrowaveOven.xml b/data_model/master/device_types/MicrowaveOven.xml new file mode 100644 index 00000000000000..3ae1fd8d5bf22d --- /dev/null +++ b/data_model/master/device_types/MicrowaveOven.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ModeSelectDeviceType.xml b/data_model/master/device_types/ModeSelectDeviceType.xml new file mode 100644 index 00000000000000..7848ba0adc787f --- /dev/null +++ b/data_model/master/device_types/ModeSelectDeviceType.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/NetworkInfraIntro-Introduction.xml b/data_model/master/device_types/NetworkInfraIntro.xml similarity index 100% rename from data_model/device_types/NetworkInfraIntro-Introduction.xml rename to data_model/master/device_types/NetworkInfraIntro.xml diff --git a/data_model/device_types/NetworkInfraManager.xml b/data_model/master/device_types/NetworkInfraManager.xml similarity index 93% rename from data_model/device_types/NetworkInfraManager.xml rename to data_model/master/device_types/NetworkInfraManager.xml index 67c3ee49f75f92..800ca8ce10ace6 100644 --- a/data_model/device_types/NetworkInfraManager.xml +++ b/data_model/master/device_types/NetworkInfraManager.xml @@ -62,10 +62,13 @@ Davis, CA 95616, USA - + - + + + + diff --git a/data_model/master/device_types/OccupancySensor.xml b/data_model/master/device_types/OccupancySensor.xml new file mode 100644 index 00000000000000..233d04f196e388 --- /dev/null +++ b/data_model/master/device_types/OccupancySensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffLight.xml b/data_model/master/device_types/OnOffLight.xml new file mode 100644 index 00000000000000..f71c0bf77fa42c --- /dev/null +++ b/data_model/master/device_types/OnOffLight.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffLightSwitch.xml b/data_model/master/device_types/OnOffLightSwitch.xml new file mode 100644 index 00000000000000..d6ac7f79520d26 --- /dev/null +++ b/data_model/master/device_types/OnOffLightSwitch.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffPlug-inUnit.xml b/data_model/master/device_types/OnOffPlug-inUnit.xml new file mode 100644 index 00000000000000..3be1ed0f9eb13d --- /dev/null +++ b/data_model/master/device_types/OnOffPlug-inUnit.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffSensor.xml b/data_model/master/device_types/OnOffSensor.xml new file mode 100644 index 00000000000000..935a438fb0bbef --- /dev/null +++ b/data_model/master/device_types/OnOffSensor.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OtaProvider.xml b/data_model/master/device_types/OtaProvider.xml new file mode 100644 index 00000000000000..375ab4e36aa987 --- /dev/null +++ b/data_model/master/device_types/OtaProvider.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OtaRequestor.xml b/data_model/master/device_types/OtaRequestor.xml new file mode 100644 index 00000000000000..840e322bdccb72 --- /dev/null +++ b/data_model/master/device_types/OtaRequestor.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Oven.xml b/data_model/master/device_types/Oven.xml new file mode 100644 index 00000000000000..9c5d23e86afda7 --- /dev/null +++ b/data_model/master/device_types/Oven.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/PowerSource.xml b/data_model/master/device_types/PowerSource.xml new file mode 100644 index 00000000000000..9ed71e905535bd --- /dev/null +++ b/data_model/master/device_types/PowerSource.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/PressureSensor.xml b/data_model/master/device_types/PressureSensor.xml new file mode 100644 index 00000000000000..f2b7855db91c83 --- /dev/null +++ b/data_model/master/device_types/PressureSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Pump.xml b/data_model/master/device_types/Pump.xml new file mode 100644 index 00000000000000..461725136abaec --- /dev/null +++ b/data_model/master/device_types/Pump.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/PumpController.xml b/data_model/master/device_types/PumpController.xml new file mode 100644 index 00000000000000..99acf1fa1c5757 --- /dev/null +++ b/data_model/master/device_types/PumpController.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RainSensor.xml b/data_model/master/device_types/RainSensor.xml new file mode 100644 index 00000000000000..473de6e31d1598 --- /dev/null +++ b/data_model/master/device_types/RainSensor.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Refrigerator.xml b/data_model/master/device_types/Refrigerator.xml new file mode 100644 index 00000000000000..4899906c3b985e --- /dev/null +++ b/data_model/master/device_types/Refrigerator.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RoboticVacuumCleaner.xml b/data_model/master/device_types/RoboticVacuumCleaner.xml new file mode 100644 index 00000000000000..2657a560109829 --- /dev/null +++ b/data_model/master/device_types/RoboticVacuumCleaner.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RoomAirConditioner.xml b/data_model/master/device_types/RoomAirConditioner.xml new file mode 100644 index 00000000000000..305a893dabc0fe --- /dev/null +++ b/data_model/master/device_types/RoomAirConditioner.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RootNodeDeviceType.xml b/data_model/master/device_types/RootNodeDeviceType.xml new file mode 100644 index 00000000000000..875a633f9ba9b8 --- /dev/null +++ b/data_model/master/device_types/RootNodeDeviceType.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/SecondaryNetworkInterface.xml b/data_model/master/device_types/SecondaryNetworkInterface.xml new file mode 100644 index 00000000000000..186faac2718079 --- /dev/null +++ b/data_model/master/device_types/SecondaryNetworkInterface.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/SmokeCOAlarm.xml b/data_model/master/device_types/SmokeCOAlarm.xml new file mode 100644 index 00000000000000..518809d449e35a --- /dev/null +++ b/data_model/master/device_types/SmokeCOAlarm.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/SolarPower.xml b/data_model/master/device_types/SolarPower.xml new file mode 100644 index 00000000000000..743da25e7a9a20 --- /dev/null +++ b/data_model/master/device_types/SolarPower.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Speaker.xml b/data_model/master/device_types/Speaker.xml new file mode 100644 index 00000000000000..d1d9d85beb84c8 --- /dev/null +++ b/data_model/master/device_types/Speaker.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/TemperatureControlledCabinet.xml b/data_model/master/device_types/TemperatureControlledCabinet.xml new file mode 100644 index 00000000000000..299037e145d901 --- /dev/null +++ b/data_model/master/device_types/TemperatureControlledCabinet.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/TemperatureSensor.xml b/data_model/master/device_types/TemperatureSensor.xml new file mode 100644 index 00000000000000..d6ccd5c18db89f --- /dev/null +++ b/data_model/master/device_types/TemperatureSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Thermostat.xml b/data_model/master/device_types/Thermostat.xml new file mode 100644 index 00000000000000..6acdf63b10eba0 --- /dev/null +++ b/data_model/master/device_types/Thermostat.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/ThreadBorderRouter.xml b/data_model/master/device_types/ThreadBorderRouter.xml similarity index 90% rename from data_model/device_types/ThreadBorderRouter.xml rename to data_model/master/device_types/ThreadBorderRouter.xml index 5a069e57e93243..73561999d60eba 100644 --- a/data_model/device_types/ThreadBorderRouter.xml +++ b/data_model/master/device_types/ThreadBorderRouter.xml @@ -55,25 +55,17 @@ Connectivity Standards Alliance 508 Second Street, Suite 206 Davis, CA 95616, USA --> - + - - - - + - - - - - - + diff --git a/data_model/master/device_types/VideoRemoteControl.xml b/data_model/master/device_types/VideoRemoteControl.xml new file mode 100644 index 00000000000000..7896a6f6ee6be5 --- /dev/null +++ b/data_model/master/device_types/VideoRemoteControl.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WaterFreezeDetector.xml b/data_model/master/device_types/WaterFreezeDetector.xml new file mode 100644 index 00000000000000..f3c5f0580af21f --- /dev/null +++ b/data_model/master/device_types/WaterFreezeDetector.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/device_types/WaterHeater.xml b/data_model/master/device_types/WaterHeater.xml similarity index 89% rename from data_model/device_types/WaterHeater.xml rename to data_model/master/device_types/WaterHeater.xml index 7b06da2add9de3..6e80928d792cfc 100644 --- a/data_model/device_types/WaterHeater.xml +++ b/data_model/master/device_types/WaterHeater.xml @@ -68,16 +68,8 @@ Davis, CA 95616, USA - + - - - - - - - - @@ -85,16 +77,13 @@ Davis, CA 95616, USA - + - + - - - \ No newline at end of file diff --git a/data_model/master/device_types/WaterLeakDetector.xml b/data_model/master/device_types/WaterLeakDetector.xml new file mode 100644 index 00000000000000..0518d148910c78 --- /dev/null +++ b/data_model/master/device_types/WaterLeakDetector.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WaterValve.xml b/data_model/master/device_types/WaterValve.xml new file mode 100644 index 00000000000000..5c65f4565f6746 --- /dev/null +++ b/data_model/master/device_types/WaterValve.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WindowCovering.xml b/data_model/master/device_types/WindowCovering.xml new file mode 100644 index 00000000000000..a2d54453b7337f --- /dev/null +++ b/data_model/master/device_types/WindowCovering.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WindowCoveringController.xml b/data_model/master/device_types/WindowCoveringController.xml new file mode 100644 index 00000000000000..c48f327754c599 --- /dev/null +++ b/data_model/master/device_types/WindowCoveringController.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/scraper_version b/data_model/master/scraper_version new file mode 100644 index 00000000000000..e8ea05db81420d --- /dev/null +++ b/data_model/master/scraper_version @@ -0,0 +1 @@ +1.2.4 diff --git a/data_model/master/spec_sha b/data_model/master/spec_sha new file mode 100644 index 00000000000000..f0b38ddc8c8aac --- /dev/null +++ b/data_model/master/spec_sha @@ -0,0 +1 @@ +b3652909bdf595c7634cea1da0f1e58f837ea35f diff --git a/data_model/spec_sha b/data_model/spec_sha deleted file mode 100644 index e9d780b94f334a..00000000000000 --- a/data_model/spec_sha +++ /dev/null @@ -1 +0,0 @@ -c1a1e1e6bcf201334eb0b5216a464b39d9827ec4 diff --git a/docs/ERROR_CODES.md b/docs/ERROR_CODES.md index 122d188f8e0f70..5799c7a3f1b885 100644 --- a/docs/ERROR_CODES.md +++ b/docs/ERROR_CODES.md @@ -47,6 +47,7 @@ This file was **AUTOMATICALLY** generated by | 29 | 0x1D | `CHIP_ERROR_INVALID_IPK` | | 30 | 0x1E | `CHIP_ERROR_INVALID_STRING_LENGTH` | | 31 | 0x1F | `CHIP_ERROR_INVALID_LIST_LENGTH` | +| 32 | 0x20 | `CHIP_ERROR_FAILED_DEVICE_ATTESTATION` | | 33 | 0x21 | `CHIP_ERROR_END_OF_TLV` | | 34 | 0x22 | `CHIP_ERROR_TLV_UNDERRUN` | | 35 | 0x23 | `CHIP_ERROR_INVALID_TLV_ELEMENT` | @@ -202,6 +203,7 @@ This file was **AUTOMATICALLY** generated by | Decimal | Hex | Name | |-----------|-------|---------------------------------------------| +| 1025 | 0x401 | `BLE_ERROR_ADAPTER_UNAVAILABLE` | | 1027 | 0x403 | `BLE_ERROR_NO_CONNECTION_RECEIVED_CALLBACK` | | 1028 | 0x404 | `BLE_ERROR_CENTRAL_UNSUBSCRIBED` | | 1029 | 0x405 | `BLE_ERROR_GATT_SUBSCRIBE_FAILED` | diff --git a/docs/QUICK_START.md b/docs/QUICK_START.md index 97f0f76b3b0436..10833e0c0c1ed7 100644 --- a/docs/QUICK_START.md +++ b/docs/QUICK_START.md @@ -10,7 +10,7 @@ and platforms. |
Controller / Admin
|
Node
| Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [**chip-tool**](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) (Linux / Mac)
Includes docs for all the cluster commands supported
| **all-clusters-app**
  • [M5Stack](https://github.com/project-chip/connectedhomeip/blob/master/examples/all-clusters-app/esp32/README.md) (ESP)
  • [Linux](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux) simulation | Use the command line tool on a laptop to pair with and control an embedded Wi-Fi platform. This demo supports the “all-clusters-app”, so it provides the basic onoff light test and more. | -| [**chip-device-ctrl.py**](https://github.com/project-chip/connectedhomeip/blob/master/src/controller/python/README.md) | **all-clusters-app**
  • [M5Stack](https://github.com/project-chip/connectedhomeip/blob/master/examples/all-clusters-app/esp32/README.md) (ESP)
  • [Linux](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux) simulation | Same as above, but uses the pychip tool as Controller Node. | +| [**chip-repl**](https://github.com/project-chip/connectedhomeip/blob/master/src/controller/python/README.md) | **all-clusters-app**
  • [M5Stack](https://github.com/project-chip/connectedhomeip/blob/master/examples/all-clusters-app/esp32/README.md) (ESP)
  • [Linux](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux) simulation | Same as above, but uses the Python CHIP REPL as Controller Node. | ## Thread Nodes diff --git a/docs/ci-cd/index.md b/docs/ci-cd/index.md index 437120d61f34ca..c2bfc51db6af9e 100644 --- a/docs/ci-cd/index.md +++ b/docs/ci-cd/index.md @@ -35,5 +35,14 @@ Work In Progress ## Tools - [Daily Fail Summary](tools/daily_fail_summary.md) +- Spellcheck + - Uses + [`rojopolis`/spellcheck-github-actions](https://github.com/marketplace/actions/github-spellcheck-action#configuration), + a PySpelling-based spellchecker + - This tool utilizes the definitions in .spellcheck.yml and + .github/`.wordlist.txt` to check all documentation files. + .spellcheck.yml defines the settings while `.wordlist.txt` is a + dictionary of words to skip checking (brand names, technical jargon, + acronyms) ## General Improvement Ideas diff --git a/docs/ci-cd/tools/daily_fail_summary.md b/docs/ci-cd/tools/daily_fail_summary.md index 8855a7a3de6086..290dfc313929c8 100644 --- a/docs/ci-cd/tools/daily_fail_summary.md +++ b/docs/ci-cd/tools/daily_fail_summary.md @@ -3,20 +3,20 @@ #### Source Workflow: -https://github.com/project-chip/connectedhomeip/blob/master/.github/workflows/recent_fail_summary.yaml + Script: -https://github.com/project-chip/connectedhomeip/blob/master/scripts/tools/summarize_fail.py + Fail Definitions: -https://github.com/project-chip/connectedhomeip/blob/master/scripts/tools/build_fail_definitions.yaml + #### Summary Runs once per day; takes inventory of the previous day's workflow runs and parses them for fail statistics. Creates temporarily cached artifacts for easy data parsing. Also saves a daily pass percentage list of all workflows at -https://github.com/project-chip/connectedhomeip/blob/daily_pass_percentage/docs/daily_pass_percentage.md. +. Fail definitions can be added to the file defined above to allow fast root cause determination of any fail with an error message. diff --git a/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md b/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md index f4c1c5eb890e71..e016ea78b7b7bf 100644 --- a/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md +++ b/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md @@ -36,11 +36,9 @@ types in the SDK. - XML defines conformance - [src/app/zap-templates/zcl/data-model/chip/matter-devices.xml](https://github.com/project-chip/connectedhomeip/blob/master/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml) -The following wiki page has a detailed description of how and where to add -cluster and device type definitions so they are picked up properly by ZAP/ember -and the SDK. - -[https://groups.csa-iot.org/wg/matter-tsg/wiki/howto-add-a-new-device-type](https://groups.csa-iot.org/wg/matter-tsg/wiki/howto-add-a-new-device-type) +See [How To Add New Device Types & Clusters](how_to_add_new_dts_and_clusters.md) +for a detailed description of how and where to add cluster and device type +definitions so they are picked up properly by ZAP/ember and the SDK. Note that the output should also be verified against the spec using the [.matter parser tools](https://project-chip.github.io/connectedhomeip-doc/guides/matter_idl_tooling.html). diff --git a/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md b/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md new file mode 100644 index 00000000000000..8d73a257c28996 --- /dev/null +++ b/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md @@ -0,0 +1,248 @@ +# How to Add New Device Types & Clusters + +This document outlines the process needed to add a new Matter device type and +related clusters. Obviously, the steps below assume that the related Matter +specifications were properly reviewed and approved. + +## Add the cluster definitions to the SDK + +The following steps should be followed to add new cluster definitions to the +SDK. + +**Add your new cluster definition to an appropriately-name file in this +directory:** +[src/app/zap-templates/zcl/data-model/chip](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/data-model/chip) + +**Add references to each new cluster definition to these files:** + +1. [.github/workflows/tests.yaml](https://github.com/project-chip/connectedhomeip/tree/master/.github/workflows/tests.yaml) +2. [scripts/rules.matterlint](https://github.com/project-chip/connectedhomeip/tree/master/scripts/rules.matterlint) +3. [src/app/zap-templates/zcl/data-model/all.xml](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/data-model/all.xml) +4. [src/app/zap-templates/zcl/zcl-with-test-extensions.json](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/zcl-with-test-extensions.json) +5. [src/app/zap-templates/zcl/zcl.json](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/zcl.json) +6. If it is a derived cluster, add a reference to the base cluster definition. + (e.g. in mode-base-cluster.xml you may need to add cluster codes - otherwise + you may get strange exceptions which aren't clear when running regen_all.py) + + > ``` + > + > + > + > + > ``` + +7. [src/controller/python/chip/clusters/\_\_init\_\_.py](https://github.com/project-chip/connectedhomeip/tree/master/src/controller/python/chip/clusters/__init__.py) + +**Enable your new cluster in the Python and Android clients** in +[src/controller/data_model/controller-clusters.zap](https://github.com/project-chip/connectedhomeip/blob/master/src/controller/data_model/controller-clusters.zap) + +You will need the ZAP tool to edit the ZAP file. + +- Unless you already have the tool installed, you can use one of the + [nightly builds](https://github.com/project-chip/zap/releases) +- [ZAP tool info](https://developers.home.google.com/matter/tools/zap) +- [ZAP tool repo](https://github.com/project-chip/zap) + +Use the ZAP GUI tool to edit the file above: + +1. From the command line, navigate to the directory containing + [controller-clusters.zap](https://github.com/project-chip/connectedhomeip/blob/master/src/controller/data_model) +2. Run zap: `../../../scripts/tools/zap/run_zaptool.sh controller-clusters.zap`. + Alternatively, run the zap tool and navigate to the zap file that you wish to + open, or run as + `./scripts/tools/zap/run_zaptool.sh src/controller/data_model/controller-clusters.zap`. +3. In the gui, select `Endpoint-1` from the left pane. +4. Open the cluster group, for example, `Appliances`. +5. Find the cluster to be enabled, e.g. `Dishwasher Control`. +6. In the Enable column, select "Client" from the drop-down box. +7. Click `File->Save` to save the configuration. +8. Close the GUI. + +**Add entries for your new cluster to +[BUILD.gn](c/src/controller/data_model/BUILD.gn)** in the outputs section of the +java-jni-generate bits. The entries should look like +"jni/YourClusterNameClient-InvokeSubscribeImpl.cpp" and +"jni/YourClusterNameClient-ReadImpl.cpp". + +**Add an entry to the ClientDirectories** section of +[src/app/zap_cluster_list.json](https://github.com/project-chip/connectedhomeip/blob/master/src/app/zap_cluster_list.json). + +**Update `chip-tool`** + +1. Regenerate all zap generated code using `./scripts/tools/zap_regen_all.py` +2. Rebuild chip-tool and it will have new cluster support: + `./scripts/examples/gn_build_example.sh examples/chip-tool SOME-PATH/` + +## Add the device type definition to the SDK + +1. Add the XML definition of the device to + [matter-devices.xml](https://github.com/project-chip/connectedhomeip/blob/master/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml) +2. Implement the incoming command behaviors common to all applications. The + parsing of the payload from TLV to a C++ struct is done by code + auto-generated from the XML (see + [zap-generated](https://github.com/project-chip/connectedhomeip/blob/master/zzz_generated/app-common/app-common/zap-generated)) + The rest of the functionality must be manually implemented. Note: for the + auto-generated code run one of the following: + 1. for everything: `./scripts/tools/zap_regen_all.py` + 2. just for the app-common part: + `./scripts/tools/zap/generate.py -t src/app/common/templates/templates.json -o zzz_generated/app-common/app-common/zap-generated src/controller/data_model/controller-clusters.zap` +3. Implement the read/write/storage operations for the attributes of any type, + list, or struct which are not the global attributes present in all clusters. + For example, there's no need to implement CommandList, AttributeList etc. For + the attributes which are not list of struct type, the handling code is + implemented generically so most likely no work is needed for them. +4. Implement any attribute spec requirements that are common to all + applications. For example: code to enforce specific ranges, code for handling + the interactions between attributes etc. + +## Implement Code and Tests + +Implement the clusters, the example cluster server application and add the +related SDK tests. + +1. Implement new clusters here: + [src/app/clusters](https://github.com/project-chip/connectedhomeip/tree/master/src/app/clusters) +2. Implement tests here: + [src/app/tests/suites](https://github.com/project-chip/connectedhomeip/tree/master/src/app/tests/suites) +3. Implement the example cluster server application: + 1. The YAML tests will run against this server + 2. Depending on the clusters, there are two options: + 1. Enable them in the all-clusters-app and use that as the example + cluster server app. If choosing this option, consider adding an + example application that has just the relevant clusters enabled; this + part is a nice to have. + 2. If the clusters have complicated global application requirements + consider using a separate example app. see the door lock, bridge, TV, + OTA clusters. + 3. NOTES: If adding a new cluster derived from `mode-base` into + [examples/all-clusters-app/](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/) + (Assume your new cluster is called `XZYMode`): + 1. Create your new `xyz-mode-cluster.xml` in + [src/app/zap-templates/zcl/data-model/chip](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/data-model/chip) + (as above). Note that this is a much cut down cluster definition + compared to normal clusters, since it derives from + [mode-base-cluster.xml](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml). + See + [dishwasher-mode-cluster.xml](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/data-model/chip/dishwasher-mode-cluster.xml) + as an example. Note you should review if you need the `StartUpMode` + and `OnMode` attributes based on the spec. + 2. Check that you have added your cluster code into + [mode-base-cluster.xml](https://github.com/project-chip/connectedhomeip/tree/master/src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml) + 1. ` ` - replace + `XXXX` with your cluster ID + 2. ` ` - + replace `XXXX` with your cluster ID + 3. ` ` - + replace `XXXX` with your cluster ID + 3. Add your new Mode definitions in `xyz-mode.h`. In this header you + define the modes / labels and tags. See + [dishwasher-mode.h](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/all-clusters-common/include/dishwasher-mode.h) + as an example. + 4. Add your new stub to instantiate the mode. See + [dishwasher-mode.cpp](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/all-clusters-common/src/dishwasher-mode.cpp) + as an example. + 5. In + [examples/all-clusters-app/linux/main-common.cpp](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux/main-common.cpp): + 1. Add `#include "xyz-mode.h"` + 2. In `ApplicationShutdown()`, add a call to your + `Clusters::XYZMode::Shutdown();`. + 6. In + [examples/all-clusters-app/linux/BUILD.gn](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/linux/BUILD.gn), + add the `xyz-mode.cpp` file to the `sources` section. + 7. In + [src/app/common/templates/config-data.yaml](https://github.com/project-chip/connectedhomeip/blob/master/src/app/common/templates/config-data.yaml): + 1. Add a `::ModeTag` to the `EnumsNotUsedAsTypeInXML` + section. + 2. Add an `XYZ Mode` entry to the + `CommandHandlerInterfaceOnlyClusters` section. + 8. In + [src/app/util/util.cpp](https://github.com/project-chip/connectedhomeip/blob/master/src/app/util/util.cpp), + in the `// Cluster Init Functions...` section, add a void + `MatterXYZModePluginServerInitCallback() {}` definition. + 9. In + [src/app/zap-templates/zcl/zcl-with-test-extensions.json](https://github.com/project-chip/connectedhomeip/blob/master/src/app/zap-templates/zcl/zcl-with-test-extensions.json): + 1. Add the `xyz-mode-cluster.xml` to the `xmlFile` list + 2. In the `attributeAccessInterfaceAttributes` entry, add your new + entry + `"XYZ Mode": [ "SupportedModes", "CurrentMode", "FeatureMap" ]` - + this will mean ZAP won't generate code to handle these attributes + 10. In + [src/app/zap_cluster_list.json](https://github.com/project-chip/connectedhomeip/blob/master/src/app/zap_cluster_list.json): + 1. Add your `XYZ_MODE_CLUSTER: []` to `ClientDirectories: { }` + object + 2. Add your `"XYZ_MODE_CLUSTER": ["mode-base-server"]` to + `"ServerDirectories": { }` + 4. The code under + [src/app/tests/suites/certification](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites/certification) + for YAML or + [src/python_testing](https://github.com/project-chip/connectedhomeip/tree/master/src/python_testing) + for Python should ideally implement the test plan (section 4 below). + 5. A test under + [src/app/tests/suites](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites) + (not certification) can test anything, in addition to, or preceding the + official YAML representing the official test plan. +4. Add the test plan, using the templates below: + + 1. [cluster_test_plan_template.adoc](https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/template/cluster_test_plan_template.adoc) + 2. [test_plan_template.adoc](https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/template/test_plan_template.adoc) + + Also, ask to be added to the private `csg-tt-test-plans` Slack channel. + +5. Note: the CHIP-Tool reference client is generated from XML +6. If applicable, add tests: + 1. For relatively simple tests, add YAML tests here: + [src/app/tests/suites/certification](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites/certification). + Remember to update this file: + [src/app/tests/suites/certification/PICS.yaml](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites/certification/PICS.yaml) + 2. For more complex tests, add Python tests here: + [src/python_testing](https://github.com/project-chip/connectedhomeip/tree/master/src/python_testing) + 3. To add tests to CI, if applicable: + 1. Add the Python tests here: + [.github/workflows/tests.yaml](https://github.com/project-chip/connectedhomeip/tree/master/.github/workflows/tests.yaml). + Remember to provide all arguments required for each Python script, + such as the endpoint PIXIT. + 2. Add the YAML tests by editing this file: + [src/app/tests/suites/ciTests.json](https://github.com/project-chip/connectedhomeip/tree/master/src/app/tests/suites/ciTests.json) + 1. Create a section ("MyDevice") which lists all YAML tests for your + device + 2. Add the section's name to the list of items named "collection" + 3. Do a ZAP code regen: `./scripts/tools/zap_regen_all.py`. +7. Add the device type spec to the test plan tools: + + 1. [tools/device_type_requirements](https://github.com/CHIP-Specifications/chip-test-plans/tree/master/tools/device_type_requirements) + 2. The file above is used by + [src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites/certification/Test_TC_DESC_2_1.yaml) + + Note: the plan is to make the DM tools generate the device type requirements + data based on the spec, so the above will become obsolete. + +8. Add the device type to Chef: + [examples/chef/devices](https://github.com/project-chip/connectedhomeip/tree/master/examples/chef/devices) + +## Q & A + +**Q1**: What kind of devices can be used for the test events? Can one of them be +the example cluster server app running on a RasPI? Do the independent +realizations need to run on vendor hardware or can they also run on generic +hardware, such as ESP32 or RasPI? + +**A1**: one realization can be the test harness + the all clusters example app + +RasPI. the two independent realizations need to run on target hardware, which +may be mock-ups, prototypes etc + +**Q2**: How can the Chef tool be used for any of the deliverables above? + +**A2**: TBD + +**Q3**: What is the process for using the Zap tool in order to auto-generate +code and to commit the results to the git repo? + +**A3**: Search for zap_regen above. Add all the changed files to the repo after. + +**Q4**: Where can the older cluster definitions be found? + +**A4**: src/app/zap-templates/zcl/data-model/silabs/general.xml + +**Q5**: Where can I find ZAP documentation? + +**A5**: https://github.com/project-chip/zap/blob/master/README.md diff --git a/docs/cluster_and_device_type_dev/img/cluster_commands.png b/docs/cluster_and_device_type_dev/img/cluster_commands.png index c04dbe7279b28b..7df7a8a75412ab 100644 Binary files a/docs/cluster_and_device_type_dev/img/cluster_commands.png and b/docs/cluster_and_device_type_dev/img/cluster_commands.png differ diff --git a/docs/cluster_and_device_type_dev/index.md b/docs/cluster_and_device_type_dev/index.md index 6d5cf71edfef1c..9159cdb3e511d5 100644 --- a/docs/cluster_and_device_type_dev/index.md +++ b/docs/cluster_and_device_type_dev/index.md @@ -13,3 +13,4 @@ types in the SDK. ``` - [Cluster and device type development](./cluster_and_device_type_dev.md) +- [How To Add New Device Types & Clusters](how_to_add_new_dts_and_clusters.md) diff --git a/docs/clusters.md b/docs/clusters.md deleted file mode 100644 index eb3dfde53abb80..00000000000000 --- a/docs/clusters.md +++ /dev/null @@ -1,132 +0,0 @@ - - -## List of currently defined clusters - -| Code (dec) | Code (hex) | Name | -| ---------- | ---------- | ------------------------------------------------------- | -| 3 | 0x03 | Identify | -| 4 | 0x04 | Groups | -| 6 | 0x06 | OnOff | -| 7 | 0x07 | OnOffSwitchConfiguration | -| 8 | 0x08 | LevelControl | -| 15 | 0x0F | BinaryInputBasic | -| 28 | 0x1C | PulseWidthModulation | -| 29 | 0x1D | Descriptor | -| 30 | 0x1E | Binding | -| 31 | 0x1F | AccessControl | -| 37 | 0x25 | Actions | -| 40 | 0x28 | BasicInformation | -| 41 | 0x29 | OtaSoftwareUpdateProvider | -| 42 | 0x2A | OtaSoftwareUpdateRequestor | -| 43 | 0x2B | LocalizationConfiguration | -| 44 | 0x2C | TimeFormatLocalization | -| 45 | 0x2D | UnitLocalization | -| 46 | 0x2E | PowerSourceConfiguration | -| 47 | 0x2F | PowerSource | -| 48 | 0x30 | GeneralCommissioning | -| 49 | 0x31 | NetworkCommissioning | -| 50 | 0x32 | DiagnosticLogs | -| 51 | 0x33 | GeneralDiagnostics | -| 52 | 0x34 | SoftwareDiagnostics | -| 53 | 0x35 | ThreadNetworkDiagnostics | -| 54 | 0x36 | WiFiNetworkDiagnostics | -| 55 | 0x37 | EthernetNetworkDiagnostics | -| 56 | 0x38 | TimeSynchronization | -| 57 | 0x39 | BridgedDeviceBasicInformation | -| 59 | 0x3B | Switch | -| 60 | 0x3C | AdministratorCommissioning | -| 62 | 0x3E | OperationalCredentials | -| 63 | 0x3F | GroupKeyManagement | -| 64 | 0x40 | FixedLabel | -| 65 | 0x41 | UserLabel | -| 66 | 0x42 | ProxyConfiguration | -| 67 | 0x43 | ProxyDiscovery | -| 68 | 0x44 | ProxyValid | -| 69 | 0x45 | BooleanState | -| 70 | 0x46 | IcdManagement | -| 71 | 0x47 | Timer | -| 72 | 0x48 | OvenCavityOperationalState | -| 73 | 0x49 | OvenMode | -| 74 | 0x4A | LaundryDryerControls | -| 80 | 0x50 | ModeSelect | -| 81 | 0x51 | LaundryWasherMode | -| 82 | 0x52 | RefrigeratorAndTemperatureControlledCabinetMode | -| 83 | 0x53 | LaundryWasherControls | -| 84 | 0x54 | RvcRunMode | -| 85 | 0x55 | RvcCleanMode | -| 86 | 0x56 | TemperatureControl | -| 87 | 0x57 | RefrigeratorAlarm | -| 89 | 0x59 | DishwasherMode | -| 91 | 0x5B | AirQuality | -| 92 | 0x5C | SmokeCoAlarm | -| 93 | 0x5D | DishwasherAlarm | -| 94 | 0x5E | MicrowaveOvenMode | -| 95 | 0x5F | MicrowaveOvenControl | -| 96 | 0x60 | OperationalState | -| 97 | 0x61 | RvcOperationalState | -| 98 | 0x62 | ScenesManagement | -| 113 | 0x71 | HepaFilterMonitoring | -| 114 | 0x72 | ActivatedCarbonFilterMonitoring | -| 128 | 0x80 | BooleanStateConfiguration | -| 129 | 0x81 | ValveConfigurationAndControl | -| 144 | 0x90 | ElectricalPowerMeasurement | -| 145 | 0x91 | ElectricalEnergyMeasurement | -| 150 | 0x96 | DemandResponseLoadControl | -| 151 | 0x97 | Messages | -| 152 | 0x98 | DeviceEnergyManagement | -| 153 | 0x99 | EnergyEvse | -| 155 | 0x9B | EnergyPreference | -| 156 | 0x9C | PowerTopology | -| 157 | 0x9D | EnergyEvseMode | -| 159 | 0x9F | DeviceEnergyManagementMode | -| 257 | 0x101 | DoorLock | -| 258 | 0x102 | WindowCovering | -| 259 | 0x103 | BarrierControl | -| 512 | 0x200 | PumpConfigurationAndControl | -| 513 | 0x201 | Thermostat | -| 514 | 0x202 | FanControl | -| 516 | 0x204 | ThermostatUserInterfaceConfiguration | -| 768 | 0x300 | ColorControl | -| 769 | 0x301 | BallastConfiguration | -| 1024 | 0x400 | IlluminanceMeasurement | -| 1026 | 0x402 | TemperatureMeasurement | -| 1027 | 0x403 | PressureMeasurement | -| 1028 | 0x404 | FlowMeasurement | -| 1029 | 0x405 | RelativeHumidityMeasurement | -| 1030 | 0x406 | OccupancySensing | -| 1036 | 0x40C | CarbonMonoxideConcentrationMeasurement | -| 1037 | 0x40D | CarbonDioxideConcentrationMeasurement | -| 1043 | 0x413 | NitrogenDioxideConcentrationMeasurement | -| 1045 | 0x415 | OzoneConcentrationMeasurement | -| 1066 | 0x42A | Pm25ConcentrationMeasurement | -| 1067 | 0x42B | FormaldehydeConcentrationMeasurement | -| 1068 | 0x42C | Pm1ConcentrationMeasurement | -| 1069 | 0x42D | Pm10ConcentrationMeasurement | -| 1070 | 0x42E | TotalVolatileOrganicCompoundsConcentrationMeasurement | -| 1071 | 0x42F | RadonConcentrationMeasurement | -| 1283 | 0x503 | WakeOnLan | -| 1284 | 0x504 | Channel | -| 1285 | 0x505 | TargetNavigator | -| 1286 | 0x506 | MediaPlayback | -| 1287 | 0x507 | MediaInput | -| 1288 | 0x508 | LowPower | -| 1289 | 0x509 | KeypadInput | -| 1290 | 0x50A | ContentLauncher | -| 1291 | 0x50B | AudioOutput | -| 1292 | 0x50C | ApplicationLauncher | -| 1293 | 0x50D | ApplicationBasic | -| 1294 | 0x50E | AccountLogin | -| 1295 | 0x50F | ContentControl | -| 1296 | 0x510 | ContentAppObserver | -| 2820 | 0xB04 | ElectricalMeasurement | -| 4294048773 | 0xFFF1FC05 | UnitTesting | -| 4294048774 | 0xFFF1FC06 | FaultInjection | -| 4294048800 | 0xFFF1FC20 | SampleMei | diff --git a/docs/examples/index.md b/docs/examples/index.md index 2c9a0a4659b3bc..446c94f6f61f3b 100644 --- a/docs/examples/index.md +++ b/docs/examples/index.md @@ -85,6 +85,24 @@ darwin-framework-tool/README energy-management-app/**/README ``` +## Fabric Admin example + +```{toctree} +:glob: +:maxdepth: 1 + +fabric-admin/README +``` + +## Fabric Bridge example + +```{toctree} +:glob: +:maxdepth: 1 + +fabric-bridge-app/**/README +``` + ## Java matter controller example ```{toctree} @@ -112,6 +130,15 @@ kotlin-matter-controller/README virtual-device-app/**/README ``` +## Laundry washer example + +```{toctree} +:glob: +:maxdepth: 1 + +laundry-washer-app/**/README +``` + ## Lighting example ```{toctree} @@ -204,7 +231,6 @@ pigweed-app/**/README :maxdepth: 1 pump-app/**/README -pump-app/cc13x2x7_26x2x7/doc/programming* ``` ## Pump controller example @@ -214,7 +240,6 @@ pump-app/cc13x2x7_26x2x7/doc/programming* :maxdepth: 1 pump-controller-app/**/README -pump-controller-app/cc13x2x7_26x2x7/doc/programming* ``` ## Refrigerator example diff --git a/docs/getting_started/SDKBasics.md b/docs/getting_started/SDKBasics.md index fee03ae7cd484d..7f2c81f285fceb 100644 --- a/docs/getting_started/SDKBasics.md +++ b/docs/getting_started/SDKBasics.md @@ -58,7 +58,7 @@ logic is handled in the run-time installed interface layers. - examples - [examples/chip-tool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool) - main controller example - - [examples/all-clusters-app](https://github.com/project-chip/connectedhomeip/blob/master/examples/all-cluster-app) - + - [examples/all-clusters-app](https://github.com/project-chip/connectedhomeip/blob/master/examples/all-clusters-app) - QA app - [examples/\](https://github.com/project-chip/connectedhomeip/blob/master/examples) - Specific Device examples diff --git a/docs/getting_started/first_example.md b/docs/getting_started/first_example.md new file mode 100644 index 00000000000000..4aba0d4e480204 --- /dev/null +++ b/docs/getting_started/first_example.md @@ -0,0 +1,123 @@ +# An SDK example + +The SDK provides a number of example devices and controllers that can be used to +familiarize yourself with the SDK and the Matter ecosystem. + +## Example Devices + +The example devices (occasionally referred to as "apps") are located in the +[examples](../../examples/) directory. The examples often implement one +particular device type. Some have implementations for various platforms. + +The linux platform examples are provided as examples, and are used in the CI. +These can be used for preliminary testing. + +The all-clusters-app is used by the QA team for testing. This app implements +nearly all the available clusters and does not conform to a specific device +type. This app is not a good starting place for product development. + +## Example Controllers + +The SDK has two example controllers that can be used to interact with devices +for testing. + +[chip-tool](../../examples/chip-tool/) is a C++ command line controller with an +interactive shell. More information on chip-tool can be found in the +[chip-tool guide](../guides/chip_tool_guide.md). + +[chip-repl](../../src/controller/python/chip-repl.py) is a shell for the python +controller. The chip-repl is part of the python controller framework, often used +for testing. More information about the python controller can be found in the +[python testing](../testing/python.md) documentation. + +## Building your first demo app (lighting) + +The examples directory contains a set of apps using an example device +composition \.zap file. For more information about device composition and zap, +see [ZAP documentation](./zap.md). + +This quick start guide will walk you through + +- Building an app (lighting app) for the host platform +- Interacting with the app using chip\-tool \(controller\) + +### Building the lighting app + +- Install prerequisites from docs/guides/BUILDING\.md +- Run bootstrap or activate to install all the required tools etc. + - `. scripts/bootstrap.sh` \- run this first\, or if builds fail + - `. scripts/activate.sh` \- faster\, use if you’ve already bootstrapped + and are just starting a new terminal + +The build system we use is Ninja / GN. You can use a standard gn gen / ninja to +build as normal, or use the scripts to build specific variants. More information +about the build system can be found at [BUILDING.md](../guides/BUILDING.md). The +official quickstart guide for the build system is located ag +https://gn.googlesource.com/gn/+/master/docs/quick_start.md and a full reference +can be found at https://gn.googlesource.com/gn/+/main/docs/reference.md. + +To build with the scripts, use scripts/build/build_examples\.py - +`scripts/build/build_examples.py targets` - +`scripts/build/build_examples.py --target build` - builds to +`out//` + +Scripts can be used to build both the lighting app and chip tool + +- Lighting app \(device\) + - `./scripts/build/build_examples.py --target linux-x64-light-no-ble build` + - This will build an executable to + `./out/linux-x64-light-no-ble/chip-lighting-app` + +* NOTE that the host name (linux-x64 here) may be different on different + systems ex. darwin + +- chip-tool (controller) + - `./scripts/build/build_examples.py --target linux-x64-chip-tool build` + - This will build an executable to `./out/linux-x64-chip-tool/chip-tool` + +### Building / Interacting with Matter Examples + +The first thing you need to do is to commission the device. First start up the +app in one terminal. By default it will start up with the default discriminator +(3840) and passcode (20202021) and save its non-volatile information in a KVS in +/temp/chip_kvs. You can change these, and multiple other options on the command +line. For a full description, use the `--help` command. + +Start the lighting app in one terminal using + +`./out/linux-x64-light-no-ble/chip-lighting-app` + +The lighting app will print out all its setup information. You can get the setup +codes, discriminator and passcode from the logs. + +Open a new terminal to use chip tool. Commission the device using: + +`./out/linux-x64-chip-tool/chip-tool pairing code 0x12344321 MT:-24J0AFN00KA0648G0` + +NOTE: pairing is the old name for commissioning. 0x12344321 is the node ID you +want to assign to the node. 0x12344321 is the default for testing. +MT:-24J0AFN00KA0648G0 is the QR code for a device with the default discriminator +and passcode. If you have changed these, the code will be different. + +#### Basic device interactions - Sending a command + +`./chip-tool onoff on 0x12344321 1` + +where: + +- onoff is the cluster name +- on is the command name +- 0x12344321 is the node ID you used for commissioning +- 1 is the endpoint + +#### Basic device interactions - Reading an attribute + +`./chip-tool onoff read on-off 0x12344321 1` + +where: + +- onoff is the cluster name +- read is the desired action +- on is the attribute name +- 0x12344321 is the node ID you used for commissioning +- 1 is the endpoint diff --git a/docs/getting_started/index.md b/docs/getting_started/index.md index b961701cc98bc8..cca67e19b0c8fc 100644 --- a/docs/getting_started/index.md +++ b/docs/getting_started/index.md @@ -11,6 +11,7 @@ The following docs are a brief introduction to SDK development. ``` +- [Running your first example](./first_example.md) - [SDK Basics](./SDKBasics.md) - [ZAP](./zap.md) - [Discover from a host computer](./discovery_from_a_host_computer.md) diff --git a/docs/guides/BUILDING.md b/docs/guides/BUILDING.md index 8e32d6dc4a3c66..7cd660227ed165 100644 --- a/docs/guides/BUILDING.md +++ b/docs/guides/BUILDING.md @@ -25,12 +25,53 @@ The Matter build system has the following features: ## Checking out the Matter code -To check out the Matter repository, run the following command: +To check out the Matter code, there are two options: one is to check out all +platforms together, which is recommended; the other is to check out with support +for specific platforms, which can obviously reduce the project size. + +### Checking out All Platforms + +To check out the Matter repository with all platforms, run the following +command: ``` git clone --recurse-submodules git@github.com:project-chip/connectedhomeip.git + +``` + +### Specific platforms Checking out + +- first step, checking out matter top level repo with command below: + +``` + git clone --depth=1 git@github.com:project-chip/connectedhomeip.git + +``` + +- Second step, check out third-party platform support repos as follows: + +``` + python3 scripts/checkout_submodules.py --shallow --platform platform1,platform2... + ``` +For Linux host example: + +``` + ./scripts/checkout_submodules.py --shallow --platform linux + +``` + +For Darwin host example: + +``` + ./scripts/checkout_submodules.py --shallow --platform darwin + +``` + +Please note that in the above commands, you should replace platform1,platform2 +with the specific platform names you wish to check out. + ## Updating Matter code If you already have the Matter code checked out, run the following commands to @@ -94,13 +135,20 @@ Complete the following steps: 1. Reboot your Raspberry Pi after installing `pi-bluetooth`. -#### Enable experimental Bluetooth support in BlueZ +#### Enable experimental Bluetooth support and disable battery plugin in BlueZ The Matter application on Linux uses BlueZ to communicate with the Bluetooth controller. The BlueZ version that comes with Ubuntu 22.04 does not support all the features required by the Matter application by default. To enable these features, you need to enable experimental Bluetooth support in BlueZ. +Also disable the battery plugin from BlueZ, because iOS devices advertises a +battery service via BLE, which requires pairing if accessed. BlueZ includes a +battery plugin by default which tries to connect to the battery service. The +authentication fails, because in this case no BLE pairing has been done. If the +BlueZ battery plugin is not disabled, the BLE connection will be terminated +during the Matter commissioning process. + 1. Edit the `bluetooth.service` unit by running the following command: ```sh @@ -112,7 +160,7 @@ features, you need to enable experimental Bluetooth support in BlueZ. ```ini [Service] ExecStart= - ExecStart=/usr/lib/bluetooth/bluetoothd -E + ExecStart=/usr/lib/bluetooth/bluetoothd -E -P battery ``` 1. Restart the Bluetooth service by running the following command: @@ -158,22 +206,27 @@ permanently, you need to make the following changes: ## Installing ZAP tool -`bootstrap.sh` will download a compatible ZAP tool version and set it up in -`$PATH`. If you want to install or use a different version of the tool, you may -download one from the ZAP project's -[Releases](https://github.com/project-chip/zap/releases) page. +For platforms defined in [`scripts/setup/zap.json`](/scripts/setup/zap.json), +`bootstrap.sh` will download a compatible ZAP tool version from CIPD and set it +up in `$PATH`. + +ZAP releases are copied to CIPD by an automated bot. You can check if a release +was copied by looking at tags created for +[ZAP CIPD Packages](https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/zap) +in various platforms. -### Linux ARM +### Custom ZAP -Zap does not provide binary releases for arm. Rosetta solves this for Darwin, -however for linux arm you will have to use a local ZAP, generally through -setting `$ZAP_DEVELOPMENT_PATH` (see the section `Which zap to use` below). +If you want to install or use a different version of the tool, you may download +one from the [ZAP releases](https://github.com/project-chip/zap/releases) or +build it from source. The file `scripts/setup/zap.json` contains the version that CIPD would download, -so you can download a compatible version from the zap project -[Releases](https://github.com/project-chip/zap/releases). To checkout as source -code the corresponding tag should exist in the zap -[repository tags](https://github.com/project-chip/zap/tags) list. +so you can refer to it to find a compatible version. The version is also +maintained at [`scripts/setup/zap.version`](/scripts/setup/zap.version). + +To check out as source code, the corresponding tag should exist in the +[ZAP repository tags](https://github.com/project-chip/zap/tags) list. Example commands: @@ -429,7 +482,7 @@ gn desc out/unified '//src/controller(//build/toolchain/host:linux_x64_clang)' > **Note:** Some platforms that can be built as part of the unified build > require downloading additional tools. To add these to the build, the location > must be provided as a build argument. For example, to add the Simplelink -> cc13x2_26x2 examples to the unified build, install +> cc13xx_26xx examples to the unified build, install > [SysConfig](https://www.ti.com/tool/SYSCONFIG) and add the following build > arguments: > diff --git a/docs/guides/README.md b/docs/guides/README.md index 4f4ddb231f577b..a00cc83e280c91 100644 --- a/docs/guides/README.md +++ b/docs/guides/README.md @@ -7,6 +7,7 @@ - [ASR - Getting Started Guide](./asr_getting_started_guide.md) - [Espressif (ESP32) - Getting Started Guide](./esp32/README.md) - [Infineon PSoC6 - Software Update](./infineon_psoc6_software_update.md) +- [Infineon Trust M Provisioning](./infineon_trustm_provisioning.md) - [Linux - Simulated Devices](./simulated_device_linux.md) - [mbedOS - Adding a new target](./mbedos_add_new_target.md) - [mbedOS - Commissioning](./mbedos_commissioning.md) @@ -17,14 +18,13 @@ - [nRF Connect - Factory Data Configuration](./nrfconnect_factory_data_configuration.md) - [nRF Connect - Platform Overview](./nrfconnect_platform_overview.md) - [nRF Connect - Software Update](./nrfconnect_examples_software_update.md) -- [NXP - Android Commissioning](./nxp_k32w_android_commissioning.md) -- [NXP - Linux Examples](./nxp_imx8m_linux_examples.md) +- [NXP - Getting Started Guide](./nxp/README.md) - [Silicon Labs - Documentation](https://siliconlabs.github.io/matter/latest/index.html) - [Silicon Labs - Getting Started](./silabs_getting_started.md) - [Silicon Labs - Software Update](./silabs_efr32_software_update.md) - [Silicon Labs - CLI Guide](./silabs_cli_guide.md) - [STMicroelectronics (STM32)](./stm32_getting_started_guide.md) -- [TI - Platform Overview](./ti/ti_platform_overview.md) +- [TI - Platform Overview](./ti/ti_matter_overview.md) - [Open IoT SDK - Platform Overview](./openiotsdk_platform_overview.md) - [Open IoT SDK - Examples](./openiotsdk_examples.md) - [Open IoT SDK - Unit Tests](./openiotsdk_unit_tests.md) diff --git a/docs/guides/darwin.md b/docs/guides/darwin.md index 0b312807e3457f..2a84067da92ed0 100644 --- a/docs/guides/darwin.md +++ b/docs/guides/darwin.md @@ -259,7 +259,7 @@ Example: - [mbedOS](/examples/all-clusters-app/mbed/README.md) - [nRF Connect All Clusters](./nrfconnect_examples_configuration.md) - [nRF Connect Pump](/examples/pump-app/nrfconnect/README.md) -- [NXP Examples](./nxp_imx8m_linux_examples.md) +- [NXP Examples](./nxp/nxp_imx8m_linux_examples.md) - [NXP](/examples/all-clusters-app/nxp/mw320/README.md) - [Infineon CYW30739 Lighting](/examples/lighting-app/infineon/cyw30739/README.md) - [Infineon PSoC6](/examples/all-clusters-app/infineon/psoc6/README.md) @@ -267,7 +267,7 @@ Example: - [Silicon Labs](./silabs_getting_started.md) - [Simulated Linux](./simulated_device_linux.md) - [Telink](/examples/lighting-app/telink/README.md) -- [TI Platform](./ti/ti_platform_overview.md) +- [TI Platform](./ti/ti_matter_overview.md) - [TI All Clusters](/examples/all-clusters-app/cc13x4_26x4/README.md) - [Tizen](/examples/lighting-app/tizen/README.md) diff --git a/docs/guides/esp32/README.md b/docs/guides/esp32/README.md index e487a58f318591..86cb3a94256257 100644 --- a/docs/guides/esp32/README.md +++ b/docs/guides/esp32/README.md @@ -18,3 +18,5 @@ example on ESP32 series of SoCs - [Matter OTA](ota.md) - [Generating and Using ESP Secure Cert Partition](secure_cert_partition.md) - [BLE Settings](ble_settings.md) +- [Providers](providers.md) +- [Configuration Options](config_options.md) diff --git a/docs/guides/esp32/build_app_and_commission.md b/docs/guides/esp32/build_app_and_commission.md index a79d503265319a..959a0e90173c74 100644 --- a/docs/guides/esp32/build_app_and_commission.md +++ b/docs/guides/esp32/build_app_and_commission.md @@ -31,8 +31,8 @@ and the ESP32S3. All the applications support variants of ESP32, ESP32C3, ESP32S3 chips. -ESP32H2 and ESP32C6 are only supported and tested with lighting-app and -all-clusters-app. +ESP32H2 and ESP32C6 are only supported and tested with lighting-app, +lit-icd-app, and all-clusters-app. Note: M5Stack Core 2 display is not supported in the tft component, while other functionality can still work fine. @@ -85,15 +85,6 @@ functionality can still work fine. $ idf.py set-target (target chip) ``` - All the example applications supports target chips: esp32, esp32s3, esp32c3 - - ESP32H2 and ESP32C6 are only supported in lighting-app, to set it as target - - ``` - $ idf.py --preview set-target esp32h2 - $ idf.py --preview set-target esp32c6 - ``` - - Configuration Options To build the default configuration (`sdkconfig.defaults`) skip this step. diff --git a/docs/guides/esp32/config_options.md b/docs/guides/esp32/config_options.md new file mode 100644 index 00000000000000..646e725daa9d1e --- /dev/null +++ b/docs/guides/esp32/config_options.md @@ -0,0 +1,13 @@ +# Configuration options + +This file lists down few config options to be configured through menuconfig for +specific scenarios. + +### Building with IPV4 Disabled + +Configure below options through `idf.py menuconfig` and build the app. + +``` +CONFIG_DISABLE_IPV4=y +CONFIG_LWIP_IPV4=n +``` diff --git a/docs/guides/esp32/factory_data.md b/docs/guides/esp32/factory_data.md index 9ea2e12d1a87d3..638d3aa134b11f 100644 --- a/docs/guides/esp32/factory_data.md +++ b/docs/guides/esp32/factory_data.md @@ -44,13 +44,9 @@ Following data can be added to the manufacturing partition using - Serial Number - Unique identifier -- Device information - - Fixed Labels - - Supported locales - - Supported calendar types - - Supported modes - - Note: As per spec at max size of label should be 64 and `\0` will be - added at the end. +- Supported modes + - Note: As per spec at max size of label should be 64 and `\0` will be + added at the end. ### Configuration Options diff --git a/docs/guides/esp32/providers.md b/docs/guides/esp32/providers.md new file mode 100644 index 00000000000000..5174e1ccaceb11 --- /dev/null +++ b/docs/guides/esp32/providers.md @@ -0,0 +1,74 @@ +## Providers Implemented for ESP32 Platform + +The ESP32 platform has implemented several providers that can be used with data +stored in the factory or by setting fixed data. + +Below are the providers that have been implemented: + +- [Commissionable Data Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L47) + This provider reads the discriminator and setup pincode related parameters + from the factory partition. +- [Device Attestation Credentials Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L56) + This provider manages the attestation data. +- [Device Instance Info Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L86) + This provider reads basic device information from the factory partition. +- [Device Info Provider](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32DeviceInfoProvider.h#L31) + This provider provides fixed labels, supported calendar types, and supported + locales from the factory partition. + +More information can be found in the [factory data guide](factory_data.md). + +### Device Info Provider + +Currently, there are two implementations for this provider: + +1. [Reads data stored in the factory partition](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/ESP32FactoryDataProvider.h#L56) + _(This will be deprecated in the future)_ +2. [Provides APIs to set fixed data that gets read later](https://github.com/project-chip/connectedhomeip/blob/master/src/platform/ESP32/StaticESP32DeviceInfoProvider.h) + +- New products should use the `StaticESP32DeviceInfoProvider`. Utilize the + `Set...()` APIs to set the fixed data. +- Existing products using the first implementation can continue to use it if + they do not wish to change the data. +- For products using the first implementation and wanting to change the fixed + data via OTA, they should switch to the second implementation in the OTA + image and use the `Set...()` APIs to set the fixed data. + +#### Example: + +```cpp +#include + +DeviceLayer::StaticESP32DeviceInfoProvider deviceInfoProvider; + +// Define array for Supported Calendar Types +using namespace chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum; +CalendarTypeEnum supportedCalendarTypes[] = { + CalendarTypeEnum::kGregorian, CalendarTypeEnum::kCoptic, + CalendarTypeEnum::kEthiopian, CalendarTypeEnum::kChinese, +}; + +// Define array for Supported Locales +const char* supportedLocales[] = { + "en-US", + "en-EU", +}; + +// Define array for Fixed labels { EndpointId, Label, Value } +struct StaticESP32DeviceInfoProvider::FixedLabelEntry fixedLabels[] = { + { 0, "Room", "Bedroom 2" }, + { 0, "Orientation", "North" }, + { 0, "Direction", "Up" }, +}; + +Span sSupportedCalendarTypes(supportedCalendarTypes); +Span sSupportedLocales(supportedLocales); +Span sFixedLabels(fixedLabels); + +{ + deviceInfoProvider.SetSupportedLocales(sSupportedLocales); + deviceInfoProvider.SetSupportedCalendarTypes(sSupportedCalendarTypes); + deviceInfoProvider.SetFixedLabels(sFixedLabels); + DeviceLayer::SetDeviceInfoProvider(&deviceInfoProvider); +} +``` diff --git a/docs/guides/images/matter_ti_overview_wifi.png b/docs/guides/images/matter_ti_overview_wifi.png new file mode 100644 index 00000000000000..4d73a30db7ff99 Binary files /dev/null and b/docs/guides/images/matter_ti_overview_wifi.png differ diff --git a/docs/guides/index.md b/docs/guides/index.md index 2a5d3a64f5afe7..8f747ab27e684f 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -10,7 +10,8 @@ and features. * esp32/README -ti/ti_platform_overview +nxp/README +ti/ti_matter_overview ``` ## Build Guides @@ -34,14 +35,12 @@ ti/ti_platform_overview - [nRF Connect - Factory Data Configuration](./nrfconnect_factory_data_configuration.md) - [nRF Connect - Platform Overview](./nrfconnect_platform_overview.md) - [nRF Connect - Software Update](./nrfconnect_examples_software_update.md) -- [NXP - Android Commissioning](./nxp_k32w_android_commissioning.md) -- [NXP - Linux Examples](./nxp_imx8m_linux_examples.md) -- [NXP - Manufacturing Data](./nxp_manufacturing_flow.md) +- [NXP - Getting Started Guide](./nxp/README.md) - [Silicon Labs - Documentation](https://siliconlabs.github.io/matter/latest/index.html) - [Silicon Labs - Getting Started](./silabs_getting_started.md) - [Silicon Labs - Software Update](./silabs_efr32_software_update.md) - [Silicon Labs - CLI Guide](./silabs_cli_guide.md) -- [TI - Platform Overview](./ti/ti_platform_overview.md) +- [TI - Platform Overview](./ti/ti_matter_overview.md) ## Tool Guides diff --git a/docs/guides/infineon_trustm_provisioning.md b/docs/guides/infineon_trustm_provisioning.md new file mode 100644 index 00000000000000..a514c04adcfee8 --- /dev/null +++ b/docs/guides/infineon_trustm_provisioning.md @@ -0,0 +1,67 @@ +# Infineon OPTIGA™ Trust M Provisioning for Matter + +To use Infineon OPTIGA™ Trust M for device attestation, Provisioning for +OPTIGA™ Trust M with Matter test device Attestation certificate is needed. + +## Hardware setup: + +[Raspberry Pi 4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) + +[OPTIGA™ Trust M MTR](https://www.infineon.com/cms/en/product/evaluation-boards/trust-m-mtr-shield/) + +[Shield2Go Adapter for Raspberry Pi](https://www.infineon.com/cms/en/product/evaluation-boards/s2go-adapter-rasp-pi-iot/) +or Jumping Wire + +## Provisioning for OPTIGA™ Trust M + +The +[Linux Tools for OPTIGA™ Trust M ](https://github.com/Infineon/linux-optiga-trust-m) +can be used to perform provisioning by following the steps mentioned below. + +- Set up chip-tool on Raspberry Pi 4 by following the instruction listed at + [Building chip-tool on Raspberry Pi ](https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/BUILDING.md#installing-prerequisites-on-raspberry-pi-4) +- Clone the repo from Infineon Public GitHub + +``` + $ git clone --recurse-submodules https://github.com/Infineon/linux-optiga-trust-m.git +``` + +- Build the Linux tools for OPTIGA™ Trust M + +``` + $ cd linux-optiga-trust-m/ + $ git checkout provider_dev + $ git submodule update -f + $ ./provider_installation_script.sh +``` + +- Run the script to generate Matter test DAC for lock-app using the public key + extracted from the Infineon pre-provisioned Certificate and store it into + 0xE0E0 + +``` +$ cd scripts/matter_provisioning/ +$ ./matter_test_provisioning.sh +``` + +_Note:_ + +_By running this example `matter_test_provisioning.sh`, the steps shown below +are executed:_ + +_Step1: Extract the public key from the Infineon pre-provisioned +Certificate(0xE0E0) using openssl command._ + +_Step2: Generate DAC test certificate using the extracted public key, Signed by +[Matter test PAI](https://github.com/project-chip/connectedhomeip/blob/v1.1-branch/credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.pem)_. +Please note that production devices cannot re-use these test keys/certificates. + +_Step3: Write DAC test certificate into OPTIGA™ Trust M certificate slot +0xE0E0._ + +_Step4: Write Matter test PAI into OPTIGA™ Trust M certificate slot 0xE0E8 +and test CD into OPTIGA™ Trust M Arbitrary OID 0xF1E0._ + +For certificate claim and OPTIGA™ Trust M MTR provisioning, please refer +to our +[README for Late-stage Provisioning](https://github.com/Infineon/linux-optiga-trust-m/blob/provider_dev/scripts/matter_provisioning/README.md#certificate-claiming) diff --git a/docs/guides/nrfconnect_factory_data_configuration.md b/docs/guides/nrfconnect_factory_data_configuration.md index e4c3be4899df4e..212963d5266b66 100644 --- a/docs/guides/nrfconnect_factory_data_configuration.md +++ b/docs/guides/nrfconnect_factory_data_configuration.md @@ -37,7 +37,7 @@ data secure by applying hardware write protection. - [Appearance field description](#appearance-field-description) - [Enabling factory data support](#enabling-factory-data-support) - [Generating factory data](#generating-factory-data) - - [Creating the factory data JSON file with the first script](#creating-the-factory-data-json-file-with-the-first-script) + - [Creating the factory data JSON and HEX files with the first script](#creating-the-factory-data-json-and-hex-files-with-the-first-script) - [How to set user data](#how-to-set-user-data) - [How to handle user data](#how-to-handle-user-data) - [Verifying using the JSON Schema tool](#verifying-using-the-json-schema-tool) @@ -218,14 +218,19 @@ file written in another way. To make sure that the JSON file is correct and the device is able to read out parameters, [verify the file using the JSON schema tool](#verifying-using-the-json-schema-tool). -### Creating the factory data JSON file with the first script +You can also use only the first script to generate both JSON and HEX files, by +providing optional `offset` and `size` arguments, which results in invoking the +script internally. Such option is the recommended one, but invoking two scripts +one by one is also supported to provide backward compatibility. + +### Creating the factory data JSON and HEX files with the first script A Matter device needs a proper factory data partition stored in the flash memory to read out all required parameters during startup. To simplify the factory data generation, you can use the [generate_nrfconnect_chip_factory_data.py](../../scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py) Python script to provide all required parameters and generate a human-readable -JSON file. +JSON file and save it to a HEX file. To use this script, complete the following steps: @@ -245,10 +250,10 @@ To use this script, complete the following steps: --sn --vendor_id, --product_id, --vendor_name, --product_name, --date, --hw_ver, --hw_ver_str, --spake2_it, --spake2_salt, --discriminator ``` - b. Add output file path: + b. Add output path to store .json file, e.g. my_dir/output: ``` - -o + -o ``` c. Generate SPAKE2 verifier using one of the following methods: @@ -341,6 +346,34 @@ To use this script, complete the following steps: > `chip-cert` executable. See the note at the end of this section to learn > how to get it. + k. (optional) Partition offset that is an address in device's NVM memory, + where factory data will be stored. + + ``` + --offset + ``` + + > **Note:** To generate a HEX file with factory data, you need to provide + > both `offset` and `size` optional arguments. As a result, + > `factory_data.hex` and `factory_data.bin` files are created in the + > `output` directory. The first file contains the required memory offset. + > For this reason, it can be programmed directly to the device using a + > programmer (for example, `nrfjprog`). + + l. (optional) The maximum partition size in device's NVM memory, where + factory data will be stored. + + ``` + --size + ``` + + > **Note:** To generate a HEX file with factory data, you need to provide + > both `offset` and `size` optional arguments. As a result, + > `factory_data.hex` and `factory_data.bin` files are created in the + > `output` directory. The first file contains the required memory offset. + > For this reason, it can be programmed directly to the device using a + > programmer (for example, `nrfjprog`). + 4. Run the script using the prepared list of arguments: ``` @@ -370,8 +403,10 @@ $ python scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py \ --passcode 20202021 \ --product_finish "matte" \ --product_color "black" \ ---out "build.json" \ ---schema "scripts/tools/nrfconnect/nrfconnect_factory_data.schema" +--out "build" \ +--schema "scripts/tools/nrfconnect/nrfconnect_factory_data.schema" \ +--offset 0xf7000 \ +--size 0x1000 ``` As the result of the above example, a unique ID for the rotating device ID is @@ -570,7 +605,7 @@ To generate a manual pairing code and a QR code, complete the following steps: ``` 2. Complete steps 1, 2, and 3 from the - [Creating the factory data JSON file with the first script](#creating-the-factory-data-json-file-with-the-first-script) + [Creating the factory data JSON and HEX files with the first script](#creating-the-factory-data-json-and-hex-files-with-the-first-script) section to prepare the final invocation of the Python script. 3. Add the `--generate_onboarding` argument to the Python script final @@ -686,10 +721,15 @@ The output will look similar to the following one: ### Creating a factory data partition with the second script To store the factory data set in the device's persistent storage, convert the -data from the JSON file to its binary representation in the CBOR format. To do -this, use the +data from the JSON file to its binary representation in the CBOR format. This is +done by the +[generate_nrfconnect_chip_factory_data.py](../../scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py), +if you provide optional `offset` and `size` arguments. If you provided these +arguments, skip the following steps of this section. + +You can skip these optional arguments and do this, using the [nrfconnect_generate_partition.py](../../scripts/tools/nrfconnect/nrfconnect_generate_partition.py) -to generate the factory data partition: +script, but this is obsolete solution kept only for backward compatibility: 1. Navigate to the _connectedhomeip_ root directory 2. Run the following command pattern: @@ -924,14 +964,13 @@ $ west flash ## Using own factory data implementation The [factory data generation process](#generating-factory-data) described above -is only an example valid for the nRF Connect platform. You can also create a HEX -file containing all components from the -[factory data component table](#factory-data-component-table) in any format and -then implement a parser to read out all parameters and pass them to a provider. -Each manufacturer can implement a factory data set on its own by implementing a -parser and a factory data accessor inside the Matter stack. Use the -[nRF Connect Provider](../../src/platform/nrfconnect/FactoryDataProvider.h) and -[FactoryDataParser](../../src/platform/nrfconnect/FactoryDataParser.h) as +is only an example valid for the nRF Connect platform. You can well create a HEX +file containing all [factory data components](#factory-data-component-table) in +any format and then implement a parser to read out all parameters and pass them +to a provider. Each manufacturer can implement a factory data set on its own by +implementing a parser and a factory data accessor inside the Matter stack. Use +the [nRF Connect Provider](../../src/platform/nrfconnect/FactoryDataProvider.h) +and [FactoryDataParser](../../src/platform/nrfconnect/FactoryDataParser.h) as examples. You can read the factory data set from the device's flash memory in different diff --git a/docs/guides/nxp/README.md b/docs/guides/nxp/README.md new file mode 100644 index 00000000000000..be225ac938f7b5 --- /dev/null +++ b/docs/guides/nxp/README.md @@ -0,0 +1,14 @@ +```{toctree} +:glob: +:maxdepth: 1 + +* +``` + +# NXP Getting Started Guide + +- [NXP - Android Commissioning](nxp_k32w_android_commissioning.md) +- [NXP - Linux Examples](nxp_imx8m_linux_examples.md) +- [NXP - Manufacturing Data](nxp_manufacturing_flow.md) +- [NXP - RW61x OTA Software Update Guide](nxp_rw61x_ota_software_update.md) +- [NXP - Zephyr OTA Software Update Guide](nxp_zephyr_ota_software_update.md) diff --git a/docs/guides/nxp_imx8m_linux_examples.md b/docs/guides/nxp/nxp_imx8m_linux_examples.md similarity index 95% rename from docs/guides/nxp_imx8m_linux_examples.md rename to docs/guides/nxp/nxp_imx8m_linux_examples.md index 6b1ad2b8f6c4bd..4ff8ded6a53515 100644 --- a/docs/guides/nxp_imx8m_linux_examples.md +++ b/docs/guides/nxp/nxp_imx8m_linux_examples.md @@ -4,11 +4,11 @@ This document describes how to build below Linux examples with the NXP embedded Linux Yocto SDK and then run the output executable files on the **NXP i.MX 8M** **Mini EVK** development board. -- [CHIP Linux All-clusters Example](../../examples/all-clusters-app/linux/README.md) -- [CHIP Linux Lighting Example](../../examples/lighting-app/linux/README.md) +- [CHIP Linux All-clusters Example](../../../examples/all-clusters-app/linux/README.md) +- [CHIP Linux Lighting Example](../../../examples/lighting-app/linux/README.md) - [CHIP Linux Thermostat Example](https://github.com/project-chip/connectedhomeip/tree/master/examples/thermostat/linux) -- [CHIP Linux CHIP-tool Example](../../examples/chip-tool/README.md) -- [CHIP Linux OTA-provider Example](../../examples/ota-provider-app/linux/README.md) +- [CHIP Linux CHIP-tool Example](../../../examples/chip-tool/README.md) +- [CHIP Linux OTA-provider Example](../../../examples/ota-provider-app/linux/README.md) This document has been tested on: @@ -234,8 +234,8 @@ Thermostat-app is used as an example below. In order to test the CHIP protocol functions, another device on the same network is needed to run the - [ChipDeviceController](../../src/controller/python) tool to communicate with - the **i.MX 8M Mini EVK**. + [ChipDeviceController](../../../src/controller/python) tool to communicate + with the **i.MX 8M Mini EVK**. The ChipDeviceController can be a laptop / workstation. Bluetooth functionality is mandatory on this device. @@ -252,7 +252,7 @@ Thermostat-app is used as an example below. - Boot up Ubuntu on the Raspberry Pi - Clone this connectedhomeip project - Follow Python ChipDeviceController - [README.md](../../src/controller/python/README.md) document. Refer to + [README.md](../../../src/controller/python/README.md) document. Refer to the "Building and installing" part to build the tool. - Running @@ -283,7 +283,7 @@ Thermostat-app is used as an example below. /home/root/thermostat-app --ble-device 0 --wifi # The bluetooth device used is hci0 and support wifi network ``` - - Run [ChipDeviceController](../../src/controller/python) on the + - Run [ChipDeviceController](../../../src/controller/python) on the controller device to communicate with **i.MX 8M Mini EVK** running the example. diff --git a/docs/guides/nxp_k32w_android_commissioning.md b/docs/guides/nxp/nxp_k32w_android_commissioning.md similarity index 90% rename from docs/guides/nxp_k32w_android_commissioning.md rename to docs/guides/nxp/nxp_k32w_android_commissioning.md index 3f1c6d1171df3c..6d872f5f7ba268 100644 --- a/docs/guides/nxp_k32w_android_commissioning.md +++ b/docs/guides/nxp/nxp_k32w_android_commissioning.md @@ -1,9 +1,9 @@ # Commissioning NXP K32W using Android CHIPTool This article describes how to use -[CHIPTool](../../examples/android/CHIPTool/README.md) for Android smartphones to -commission an NXP K32W061 DK6 running -[NXP K32W Lock/Light Example Application](#building-and-programming-nxp-k32w-locklight-example-application) +[CHIPTool](../../../examples/android/CHIPTool/README.md) for Android smartphones +to commission an NXP K32W061 DK6 running +[NXP K32W Light Example Application](#building-and-programming-nxp-k32w-light-example-application) onto a CHIP-enabled Thread network.
    @@ -12,7 +12,7 @@ onto a CHIP-enabled Thread network. - [Requirements](#requirements) - [Building and programming OpenThread RCP firmware](#building-and-programming-openthread-rcp-firmware) - [Configuring PC as Thread Border Router](#configuring-pc-as-a-thread-border-router) -- [Building and programming NXP K32W Lock/Light Example Application](#building-and-programming-nxp-k32w-locklight-example-application) +- [Building and programming NXP K32W Light Example Application](#building-and-programming-nxp-k32w-light-example-application) - [Building and installing Android CHIPTool](#building-and-installing-android-chiptool) - [Forming a Thread network on the Border Router](#forming-a-thread-network-on-the-border-router) - [Preparing accessory device](#preparing-accessory-device) @@ -44,10 +44,10 @@ with a spare Wi-Fi card and an device. The following diagram shows the connectivity between network components required -to allow communication between devices running the CHIPTool and Lock/Light +to allow communication between devices running the CHIPTool and Light applications: -![nxp_hw_connectivity](../../examples/platform/nxp/k32w/k32w0/doc/images/nxp_hw_connectivity.JPG) +![nxp_hw_connectivity](../../../examples/platform/nxp/k32w/k32w0/doc/images/nxp_hw_connectivity.JPG)
    @@ -345,14 +345,10 @@ To make your PC work as a Thread Border Router, complete the following tasks:
    -## Building and programming NXP K32W Lock/Light Example Application +## Building and programming NXP K32W Light Example Application See -[NXP K32W Lock Example Application README](../../examples/lock-app/nxp/k32w/k32w0/README.md) -to learn how to build and program the lock example onto an K32W061 DK6. - -See -[NXP K32W Light Example Application README](../../examples/lighting-app/nxp/k32w/k32w0/README.md) +[NXP K32W Light Example Application README](../../../examples/lighting-app/nxp/k32w/k32w0/README.md) to learn how to build and program the light example onto an K32W061 DK6.
    @@ -360,7 +356,7 @@ to learn how to build and program the light example onto an K32W061 DK6. ## Building and installing Android CHIPTool To build the CHIPTool application for your smartphone, read -[Android CHIPTool README](../../examples/android/CHIPTool/README.md). +[Android CHIPTool README](../../../examples/android/CHIPTool/README.md). After building, install the application by completing the following steps: @@ -400,7 +396,7 @@ CHIPTool is now ready to be used for commissioning. 3. Navigate to the _Form_ tab then push the _Form_ button using the default parameters: - ![nxp_form_nwk](../../examples/platform/nxp/k32w/k32w0/doc/images/form_web.JPG) + ![nxp_form_nwk](../../../examples/platform/nxp/k32w/k32w0/doc/images/form_web.JPG) 4. The message _Form operation is successful_ should be display after a few seconds. @@ -434,7 +430,7 @@ To prepare the accessory device for commissioning, complete the following steps: 1. Make sure that JP4 and JP7 jumpers are in leftmost position and a mini-USB cable is connected between the LPC connector and PC - ![nxp_connectors](../../examples/platform/nxp/k32w/k32w0/doc/images/k32w-dk6-connectors.jpg) + ![nxp_connectors](../../../examples/platform/nxp/k32w/k32w0/doc/images/k32w-dk6-connectors.jpg) 2. Use a terminal emulator (e.g.: Putty) to connect to the UART console of the accessory device. Use a baudrate of 115200. @@ -470,14 +466,14 @@ section, complete the following steps: progress with scanning, connection, and pairing. At the end of this process, the Thread network settings screen appears. - ![chiptool_main_screen](../../examples/platform/nxp/k32w/k32w0/doc/images/chiptool_main_screen.png) + ![chiptool_main_screen](../../../examples/platform/nxp/k32w/k32w0/doc/images/chiptool_main_screen.png) 6. In the Thread network settings screen, use the default settings and tap the _SAVE NETWORK_ button to send a Thread provisioning message to the accessory device. You will see the "Network provisioning completed" message when the accessory device successfully joins the Thread network. - ![chiptool_credentials](../../examples/platform/nxp/k32w/k32w0/doc/images/thread_credentials.png) + ![chiptool_credentials](../../../examples/platform/nxp/k32w/k32w0/doc/images/thread_credentials.png)
    @@ -487,15 +483,14 @@ section, complete the following steps: the provisioning is completed successfully and you are connected to the device. - ![on_off_cluster.png](../../examples/platform/nxp/k32w/k32w0/doc/images/on_off_cluster.png) + ![on_off_cluster.png](../../../examples/platform/nxp/k32w/k32w0/doc/images/on_off_cluster.png) 2. Verify that the text box on the screen is not empty and contains the IPv6 address of the accessory device. -3. Tap the following buttons to change the lock/light state: +3. Tap the following buttons to change the light state: - - _ON_ and _OFF_ buttons lock/turn on and unlock/turn off the door/light - bulb, respectively. - - _TOGGLE_ changes the lock/light state to the opposite. + - _ON_ and _OFF_ buttons turn on and turn off the light bulb, respectively. + - _TOGGLE_ changes the light state to the opposite. -The _LED D3_ on the device turns on or off based on the changes of the -lock/light state. +The _LED D3_ on the device turns on or off based on the changes of the light +state. diff --git a/docs/guides/nxp_manufacturing_flow.md b/docs/guides/nxp/nxp_manufacturing_flow.md similarity index 78% rename from docs/guides/nxp_manufacturing_flow.md rename to docs/guides/nxp/nxp_manufacturing_flow.md index 64bafd53c89329..bad70db294a9ae 100644 --- a/docs/guides/nxp_manufacturing_flow.md +++ b/docs/guides/nxp/nxp_manufacturing_flow.md @@ -1,8 +1,4 @@ ---- -orphan: true ---- - -# NXP manufacturing data guide +# NXP Manufacturing data By default, the example application is configured to use generic test certificates and provisioning data embedded with the application code. It is @@ -112,30 +108,30 @@ Here is the interpretation of the **required** parameters: --pai_cert -> path to the PAI (der format) location --spake2p_path -> path to the spake2p tool --out -> name of the binary that will be used for storing all the generated data - - ``` Here is the interpretation of the **optional** parameters: ```shell ---dac_key_password -> Password to decode DAC key ---dac_key_use_sss_blob -> Used when --dac_key contains a path to an encrypted blob, instead of the - actual DAC private key. The blob metadata size is 24, so the total length - of the resulting value is private key length (32) + 24 = 56. False by default. ---spake2p_verifier -> SPAKE2+ verifier (passed as base64 encoded string). If this option is set, - all SPAKE2+ inputs will be encoded in the final binary. The spake2p tool - will not be used to generate a new verifier on the fly. ---aes128_key -> 128 bits AES key used to encrypt the whole dataset. Please make sure - that the target application/board supports this feature: it has access to - the private key and implements a mechanism which can be used to decrypt - the factory data information. ---date -> Manufacturing Date (YYYY-MM-DD format) ---part_number -> Part number as string ---product_url -> Product URL as string ---product_label -> Product label as string ---serial_num -> Serial Number ---unique_id -> Unique id used for rotating device id generation +--dac_key_password -> Password to decode DAC key +--dac_key_use_sss_blob -> Used when --dac_key contains a path to an encrypted blob, instead of the + actual DAC private key. The blob metadata size is 24, so the total length + of the resulting value is private key length (32) + 24 = 56. False by default. +--spake2p_verifier -> SPAKE2+ verifier (passed as base64 encoded string). If this option is set, + all SPAKE2+ inputs will be encoded in the final binary. The spake2p tool + will not be used to generate a new verifier on the fly. +--aes128_key -> 128 bits AES key used to encrypt the whole dataset. Please make sure + that the target application/board supports this feature: it has access to + the private key and implements a mechanism which can be used to decrypt + the factory data information. +--date -> Manufacturing Date (YYYY-MM-DD format) +--part_number -> Part number as string +--product_url -> Product URL as string +--product_label -> Product label as string +--serial_num -> Serial Number +--unique_id -> Unique id used for rotating device id generation +--product_finish -> Visible finish of the product +--product_primary_color -> Representative color of the visible parts of the product ``` ## 3. Write provisioning data @@ -157,8 +153,18 @@ loadfile factory_data.bin 0xf4000 where `0xf4000` is the value of `__MATTER_FACTORY_DATA_START` in the corresponding .map file (can be different if using a custom linker script). -For the **RT1060**, **RT1170** and **RW61X** platform, the binary needs to be -written using `MCUXpresso Flash Tool GUI` at the address value corresponding to +For **RW61X** platform, the binary needs to be written in the internal flash at +location given by `__MATTER_FACTORY_DATA_START`, using `JLink`: + +``` +loadfile factory_data.bin 0xBFFF000 +``` + +where `0xBFFF000` is the value of `__FACTORY_DATA_START` in the corresponding +.map file (can be different if using a custom linker script). + +For the **RT1060** and **RT1170** platform, the binary needs to be written using +`MCUXpresso Flash Tool GUI` at the address value corresponding to `__FACTORY_DATA_START` (the map file of the application should be checked to get the exact value). @@ -198,6 +204,8 @@ Also, demo **DAC**, **PAI** and **PAA** certificates needed in case ## 6. Increased security for DAC private key +### 6.1 K32W1 + Supported platforms: - K32W1 - `src/plaftorm/nxp/k32w/k32w1/FactoryDataProviderImpl.h` @@ -207,26 +215,15 @@ converted to an encrypted blob. This blob will overwrite the DAC private key in factory data and will be imported in the `SSS` at initialization, by the factory data provider instance. -The conversion process shall happen at manufacturing time and should be run one -time only: +The application will check at initialization whether the DAC private key has +been converted or not and convert it if needed. However, the conversion process +should be done at manufacturing time for security reasons. -- Write factory data binary. -- Build the application with - `chip_with_factory_data=1 chip_convert_dac_private_key=1` set. -- Write the application to the board and let it run. - -After the conversion process: - -- Make sure the application is built with `chip_with_factory_data=1`, but - without `chip_convert_dac_private_key` arg, since conversion already - happened. -- Write the application to the board. - -If you are using Jlink, you can see a conversion script example in: +There is no need for an extra binary. -```shell -./scripts/tools/nxp/factory_data_generator/k32w1/example_convert_dac_private_key.jlink -``` +- Write factory data binary. +- Build the application with `chip_with_factory_data=1` set. +- Write the application to the board and use it as usual. Factory data should now contain a corresponding encrypted blob instead of the DAC private key. @@ -242,3 +239,32 @@ python3 ./scripts/tools/nxp/factory_data_generator/generate.py -i 10000 -s UXKLz Please note that `--dac_key` now points to a binary file that contains the encrypted blob. + +The user can use the DAC private in plain text instead of using the `SSS` by +adding the following gn argument `chip_use_plain_dac_key=true`. + +### 6.2 RW61X + +Supported platforms: + +- RW61X - `src/plaftorm/nxp/rt/rw61x/FactoryDataProviderImpl.h` + +For platforms that have a secure subsystem (`SE50`), the DAC private key can be +converted to an encrypted blob. This blob will overwrite the DAC private key in +factory data and will be imported in the `SE50` before to sign, by the factory +data provider instance. + +The conversion process shall happen at manufacturing time and should be run one +time only: + +- Write factory data binary. +- Build the application with + `chip_with_factory_data=1 chip_convert_dac_private_key=1` set. +- Write the application to the board and let it run. + +After the conversion process: + +- Make sure the application is built with `chip_with_factory_data=1`, but + without `chip_convert_dac_private_key` arg, since conversion already + happened. +- Write the application to the board. diff --git a/docs/guides/nxp_rw61x_ota_software_update.md b/docs/guides/nxp/nxp_rw61x_ota_software_update.md similarity index 87% rename from docs/guides/nxp_rw61x_ota_software_update.md rename to docs/guides/nxp/nxp_rw61x_ota_software_update.md index c3bd5227a054ed..1543b2f94402cf 100644 --- a/docs/guides/nxp_rw61x_ota_software_update.md +++ b/docs/guides/nxp/nxp_rw61x_ota_software_update.md @@ -87,8 +87,9 @@ J-Link > erase 0x8000000, 0x88a0000 ``` - Using MCUXPresso, import the `mcuboot_opensource` demo example from the SDK - previously downloaded. - ![mcuboot_demo](../../examples/platform/nxp/rt/rw61x/doc/images/mcuboot_demo.PNG) + previously downloaded. The example can be found under the `ota_examples` + folder. + ![mcuboot_demo](../../../examples/platform/nxp/rt/rw61x/doc/images/mcuboot_demo.PNG) - Before building the demo example, it should be specified that the application to be run by the bootloader is monolithic. As a result, only one image will be upgraded by the bootloader. This can be done by defining @@ -98,9 +99,22 @@ J-Link > erase 0x8000000, 0x88a0000 Right click on the Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> MCU C Compiler -> Preprocessor -> Add "MONOLITHIC_APP=1" in the Defined Symbols ``` -![rw610_mcuboot_monolithic](../../examples/platform/nxp/rt/rw61x/doc/images/mcuboot_monolithic_app.PNG) +![rw610_mcuboot_monolithic](../../../examples/platform/nxp/rt/rw61x/doc/images/mcuboot_monolithic_app.PNG) + +- Build the demo example project. + +``` +Right click on the Project -> Build Project +``` + +- Program the demo example to the target board. + +``` +Right click on the Project -> Debug -> As->SEGGER JLink probes -> OK -> Select elf file +``` + +Note : The mcuboot binary is loaded in flash at address 0x8000000. -- Build the demo example project and program it to the target board. - To run the flashed demo, either press the reset button of the device or use the debugger IDE of MCUXpresso. If it runs successfully, the following logs will be displayed on the terminal : @@ -135,7 +149,7 @@ The image must have the following format : signature, the upgrade type, the swap status... The all-clusters application can be generated using the instructions from the -[README.md 'Building'](../../examples/all-clusters-app/nxp/rt/rw61x/README.md#building) +[README.md 'Building'](../../../examples/all-clusters-app/nxp/rt/rw61x/README.md#building) section. The application is automatically linked to be executed from the primary image partition, taking into consideration the offset imposed by mcuboot. @@ -161,14 +175,14 @@ user@ubuntu: python3 imgtool.py sign --key ~/Desktop/SDK_RW612/boards/rdrw612bga Notes : -- If internal SDK is used instead, the key can be found in : - "`~/Desktop/SDK_RW612/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-priv.pem`". -- The arguments `slot-size` and `max-sectors` should be adjusted to the size - of the partitions reserved for the primary and the secondary applications. - (By default the size considered is 4.4 MB) +- The arguments `slot-size` and `max-sectors` are aligned with the size of the + partitions reserved for the primary and the secondary applications. (By + default the size considered is 4.4 MB for each application). If the size of + these partitions are modified, the `slot-size` and `max-sectors` should be + adjusted accordingly. - In this example, the image is signed with the private key provided by the SDK as an example - (`/path_to_sdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-priv.pem`), + (`SDK_RW612/boards/rdrw612bga/ota_examples/mcuboot_opensource/keys/sign-rsa2048-priv.pem`), MCUBoot is built with its corresponding public key which would be used to verify the integrity of the image. It is possible to generate a new pair of keys using the following commands. This procedure should be done prior to @@ -187,7 +201,7 @@ user@ubuntu: python3 imgtool.py getpub -k priv_key.pem ``` - The extracted public key can then be copied to the - `/path_to_sdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-pub.c`, + `SDK_RW612/boards/rdrw612bga/ota_examples/mcuboot_opensource/keys/sign-rsa2048-pub.c`, given as a value to the rsa_pub_key[] array. The resulting output is the signed binary of the application version "1.0". @@ -209,6 +223,10 @@ To generate the OTA update image the same procedure can be followed from the sub-section, replacing the "--version "1.0"" argument with "--version "2.0"" (recent version of the update). +Note : When building the update image, the build arguments +`nxp_software_version=2 nxp_sofware_version_string=\"2.0\"` can be added to the +`gn gen` command in order to specify the upgraded version. + When the signed binary of the update is generated, the file should be converted into OTA format. To do so, the ota_image_tool is provided in the repo and can be used to convert a binary file into an .ota file. @@ -224,8 +242,8 @@ instructions below describe the procedure step-by-step. Setup example : -- [Chip-tool](../../examples/chip-tool/README.md) application running on the - RPi. +- [Chip-tool](../../../examples/chip-tool/README.md) application running on + the RPi. - OTA Provider application built on the same RPi (as explained below). - RW61x board programmed with the example application (with the instructions above). diff --git a/docs/guides/nxp_zephyr_ota_software_update.md b/docs/guides/nxp/nxp_zephyr_ota_software_update.md similarity index 87% rename from docs/guides/nxp_zephyr_ota_software_update.md rename to docs/guides/nxp/nxp_zephyr_ota_software_update.md index 430e0bfd81e694..805afb7741c944 100644 --- a/docs/guides/nxp_zephyr_ota_software_update.md +++ b/docs/guides/nxp/nxp_zephyr_ota_software_update.md @@ -114,7 +114,7 @@ and `CONFIG_MCUBOOT_SIGNATURE_KEY_FILE` needs to point to that same key. paths starts from the MCUBoot repository root. This option can be changed in: `config/nxp/app/bootloader.conf` -- `CONFIG_BOOT_SIGNATURE_KEY_FILE`: This is used for the application to be +- `CONFIG_MCUBOOT_SIGNATURE_KEY_FILE`: This is used for the application to be loaded by the bootloader. The path can be either absolute or relative. Relative paths starts from the west workspace location. This option can be changed in the application .conf files. @@ -124,6 +124,22 @@ Refer to those two files for more information: - [MCUBoot Config used for the MCUBoot Image](https://github.com/zephyrproject-rtos/mcuboot/blob/main/boot/zephyr/Kconfig) - [MCUBoot Config used for the application](https://github.com/zephyrproject-rtos/zephyr/blob/main/modules/Kconfig.mcuboot) +When an OTA image is received it can either be marked as permanent or as a test, +The Kconfig `CONFIG_CHIP_OTA_REQUEST_UPGRADE_TYPE` can choose one of those +configurations (Defined in `/config/nxp/chip-module/Kconfig`): + +- `CONFIG_CHIP_OTA_REQUEST_UPGRADE_PERMANENT`: From the next reboot, this + image will be run permanently. +- `CONFIG_CHIP_OTA_REQUEST_UPGRADE_TEST`: The image will be run on the next + reboot, but it will be reverted if it doesn't get confirmed. The image needs + to confirm itself to become permanent. + +By default, the upgrade type used is `CONFIG_CHIP_OTA_REQUEST_UPGRADE_TEST`, and +OTA image confirms itself during the initialization stage after the fundamental +parts of the application are initialized properly to make sure this new image +boots correctly. This confirmation is done by +`chip::NXP::App::OTARequestorInitiator::HandleSelfTest()`. + JLink can be used to flash the mixed binary at the base address 0x8000000, using the command : @@ -141,9 +157,9 @@ The same procedure can be followed from the sub-section, replacing `CONFIG_CHIP_DEVICE_SOFTWARE_VERSION` with a number greater than the initial one used on the active application (Candidate application version number should be greater than the one used on the active -application). By default the value is set to 0, try resetting this option to 1 +application). By default the value is set to 1, try resetting this option to 2 to generate the OTA update Image. You can do this by adding -`-DCONFIG_CHIP_DEVICE_SOFTWARE_VERSION=1` to the west build command. +`-DCONFIG_CHIP_DEVICE_SOFTWARE_VERSION=2` to the west build command. The current implementation automates the following procedures: @@ -162,8 +178,8 @@ Update. The instructions below describes the procedure step-by-step. Setup example : -- [Chip-tool](../../examples/chip-tool/README.md) application running on the - RPi. +- [Chip-tool](../../../examples/chip-tool/README.md) application running on + the RPi. - OTA Provider application built on the same RPi (as explained below). - Board programmed with the example application (with the instructions above). diff --git a/docs/guides/openiotsdk_unit_tests.md b/docs/guides/openiotsdk_unit_tests.md index 7b9bba56707870..c255129e0aed61 100644 --- a/docs/guides/openiotsdk_unit_tests.md +++ b/docs/guides/openiotsdk_unit_tests.md @@ -6,8 +6,8 @@ tests that are located in the `test` directory, e.g. `src/inet/tests`. Those sources are built as a static library that can be linked to the unit test application separately or as a monolithic test library. The common Matter test library collects all test cases and provides the engine based on -[Nest Labs Unit Test](https://github.com/nestlabs/nlunit-test) to run them in -the application. +[Pigweed Unit Test](https://pigweed.dev/pw_unit_test) to run them in the +application. The Open IoT SDK unit tests implementation are located in the `src/test_driver/openiotsdk/unit-tests` directory. This project builds a @@ -20,13 +20,15 @@ The list of currently supported Matter's component tests: ``` accesstest +AppDataModelTests AppTests ASN1Tests BDXTests ChipCryptoTests +ControllerDataModelTests CoreTests CredentialsTest -DataModelTests +ICDServerTests InetLayerTests MdnsTests MessagingLayerTests @@ -41,7 +43,6 @@ SetupPayloadTests SupportTests SystemLayerTests TestShell -TransportLayerTests UserDirectedCommissioningTests ``` diff --git a/docs/guides/python_chip_controller_advanced_usage.md b/docs/guides/python_chip_controller_advanced_usage.md index c3d3f55ddc5095..2eee5472fdda23 100644 --- a/docs/guides/python_chip_controller_advanced_usage.md +++ b/docs/guides/python_chip_controller_advanced_usage.md @@ -7,8 +7,9 @@ tool or Matter accessories on Linux.
    -- [Bluetooth LE virtualization on Linux](#bluetooth-le-virtualization-on-linux) -- [Debugging with gdb](#debugging-with-gdb) +- [Using Python CHIP Controller advanced features](#using-python-chip-controller-advanced-features) + - [Bluetooth LE virtualization on Linux](#bluetooth-le-virtualization-on-linux) + - [Debugging with gdb](#debugging-with-gdb)
    @@ -62,38 +63,38 @@ interfaces working as Bluetooth LE central and peripheral, respectively. TX bytes:3488 acl:95 sco:0 commands:110 errors:0 ``` -4. Run the Python CHIP Controller with Bluetooth LE adapter defined from a +4. Run the Python CHIP Controller REPL with Bluetooth LE adapter defined from a command line: - For example, add `--bluetooth-adapter=hci2` to use the virtual interface - `hci2` listed above. + For example, add `--ble-adapter=2` to use the virtual interface `hci2` + listed above. ``` - chip-device-ctrl --bluetooth-adapter=hci2 + chip-repl --ble-adapter=2 ```
    ## Debugging with gdb -You can run the chip-device-ctrl under GDB for debugging, however, since the -Matter core support library is a dynamic library, you cannot read the symbols -unless it is fully loaded. +You can run the chip-repl under GDB for debugging, however, since the Matter SDK +library is a dynamic library, you cannot read the symbols unless it is fully +loaded. The following block is a example debug session using GDB: ``` # GDB cannot run scripts directly -# so you need to run Python3 with the path of device controller -# Here, we use the feature from bash to get the path of chip-device-ctrl without typing it. -$ gdb --args python3 `which chip-device-ctrl` -GNU gdb (Ubuntu 10.1-2ubuntu2) 10.1.90.20210411-git -Copyright (C) 2021 Free Software Foundation, Inc. +# so you need to run Python3 with the path of device controller REPL +# Here, we use the feature from bash to get the path of chip-repl without typing it. +$ gdb --args python3 `which chip-repl` +GNU gdb (GDB) 14.2 +Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. -This GDB was configured as "aarch64-linux-gnu". +This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . @@ -103,6 +104,12 @@ Find the GDB manual and other documentation resources online at: For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from python3... + +This GDB supports auto-downloading debuginfo from the following URLs: + +Enable debuginfod for this session? (y or [n]) n +Debuginfod has been disabled. +To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. (No debugging symbols found in python3) (gdb) ``` @@ -119,38 +126,68 @@ library, let run the Matter device controller first. ``` (gdb) run -Starting program: /usr/bin/python3 /home/ubuntu/.local/bin/chip-device-ctrl +Starting program: /home/sag/projects/project-chip/connectedhomeip/out/venv/bin/python3 /home/sag/projects/project-chip/connectedhomeip/out/venv/bin/chip-repl [Thread debugging using libthread_db enabled] -Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". -CHIP:DIS: Init admin pairing table with server storage. -CHIP:IN: local node id is 0x000000000001b669 -CHIP:DL: MDNS failed to join multicast group on wpan0 for address type IPv4: Inet Error 1016 (0x000003F8): Address not found -CHIP:ZCL: Using ZAP configuration... -CHIP:ZCL: deactivate report event -CHIP:CTL: Getting operational keys -CHIP:CTL: Generating operational certificate for the controller -CHIP:CTL: Getting root certificate for the controller from the issuer -CHIP:CTL: Generating credentials -CHIP:CTL: Loaded credentials successfully -CHIP:DL: Platform main loop started. -Chip Device Controller Shell +Using host libthread_db library "/usr/lib/libthread_db.so.1". +Python 3.11.9 (main, Apr 29 2024, 11:59:58) [GCC 13.2.1 20240417] +Type 'copyright', 'credits' or 'license' for more information +IPython 8.24.0 -- An enhanced Interactive Python. Type '?' for help. +[1716395111.775747][364405:364405] CHIP:CTL: Setting attestation nonce to random value +[1716395111.776196][364405:364405] CHIP:CTL: Setting CSR nonce to random value +InitBLE 0[1716395111.776809][364405:364405] CHIP:DL: writing settings to file (/tmp/chip_counters.ini-T7hX27) +[1716395111.776854][364405:364405] CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini) +[1716395111.776860][364405:364405] CHIP:DL: NVS set: chip-counters/reboot-count = 9 (0x9) +[1716395111.777261][364405:364405] CHIP:DL: Got Ethernet interface: eno2 +[1716395111.777555][364405:364405] CHIP:DL: Found the primary Ethernet interface:eno2 +[1716395111.777868][364405:364405] CHIP:DL: Got WiFi interface: wlp7s0 +[1716395111.777877][364405:364405] CHIP:DL: Failed to reset WiFi statistic counts +────────────────────────────────────────────────────────────────────────────────────────────────────────── Matter REPL ────────────────────────────────────────────────────────────────────────────────────────────────────────── + + + + Welcome to the Matter Python REPL! + + For help, please type matterhelp() + + To get more information on a particular object/class, you can pass + that into matterhelp() as well. + + +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +2024-05-22 18:25:11 allenwind PersistentStorage[364405] WARNING Initializing persistent storage from file: /tmp/repl-storage.json +2024-05-22 18:25:11 allenwind PersistentStorage[364405] WARNING Loading configuration from /tmp/repl-storage.json... +2024-05-22 18:25:11 allenwind CertificateAuthorityManager[364405] WARNING Loading certificate authorities from storage... +2024-05-22 18:25:11 allenwind CertificateAuthority[364405] WARNING New CertificateAuthority at index 1 +2024-05-22 18:25:11 allenwind CertificateAuthority[364405] WARNING Loading fabric admins from storage... +2024-05-22 18:25:11 allenwind FabricAdmin[364405] WARNING New FabricAdmin: FabricId: 0x0000000000000001, VendorId = 0xFFF1 +2024-05-22 18:25:11 allenwind FabricAdmin[364405] WARNING Allocating new controller with CaIndex: 1, FabricId: 0x0000000000000001, NodeId: 0x000000000001B669, CatTags: [] + + +The following objects have been created: + certificateAuthorityManager: Manages a list of CertificateAuthority instances. + caList: The list of CertificateAuthority instances. + caList: A specific FabricAdmin object at index m for the nth CertificateAuthority instance. -chip-device-ctrl > + +Default CHIP Device Controller (NodeId: 112233): has been initialized to manage caList[0].adminList[0] (FabricId = 1), and is available as devCtrl + +In [1]: ``` -The prompt `chip-device-ctrl >` indicates that the Matter core library is loaded -by Python, you can browse the symbols in the Matter core library, setting -breakpoints on functions and many other functions provided by GDB. +The prompt `In [1]:` indicates that the Matter SDK library has been loaded and +initialized by the Python Controller REPL, you can browse the symbols in the +Matter core library, setting breakpoints on functions and many other functions +provided by GDB. -You can use `Ctrl-C` to send SIGINT to the controller anytime you want so you -can set breakpoints. +You can use `Ctrl-Z` to send `SIGTSTP` to the Python 3 REPL process anytime you +want so you can set breakpoints (unfortunately Ctrl+C seems to be captured by +the REPL). -> (`Ctrl-C` pressed here.) +In [1]: (`Ctrl-Z` pressed here.) ``` -Thread 1 "python3" received signal SIGINT, Interrupt. -0x0000fffff7db79ec in __GI___select (nfds=, readfds=0xffffffffe760, writefds=0x0, exceptfds=0x0, timeout=) at ../sysdeps/unix/sysv/linux/select.c:49 -49 ../sysdeps/unix/sysv/linux/select.c: No such file or directory. +Thread 1 "python3" received signal SIGTSTP, Stopped (user). +0x00007ffff7650ceb in kill () from /usr/lib/libc.so.6 (gdb) ``` @@ -159,40 +196,27 @@ command in GDB (`b` for short) ``` (gdb) b DeviceCommissioner::PairDevice -Breakpoint 1 at 0xfffff5b0f6b4 (2 locations) +Breakpoint 1 at 0x7fffed453943: DeviceCommissioner::PairDevice. (4 locations) (gdb) ``` -Type `continue` (`c` for short) to continue the device controller, you may need -another hit of `Enter` to see the prompt. +Type `signal SIGCONT` to continue the device controller after stopping it with +signal stop, you may need another hit of `Enter` to see the prompt. ``` -(gdb) c -Continuing. - -chip-device-ctrl > +(gdb) signal SIGCONT +Continuing with signal SIGCONT. +In [1]: ``` Let do pairing over IP to see the effect of the breakpoint we just set. ``` -chip-device-ctrl > connect -ip 192.168.50.5 20202021 1 -Device is assigned with nodeid = 1 - -Thread 1 "python3" hit Breakpoint 1, 0x0000fffff5b0f6b4 in chip::Controller::DeviceCommissioner::PairDevice(unsigned long, chip::RendezvousParameters&)@plt () - from /home/ubuntu/.local/lib/python3.9/site-packages/chip/_ChipDeviceCtrl.so -(gdb) -``` - -The `@plt` symbol means it is a symbol used by dynamic library loader, type `c` -(for `continue`) and it will break on the real function. +In [1]: devCtrl.CommissionWithCode("MT:-24J0AFN00KA0648G00", 1234) -``` -(gdb) c -Continuing. - -Thread 1 "python3" hit Breakpoint 1, chip::Controller::DeviceCommissioner::PairDevice (this=0xd28540, remoteDeviceId=1, params=...) at ../../src/controller/CHIPDeviceController.cpp:827 -827 { +Thread 5 "python3" hit Breakpoint 1.1, chip::Controller::DeviceCommissioner::PairDevice (this=0x7fffd8003a90, remoteDeviceId=1234, setUpCode=0x7ffff453d490 "MT:-24J0AFN00KA0648G00", params=..., + discoveryType=chip::Controller::DiscoveryType::kAll, resolutionData=...) at ../../src/controller/CHIPDeviceController.cpp:646 +646 { (gdb) ``` @@ -201,46 +225,44 @@ then you can use `bt` (for `backtrace`) to see the backtrace of the call stack. ``` (gdb) bt -#0 chip::Controller::DeviceCommissioner::PairDevice(unsigned long, chip::RendezvousParameters&) (this=0xd28540, remoteDeviceId=1, params=...) - at ../../src/controller/CHIPDeviceController.cpp:827 -#1 0x0000fffff5b3095c in pychip_DeviceController_ConnectIP(chip::Controller::DeviceCommissioner*, char const*, uint32_t, chip::NodeId) - (devCtrl=0xd28540, peerAddrStr=0xfffff467ace0 "192.168.50.5", setupPINCode=20202021, nodeid=1) at ../../src/controller/python/ChipDeviceController-ScriptBinding.cpp:234 -#2 0x0000fffff7639148 in () at /lib/aarch64-linux-gnu/libffi.so.8 -#3 0x0000fffff7638750 in () at /lib/aarch64-linux-gnu/libffi.so.8 -#4 0x0000fffff7665a44 in () at /usr/lib/python3.9/lib-dynload/_ctypes.cpython-39-aarch64-linux-gnu.so -#5 0x0000fffff7664c7c in () at /usr/lib/python3.9/lib-dynload/_ctypes.cpython-39-aarch64-linux-gnu.so -#6 0x00000000004a54f0 in _PyObject_MakeTpCall () -#7 0x000000000049cb10 in _PyEval_EvalFrameDefault () -#8 0x0000000000496d1c in () -#9 0x00000000004b1eb0 in _PyFunction_Vectorcall () -#10 0x0000000000498264 in _PyEval_EvalFrameDefault () -#11 0x00000000004b1cb8 in _PyFunction_Vectorcall () -#12 0x0000000000498418 in _PyEval_EvalFrameDefault () -#13 0x0000000000496d1c in () -#14 0x00000000004b1eb0 in _PyFunction_Vectorcall () -#15 0x0000000000498418 in _PyEval_EvalFrameDefault () -#16 0x00000000004b1cb8 in _PyFunction_Vectorcall () -#17 0x00000000004c6bc8 in () -#18 0x0000000000498264 in _PyEval_EvalFrameDefault () -#19 0x00000000004b1cb8 in _PyFunction_Vectorcall () -#20 0x0000000000498418 in _PyEval_EvalFrameDefault () -#21 0x00000000004966f8 in () -#22 0x00000000004b1f18 in _PyFunction_Vectorcall () -#23 0x0000000000498418 in _PyEval_EvalFrameDefault () -#24 0x00000000004b1cb8 in _PyFunction_Vectorcall () -#25 0x0000000000498264 in _PyEval_EvalFrameDefault () -#26 0x00000000004966f8 in () -#27 0x0000000000496490 in _PyEval_EvalCodeWithName () -#28 0x0000000000595b7c in PyEval_EvalCode () -#29 0x00000000005c6a5c in () -#30 0x00000000005c0a70 in () -#31 0x00000000005c69a8 in () -#32 0x00000000005c6148 in PyRun_SimpleFileExFlags () -#33 0x00000000005b60bc in Py_RunMain () -#34 0x0000000000585a08 in Py_BytesMain () -#35 0x0000fffff7d0c9d4 in __libc_start_main (main= - 0x5858fc <_start+60>, argc=2, argv=0xfffffffff498, init=, fini=, rtld_fini=, stack_end=) at ../csu/libc-start.c:332 -#36 0x00000000005858f8 in _start () +(gdb) bt +#0 chip::Controller::DeviceCommissioner::PairDevice + (this=0x7fffd8003a90, remoteDeviceId=1234, setUpCode=0x7fffef2555d0 "MT:-24J0AFN00KA0648G00", params=..., discoveryType=chip::Controller::DiscoveryType::kAll, resolutionData=...) + at ../../src/controller/CHIPDeviceController.cpp:646 +#1 0x00007fffed040825 in pychip_DeviceController_ConnectWithCode (devCtrl=0x7fffd8003a90, onboardingPayload=0x7fffef2555d0 "MT:-24J0AFN00KA0648G00", nodeid=1234, discoveryType=2 '\002') + at ../../src/controller/python/ChipDeviceController-ScriptBinding.cpp:395 +#2 0x00007ffff6ad5596 in ??? () at /usr/lib/libffi.so.8 +#3 0x00007ffff6ad200e in ??? () at /usr/lib/libffi.so.8 +#4 0x00007ffff6ad4bd3 in ffi_call () at /usr/lib/libffi.so.8 +#5 0x00007ffff6aeaffc in ??? () at /usr/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so +#6 0x00007ffff6aeb4b4 in ??? () at /usr/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so +#7 0x00007ffff794a618 in _PyObject_MakeTpCall () at /usr/lib/libpython3.11.so.1.0 +#8 0x00007ffff78f3d03 in _PyEval_EvalFrameDefault () at /usr/lib/libpython3.11.so.1.0 +#9 0x00007ffff7adef90 in ??? () at /usr/lib/libpython3.11.so.1.0 +#10 0x00007ffff79ebc0b in _PyObject_FastCallDictTstate () at /usr/lib/libpython3.11.so.1.0 +#11 0x00007ffff79ebe02 in _PyObject_Call_Prepend () at /usr/lib/libpython3.11.so.1.0 +#12 0x00007ffff79ec114 in ??? () at /usr/lib/libpython3.11.so.1.0 +#13 0x00007ffff794a618 in _PyObject_MakeTpCall () at /usr/lib/libpython3.11.so.1.0 +#14 0x00007ffff78f3d03 in _PyEval_EvalFrameDefault () at /usr/lib/libpython3.11.so.1.0 +#15 0x00007ffff7adef90 in ??? () at /usr/lib/libpython3.11.so.1.0 +#16 0x00007ffff7955b97 in PyObject_Vectorcall () at /usr/lib/libpython3.11.so.1.0 +#17 0x00007ffff6aea174 in ??? () at /usr/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so +#18 0x00007ffff6aea28c in ??? () at /usr/lib/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so +#19 0x00007ffff6ad5152 in ??? () at /usr/lib/libffi.so.8 +#20 0x00007ffff6ad57b8 in ??? () at /usr/lib/libffi.so.8 +#21 0x00007fffed5de848 in chip::DeviceLayer::Internal::GenericPlatformManagerImpl::_DispatchEvent + (this=0x7fffed88dc90 , event=0x7fffe6fffe30) at ../../src/include/platform/internal/GenericPlatformManagerImpl.ipp:304 +#22 0x00007fffed5dd90d in chip::DeviceLayer::PlatformManager::DispatchEvent (this=0x7fffed88dc80 , event=0x7fffe6fffe30) at ../../src/include/platform/PlatformManager.h:503 +#23 0x00007fffed5df45b in chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX::ProcessDeviceEvents + (this=0x7fffed88dc90 ) at ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:185 +#24 0x00007fffed5dee64 in chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX::_RunEventLoop (this=0x7fffed88dc90 ) +--Type for more, q to quit, c to continue without paging-- + at ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:227 +#25 0x00007fffed5dd888 in chip::DeviceLayer::PlatformManager::RunEventLoop (this=0x7fffed88dc80 ) at ../../src/include/platform/PlatformManager.h:403 +#26 0x00007fffed5df3fe in chip::DeviceLayer::Internal::GenericPlatformManagerImpl_POSIX::EventLoopTaskMain (arg=0x7fffed88dc90 ) + at ../../src/include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp:256 +#27 0x00007ffff76a6ded in ??? () at /usr/lib/libc.so.6 +#28 0x00007ffff772a0dc in ??? () at /usr/lib/libc.so.6 (gdb) ``` diff --git a/docs/guides/python_chip_controller_building.md b/docs/guides/python_chip_controller_building.md index c940f2c92575e7..8a7acc884ab2fa 100644 --- a/docs/guides/python_chip_controller_building.md +++ b/docs/guides/python_chip_controller_building.md @@ -1,25 +1,20 @@ -# Deprecation notice - -chip-device-ctrl is no longer maintained and should not be used. - -Matter-repl is the current python controller implementation. - # Working with Python CHIP Controller -The Python CHIP Controller is a tool that allows to commission a Matter device -into the network and to communicate with it using the Zigbee Cluster Library -(ZCL) messages. +The Python CHIP controller is a library that allows to create a Matter fabric +and commission Matter devices with it. -> The chip-device-ctrl tool will be deprecated, and will be replaced by -> chip-repl. Continue reading to see how to do the same thing with chip-repl. +The `chip-repl` is a REPl which sets up a Python CHIP Controller and allows to +explore the Python CHIP Controller API and communicate with devices from the +command line.
    - [Source files](#source-files) -- [Building Android CHIPTool](#building-and-installing) -- [Running the tool](#running-the-tool) -- [Using Python CHIP Controller for Matter accessory testing](#using-python-chip-controller-for-matter-accessory-testing) -- [List of commands](#list-of-commands) +- [Building Python CHIP Controller](#building-and-installing) +- [Running the CHIP REPL](#running-the-chip-repl) +- [Using Python CHIP Controller REPL for Matter accessory testing](#using-python-chip-controller-repl-for-matter-accessory-testing) +- [Example usage of the Python CHIP Controller REPL](#example-usage-of-the-python-chip-controller-repl) +- [Explore Clusters, Attributes and Commands](#explore-clusters-attributes-and-commands)
    @@ -85,35 +80,31 @@ To build and run the Python CHIP controller: scripts/build_python.sh -m platform -i separate ``` - > Note: To get more details about available build configurations, run the + > Note: This builds the Python CHIP Controller along with the CHIP REPL as + > Python wheels and installs it into a separate Python virtual environment. + > To get more details about available build configurations, run the > following command: `scripts/build_python.sh --help`
    -## Running the tool +## Running the CHIP REPL -1. Activate the Python virtual environment: +1. Activate the Python virtual environment with the Python CHIP Controller + installed: ``` source out/python_env/bin/activate ``` -2. Run the Python CHIP controller with root privileges, which is required to - obtain access to the Bluetooth interface: - - ``` - sudo out/python_env/bin/chip-device-ctrl - ``` - - You can also select the Bluetooth LE interface using command line argument: +2. Run the CHIP REPL to explore the API of the Python CHIP controller: ``` - sudo out/python_env/bin/chip-device-ctrl --bluetooth-adapter=hci2 + chip-repl ```
    -## Using Python CHIP Controller for Matter accessory testing +## Using Python CHIP Controller REPL for Matter accessory testing This section describes how to use Python CHIP controller to test the Matter accessory. Below steps depend on the application clusters that you implemented @@ -135,13 +126,14 @@ require physical trigger, for example pushing a button. Follow the documentation of the Matter accessory example to learn how Bluetooth LE advertising is enabled for the given example. -### Step 3: Discover Matter accessory device over Bluetooth LE +### Step 3: Discover commissionable Matter accessory device -An uncommissioned accessory device advertises over Bluetooth LE. Run the -following command to scan all advertised Matter devices: +An uncommissioned accessory device advertises over Bluetooth LE or via mDNS if +already on the network. Run the following command to scan all advertised Matter +devices: ``` -chip-device-ctrl > ble-scan +devCtrl.DiscoverCommissionableNodes() ``` ### Step 4: Set network pairing credentials @@ -177,11 +169,12 @@ network interface, such as Thread or Wi-Fi. datasets directly from the Thread Border Router, you might also use a different out-of-band method. -2. Set the previously obtained Active Operational Dataset as a hex-encoded value - using the following command: +2. Set the previously obtained Active Operational Dataset as a byte array using + the following command: ``` - chip-device-ctrl > set-pairing-thread-credential 0e080000000000010000000300001335060004001fffe002084fe76e9a8b5edaf50708fde46f999f0698e20510d47f5027a414ffeebaefa92285cc84fa030f4f70656e5468726561642d653439630102e49c0410b92f8c7fbb4f9f3e08492ee3915fbd2f0c0402a0fff8 + thread_dataset = bytes.fromhex("0e080000000000010000000300001335060004001fffe002084fe76e9a8b5edaf50708fde46f999f0698e20510d47f5027a414ffeebaefa92285cc84fa030f4f70656e5468726561642d653439630102e49c0410b92f8c7fbb4f9f3e08492ee3915fbd2f0c0402a0fff8") + devCtrl.SetThreadOperationalDataset(thread_dataset) ``` #### Setting Wi-Fi network credentials @@ -190,11 +183,9 @@ Assuming your Wi-Fi SSID is _TESTSSID_, and your Wi-Fi password is _P455W4RD_, set the credentials to the controller by executing the following command: ``` -chip-device-ctrl > set-pairing-wifi-credential TESTSSID P455W4RD +devCtrl.SetWiFiCredentials(, ) ``` -**REPL Command**: `devCtrl.SetWiFiCredentials(, )` - ### Step 5: Commission the Matter accessory device over Bluetooth LE The controller uses a 12-bit value called **discriminator** to discern between @@ -222,16 +213,26 @@ with the following assumptions for the Matter accessory device: - The temporary Node ID is _1234_ ``` -chip-device-ctrl > connect -ble 3840 20202021 1234 +devCtrl.ConnectBLE(3840, 20202021, 1234) ``` -**REPL Command:** -`devCtrl.ConnectBLE(, , )` - You can skip the last parameter, the Node ID, in the command. If you skip it, the controller will assign it randomly. In that case, note down the Node ID, because it is required later in the configuration process. +It is also possible to use the QR setup code instead. It typically is shown on +the terminal of the device as well. For example: + +``` +CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00] +``` + +Use the following command to commission the device with the QR code: + +``` +devCtrl.CommissionWithCode("MT:-24J0AFN00KA0648G00", 1234) +``` + After connecting the device over Bluetooth LE, the controller will go through the following stages: @@ -255,429 +256,155 @@ the following stages: finished and the Python CHIP controller is now using only the IPv6 traffic to reach the device. -### Step 6: Control application ZCL clusters. +### Step 6: Control application clusters. For the light bulb example, execute the following command to toggle the LED state: ``` -chip-device-ctrl > zcl OnOff Toggle 1234 1 0 +await devCtrl.SendCommand(1234, 1, Clusters.OnOff.Commands.Toggle()) ``` -**REPL Command:** -`await devCtrl.SendCommand(1234, 1, Clusters.OnOff.Commands.Toggle())` - To change the brightness of the LED, use the following command, with the level value somewhere between 0 and 255. ``` -chip-device-ctrl > zcl LevelControl MoveToLevel 1234 1 0 level=50 +commandToSend = LevelControl.Commands.MoveToLevel(level=50, transitionTime=Null, optionsMask=0, optionsOverride=0) +await devCtrl.SendCommand(1234, 1, commandToSend) ``` -**REPL Command:** -`await devCtrl.SendCommand(1234, 1, LevelControl.Commands.MoveToLevel(level=50, transitionTime=Null, optionsMask=0, optionsOverride=0))` - ### Step 7: Read basic information out of the accessory. Every Matter accessory device supports a Basic Information Cluster, which maintains collection of attributes that a controller can obtain from a device, -such as the vendor name, the product name, or software version. Use `zclread` -command to read those values from the device: +such as the vendor name, the product name, or software version. Use +`ReadAttribute()` command to read those values from the device: ``` -chip-device-ctrl > zclread BasicInformation VendorName 1234 1 0 -chip-device-ctrl > zclread BasicInformation ProductName 1234 1 0 -chip-device-ctrl > zclread BasicInformation SoftwareVersion 1234 1 0 +attributes = [ + (0, Clusters.BasicInformation.Attributes.VendorName), + (0, Clusters.BasicInformation.Attributes.ProductName), + (0, Clusters.BasicInformation.Attributes.SoftwareVersion), +] +await devCtrl.ReadAttribute(1234, attributes) ``` -**REPL Command:** -`await devCtrl.ReadAttribute(1234, [(1, Clusters.BasicInformation.Attributes.VendorName)])` - -> Use the `zcl ? BasicInformation` command to list all available commands for -> Basic Information Cluster. -> > In REPL, you can type `Clusters.BasicInformation.Attributes.` and then use the > TAB key.
    -## List of commands - -### `ble-adapter-print` +## Example usage of the Python CHIP Controller REPL -> BLE adapter operations is not yet supported in REPL +These section covers a few useful commands of the Python CHIP Controller along +with examples demonstrating how they can be called from the REPL. -Print the available Bluetooth adapters on device. Takes no arguments: - -``` -chip-device-ctrl > ble-adapter-print -2021-03-04 16:09:40,930 ChipBLEMgr INFO AdapterName: hci0 AdapterAddress: 00:AA:01:00:00:23 -``` +The +[CHIP Device Controller API documentation offer](https://project-chip.github.io/connectedhomeip-doc/testing/ChipDeviceCtrlAPI.html#chip-chipdevicectrl) +the full list of available commands. -### `ble-debug-log` - -> BLE adapter operations is not yet supported in REPL - -Enable the Bluetooth LE debug logs. - -``` -chip-device-ctrl > ble-debug-log 1 -``` - -### `ble-scan [-t ] [identifier]` - -> BLE adapter operations is not yet supported in REPL - -Start a scan action to search for valid CHIP devices over Bluetooth LE (for at -most _timeout_ seconds). Stop when the device is matching the identifier or the -counter times out. - -``` -chip-device-ctrl > ble-scan -2021-05-29 22:28:05,461 ChipBLEMgr INFO scanning started -2021-05-29 22:28:07,206 ChipBLEMgr INFO Name = ChipLight -2021-05-29 22:28:07,206 ChipBLEMgr INFO ID = f016e23d-0d00-35d5-93e7-588acdbc7e54 -2021-05-29 22:28:07,207 ChipBLEMgr INFO RSSI = -79 -2021-05-29 22:28:07,207 ChipBLEMgr INFO Address = E0:4D:84:3C:BB:C3 -2021-05-29 22:28:07,209 ChipBLEMgr INFO Pairing State = 0 -2021-05-29 22:28:07,209 ChipBLEMgr INFO Discriminator = 3840 -2021-05-29 22:28:07,209 ChipBLEMgr INFO Vendor Id = 9050 -2021-05-29 22:28:07,209 ChipBLEMgr INFO Product Id = 20044 -2021-05-29 22:28:07,210 ChipBLEMgr INFO Adv UUID = 0000fff6-0000-1000-8000-00805f9b34fb -2021-05-29 22:28:07,210 ChipBLEMgr INFO Adv Data = 00000f5a234c4e -2021-05-29 22:28:07,210 ChipBLEMgr INFO -2021-05-29 22:28:16,246 ChipBLEMgr INFO scanning stopped -``` - -### `set-pairing-thread-credential ` +### `SetThreadOperationalDataset()` Provides the controller with Thread network credentials that will be used in the device commissioning procedure to configure the device with a Thread interface. ``` -chip-device-ctrl > set-pairing-thread-credential 0e080000000000010000000300001335060004001fffe002084fe76e9a8b5edaf50708fde46f999f0698e20510d47f5027a414ffeebaefa92285cc84fa030f4f70656e5468726561642d653439630102e49c0410b92f8c7fbb4f9f3e08492ee3915fbd2f0c0402a0fff8 +thread_dataset = bytes.fromhex("0e080000000000010000000300001335060004001fffe002084fe76e9a8b5edaf50708fde46f999f0698e20510d47f5027a414ffeebaefa92285cc84fa030f4f70656e5468726561642d653439630102e49c0410b92f8c7fbb4f9f3e08492ee3915fbd2f0c0402a0fff8") +devCtrl.SetThreadOperationalDataset(thread_dataset) ``` -**REPL Commands:** -`devCtrl.SetThreadOperationalDataset(bytes.FromHex("0e080000000000010000000300001335060004001fffe002084fe76e9a8b5edaf50708fde46f999f0698e20510d47f5027a414ffeebaefa92285cc84fa030f4f70656e5468726561642d653439630102e49c0410b92f8c7fbb4f9f3e08492ee3915fbd2f0c0402a0fff8"))` - -### `set-pairing-wifi-credential ` +### `SetWiFiCredentials(: str, : str)` Provides the controller with Wi-Fi network credentials that will be used in the device commissioning procedure to configure the device with a Wi-Fi interface. ``` -chip-device-ctrl > set-pairing-wifi-credential TESTSSID P455W4RD +devCtrl.SetWiFiCredentials('TESTSSID', 'P455W4RD') ``` -**REPL Commands:** `devCtrl.SetWiFiCredentials('TESTSSID', 'P455W4RD')` - -### `connect -ip
    []` - -Do key exchange and establish a secure session between controller and device -using IP transport. - -The Node ID will be used by controller to distinguish multiple devices. This -does not match the spec and will be removed later. The nodeid will not be -persisted by controller / device. - -If no nodeid given, a random Node ID will be used. - -**REPL Commands:** -`devCtrl.CommissionIP(b'', , )` - -### `connect -ble []` - -Do key exchange and establish a secure session between controller and device -using Bluetooth LE transport. - -The Node ID will be used by controller to distinguish multiple devices. This -does not match the spec and will be removed later. The nodeid will not be -persisted by controller / device. - -If no nodeid given, a random Node ID will be used. - -**REPL Commands:** -`devCtrl.ConnectBLE(, , )` +### `CommissionWithCode(: str, : int, : DiscoveryType)` -### `close-session ` +Commission with the given nodeid from the setupPayload. setupPayload may be a QR +or the manual setup code. -If case there exists an open session (PASE or CASE) to the device with a given -Node ID, mark it as expired. - -**REPL Commands:** `devCtrl.CloseSession()` - -### `discover` - -> To be implemented in REPL - -Discover available Matter accessory devices: - -``` -chip-device-ctrl > discover -all ``` - -### `resolve ` - -> To be implemented in REPL - -Resolve DNS-SD name corresponding with the given Node ID and update address of -the node in the device controller: - -``` -chip-device-ctrl > resolve 1234 +devCtrl.CommissionWithCode("MT:-24J0AFN00KA0648G00", 1234) ``` -### `setup-payload generate [-v ] [-p ] [-cf ] [-dc ] [-dv ] [-ps ]` - -> To be implemented in REPL +### `SendCommand(: int, : int, Clusters..Commands.())` -Print the generated Onboarding Payload Contents in human-readable (Manual -Pairing Code) and machine-readable (QR Code) format: +Send a Matter command to the device. For example: +```python +commandToSend = Clusters.LevelControl.Commands.MoveWithOnOff(moveMode=1, rate=2, optionsMask=0, optionsOverride=0) +await devCtrl.SendCommand(1234, 1, commandToSend) ``` -chip-device-ctrl > setup-payload generate -v 9050 -p 65279 -cf 0 -dc 2 -dv 2976 -ps 34567890 -Manual pairing code: [26318621095] -SetupQRCode: [MT:YNJV7VSC00CMVH7SR00] -``` - -### `setup-payload parse-manual ` - -> To be implemented in REPL - -Print the commissioning information encoded in the Manual Pairing Code: - -``` -chip-device-ctrl > setup-payload parse-manual 34970112332 -Version: 0 -VendorID: 0 -ProductID: 0 -CommissioningFlow: 0 -RendezvousInformation: 0 -Discriminator: 3840 -SetUpPINCode: 20202021 -``` - -### `setup-payload parse-qr ` -> To be implemented in REPL - -Print the commissioning information encoded in the QR Code payload: +To see available arguments just create a command object without argument: ``` -chip-device-ctrl > setup-payload parse-qr "VP:vendorpayload%MT:W0GU2OTB00KA0648G00" -Version: 0 -VendorID: 9050 -ProductID: 20043 -CommissioningFlow: 0 -RendezvousInformation: 2 [BLE] -Discriminator: 3840 -SetUpPINCode: 20202021 +Clusters.LevelControl.Commands.MoveWithOnOff() ``` -### `zcl [arguments]` - -Send a ZCL command to the device. For example: +Shows which arguments are available: ``` -chip-device-ctrl > zcl LevelControl MoveWithOnOff 12344321 1 0 moveMode=1 rate=2 +MoveWithOnOff( +│ moveMode=0, +│ rate=Null, +│ optionsMask=0, +│ optionsOverride=0 +) ``` -**Format of arguments** +### `ReadAttribute(: int, [(: int, Clusters..Attributes.)])` -For any integer and char string (null terminated) types, just use `key=value`, -for example: `rate=2`, `string=123`, `string_2="123 456"` - -For byte string type, use `key=encoding:value`, currently, we support `str` and -`hex` encoding, the `str` encoding will encode a NULL terminated string. For -example, `networkId=hex:0123456789abcdef` (for -`[0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]`), `ssid=str:Test` (for -`['T', 'e', 's', 't', 0x00]`). - -For boolean type, use `key=True` or `key=False`. - -**REPL Commands:** +Read the value of an attribute. For example: ```python -# await devCtrl.SendCommand(, , Clusters..Commands.()) -# e.g. -await devCtrl.SendCommand(12344321, 1, Clusters.LevelControl.Commands.MoveWithOnOff(moveMode=1, rate=2, optionsMask=0, optionsOverride=0)) -``` - -### `zcl ?` - -List available clusters: - -``` -chip-device-ctrl > zcl ? -AccountLogin -ApplicationBasic -ApplicationLauncher -AudioOutput -BarrierControl -BasicInformation -Binding -BridgedDeviceBasicInformation -ColorControl -ContentLaunch -Descriptor -DoorLock -EthernetNetworkDiagnostics -FixedLabel -GeneralCommissioning -GeneralDiagnostics -GroupKeyManagement -Groups -Identify -KeypadInput -LevelControl -LowPower -MediaInput -MediaPlayback -NetworkCommissioning -OnOff -OperationalCredentials -PumpConfigurationAndControl -RelativeHumidityMeasurement -ScenesManagement -SoftwareDiagnostics -Switch -Channel -TargetNavigator -TemperatureMeasurement -TestCluster -Thermostat -TrustedRootCertificates -WakeOnLan -WindowCovering -``` - -**REPL Commands** - -Type `Clusters.` and hit TAB - -### `zcl ? ` - -List available commands in cluster. For example, for _Basic Information_ -cluster: - -``` -chip-device-ctrl > zcl ? BasicInformation -DataModelRevision -VendorName -VendorID -ProductName -ProductID -UserLabel -Location -HardwareVersion -HardwareVersionString -SoftwareVersion -SoftwareVersionString -ManufacturingDate -PartNumber -ProductURL -ProductLabel -SerialNumber -LocalConfigDisabled -ClusterRevision -``` - -**REPL Commands** - -Type `Clusters.(cluster name).Commands.` and hit TAB - -### `zclread [arguments]` - -Read the value of ZCL attribute. For example: - -``` -chip-device-ctrl > zclread BasicInformation VendorName 1234 1 0 -``` - -**REPL Commands** - -```python -# devCtrl.ReadAttribute(, [(, Clusters..Attributes.)]) -# e.g. -await devCtrl.ReadAttribute(1234, [(1, Clusters.BasicInformation.Attributes.VendorName)]) -``` - -### `zclwrite ` - -Write the value to a ZCL attribute. For example: - -``` -chip-device-ctrl > zclwrite TestCluster Int8u 1 1 0 1 -chip-device-ctrl > zclwrite TestCluster Boolean 1 1 0 True -chip-device-ctrl > zclwrite TestCluster OctetString 1 1 0 str:123123 -chip-device-ctrl > zclwrite TestCluster CharString 1 1 0 233233 +await devCtrl.ReadAttribute(1234, [(0, Clusters.BasicInformation.Attributes.VendorName)]) ``` -Note: The format of the value is the same as the format of argument values for -ZCL cluster commands. +### `WriteAttribute(: int, [(: int, Clusters..Attributes.(value=))])` -**REPL Commands** +Write a value to an attribute. For example: ```python -# devCtrl.WriteAttribute(, [(, Clusters..Attributes.(value=))]) -# e.g. -await devCtrl.WriteAttribute(1, [(1, Clusters.UnitTesting.Attributes.Int8u(value=1))]) -await devCtrl.WriteAttribute(1, [(1, Clusters.UnitTesting.Attributes.Boolean(value=True))]) -await devCtrl.WriteAttribute(1, [(1, Clusters.UnitTesting.Attributes.OctetString(value=b'123123\x00'))]) -await devCtrl.WriteAttribute(1, [(1, Clusters.UnitTesting.Attributes.CharString(value='233233'))]) +await devCtrl.WriteAttribute(1234, [(1, Clusters.UnitTesting.Attributes.Int8u(value=1))]) +await devCtrl.WriteAttribute(1234, [(1, Clusters.UnitTesting.Attributes.Boolean(value=True))]) +await devCtrl.WriteAttribute(1234, [(1, Clusters.UnitTesting.Attributes.OctetString(value=b'123123\x00'))]) +await devCtrl.WriteAttribute(1234, [(1, Clusters.UnitTesting.Attributes.CharString(value='233233'))]) ``` -### `zclsubscribe ` +### `ReadAttribute(: int, [(: int, Clusters..Attributes.)], reportInterval=(: int, : int))` -Configure ZCL attribute reporting settings. For example: - -``` -chip-device-ctrl > zclsubscribe OccupancySensing Occupancy 1234 1 10 20 -``` - -**REPL Commands** +Configure Matter attribute reporting settings. For example: ```python -# devCtrl.ReadAttribute(, [(, Clusters..Attributes.)], reportInterval=(, )) -# e.g. -await devCtrl.ReadAttribute(1, [(1, Clusters.OccupancySensing.Attributes.Occupancy)], reportInterval=(10, 20)) +await devCtrl.ReadAttribute(1234, [(1, Clusters.OccupancySensing.Attributes.Occupancy)], reportInterval=(10, 20)) ``` -### `zclsubscribe -shutdown ` - -Shutdown an existing attribute subscription. +To shutdown an existing attribute subscription use the `Shutdown()` function on +the returned subscription object: -``` -chip-device-ctrl > zclsubscribe -shutdown 0xdeadbeefcafe +```python +sub = await devCtrl.ReadAttribute(1234, [(1, Clusters.OccupancySensing.Attributes.Occupancy)], reportInterval=(10, 20)) +sub.Shutdown() ``` -The subscription id can be obtained from previous subscription messages: +## Explore Clusters, Attributes and Commands -``` -chip-device-ctrl > zclsubscribe OnOff OnOff 1 1 10 20 -(omitted messages) -[1633922898.965587][1117858:1117866] CHIP:DMG: SubscribeResponse = -[1633922898.965599][1117858:1117866] CHIP:DMG: { -[1633922898.965610][1117858:1117866] CHIP:DMG: SubscriptionId = 0xdeadbeefcafe, -[1633922898.965622][1117858:1117866] CHIP:DMG: MinIntervalFloorSeconds = 0xa, -[1633922898.965633][1117858:1117866] CHIP:DMG: MaxIntervalCeilingSeconds = 0x14, -[1633922898.965644][1117858:1117866] CHIP:DMG: } -[1633922898.965662][1117858:1117866] CHIP:ZCL: SubscribeResponse: -[1633922898.965673][1117858:1117866] CHIP:ZCL: SubscriptionId: 0xdeadbeefcafe -[1633922898.965683][1117858:1117866] CHIP:ZCL: ApplicationIdentifier: 0 -[1633922898.965694][1117858:1117866] CHIP:ZCL: status: EMBER_ZCL_STATUS_SUCCESS (0x00) -[1633922898.965709][1117858:1117866] CHIP:ZCL: attributeValue: false -(omitted messages) -``` +In the Python REPL the Clusters and Attributes are classes. The `Clusters` +module contains all clusters. Tab completion can be used to explore available +clusters, attributes and commands. -The subscription id is `0xdeadbeefcafe` in this case +For example, to get a list of Clusters, type `Clusters.` and hit tab. Continue +to hit tab to cycle through the available Clusters. Pressing return will select +the Cluster. -**REPL Commands** +To explore Attributes, use the same technique but with the Attributes sub-class +of the Clusters class, for example, type `Clusters.(cluster name).Attributes.` +and hit tab. -```python -# SubscriptionTransaction.Shutdown() -# e.g. -sub = await devCtrl.ReadAttribute(1, [(1, Clusters.OccupancySensing.Attributes.Occupancy)], reportInterval=(10, 20)) -sub.Shutdown() -``` +The same is true for Commands, use the Commands sub-class. type +`Clusters.(cluster name).Commands.` and hit tab. diff --git a/docs/guides/silabs_cli_guide.md b/docs/guides/silabs_cli_guide.md index 8a368f093cfd38..5a795399217487 100644 --- a/docs/guides/silabs_cli_guide.md +++ b/docs/guides/silabs_cli_guide.md @@ -197,8 +197,6 @@ OTA commands ```bash matterCli> ota query Query for a new image. Usage: ota query - apply Apply the current update. Usage: ota apply - notify Notify the new image has been applied. Usage: ota notify state Gets state of a current image update process. Usage: ota state progress Gets progress of a current image update process. Usage: ota progress ``` diff --git a/docs/guides/simulated_device_linux.md b/docs/guides/simulated_device_linux.md index 81d36c90347115..db7e6bc4ef55ad 100644 --- a/docs/guides/simulated_device_linux.md +++ b/docs/guides/simulated_device_linux.md @@ -61,7 +61,7 @@ Now that the building is completed there is a `chip-app1` binary created. This binary can be executed on a linux os with test commands. ``` -./scripts/tests/yaml/runner.py [TEST NAME] app1 +./scripts/tests/chipyaml/runner.py [TEST NAME] app1 ``` ## Interacting with the simulated app diff --git a/docs/guides/ti/images/cc13x2_memmap.png b/docs/guides/ti/images/cc13x2_memmap.png deleted file mode 100644 index a89aee7837e3aa..00000000000000 Binary files a/docs/guides/ti/images/cc13x2_memmap.png and /dev/null differ diff --git a/docs/guides/ti/matter_cc2674_migration.md b/docs/guides/ti/matter-migration-guide/matter_cc2674_migration.md similarity index 96% rename from docs/guides/ti/matter_cc2674_migration.md rename to docs/guides/ti/matter-migration-guide/matter_cc2674_migration.md index 994954d6ae7a53..a6081d9c9a73de 100644 --- a/docs/guides/ti/matter_cc2674_migration.md +++ b/docs/guides/ti/matter-migration-guide/matter_cc2674_migration.md @@ -50,9 +50,9 @@ The GPIO pin values for SPI will need to be adjusted based on your design. 4. Select _Board_ as _None_ and _Device_ as _`CC2674P10RGZ`_, Unselect _`Lock PinMux`_, and click _Confirm_. 5. To fix errors, make the following module changes: - - _RF Design_ and _RF Stacks -> BLE -> Radio_: click on _accepting the - current value_, which should be _`LP_CC2674P10_RGZ`_ in the drop down menu - for _Based On RF Design_ + - _RF Design_ and _RF Stacks -> Bluetooth LE -> Radio_: click on _accepting + the current value_, which should be _`LP_CC2674P10_RGZ`_ in the drop down + menu for _Based On RF Design_ - _TI DEVICES -> Device Configuration_: Clear _`XOSC Cap Array Modification`_ - _TI DRIVERS -> RF_: Set _Global Event Mask_ as _None_ and _No. of Antenna diff --git a/docs/guides/ti/matter-syscfg/getting-started.md b/docs/guides/ti/matter-syscfg/getting-started.md new file mode 100644 index 00000000000000..af90b79c7c87f6 --- /dev/null +++ b/docs/guides/ti/matter-syscfg/getting-started.md @@ -0,0 +1,62 @@ +# Get started with SysConfig + +System Configuration Tool (SysConfig) is a graphical interface for configuring +your project. Configuration files, C source files and header files are generated +based on the parameters configured in the SysConfig dashboard. + +SysConfig should be used as a standalone tool for script-based builds (such as +for Matter). + +The document will help for getting started in tailoring the `syscfg` file to +your application needs. + +## Using Stand-alone SysConfig + +You can find the standalone SysConfig tool on the +[SysConfig Standalone Installer Download Page](https://www.ti.com/tool/SYSCONFIG). + +The location of the Matter `syscfg` file is located here: +`/examples//cc13x4_26x4/chip.syscfg` For example, on the github web: +`https://github.com/project-chip/connectedhomeip/blob/master/examples/lock-app/cc13x4_26x4/chip.syscfg` +The local file in your cloned repository should be used. + +This file is used by Matter build scripts, when it invokes SysConfig CLI. In +order to edit the file for your custom application configurations, you'll need +to open the file with the SysConfig GUI. Before doing so, you should add the +following line above the `/* Modules */` comment: + +``` +// @cliArgs --product /.metadata/product.json --board /ti/boards/LP_EM_CC1354P10_6 --rtos freertos +``` + +As an example, after adding the necessary ``, it would look like: + +``` +// @cliArgs --product /home/Documents/repos/connectedhomeip/third_party/ti_simplelink_sdk/repo_cc13xx_cc26xx/.metadata/product.json --board /ti/boards/LP_EM_CC1354P10_6 --rtos freertos +``` + +If the file is not found, then you may need to first initialize the submodules: + +``` +git submodule update --init +``` + +Now you can open the file in SysConfig GUI. Once you are done, remove the +`@cliArgs` line then save the file. Now the Matter build scripts will use the +updated `.syscfg` file. + +## Viewing SysConfig Output + +To preview the code to be generated reference the `Generated Files` image, the +button at the top of the `Configuration` pane you will find a list of Generated +Files. After selecting a file you will be able, in real-time, to identify how +the changes in the GUI affect the generated files. This will help you review the +relationship between the GUI and the code. + +
    + Generated Files +
    Generated Files
    +
    + +Whenever you re-build the project, SysConfig will re-generate the files. Because +of this, any changes made directly in the generated files will be overwritten. diff --git a/docs/guides/ti/matter-syscfg/images/board_view.png b/docs/guides/ti/matter-syscfg/images/board_view.png new file mode 100644 index 00000000000000..4067a24495f843 Binary files /dev/null and b/docs/guides/ti/matter-syscfg/images/board_view.png differ diff --git a/docs/guides/ti/matter-syscfg/images/generated_files_ble.png b/docs/guides/ti/matter-syscfg/images/generated_files_ble.png new file mode 100644 index 00000000000000..39cf576cac92b4 Binary files /dev/null and b/docs/guides/ti/matter-syscfg/images/generated_files_ble.png differ diff --git a/docs/guides/ti/matter-syscfg/images/hardware_view.png b/docs/guides/ti/matter-syscfg/images/hardware_view.png new file mode 100644 index 00000000000000..7ba5dd2fed8da6 Binary files /dev/null and b/docs/guides/ti/matter-syscfg/images/hardware_view.png differ diff --git a/docs/guides/ti/matter-syscfg/images/reserve-gpio.png b/docs/guides/ti/matter-syscfg/images/reserve-gpio.png new file mode 100644 index 00000000000000..5d769306f6d731 Binary files /dev/null and b/docs/guides/ti/matter-syscfg/images/reserve-gpio.png differ diff --git a/docs/guides/ti/matter-syscfg/images/reserve-peripheral-panel.png b/docs/guides/ti/matter-syscfg/images/reserve-peripheral-panel.png new file mode 100644 index 00000000000000..1aee0be975db2e Binary files /dev/null and b/docs/guides/ti/matter-syscfg/images/reserve-peripheral-panel.png differ diff --git a/docs/guides/ti/matter-syscfg/images/show_generated_files_tab.png b/docs/guides/ti/matter-syscfg/images/show_generated_files_tab.png new file mode 100644 index 00000000000000..19f09e419f4336 Binary files /dev/null and b/docs/guides/ti/matter-syscfg/images/show_generated_files_tab.png differ diff --git a/docs/guides/ti/matter-syscfg/sysconfig-board.md b/docs/guides/ti/matter-syscfg/sysconfig-board.md new file mode 100644 index 00000000000000..371b5e00b5ea3c --- /dev/null +++ b/docs/guides/ti/matter-syscfg/sysconfig-board.md @@ -0,0 +1,69 @@ +# Configure The Board Files with SysConfig + +The board view shows you what pins are available on your board, and what +peripherals are assigned to what pins. Hover over each pin for more information. + +
    + +
    + +Enabled and configured peripherals are displayed with green symbols. To add a +new peripheral, press the plus sign next to the peripheral type. The \"Show +generated files\" tab lets you see the files generated based on SysConfig. +Generated files are dynamically updated every time you make a change in +SysConfig. When you build your project, the generated files are exported into +the output folder of your project. + +
    + +
    + +## Reserve Peripherals + +Certain use cases may require preventing SysConfig from generating the +configuration of specific peripherals. + +Examples of use cases requiring to reserve peripherals are: + +- dynamic re-configuration of a peripheral +- leveraging the Sensor Controller (on devices enabling it) +- already handling certain peripherals configuration +- with hardware constraints preventing to use certain peripherals (typically + `GPIOs`) +- peripherals reserved for future use + +Below are the steps required to utilize the Reserve Peripherals feature. + +1. Open the `.syscfg` file using the SysConfig GUI + +2. Open the panel \"Reserve Peripherals\" + +
    + +
    + +3. Reserve the resources + + Reserve a peripheral using SysConfig. This image shows how to reserve `DIO` + 15 + +
    + +
    + +SysConfig ensures no resource conflict occurs. In case no solution can be found, +an error is raised. + +## Hardware View + +The Hardware view may be used to add software modules for supporting hardware +resources on EVMs or LaunchPads. The same capability could be done in the +Software view by adding a Hardware. However the Hardware view provides a +hardware-first perspective to show which software could be used with hardware +resources. + +Sysconfig Hardware View: + +
    + +
    diff --git a/docs/guides/ti/matter-users-guide/enabling_icd_on_ti_devices.md b/docs/guides/ti/matter-users-guide/enabling_icd_on_ti_devices.md new file mode 100644 index 00000000000000..2603343ac0c26c --- /dev/null +++ b/docs/guides/ti/matter-users-guide/enabling_icd_on_ti_devices.md @@ -0,0 +1,59 @@ +# Configuring Intermittently Connected Devices on TI SimpleLink CC13x4_CC26x4 Platforms + +## Overview + +Intermittently Connected Devices are devices in a network that do not always +need to be active. Matter has defined a cluster that helps capture this +behavior; this configuration is ideal for devices that need to operate with low +power consumption or do not have a need to always be on the network. Matter +examples on the TI CC13x4_CC26x4 platform can be configured to act as ICDs. + +## Platform Code Changes + +To configure a TI example as an ICD, open up the `args.gni` file of the example +and set the following parameter to true: + +``` +chip_enable_icd_server = true +``` + +TI examples have only been tested with the ICD Server configuration. To enable +the client configuration, set `chip_enable_icd_client` to true. + +Persistent subscriptions allow devices to attempt resuming existing +subscriptions following a device reset. To enable persistent subscriptions, set +the following parameter to true: + +``` +chip_persist_subscriptions = true +``` + +Subscription timeout resumption allows devices to attempt re-establishing +subscriptions that may have expired. This feature is disabled out of box. + +In addition, various ICD parameters such as idle/active mode duration, active +mode threshold, and polling intervals can be configured in +`src/platform/cc13xx_26xx/cc13x4_26x4/CHIPPlatformConfig.h` + +``` +#define CHIP_CONFIG_ICD_ACTIVE_MODE_DURATION_MS 1000 +#define CHIP_CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS 500 +#define CHIP_CONFIG_ICD_IDLE_MODE_DURATION_SEC 300 +#define CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL chip::System::Clock::Milliseconds32(5000) +#define CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL chip::System::Clock::Milliseconds32(100) +``` + +## ZAP File Changes + +Open up the ZAP file (in `examples//-common`) for +the example being configured as an ICD. Add the ICD Management Cluster for +Endpoint 0. + +Open up the .matter file (in `examples//-common`) +corresponding to the example and add in the ICDManagement cluster. + +In addition, each endpoint has a list of clusters that it supports. Add the +ICDManagement cluster to this list. + +The lock-app example's .matter file can be used as a reference. These additions +allow the ICDManagement cluster's callbacks to be accessed. diff --git a/docs/guides/ti/images/cc13x4_memmap.png b/docs/guides/ti/matter-users-guide/images/cc13x4_memmap.png similarity index 100% rename from docs/guides/ti/images/cc13x4_memmap.png rename to docs/guides/ti/matter-users-guide/images/cc13x4_memmap.png diff --git a/docs/guides/ti/images/factory_data_overview.png b/docs/guides/ti/matter-users-guide/images/factory_data_overview.png similarity index 100% rename from docs/guides/ti/images/factory_data_overview.png rename to docs/guides/ti/matter-users-guide/images/factory_data_overview.png diff --git a/docs/guides/ti/matter-users-guide/ti_factory_data_user_guide.md b/docs/guides/ti/matter-users-guide/ti_factory_data_user_guide.md new file mode 100644 index 00000000000000..4081b0239cda31 --- /dev/null +++ b/docs/guides/ti/matter-users-guide/ti_factory_data_user_guide.md @@ -0,0 +1,115 @@ +# Texas Instruments Matter Factory Data Programming User Guide + +This document describes how to use the factory data programming feature for +Matter example applications from Texas Instruments. + +## Background + +The Matter specification lists various information elements that are programmed +at the factory. These values do not change and some are unique per device. This +feature enables customers developing Matter products on TI devices to program +this data and use this as a starting point towards developing their factory +programming infrastructure for their Matter devices. + +## Solution Overview: + +TI Matter examples allow the use of factory data in the following two ways: + +- **Example Out of Box Factory Data** : Use TI example DAC values to get + started. This is intended to be used during development. +- **Custom factory data** : Allows users to configure custom factory data via + a JSON file. The custom values are then processed by a script provided by TI + and merged with the Matter application to create a binary that can be + flashed on to devices. + +### Solution Block Diagram + +![Block Diagram](images/factory_data_overview.png) + +Each element is described in more detail below: + +1. Factory Data JSON: This file is located at src/platform/cc13xx_26xx. + Developers can configure this per device. Elements in this file are from the + specification. +2. Matter Application with dummy factory data: Any TI Matter example application +3. MCUBoot: MCUBoot image used for OTA. This is built with the Matter + application and does not require additional build steps from developers. +4. create_factory_data.py: Processes a factory data JSON file and generates a + hex file with the unique factory data values configured in the JSON file. +5. factory_data_trim.py: When using the custom factory data option, this script + removes the dummy factory data which is required to be able to successfully + compile the application. +6. `oad`\_and_factory_data_merge_tool.py: Merges the factory data hex, Matter + application without factory data and MCUBoot image to generate a functional + hex that can be programmed onto the device. + +## Flash memory layout + +![Memory Layout 2](images/cc13x4_memmap.png) + +## How to use + +Out of box factory data location is configured to be on second to last page of +flash. For CC13x4_CC26x4, the starting address is `0xFE800`. This can be +configured in the linker file. + +To configure: + +1. Linker file: Set the start address for factory data in the linker file being + used by the application + +``` +FLASH_FACTORY_DATA (R) : ORIGIN = 0x000fe800, LENGTH = 0x00000900 +``` + +``` +/* Define base address for the DAC arrays and struct */ + PROVIDE (_factory_data_base_address = + DEFINED(_factory_data_base_address) ? _factory_data_base_address : 0xFE800); +``` + +2. create_factory_data.py: Set the address of the start of the factory data + elements. Refer to the comments in the script. + +``` + # there are 17 elements, each element will need 8 bytes in the struct + # 4 for length of the element, and 4 for the pointer to the element + # factory data starts at 0xFE800, so the elements will + # start 136 bytes after the start address + factory_data_dict = json.load(args.factory_data_json_file[0]) + factory_data_schema = json.load(args.factory_data_schema[0]) + + validate(factory_data_dict, factory_data_schema) + factory_data = factory_data_dict['elements'] + + struct_idx = 0 + values_idx = 0 + value_address = 0xFE888 +``` + +``` + subprocess.call(['objcopy', 'temp.bin','--input-target','binary','--output-target', 'ihex', args.factory_data_hex_file, '--change-addresses=0xfe800']) +``` + +3. In the example's args.gni file, set 'custom_factory_data' to true + +It is recommended to keep 2 dedicated pages for CC13x4_CC26x4 for factory data. + +### Formatting certs and keys for JSON file + +To format the DAC, private key and PAI as hex strings as shown in the Factory +Data JSON file, use the chip-cert tool located at src/tools/chip-cert and run +the _convert-cert_ command, and list -X, or X.509 DER hex encoded format, as the +output format. These strings can then be copied into the JSON file. + +The SPAKE parameters should be converted from base-64 to hex as well before +being copied into the JSON file. + +### Creating images + +The example application can be built using the instructions in the example's +README. The factory data from the JSON file will be formatted into a hex file +that will then be merged into the final executable. The final executable will be +named _{example-application}-mcuboot.hex_ for CC13x4, and the factory data that +was inputted into the JSON file will be named +_{example-application}-factory-data.hex_. diff --git a/docs/guides/ti/matter-users-guide/ti_openthread_library_usage.md b/docs/guides/ti/matter-users-guide/ti_openthread_library_usage.md new file mode 100644 index 00000000000000..d6412c729d69fa --- /dev/null +++ b/docs/guides/ti/matter-users-guide/ti_openthread_library_usage.md @@ -0,0 +1,113 @@ +# Configuring OpenThread libraries on TI CC13x4_CC26x4 Platforms + +## Overview + +TI Matter example applications provide configuration options for how Thread code +is included in the build. Thread code can be included in as: + +1. Thread certified library optimized for Matter (recommended for development + and production) +2. Full Source (can be used for development) +3. Custom option where customers can update the Thread config file to change the + included OpenThread feature set + +The library builds have been optimized for Matter to disable features such as +Thread Joiner capability in order to save on Flash/RAM usage. Refer to the +`ti_matter_production_certification.md` to get the cert ID for your Matter +certification application when using the certified Thread libraries from TI. + +Build arguments have been added to enable Matter applications to link against +certified OpenThread FTD/MTD libraries or custom user libraries. + +## Platform Code Changes + +To configure a TI example to utilize either an OpenThread source or library +build, open up the `args.gni` file of the example: + +To configure the device as an FTD or MTD, set following parameter to either true +or false respectively. + +``` +chip_openthread_ftd = true +``` + +- **TI Certified OpenThread Library**: + + - Typically this is used for development. + + 1. `ot_ti_lib_dir` Is set to an empty string + + ``` + ot_ti_lib_dir="" + ``` + + 2. `chip_openthread_target` Points to the TI certified library dependency + + ``` + chip_openthread_target = "${chip_root}/third_party/openthread/platforms/ti:ot-ti-cert" + ``` + + 3. `openthread_external_platform` Points to the OpenThread build dependency + ``` + `openthread_external_platform="${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti"` + ``` + +- **OpenThread Library From Source**: + + 1. `ot_ti_lib_dir` Is set to an empty string + + ``` + ot_ti_lib_dir="" + ``` + + 2. `chip_openthread_target` Is set to an empty string + + ``` + chip_openthread_target = "" + ``` + + 3. `openthread_external_platform` Points to the OpenThread build dependency + ``` + openthread_external_platform="${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti" + ``` + +- **Custom OpenThread Library**: + + - The custom OpenThread library is used to implement extra features, or + when modifying the stack in anyway. + + 1. `ot_ti_lib_dir` Points to a library directory containing a custom + `libopenthread-ftd/mtd` variant + + ``` + ot_ti_lib_dir="${chip_root}/CUSTOM_LIB_DIR_PATH/" + ``` + + 2. `chip_openthread_target` Is set to an empty string + + ``` + chip_openthread_target = "" + ``` + + 3. `openthread_external_platform` Points to the OpenThread build dependency + + ``` + openthread_external_platform="${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti" + ``` + +The TI OpenThread certified library for the MTD/FTD configurations is based on +the following header file: + +- `third_party/openthread/ot-ti/src/openthread-core-cc13xx_cc26xx-config-matter.h` + +In order to update the OpenThread configuration when building from source or a +custom library, users may adjust features via the following configuration header +file: + +- `${chip_root}/examples/platform/cc13x4_26x4/project_include/OpenThreadConfig.h` + +Please refer to TI's standalone OpenThread Application build process for +instructions on acquiring FTD/MTD libraries as they are automatically built when +generating the standalone applications. + +- `third_party/openthread/ot-ti/README.md` diff --git a/docs/guides/ti/ti_factory_data_user_guide.md b/docs/guides/ti/ti_factory_data_user_guide.md deleted file mode 100644 index c8168779d17119..00000000000000 --- a/docs/guides/ti/ti_factory_data_user_guide.md +++ /dev/null @@ -1,127 +0,0 @@ -# Texas Instruments Matter Factory Data Programming User Guide - -This document describes how to use the factory data programming feature for -Matter example applications from Texas Instruments. - -## Background - -The Matter specification lists various information elements that are programmed -at the factory. These values do not change and some are unique per device. This -feature enables customers developing Matter products on TI devices to program -this data and use this as a starting point towards developing their factory -programming infrastructure for their Matter devices. - -## Solution Overview: - -TI Matter examples allow the use of factory data in the following two ways: - -- **Example Out of Box Factory Data** : Use TI example DAC values to get - started. This is intended to be used when just starting with Matter or - during development until customer or product specific data is not required. -- **Custom factory data** : Allows users to configure custom factory data via - a JSON file. The custom values are then processed by a script provided by TI - and merged with the Matter application to create a binary that can be - flashed on to devices. - -### Solution Block Diagram - -![Block Diagram](images/factory_data_overview.png) - -Each element is described in more detail below: - -1. Factory Data JSON: This file is located at src/platform/cc13xx_26xx. - Developers can configure this per device. Elements in this file are from the - specification. -2. Matter Application with dummy factory data: Any TI Matter example application -3. `BIM`/MCUBoot: Boot Image Manager/MCUBoot image used for OTA. This is built - with the Matter application and does not require additional build steps from - developers. -4. create_factory_data.py: Processes a factory data JSON file and generates a - hex file with the unique factory data values configured in the JSON file. -5. factory_data_trim.py: When using the custom factory data option, this script - removes the dummy factory data which is required to be able to successfully - compile the application. -6. `oad`\_and_factory_data_merge_tool.py: Merges the factory data hex, Matter - application without factory data and `BIM`/MCUBoot image to generate a - functional hex that can be programmed onto the device. - -## Flash memory layout - -![Memory Layout 1](images/cc13x2_memmap.png) - -![Memory Layout 2](images/cc13x4_memmap.png) - -## How to use - -Out of box factory data location is configured to be on second last page of -flash. For CC13x2, the starting address is `0xAC000`. For CC13x4, the starting -address is `0xFE800`. This can be configured in the linker file. - -To configure: - -1. Linker file: Set the start address for factory data in the linker file being - used by the application - -``` -FLASH_FACTORY_DATA (R) : ORIGIN = 0x000ac000, LENGTH = 0x00000900 -``` - -``` -/* Define base address for the DAC arrays and struct */ - PROVIDE (_factory_data_base_address = - DEFINED(_factory_data_base_address) ? _factory_data_base_address : 0xAC000); -``` - -2. create_factory_data.py: Set the address of the start of the factory data - elements. Refer to the comments in the script. - -``` - # there are 17 elements, each element will need 8 bytes in the struct - # 4 for length of the element, and 4 for the pointer to the element - # factory data starts at 0xAC000 or 0xFE800, so the elements will - # start 136 bytes after the start address - factory_data_dict = json.load(args.factory_data_json_file[0]) - factory_data_schema = json.load(args.factory_data_schema[0]) - - validate(factory_data_dict, factory_data_schema) - factory_data = factory_data_dict['elements'] - - struct_idx = 0 - values_idx = 0 - if device_family == 'cc13x2_26x2': - value_address = 0xAC088 - else: - value_address = 0xFE888 -``` - -``` - if device_family == 'cc13x2_26x2': - subprocess.call(['objcopy', 'temp.bin','--input-target','binary','--output-target', 'ihex', args.factory_data_hex_file, '--change-addresses=0xac000']) - else: - subprocess.call(['objcopy', 'temp.bin','--input-target','binary','--output-target', 'ihex', args.factory_data_hex_file, '--change-addresses=0xfe800']) -``` - -3. In the example's args.gni file, set 'custom_factory_data' to true - -It is recommended to keep a dedicated page (2 pages for CC13x4) for factory -data. - -### Formatting certs and keys for JSON file - -To format the DAC, private key and PAI as hex strings as shown in the Factory -Data JSON file, use the chip-cert tool located at src/tools/chip-cert and run -the _convert-cert_ command, and list -X, or X.509 DER hex encoded format, as the -output format. These strings can then be copied into the JSON file. - -The SPAKE parameters should be converted from base-64 to hex as well before -being copied into the JSON file. - -### Creating images - -The example application can be built using the instructions in the example's -README. The factory data from the JSON file will be formatted into a hex file -that will then be merged into the final executable. The final executable will be -named _{example-application}-`bim`.hex_ for CC13x2 and -_{example-application}-mcuboot.hex_ for CC13x4, and the factory data that was -inputted into the JSON file will be named -_{example-application}-factory-data.hex_. diff --git a/docs/guides/ti/ti_matter_overview.md b/docs/guides/ti/ti_matter_overview.md new file mode 100644 index 00000000000000..44943fa46ba871 --- /dev/null +++ b/docs/guides/ti/ti_matter_overview.md @@ -0,0 +1,173 @@ +```{toctree} +:glob: +:maxdepth: 1 +:hidden: + +matter-migration-guide/matter_cc2674_migration.md +matter-syscfg/getting-started.md +matter-syscfg/sysconfig-board.md +matter-users-guide/ti_openthread_library_usage.md +matter-users-guide/ti_factory_data_user_guide.md +matter-users-guide/enabling_icd_on_ti_devices.md +``` + +# Texas Instruments platform overview + +The Texas Instruments Matter platform is based on the TI SimpleLink™ SDK. + +The following diagram is a simplified representation of a Matter application +which is built on the TI Platform. + +
    + +
    + +## Texas Instruments SimpleLink SDK + +This Matter GitHub repository contains the software development components and +tools that enable engineers to develop Matter based products. This repository is +the starting point for Matter development on all SimpleLink Thread and Wi-Fi +wireless microcontrollers (MCUs). + +The SimpleLink MCU portfolio offers a single development environment that +delivers flexible hardware, software, and tool options for customers developing +wired and wireless applications. With 100 percent code reuse across host MCUs, +Wi-Fi™, Bluetooth Low Energy, 2.4GHz, Sub-1GHz devices and more, choose the MCU +or connectivity standard that fits your design. A one-time investment with the +SimpleLink software development kit allows you to reuse often, opening the door +to create unlimited applications. For more information, visit +www.ti.com/simplelink. + +
    + +## Bluetooth LE and Thread stacks + +In the TI example applications the Bluetooth Low Energy protocol is used to +provision the Thread protocol to enable Matter communication. Then Thread is +used for IP communication with other Matter devices. + +The TI applications leverage the Bluetooth Low Energy stack on the CC13XX and +CC26XX families. This Bluetooth LE software is distributed in binary form within +the TI SimpleLink SDK. The Bluetooth LE stack leverages code that is present in +the device ROM for certain common Bluetooth LE operations. + +These applications leverage the OpenThread stack available within the Matter +repository for Thread communication. Platform support source is built from the +SimpleLink SDK. + +These connection protocols can be run concurrently by using the Texas +Instruments Dynamic Multi-protocol Manager. + +
    + +## LwIP stack + +The Lightweight IP stack interfaces with the OpenThread stack to offer standard +IP connectivity protocols that OpenThread does not natively support. This offers +a standard socket based interface to the Matter platform. + +
    + +## MbedTLS + +The MbedTLS library is used by OpenThread and Matter for a wide variety of +protocols. This ranges from basic AES and SHA to cryptographic protocols like +ECDSA and ECDH. + +The MbedTLS library is hardware accelerated using the TI SimpleLink SDK drivers. +This is achieved through the usage of `_ALT` defines in the MbedTLS +configuration file. + +
    + +## Matter Stack to TI Platform Interface + +Matter Stack interacts with LwIP, OpenThread, and the TI-BLE stack to achieve +the protocol and application functionality. A Bluetooth LE profile is registered +with the TI-BLE stack to enable provisioning and configuration. Once the device +is provisioned Matter will configure the OpenThread interface to connect to an +existing Thread network or to start its own network. From there the Matter IP +messages are sent to the LwIP stack to be routed to the OpenThread stack for +transmission. Matter Impl (Implementation) layer acts as an interface between +Matter stack and the TI platform components such as BLE stack, OpenThread, +FreeRTOS. It also supports components such as connectivity manager that provides +the implementation for functionality required by Matter stack. Overall, +applications generally only need to interface with the Cluster Library from +Matter. The transport of messages and configuration of the device is all handled +by the platform implementation files. + +
    + +## Matter Development Resources + +Below are several resources available for Matter development: + +- [Matter Protocol Overview](https://handbook.buildwithmatter.com/howitworks/roles/) +- [Matter Build Guide](../BUILDING.md) +- [Matter over Thread Getting Started](https://dev.ti.com/tirex/explore/node?node=A__AciOYyNq9gli.nsvJzBtQg__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST) +- [TI Matter over Wi-Fi Getting Started](https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1122413/faq-cc3235sf-matter----getting-started-guide) +- [TI Matter Application Development](https://dev.ti.com/tirex/explore/node?node=A__AXNOPYikmtBCHJ-L6eRivA__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST) +- [TI Matter OTA Guide](https://dev.ti.com/tirex/explore/node?node=A__AYTiKtu5heqgH4KPFa.6RQ__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST) + +
    + +## Matter Example Applications + +Sample Matter applications are provided for the TI platform. These can be used +as reference for your own application. + +- [lock-app](../../../examples/lock-app/cc13x4_26x4/README.md) +- [pump-app](../../../examples/pump-app/cc13x4_26x4/README.md) +- [pump-controller-app](../../../examples/pump-controller-app/cc13x4_26x4/README.md) +- [lighting-app](../../../examples/lighting-app/cc13x4_26x4/README.md) +
    + +### Build system + +The TI platform uses GN to generate ninja build scripts. Build files have +already been written to build and link the TI specific code within the +SimpleLink SDK. + +
    + +## CC2674 Migration + +For instructions on how to migrate the CC1354P10-6 examples to either the +CC2674P10 or the CC2674R10, please refer to the guide linked below. + +- [TI CC2674 Migration Guide](./matter-migration-guide/matter_cc2674_migration.md) + +
    + +## Factory Data Programming Tool + +For instructions on how to program custom factory data on TI devices, please +refer to the guide linked below. + +- [TI Factory Data User Guide](./matter-users-guide/ti_factory_data_user_guide.md) + +
    + +## Intermittently Connected Devices + +For instructions on how to use the Matter ICD feature on TI devices, please +refer to the guide linked below. + +- [Enabling ICD On TI Devices](./matter-users-guide/enabling_icd_on_ti_devices.md) + +
    + +## Matter OpenThread Library Configuration + +For instructions on how to configure the OpenThread build configuration for a +Matter application, please refer to the guide linked below. + +- [OpenThread Library Configuration](./matter-users-guide/ti_openthread_library_usage.md) + +### TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[matter_gh]: https://github.com/project-chip/connectedhomeip diff --git a/docs/guides/ti/ti_platform_overview.md b/docs/guides/ti/ti_platform_overview.md deleted file mode 100644 index 47e140cfa06ba0..00000000000000 --- a/docs/guides/ti/ti_platform_overview.md +++ /dev/null @@ -1,135 +0,0 @@ -```{toctree} -:glob: -:maxdepth: 1 - -* -``` - -# Texas Instruments platform overview - -The TI platform is a [Matter][matter_gh] platform based on the Texas Instruments -Incorporated SimpleLink SDK. - -The following diagram is a simplified representation of a Matter application -which built on the TI Platform. - -![matter_ti_overview_simplified](./../images/matter_ti_overview_simplified.png) - -## Texas Instruments SimpleLink SDK - -The SimpleLink™ CC13xx and CC26xx Software Development Kit (SDK) delivers -components that enable engineers to develop applications on the Texas -Instruments SimpleLink CC13xx and CC26xx family of wireless microcontrollers -(MCUs). This software toolkit provides a cohesive and consistent software -experience for all SimpleLink CC13xx and CC26xx wireless MCU users by packaging -essential software components, such as a Bluetooth® Low Energy (BLE) protocol -stack supporting Bluetooth 5.2, Bluetooth Mesh, Thread 1.1.1 networking stack -based on OpenThread, Zigbee 3.0 compliant protocol suite, RF-Proprietary -examples, TI’s 15.4 Stack as well as the TI-RTOS kernel and TI Drivers in one -easy-to-use software package along with example applications and documentation. -In addition, the Dynamic Multi-Protocol Manager (DMM) software component enables -multiprotocol development on a single SimpleLink wireless MCU through -time-division multiplexing. - -The SimpleLink MCU portfolio offers a single development environment that -delivers flexible hardware, software, and tool options for customers developing -wired and wireless applications. With 100 percent code reuse across host MCUs, -Wi-Fi™, Bluetooth Low Energy, Sub-1GHz devices and more, choose the MCU or -connectivity standard that fits your design. A one-time investment with the -SimpleLink software development kit allows you to reuse often, opening the door -to create unlimited applications. For more information, visit -www.ti.com/simplelink. - -
    - -## BLE and Thread stacks - -In the TI example applications the Bluetooth Low Energy protocol is used to -provision the Thread protocol to enable Matter communication. Then Thread is -used for IP communication with other Matter devices. - -The TI applications leverage the Bluetooth Low Energy stack on the CC13X2 and -CC26X2 families. This BLE software is distributed in binary form within the TI -SimpleLink SDK. The BLE stack leverages code that is present in the device ROM -for certain common BLE operations. - -These applications leverage the OpenThread stack available within the Matter -repository for Thread communication. Platform support source is built from the -SimpleLink SDK. - -These connection protocols can be run concurrently by using the Texas -Instruments Dynamic Multi-protocol Manager. - -
    - -## LwIP stack - -The Lightweight IP stack interfaces with the OpenThread stack to offer standard -IP connectivity protocols that OpenThread does not natively support. This offers -a standard socket based interface to the Matter platform. - -
    - -## MbedTLS - -The MbedTLS library is used by OpenThread and Matter for a wide variety of -protocols. This ranges from basic AES and SHA to cryptographic protocols like -ECDSA and ECDH. - -The MbedTLS library is hardware accelerated using the TI SimpleLink SDK drivers. -This is achieved through the usage of `_ALT` defines in the MbedTLS -configuration file. - -
    - -## Matter integration - -Matter interacts with LwIP, OpenThread, and the TI BLE stack to achieve the -protocol and application functionality. A BLE profile is registered with the -TI-BLE stack to enable provisioning and configuration. Once the device is -provisioned Matter will configure the OpenThread interface to connect to an -existing Thread network or to start its own network. From there the Matter IP -messages are sent to the LwIP stack to be routed to the OpenThread stack for -transmission. - -Overall, applications generally only need to interface with the Cluster Library -from Matter. The transport of messages and configuration of the device is all -handled by the platform implementation files. - -
    - -## Matter example applications - -Sample Matter applications are provided for the TI platform. These can be used -as reference for your own application. - -- [lock-app](../../../examples/lock-app/cc13x2x7_26x2x7/README.md) -- [pump-app](../../../examples/pump-app/cc13x2x7_26x2x7/README.md) -- [pump-controller-app](../../../examples/pump-controller-app/cc13x2x7_26x2x7/README.md) - -
    - -### Build system - -The TI platform uses GN to generate ninja build scripts. Build files have -already been written to build and link the TI specific code within the -SimpleLink SDK. - -
    - -## CC2674 Migration - -For instructions on how to migrate the CC1354P10-6 examples to either the -CC2674P10 or the CC2674R10, please refer to the guide linked below. - -- [TI CC2674 Migration Guide](./matter_cc2674_migration.md) - -
    - -### TI Support - -For technical support, please consider creating a post on TI's [E2E forum][e2e]. -Additionally, we welcome any feedback. - -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread -[matter_gh]: https://github.com/project-chip/connectedhomeip diff --git a/docs/images/ti_logo.png b/docs/images/ti_logo.png new file mode 100644 index 00000000000000..e860023a5d60ba Binary files /dev/null and b/docs/images/ti_logo.png differ diff --git a/docs/index.md b/docs/index.md index 8447850784787f..1f8e806dc4cce9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,8 +20,11 @@ testing/index tools/index BUG_REPORT code_generation -clusters +zap_clusters +spec_clusters +upgrading ERROR_CODES + ``` ```{include} README.md diff --git a/docs/spec_clusters.md b/docs/spec_clusters.md new file mode 100644 index 00000000000000..976b9f85e42c19 --- /dev/null +++ b/docs/spec_clusters.md @@ -0,0 +1,114 @@ +# List of currently defined spec clusters +This file was **AUTOMATICALLY** generated by `python scripts/generate_spec_xml.py`. DO NOT EDIT BY HAND! + +| ID (Decimal) | ID (hex) | Name | +|--------------|----------|----------------------------------------------------------| +|3 |0x0003 |Identify | +|4 |0x0004 |Groups | +|6 |0x0006 |On/Off | +|8 |0x0008 |Level Control | +|28 |0x001C |Pulse Width Modulation | +|29 |0x001D |Descriptor | +|30 |0x001E |Binding | +|31 |0x001F |AccessControl | +|37 |0x0025 |Actions | +|40 |0x0028 |Basic Information | +|41 |0x0029 |OTA Software Update Provider | +|42 |0x002A |OTA Software Update Requestor | +|43 |0x002B |Localization Configuration | +|44 |0x002C |Time Format Localization | +|45 |0x002D |Unit Localization | +|46 |0x002E |Power Source Configuration | +|47 |0x002F |Power Source | +|48 |0x0030 |General Commissioning | +|49 |0x0031 |Network Commissioning | +|50 |0x0032 |Diagnostic Logs | +|51 |0x0033 |General Diagnostics | +|52 |0x0034 |Software Diagnostics | +|53 |0x0035 |Thread Network Diagnostics | +|54 |0x0036 |Wi | +|55 |0x0037 |Ethernet Network Diagnostics | +|56 |0x0038 |Time Synchronization | +|57 |0x0039 |Bridged Device Basic Information | +|59 |0x003B |Switch | +|60 |0x003C |Administrator Commissioning | +|62 |0x003E |Operational Credentials | +|63 |0x003F |GroupKeyManagement | +|64 |0x0040 |Fixed Label | +|65 |0x0041 |User Label | +|66 |0x0042 |ProxyConfiguration | +|67 |0x0043 |ProxyDiscovery | +|68 |0x0044 |ValidProxies | +|69 |0x0045 |Boolean State | +|70 |0x0046 |ICDManagement | +|72 |0x0048 |Oven Cavity Operational State | +|73 |0x0049 |Oven Mode | +|74 |0x004A |Laundry Dryer Controls | +|80 |0x0050 |Mode Select | +|81 |0x0051 |Laundry Washer Mode | +|82 |0x0052 |Refrigerator And Temperature Controlled Cabinet Mode | +|83 |0x0053 |Laundry Washer Controls | +|84 |0x0054 |RVC Run Mode | +|85 |0x0055 |RVC Clean Mode | +|86 |0x0056 |Temperature Control | +|87 |0x0057 |Refrigerator Alarm | +|89 |0x0059 |Dishwasher Mode | +|91 |0x005B |Air Quality | +|92 |0x005C |Smoke CO Alarm | +|93 |0x005D |Dishwasher Alarm | +|94 |0x005E |Microwave Oven Mode | +|95 |0x005F |Microwave Oven Control | +|96 |0x0060 |Operational State | +|97 |0x0061 |RVC Operational State | +|98 |0x0062 |Scenes Management | +|113 |0x0071 |HEPA Filter Monitoring | +|114 |0x0072 |Activated Carbon Filter Monitoring | +|128 |0x0080 |Boolean State Configuration | +|129 |0x0081 |Valve Configuration and Control | +|144 |0x0090 |Electrical Power Measurement | +|145 |0x0091 |Electrical Energy Measurement | +|151 |0x0097 |Messages | +|152 |0x0098 |Device Energy Management | +|153 |0x0099 |Energy EVSE | +|155 |0x009B |Energy Preference | +|156 |0x009C |Power Topology | +|157 |0x009D |Energy EVSE Mode | +|159 |0x009F |Device Energy Management Mode | +|257 |0x0101 |Door Lock | +|258 |0x0102 |Window Covering | +|512 |0x0200 |Pump Configuration and Control | +|513 |0x0201 |Thermostat | +|514 |0x0202 |Fan Control | +|516 |0x0204 |Thermostat User Interface Configuration | +|768 |0x0300 |Color Control | +|769 |0x0301 |Ballast Configuration | +|1024 |0x0400 |Illuminance Measurement | +|1026 |0x0402 |Temperature Measurement | +|1027 |0x0403 |Pressure Measurement | +|1028 |0x0404 |Flow Measurement | +|1029 |0x0405 |Relative Humidity Measurement | +|1030 |0x0406 |Occupancy Sensing | +|1036 |0x040C |Carbon Monoxide Concentration Measurement | +|1037 |0x040D |Carbon Dioxide Concentration Measurement | +|1043 |0x0413 |Nitrogen Dioxide Concentration Measurement | +|1045 |0x0415 |Ozone Concentration Measurement | +|1066 |0x042A |PM2 | +|1067 |0x042B |Formaldehyde Concentration Measurement | +|1068 |0x042C |PM1 Concentration Measurement | +|1069 |0x042D |PM10 Concentration Measurement | +|1070 |0x042E |Total Volatile Organic Compounds Concentration Measurement| +|1071 |0x042F |Radon Concentration Measurement | +|1283 |0x0503 |Wake on LAN | +|1284 |0x0504 |Channel | +|1285 |0x0505 |Target Navigator | +|1286 |0x0506 |Media Playback | +|1287 |0x0507 |Media Input | +|1288 |0x0508 |Low Power | +|1289 |0x0509 |Keypad Input | +|1290 |0x050A |Content Launcher | +|1291 |0x050B |Audio Output | +|1292 |0x050C |Application Launcher | +|1293 |0x050D |Application Basic | +|1294 |0x050E |Account Login | +|1295 |0x050F |Content Control | +|1296 |0x0510 |Content App Observer | diff --git a/docs/testing/ChipDeviceCtrlAPI.md b/docs/testing/ChipDeviceCtrlAPI.md index 944c787d647207..b1111aada5772f 100644 --- a/docs/testing/ChipDeviceCtrlAPI.md +++ b/docs/testing/ChipDeviceCtrlAPI.md @@ -10,13 +10,6 @@ - [ShutdownAll](#shutdownall) - [ExpireSessions](#expiresessions) - [DiscoverCommissionableNodes](#discovercommissionablenodes) - - [DiscoverCommissionableNodesLongDiscriminator](#discovercommissionablenodeslongdiscriminator) - - [DiscoverCommissionableNodesShortDiscriminator](#discovercommissionablenodesshortdiscriminator) - - [DiscoverCommissionableNodesVendor](#discovercommissionablenodesvendor) - - [DiscoverCommissionableNodesDeviceType](#discovercommissionablenodesdevicetype) - - [DiscoverCommissionableNodesCommissioningEnabled](#discovercommissionablenodescommissioningenabled) - - [PrintDiscoveredDevices](#printdiscovereddevices) - - [DiscoverAllCommissioning](#discoverallcommissioning) - [OpenCommissioningWindow](#opencommissioningwindow) - [GetFabricIdInternal](#getfabricidinternal) - [GetNodeIdInternal](#getnodeidinternal) @@ -174,76 +167,6 @@ This function will always return a list of CommissionableDevice. When stopOnFirst is set, this function will return when at least one device is discovered or on timeout. - - -#### DiscoverCommissionableNodesLongDiscriminator - -```python -def DiscoverCommissionableNodesLongDiscriminator(long_discriminator) -``` - -Deprecated, use DiscoverCommissionableNodes - - - -#### DiscoverCommissionableNodesShortDiscriminator - -```python -def DiscoverCommissionableNodesShortDiscriminator(short_discriminator) -``` - -Deprecated, use DiscoverCommissionableNodes - - - -#### DiscoverCommissionableNodesVendor - -```python -def DiscoverCommissionableNodesVendor(vendor) -``` - -Deprecated, use DiscoverCommissionableNodes - - - -#### DiscoverCommissionableNodesDeviceType - -```python -def DiscoverCommissionableNodesDeviceType(device_type) -``` - -Deprecated, use DiscoverCommissionableNodes - - - -#### DiscoverCommissionableNodesCommissioningEnabled - -```python -def DiscoverCommissionableNodesCommissioningEnabled() -``` - -Deprecated, use DiscoverCommissionableNodes - - - -#### PrintDiscoveredDevices - -```python -def PrintDiscoveredDevices() -``` - -Deprecated, use GetCommissionableNodes - - - -#### DiscoverAllCommissioning - -```python -def DiscoverAllCommissioning() -``` - -Deprecated, use DiscoverCommissionableNodes - #### OpenCommissioningWindow diff --git a/docs/testing/img/integration_tests.png b/docs/testing/img/integration_tests.png new file mode 100644 index 00000000000000..dd83695cf20163 Binary files /dev/null and b/docs/testing/img/integration_tests.png differ diff --git a/docs/testing/img/plant_uml_source.txt b/docs/testing/img/plant_uml_source.txt new file mode 100644 index 00000000000000..991d9c5e5aa2fa --- /dev/null +++ b/docs/testing/img/plant_uml_source.txt @@ -0,0 +1,55 @@ +@startuml +class AttributeAccessInterface { + mEndpointId : Optional + mClusterId : ClusterId + Read(...) + Write(...) +} + +class CommandHandlerInterface { + InvokeCommand(...) +} + +class ClusterServer { + Read(...) + Write(...) + InvokeCommand(...) + RegisterEndpoint(...) + mEndpoints: ClusterLogic[] +} + +class MatterContext { + LogEvent() + MarkAttributeDirty() + mPersistentStorageDelegate + mOtherFakeableThings +} + +class ClusterLogic { + Init(...) + GetXAttribute(...) + SetXAttribute(...) + HandleXCommand(...) + mStateVariables +} + +class ClusterDriver { + OnClusterStateChange(...) + RegisterListener(...) + mListener +} + +AttributeAccessInterface <|-- ClusterServer +CommandHandlerInterface <|-- ClusterServer +ClusterServer "1" *-- "Many" ClusterLogic +ClusterLogic "1" *-- "1" ClusterDriver +ClusterLogic "1" *-- "1" MatterContext + +hide ClusterServer members +hide AttributeAccessInterface members +hide CommandHandlerInterface members +hide ClusterLogic members +hide ClusterDriver members +hide MatterContext members + +@enduml diff --git a/docs/testing/img/unit_testable_clusters.png b/docs/testing/img/unit_testable_clusters.png new file mode 100644 index 00000000000000..61f6c51f59b765 Binary files /dev/null and b/docs/testing/img/unit_testable_clusters.png differ diff --git a/docs/testing/img/unit_testable_clusters_all_classes.png b/docs/testing/img/unit_testable_clusters_all_classes.png new file mode 100644 index 00000000000000..6cd8f903b60ae8 Binary files /dev/null and b/docs/testing/img/unit_testable_clusters_all_classes.png differ diff --git a/docs/testing/img/unit_testable_clusters_context.png b/docs/testing/img/unit_testable_clusters_context.png new file mode 100644 index 00000000000000..3a42eca37be258 Binary files /dev/null and b/docs/testing/img/unit_testable_clusters_context.png differ diff --git a/docs/testing/img/unit_testable_clusters_driver.png b/docs/testing/img/unit_testable_clusters_driver.png new file mode 100644 index 00000000000000..bf97434fb5797b Binary files /dev/null and b/docs/testing/img/unit_testable_clusters_driver.png differ diff --git a/docs/testing/img/unit_testable_clusters_logic.png b/docs/testing/img/unit_testable_clusters_logic.png new file mode 100644 index 00000000000000..9ebed283777b4e Binary files /dev/null and b/docs/testing/img/unit_testable_clusters_logic.png differ diff --git a/docs/testing/img/unit_testable_clusters_server.png b/docs/testing/img/unit_testable_clusters_server.png new file mode 100644 index 00000000000000..d8632e73a32338 Binary files /dev/null and b/docs/testing/img/unit_testable_clusters_server.png differ diff --git a/docs/testing/img/unit_tests.png b/docs/testing/img/unit_tests.png new file mode 100644 index 00000000000000..95b29b415c967c Binary files /dev/null and b/docs/testing/img/unit_tests.png differ diff --git a/docs/testing/index.md b/docs/testing/index.md index 0b9bbf4c494a38..d8ebe92da46f40 100644 --- a/docs/testing/index.md +++ b/docs/testing/index.md @@ -11,16 +11,33 @@ in the SDK. * ``` -## Unit testing +## Integration and Certification tests -- [Unit tests](./unit_testing.md) +Integration tests test the entire software stack using the same mechanisms as a +standard controller. -## Integration and Certification tests +![](./img/integration_tests.png) + +The certification tests are all integration tests, since they run against the +product as a black box. - [Integration and Certification tests](./integration_tests.md) - [YAML](./yaml.md) - [Python testing framework](./python.md) - [Enabling tests in the CI](./ci_testing.md) +- [Integration test utilities](./integration_test_utilities.md) + +## Unit testing + +Unit tests run on small pieces (“units”) of business logic. They do not use an +external controller and instead test at the public interface of the class or +function. For clusters, this requires an API that separates the cluster logic +from the global ember and message delivery layers. + +![](./img/unit_tests.png) + +- [Unit tests](./unit_testing.md) +- [Designing clusters for unit testing and portability](./unit_testing_clusters.md) ## PICS and PIXIT diff --git a/docs/testing/integration_test_utilities.md b/docs/testing/integration_test_utilities.md new file mode 100644 index 00000000000000..e50ad511caa28b --- /dev/null +++ b/docs/testing/integration_test_utilities.md @@ -0,0 +1,134 @@ +# Integration Test utilities + +There are several test utilities that can be used to simulate or force behavior +on devices for the purposes of testing. + +When using any of these utilities it is important to inject the errors at the +point where they are running through the MOST code that they can. + +If the cluster uses the [ClusterLogic](./unit_testing_clusters.md) pattern, this +means injecting errors as close as possible to the driver layer, rather than +catching errors in the server. + +## TestEventTriggers + +TestEventTriggers are used to test interactions on the DUT that are difficult to +perform during certification testing (ex. triggering a smoke alarm) + +**These should be used sparingly!** + +TestEventTriggers are started though a command in the General Diagnostics +cluster. The command takes a “test key” and a “trigger code” to request that a +device to perform a specific action. Currently most devices use a default key, +but it can be overridden by a specific device if required. + +**TestEventTriggers need to be turned off outside of certification tests** + +To use these triggers: + +- Derive from + [TestEventTriggerHandler](https://github.com/project-chip/connectedhomeip/blob/master/src/app/TestEventTriggerDelegate.h) +- Implement HandleEventTrigger function +- Register with TestEventTriggerDelegate::AddHandler + +Please see +[EnergyEvseTestEventTriggerHandler](https://github.com/project-chip/connectedhomeip/blob/master/src/app/clusters/energy-evse-server/EnergyEvseTestEventTriggerHandler.h) +for a good example. + +## NamedPipes + +NamedPipes are used to trigger actions on Linux applications. These can be used +in the CI, and are normally used to simulate manual actions for CI integration. +Any required manual action in a test (ex. push a button) should have a +corresponding NamedPipe action to allow the test to run in the CI. + +In python tests, the app-pid required to access the named pipe can be passed in +as a flag (--app-pid). + +NamedPipes are implemented in +[NamedPipeCommands.h](https://github.com/project-chip/connectedhomeip/blob/master/examples/platform/linux/NamedPipeCommands.h) + +To use NamedPipes + +- Derive from NamedPipeCommandDelegate +- Implement the OnEventCommandReceived(const char \* json) function +- Instantiate and start a NamedPipeCommands object to receive commands and + pass in the NamedPipeCommandDelegate and a file path base name +- (while running) Write to the file (baseName_pid) to trigger the actions + +For a good example, see Air Quality: + +- [Delegate](https://github.com/project-chip/connectedhomeip/blob/master/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.cpp) +- [main](https://github.com/project-chip/connectedhomeip/blob/master/examples/air-quality-sensor-app/linux/main.cpp) +- [README](https://github.com/project-chip/connectedhomeip/blob/master/examples/air-quality-sensor-app/linux/README.md) + +[RVC Clean Mode](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/TC_RVCCLEANM_2_1.py) +gives an example of how to use named pipes in testing. + +## Fault Injection + +Fault injection is used to inject conditional code paths at runtime, e.g. +errors. This is very useful for things like client testing, to check error +handling for paths that are difficult to hit under normal operating conditions. + +The fault injection framework we are currently using is nlFaultInjection.The +framework uses a macro for injecting the code paths, and the macro is set to a +no-op if the option is turned off at compile time. The build option to turn on +fault inject is `chip_with_nlfaultinjection`. + +Fault injection has been plumbed out through a manufacturer-specific +[fault injection cluster](#fault-injection-cluster) that is available in the +SDK. This allows fault injection to be turned on and off using standard cluster +mechanisms during testing. For certification, operating these using a secondary, +non-DUT controller is recommended. For a good example of this, please see +[TC-IDM-1.3](https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/interactiondatamodel.adoc#tc-idm-1-3-batched-commands-invoke-request-action-from-dut-to-th-dut_client). + +The nlFaultInjection allows the application to define multiple managers. In the +SDK, we have managers for System, inet and CHIP. CHIP should be used for +anything above the system layer (basically all new cluster development). The +CHIP fault manager is available at +[lib/support/CHIPFaultInjection.h](https://github.com/project-chip/connectedhomeip/blob/master/src/lib/support/CHIPFaultInjection.h). + +To add new fault injection code paths: + +- Add new IDs (aFaultID) to the enum in + [CHIPFaultInjection](https://github.com/project-chip/connectedhomeip/blob/master/src/lib/support/CHIPFaultInjection.h) +- add CHIP_FAULT_INJECT(aFaultID, aStatements) at the point where the fault + injection should occur + +### Fault Injection example + +``` +CHIP_ERROR CASEServer::OnMessageReceived(Messaging::ExchangeContext * ec, + const PayloadHeader & payloadHeader, + System::PacketBufferHandle && payload) +{ + MATTER_TRACE_SCOPE("OnMessageReceived", "CASEServer"); + + bool busy = GetSession().GetState() != CASESession::State::kInitialized; + CHIP_FAULT_INJECT(FaultInjection::kFault_CASEServerBusy, busy = true); + if (busy) + { +… +``` + +### Fault Injection cluster + +The Fault injection cluster is a manufacturer-specific cluster, available in the +SDK (0xFFF1FC06). + +- [server](https://github.com/project-chip/connectedhomeip/blob/master/src/app/clusters/fault-injection-server/fault-injection-server.cpp) +- [xml](https://github.com/project-chip/connectedhomeip/blob/master/src/app/zap-templates/zcl/data-model/chip/fault-injection-cluster.xml) + +Example apps can be compiled with this cluster for client-side certification and +integration tests. + +To use this cluster to turn on a fault, use the FailAtFault command: + +- Type: FaultType - use FaultType::kChipFault (0x03) +- Id: int32u - match the ID you set up for your fault +- NumCallsToSkip: int32u - number of times to run normally +- NumCallsToFail: int32u - number of times to hit the fault injection + condition after NumCallsToSkip +- TakeMutex: bool - controls access to the fault injection manager for + multi-threaded systems. False is fine. diff --git a/docs/testing/python.md b/docs/testing/python.md index 1f946a38333ecd..06051fee4fb33b 100644 --- a/docs/testing/python.md +++ b/docs/testing/python.md @@ -19,6 +19,11 @@ Python tests located in src/python_testing ## Writing Python tests +- Defining arguments in the test script + - In order to streamline the configuration and execution of tests, it is + essential to define arguments at the top of the test script. This + section should include various parameters and their respective values, + which will guide the test runner on how to execute the tests. - All test classes inherit from MatterBaseTest in [matter_testing_support.py](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/matter_testing_support.py) - support for commissioning using the python controller @@ -36,11 +41,17 @@ Python tests located in src/python_testing - Use Mobly assertions for failing tests - self.step() along with a steps\_ function to mark test plan steps for cert tests -- ### A simple test ``` +# test-runner-runs: run1 +# test-runner-run/run1/app: ${ALL_CLUSTERS_APP} +# test-runner-run/run1/factoryreset: True +# test-runner-run/run1/quiet: True +# test-runner-run/run1/app-args: --discriminator 1234 --KVS kvs1 --trace-to json:${TRACE_APP}.json +# test-runner-run/run1/script-args: --storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --trace-to json:${TRACE_TEST_JSON}.json --trace-to perfetto:${TRACE_TEST_PERFETTO}.perfetto + class TC_MYTEST_1_1(MatterBaseTest): @async_test_body @@ -74,6 +85,59 @@ The default_matter_test_main() function is used to run the test on the command line. These two lines should appear verbatim at the bottom of every python test file. +## Defining the test arguments + +Below is the format: + +``` +# test-runner-runs: +# test-runner-run//app: ${TYPE_OF_APP} +# test-runner-run//factoryreset: +# test-runner-run//quiet: +# test-runner-run//app-args: +# test-runner-run//script-args: +``` + +### Description of Parameters + +- test-runner-runs: Specifies the identifier for the run. This can be any + unique identifier. + + - Example: run1 + +- test-runner-run//app: Indicates the application to be used + in the test. Different app types as needed could be referenced from section + [name: Generate an argument environment file ] of the file + [.github/workflows/tests.yaml](https://github.com/project-chip/connectedhomeip/blob/master/.github/workflows/tests.yaml) + + - Example: \${TYPE_OF_APP} + +- test-runner-run//factoryreset: Determines whether a factory + reset should be performed before the test. + + - Example: True + +- test-runner-run//quiet: Sets the verbosity level of the test + run. When set to True, the test run will be quieter. + + - Example: True + +- test-runner-run//app-args: Specifies the arguments to be + passed to the application during the test. + + - Example: --discriminator 1234 --KVS kvs1 --trace-to + json:\${TRACE_APP}.json + +- test-runner-run//script-args: Specifies the arguments to be + passed to the test script. + - Example: --storage-path admin_storage.json --commissioning-method + on-network --discriminator 1234 --passcode 20202021 --trace-to + json:${TRACE_TEST_JSON}.json --trace-to perfetto:${TRACE_TEST_PERFETTO}.perfetto + +This structured format ensures that all necessary configurations are clearly +defined and easily understood, allowing for consistent and reliable test +execution. + ## Cluster Codegen - [Objects.py](https://github.com/project-chip/connectedhomeip/blob/master/src/controller/python/chip/clusters/Objects.py) @@ -480,16 +544,64 @@ second_ctrl = fa.new_fabric_admin.NewController(nodeId=node_id) # Running tests locally -You can run the python script as-is for local testing against an already-running -DUT +## Setup -`./scripts/tests/run_python_test.py` is a convenient script to fire up an -example DUT on the host, with factory reset support +The scripts require the python wheel to be compiled and installed before +running. To compile and install the wheel, do the following: -`./scripts/tests/run_python_test.py --factoryreset --app --app-args "whatever" --script --script-args "whatever"` +First activate the matter environment using either + +``` +. ./scripts/bootstrap.sh +``` -Note that devices must be commissioned by the python test harness to run tests. -chip-tool and the python test harness DO NOT share a fabric. +or + +``` +. ./scripts/activate.sh +``` + +bootstrap.sh should be used for for the first setup, activate.sh may be used for +subsequent setups as it is faster. + +Next build the python wheels and create / activate a venv (called `py` here, but +any name may be used) + +``` +./scripts/build_python.sh -i py +source py/bin/activate +``` + +## Running tests + +- Note that devices must be commissioned by the python test harness to run + tests. chip-tool and the python test harness DO NOT share a fabric. + +Once the wheel is installed, you can run the python script as a normal python +file for local testing against an already-running DUT. This can be an example +app on the host computer (running in a different terminal), or a separate device +that will be commissioned either over BLE or WiFi. + +For example, to run the TC-ACE-1.2 tests against an un-commissioned DUT: + +``` +python3 src/python_testing/TC_ACE_1_2.py --commissioning-method on-network --qr-code MT:-24J0AFN00KA0648G00 +``` + +Some tests require additional arguments (ex. PIXITs or configuration variables +for the CI). These arguments can be passed as sets of key-value pairs using the +`---arg` command line arguments. For example + +``` +--int-arg PIXIT.ACE.APPENDPOINT:1 PIXIT.ACE.APPDEVTYPEID:0x0100 --string-arg PIXIT.ACE.APPCLUSTER:OnOff PIXIT.ACE.APPATTRIBUTE:OnOff +``` + +## Local host app testing + +`./scripts/tests/run_python_test.py` is a convenient script that starts an +example DUT on the host and includes factory reset support + +`./scripts/tests/run_python_test.py --factoryreset --app --app-args "whatever" --script --script-args "whatever"` # Running tests in CI diff --git a/docs/testing/unit_testing.md b/docs/testing/unit_testing.md index e62940f15a9c7c..243e35d9b380c9 100644 --- a/docs/testing/unit_testing.md +++ b/docs/testing/unit_testing.md @@ -1,3 +1,384 @@ # Unit testing -This doc is a placeholder for an guide around unit tests. +## Why? + +- MUCH faster than integration tests. +- Runs as part of build process. +- Allows testing specific error conditions that are difficult to trigger under + normal operating conditions. + - e.g. out of memory errors etc. +- Allows testing different device compositions without defining multiple + example applications. + - e.g. feature combinations not in example apps. + +## Unit testing in the SDK using pw_unit_test + +This SDK uses Pigweed unit test (pw_unit_test), which is an implementation of +GoogleTest. For more information see the +[pw_unit_test documentation](https://pigweed.dev/pw_unit_test/) or the +[GoogleTest documentation](https://google.github.io/googletest/). + +### Simple unit tests + +The following example demonstrates how to use pw_unit_test to write a simple +unit test. Each test function is defined using `TEST(NameOfFunction)`. The set +of test functions in a given source file is called a "suite". + +``` +#include + +TEST(YourTestFunction1) +{ + // Do some test things here, then check the results using EXPECT_* + SomeTypeX foo; + foo.DoSomething(); + EXPECT_EQ(foo.GetResultCount(), 7); + foo.DoSomethingElse(); + EXPECT_EQ(foo.GetResultCount(), 5); + + // If you want to abort the rest of the test upon failure, use ASSERT_* + SomeTypeY * ptr = foo.GetSomePointer(); + ASSERT_NE(ptr, nullptr); + ptr->DoTheThing(); // Won't reach here if the ASSERT failed. +} + +TEST(YourTestFunction2) +{ + // Do some test things here, then check the results using EXPECT_* + SomeTypeZ foo; + foo.DoSomething(); + EXPECT_EQ(foo.GetResultCount(), 3); +} +``` + +See +[TestSpan.cpp](https://github.com/project-chip/connectedhomeip/blob/master/src/lib/support/tests/TestSpan.cpp) +for an example of a simple unit test. + +In the above example there are no fixtures or setup/teardown behavior. + +### Test fixtures and setup/teardown behavior + +If your tests need fixtures or some kind of setup/teardown you will need to +define a test context that derives from `::testing::Test`. Each of your test +functions will be defined with `TEST_F(NameOfTestContext, NameOfFunction)`. The +following example demonstrates how to use pw_unit_test to write a unit test that +uses fixtures and setup/teardown behavior. + +``` +#include + +class YourTestContext : public ::testing::Test +{ +public: + // Performs shared setup for all tests in the test suite. Run once for the whole suite. + static void SetUpTestSuite() + { + // Your per-suite setup goes here: + sPerSuiteFixture.Init(); + ASSERT_TRUE(sPerSuiteFixture.WorkingGreat()); + } + + // Performs shared teardown for all tests in the test suite. Run once for the whole suite. + static void TearDownTestSuite() + { + // Your per-suite teardown goes here: + sPerSuiteFixture.Shutdown(); + } + +protected: + // Performs setup for each test in the suite. Run once for each test function. + void SetUp() + { + // Your per-test setup goes here: + mPerTestFixture.Init(); + ASSERT_TRUE(mPerTestFixture.WorkingGreat()); + } + + // Performs teardown for each test in the suite. Run once for each test function. + void TearDown() + { + // Your per-test teardown goes here: + mPerTestFixture.Shutdown(); + } + +private: + // Your per-suite and per-test fixtures are declared here: + static SomeTypeA sPerSuiteFixture; + SomeTypeB mPerTestFixture; +}; +// Your per-suite fixtures are defined here: +SomeTypeA YourTestContext::sPerSuiteFixture; + +TEST_F(YourTestContext, YourTestFunction1) +{ + // Do some test things here, then check the results using EXPECT_* + mPerTestFixture.DoSomething(); + EXPECT_EQ(mPerTestFixture.GetResultCount(), 7); + sPerSuiteFixture.DoSomething(); + EXPECT_EQ(sPerSuiteFixture.GetResultCount(), 5); + + // If you want to abort the rest of the test upon failure, use ASSERT_* + SomeTypeC * ptr = mPerTestFixture.GetSomePointer(); + ASSERT_NE(ptr, nullptr); + ptr->DoTheThing(); // Won't reach here if the ASSERT failed. +} + +TEST_F(YourTestContext, YourTestFunction2) +{ + // Do some test things here, then check the results using EXPECT_* + mPerTestFixture.DoSomethingElse(); + EXPECT_EQ(mPerTestFixture.GetResultCount(), 9); +} +``` + +### A loopback messaging context for convenience + +If you need messaging, there is a convenience class +[Test::AppContext](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/AppTestContext.h) +that you can derive your test context from. It provides a network layer and a +system layer and two secure sessions connected with each other. The following +example demonstrates this. + +``` +#include + +class YourTestContext : public Test::AppContext +{ +public: + // Performs shared setup for all tests in the test suite. Run once for the whole suite. + static void SetUpTestSuite() + { + AppContext::SetUpTestSuite(); // Call parent. + VerifyOrReturn(!HasFailure()); // Stop if parent had a failure. + + // Your per-suite setup goes here: + sPerSuiteFixture.Init(); + ASSERT_TRUE(sPerSuiteFixture.WorkingGreat()); + } + + // Performs shared teardown for all tests in the test suite. Run once for the whole suite. + static void TearDownTestSuite() + { + // Your per-suite teardown goes here: + sPerSuiteFixture.Shutdown(); + + AppContext::TearDownTestSuite(); // Call parent. + } + +protected: + // Performs setup for each test in the suite. Run once for each test function. + void SetUp() + { + AppContext::SetUp(); // Call parent. + VerifyOrReturn(!HasFailure()); // Stop if parent had a failure. + + // Your per-test setup goes here: + mPerTestFixture.Init(); + ASSERT_TRUE(mPerTestFixture.WorkingGreat()); + } + + // Performs teardown for each test in the suite. Run once for each test function. + void TearDown() + { + // Your per-test teardown goes here: + mPerTestFixture.Shutdown(); + + chip::app::EventManagement::DestroyEventManagement(); + AppContext::TearDown(); // Call parent. + } + +private: + // Your per-suite and per-test fixtures are declared here: + static SomeTypeA sPerSuiteFixture; + SomeTypeB mPerTestFixture; +}; +// Your per-suite fixtures are defined here: +SomeTypeA YourTestContext::sPerSuiteFixture; + +TEST_F(YourTestContext, YourTestFunction1) +{ + // Do some test things here, then check the results using EXPECT_* +} + +TEST_F(YourTestContext, YourTestFunction2) +{ + // Do some test things here, then check the results using EXPECT_* +} +``` + +You don't have to override all 4 functions `SetUpTestsuite`, +`TearDownTestSuite`, `SetUp`, `TearDown`. If you don't need any custom behavior +in one of those functions just omit it. + +If you override one of the setup/teardown functions make sure to invoke the +parent's version of the function as well. `AppContext::SetUpTestSuite` and +`AppContext::SetUp` may generate fatal failures, so after you call these from +your overriding function make sure to check `HasFailure()` and return if the +parent function failed. + +If you don't override any of the setup/teardown functions, you can simply make a +type alias: `using YourTestContext = Test::AppContext;` instead of defining your +own text context class. + +## Best practices + +- Try to use as specific an assertion as possible. For example use these + + ``` + EXPECT_EQ(result, 3); + EXPECT_GT(result, 1); + EXPECT_STREQ(myString, "hello"); + ``` + + instead of these + + ``` + EXPECT_TRUE(result == 3); + EXPECT_TRUE(result > 1); + EXPECT_EQ(strcmp(myString, "hello"), 0); + ``` + +- If you want a test to abort when an assertion fails, use `ASSERT_*` instead + of `EXPECT_*`. This will cause the current function to return. + +- If a test calls a subroutine which exits due to an ASSERT failing, execution + of the test will continue after the subroutine call. This is because ASSERT + causes the subroutine to return (as opposed to throwing an exception). If + you want to prevent the test from continuing, check the value of + `HasFailure()` and stop execution if true. Example: + + ``` + void Subroutine() + { + ASSERT_EQ(1, 2); // Fatal failure. + } + + TEST(YourTestContext, YourTestFunction1) + { + Subroutine(); // A fatal failure happens in this subroutine... + // ... however execution still continues. + print("This gets executed"); + VerifyOrReturn(!HasFailure()); + print("This does not get executed"); + } + ``` + +- If you want to force a fatal failure use `FAIL()`, which will record a fatal + failure and exit the current function. This is similar to using + `ASSERT_TRUE(false)`. If you want to force a non-fatal failure use + `ADD_FAILURE()`, which will record a non-fatal failure and continue + executing the current function. This is similar to using + `EXPECT_TRUE(false)`. + +- `ASSERT_*` and `FAIL` will only work in functions with void return type, + since they generate a `return;` statement. If you must use these in a + non-void function, instead use `EXPECT_*` or `ADD_FAILURE` and then check + `HasFailure()` afterward and return if needed. + +- If your test requires access to private/protected members of the underlying + class you're testing, you'll need to create an accessor class that performs + these operations and is friended to the underlying class. Please name the + class `chip::Test::SomethingTestAccess` where `Something` is the name of the + underlying class whose private/protected members you're trying to access. + Then add `friend class chip::Test::SomethingTestAccess;` to the underlying + class. Make sure your test's BUILD.gn file contains + `sources = [ "SomethingTestAccess.h" ]`. Before creating a new TestAccess + class, check if one already exists. If it does exist but doesn't expose the + member you need, you can add a function to that class to do so. Note that + you should make these functions as minimal as possible, with no logic + besides just exposing the private/protected member. + - For an example see `ICDConfigurationDataTestAccess` which is defined in + [ICDConfigurationDataTestAccess.h](https://github.com/project-chip/connectedhomeip/blob/master/src/app/icd/server/tests/ICDConfigurationDataTestAccess.h), + friends the underlying class in + [ICDConfigurationData.h](https://github.com/project-chip/connectedhomeip/blob/master/src/app/icd/server/ICDConfigurationData.h), + is included as a source in + [BUILD.gn](https://github.com/project-chip/connectedhomeip/blob/master/src/app/icd/server/tests/BUILD.gn), + and is used by a test in + [TestICDManager.cpp](https://github.com/project-chip/connectedhomeip/blob/master/src/app/icd/server/tests/TestICDManager.cpp). + - For another example see `TCPBaseTestAccess` which is defined in + [TCPBaseTestAccess.h](https://github.com/project-chip/connectedhomeip/blob/master/src/transport/raw/tests/TCPBaseTestAccess.h), + friends the underlying class in + [TCP.h](https://github.com/project-chip/connectedhomeip/blob/master/src/transport/raw/TCP.h), + is included as a source in + [BUILD.gn](https://github.com/project-chip/connectedhomeip/blob/master/src/transport/raw/tests/BUILD.gn), + and is used by a test in + [TestTCP.cpp](https://github.com/project-chip/connectedhomeip/blob/master/src/transport/raw/tests/TestTCP.cpp). + +## Compiling and running + +- Add to `src/some_directory/tests/BUILD.gn` + + - Example + + ``` + chip_test_suite("tests") { + output_name = "libSomethingTests" + + test_sources = [ + "TestSuite1.cpp", + "TestSuite2.cpp", + // Other test source files go here. + ] + + sources = [ + // Non-test source files go here. + ] + + cflags = [ "-Wconversion" ] + + public_deps = [ + // Dependencies go here. + ] + } + ``` + + - Another example: + [src/lib/support/tests/BUILD.gn](https://github.com/project-chip/connectedhomeip/blob/master/src/lib/support/tests/BUILD.gn) + +- Build and run all tests with + [./gn_build.sh](https://github.com/project-chip/connectedhomeip/blob/master/gn_build.sh) + - CI runs this, so any unit tests that get added will automatically be + added to the CI. +- Test binaries are compiled into: + - `out/debug//tests` + - e.g. `out/debug/linux_x64_clang/tests` +- Tests are run when `./gn_build.sh` runs, but you can run them individually + in a debugger from their location. + +## Debugging unit tests + +- After running `./gn_build.sh`, test binaries are compiled into + - `out/debug//tests` + - e.g. `out/debug/linux_x64_clang/tests` +- Individual binaries can be run through regular tools: + - gdb + - valgrind + - Your favorite tool that you tell everyone about. + +## Utilities + +We have a small number of unit testing utilities that should be used in unit +tests. + +Consider adding more utilities for general use if you require them for your +tests. + +### Mock clock + +The mock clock is located in +[src/system/SystemClock.h](https://github.com/project-chip/connectedhomeip/blob/master/src/system/SystemClock.h) +as `System::Clock::Internal::MockClock`. + +To use the mock clock, use the `chip::System::SystemClock()` function as normal. +In the test, instantiate a MockClock and use the `SetSystemClockForTesting` to +inject the clock. The Set and Advance functions in the MockClock can then be +used to set exact times for testing. This allows testing specific edge +conditions in tests, helps reduce test flakiness due to race conditions, and +reduces the time required for testing as tests no long require real-time waits. + +### TestPersistentStorageDelegate + +The TestPersistentStorageDelegate is an in-memory version of storage that easily +allows removal of keys, presence checks, etc. It is available at +[src/lib/support/TestPersistentStorageDelegate.h](https://github.com/project-chip/connectedhomeip/blob/master/src/lib/support/TestPersistentStorageDelegate.h) diff --git a/docs/testing/unit_testing_clusters.md b/docs/testing/unit_testing_clusters.md new file mode 100644 index 00000000000000..b2806c8084b6ee --- /dev/null +++ b/docs/testing/unit_testing_clusters.md @@ -0,0 +1,172 @@ +# Designing Clusters for Testing and Portability + +## Unit Testable, Modular Cluster Design + +When designing new clusters, consider the following approach: + +- Separate the cluster logic from the on-the-wire data model + - Server vs. ClusterLogic + - Makes the cluster logic unit-testable without generating TLV. +- Separate the basic cluster logic from code that is platform- or + device-specific. + - ClusterLogic uses a ClusterDriver + - Makes the cluster logic portable between platforms / manufacturers + - Removes necessity of overriding global singleton functions like + PostAttributeChangeCallback. + +General approach: + +![](./img/unit_testable_clusters.png) + +Class proposal: + +![](./img/unit_testable_clusters_all_classes.png) + +### ClusterServer + +![](./img/unit_testable_clusters_server.png) + +The ClusterServerClass is a **Very** light wrapper over ClusterLogic. It +translates Interaction Model wire format handling into API calls for cluster +logic methods. + +This class implements both the AttributeAccessInterface and the CommandHandler +interfaces so ClusterLogic properly handles data dependencies between commands +and attributes. + +An example code snippet showing the translation of the TLV into API calls to the +ClusterLogic class: + +``` +CHIP_ERROR DiscoBallServer::Read(const ConcreteReadAttributePath & aPath, + AttributeValueEncoder & aEncoder) +{ + DiscoBallClusterLogic * cluster = FindEndpoint(aPath.mEndpointId); + VerifyOrReturnError(cluster != nullptr, CHIP_IM_GLOBAL_STATUS(UnsupportedEndpoint)); + + switch (aPath.mAttributeId) + { + case Clusters::DiscoBall::Attributes::Run::Id: + return aEncoder.Encode(cluster->GetRunAttribute()); + … + } +} +``` + +### ClusterLogic + +![](./img/unit_testable_clusters_logic.png) + +The ClusterLogic class is for all the code that is SHARED between platforms. It +does NOT include any TLV parsing or direct calls to Ember/IM/LogEvent etc. + +The class should include attribute getters/setters and handlers for all +commands. + +The class receives “plain data” Matter requests from ClusterServer class, +performs required common actions, and calls driver class to perform platform- or +hardware-specific actions. It also receives driver updates (e.g. +application-driven value changes) from the ClusterDriver class and updates state +as appropriate. + +The class should handle spec-requirements for: + + - Range checking (CONSTRAINT_ERROR) + - Attribute and metadata storage (persistent or in-memory) + - Data dependencies between commands and attributes + - Event generation / dirty attributes (callback to server) + - Calling driver when platform or hardware interactions are required + +API recommendation: + + - Maintain all cluster state in a separate data-only class. + - Provider getters/setters for application logic to use. + - Implement handlers for all commands, conditional on features. + - Let the caller provide (inject) dependencies. Avoid explicit memory + management. + +### ClusterDriver + +Implements hardware or platform-specific actions required on cluster +interactions or when application wants to report state changes. + +![](./img/unit_testable_clusters_driver.png) + +### MatterContext + +The ClusterLogic class must not directly use global resource because they cannot +be isolated for testing. Instead, the MatterContext holds pointers to Matter +stack objects, which can be be injected / faked for testing. This includes - +Wrapper over IM Engine interface functions for marking attributes dirty, and +logging events. - Storage - Anything you would normally access with +Server::GetInstance() + +![](./img/unit_testable_clusters_context.png) + +### ClusterDriver + +The ClusterDriver is called by the ClusterLogic class and is used to translate +attribute changes and commands into application actions. It also reports +external changes back to the ClusterLogic class. + +The API design for this class will vary by the cluster, but it is generally +recommended to use a generic API where possible, so the API ports easily to +other platforms, for example an attribute changed callback with the changes +listed. It is important to be careful about the design and revisit this early if +issues arise. + +## Unit testing with the modular cluster design + +### ClusterLogic class + +The unit test instantiates the ClusterLogic, provides MatterContext and +ClusterDriver instance with fakes/mocks for testing. + +Unit test against the API, and check the fakes/mocks to ensure they are being +called as appropriate. + +As with all unit tests, prefer testing for behavior rather than implementation +details. + +Important tests to consider: + +- Initialization and initial attribute correctness. +- Errors for out-of-range on all attribute setters and command handlers. +- All spec-defined error conditions, especially ones that are difficult to + trigger. +- Data dependencies between commands and attributes. +- Incoming actions in different states (stopped, running, etc). +- Calls out to storage for persistent attributes. +- Calls out to driver for changes as appropriate. +- Driver error reporting. +- Event generation and dirty attribute marking, including attributes that are + changed from the driver side. +- Others - very dependent on the cluster. + +# Unit testing ClusterServer + +- Best to have the lightest wrapping possible + - If the wrapper is light, the code can be covered by integration or unit + tests, or a combination. + - Correctness can mostly be validated by inspection if it’s trivial. +- Important tests + - Errors when ClusterLogic instances aren’t properly registered. + - Flow through to ClusterLogic for all reads/writes/commands. +- Can unit test this class by generating the TLV / path for input, parsing the + TLV output. + +# Unit testing existing clusters + +- Important for clusters where there are multiple configurations that cannot + easily be represented with example apps +- Option 1 + - Refactor the cluster logic to be unit-testable. +- Option 2 + - Test at AttributeAccessInterface boundary. + - Instantiate or access the cluster server instance in the test. + - Read / Write TLV and use TLV encode/decode functions to verify + correctness. + - See TestPowerSourceCluster for an example of how to do this +- Additional test coverage on clusters, especially for hard to trigger + conditions, is important. However, **don’t let perfection be the enemy of + progress** . diff --git a/docs/testing/yaml.md b/docs/testing/yaml.md index 2099d623c1b3db..9f65b1fed426b5 100644 --- a/docs/testing/yaml.md +++ b/docs/testing/yaml.md @@ -279,6 +279,17 @@ function can be use. See [TestEqualities](https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites/TestEqualities.yaml) for an example of how to use this pseudo-cluster. +#### Setting step timeouts + +The timeout argument can be used for each individual test step to set the time +the runner will wait for a test step to complete before reporting a failure. + +Note that this timeout is different than the subscription report timeout and the +subscription report timeout is not currently adjustable in YAML. + +There several other options for configuring test steps as shown in the +[YAML schema](./yaml_schema.md) document. + ## Running YAML tests YAML scripts are parsed and run using a python-based runner program that parses @@ -293,12 +304,35 @@ All YAML tests assume that the DUT has previously been commissioned before running. DUTs should be commissioned using chip-tool. Use the same KVS file when running the test. +By default, the tests use node ID 0x12344321. The easiest way to run the tests +is to commission with this node ID. Alternately, you can change the target node +ID on the command line, as shown in the [Running the tests](#running-the-tests) +section. + #### Running the tests There are several options for running tests locally. Because the YAML runner uses python, it is necessary to compile and install the chip python package before using any YAML runner script. +First activate the matter environment using either + +``` +. ./scripts/bootstrap.sh +``` + +or + +``` +. ./scripts/activate.sh +``` + +bootstrap.sh should be used for for the first setup, activate.sh may be used for +subsequent setups as it is faster. + +Next build the python wheels and create a venv (called `py` here, but any name +may be used) + ``` ./scripts/build_python.sh -i py source py/bin/activate @@ -313,12 +347,21 @@ Compile chip-tool: NOTE: use the target appropriate to your system -[chiptool.py](https://github.com/project-chip/connectedhomeip/blob/master/scripts/tests/yaml/chiptool.py) +[chiptool.py](https://github.com/project-chip/connectedhomeip/blob/master/scripts/tests/chipyaml/chiptool.py) can be used to run tests against a commissioned DUT (commissioned by chip-tool). -This will start an interactive instance of chip-tool automatically. +To commission a DUT using chip-tool use the pairing command. For example: + +``` +./out/linux-x64-chip-tool/chip-tool pairing code 0x12344321 MT:-24J0AFN00KA0648G00 +``` + +In this example, 0x12344321 is the node ID (0x12344321 is the test default) and +MT:-24J0AFN00KA0648G00 is the QR code. + +The chiptool.py tool can then be used to run the tests. For example: ``` -./scripts/tests/yaml/chiptool.py tests Test_TC_OO_2_1 --server_path ./out/linux-x64-chip-tool/chip-tool +./scripts/tests/chipyaml/chiptool.py tests Test_TC_OO_2_1 --server_path ./out/linux-x64-chip-tool/chip-tool ``` @@ -327,17 +370,21 @@ NOTE: substitute the appropriate test name and chip-tool path as appropriate. A list of available tests can be generated using: ``` -./scripts/tests/yaml/chiptool.py list +./scripts/tests/chipyaml/chiptool.py list ``` Config variables can be passed to chiptool.py after the script by separating with -- ``` -./scripts/tests/yaml/chiptool.py tests Test_TC_OO_2_1 --server_path ./out/linux-x64-chip-tool/chip-tool -- nodeId 0x12344321 +./scripts/tests/chipyaml/chiptool.py tests Test_TC_OO_2_1 --server_path ./out/linux-x64-chip-tool/chip-tool -- nodeId 0x12344321 ``` +Each test defines a default endpoint to target. Root node cluster tests run +against endpoint 0 by default. Most other cluster tests run against endpoint 1. +You can set the endpoint for the test using the `endpoint` config variable. + #### Factory resetting the DUT On the host machine, you can simulate a factory reset by deleting the KVS file. diff --git a/docs/tools/index.md b/docs/tools/index.md index 14ab8640c61bae..003573ed5ebb14 100644 --- a/docs/tools/index.md +++ b/docs/tools/index.md @@ -28,7 +28,6 @@ Source files for these tools are located at `scripts/tools`. ../scripts/tools/memory/README ../scripts/tools/spake2p/README -../src/tools/interop/idt/README ``` diff --git a/docs/upgrading.md b/docs/upgrading.md new file mode 100644 index 00000000000000..cd18b533484279 --- /dev/null +++ b/docs/upgrading.md @@ -0,0 +1,62 @@ +# Upgrading notes + +## API changes and code migration + +### `CommandHandler` + +`CommandHandler` ability to directly invoke `Prepare/TLV-Write/Finish` cycles +has been changed to only expose `AddResponse/AddStatus/AddClusterSpecific*`. + +Original versions of `CommandHandler` exposed the following low-level +implementation-specific methods: `PrepareCommand`, +`PrepareInvokeResponseCommand`, `GetCommandDataIBTLVWriter` and `FinishCommand`. +These are not exposed anymore and instead one should use `AddResponse` or +`AddResponseData`. When using an `EncodableToTLV` argument, the same +functionality should be achievable. + +Example + +Before: + +```cpp + +const CommandHandler::InvokeResponseParameters prepareParams(requestPath); +ReturnOnFailure(commandHandler->PrepareInvokeResponseCommand(path, prepareParams)); + +TLV::TLVWriter *writer = commandHandler->GetCommandDataIBTLVWriter(); +ReturnOnFailure(writer->Put(chip::TLV::ContextTag(1), 123)); +ReturnOnFailure(writer->Put(chip::TLV::ContextTag(2), 234)); +return commandHandler->FinishCommand(); +``` + +After: + +```cpp + +class ReplyEncoder : public DataModel::EncodableToTLV +{ +public: + CHIP_ERROR EncodeTo(TLV::TLVWriter & writer, TLV::Tag tag) const override + { + TLV::TLVType outerType; + ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outerType)); + + ReturnOnFailure(writer.Put(chip::TLV::ContextTag(1), 123)); + ReturnOnFailure(writer.Put(chip::TLV::ContextTag(2), 234)); + + return writer.EndContainer(outerType); + } +}; + +// ... +ReplyEncoder replyEncoder; +commandHandler->AddResponse(path, kReplyCommandId, replyEncoder); + +// or if error handling is implemented: +// +// ReturnErrorOnFailure(commandHandler->AddResponseData(path, kReplyCommandId, replyEncoder)); +// +// In many cases error recovery from not being able to send a reply is not easy or expected, +// so code does AddResponse rather than AddResponseData. + +``` diff --git a/docs/zap_clusters.md b/docs/zap_clusters.md new file mode 100644 index 00000000000000..7651e35b784ed1 --- /dev/null +++ b/docs/zap_clusters.md @@ -0,0 +1,136 @@ + + +## List of currently defined ZAP clusters + +| Code (dec) | Code (hex) | Name | +| ---------- | ---------- | ------------------------------------------------------- | +| 3 | 0x03 | Identify | +| 4 | 0x04 | Groups | +| 6 | 0x06 | OnOff | +| 7 | 0x07 | OnOffSwitchConfiguration | +| 8 | 0x08 | LevelControl | +| 15 | 0x0F | BinaryInputBasic | +| 28 | 0x1C | PulseWidthModulation | +| 29 | 0x1D | Descriptor | +| 30 | 0x1E | Binding | +| 31 | 0x1F | AccessControl | +| 37 | 0x25 | Actions | +| 40 | 0x28 | BasicInformation | +| 41 | 0x29 | OtaSoftwareUpdateProvider | +| 42 | 0x2A | OtaSoftwareUpdateRequestor | +| 43 | 0x2B | LocalizationConfiguration | +| 44 | 0x2C | TimeFormatLocalization | +| 45 | 0x2D | UnitLocalization | +| 46 | 0x2E | PowerSourceConfiguration | +| 47 | 0x2F | PowerSource | +| 48 | 0x30 | GeneralCommissioning | +| 49 | 0x31 | NetworkCommissioning | +| 50 | 0x32 | DiagnosticLogs | +| 51 | 0x33 | GeneralDiagnostics | +| 52 | 0x34 | SoftwareDiagnostics | +| 53 | 0x35 | ThreadNetworkDiagnostics | +| 54 | 0x36 | WiFiNetworkDiagnostics | +| 55 | 0x37 | EthernetNetworkDiagnostics | +| 56 | 0x38 | TimeSynchronization | +| 57 | 0x39 | BridgedDeviceBasicInformation | +| 59 | 0x3B | Switch | +| 60 | 0x3C | AdministratorCommissioning | +| 62 | 0x3E | OperationalCredentials | +| 63 | 0x3F | GroupKeyManagement | +| 64 | 0x40 | FixedLabel | +| 65 | 0x41 | UserLabel | +| 66 | 0x42 | ProxyConfiguration | +| 67 | 0x43 | ProxyDiscovery | +| 68 | 0x44 | ProxyValid | +| 69 | 0x45 | BooleanState | +| 70 | 0x46 | IcdManagement | +| 71 | 0x47 | Timer | +| 72 | 0x48 | OvenCavityOperationalState | +| 73 | 0x49 | OvenMode | +| 74 | 0x4A | LaundryDryerControls | +| 80 | 0x50 | ModeSelect | +| 81 | 0x51 | LaundryWasherMode | +| 82 | 0x52 | RefrigeratorAndTemperatureControlledCabinetMode | +| 83 | 0x53 | LaundryWasherControls | +| 84 | 0x54 | RvcRunMode | +| 85 | 0x55 | RvcCleanMode | +| 86 | 0x56 | TemperatureControl | +| 87 | 0x57 | RefrigeratorAlarm | +| 89 | 0x59 | DishwasherMode | +| 91 | 0x5B | AirQuality | +| 92 | 0x5C | SmokeCoAlarm | +| 93 | 0x5D | DishwasherAlarm | +| 94 | 0x5E | MicrowaveOvenMode | +| 95 | 0x5F | MicrowaveOvenControl | +| 96 | 0x60 | OperationalState | +| 97 | 0x61 | RvcOperationalState | +| 98 | 0x62 | ScenesManagement | +| 113 | 0x71 | HepaFilterMonitoring | +| 114 | 0x72 | ActivatedCarbonFilterMonitoring | +| 128 | 0x80 | BooleanStateConfiguration | +| 129 | 0x81 | ValveConfigurationAndControl | +| 144 | 0x90 | ElectricalPowerMeasurement | +| 145 | 0x91 | ElectricalEnergyMeasurement | +| 150 | 0x96 | DemandResponseLoadControl | +| 151 | 0x97 | Messages | +| 152 | 0x98 | DeviceEnergyManagement | +| 153 | 0x99 | EnergyEvse | +| 155 | 0x9B | EnergyPreference | +| 156 | 0x9C | PowerTopology | +| 157 | 0x9D | EnergyEvseMode | +| 159 | 0x9F | DeviceEnergyManagementMode | +| 257 | 0x101 | DoorLock | +| 258 | 0x102 | WindowCovering | +| 259 | 0x103 | BarrierControl | +| 336 | 0x150 | ServiceArea | +| 512 | 0x200 | PumpConfigurationAndControl | +| 513 | 0x201 | Thermostat | +| 514 | 0x202 | FanControl | +| 516 | 0x204 | ThermostatUserInterfaceConfiguration | +| 768 | 0x300 | ColorControl | +| 769 | 0x301 | BallastConfiguration | +| 1024 | 0x400 | IlluminanceMeasurement | +| 1026 | 0x402 | TemperatureMeasurement | +| 1027 | 0x403 | PressureMeasurement | +| 1028 | 0x404 | FlowMeasurement | +| 1029 | 0x405 | RelativeHumidityMeasurement | +| 1030 | 0x406 | OccupancySensing | +| 1036 | 0x40C | CarbonMonoxideConcentrationMeasurement | +| 1037 | 0x40D | CarbonDioxideConcentrationMeasurement | +| 1043 | 0x413 | NitrogenDioxideConcentrationMeasurement | +| 1045 | 0x415 | OzoneConcentrationMeasurement | +| 1066 | 0x42A | Pm25ConcentrationMeasurement | +| 1067 | 0x42B | FormaldehydeConcentrationMeasurement | +| 1068 | 0x42C | Pm1ConcentrationMeasurement | +| 1069 | 0x42D | Pm10ConcentrationMeasurement | +| 1070 | 0x42E | TotalVolatileOrganicCompoundsConcentrationMeasurement | +| 1071 | 0x42F | RadonConcentrationMeasurement | +| 1105 | 0x451 | WiFiNetworkManagement | +| 1106 | 0x452 | ThreadBorderRouterManagement | +| 1107 | 0x453 | ThreadNetworkDirectory | +| 1283 | 0x503 | WakeOnLan | +| 1284 | 0x504 | Channel | +| 1285 | 0x505 | TargetNavigator | +| 1286 | 0x506 | MediaPlayback | +| 1287 | 0x507 | MediaInput | +| 1288 | 0x508 | LowPower | +| 1289 | 0x509 | KeypadInput | +| 1290 | 0x50A | ContentLauncher | +| 1291 | 0x50B | AudioOutput | +| 1292 | 0x50C | ApplicationLauncher | +| 1293 | 0x50D | ApplicationBasic | +| 1294 | 0x50E | AccountLogin | +| 1295 | 0x50F | ContentControl | +| 1296 | 0x510 | ContentAppObserver | +| 2820 | 0xB04 | ElectricalMeasurement | +| 4294048773 | 0xFFF1FC05 | UnitTesting | +| 4294048774 | 0xFFF1FC06 | FaultInjection | +| 4294048800 | 0xFFF1FC20 | SampleMei | diff --git a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter index caedd98bf1be48..7dd6e1762ce1c7 100644 --- a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter +++ b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter @@ -241,7 +241,7 @@ cluster BasicInformation = 40 { readonly attribute optional char_string<32> serialNumber = 15; attribute access(write: manage) optional boolean localConfigDisabled = 16; readonly attribute optional boolean reachable = 17; - readonly attribute optional char_string<32> uniqueID = 18; + readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; readonly attribute optional ProductAppearanceStruct productAppearance = 20; readonly attribute int32u specificationVersion = 21; @@ -567,9 +567,9 @@ cluster NetworkCommissioning = 49 { readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5; readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; - readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; - readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; - readonly attribute optional int16u threadVersion = 10; + provisional readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; + provisional readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; + provisional readonly attribute optional int16u threadVersion = 10; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/air-purifier-app/air-purifier-common/air-purifier-app.zap b/examples/air-purifier-app/air-purifier-common/air-purifier-app.zap index 516cb763153e1f..9d65016495b691 100644 --- a/examples/air-purifier-app/air-purifier-common/air-purifier-app.zap +++ b/examples/air-purifier-app/air-purifier-common/air-purifier-app.zap @@ -1,6 +1,6 @@ { "fileFormat": 2, - "featureLevel": 100, + "featureLevel": 103, "creator": "zap", "keyValuePairs": [ { @@ -29,6 +29,7 @@ "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/app-templates.json", "type": "gen-templates-json", + "category": "matter", "version": "chip-v1" } ], diff --git a/examples/air-purifier-app/ameba/chip_main.cmake b/examples/air-purifier-app/ameba/chip_main.cmake index df900f2508de17..c2a8d0e928fa0c 100755 --- a/examples/air-purifier-app/ameba/chip_main.cmake +++ b/examples/air-purifier-app/ameba/chip_main.cmake @@ -204,7 +204,6 @@ target_include_directories( ${chip_dir}/src/app/server/ ${chip_dir}/src/controller/data_model ${chip_dir}/third_party/nlio/repo/include/ - ${chip_dir}/third_party/nlunit-test/repo/src ) if (matter_enable_rpc) diff --git a/examples/air-purifier-app/ameba/main/CHIPDeviceManager.cpp b/examples/air-purifier-app/ameba/main/CHIPDeviceManager.cpp index 0c73b5506f0849..ff8b0b0166939e 100644 --- a/examples/air-purifier-app/ameba/main/CHIPDeviceManager.cpp +++ b/examples/air-purifier-app/ameba/main/CHIPDeviceManager.cpp @@ -84,10 +84,9 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); SetDeviceInstanceInfoProvider(&mFactoryDataProvider); - if (CONFIG_NETWORK_LAYER_BLE) - { - ConnectivityMgr().SetBLEAdvertisingEnabled(true); - } +#if CONFIG_NETWORK_LAYER_BLE + ConnectivityMgr().SetBLEAdvertisingEnabled(true); +#endif PlatformMgr().AddEventHandler(CHIPDeviceManager::CommonDeviceEventHandler, reinterpret_cast(cb)); diff --git a/examples/air-purifier-app/ameba/main/DeviceCallbacks.cpp b/examples/air-purifier-app/ameba/main/DeviceCallbacks.cpp index 42551f7cb40579..deb3731f1b25d4 100644 --- a/examples/air-purifier-app/ameba/main/DeviceCallbacks.cpp +++ b/examples/air-purifier-app/ameba/main/DeviceCallbacks.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/air-purifier-app/ameba/main/chipinterface.cpp b/examples/air-purifier-app/ameba/main/chipinterface.cpp index 264ad532b513aa..0829bb041e4882 100644 --- a/examples/air-purifier-app/ameba/main/chipinterface.cpp +++ b/examples/air-purifier-app/ameba/main/chipinterface.cpp @@ -30,13 +30,16 @@ #include #include #include -#include +#include #include #include #include #include #include #include +#if CONFIG_ENABLE_AMEBA_CRYPTO +#include +#endif #include @@ -130,6 +133,12 @@ static void InitServer(intptr_t context) // Init ZCL Data Model and CHIP App Server static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); +#if CONFIG_ENABLE_AMEBA_CRYPTO + ChipLogProgress(DeviceLayer, "platform crypto enabled!"); + static chip::AmebaPersistentStorageOperationalKeystore sAmebaPersistentStorageOpKeystore; + VerifyOrDie((sAmebaPersistentStorageOpKeystore.Init(initParams.persistentStorageDelegate)) == CHIP_NO_ERROR); + initParams.operationalKeystore = &sAmebaPersistentStorageOpKeystore; +#endif chip::Server::GetInstance().Init(initParams); gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); diff --git a/examples/air-purifier-app/cc32xx/BUILD.gn b/examples/air-purifier-app/cc32xx/BUILD.gn index f79e76c82ce0d3..f9993edeba692b 100755 --- a/examples/air-purifier-app/cc32xx/BUILD.gn +++ b/examples/air-purifier-app/cc32xx/BUILD.gn @@ -100,6 +100,7 @@ ti_simplelink_executable("air-purifier_app") { "${chip_root}/examples/air-purifier-app/air-purifier-common", "${chip_root}/examples/platform/cc32xx:cc32xx-attestation-credentials", "${chip_root}/src/lib", + "${chip_root}/src/platform/logging:default", "${chip_root}/src/setup_payload", ] diff --git a/examples/air-purifier-app/linux/README.md b/examples/air-purifier-app/linux/README.md index d2352bca201e1a..2d771bdf5b5ff4 100644 --- a/examples/air-purifier-app/linux/README.md +++ b/examples/air-purifier-app/linux/README.md @@ -11,7 +11,8 @@ Temperature Sensor and Endpoint 5 is a Thermostat. To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** **EVK**, see the associated -[README document](../../../docs/guides/nxp_imx8m_linux_examples.md) for details. +[README document](../../../docs/guides/nxp/nxp_imx8m_linux_examples.md) for +details.
    diff --git a/examples/air-purifier-app/linux/main.cpp b/examples/air-purifier-app/linux/main.cpp index 98d8d405cfadfb..0335ebcaac3bba 100644 --- a/examples/air-purifier-app/linux/main.cpp +++ b/examples/air-purifier-app/linux/main.cpp @@ -20,7 +20,6 @@ #include #include #include -#include #include #define AIR_PURIFIER_ENDPOINT 1 diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter index 48db2c71b380bb..1191c5f55c0c67 100644 --- a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter +++ b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter @@ -241,7 +241,7 @@ cluster BasicInformation = 40 { readonly attribute optional char_string<32> serialNumber = 15; attribute access(write: manage) optional boolean localConfigDisabled = 16; readonly attribute optional boolean reachable = 17; - readonly attribute optional char_string<32> uniqueID = 18; + readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; readonly attribute optional ProductAppearanceStruct productAppearance = 20; readonly attribute int32u specificationVersion = 21; @@ -567,9 +567,9 @@ cluster NetworkCommissioning = 49 { readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5; readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; - readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; - readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; - readonly attribute optional int16u threadVersion = 10; + provisional readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; + provisional readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; + provisional readonly attribute optional int16u threadVersion = 10; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.zap b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.zap index 1ba46389e28a9e..023a19864173c0 100644 --- a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.zap +++ b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.zap @@ -1,6 +1,6 @@ { "fileFormat": 2, - "featureLevel": 100, + "featureLevel": 103, "creator": "zap", "keyValuePairs": [ { @@ -29,6 +29,7 @@ "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/app-templates.json", "type": "gen-templates-json", + "category": "matter", "version": "chip-v1" } ], @@ -2742,7 +2743,7 @@ ] }, { - "name": "WiFi Network Diagnostics", + "name": "Wi-Fi Network Diagnostics", "code": 54, "mfgCode": null, "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", diff --git a/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.cpp b/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.cpp index 41a53d4fd94c7d..7aaa873a906706 100644 --- a/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.cpp +++ b/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.cpp @@ -30,6 +30,7 @@ #include #include +#include using namespace chip; using namespace chip::app; diff --git a/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.h b/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.h index e608b7a671457d..88b60d13174300 100644 --- a/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.h +++ b/examples/air-quality-sensor-app/linux/AirQualitySensorAppAttrUpdateDelegate.h @@ -23,6 +23,8 @@ #include #include +#include + class AirQualitySensorAttrUpdateHandler { public: diff --git a/examples/air-quality-sensor-app/linux/README.md b/examples/air-quality-sensor-app/linux/README.md index 38a0adfb2fe7bf..ef90a4bd23df9f 100644 --- a/examples/air-quality-sensor-app/linux/README.md +++ b/examples/air-quality-sensor-app/linux/README.md @@ -7,7 +7,8 @@ for Raspberry Pi Desktop 20.10 (aarch64)** To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** **EVK**, see the associated -[README document](../../../docs/guides/nxp_imx8m_linux_examples.md) for details. +[README document](../../../docs/guides/nxp/nxp_imx8m_linux_examples.md) for +details.
    @@ -136,10 +137,11 @@ $ echo '{"Name":"TemperatureMeasurement","NewValue":1800}' > /tmp/chip_air_quali ### Trigger Humidity change event -Generate event `RelativeHumidityMeasurement`, to change the temperate value. +Generate event `RelativeHumidityMeasurement`, to change the relative humidity +value (6000 for 60,0 %). ``` -$ echo '{"Name":"RelativeHumidityMeasurement","NewValue":60}' > /tmp/chip_air_quality_fifo_ +$ echo '{"Name":"RelativeHumidityMeasurement","NewValue":6000}' > /tmp/chip_air_quality_fifo_ ``` ### Trigger concentration change event @@ -183,3 +185,10 @@ Generate event `Pm10ConcentrationMeasurement`, to change the PM10 value. ``` echo '{"Name":"Pm10ConcentrationMeasurement","NewValue":10}' > /tmp/chip_air_quality_fifo_ ``` + +Generate event `TotalVolatileOrganicCompoundsConcentrationMeasurement`, to +change the TVOC value. + +``` +$ echo '{"Name":"TotalVolatileOrganicCompoundsConcentrationMeasurement","NewValue":100}' > /tmp/chip_air_quality_fifo_ +``` diff --git a/examples/air-quality-sensor-app/linux/main.cpp b/examples/air-quality-sensor-app/linux/main.cpp index 9dee0c20982f0a..39a13ba1c8e20c 100644 --- a/examples/air-quality-sensor-app/linux/main.cpp +++ b/examples/air-quality-sensor-app/linux/main.cpp @@ -20,9 +20,10 @@ #include #include -#include #include +#include + #if defined(CHIP_IMGUI_ENABLED) && CHIP_IMGUI_ENABLED #include #include diff --git a/examples/air-quality-sensor-app/telink/CMakeLists.txt b/examples/air-quality-sensor-app/telink/CMakeLists.txt index 5ed8c314f1b334..4d34c74fcdba68 100644 --- a/examples/air-quality-sensor-app/telink/CMakeLists.txt +++ b/examples/air-quality-sensor-app/telink/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 Project CHIP Authors +# Copyright (c) 2023-2024 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. @@ -13,70 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # + cmake_minimum_required(VERSION 3.13.1) get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH) get_filename_component(TELINK_COMMON ${CHIP_ROOT}/examples/platform/telink REALPATH) get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH) -set(ignoreMe "${TLNK_MARS_BOARD}") - -if(${TLNK_MARS_BOARD} MATCHES y) - if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.overlay") - set(MARS_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.overlay") - else() - unset(MARS_DTC_OVERLAY_FILE) - endif() - if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.conf") - set(MARS_CONF_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.conf") - else() - unset(MARS_CONF_OVERLAY_FILE) - endif() -else() - unset(MARS_CONF_OVERLAY_FILE) -endif() - -if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay") - set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay") -else() - unset(LOCAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay") - set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay") -else() - unset(GLOBAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b") -else() - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay") - message(STATUS "Flash memory size is set to: 2mb") -endif() - -if(DTC_OVERLAY_FILE) - set(DTC_OVERLAY_FILE - "${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${MARS_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}" - CACHE STRING "" FORCE - ) -else() - set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${MARS_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}) -endif() - -set(CONF_FILE ${MARS_CONF_OVERLAY_FILE} prj.conf) - -# Load NCS/Zephyr build system -list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module) -find_package(Zephyr HINTS $ENV{ZEPHYR_BASE}) - -project(chip-telink-air-quality-sensor-example) - +include(${TELINK_COMMON}/common.cmake) include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake) include(${CHIP_ROOT}/src/app/chip_data_model.cmake) -target_compile_options(app PRIVATE -fpermissive) +project(chip-telink-air-quality-sensor-example) target_include_directories(app PRIVATE include @@ -84,7 +32,8 @@ target_include_directories(app PRIVATE ${GEN_DIR}/air-quality-sensor-app ${TELINK_COMMON}/common/include ${TELINK_COMMON}/util/include - ${CHIP_ROOT}/examples/air-quality-sensor-app/air-quality-sensor-common/include) + ${CHIP_ROOT}/examples/air-quality-sensor-app/air-quality-sensor-common/include + ${TELINK_COMMON}/zephyr_ext) target_sources(app PRIVATE src/AppTask.cpp @@ -92,12 +41,16 @@ target_sources(app PRIVATE ${TELINK_COMMON}/common/src/mainCommon.cpp ${TELINK_COMMON}/common/src/AppTaskCommon.cpp ${TELINK_COMMON}/common/src/SensorManagerCommon.cpp - ${TELINK_COMMON}/util/src/LEDWidget.cpp + ${TELINK_COMMON}/util/src/LEDManager.cpp ${TELINK_COMMON}/util/src/ButtonManager.cpp ${TELINK_COMMON}/util/src/ThreadUtil.cpp - ${TELINK_COMMON}/util/src/PWMDevice.cpp - ${TELINK_COMMON}/util/src/WS2812Device.cpp - ${CHIP_ROOT}/examples/air-quality-sensor-app/air-quality-sensor-common/src/air-quality-sensor-manager.cpp) + ${TELINK_COMMON}/util/src/PWMManager.cpp + ${CHIP_ROOT}/examples/air-quality-sensor-app/air-quality-sensor-common/src/air-quality-sensor-manager.cpp + ${TELINK_COMMON}/zephyr_ext/zephyr_key_matrix.c + ${TELINK_COMMON}/zephyr_ext/zephyr_key_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_led_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_pwm_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_ws2812.c) chip_configure_data_model(app INCLUDE_SERVER diff --git a/examples/air-quality-sensor-app/telink/README.md b/examples/air-quality-sensor-app/telink/README.md index 015e613d40896f..64b394c046b51a 100644 --- a/examples/air-quality-sensor-app/telink/README.md +++ b/examples/air-quality-sensor-app/telink/README.md @@ -25,7 +25,7 @@ You can use this example as a reference for creating your own application. ``` 3. In the example dir run (replace __ with your board name, for - example, `tlsr9518adk80d`, `tlsr9528a` or `tlsr9258a`): + example, `tlsr9118bdk40d`, `tlsr9518adk80d`, `tlsr9528a` or `tlsr9258a`): ```bash $ west build -b diff --git a/examples/air-quality-sensor-app/telink/include/AppConfig.h b/examples/air-quality-sensor-app/telink/include/AppConfig.h index 7513ed3771b961..0888260c26a7f1 100644 --- a/examples/air-quality-sensor-app/telink/include/AppConfig.h +++ b/examples/air-quality-sensor-app/telink/include/AppConfig.h @@ -20,11 +20,5 @@ // ---- Air Quality Example App Config ---- -#define APP_USE_EXAMPLE_START_BUTTON 1 -#define APP_USE_BLE_START_BUTTON 0 -#define APP_USE_THREAD_START_BUTTON 0 #define APP_SET_DEVICE_INFO_PROVIDER 1 #define APP_SET_NETWORK_COMM_ENDPOINT_SEC 0 -#if defined(CONFIG_BOARD_TLSR9518ADK80D) || defined(CONFIG_BOARD_TLSR9528A) -#define APP_USE_IDENTIFY_PWM 1 -#endif diff --git a/examples/air-quality-sensor-app/telink/prj.conf b/examples/air-quality-sensor-app/telink/prj.conf index b43fbe9636d9aa..467a5831f16307 100644 --- a/examples/air-quality-sensor-app/telink/prj.conf +++ b/examples/air-quality-sensor-app/telink/prj.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 Project CHIP Authors +# Copyright (c) 2023-2024 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. @@ -14,7 +14,7 @@ # limitations under the License. # -# This sample uses sample-defaults.conf to set options common for all +# This sample uses Kconfig.defaults to set options common for all # samples. This file should contain only options specific for this sample # or overrides of default values. @@ -22,10 +22,6 @@ CONFIG_CHIP=y CONFIG_STD_CPP17=y -# CHIP configuration -CONFIG_CHIP_PROJECT_CONFIG="include/CHIPProjectConfig.h" -CONFIG_CHIP_OPENTHREAD_CONFIG="../../platform/telink/project_include/OpenThreadConfig.h" - # 32774 == 0x8006 (example air-quality-sensor-app) CONFIG_CHIP_DEVICE_PRODUCT_ID=32774 @@ -36,9 +32,6 @@ CONFIG_BT_DEVICE_NAME="TelinkSensor" CONFIG_CHIP_OTA_REQUESTOR=n CONFIG_CHIP_DEVICE_SOFTWARE_VERSION=1 -# Enable CHIP pairing automatically on application start. -CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y - # Disable CHIP shell support CONFIG_CHIP_LIB_SHELL=n diff --git a/examples/air-quality-sensor-app/telink/src/AppTask.cpp b/examples/air-quality-sensor-app/telink/src/AppTask.cpp index ac2f61b3c06f52..da0f80ec9c15f7 100644 --- a/examples/air-quality-sensor-app/telink/src/AppTask.cpp +++ b/examples/air-quality-sensor-app/telink/src/AppTask.cpp @@ -37,9 +37,7 @@ CHIP_ERROR AppTask::Init(void) { CHIP_ERROR err; -#if APP_USE_EXAMPLE_START_BUTTON SetExampleButtonCallbacks(AirQualitySensorUpdateTimerEventHandler); -#endif InitCommonParts(); err = SensorMgr().Init(); 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 2c54d75c7e6b06..f3b7b0d6b6e427 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 @@ -820,7 +820,7 @@ cluster BasicInformation = 40 { readonly attribute optional char_string<32> serialNumber = 15; attribute access(write: manage) optional boolean localConfigDisabled = 16; readonly attribute optional boolean reachable = 17; - readonly attribute optional char_string<32> uniqueID = 18; + readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; readonly attribute optional ProductAppearanceStruct productAppearance = 20; readonly attribute int32u specificationVersion = 21; @@ -1505,9 +1505,9 @@ cluster NetworkCommissioning = 49 { readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5; readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; - readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; - readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; - readonly attribute optional int16u threadVersion = 10; + provisional readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; + provisional readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; + provisional readonly attribute optional int16u threadVersion = 10; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2257,6 +2257,7 @@ cluster Switch = 59 { kMomentarySwitchRelease = 0x4; kMomentarySwitchLongPress = 0x8; kMomentarySwitchMultiPress = 0x10; + kActionSwitch = 0x20; } info event SwitchLatched = 0 { @@ -2609,7 +2610,7 @@ cluster BooleanState = 69 { } /** This cluster supports remotely monitoring and, where supported, changing the operational state of an Oven. */ -provisional cluster OvenCavityOperationalState = 72 { +cluster OvenCavityOperationalState = 72 { revision 1; enum ErrorStateEnum : enum8 { @@ -2675,7 +2676,7 @@ provisional cluster OvenCavityOperationalState = 72 { } /** Attributes and commands for selecting a mode from a list of supported options. */ -provisional cluster OvenMode = 73 { +cluster OvenMode = 73 { revision 1; enum ModeTag : enum16 { @@ -2730,9 +2731,9 @@ provisional cluster OvenMode = 73 { command ChangeToMode(ChangeToModeRequest): ChangeToModeResponse = 0; } -/** This cluster supports remotely monitoring and controling the different typs of - functionality available to a drying device, such as a laundry dryer. */ -provisional cluster LaundryDryerControls = 74 { +/** This cluster provides a way to access options associated with the operation of + a laundry dryer device type. */ +cluster LaundryDryerControls = 74 { revision 1; enum DrynessLevelEnum : enum8 { @@ -3334,7 +3335,7 @@ cluster DishwasherAlarm = 93 { } /** Attributes and commands for selecting a mode from a list of supported options. */ -provisional cluster MicrowaveOvenMode = 94 { +cluster MicrowaveOvenMode = 94 { revision 1; enum ModeTag : enum16 { @@ -3512,14 +3513,21 @@ provisional cluster ScenesManagement = 98 { kSceneNames = 0x1; } - struct AttributeValuePair { + struct AttributeValuePairStruct { attrib_id attributeID = 0; - int32u attributeValue = 1; + optional int8u valueUnsigned8 = 1; + optional int8s valueSigned8 = 2; + optional int16u valueUnsigned16 = 3; + optional int16s valueSigned16 = 4; + optional int32u valueUnsigned32 = 5; + optional int32s valueSigned32 = 6; + optional int64u valueUnsigned64 = 7; + optional int64s valueSigned64 = 8; } struct ExtensionFieldSet { cluster_id clusterID = 0; - AttributeValuePair attributeValueList[] = 1; + AttributeValuePairStruct attributeValueList[] = 1; } fabric_scoped struct SceneInfoStruct { @@ -3631,7 +3639,7 @@ provisional cluster ScenesManagement = 98 { int8u sceneIdentifierFrom = 2; } - /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */ + /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeID": VALUE, "Value*": VALUE}]}' */ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; /** Retrieves the requested scene entry from its Scene table. */ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; @@ -3752,7 +3760,7 @@ cluster ActivatedCarbonFilterMonitoring = 114 { } /** This cluster is used to configure a boolean sensor. */ -provisional cluster BooleanStateConfiguration = 128 { +cluster BooleanStateConfiguration = 128 { revision 1; bitmap AlarmModeBitmap : bitmap8 { @@ -3810,7 +3818,7 @@ provisional cluster BooleanStateConfiguration = 128 { } /** This cluster is used to configure a valve. */ -provisional cluster ValveConfigurationAndControl = 129 { +cluster ValveConfigurationAndControl = 129 { revision 1; enum StatusCodeEnum : enum8 { @@ -3876,7 +3884,7 @@ provisional cluster ValveConfigurationAndControl = 129 { } /** This cluster provides a mechanism for querying data about electrical power as measured by the server. */ -provisional cluster ElectricalPowerMeasurement = 144 { +cluster ElectricalPowerMeasurement = 144 { revision 1; enum MeasurementTypeEnum : enum16 { @@ -3981,7 +3989,7 @@ provisional cluster ElectricalPowerMeasurement = 144 { } /** This cluster provides a mechanism for querying data about the electrical energy imported or provided by the server. */ -provisional cluster ElectricalEnergyMeasurement = 145 { +cluster ElectricalEnergyMeasurement = 145 { revision 1; enum MeasurementTypeEnum : enum16 { @@ -4069,7 +4077,7 @@ provisional cluster ElectricalEnergyMeasurement = 145 { /** This cluster allows a client to manage the power draw of a device. An example of such a client could be an Energy Management System (EMS) which controls an Energy Smart Appliance (ESA). */ provisional cluster DeviceEnergyManagement = 152 { - revision 3; + revision 4; enum AdjustmentCauseEnum : enum8 { kLocalOptimization = 0; @@ -4130,6 +4138,12 @@ provisional cluster DeviceEnergyManagement = 152 { kOptOut = 3; } + enum PowerAdjustReasonEnum : enum8 { + kNoAdjustment = 0; + kLocalOptimizationAdjustment = 1; + kGridOptimizationAdjustment = 2; + } + bitmap Feature : bitmap32 { kPowerAdjustment = 0x1; kPowerForecastReporting = 0x2; @@ -4147,13 +4161,25 @@ provisional cluster DeviceEnergyManagement = 152 { optional int16u currency = 3; } + struct PowerAdjustStruct { + power_mw minPower = 0; + power_mw maxPower = 1; + elapsed_s minDuration = 2; + elapsed_s maxDuration = 3; + } + + struct PowerAdjustCapabilityStruct { + nullable PowerAdjustStruct powerAdjustCapability[] = 0; + PowerAdjustReasonEnum cause = 1; + } + struct SlotStruct { elapsed_s minDuration = 0; elapsed_s maxDuration = 1; elapsed_s defaultDuration = 2; elapsed_s elapsedSlotTime = 3; elapsed_s remainingSlotTime = 4; - optional boolean slotIsPauseable = 5; + optional boolean slotIsPausable = 5; optional elapsed_s minPauseDuration = 6; optional elapsed_s maxPauseDuration = 7; optional int16u manufacturerESAState = 8; @@ -4169,13 +4195,13 @@ provisional cluster DeviceEnergyManagement = 152 { } struct ForecastStruct { - int16u forecastId = 0; + int32u forecastID = 0; nullable int16u activeSlotNumber = 1; epoch_s startTime = 2; epoch_s endTime = 3; optional nullable epoch_s earliestStartTime = 4; optional epoch_s latestEndTime = 5; - boolean isPauseable = 6; + boolean isPausable = 6; SlotStruct slots[] = 7; ForecastUpdateReasonEnum forecastUpdateReason = 8; } @@ -4188,16 +4214,9 @@ provisional cluster DeviceEnergyManagement = 152 { optional int8s loadControl = 4; } - struct PowerAdjustStruct { - power_mw minPower = 0; - power_mw maxPower = 1; - elapsed_s minDuration = 2; - elapsed_s maxDuration = 3; - } - struct SlotAdjustmentStruct { int8u slotIndex = 0; - power_mw nominalPower = 1; + optional power_mw nominalPower = 1; elapsed_s duration = 2; } @@ -4222,7 +4241,7 @@ provisional cluster DeviceEnergyManagement = 152 { readonly attribute ESAStateEnum ESAState = 2; readonly attribute power_mw absMinPower = 3; readonly attribute power_mw absMaxPower = 4; - readonly attribute optional nullable PowerAdjustStruct powerAdjustmentCapability[] = 5; + readonly attribute optional nullable PowerAdjustCapabilityStruct powerAdjustmentCapability = 5; readonly attribute optional nullable ForecastStruct forecast = 6; readonly attribute optional OptOutStateEnum optOutState = 7; readonly attribute command_id generatedCommandList[] = 65528; @@ -4249,7 +4268,7 @@ provisional cluster DeviceEnergyManagement = 152 { } request struct ModifyForecastRequestRequest { - int32u forecastId = 0; + int32u forecastID = 0; SlotAdjustmentStruct slotAdjustments[] = 1; AdjustmentCauseEnum cause = 2; } @@ -4278,7 +4297,7 @@ provisional cluster DeviceEnergyManagement = 152 { } /** Electric Vehicle Supply Equipment (EVSE) is equipment used to charge an Electric Vehicle (EV) or Plug-In Hybrid Electric Vehicle. This cluster provides an interface to the functionality of Electric Vehicle Supply Equipment (EVSE) management. */ -provisional cluster EnergyEvse = 153 { +cluster EnergyEvse = 153 { revision 2; enum EnergyTransferStoppedReasonEnum : enum8 { @@ -4490,7 +4509,7 @@ provisional cluster EnergyPreference = 155 { } /** The Power Topology Cluster provides a mechanism for expressing how power is flowing between endpoints. */ -provisional cluster PowerTopology = 156 { +cluster PowerTopology = 156 { revision 1; bitmap Feature : bitmap32 { @@ -4511,7 +4530,7 @@ provisional cluster PowerTopology = 156 { } /** Attributes and commands for selecting a mode from a list of supported options. */ -provisional cluster EnergyEvseMode = 157 { +cluster EnergyEvseMode = 157 { revision 1; enum ModeTag : enum16 { @@ -5878,6 +5897,17 @@ cluster OccupancySensing = 1030 { kPhysicalContact = 3; } + bitmap Feature : bitmap32 { + kOther = 0x1; + kPassiveInfrared = 0x2; + kUltrasonic = 0x4; + kPhysicalContact = 0x8; + kActiveInfrared = 0x10; + kRadar = 0x20; + kRFSensing = 0x40; + kVision = 0x80; + } + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } @@ -5888,9 +5918,17 @@ cluster OccupancySensing = 1030 { kPhysicalContact = 0x4; } + struct HoldTimeLimitsStruct { + int16u holdTimeMin = 0; + int16u holdTimeMax = 1; + int16u holdTimeDefault = 2; + } + readonly attribute OccupancyBitmap occupancy = 0; readonly attribute OccupancySensorTypeEnum occupancySensorType = 1; readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2; + attribute access(write: manage) optional int16u holdTime = 3; + readonly attribute optional HoldTimeLimitsStruct holdTimeLimits = 4; attribute access(write: manage) optional int16u PIROccupiedToUnoccupiedDelay = 16; attribute access(write: manage) optional int16u PIRUnoccupiedToOccupiedDelay = 17; attribute access(write: manage) optional int8u PIRUnoccupiedToOccupiedThreshold = 18; @@ -6483,7 +6521,7 @@ cluster WakeOnLan = 1283 { revision 1; readonly attribute optional char_string<12> MACAddress = 0; - readonly attribute optional octet_string<16> linkLocalAddress = 1; + provisional readonly attribute optional octet_string<16> linkLocalAddress = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -7022,6 +7060,10 @@ internal cluster UnitTesting = 4294048773 { int8u arg1[] = 0; } + response struct StringEchoResponse = 13 { + octet_string payload = 0; + } + request struct TestEnumsRequestRequest { vendor_id arg1 = 0; SimpleEnum arg2 = 1; @@ -7076,6 +7118,10 @@ internal cluster UnitTesting = 4294048773 { int8u fillCharacter = 2; } + request struct StringEchoRequestRequest { + octet_string payload = 0; + } + request struct TestDifferentVendorMeiRequestRequest { int8u arg1 = 0; } @@ -7155,6 +7201,10 @@ internal cluster UnitTesting = 4294048773 { command TestBatchHelperRequest(TestBatchHelperRequestRequest): TestBatchHelperResponse = 22; /** Second command that responds after sleepBeforeResponseTimeMs with an octet_string the size requested with fillCharacter. */ command TestSecondBatchHelperRequest(TestSecondBatchHelperRequestRequest): TestBatchHelperResponse = 23; + /** Command that takes an argument which is an octet string. The response echoes + the string back. If the string is large then it would require a session that + supports large payloads. */ + command StringEchoRequest(StringEchoRequestRequest): StringEchoResponse = 24; /** Command having a different MEI vendor ID than the cluster. Also emits TestDifferentVendorMeiEvent. */ command TestDifferentVendorMeiRequest(TestDifferentVendorMeiRequestRequest): TestDifferentVendorMeiResponse = 4294049962; } @@ -9070,6 +9120,7 @@ endpoint 1 { handle command TestEmitTestFabricScopedEventResponse; handle command TestListNestedStructListArgumentRequest; handle command TestListInt8UReverseRequest; + handle command StringEchoResponse; handle command TestEnumsRequest; handle command TestNullableOptionalRequest; handle command SimpleStructEchoRequest; @@ -9079,6 +9130,7 @@ endpoint 1 { handle command TestEmitTestFabricScopedEventRequest; handle command TestBatchHelperRequest; handle command TestSecondBatchHelperRequest; + handle command StringEchoRequest; handle command TestDifferentVendorMeiRequest; handle command TestDifferentVendorMeiResponse; } @@ -9211,7 +9263,7 @@ endpoint 2 { } } endpoint 65534 { - device type ma_secondary_network_commissioning = 4293984258, version 1; + device type ma_secondary_network_interface = 25, version 1; server cluster Descriptor { 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 683f2dd75658ba..c547030731c6cf 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 @@ -1,6 +1,6 @@ { "fileFormat": 2, - "featureLevel": 100, + "featureLevel": 103, "creator": "zap", "keyValuePairs": [ { @@ -29,6 +29,7 @@ "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/app-templates.json", "type": "gen-templates-json", + "category": "matter", "version": "chip-v1" } ], @@ -4340,7 +4341,7 @@ ] }, { - "name": "WiFi Network Diagnostics", + "name": "Wi-Fi Network Diagnostics", "code": 54, "mfgCode": null, "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", @@ -8226,7 +8227,6 @@ "define": "OPERATIONAL_STATE_OVEN_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "commands": [ { "name": "Pause", @@ -8487,7 +8487,6 @@ "define": "OVEN_MODE_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "commands": [ { "name": "ChangeToMode", @@ -8644,7 +8643,6 @@ "define": "LAUNDRY_DRYER_CONTROLS_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "attributes": [ { "name": "SupportedDrynessLevels", @@ -10898,7 +10896,6 @@ "define": "MICROWAVE_OVEN_MODE_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "attributes": [ { "name": "SupportedModes", @@ -12202,7 +12199,6 @@ "define": "BOOLEAN_STATE_CONFIGURATION_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "commands": [ { "name": "SuppressAlarm", @@ -12471,7 +12467,6 @@ "define": "VALVE_CONFIGURATION_AND_CONTROL_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "commands": [ { "name": "Open", @@ -12788,7 +12783,6 @@ "define": "ELECTRICAL_POWER_MEASUREMENT_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "attributes": [ { "name": "PowerMode", @@ -13208,7 +13202,6 @@ "define": "ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "attributes": [ { "name": "Accuracy", @@ -13580,7 +13573,7 @@ "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "PowerAdjustCapabilityStruct", "included": 1, "storageOption": "External", "singleton": 0, @@ -13758,7 +13751,6 @@ "define": "ENERGY_EVSE_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "commands": [ { "name": "GetTargetsResponse", @@ -14434,7 +14426,6 @@ "define": "POWER_TOPOLOGY_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "attributes": [ { "name": "AvailableEndpoints", @@ -14573,7 +14564,6 @@ "define": "ENERGY_EVSE_MODE_CLUSTER", "side": "server", "enabled": 1, - "apiMaturity": "provisional", "commands": [ { "name": "ChangeToMode", @@ -21997,6 +21987,22 @@ "source": "server", "isIncoming": 0, "isEnabled": 1 + }, + { + "name": "StringEchoRequest", + "code": 24, + "mfgCode": null, + "source": "client", + "isIncoming": 1, + "isEnabled": 1 + }, + { + "name": "StringEchoResponse", + "code": 13, + "mfgCode": null, + "source": "server", + "isIncoming": 0, + "isEnabled": 1 } ], "attributes": [ @@ -24779,27 +24785,27 @@ "id": 4, "name": "Anonymous Endpoint Type", "deviceTypeRef": { - "code": 4293984258, + "code": 25, "profileId": 259, - "label": "MA-secondary-network-commissioning", - "name": "MA-secondary-network-commissioning" + "label": "MA-secondary-network-interface", + "name": "MA-secondary-network-interface" }, "deviceTypes": [ { - "code": 4293984258, + "code": 25, "profileId": 259, - "label": "MA-secondary-network-commissioning", - "name": "MA-secondary-network-commissioning" + "label": "MA-secondary-network-interface", + "name": "MA-secondary-network-interface" } ], "deviceVersions": [ 1 ], "deviceIdentifiers": [ - 4293984258 + 25 ], - "deviceTypeName": "MA-secondary-network-commissioning", - "deviceTypeCode": 4293984258, + "deviceTypeName": "MA-secondary-network-interface", + "deviceTypeCode": 25, "deviceTypeProfileId": 259, "clusters": [ { diff --git a/examples/all-clusters-app/all-clusters-common/include/dishwasher-mode.h b/examples/all-clusters-app/all-clusters-common/include/dishwasher-mode.h index 604496f886b3c2..2ff1696e9378cc 100644 --- a/examples/all-clusters-app/all-clusters-common/include/dishwasher-mode.h +++ b/examples/all-clusters-app/all-clusters-common/include/dishwasher-mode.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/laundry-dryer-controls-delegate-impl.h b/examples/all-clusters-app/all-clusters-common/include/laundry-dryer-controls-delegate-impl.h index 898cf8806f4111..920d7030c2aa78 100644 --- a/examples/all-clusters-app/all-clusters-common/include/laundry-dryer-controls-delegate-impl.h +++ b/examples/all-clusters-app/all-clusters-common/include/laundry-dryer-controls-delegate-impl.h @@ -20,7 +20,6 @@ #include #include -#include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h b/examples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h index 15a72482726ba0..f9d3d1bf8c7bdf 100644 --- a/examples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h +++ b/examples/all-clusters-app/all-clusters-common/include/laundry-washer-controls-delegate-impl.h @@ -20,7 +20,6 @@ #include #include -#include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/laundry-washer-mode.h b/examples/all-clusters-app/all-clusters-common/include/laundry-washer-mode.h index 2f59b0dfd04bab..5d35c03d4e50cd 100644 --- a/examples/all-clusters-app/all-clusters-common/include/laundry-washer-mode.h +++ b/examples/all-clusters-app/all-clusters-common/include/laundry-washer-mode.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/microwave-oven-mode.h b/examples/all-clusters-app/all-clusters-common/include/microwave-oven-mode.h index dd5d5b4bcaf2eb..df06d23a7dc5d7 100644 --- a/examples/all-clusters-app/all-clusters-common/include/microwave-oven-mode.h +++ b/examples/all-clusters-app/all-clusters-common/include/microwave-oven-mode.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/oven-modes.h b/examples/all-clusters-app/all-clusters-common/include/oven-modes.h index 7e264a4c47e272..2c58229ef6e541 100644 --- a/examples/all-clusters-app/all-clusters-common/include/oven-modes.h +++ b/examples/all-clusters-app/all-clusters-common/include/oven-modes.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/rvc-modes.h b/examples/all-clusters-app/all-clusters-common/include/rvc-modes.h index 8af4aa5f6f9155..8449878260f053 100644 --- a/examples/all-clusters-app/all-clusters-common/include/rvc-modes.h +++ b/examples/all-clusters-app/all-clusters-common/include/rvc-modes.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/static-supported-modes-manager.h b/examples/all-clusters-app/all-clusters-common/include/static-supported-modes-manager.h index ef90de38697f4c..b4ce50b8cd49a3 100644 --- a/examples/all-clusters-app/all-clusters-common/include/static-supported-modes-manager.h +++ b/examples/all-clusters-app/all-clusters-common/include/static-supported-modes-manager.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/include/static-supported-temperature-levels.h b/examples/all-clusters-app/all-clusters-common/include/static-supported-temperature-levels.h index 3fdce87e109317..9698df8c094cc8 100644 --- a/examples/all-clusters-app/all-clusters-common/include/static-supported-temperature-levels.h +++ b/examples/all-clusters-app/all-clusters-common/include/static-supported-temperature-levels.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include namespace chip { diff --git a/examples/all-clusters-app/all-clusters-common/include/tcc-mode.h b/examples/all-clusters-app/all-clusters-common/include/tcc-mode.h index dcd9024e8d0385..8d8cdb02962d68 100644 --- a/examples/all-clusters-app/all-clusters-common/include/tcc-mode.h +++ b/examples/all-clusters-app/all-clusters-common/include/tcc-mode.h @@ -19,7 +19,6 @@ #pragma once #include -#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp b/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp index 95f50acce7c4ef..39e6a91bcb1b04 100644 --- a/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp +++ b/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp @@ -80,7 +80,7 @@ static void BoundDeviceChangedHandler(const EmberBindingTableEntry & binding, ch } if (binding.type == MATTER_UNICAST_BINDING && binding.local == 1 && - (!binding.clusterId.HasValue() || binding.clusterId.Value() == Clusters::OnOff::Id)) + binding.clusterId.value_or(Clusters::OnOff::Id) == Clusters::OnOff::Id) { auto onSuccess = [](const ConcreteCommandPath & commandPath, const StatusIB & status, const auto & dataResponse) { ChipLogProgress(NotSpecified, "OnOff command succeeds"); diff --git a/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp index 13c0205a4e3ca1..41171d760d0048 100644 --- a/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp +++ b/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp index 9a9fcccd73f4f2..9309b597db434f 100644 --- a/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp +++ b/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp b/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp index 2070e1b86754fe..d258b8261a1aed 100644 --- a/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp +++ b/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp @@ -55,15 +55,6 @@ CHIP_ERROR GenericOperationalStateDelegateImpl::GetOperationalPhaseAtIndex(size_ void GenericOperationalStateDelegateImpl::HandlePauseStateCallback(GenericOperationalError & err) { - OperationalState::OperationalStateEnum state = - static_cast(GetInstance()->GetCurrentOperationalState()); - - if (state == OperationalState::OperationalStateEnum::kStopped || state == OperationalState::OperationalStateEnum::kError) - { - err.Set(to_underlying(OperationalState::ErrorStateEnum::kCommandInvalidInState)); - return; - } - // placeholder implementation auto error = GetInstance()->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kPaused)); if (error == CHIP_NO_ERROR) @@ -78,15 +69,6 @@ void GenericOperationalStateDelegateImpl::HandlePauseStateCallback(GenericOperat void GenericOperationalStateDelegateImpl::HandleResumeStateCallback(GenericOperationalError & err) { - OperationalState::OperationalStateEnum state = - static_cast(GetInstance()->GetCurrentOperationalState()); - - if (state == OperationalState::OperationalStateEnum::kStopped || state == OperationalState::OperationalStateEnum::kError) - { - err.Set(to_underlying(OperationalState::ErrorStateEnum::kCommandInvalidInState)); - return; - } - // placeholder implementation auto error = GetInstance()->SetOperationalState(to_underlying(OperationalStateEnum::kRunning)); if (error == CHIP_NO_ERROR) diff --git a/examples/all-clusters-app/ameba/README.md b/examples/all-clusters-app/ameba/README.md index 2689f97026093a..adf6e590593fd7 100644 --- a/examples/all-clusters-app/ameba/README.md +++ b/examples/all-clusters-app/ameba/README.md @@ -27,11 +27,11 @@ The CHIP demo application is supported on - Pull docker image: - $ docker pull ghcr.io/project-chip/chip-build-ameba:35 + $ docker pull ghcr.io/project-chip/chip-build-ameba:54 - Run docker container: - $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:35 + $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:54 - Setup build environment: diff --git a/examples/all-clusters-app/ameba/chip_main.cmake b/examples/all-clusters-app/ameba/chip_main.cmake index 2afdd4e8d70942..00358771e5adbf 100755 --- a/examples/all-clusters-app/ameba/chip_main.cmake +++ b/examples/all-clusters-app/ameba/chip_main.cmake @@ -254,7 +254,6 @@ target_include_directories( ${chip_dir}/src/app/server/ ${chip_dir}/src/controller/data_model ${chip_dir}/third_party/nlio/repo/include/ - ${chip_dir}/third_party/nlunit-test/repo/src ) if (matter_enable_rpc) diff --git a/examples/all-clusters-app/ameba/main/BindingHandler.cpp b/examples/all-clusters-app/ameba/main/BindingHandler.cpp index b00322b44e4f0b..1c0fef656c7913 100644 --- a/examples/all-clusters-app/ameba/main/BindingHandler.cpp +++ b/examples/all-clusters-app/ameba/main/BindingHandler.cpp @@ -194,7 +194,7 @@ CHIP_ERROR BindingGroupBindCommandHandler(int argc, char ** argv) entry->fabricIndex = atoi(argv[0]); entry->groupId = atoi(argv[1]); entry->local = 1; // Hardcoded to endpoint 1 for now - entry->clusterId.SetValue(6); // Hardcoded to OnOff cluster for now + entry->clusterId.emplace(6); // Hardcoded to OnOff cluster for now DeviceLayer::PlatformMgr().ScheduleWork(BindingWorkerFunction, reinterpret_cast(entry)); return CHIP_NO_ERROR; @@ -210,7 +210,7 @@ CHIP_ERROR BindingUnicastBindCommandHandler(int argc, char ** argv) entry->nodeId = atoi(argv[1]); entry->local = 1; // Hardcoded to endpoint 1 for now entry->remote = atoi(argv[2]); - entry->clusterId.SetValue(6); // Hardcode to OnOff cluster for now + entry->clusterId.emplace(6); // Hardcode to OnOff cluster for now DeviceLayer::PlatformMgr().ScheduleWork(BindingWorkerFunction, reinterpret_cast(entry)); return CHIP_NO_ERROR; diff --git a/examples/all-clusters-app/ameba/main/CHIPDeviceManager.cpp b/examples/all-clusters-app/ameba/main/CHIPDeviceManager.cpp index 7b178060a6fff2..4ae50eaac1b2f6 100644 --- a/examples/all-clusters-app/ameba/main/CHIPDeviceManager.cpp +++ b/examples/all-clusters-app/ameba/main/CHIPDeviceManager.cpp @@ -77,10 +77,9 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); SetDeviceInstanceInfoProvider(&mFactoryDataProvider); - if (CONFIG_NETWORK_LAYER_BLE) - { - ConnectivityMgr().SetBLEAdvertisingEnabled(true); - } +#if CONFIG_NETWORK_LAYER_BLE + ConnectivityMgr().SetBLEAdvertisingEnabled(true); +#endif // Register a function to receive events from the CHIP device layer. Note that calls to // this function will happen on the CHIP event loop thread, not the app_main thread. diff --git a/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp b/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp index 338a469bb32947..ef4a733dde4339 100644 --- a/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp +++ b/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/all-clusters-app/ameba/main/chipinterface.cpp b/examples/all-clusters-app/ameba/main/chipinterface.cpp index c9547136035f81..2a35d86eadc3a2 100644 --- a/examples/all-clusters-app/ameba/main/chipinterface.cpp +++ b/examples/all-clusters-app/ameba/main/chipinterface.cpp @@ -34,13 +34,16 @@ #include #include #include -#include +#include #include #include #include #include #include #include +#if CONFIG_ENABLE_AMEBA_CRYPTO +#include +#endif #include #include #include @@ -153,6 +156,13 @@ static void InitServer(intptr_t context) initParams.InitializeStaticResourcesBeforeServerInit(); +#if CONFIG_ENABLE_AMEBA_CRYPTO + ChipLogProgress(DeviceLayer, "platform crypto enabled!"); + static chip::AmebaPersistentStorageOperationalKeystore sAmebaPersistentStorageOpKeystore; + VerifyOrDie((sAmebaPersistentStorageOpKeystore.Init(initParams.persistentStorageDelegate)) == CHIP_NO_ERROR); + initParams.operationalKeystore = &sAmebaPersistentStorageOpKeystore; +#endif + chip::Server::GetInstance().Init(initParams); gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); // TODO: Use our own DeviceInfoProvider diff --git a/examples/all-clusters-app/asr/BUILD.gn b/examples/all-clusters-app/asr/BUILD.gn index 6f70452fa71bbe..6b016c5d81119c 100755 --- a/examples/all-clusters-app/asr/BUILD.gn +++ b/examples/all-clusters-app/asr/BUILD.gn @@ -108,6 +108,7 @@ asr_executable("clusters_app") { "${chip_root}/examples/common/QRCode", "${chip_root}/examples/providers:device_info_provider", "${chip_root}/src/lib", + "${chip_root}/src/platform/logging:default", "${chip_root}/src/setup_payload", ] diff --git a/examples/all-clusters-app/asr/include/AppTask.h b/examples/all-clusters-app/asr/include/AppTask.h index 210fd5a6fc7032..42cd6ae1541045 100755 --- a/examples/all-clusters-app/asr/include/AppTask.h +++ b/examples/all-clusters-app/asr/include/AppTask.h @@ -19,7 +19,7 @@ #pragma once #include "AppEvent.h" -#include +#include #include #include #include diff --git a/examples/all-clusters-app/asr/src/AppTask.cpp b/examples/all-clusters-app/asr/src/AppTask.cpp index 92b6aaef3dba49..1a829ca3de1798 100644 --- a/examples/all-clusters-app/asr/src/AppTask.cpp +++ b/examples/all-clusters-app/asr/src/AppTask.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/all-clusters-app/asr/src/DeviceCallbacks.cpp b/examples/all-clusters-app/asr/src/DeviceCallbacks.cpp index cc48488fd7e3ca..459b3e9921799f 100644 --- a/examples/all-clusters-app/asr/src/DeviceCallbacks.cpp +++ b/examples/all-clusters-app/asr/src/DeviceCallbacks.cpp @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/.gn b/examples/all-clusters-app/cc13x2x7_26x2x7/.gn deleted file mode 100644 index cf974b2eb1df22..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/.gn +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (c) 2020 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("//build_overrides/build.gni") - -# The location of the build configuration file. -buildconfig = "${build_root}/config/BUILDCONFIG.gn" - -# CHIP uses angle bracket includes. -check_system_includes = true - -default_args = { - target_cpu = "arm" - target_os = "freertos" - - import("//args.gni") - pw_build_PIP_REQUIREMENTS += - [ "${chip_root}/scripts/setup/requirements.ti.txt" ] -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn deleted file mode 100644 index 6cf5941e79d2c4..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright (c) 2020 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("//build_overrides/build.gni") -import("//build_overrides/chip.gni") -import("//build_overrides/openthread.gni") -import("//build_overrides/ti_simplelink_sdk.gni") - -import("${build_root}/config/defaults.gni") - -import("${chip_root}/src/platform/device.gni") - -import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") -import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") - -assert(current_os == "freertos") - -project_dir = "${chip_root}/examples/all-clusters-app/cc13x2x7_26x2x7" - -ti_simplelink_sdk("sdk") { - include_dirs = [ "${project_dir}/main/include" ] - public_configs = [ ":all-clusters-app_config" ] -} - -ti_sysconfig("sysconfig") { - sources = [ "${project_dir}/chip.syscfg" ] - - outputs = [ - "ti_devices_config.c", - "ti_radio_config.c", - "ti_radio_config.h", - "ti_drivers_config.c", - "ti_drivers_config.h", - "ti_ble_config.c", - "ti_ble_config.h", - "ti_dmm_application_policy.c", - "ti_dmm_application_policy.h", - - # disabled until upstream generation is aligned - #"tiop_config.h", - #"tiop_config.c", - - # not traditional source files - #"ti_utils_build_linker.cmd.genlibs", - #"syscfg_c.rov.xs", - #"ti_utils_runtime_model.gv", - #"ti_utils_runtime_Makefile", - #"ti_ble_app_config.opt", - #"ti_build_config.opt", - ] - - public_configs = [ ":sdk_cc13x2x7_26x2x7_dmm_config" ] - - cflags = [ - "-Wno-comment", - "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", - root_build_dir), - "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", - root_build_dir), - ] -} - -ti_simplelink_executable("all-clusters-app") { - output_name = "chip-${ti_simplelink_board}-all-clusters-example.out" - - sources = [ - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/air-quality-instance.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/device-energy-management-stub.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/energy-evse-stub.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/fan-stub.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/oven-modes.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-delegates.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", - "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-temperature-levels.cpp", - "${chip_root}/examples/energy-management-app/energy-management-common/src/DeviceEnergyManagementDelegateImpl.cpp", - "${chip_root}/examples/energy-management-app/energy-management-common/src/DeviceEnergyManagementManager.cpp", - "${chip_root}/examples/energy-management-app/energy-management-common/src/ElectricalPowerMeasurementDelegate.cpp", - "${chip_root}/examples/energy-management-app/energy-management-common/src/EnergyEvseDelegateImpl.cpp", - "${chip_root}/examples/energy-management-app/energy-management-common/src/EnergyEvseManager.cpp", - "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp", - "${project_dir}/main/AppTask.cpp", - "${project_dir}/main/ClusterManager.cpp", - "${project_dir}/main/Globals.cpp", - "${project_dir}/main/ZclCallbacks.cpp", - "${project_dir}/main/main.cpp", - ] - - deps = [ - ":sdk", - ":sysconfig", - "${chip_root}/examples/all-clusters-app/all-clusters-common", - "${chip_root}/src/lib", - ] - - if (chip_openthread_ftd) { - deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] - } else { - deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] - } - - if (custom_factory_data) { - defines = [ "CC13XX_26XX_FACTORY_DATA" ] - } - - include_dirs = [ - "${project_dir}", - "${project_dir}/main", - "${chip_root}/examples/all-clusters-app/all-clusters-common/include", - "${chip_root}/examples/energy-management-app/energy-management-common/include", - "${chip_root}/examples/providers/", - ] - - cflags = [ - "-Wno-implicit-fallthrough", - "-Wno-sign-compare", - "-Wconversion", - ] - - output_dir = root_out_dir -} - -group("cc13x2x7_26x2x7") { - deps = [ ":all-clusters-app" ] -} - -group("default") { - deps = [ ":cc13x2x7_26x2x7" ] -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/README.md b/examples/all-clusters-app/cc13x2x7_26x2x7/README.md deleted file mode 100644 index 68d6f927224585..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/README.md +++ /dev/null @@ -1,241 +0,0 @@ -# Matter CC1352 CC2652 All-clusters Example Application - -An example application showing the use of [Matter][matter] on the Texas -Instruments CC13XX_26XX family of Wireless MCUs. - ---- - -- [Matter CC1352 CC2652 All Clusters Example Application](#matter-cc1352-cc2652-all-clusters-example-application) - - [Introduction](#introduction) - - [Device UI](#device-ui) - - [Building](#building) - - [Preparation](#preparation) - - [Compilation](#compilation) - - [Programming](#programming) - - [Code Composer Studio](#code-composer-studio) - - [UniFlash](#uniflash) - - [Viewing Logging Output](#viewing-logging-output) - - [Running the Example](#running-the-example) - - [Provisioning](#provisioning) - - [Bluetooth LE Advertising](#bluetooth-le-advertising) - - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - - [TI Support](#ti-support) - ---- - -## Introduction - -![CC1352R1_LAUNCHXL](../../pump-app/cc13x2x7_26x2x7/doc/images/cc1352r1_launchxl.jpg) - -The CC13XX_26XX all clusters example application provides the basis to query and -run commands for all currently implemented Matter clusters. This uses the -open-source Matter implementation and the Texas Instruments SimpleLink™ CC13XX -and CC26XX software development kit. - -This example is enabled to build for CC2652R7 devices. - -The all-clusters example is intended to serve both as a means to explore the -workings of Matter, as well as a template for creating real products based on -the Texas Instruments devices. - -## Device UI - -This example application has a simple User Interface to depict the state of the -various Matter clusters and the attribute changes associated with them. The user -LEDs on the LaunchPad are used for the onoff, levelcontrol and identify clusters -to provide a working demonstration of the cluster attribute changes. The Green -LED is used to represent attribute changes to endpoint 1 while the Red LED is -used to represent changes to endpoint 2. - -Short presses (less than 1000ms) of the user buttons are used currently unused -in the all-clusters application, but stubs are provided. - -Long presses (greater than 1000ms) of the user buttons are used for controlling -BLE advertisements and resets. The left button (`BTN-1`) is used to perform a -factory reset of the device. The Right button (`BTN-2`) is used to disable BLE -advertisements (if enabled) or enable advertisements (if disabled). - -## Building - -### Preparation - -Some initial setup is necessary for preparing the build environment. This -section will need to be done when migrating to new versions of the SDK. This -guide assumes that the environment is linux based, and recommends Ubuntu 20.04. - -- Download and install [SysConfig][sysconfig]. This can be done simply with - the following commands. - - ``` - $ cd ~ - $ wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.16.2.3028/sysconfig-1.16.2_3028-setup.run - $ chmod +x sysconfig-1.16.2_3028-setup.run - $ ./sysconfig-1.16.2_3028-setup.run - ``` - -- Run the bootstrap script to setup the build environment. - - ``` - $ cd ~/connectedhomeip - $ source ./scripts/bootstrap.sh - - ``` - -### Compilation - -It is necessary to activate the environment in every new shell. Then run GN and -Ninja to build the executable. - -- Activate the build environment with the repository activate script. - - ``` - $ cd ~/connectedhomeip - $ source ./scripts/activate.sh - - ``` - -- Run the build to produce a default executable. By default on Linux both the - TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's - home directory, and you must provide the absolute path to them. For example - `/home/username/ti/sysconfig_1.16.2`. On Windows the default directory is - `C:\ti`. Take note of this install path, as it will be used in the next - step. - - ``` - $ cd ~/connectedhomeip/examples/all-clusters-app/cc13x2x7_26x2x7 - $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.16.2\"" - $ ninja -C out/debug - - ``` - -## Programming - -Loading the built image onto a LaunchPad is supported through two methods; -Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. -Code Composer Studio can be used to load the image and debug the source code. - -### Code Composer Studio - -Programming with CCS will allow for a full debug environment within the IDE. -This is accomplished by creating a target connection to the XDS110 debugger and -starting a project-less debug session. The CCS IDE will attempt to find the -source files on the local machine based on the debug information embedded within -the ELF. CCS may prompt you to find the source code if the image was built on -another machine or the source code is located in a different location than is -recorded within the ELF. - -Download and install [Code Composer Studio][ccs]. - -First open CCS and create a new workspace. - -Create a target connection (sometimes called the CCXML) for your target SoC and -debugger as described in the [Manual Method][ccs_manual_method] section of the -CCS User's Guide. - -Next initiate a project-less debug session as described in the [Manual -Launch][ccs_manual_launch] section of the CCS User's Guide. - -CCS should switch to the debug view described in the [After -Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely -be disconnected and symbols will not be loaded. Connect to the core as described -in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core -is connected, use the `Load` button on the toolbar to load the ELF image. - -Note that the default configuration of the CCXML uses 2-wire cJTAG instead of -the full 4-wire JTAG connection to match the default jumper configuration of the -LaunchPad. - -### UniFlash - -Uniflash is Texas Instrument's uniform programming tool for embedded processors. -This will allow you to erase, flash, and inspect the SoC without setting up a -debugging environment. - -Download and install [UniFlash][uniflash]. - -First open UniFlash. Debug probes connected to the computer will usually be -displayed under the Detected Devices due to the automatic device detection -feature. If your device does not show up in this view it my be disconnected, or -you may have to create a New Configuration. If you already have a CCXML for your -SoC and debug connection you can use that in the section at the bottom. Once -your device is selected, click the `Start` button within the section to launch -the session. - -Select the ELF image to load on the device with the `Browse` button. This file -is placed in the `out/debug` folder by this guide and ends with the `*.out` file -extension. - -Finally click the `Load Image` button to load the executable image onto the -device. You should be able to see the log output over the XDS110 User UART. - -Note that programming the device through JTAG sets the Halt-in-Boot flag and may -cause issues when performing a software reset. This flag can be reset by -power-cycling the LaunchPad. - -## Viewing Logging Output - -By default the log output will be sent to the Application/User UART. Open a -terminal emulator to that port to see the output with the following options: - -| Parameter | Value | -| ------------ | -------- | -| Speed (baud) | `115200` | -| Data bits | `8` | -| Stop bits | `1` | -| Parity | `None` | -| Flow control | `None` | - -## Running the Example - -Once a device has been flashed with this example, it can now join and operate in -an existing Thread network. The following sections assume that a Thread network -is already active, and has at least one [OpenThread Border -Router][ot_border_router_setup]. - -For insight into what other components are needed to run this example, please -refer to our [Matter Getting Started Guide][matter-e2e-faq]. - -### Provisioning - -Interacting with the application begins by enabling BLE advertisements and then -pairing the device into a Thread network. - -#### Bluetooth LE Advertising - -To provision this example onto a Thread network, the device must be discoverable -over Bluetooth LE. BLE advertising is started by long pressing the right button -(greater than 1000ms), labeled `BTN-2` on the silkscreen. Once the device is -fully provisioned, BLE advertising will stop. - -#### Bluetooth LE Rendezvous - -Pairing this application with `ble-thread` can be done with any of the enabled -[CHIP Controller](../../../src/controller/README.md) applications. Use the -information printed on the console to aide in pairing the device. The controller -application can also be used to control the example app with the cluster -commands. - -## TI Support - -For technical support, please consider creating a post on TI's [E2E forum][e2e]. -Additionally, we welcome any feedback. - -[matter]: https://github.com/project-chip/connectedhomeip -[ccs]: https://www.ti.com/tool/CCSTUDIO -[ccs_after_launch]: - https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch -[ccs_debug_view]: - https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view -[ccs_manual_launch]: - https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch -[ccs_manual_method]: - https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method -[cc1352r1_launchxl]: https://www.ti.com/tool/LAUNCHXL-CC1352R1 -[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread -[matter-e2e-faq]: - https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide -[sysconfig]: https://www.ti.com/tool/SYSCONFIG -[ti_thread_dnd]: - https://www.ti.com/wireless-connectivity/thread/design-development.html -[ot_border_router_setup]: https://openthread.io/guides/border-router/build -[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni b/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni deleted file mode 100644 index 23c3aee1afb0bb..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2020 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("//build_overrides/chip.gni") -import("${chip_root}/config/standalone/args.gni") -import("${chip_root}/examples/platform/cc13x2_26x2/args.gni") - -ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") -ti_simplelink_sysconfig_target = - get_label_info(":sysconfig", "label_no_toolchain") - -ti_simplelink_board = "LP_CC2652R7" - -# Size Optimizations -# use -Os instead of -Og, LWIP release build -optimize_debug_level = "s" -lwip_debug = false - -chip_enable_ota_requestor = false - -# Disable FTD Build for all-clusters app to save Flash -chip_openthread_ftd = false - -# Disable CHIP Logging -chip_progress_logging = false - -# Dsiable verbose logs for all-clusters app to save Flash -chip_detail_logging = false -chip_automation_logging = false - -# BLE options -chip_config_network_layer_ble = true - -# Disable lock tracking, since our FreeRTOS configuration does not set -# INCLUDE_xSemaphoreGetMutexHolder -chip_stack_lock_tracking = "none" - -matter_device_vid = "0xFFF1" -matter_device_pid = "0x8006" -matter_software_ver = "0x0001" -matter_software_ver_str = "1.0d1" - -custom_factory_data = true diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg b/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg deleted file mode 100644 index 4f02a9fd40da9a..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg +++ /dev/null @@ -1,192 +0,0 @@ -/* - * - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2020 Texas Instruments Incorporated - * 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. - */ - - -/* Modules */ -var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); -var AESECB = scripting.addModule("/ti/drivers/AESECB"); -var Button = scripting.addModule("/ti/drivers/apps/Button"); -var LED = scripting.addModule("/ti/drivers/apps/LED"); -var NVS = scripting.addModule("/ti/drivers/NVS"); -var RF = scripting.addModule("/ti/drivers/RF"); -var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); -var RTOS = scripting.addModule("/ti/drivers/RTOS"); -var TRNG = scripting.addModule("/ti/drivers/TRNG"); -var Thread = scripting.addModule("/ti/thread/thread"); -var SHA2 = scripting.addModule("/ti/drivers/SHA2"); -var UART = scripting.addModule("/ti/drivers/UART"); -var ble = scripting.addModule("/ti/ble5stack/ble"); -var dmm = scripting.addModule("/ti/dmm/dmm"); -var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); -var ECDH = scripting.addModule("/ti/drivers/ECDH"); - -/* Instances */ -var AESCCM1 = AESCCM.addInstance(); -var AESECB1 = AESECB.addInstance(); -var AESECB2 = AESECB.addInstance(); -var Button1 = Button.addInstance(); -var Button2 = Button.addInstance(); -var NVS1 = NVS.addInstance(); -var NVS2 = NVS.addInstance(); -var SHA21 = SHA2.addInstance(); -var LED1 = LED.addInstance(); -var LED2 = LED.addInstance(); -var TRNG1 = TRNG.addInstance(); -var TRNG2 = TRNG.addInstance(); -var TRNG3 = TRNG.addInstance(); -var UART1 = UART.addInstance(); -var AESCTRDRBG1 = AESCTRDRBG.addInstance(); -var ECDH1 = ECDH.addInstance(); - -AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; -AESCTRDRBG1.aesctrObject.$name = "CONFIG_AESCTR_0"; - -AESCCM1.$name = "CONFIG_AESCCM0"; - -AESECB1.$name = "CONFIG_AESECB0"; -AESECB2.$name = "CONFIG_AESECB_1"; - -ECDH1.$name = "CONFIG_ECDH0"; - -/* RTOS */ -RTOS.name = "FreeRTOS"; - -/* Left Button */ -Button1.$name = "CONFIG_BTN_LEFT"; -Button1.$hardware = system.deviceData.board.components["BTN-1"]; -Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; -Button1.gpioPin.pull = "Pull Up"; -Button1.gpioPin.interruptTrigger = "Falling Edge"; - -/* Left Button */ -Button2.$name = "CONFIG_BTN_RIGHT"; -Button2.$hardware = system.deviceData.board.components["BTN-2"]; -Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; -Button2.gpioPin.pull = "Pull Up"; -Button2.gpioPin.interruptTrigger = "Falling Edge"; - -/* ======== CCFG ======== */ -var CCFG = scripting.addModule("/ti/devices/CCFG"); -const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; -for(var setting in ccfgSettings) -{ - CCFG[setting] = ccfgSettings[setting]; -} - -CCFG.enableCodeGeneration = true; - -/* NVS */ -NVS1.$name = "CONFIG_NVSINTERNAL"; - -NVS1.internalFlash.regionBase = 0xAA000; -NVS1.internalFlash.regionSize = 0x4000; - -NVS2.$name = "CONFIG_NVSEXTERNAL"; -NVS2.nvsType = "External"; // NVS Region Type -NVS2.$hardware = system.deviceData.board.components.MX25R8035F; - -/* RF */ -/* if an antenna component exists, assign it to the rf instance */ -if (system.deviceData.board && system.deviceData.board.components.RF) { - RF.$hardware = system.deviceData.board.components.RF; -} - -const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; -for(var setting in rfDesignSettings) -{ - RFDesign[setting] = rfDesignSettings[setting]; -} - -/* Red LED */ -LED1.$name = "CONFIG_LED_RED"; -LED1.$hardware = system.deviceData.board.components.LED_RED; -LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; -LED1.gpioPin.mode = "Output"; -LED1.gpioPin.callbackFunction = ""; - -/* Green LED */ -LED2.$name = "CONFIG_LED_GREEN"; -LED2.$hardware = system.deviceData.board.components.LED_GREEN; -LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; -LED2.gpioPin.mode = "Output"; -LED2.gpioPin.callbackFunction = ""; - -/* Debug UART */ -UART1.$hardware = system.deviceData.board.components.XDS110UART; -UART1.$name = "CONFIG_UART_DEBUG"; - -/* TRNG */ -TRNG1.$name = "CONFIG_TRNG_0"; -TRNG2.$name = "CONFIG_TRNG_1"; -TRNG3.$name = "CONFIG_TRNG_APP"; - -RTOS.name = "FreeRTOS"; - -/* BLE */ -ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; -ble.maxConnNum = 1; -ble.numOfAdvSets = 1; -ble.lockProject = true; -ble.oneLibSizeOpt = true; -ble.maxPDUSize = 255; -ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; -ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; -ble.connUpdateParamsPeripheral.reqMinConnInt = 30; -ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; - -ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; -ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; - -/* DMM */ -dmm.project = "ti_thread_thermostat_remote_display"; -dmm.stackRoles = ["blePeripheral","threadFTD"]; -dmm.lockStackRoles = true; -dmm.numApplicationStates = 10; -dmm.applicationState0 = "ANY"; -dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; -dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; -dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; -dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; -dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; -dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; -dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; -dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; -dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; -dmm.policyArray.create(4); -dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; -dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; -dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; -dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; -dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; -dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; -dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; -dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; -dmm.policyArray[1].blePeripheral.weight = 25; -dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; -dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; -dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; -dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; -dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; -dmm.policyArray[2].threadFTD.weight = 30; -dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; -dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; -dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; -dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; -dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; -dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/AppTask.cpp b/examples/all-clusters-app/cc13x2x7_26x2x7/main/AppTask.cpp deleted file mode 100644 index b6b9bf1e8bd8f4..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/AppTask.cpp +++ /dev/null @@ -1,408 +0,0 @@ -/* - * - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2020 Texas Instruments Incorporated - * 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. - */ - -#include "AppTask.h" -#include "AppConfig.h" -#include "AppEvent.h" -#include -#include - -#include "FreeRTOS.h" -#include "Globals.h" -#include -#include - -#include -#include -#include - -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR -#include -#include -#include -#include -#include -#endif -#include -#include - -#ifdef AUTO_PRINT_METRICS -#include -#endif -#include - -#include -#include - -/* syscfg */ -#include - -#define APP_TASK_STACK_SIZE (5000) -#define APP_TASK_PRIORITY 4 -#define APP_EVENT_QUEUE_SIZE 10 - -using namespace ::chip; -using namespace ::chip::Credentials; -using namespace ::chip::DeviceLayer; - -static TaskHandle_t sAppTaskHandle; -static QueueHandle_t sAppEventQueue; - -static Button_Handle sAppLeftHandle; -static Button_Handle sAppRightHandle; -static DeviceInfoProviderImpl sExampleDeviceInfoProvider; - -AppTask AppTask::sAppTask; - -constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; - -namespace { -app::Clusters::TemperatureControl::AppSupportedTemperatureLevelsDelegate sAppSupportedTemperatureLevelsDelegate; -} - -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR -static DefaultOTARequestor sRequestorCore; -static DefaultOTARequestorStorage sRequestorStorage; -static DefaultOTARequestorDriver sRequestorUser; -static BDXDownloader sDownloader; -static OTAImageProcessorImpl sImageProcessor; - -void InitializeOTARequestor(void) -{ - // Initialize and interconnect the Requestor and Image Processor objects - SetRequestorInstance(&sRequestorCore); - - sRequestorStorage.Init(Server::GetInstance().GetPersistentStorage()); - sRequestorCore.Init(Server::GetInstance(), sRequestorStorage, sRequestorUser, sDownloader); - sImageProcessor.SetOTADownloader(&sDownloader); - sDownloader.SetImageProcessorDelegate(&sImageProcessor); - sRequestorUser.Init(&sRequestorCore, &sImageProcessor); -} -#endif - -#ifdef AUTO_PRINT_METRICS -static void printMetrics(void) -{ - chip::DeviceLayer::ThreadMetrics *threadMetricsOut, *currThread; - uint64_t heapFree, heapUsed; - - DiagnosticDataProviderImpl::GetDefaultInstance().GetCurrentHeapUsed(heapUsed); - DiagnosticDataProviderImpl::GetDefaultInstance().GetCurrentHeapFree(heapFree); - DiagnosticDataProviderImpl::GetDefaultInstance().GetThreadMetrics(&threadMetricsOut); - - PLAT_LOG("Heap Metrics\n Heap Free: %d Heap Used: %d", (uint32_t) heapFree, (uint32_t) heapUsed); - - PLAT_LOG("Thread Metrics\n"); - - currThread = threadMetricsOut; - while (currThread) - { - PLAT_LOG("Task Name: %s ID: %d Stack Free Min: %d", currThread->name, (uint32_t) currThread->id, - (uint32_t) currThread->stackFreeMinimum); - - currThread = currThread->Next; - } - - DiagnosticDataProviderImpl::GetDefaultInstance().ReleaseThreadMetrics(threadMetricsOut); -} -#endif - -void DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) -{ - switch (event->Type) - { - case DeviceEventType::kCHIPoBLEConnectionEstablished: - PLAT_LOG("CHIPoBLE connection established"); - break; - - case DeviceEventType::kCHIPoBLEConnectionClosed: - PLAT_LOG("CHIPoBLE disconnected"); - break; - - case DeviceEventType::kCommissioningComplete: - PLAT_LOG("Commissioning complete"); - break; - } - -#ifdef AUTO_PRINT_METRICS - printMetrics(); -#endif -} - -int AppTask::StartAppTask() -{ - int ret = 0; - - sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); - if (sAppEventQueue == NULL) - { - PLAT_LOG("Failed to allocate app event queue"); - while (true) - ; - } - - // Start App task. - if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != - pdPASS) - { - PLAT_LOG("Failed to create app task"); - while (true) - ; - } - return ret; -} - -int AppTask::Init() -{ - LED_Params ledParams; - Button_Params buttonParams; - - cc13x2_26x2LogInit(); - - // Initialize LEDs - PLAT_LOG("Initialize LEDs"); - LED_init(); - - LED_Params_init(&ledParams); // default PWM LED - sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); - LED_setOff(sAppRedHandle); - - LED_Params_init(&ledParams); // default PWM LED - sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); - LED_setOff(sAppGreenHandle); - - // Initialize buttons - PLAT_LOG("Initialize buttons"); - Button_init(); - - Button_Params_init(&buttonParams); - buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; - buttonParams.longPressDuration = 1000U; // ms - sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); - Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); - - Button_Params_init(&buttonParams); - buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; - buttonParams.longPressDuration = 1000U; // ms - sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); - Button_setCallback(sAppRightHandle, ButtonRightEventHandler); - - // Init Chip memory management before the stack - Platform::MemoryInit(); - - CHIP_ERROR ret = PlatformMgr().InitChipStack(); - if (ret != CHIP_NO_ERROR) - { - PLAT_LOG("PlatformMgr().InitChipStack() failed"); - while (true) - ; - } - - ret = ThreadStackMgr().InitThreadStack(); - if (ret != CHIP_NO_ERROR) - { - PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); - while (true) - ; - } - - ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); - if (ret != CHIP_NO_ERROR) - { - PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); - while (true) - ; - } - - // Initialize device attestation config -#ifdef CC13X2_26X2_ATTESTATION_CREDENTIALS -#ifdef CC13XX_26XX_FACTORY_DATA - SetDeviceInstanceInfoProvider(&mFactoryDataProvider); - SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); - SetCommissionableDataProvider(&mFactoryDataProvider); -#else - SetDeviceAttestationCredentialsProvider(CC13X2_26X2::GetCC13X2_26X2DacProvider()); -#endif -#else - SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); -#endif - - ret = PlatformMgr().StartEventLoopTask(); - if (ret != CHIP_NO_ERROR) - { - PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); - while (true) - ; - } - - ret = ThreadStackMgrImpl().StartThreadTask(); - if (ret != CHIP_NO_ERROR) - { - PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); - while (true) - ; - } - - // Init ZCL Data Model and start server - PLAT_LOG("Initialize Server"); - static chip::CommonCaseDeviceServerInitParams initParams; - (void) initParams.InitializeStaticResourcesBeforeServerInit(); - - // Initialize info provider - sExampleDeviceInfoProvider.SetStorageDelegate(initParams.persistentStorageDelegate); - SetDeviceInfoProvider(&sExampleDeviceInfoProvider); - - chip::Server::GetInstance().Init(initParams); - - ConfigurationMgr().LogDeviceConfig(); - - // We only have network commissioning on endpoint 0. - emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); - - // Register a function to receive events from the CHIP device layer. Note that calls to - // this function will happen on the CHIP event loop thread, not the app_main thread. - PlatformMgr().AddEventHandler(DeviceEventCallback, reinterpret_cast(nullptr)); - -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR - InitializeOTARequestor(); -#endif - // QR code will be used with CHIP Tool - PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); - - app::Clusters::TemperatureControl::SetInstance(&sAppSupportedTemperatureLevelsDelegate); - return 0; -} - -void AppTask::AppTaskMain(void * pvParameter) -{ - AppEvent event; - - sAppTask.Init(); - - while (true) - { - /* Task pend until we have stuff to do */ - if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) - { - sAppTask.DispatchEvent(&event); - } - } -} - -void AppTask::PostEvent(const AppEvent * aEvent) -{ - if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) - { - /* Failed to post the message */ - } -} - -void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) -{ - AppEvent event; - event.Type = AppEvent::kEventType_ButtonLeft; - - if (events & Button_EV_CLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; - } - else if (events & Button_EV_LONGCLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; - } - // button callbacks are in ISR context - if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) - { - /* Failed to post the message */ - } -} - -void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) -{ - AppEvent event; - event.Type = AppEvent::kEventType_ButtonRight; - - if (events & Button_EV_CLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; - } - else if (events & Button_EV_LONGCLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; - } - // button callbacks are in ISR context - if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) - { - /* Failed to post the message */ - } -} - -void AppTask::DispatchEvent(AppEvent * aEvent) -{ - switch (aEvent->Type) - { - case AppEvent::kEventType_ButtonLeft: - if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) - { - } - else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) - { - chip::Server::GetInstance().ScheduleFactoryReset(); - } - break; - - case AppEvent::kEventType_ButtonRight: - if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) - { - } - else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) - { - // Enable BLE advertisements - if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) - { - if (Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) - { - PLAT_LOG("Enabled BLE Advertisements"); - } - else - { - PLAT_LOG("OpenBasicCommissioningWindow() failed"); - } - } - else - { - // Disable BLE advertisements - ConnectivityMgr().SetBLEAdvertisingEnabled(false); - PLAT_LOG("Disabled BLE Advertisements"); - } - } - break; - - case AppEvent::kEventType_AppEvent: - if (NULL != aEvent->Handler) - { - aEvent->Handler(aEvent); - } - break; - - case AppEvent::kEventType_None: - default: - break; - } -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp b/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp deleted file mode 100644 index df12e131ca069a..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp +++ /dev/null @@ -1,180 +0,0 @@ - -/* - * - * Copyright (c) 2022 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. - */ -#include "ClusterManager.h" -#include "Globals.h" -#include -#include -#include -#include -#include - -#ifdef AUTO_PRINT_METRICS -#include -#endif - -using namespace ::chip; -using namespace ::chip::app; -using namespace ::chip::Inet; -using namespace ::chip::System; -using namespace ::chip::DeviceLayer; - -constexpr uint32_t kIdentifyTimerDelayMS = 250; -constexpr uint32_t kIdentifyTimerDelayPerSec = 4; -ClusterManager ClusterManager::sCluster; - -#define ENDPOINT_ID_0 (0) -#define ENDPOINT_ID_1 (1) -#define ENDPOINT_ID_2 (2) - -void OnIdentifyTriggerEffect(Identify * identify) -{ - switch (identify->mCurrentEffectIdentifier) - { - case Clusters::Identify::EffectIdentifierEnum::kBlink: - PLAT_LOG("Clusters::Identify::EffectIdentifierEnum::kBlink"); - break; - case Clusters::Identify::EffectIdentifierEnum::kBreathe: - PLAT_LOG("Clusters::Identify::EffectIdentifierEnum::kBreathe"); - break; - case Clusters::Identify::EffectIdentifierEnum::kOkay: - PLAT_LOG("Clusters::Identify::EffectIdentifierEnum::kOkay"); - break; - case Clusters::Identify::EffectIdentifierEnum::kChannelChange: - PLAT_LOG("Clusters::Identify::EffectIdentifierEnum::kChannelChange"); - break; - default: - PLAT_LOG("No identifier effect"); - break; - } - return; -} - -Identify gIdentify0 = { - chip::EndpointId{ 0 }, - [](Identify *) { PLAT_LOG("onIdentifyStart"); }, - [](Identify *) { PLAT_LOG("onIdentifyStop"); }, - Clusters::Identify::IdentifyTypeEnum::kVisibleIndicator, - OnIdentifyTriggerEffect, -}; - -Identify gIdentify1 = { - chip::EndpointId{ 1 }, - [](Identify *) { PLAT_LOG("onIdentifyStart"); }, - [](Identify *) { PLAT_LOG("onIdentifyStop"); }, - Clusters::Identify::IdentifyTypeEnum::kVisibleIndicator, - OnIdentifyTriggerEffect, -}; - -void ClusterManager::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) -{ - using namespace app::Clusters::OnOff::Attributes; - - VerifyOrExit(attributeId == OnOff::Id, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); - VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, - PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); - - // At this point we can assume that value points to a bool value. - mEndpointOnOffState[endpointId - 1] = *value; - endpointId == ENDPOINT_ID_1 ? LED_write(sAppGreenHandle, *value) : LED_write(sAppRedHandle, *value); - -exit: - return; -} - -void ClusterManager::OnLevelControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) -{ - using namespace app::Clusters::LevelControl::Attributes; - - bool onOffState = mEndpointOnOffState[endpointId - 1]; - uint8_t brightness = onOffState ? *value : 0; - - VerifyOrExit(brightness > 0, PLAT_LOG("Brightness set to 0, ignoring")); - VerifyOrExit(attributeId == CurrentLevel::Id, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); - VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, - PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); - - if (brightness > LED_BRIGHTNESS_MAX) - { - brightness = LED_BRIGHTNESS_MAX; - } - - endpointId == ENDPOINT_ID_1 ? LED_setOn(sAppGreenHandle, brightness) : LED_setOn(sAppRedHandle, brightness); - -exit: - return; -} - -void ClusterManager::OnColorControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) -{ - using namespace app::Clusters::ColorControl::Attributes; - - VerifyOrExit(attributeId == CurrentHue::Id || attributeId == CurrentSaturation::Id, - PLAT_LOG("Unhandled AttributeId ID: '0x%04x", attributeId)); - VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, - PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); - - if (endpointId == ENDPOINT_ID_1) - { - uint8_t hue, saturation; - if (attributeId == CurrentHue::Id) - { - hue = *value; - /* Read Current Saturation value when Attribute change callback for HUE Attribute */ - CurrentSaturation::Get(endpointId, &saturation); - } - else - { - saturation = *value; - /* Read Current Hue value when Attribute change callback for SATURATION Attribute */ - CurrentHue::Get(endpointId, &hue); - } - PLAT_LOG("Color Control triggered: Hue: %d Saturation: %d", hue, saturation); - } -exit: - return; -} - -void ClusterManager::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint16_t size, - uint8_t * value) -{ - if (attributeId == app::Clusters::Identify::Attributes::IdentifyTime::Id && size == 2) - { - uint16_t identifyTime; - memcpy(&identifyTime, value, size); - if (identifyTime) - { - // Currently we have no separate indicator LEDs on each endpoints. - // We are using LED1 for endpoint 0,1 and LED2 for endpoint 2 - if (endpointId == ENDPOINT_ID_2) - { - LED_startBlinking(sAppGreenHandle, kIdentifyTimerDelayMS, identifyTime * kIdentifyTimerDelayPerSec); - } - else - { - LED_startBlinking(sAppRedHandle, kIdentifyTimerDelayMS, identifyTime * kIdentifyTimerDelayPerSec); - } - } - else - { - bool onOffState; - endpointId == ENDPOINT_ID_0 ? onOffState = mEndpointOnOffState[0] : onOffState = mEndpointOnOffState[endpointId - 1]; - endpointId == ENDPOINT_ID_2 ? LED_write(sAppRedHandle, onOffState) : LED_write(sAppGreenHandle, onOffState); - } - } -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/Globals.cpp b/examples/all-clusters-app/cc13x2x7_26x2x7/main/Globals.cpp deleted file mode 100644 index 01a945e1a33d12..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/Globals.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * - * Copyright (c) 2022 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. - */ - -#include "Globals.h" - -LED_Handle sAppRedHandle; -LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/ZclCallbacks.cpp b/examples/all-clusters-app/cc13x2x7_26x2x7/main/ZclCallbacks.cpp deleted file mode 100644 index ba3f7bd1c205f8..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/ZclCallbacks.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * - * Copyright (c) 2021 Project CHIP Authors - * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) - * - * 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. - */ - -/** - * @file - * This file implements the handler for data model messages. - */ - -#include "AppConfig.h" -#include "Globals.h" -#include - -#include "ClusterManager.h" - -#include -#include -#include -#include -#include -#include - -using namespace ::chip; -using namespace ::chip::app::Clusters; - -void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, - uint8_t * value) -{ - EndpointId endpoint = attributePath.mEndpointId; - ClusterId clusterId = attributePath.mClusterId; - AttributeId attributeId = attributePath.mAttributeId; - PLAT_LOG("MatterPostAttributeChangeCallback - Cluster ID: " ChipLogFormatMEI - ", EndPoint ID: '0x%02x', Attribute ID: " ChipLogFormatMEI, - ChipLogValueMEI(clusterId), endpoint, ChipLogValueMEI(attributeId)); - - switch (clusterId) - { - case OnOff::Id: - ClusterMgr().OnOnOffPostAttributeChangeCallback(endpoint, attributeId, value); - break; - - case Identify::Id: - ClusterMgr().OnIdentifyPostAttributeChangeCallback(endpoint, attributeId, size, value); - break; - - case LevelControl::Id: - ClusterMgr().OnLevelControlAttributeChangeCallback(endpoint, attributeId, value); - break; - - case ColorControl::Id: - ClusterMgr().OnColorControlAttributeChangeCallback(endpoint, attributeId, value); - break; - default: - PLAT_LOG("Unhandled cluster ID: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); - break; - } -} -/** @brief OnOff Cluster Init - * - * This function is called when a specific cluster is initialized. It gives the - * application an opportunity to take care of cluster initialization procedures. - * It is called exactly once for each endpoint where cluster is present. - * - * @param endpoint Ver.: always - */ -void emberAfOnOffClusterInitCallback(EndpointId endpoint) -{ - // TODO: implement any additional Cluster Server init actions -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppConfig.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppConfig.h deleted file mode 100644 index f7302b6efd10cd..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppConfig.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. - * 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. - */ - -#ifndef APP_CONFIG_H -#define APP_CONFIG_H - -#endif // APP_CONFIG_H diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppEvent.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppEvent.h deleted file mode 100644 index ad9e93ee3ad1a5..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppEvent.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - * Copyright (c) 2018 Nest Labs, Inc. - * 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. - */ - -#ifndef APP_EVENT_H -#define APP_EVENT_H - -struct AppEvent; -typedef void (*EventHandler)(AppEvent *); - -struct AppEvent -{ - enum AppEventType - { - kEventType_None = 0, - kEventType_ButtonLeft, - kEventType_ButtonRight, - kEventType_AppEvent, - }; - - enum AppEventButtonType - { - kAppEventButtonType_None = 0, - kAppEventButtonType_Clicked, - kAppEventButtonType_LongClicked, - }; - - enum AppEventType Type; - - union - { - struct - { - enum AppEventButtonType Type; - } ButtonEvent; - - struct - { - void * Context; - } BoltLockEvent; - }; - - EventHandler Handler; -}; - -#endif // APP_EVENT_H diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppTask.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppTask.h deleted file mode 100644 index 6ab8ca425ddbdf..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/AppTask.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. - * 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. - */ - -#ifndef APP_TASK_H -#define APP_TASK_H - -#include -#include - -#include "FreeRTOS.h" -#include "semphr.h" -#include "task.h" - -#include "AppEvent.h" - -#include - -#ifdef CC13XX_26XX_FACTORY_DATA -#include -#endif - -class AppTask -{ -public: - int StartAppTask(); - static void AppTaskMain(void * pvParameter); - - void PostEvent(const AppEvent * event); - -private: - friend AppTask & GetAppTask(void); - - int Init(); - - void DispatchEvent(AppEvent * event); - - static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); - static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); - static void TimerEventHandler(void * p_context); - - enum Function_t - { - kFunction_NoneSelected = 0, - kFunction_SoftwareUpdate = 0, - kFunction_FactoryReset, - - kFunction_Invalid - } Function; - - Function_t mFunction; - bool mFunctionTimerActive; - - static AppTask sAppTask; - -#ifdef CC13XX_26XX_FACTORY_DATA - chip::DeviceLayer::FactoryDataProvider mFactoryDataProvider; -#endif -}; - -inline AppTask & GetAppTask(void) -{ - return AppTask::sAppTask; -} - -#endif // APP_TASK_H diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/CHIPProjectConfig.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/CHIPProjectConfig.h deleted file mode 100644 index 97357823332342..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/CHIPProjectConfig.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. - * 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. - */ - -/** - * @file - * Example project configuration file for CHIP. - * - * This is a place to put application or project-specific overrides - * to the default configuration values for general CHIP features. - * - */ - -#ifndef CHIP_PROJECT_CONFIG_H -#define CHIP_PROJECT_CONFIG_H - -#if BUILD_RELEASE // release build -// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds -#endif // BUILD_RELEASE - -// Use a default pairing code if one hasn't been provisioned in flash. -#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 -#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 - -/** - * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER - * - * Enables the use of a hard-coded default serial number if none - * is found in CHIP NV storage. - */ -#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" - -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * Values set by args.gni: - * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID - * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - */ - -/** - * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE - * - * Enable support for CHIP-over-BLE (CHIPOBLE). - */ -#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 - -/** - * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE - * - * A size, in bytes, of the individual debug event logging buffer. - */ -#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) - -#define MATTER_CC13X2_26X2_PLATFORM_LOG_ENABLED 1 - -/** - * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT - * - * Enable the OpenThread SRP client to allow for CHIP device discovery. - */ -#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 - -/** - * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE - * - * For a development build, set the default importance of events to be logged as Debug. - * Since debug is the lowest importance level, this means all standard, critical, info and - * debug importance level vi events get logged. - */ -#if BUILD_RELEASE -#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production -#else -#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug -#endif // BUILD_RELEASE - -#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 - -/** - * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER - * - * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. - */ -#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 1 - -/** - * @def CHIP_IM_MAX_NUM_WRITE_HANDLER - * - * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. - */ -#define CHIP_IM_MAX_NUM_WRITE_HANDLER 1 - -// All clusters app has 3 group endpoints. This needs to defined here so that -// CHIP_CONFIG_MAX_GROUPS_PER_FABRIC is properly configured. -#define CHIP_CONFIG_MAX_GROUP_ENDPOINTS_PER_FABRIC 3 - -#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/ClusterManager.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/ClusterManager.h deleted file mode 100644 index 1599ef1ef19264..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/ClusterManager.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * - * Copyright (c) 2021 Project CHIP Authors - * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) - * 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. - */ - -/** - * @file ClusterManager.h - * - * Declarations for the ClusterManager callbacks for this application - * - **/ - -#pragma once - -#include -#include -#include - -class ClusterManager -{ -public: - void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); - void OnLevelControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); - void OnColorControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); - void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint16_t size, - uint8_t * value); - -private: - friend ClusterManager & ClusterMgr(void); - bool mEndpointOnOffState[2]; - static ClusterManager sCluster; -}; - -inline ClusterManager & ClusterMgr(void) -{ - return ClusterManager::sCluster; -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/Globals.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/Globals.h deleted file mode 100644 index 43f9362e0341b9..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/Globals.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - * 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 -// Logging -#ifdef __cplusplus -extern "C" { -#endif - -int cc13x2_26x2LogInit(void); -void cc13x2_26x2Log(const char * aFormat, ...); -#define PLAT_LOG(...) cc13x2_26x2Log(__VA_ARGS__); - -#ifdef __cplusplus -} -#endif -extern LED_Handle sAppRedHandle; -extern LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/OpenThreadConfig.h b/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/OpenThreadConfig.h deleted file mode 100644 index 30f5633cc3bc7f..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/include/OpenThreadConfig.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. - * 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. - */ - -/** - * @file - * Overrides to default OpenThread configuration. - * - */ - -#pragma once - -// Use the TI-supplied default platform configuration for remainder -#include "openthread-core-cc13x2_26x2-config.h" diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/main.cpp b/examples/all-clusters-app/cc13x2x7_26x2x7/main/main.cpp deleted file mode 100644 index 8311c8990aa5c6..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/main.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2020 Texas Instruments Incorporated - * - * 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. - */ - -#include -#include - -#include - -#include -#include - -#include - -/* Driver Header files */ -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#define TOTAL_ICALL_HEAP_SIZE (0xc800) - -using namespace ::chip; -using namespace ::chip::Inet; -using namespace ::chip::DeviceLayer; - -__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; -uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; - -// ================================================================================ -// FreeRTOS Callbacks -// ================================================================================ -extern "C" void vApplicationStackOverflowHook(void) -{ - while (true) - { - ; - } -} - -// ================================================================================ -// Main Code -// ================================================================================ -int main(void) -{ - Board_init(); - bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); - - GPIO_init(); - - NVS_init(); - - UART_init(); - - ECDH_init(); - - ECDSA_init(); - - AESECB_init(); - - SHA2_init(); - - int ret = GetAppTask().StartAppTask(); - if (ret != 0) - { - // can't log until the kernel is started - // PLAT_LOG("GetAppTask().StartAppTask() failed"); - while (true) - ; - } - - vTaskStartScheduler(); - - // Should never get here. - while (true) - ; -} diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/third_party/connectedhomeip b/examples/all-clusters-app/cc13x2x7_26x2x7/third_party/connectedhomeip deleted file mode 120000 index c866b86874994d..00000000000000 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/third_party/connectedhomeip +++ /dev/null @@ -1 +0,0 @@ -../../../.. \ No newline at end of file diff --git a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn index eb118372b7bd33..2a5609fb98b928 100644 --- a/examples/all-clusters-app/cc13x4_26x4/BUILD.gn +++ b/examples/all-clusters-app/cc13x4_26x4/BUILD.gn @@ -45,31 +45,13 @@ ti_sysconfig("sysconfig") { "ti_ble_config.h", "ti_dmm_application_policy.c", "ti_dmm_application_policy.h", - - # CCFG generation disabled for OTA-able application - #"ti_devices_config.c", - #"ti_devices_config.h", - - # disabled until upstream generation is aligned - #"tiop_config.h", - #"tiop_config.c", - - # not traditional source files - #"ti_utils_build_linker.cmd.genlibs", - #"syscfg_c.rov.xs", - #"ti_utils_runtime_model.gv", - #"ti_utils_runtime_Makefile", - #"ti_ble_app_config.opt", - #"ti_build_config.opt", ] public_configs = [ ":sdk_cc13x4_26x4_dmm_config" ] cflags = [ "-Wno-comment", - "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", - root_build_dir), - "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_utils_build_compiler.opt", root_build_dir), ] } @@ -96,6 +78,7 @@ ti_simplelink_executable("all-clusters-app") { "${chip_root}/examples/energy-management-app/energy-management-common/src/EnergyEvseDelegateImpl.cpp", "${chip_root}/examples/energy-management-app/energy-management-common/src/EnergyEvseManager.cpp", "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp", + "${chip_root}/src/app/clusters/general-diagnostics-server/GenericFaultTestEventTriggerHandler.cpp", "${project_dir}/main/AppTask.cpp", "${project_dir}/main/ClusterManager.cpp", "${project_dir}/main/Globals.cpp", @@ -103,22 +86,26 @@ ti_simplelink_executable("all-clusters-app") { "${project_dir}/main/main.cpp", ] + public = [ + "${chip_root}/src/platform/cc13xx_26xx/DefaultTestEventTriggerDelegate.h", + ] + deps = [ ":sdk", ":sysconfig", "${chip_root}/examples/all-clusters-app/all-clusters-common", "${chip_root}/examples/platform/cc13x4_26x4:cc13x4_26x4-attestation-credentials", "${chip_root}/src/lib", + "${chip_root}/src/platform/logging:default", + "${chip_root}/third_party/openthread:openthread", ] - - if (chip_openthread_ftd) { - deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] - } else { - deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + defines = [] + if (custom_factory_data) { + defines += [ "CC13XX_26XX_FACTORY_DATA" ] } - if (custom_factory_data) { - defines = [ "CC13XX_26XX_FACTORY_DATA" ] + if (chip_enable_icd_server) { + defines += [ "TI_ICD_ENABLE_SERVER" ] } include_dirs = [ diff --git a/examples/all-clusters-app/cc13x4_26x4/README.md b/examples/all-clusters-app/cc13x4_26x4/README.md index f5a355f249c8aa..be6a38277edafc 100644 --- a/examples/all-clusters-app/cc13x4_26x4/README.md +++ b/examples/all-clusters-app/cc13x4_26x4/README.md @@ -59,16 +59,22 @@ guide assumes that the environment is linux based, and recommends Ubuntu 20.04. ``` $ cd ~ - $ `wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.16.2.3028/sysconfig-1.16.2_3028-setup.run` - $ chmod +x sysconfig-1.16.2_3028-setup.run - $ ./sysconfig-1.16.2_3028-setup.run + $ wget https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/1.18.1.3343/sysconfig-1.18.1_3343-setup.run + $ chmod +x sysconfig-1.18.1_3343-setup.run + $ ./sysconfig-1.18.1_3343-setup.run ``` - Run the bootstrap script to setup the build environment. +- Note, a recursive submodule checkout is required to utilize TI's Openthread + reference commit. +- Note, in order to build the chip-tool and ota-provider examples, a recursive + submodule checkout is required for the linux platform as seen in the command + below. ``` $ cd ~/connectedhomeip $ source ./scripts/bootstrap.sh + $ ./scripts/checkout_submodules.py --shallow --platform cc13xx_26xx linux --recursive ``` @@ -88,15 +94,13 @@ Ninja to build the executable. - Run the build to produce a default executable. By default on Linux both the TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's home directory, and you must provide the absolute path to them. For example - `/home/username/ti/sysconfig_1.16.2`. On Windows the default directory is + `/home/username/ti/sysconfig_1.18.1`. On Windows the default directory is `C:\ti`. Take note of this install path, as it will be used in the next step. ``` - $ cd ~/connectedhomeip/examples/all-clusters-app/cc13x2x7_26x2x7 - OR $ cd ~/connectedhomeip/examples/all-clusters-minimal-app/cc13x4_26x4 - $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.16.2\"" + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.18.1\"" $ ninja -C out/debug ``` @@ -105,7 +109,7 @@ Ninja to build the executable. to the GN call. ``` - gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.16.2\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" + gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.18.1\" target_defines=[\"CC13X4_26X4_ATTESTATION_CREDENTIALS=1\"]" ``` ## Programming diff --git a/examples/all-clusters-app/cc13x4_26x4/args.gni b/examples/all-clusters-app/cc13x4_26x4/args.gni index 35d9666f3ed07c..56b7504ebf03f5 100644 --- a/examples/all-clusters-app/cc13x4_26x4/args.gni +++ b/examples/all-clusters-app/cc13x4_26x4/args.gni @@ -13,6 +13,7 @@ # limitations under the License. import("//build_overrides/chip.gni") +import("//build_overrides/freertos.gni") import("${chip_root}/config/standalone/args.gni") import("${chip_root}/examples/platform/cc13x4_26x4/args.gni") @@ -29,13 +30,18 @@ lwip_debug = false chip_enable_ota_requestor = true -openthread_external_platform = "${chip_root}/third_party/openthread/platforms/cc13x4_26x4:libopenthread-cc13x4_cc26x4" +openthread_external_platform = + "${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti" + +# When using TI Certified Openthread libs set to ${chip_root}/third_party/openthread/platforms/ti:ot-ti-cert +# For source builds, set to empty string. +chip_openthread_target = + "${chip_root}/third_party/openthread/platforms/ti:ot-ti-cert" + chip_openthread_ftd = true # Disable CHIP Logging #chip_progress_logging = false - -# Disable verbose logs for all-clusters app to save Flash #chip_detail_logging = false #chip_automation_logging = false @@ -52,3 +58,15 @@ matter_software_ver = "0x0001" matter_software_ver_str = "1.0.1+1" custom_factory_data = true + +# ICD Default configurations +chip_enable_icd_server = false +chip_persist_subscriptions = false +chip_subscription_timeout_resumption = false + +freertos_root = "//third_party/connectedhomeip/third_party/ti_simplelink_sdk/repo_cc13xx_cc26xx/source/third_party/freertos" + +if (chip_openthread_target != "") { + openthread_root = + "//third_party/connectedhomeip/third_party/openthread/ot-ti/openthread" +} diff --git a/examples/all-clusters-app/cc13x4_26x4/chip.syscfg b/examples/all-clusters-app/cc13x4_26x4/chip.syscfg index 0257d3ed152e5e..16ce3520e42674 100644 --- a/examples/all-clusters-app/cc13x4_26x4/chip.syscfg +++ b/examples/all-clusters-app/cc13x4_26x4/chip.syscfg @@ -89,8 +89,8 @@ CCFG.enableCodeGeneration = false; /* NVS */ NVS1.$name = "CONFIG_NVSINTERNAL"; -NVS1.internalFlash.regionBase = 0xFB800; -NVS1.internalFlash.regionSize = 0x2800; +NVS1.internalFlash.regionBase = 0xF8800; +NVS1.internalFlash.regionSize = 0x6000; NVS2.$name = "CONFIG_NVSEXTERNAL"; @@ -168,14 +168,12 @@ LED1.$name = "CONFIG_LED_RED"; LED1.$hardware = system.deviceData.board.components.LED_RED; LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; LED1.gpioPin.mode = "Output"; -LED1.gpioPin.callbackFunction = ""; /* Green LED */ LED2.$name = "CONFIG_LED_GREEN"; LED2.$hardware = system.deviceData.board.components.LED_GREEN; LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; LED2.gpioPin.mode = "Output"; -LED2.gpioPin.callbackFunction = ""; /* Debug UART */ UART2.$hardware = system.deviceData.board.components.XDS110UART; diff --git a/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp b/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp index f82436346fc241..98926214c4cb36 100644 --- a/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp +++ b/examples/all-clusters-app/cc13x4_26x4/main/AppTask.cpp @@ -20,10 +20,10 @@ #include "AppConfig.h" #include "AppEvent.h" #include -#include #include "FreeRTOS.h" #include "Globals.h" +#include #include #include @@ -40,11 +40,15 @@ #include #include -#ifdef AUTO_PRINT_METRICS -#include +#if AUTO_PRINT_METRICS +// #include #endif #include +#include +#include +#include + #include #include @@ -54,6 +58,9 @@ #define APP_TASK_STACK_SIZE (5000) #define APP_TASK_PRIORITY 4 #define APP_EVENT_QUEUE_SIZE 10 +#define BUTTON_ENABLE 1 + +#define OTAREQUESTOR_INIT_TIMER_DELAY_MS 10000 using namespace ::chip; using namespace ::chip::Credentials; @@ -61,7 +68,6 @@ using namespace ::chip::DeviceLayer; static TaskHandle_t sAppTaskHandle; static QueueHandle_t sAppEventQueue; - static Button_Handle sAppLeftHandle; static Button_Handle sAppRightHandle; static DeviceInfoProviderImpl sExampleDeviceInfoProvider; @@ -70,6 +76,12 @@ AppTask AppTask::sAppTask; constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; +void StartTimer(uint32_t aTimeoutMs); +void CancelTimer(void); + +uint8_t sTestEventTriggerEnableKey[TestEventTriggerDelegate::kEnableKeyLength] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }; + #if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR static DefaultOTARequestor sRequestorCore; static DefaultOTARequestorStorage sRequestorStorage; @@ -90,6 +102,15 @@ void InitializeOTARequestor(void) } #endif +TimerHandle_t sOTAInitTimer = 0; + +// The OTA Init Timer is only started upon the first Thread State Change +// detected if the device is already on a Thread Network, or during the AppTask +// Init sequence if the device is not yet on a Thread Network. Once the timer +// has been started once, it does not need to be started again so the flag will +// be set to false. +bool isAppStarting = true; + #ifdef AUTO_PRINT_METRICS static void printMetrics(void) { @@ -132,6 +153,22 @@ void DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) case DeviceEventType::kCommissioningComplete: PLAT_LOG("Commissioning complete"); break; + case DeviceEventType::kThreadStateChange: + PLAT_LOG("Thread State Change"); + bool isThreadAttached = ThreadStackMgrImpl().IsThreadAttached(); + + if (isThreadAttached) + { + PLAT_LOG("Device is on the Thread Network"); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + if (isAppStarting) + { + StartTimer(OTAREQUESTOR_INIT_TIMER_DELAY_MS); + isAppStarting = false; + } +#endif + } + break; } #ifdef AUTO_PRINT_METRICS @@ -139,6 +176,11 @@ void DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) #endif } +void OTAInitTimerEventHandler(TimerHandle_t xTimer) +{ + InitializeOTARequestor(); +} + int AppTask::StartAppTask() { int ret = 0; @@ -164,42 +206,16 @@ int AppTask::StartAppTask() int AppTask::Init() { - LED_Params ledParams; - Button_Params buttonParams; - cc13xx_26xxLogInit(); - // Initialize LEDs - PLAT_LOG("Initialize LEDs"); - LED_init(); - - LED_Params_init(&ledParams); // default PWM LED - sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); - LED_setOff(sAppRedHandle); - - LED_Params_init(&ledParams); // default PWM LED - sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); - LED_setOff(sAppGreenHandle); - - // Initialize buttons - PLAT_LOG("Initialize buttons"); - Button_init(); - - Button_Params_init(&buttonParams); - buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; - buttonParams.longPressDuration = 1000U; // ms - sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); - Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); - - Button_Params_init(&buttonParams); - buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; - buttonParams.longPressDuration = 1000U; // ms - sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); - Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + uiInit(); // Init Chip memory management before the stack Platform::MemoryInit(); + PLAT_LOG("Software Version: %d", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + PLAT_LOG("Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); + CHIP_ERROR ret = PlatformMgr().InitChipStack(); if (ret != CHIP_NO_ERROR) { @@ -208,6 +224,23 @@ int AppTask::Init() ; } + // Create FreeRTOS sw timer for OTA timer. + sOTAInitTimer = xTimerCreate("OTAInitTmr", // Just a text name, not used by the RTOS kernel + OTAREQUESTOR_INIT_TIMER_DELAY_MS, // timer period (mS) + false, // no timer reload (==one-shot) + (void *) this, // init timer id = light obj context + OTAInitTimerEventHandler // timer callback handler + ); + + if (sOTAInitTimer == NULL) + { + PLAT_LOG("sOTAInitTimer timer create failed"); + } + else + { + PLAT_LOG("sOTAInitTimer timer created successfully "); + } + ret = ThreadStackMgr().InitThreadStack(); if (ret != CHIP_NO_ERROR) { @@ -218,22 +251,15 @@ int AppTask::Init() #if CHIP_DEVICE_CONFIG_THREAD_FTD ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); -#elif CONFIG_OPENTHREAD_MTD_SED +#elif CHIP_CONFIG_ENABLE_ICD_SERVER ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_SleepyEndDevice); #else ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); #endif - if (ret != CHIP_NO_ERROR) - { - PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); - while (1) - ; - } - ret = PlatformMgr().StartEventLoopTask(); if (ret != CHIP_NO_ERROR) { - PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); while (1) ; } @@ -262,6 +288,9 @@ int AppTask::Init() // Init ZCL Data Model and start server PLAT_LOG("Initialize Server"); static chip::CommonCaseDeviceServerInitParams initParams; + static DefaultTestEventTriggerDelegate sTestEventTriggerDelegate{ ByteSpan(sTestEventTriggerEnableKey) }; + initParams.testEventTriggerDelegate = &sTestEventTriggerDelegate; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); // Initialize info provider @@ -270,6 +299,14 @@ int AppTask::Init() chip::Server::GetInstance().Init(initParams); + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + while (1) + ; + } + ConfigurationMgr().LogDeviceConfig(); // We only have network commissioning on endpoint 0. @@ -279,9 +316,15 @@ int AppTask::Init() // this function will happen on the CHIP event loop thread, not the app_main thread. PlatformMgr().AddEventHandler(DeviceEventCallback, reinterpret_cast(nullptr)); + bool isThreadEnabled = ThreadStackMgrImpl().IsThreadEnabled(); + if (!isThreadEnabled && isAppStarting) + { #if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR - InitializeOTARequestor(); + PLAT_LOG("Thread is Disabled, enable OTA Requestor"); + StartTimer(OTAREQUESTOR_INIT_TIMER_DELAY_MS); + isAppStarting = false; #endif + } // QR code will be used with CHIP Tool PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); @@ -304,49 +347,35 @@ void AppTask::AppTaskMain(void * pvParameter) } } -void AppTask::PostEvent(const AppEvent * aEvent) +void StartTimer(uint32_t aTimeoutMs) { - if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) + PLAT_LOG("Start OTA Init Timer") + if (xTimerIsTimerActive(sOTAInitTimer)) { - /* Failed to post the message */ + PLAT_LOG("app timer already started!"); + CancelTimer(); } -} -void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) -{ - AppEvent event; - event.Type = AppEvent::kEventType_ButtonLeft; - - if (events & Button_EV_CLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; - } - else if (events & Button_EV_LONGCLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; - } - // button callbacks are in ISR context - if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + // timer is not active, change its period to required value (== restart). + // FreeRTOS- Block for a maximum of 100 ticks if the change period command + // cannot immediately be sent to the timer command queue. + if (xTimerChangePeriod(sOTAInitTimer, pdMS_TO_TICKS(aTimeoutMs), 100) != pdPASS) { - /* Failed to post the message */ + PLAT_LOG("sOTAInitTimer timer start() failed"); } } -void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +void CancelTimer(void) { - AppEvent event; - event.Type = AppEvent::kEventType_ButtonRight; - - if (events & Button_EV_CLICKED) - { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; - } - else if (events & Button_EV_LONGCLICKED) + if (xTimerStop(sOTAInitTimer, 0) == pdFAIL) { - event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + PLAT_LOG("sOTAInitTimer stop() failed"); } - // button callbacks are in ISR context - if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) { /* Failed to post the message */ } @@ -405,3 +434,85 @@ void AppTask::DispatchEvent(AppEvent * aEvent) break; } } + +#if (BUTTON_ENABLE == 1) +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} +#endif // BUTTON_ENABLE + +void AppTask::uiInit(void) +{ +#if (LED_ENABLE == 1) + + LED_Params ledParams; + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); +#endif // LED ENABLE + +#if (BUTTON_ENABLE == 1) + Button_Params buttonParams; + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); +#endif // BUTTON ENABLE +} diff --git a/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp b/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp index 01a945e1a33d12..00fd64e3125218 100644 --- a/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp +++ b/examples/all-clusters-app/cc13x4_26x4/main/Globals.cpp @@ -18,5 +18,7 @@ #include "Globals.h" +#if (LED_ENABLE == 1) LED_Handle sAppRedHandle; LED_Handle sAppGreenHandle; +#endif diff --git a/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp b/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp index 09505504315cad..b21e2ad4c1b9f0 100644 --- a/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp +++ b/examples/all-clusters-app/cc13x4_26x4/main/ZclCallbacks.cpp @@ -30,7 +30,6 @@ #include #include #include -#include #include using namespace ::chip; diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h b/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h index 6ab8ca425ddbdf..55297d715d95ca 100644 --- a/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/AppTask.h @@ -48,6 +48,7 @@ class AppTask int Init(); void DispatchEvent(AppEvent * event); + void uiInit(); static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h b/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h index 4cdc0b69174d60..8320b01ac79bb7 100644 --- a/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h +++ b/examples/all-clusters-app/cc13x4_26x4/main/include/Globals.h @@ -31,5 +31,12 @@ void cc13xx_26xxLog(const char * aFormat, ...); #ifdef __cplusplus } #endif + +#if (CHIP_CONFIG_ENABLE_ICD_SERVER == 1) +#define LED_ENABLE 0 +#else +#define LED_ENABLE 1 +#endif + extern LED_Handle sAppRedHandle; extern LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h b/examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h deleted file mode 100644 index 7d227258b1eaae..00000000000000 --- a/examples/all-clusters-app/cc13x4_26x4/main/include/OpenThreadConfig.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. - * 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. - */ - -/** - * @file - * Overrides to default OpenThread configuration. - * - */ - -#pragma once - -// Use the TI-supplied default platform configuration for remainder -#include "openthread-core-cc13x4_26x4-config.h" diff --git a/examples/all-clusters-app/cc13x4_26x4/main/main.cpp b/examples/all-clusters-app/cc13x4_26x4/main/main.cpp index 5a7f6a6b8df072..8162d893d5c198 100644 --- a/examples/all-clusters-app/cc13x4_26x4/main/main.cpp +++ b/examples/all-clusters-app/cc13x4_26x4/main/main.cpp @@ -48,14 +48,6 @@ uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; // ================================================================================ // FreeRTOS Callbacks // ================================================================================ -extern "C" void vApplicationStackOverflowHook(void) -{ - while (1) - { - ; - } -} - /* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) { diff --git a/examples/all-clusters-app/esp32/README.md b/examples/all-clusters-app/esp32/README.md index d7817027369adf..60ee180c1337fd 100644 --- a/examples/all-clusters-app/esp32/README.md +++ b/examples/all-clusters-app/esp32/README.md @@ -14,6 +14,7 @@ guides to get started. - [Cluster control](#cluster-control) - [Matter OTA guide](../../../docs/guides/esp32/ota.md) - [RPC console and Device Tracing](../../../docs/guides/esp32/rpc_console.md) +- [Multiple Network Interfaces](#multiple-network-interfaces) --- @@ -37,6 +38,24 @@ Usage: $ ./out/debug/chip-tool levelcontrol move-to-level Level=10 TransitionTime=0 OptionMask=0 OptionOverride=0 ``` +### Multiple Network Interfaces + +The data model of this example includes a secondary NetworkCommissioning +Endpoint with another NetworkCommissioning cluster. The Endpoint Id for the +secondary NetworkCommissioning Endpoint is 65534. The secondary +NetworkCommissioning Endpoint can be used to manage the driver of extra network +interface. + +For ESP32-C6 DevKits, if `CHIP_DEVICE_CONFIG_ENABLE_WIFI` and +`CHIP_DEVICE_CONFIG_ENABLE_THREAD` are both enabled, the NetworkCommissioning +cluster in Endpoint 0 will be used for Thread network driver and the same +cluster on Endpoint 65534 will be used for Wi-Fi network driver. + +For ESP32-Ethernet-Kits, if `CHIP_DEVICE_CONFIG_ENABLE_WIFI` and +`CHIP_DEVICE_CONFIG_ENABLE_ETHERNET` are both enabled, the NetworkCommissioning +cluster in Endpoint 0 will be used for Ethernet network driver and the same +cluster on Endpoint 65534 will be used for Wi-Fi network driver. + --- This demo app illustrates controlling OnOff cluster (Server) attributes of an diff --git a/examples/all-clusters-app/esp32/main/CMakeLists.txt b/examples/all-clusters-app/esp32/main/CMakeLists.txt index 63851b1deeb611..dc41290765313a 100644 --- a/examples/all-clusters-app/esp32/main/CMakeLists.txt +++ b/examples/all-clusters-app/esp32/main/CMakeLists.txt @@ -34,7 +34,6 @@ set(SRC_DIRS_LIST "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/ota" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/common" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/shell_extension" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/mode-support" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/icd/server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/util" @@ -96,8 +95,8 @@ set(SRC_DIRS_LIST "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/time-synchronization-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/valve-configuration-and-control-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/dishwasher-alarm-server" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/laundry-washer-controls-server" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/laundry-washer-controls-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/laundry-washer-controls-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/laundry-washer-controls-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/laundry-dryer-controls-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/energy-preference-server" @@ -106,8 +105,6 @@ set(SRC_DIRS_LIST ) -set(EXCLUDE_SRCS "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp") - if (CONFIG_ENABLE_PW_RPC) # Append additional directories for RPC build set(PRIV_INCLUDE_DIRS_LIST "${PRIV_INCLUDE_DIRS_LIST}" @@ -136,20 +133,9 @@ if (CONFIG_ENABLE_ICD_SERVER) list(APPEND SRC_DIRS_LIST "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/icd") endif() -set(PRIV_REQUIRES_LIST chip QRCode bt app_update nvs_flash spi_flash openthread) - -if(${IDF_TARGET} STREQUAL "esp32") - list(APPEND PRIV_REQUIRES_LIST spidriver screen-framework) -endif() - -if(CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM) - list(APPEND PRIV_REQUIRES_LIST led_strip) -endif() - idf_component_register(PRIV_INCLUDE_DIRS ${PRIV_INCLUDE_DIRS_LIST} SRC_DIRS ${SRC_DIRS_LIST} - EXCLUDE_SRCS ${EXCLUDE_SRCS} - PRIV_REQUIRES ${PRIV_REQUIRES_LIST}) + EXCLUDE_SRCS ${EXCLUDE_SRCS}) get_filename_component(CHIP_ROOT ${CMAKE_SOURCE_DIR}/third_party/connectedhomeip REALPATH) diff --git a/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp b/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp index 0668411a9bfbd3..6f35995a445110 100644 --- a/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp +++ b/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp @@ -22,6 +22,10 @@ #include #include +#include +#include +#include + #if CONFIG_HAVE_DISPLAY using namespace ::chip; using namespace ::chip::Credentials; diff --git a/examples/all-clusters-app/esp32/main/QRCodeScreen.cpp b/examples/all-clusters-app/esp32/main/QRCodeScreen.cpp index 578f44003f435e..ac39b9498e9f21 100644 --- a/examples/all-clusters-app/esp32/main/QRCodeScreen.cpp +++ b/examples/all-clusters-app/esp32/main/QRCodeScreen.cpp @@ -42,6 +42,8 @@ #include #include +#include + // TODO need sensible library tag when put in library extern const char TAG[]; diff --git a/examples/all-clusters-app/esp32/main/StatusScreen.cpp b/examples/all-clusters-app/esp32/main/StatusScreen.cpp index 55f42a32723823..0013bda66c5c70 100644 --- a/examples/all-clusters-app/esp32/main/StatusScreen.cpp +++ b/examples/all-clusters-app/esp32/main/StatusScreen.cpp @@ -45,6 +45,8 @@ #include #include +#include + #define MAX_LENGTH_SMALL_FONT 30 using namespace chip; diff --git a/examples/all-clusters-app/esp32/main/include/QRCodeScreen.h b/examples/all-clusters-app/esp32/main/include/QRCodeScreen.h index ced5be2ac3a670..9599280b7fd3b0 100644 --- a/examples/all-clusters-app/esp32/main/include/QRCodeScreen.h +++ b/examples/all-clusters-app/esp32/main/include/QRCodeScreen.h @@ -31,6 +31,7 @@ #include "ScreenManager.h" #include +#include #include class QRCodeScreen : public Screen diff --git a/examples/all-clusters-app/esp32/main/main.cpp b/examples/all-clusters-app/esp32/main/main.cpp index 4893cf1b8f1475..b85f47d883c620 100644 --- a/examples/all-clusters-app/esp32/main/main.cpp +++ b/examples/all-clusters-app/esp32/main/main.cpp @@ -34,14 +34,13 @@ #include "platform/PlatformManager.h" #include "shell_extension/launch.h" #include -#include +#include #include #include #include #include #include #include -#include #include #include @@ -114,7 +113,7 @@ static void InitServer(intptr_t context) { Esp32AppServer::Init(&sCallbacks); // Init ZCL Data Model and CHIP App Server AND Initialize device attestation config -#if !(CHIP_DEVICE_CONFIG_ENABLE_WIFI && CHIP_DEVICE_CONFIG_ENABLE_THREAD) +#if !(CHIP_DEVICE_CONFIG_ENABLE_WIFI && (CHIP_DEVICE_CONFIG_ENABLE_THREAD || CHIP_DEVICE_CONFIG_ENABLE_ETHERNET)) // We only have network commissioning on endpoint 0. emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); #endif @@ -122,13 +121,6 @@ static void InitServer(intptr_t context) #if CONFIG_DEVICE_TYPE_M5STACK SetupPretendDevices(); #endif - CHIP_ERROR err = - app::Clusters::ModeSelect::StaticSupportedModesManager::getStaticSupportedModesManagerInstance().InitEndpointArray( - FIXED_ENDPOINT_COUNT); - if (err != CHIP_NO_ERROR) - { - ESP_LOGE(TAG, "Failed to initialize endpoint array for supported-modes, err:%" CHIP_ERROR_FORMAT, err.Format()); - } app::Clusters::TemperatureControl::SetInstance(&sAppSupportedTemperatureLevelsDelegate); } diff --git a/examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c2 b/examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c2 index 6cb90db4f55b9d..200dc5825bc2e2 100644 --- a/examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c2 +++ b/examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c2 @@ -17,3 +17,6 @@ CONFIG_BT_NIMBLE_ROLE_OBSERVER=n CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=4 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=8 CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=16 + +# Event Queue Size +CONFIG_MAX_EVENT_QUEUE_SIZE=25 diff --git a/examples/all-clusters-app/esp32/sdkconfig_c3devkit.defaults b/examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c3 similarity index 100% rename from examples/all-clusters-app/esp32/sdkconfig_c3devkit.defaults rename to examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c3 diff --git a/examples/all-clusters-app/infineon/psoc6/BUILD.gn b/examples/all-clusters-app/infineon/psoc6/BUILD.gn index 9a0fbe3b3b37ac..64930593383bfe 100644 --- a/examples/all-clusters-app/infineon/psoc6/BUILD.gn +++ b/examples/all-clusters-app/infineon/psoc6/BUILD.gn @@ -138,6 +138,7 @@ psoc6_executable("clusters_app") { "${chip_root}/examples/common/QRCode", "${chip_root}/examples/providers:device_info_provider", "${chip_root}/src/lib", + "${chip_root}/src/platform/logging:default", "${chip_root}/src/setup_payload", ] diff --git a/examples/all-clusters-app/infineon/psoc6/include/AppTask.h b/examples/all-clusters-app/infineon/psoc6/include/AppTask.h index 9fade8c82356bf..aa031fe3ba4b52 100644 --- a/examples/all-clusters-app/infineon/psoc6/include/AppTask.h +++ b/examples/all-clusters-app/infineon/psoc6/include/AppTask.h @@ -26,7 +26,7 @@ #include "AppEvent.h" #include "FreeRTOS.h" #include "timers.h" // provides FreeRTOS timer support -#include +#include #include // Application-defined error codes in the CHIP_ERROR space. diff --git a/examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp b/examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp index b75b5abfc74294..0d0ba0f5b25663 100644 --- a/examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp +++ b/examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp b/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp index d1bab3649f0b67..8effe6426cc49d 100644 --- a/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp +++ b/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -35,6 +36,8 @@ #include #include +#include + using namespace chip; using namespace chip::app; using namespace chip::app::Clusters; diff --git a/examples/all-clusters-app/linux/AllClustersCommandDelegate.h b/examples/all-clusters-app/linux/AllClustersCommandDelegate.h index 4022b06e9f8565..f097c539b54fb6 100644 --- a/examples/all-clusters-app/linux/AllClustersCommandDelegate.h +++ b/examples/all-clusters-app/linux/AllClustersCommandDelegate.h @@ -23,6 +23,8 @@ #include #include +#include + class AllClustersAppCommandHandler { public: diff --git a/examples/all-clusters-app/linux/AppOptions.cpp b/examples/all-clusters-app/linux/AppOptions.cpp index 50be6561c6bb4a..bd5147102715eb 100644 --- a/examples/all-clusters-app/linux/AppOptions.cpp +++ b/examples/all-clusters-app/linux/AppOptions.cpp @@ -21,6 +21,8 @@ #include #include +#include + using namespace chip::ArgParser; using chip::ArgParser::OptionDef; diff --git a/examples/all-clusters-app/linux/AppOptions.h b/examples/all-clusters-app/linux/AppOptions.h index dfdd2c0e66fe70..69c1af83b72909 100644 --- a/examples/all-clusters-app/linux/AppOptions.h +++ b/examples/all-clusters-app/linux/AppOptions.h @@ -22,6 +22,8 @@ #include +#include + class AppOptions { public: diff --git a/examples/all-clusters-app/linux/diagnostic-logs-provider-delegate-impl.cpp b/examples/all-clusters-app/linux/diagnostic-logs-provider-delegate-impl.cpp index 4dc94da1338c28..afb75a7ef666c4 100644 --- a/examples/all-clusters-app/linux/diagnostic-logs-provider-delegate-impl.cpp +++ b/examples/all-clusters-app/linux/diagnostic-logs-provider-delegate-impl.cpp @@ -20,6 +20,8 @@ #include +#include + using namespace chip; using namespace chip::app::Clusters::DiagnosticLogs; diff --git a/examples/all-clusters-app/linux/include/CHIPProjectAppConfig.h b/examples/all-clusters-app/linux/include/CHIPProjectAppConfig.h index 440ba53f4ee3ba..0285563216e706 100644 --- a/examples/all-clusters-app/linux/include/CHIPProjectAppConfig.h +++ b/examples/all-clusters-app/linux/include/CHIPProjectAppConfig.h @@ -47,3 +47,7 @@ #define CHIP_CONFIG_MAX_PATHS_PER_INVOKE 5 #define CHIP_CONFIG_ENABLE_BDX_LOG_TRANSFER 1 + +// Claim a device type while advertising that matches the device type on our +// endpoint 1. 0x0101 is the "Dimmable Light" device type. +#define CHIP_DEVICE_CONFIG_DEVICE_TYPE 0x0101 diff --git a/examples/all-clusters-app/linux/include/diagnostic-logs-provider-delegate-impl.h b/examples/all-clusters-app/linux/include/diagnostic-logs-provider-delegate-impl.h index c0e69f1c5bde0b..f90c8d600f4526 100644 --- a/examples/all-clusters-app/linux/include/diagnostic-logs-provider-delegate-impl.h +++ b/examples/all-clusters-app/linux/include/diagnostic-logs-provider-delegate-impl.h @@ -22,6 +22,7 @@ #include #include +#include namespace chip { namespace app { diff --git a/examples/all-clusters-app/linux/main-common.cpp b/examples/all-clusters-app/linux/main-common.cpp index 8760bcb92d456c..73af031ecbdb5d 100644 --- a/examples/all-clusters-app/linux/main-common.cpp +++ b/examples/all-clusters-app/linux/main-common.cpp @@ -48,7 +48,6 @@ #include #include #include -#include #include #include #include @@ -61,6 +60,8 @@ #include #include +#include + using namespace chip; using namespace chip::app; using namespace chip::DeviceLayer; diff --git a/examples/all-clusters-app/nrfconnect/main/AppTask.cpp b/examples/all-clusters-app/nrfconnect/main/AppTask.cpp index f8d117790fac3d..3551087a969411 100644 --- a/examples/all-clusters-app/nrfconnect/main/AppTask.cpp +++ b/examples/all-clusters-app/nrfconnect/main/AppTask.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -45,6 +46,13 @@ #include "OTAUtil.h" #endif +#ifdef CONFIG_CHIP_CRYPTO_PSA +#include +#ifdef CONFIG_CHIP_MIGRATE_OPERATIONAL_KEYS_TO_ITS +#include "MigrationManager.h" +#endif +#endif + #include #include #include @@ -88,6 +96,9 @@ bool sHaveBLEConnections = false; app::Clusters::TemperatureControl::AppSupportedTemperatureLevelsDelegate sAppSupportedTemperatureLevelsDelegate; +#ifdef CONFIG_CHIP_CRYPTO_PSA +chip::Crypto::PSAOperationalKeystore sPSAOperationalKeystore{}; +#endif } // namespace namespace LedConsts { @@ -209,11 +220,24 @@ CHIP_ERROR AppTask::Init() static OTATestEventTriggerHandler sOtaTestEventTriggerHandler{}; VerifyOrDie(sTestEventTriggerDelegate.Init(ByteSpan(sTestEventTriggerEnableKey)) == CHIP_NO_ERROR); VerifyOrDie(sTestEventTriggerDelegate.AddHandler(&sOtaTestEventTriggerHandler) == CHIP_NO_ERROR); +#ifdef CONFIG_CHIP_CRYPTO_PSA + initParams.operationalKeystore = &sPSAOperationalKeystore; +#endif (void) initParams.InitializeStaticResourcesBeforeServerInit(); initParams.testEventTriggerDelegate = &sTestEventTriggerDelegate; ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); AppFabricTableDelegate::Init(); +#ifdef CONFIG_CHIP_MIGRATE_OPERATIONAL_KEYS_TO_ITS + err = MoveOperationalKeysFromKvsToIts(sLocalInitData.mServerInitParams->persistentStorageDelegate, + sLocalInitData.mServerInitParams->operationalKeystore); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("MoveOperationalKeysFromKvsToIts() failed"); + return err; + } +#endif + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); diff --git a/examples/all-clusters-app/nxp/common/main/AppMatterCli.cpp b/examples/all-clusters-app/nxp/common/main/AppMatterCli.cpp deleted file mode 100644 index 663bc85920ddb4..00000000000000 --- a/examples/all-clusters-app/nxp/common/main/AppMatterCli.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * Copyright 2023 NXP - * 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. - */ - -#include "AppMatterCli.h" -#include "AppTask.h" -#include -#include -#include - -#ifdef ENABLE_CHIP_SHELL -#include "task.h" -#include -#include - -#define MATTER_CLI_TASK_SIZE ((configSTACK_DEPTH_TYPE) 2048 / sizeof(portSTACK_TYPE)) -#define MATTER_CLI_LOG(message) (streamer_printf(streamer_get(), message)) - -using namespace chip::Shell; -TaskHandle_t AppMatterCliTaskHandle; -static bool isShellInitialized = false; -#else -#define MATTER_CLI_LOG(...) -#endif /* ENABLE_CHIP_SHELL */ - -void AppMatterCliTask(void * args) -{ -#ifdef ENABLE_CHIP_SHELL - Engine::Root().RunMainLoop(); -#endif /* ENABLE_CHIP_SHELL */ -} - -/* Application Matter CLI commands */ - -CHIP_ERROR commissioningManager(int argc, char * argv[]) -{ - CHIP_ERROR error = CHIP_NO_ERROR; - if (strncmp(argv[0], "on", 2) == 0) - { - GetAppTask().StartCommissioningHandler(); - } - else if (strncmp(argv[0], "off", 3) == 0) - { - GetAppTask().StopCommissioningHandler(); - } - else - { - MATTER_CLI_LOG("wrong args should be either \"mattercommissioning on\" or \"mattercommissioning off\""); - error = CHIP_ERROR_INVALID_ARGUMENT; - } - return error; -} - -CHIP_ERROR cliFactoryReset(int argc, char * argv[]) -{ - GetAppTask().FactoryResetHandler(); - return CHIP_NO_ERROR; -} - -CHIP_ERROR cliReset(int argc, char * argv[]) -{ - /* - Shutdown device before reboot, - this emits the ShutDown event, handles the server shutting down, - and stores in flash the total-operational-hours value. - */ - chip::DeviceLayer::PlatformMgr().Shutdown(); - chip::DeviceLayer::PlatformMgrImpl().ScheduleResetInIdle(); - return CHIP_NO_ERROR; -} - -CHIP_ERROR AppMatterCli_RegisterCommands(void) -{ -#ifdef ENABLE_CHIP_SHELL - if (!isShellInitialized) - { - int error = Engine::Root().Init(); - if (error != 0) - { - ChipLogError(Shell, "Streamer initialization failed: %d", error); - return CHIP_ERROR_INTERNAL; - } - - /* Register common shell commands */ - cmd_misc_init(); - cmd_otcli_init(); -#if CHIP_SHELL_ENABLE_CMD_SERVER - cmd_app_server_init(); -#endif /* CHIP_SHELL_ENABLE_CMD_SERVER */ - - /* Register application commands */ - static const shell_command_t kCommands[] = { - { - .cmd_func = commissioningManager, - .cmd_name = "mattercommissioning", - .cmd_help = "Open/close the commissioning window. Usage : mattercommissioning [on|off]", - }, - { - .cmd_func = cliFactoryReset, - .cmd_name = "matterfactoryreset", - .cmd_help = "Perform a factory reset on the device", - }, - { - .cmd_func = cliReset, - .cmd_name = "matterreset", - .cmd_help = "Reset the device", - }, - }; - - Engine::Root().RegisterCommands(kCommands, sizeof(kCommands) / sizeof(kCommands[0])); - - if (xTaskCreate(&AppMatterCliTask, "AppMatterCli_task", MATTER_CLI_TASK_SIZE, NULL, 1, &AppMatterCliTaskHandle) != pdPASS) - { - ChipLogError(Shell, "Failed to start Matter CLI task"); - return CHIP_ERROR_INTERNAL; - } - isShellInitialized = true; - } -#endif /* ENABLE_CHIP_SHELL */ - - return CHIP_NO_ERROR; -} diff --git a/examples/all-clusters-app/nxp/common/main/AppTask.cpp b/examples/all-clusters-app/nxp/common/main/AppTask.cpp index 9dc60db217cf9a..0b945d49561e43 100644 --- a/examples/all-clusters-app/nxp/common/main/AppTask.cpp +++ b/examples/all-clusters-app/nxp/common/main/AppTask.cpp @@ -2,7 +2,7 @@ * * Copyright (c) 2021-2023 Project CHIP Authors * Copyright (c) 2021 Google LLC. - * Copyright 2023 NXP + * Copyright 2023-2024 NXP * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,463 +17,42 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + #include "AppTask.h" -#include "AppEvent.h" #include "CHIPDeviceManager.h" -#include "DeviceCallbacks.h" -#include "binding-handler.h" -#include "lib/core/ErrorStr.h" -#include -#include -#include - -#if CHIP_DEVICE_CONFIG_ENABLE_WPA -#include -#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA - -#include -#include -#include -#include -#include -#include -#include -#include - +#include "ICDUtil.h" +#include #include - -#include "AppFactoryData.h" -#include "AppMatterButton.h" -#include "AppMatterCli.h" - -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR -#include "OTARequestorInitiator.h" -#endif - -#if ENABLE_OTA_PROVIDER -#include -#endif - -#if CHIP_ENABLE_OPENTHREAD -#include -#endif - -#if TCP_DOWNLOAD -#include "TcpDownload.h" -#endif - -#ifndef APP_TASK_STACK_SIZE -#define APP_TASK_STACK_SIZE ((configSTACK_DEPTH_TYPE) 6144 / sizeof(portSTACK_TYPE)) -#endif -#ifndef APP_TASK_PRIORITY -#define APP_TASK_PRIORITY 2 -#endif -#define APP_EVENT_QUEUE_SIZE 10 - -static QueueHandle_t sAppEventQueue; +#include using namespace chip; -using namespace chip::TLV; -using namespace ::chip::Credentials; -using namespace ::chip::DeviceLayer; -using namespace ::chip::DeviceManager; -using namespace ::chip::app::Clusters; - -chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; - -#if CHIP_DEVICE_CONFIG_ENABLE_WPA -namespace { -chip::app::Clusters::NetworkCommissioning::Instance - sWiFiNetworkCommissioningInstance(0 /* Endpoint Id */, - &(::chip::DeviceLayer::NetworkCommissioning::NXPWiFiDriver::GetInstance())); -} // namespace - -void NetWorkCommissioningInstInit() -{ - sWiFiNetworkCommissioningInstance.Init(); -} -#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA - -AppTask AppTask::sAppTask; - -CHIP_ERROR AppTask::StartAppTask() -{ - CHIP_ERROR err = CHIP_NO_ERROR; - TaskHandle_t taskHandle; - - sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); - if (sAppEventQueue == NULL) - { - err = CHIP_ERROR_NO_MEMORY; - ChipLogError(DeviceLayer, "Failed to allocate app event queue"); - assert(err == CHIP_NO_ERROR); - } - - if (xTaskCreate(&AppTask::AppTaskMain, "AppTaskMain", APP_TASK_STACK_SIZE, &sAppTask, APP_TASK_PRIORITY, &taskHandle) != pdPASS) - { - err = CHIP_ERROR_NO_MEMORY; - ChipLogError(DeviceLayer, "Failed to start app task"); - assert(err == CHIP_NO_ERROR); - } - - return err; -} +using namespace chip::app::Clusters; -#if CHIP_ENABLE_OPENTHREAD -void LockOpenThreadTask(void) +void AllClustersApp::AppTask::PreInitMatterStack() { - chip::DeviceLayer::ThreadStackMgr().LockThreadStack(); + ChipLogProgress(DeviceLayer, "Welcome to NXP All Clusters Demo App"); } -void UnlockOpenThreadTask(void) +void AllClustersApp::AppTask::PostInitMatterStack() { - chip::DeviceLayer::ThreadStackMgr().UnlockThreadStack(); + chip::app::InteractionModelEngine::GetInstance()->RegisterReadHandlerAppCallback(&chip::NXP::App::GetICDUtil()); } -#endif -void AppTask::InitServer(intptr_t arg) +void AllClustersApp::AppTask::PostInitMatterServerInstance() { - static chip::CommonCaseDeviceServerInitParams initParams; - (void) initParams.InitializeStaticResourcesBeforeServerInit(); - -#if CHIP_ENABLE_OPENTHREAD - // Init ZCL Data Model and start server - chip::Inet::EndPointStateOpenThread::OpenThreadEndpointInitParam nativeParams; - nativeParams.lockCb = LockOpenThreadTask; - nativeParams.unlockCb = UnlockOpenThreadTask; - nativeParams.openThreadInstancePtr = chip::DeviceLayer::ThreadStackMgrImpl().OTInstance(); - initParams.endpointNativeParams = static_cast(&nativeParams); -#endif - VerifyOrDie((chip::Server::GetInstance().Init(initParams)) == CHIP_NO_ERROR); - - gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); - chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); - -#ifdef DEVICE_TYPE_ALL_CLUSTERS // Disable last fixed endpoint, which is used as a placeholder for all of the // supported clusters so that ZAP will generated the requisite code. emberAfEndpointEnableDisable(emberAfEndpointFromIndex(static_cast(emberAfFixedEndpointCount() - 1)), false); -#endif /* DEVICE_TYPE_ALL_CLUSTERS */ - -#if ENABLE_OTA_PROVIDER - InitOTAServer(); -#endif -} - -CHIP_ERROR AppTask::Init() -{ - CHIP_ERROR err = CHIP_NO_ERROR; - - /* Init Chip memory management before the stack */ - chip::Platform::MemoryInit(); - - /* Initialize Matter factory data before initializing the Matter stack */ - err = AppFactoryData_PreMatterStackInit(); - - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Pre Factory Data Provider init failed"); - goto exit; - } - - /* - * Initialize the CHIP stack. - * Would also initialize all required platform modules - */ - err = PlatformMgr().InitChipStack(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "PlatformMgr().InitChipStack() failed: %s", ErrorStr(err)); - goto exit; - } - - /* Initialize Matter factory data after initializing the Matter stack */ - err = AppFactoryData_PostMatterStackInit(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Post Factory Data Provider init failed"); - goto exit; - } - - /* - * Register all application callbacks allowing to be informed of stack events - */ - err = CHIPDeviceManager::GetInstance().Init(&deviceCallbacks); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "CHIPDeviceManager.Init() failed: %s", ErrorStr(err)); - goto exit; - } - -#if CHIP_DEVICE_CONFIG_ENABLE_WPA - ConnectivityMgrImpl().StartWiFiManagement(); -#endif - -#if CHIP_ENABLE_OPENTHREAD - err = ThreadStackMgr().InitThreadStack(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Error during ThreadStackMgr().InitThreadStack()"); - goto exit; - } - - err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); - if (err != CHIP_NO_ERROR) - { - goto exit; - } -#endif - - /* - * Schedule an event to the Matter stack to initialize - * the ZCL Data Model and start server - */ - PlatformMgr().ScheduleWork(InitServer, 0); - - /* Init binding handlers */ - err = InitBindingHandlers(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "InitBindingHandlers failed: %s", ErrorStr(err)); - goto exit; - } - -#if CHIP_DEVICE_CONFIG_ENABLE_WPA - NetWorkCommissioningInstInit(); -#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA - -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR - /* If an update is under test make it permanent */ - OTARequestorInitiator::Instance().HandleSelfTest(); -#endif - - /* Register Matter CLI cmds */ - err = AppMatterCli_RegisterCommands(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Error during AppMatterCli_RegisterCommands"); - goto exit; - } - /* Register Matter buttons */ - err = AppMatterButton_registerButtons(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Error during AppMatterButton_registerButtons"); - goto exit; - } - - err = DisplayDeviceInformation(); - if (err != CHIP_NO_ERROR) - goto exit; - - /* Start a task to run the CHIP Device event loop. */ - err = PlatformMgr().StartEventLoopTask(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Error during PlatformMgr().StartEventLoopTask()"); - goto exit; - } - -#if CHIP_ENABLE_OPENTHREAD - // Start OpenThread task - err = ThreadStackMgrImpl().StartThreadTask(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Error during ThreadStackMgrImpl().StartThreadTask()"); - goto exit; - } -#endif - -#if TCP_DOWNLOAD - EnableTcpDownloadComponent(); -#endif - -exit: - return err; -} - -void AppTask::AppTaskMain(void * pvParameter) -{ - AppTask * task = (AppTask *) pvParameter; - CHIP_ERROR err; - AppEvent event; - - ChipLogProgress(DeviceLayer, "Welcome to NXP All Clusters Demo App"); - - err = task->Init(); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "AppTask.Init() failed"); - assert(err == CHIP_NO_ERROR); - } - - while (true) - { - BaseType_t eventReceived = xQueueReceive(sAppEventQueue, &event, portMAX_DELAY); - while (eventReceived == pdTRUE) - { - sAppTask.DispatchEvent(&event); - eventReceived = xQueueReceive(sAppEventQueue, &event, 0); - } - } -} - -CHIP_ERROR AppTask::DisplayDeviceInformation(void) -{ - CHIP_ERROR err = CHIP_NO_ERROR; - uint16_t discriminator; - uint32_t setupPasscode; - uint16_t vendorId; - uint16_t productId; - char currentSoftwareVer[ConfigurationManager::kMaxSoftwareVersionStringLength + 1]; - - err = GetCommissionableDataProvider()->GetSetupDiscriminator(discriminator); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Couldn't get discriminator: %s", ErrorStr(err)); - goto exit; - } - ChipLogProgress(DeviceLayer, "Setup discriminator: %u (0x%x)", discriminator, discriminator); - - err = GetCommissionableDataProvider()->GetSetupPasscode(setupPasscode); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Couldn't get setupPasscode: %s", ErrorStr(err)); - goto exit; - } - ChipLogProgress(DeviceLayer, "Setup passcode: %lu (0x%lx)", setupPasscode, setupPasscode); - - err = GetDeviceInstanceInfoProvider()->GetVendorId(vendorId); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Couldn't get vendorId: %s", ErrorStr(err)); - goto exit; - } - ChipLogProgress(DeviceLayer, "Vendor ID: %u (0x%x)", vendorId, vendorId); - - err = GetDeviceInstanceInfoProvider()->GetProductId(productId); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Couldn't get productId: %s", ErrorStr(err)); - goto exit; - } - ChipLogProgress(DeviceLayer, "nProduct ID: %u (0x%x)", productId, productId); - - // QR code will be used with CHIP Tool -#if CONFIG_NETWORK_LAYER_BLE - PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); -#else - PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kOnNetwork)); -#endif /* CONFIG_NETWORK_LAYER_BLE */ - - err = ConfigurationMgr().GetSoftwareVersionString(currentSoftwareVer, sizeof(currentSoftwareVer)); - if (err != CHIP_NO_ERROR) - { - ChipLogError(DeviceLayer, "Get current software version error"); - goto exit; - } - - ChipLogProgress(DeviceLayer, "Current Software Version: %s", currentSoftwareVer); - -exit: - return err; -} - -void AppTask::PostEvent(const AppEvent * aEvent) -{ - if (sAppEventQueue != NULL) - { - if (!xQueueSend(sAppEventQueue, aEvent, 0)) - { - ChipLogError(DeviceLayer, "Failed to post event to app task event queue"); - } - } -} - -void AppTask::DispatchEvent(AppEvent * aEvent) -{ - if (aEvent->Handler) - { - aEvent->Handler(aEvent); - } - else - { - ChipLogProgress(DeviceLayer, "Event received with no handler. Dropping event."); - } -} - -void AppTask::StartCommissioning(intptr_t arg) -{ - /* Check the status of the commissioning */ - if (ConfigurationMgr().IsFullyProvisioned()) - { - ChipLogProgress(DeviceLayer, "Device already commissioned"); - } - else if (chip::Server::GetInstance().GetCommissioningWindowManager().IsCommissioningWindowOpen()) - { - ChipLogProgress(DeviceLayer, "Commissioning window already opened"); - } - else - { - chip::Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow(); - } -} - -void AppTask::StopCommissioning(intptr_t arg) -{ - /* Check the status of the commissioning */ - if (ConfigurationMgr().IsFullyProvisioned()) - { - ChipLogProgress(DeviceLayer, "Device already commissioned"); - } - else if (!chip::Server::GetInstance().GetCommissioningWindowManager().IsCommissioningWindowOpen()) - { - ChipLogProgress(DeviceLayer, "Commissioning window not opened"); - } - else - { - chip::Server::GetInstance().GetCommissioningWindowManager().CloseCommissioningWindow(); - } -} - -void AppTask::SwitchCommissioningState(intptr_t arg) -{ - /* Check the status of the commissioning */ - if (ConfigurationMgr().IsFullyProvisioned()) - { - ChipLogProgress(DeviceLayer, "Device already commissioned"); - } - else if (!chip::Server::GetInstance().GetCommissioningWindowManager().IsCommissioningWindowOpen()) - { - chip::Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow(); - } - else - { - chip::Server::GetInstance().GetCommissioningWindowManager().CloseCommissioningWindow(); - } -} - -void AppTask::StartCommissioningHandler(void) -{ - /* Publish an event to the Matter task to always set the commissioning state in the Matter task context */ - PlatformMgr().ScheduleWork(StartCommissioning, 0); -} - -void AppTask::StopCommissioningHandler(void) -{ - /* Publish an event to the Matter task to always set the commissioning state in the Matter task context */ - PlatformMgr().ScheduleWork(StopCommissioning, 0); } -void AppTask::SwitchCommissioningStateHandler(void) +// This returns an instance of this class. +AllClustersApp::AppTask & AllClustersApp::AppTask::GetDefaultInstance() { - /* Publish an event to the Matter task to always set the commissioning state in the Matter task context */ - PlatformMgr().ScheduleWork(SwitchCommissioningState, 0); + static AllClustersApp::AppTask sAppTask; + return sAppTask; } -void AppTask::FactoryResetHandler(void) +chip::NXP::App::AppTaskBase & chip::NXP::App::GetAppTask() { - /* Emit the ShutDown event before factory reset */ - chip::Server::GetInstance().GenerateShutDownEvent(); - chip::Server::GetInstance().ScheduleFactoryReset(); + return AllClustersApp::AppTask::GetDefaultInstance(); } diff --git a/examples/all-clusters-app/nxp/common/main/DeviceCallbacks.cpp b/examples/all-clusters-app/nxp/common/main/DeviceCallbacks.cpp index 419ad3b3003b2e..3b189b257e3e2b 100644 --- a/examples/all-clusters-app/nxp/common/main/DeviceCallbacks.cpp +++ b/examples/all-clusters-app/nxp/common/main/DeviceCallbacks.cpp @@ -24,154 +24,96 @@ **/ #include "DeviceCallbacks.h" +#include +#include #include +#include #include #include #include -#if CHIP_ENABLE_OPENTHREAD && CHIP_DEVICE_CONFIG_CHIPOBLE_DISABLE_ADVERTISING_WHEN_PROVISIONED -#include "openthread-system.h" -#include "ot_platform_common.h" -#endif /* CHIP_ENABLE_OPENTHREAD && CHIP_DEVICE_CONFIG_CHIPOBLE_DISABLE_ADVERTISING_WHEN_PROVISIONED */ -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR -#include "OTARequestorInitiator.h" -#endif +using namespace chip::app; +void OnTriggerEffect(::Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case Clusters::Identify::EffectIdentifierEnum::kBlink: + ChipLogProgress(Zcl, "Clusters::Identify::EffectIdentifierEnum::kBlink"); + break; + case Clusters::Identify::EffectIdentifierEnum::kBreathe: + ChipLogProgress(Zcl, "Clusters::Identify::EffectIdentifierEnum::kBreathe"); + break; + case Clusters::Identify::EffectIdentifierEnum::kOkay: + ChipLogProgress(Zcl, "Clusters::Identify::EffectIdentifierEnum::kOkay"); + break; + case Clusters::Identify::EffectIdentifierEnum::kChannelChange: + ChipLogProgress(Zcl, "Clusters::Identify::EffectIdentifierEnum::kChannelChange"); + break; + default: + ChipLogProgress(Zcl, "No identifier effect"); + return; + } +} Identify gIdentify0 = { - chip::EndpointId{ 1 }, + chip::EndpointId{ 0 }, [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, - chip::app::Clusters::Identify::IdentifyTypeEnum::kVisibleIndicator, - [](Identify *) { ChipLogProgress(Zcl, "onIdentifyTriggerEffect"); }, + chip::app::Clusters::Identify::IdentifyTypeEnum::kNone, + OnTriggerEffect, }; Identify gIdentify1 = { chip::EndpointId{ 1 }, [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, - chip::app::Clusters::Identify::IdentifyTypeEnum::kVisibleIndicator, - [](Identify *) { ChipLogProgress(Zcl, "onIdentifyTriggerEffect"); }, + chip::app::Clusters::Identify::IdentifyTypeEnum::kNone, + OnTriggerEffect, }; using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::System; using namespace ::chip::DeviceLayer; +using namespace chip::app::Clusters; -void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) -{ - ChipLogDetail(DeviceLayer, "DeviceEventCallback: 0x%04x", event->Type); - switch (event->Type) - { - case DeviceEventType::kWiFiConnectivityChange: - OnWiFiConnectivityChange(event); - break; - - case DeviceEventType::kInternetConnectivityChange: - OnInternetConnectivityChange(event); - break; - - case DeviceEventType::kInterfaceIpAddressChanged: - OnInterfaceIpAddressChanged(event); - break; - -#if CHIP_ENABLE_OPENTHREAD && CHIP_DEVICE_CONFIG_CHIPOBLE_DISABLE_ADVERTISING_WHEN_PROVISIONED - case DeviceEventType::kCommissioningComplete: - DeviceCallbacks::OnComissioningComplete(event); - break; -#endif - case DeviceLayer::DeviceEventType::kDnssdInitialized: - ChipLogProgress(DeviceLayer, "kDnssdInitialized"); -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR - /* Initialize OTA Requestor */ - OTARequestorInitiator::Instance().InitOTA(reinterpret_cast(&OTARequestorInitiator::Instance())); -#endif - break; - } -} - -void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t type, - uint16_t size, uint8_t * value) +void AllClustersApp::DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, + AttributeId attributeId, uint8_t type, uint16_t size, + uint8_t * value) { ChipLogProgress(DeviceLayer, "endpointId " ChipLogFormatMEI " clusterId " ChipLogFormatMEI " attribute ID: " ChipLogFormatMEI " Type: %u Value: %u, length %u", ChipLogValueMEI(endpointId), ChipLogValueMEI(clusterId), ChipLogValueMEI(attributeId), type, *value, size); -} - -void DeviceCallbacks::OnWiFiConnectivityChange(const ChipDeviceEvent * event) -{ - if (event->WiFiConnectivityChange.Result == kConnectivity_Established) + switch (clusterId) { - ChipLogProgress(DeviceLayer, "WiFi connection established"); - } - else if (event->WiFiConnectivityChange.Result == kConnectivity_Lost) - { - ChipLogProgress(DeviceLayer, "WiFi connection lost"); + case Clusters::OnOff::Id: + OnOnOffPostAttributeChangeCallback(endpointId, attributeId, value); + break; } } -void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event) +void AllClustersApp::DeviceCallbacks::OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, + uint8_t * value) { - if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established) - { - char ip_addr[Inet::IPAddress::kMaxStringLength]; - event->InternetConnectivityChange.ipAddress.ToString(ip_addr); - ChipLogProgress(DeviceLayer, "Server ready at: %s:%d", ip_addr, CHIP_PORT); - } - else if (event->InternetConnectivityChange.IPv4 == kConnectivity_Lost) - { - ChipLogProgress(DeviceLayer, "Lost IPv4 connectivity..."); - } - if (event->InternetConnectivityChange.IPv6 == kConnectivity_Established) - { - char ip_addr[Inet::IPAddress::kMaxStringLength]; - event->InternetConnectivityChange.ipAddress.ToString(ip_addr); - ChipLogProgress(DeviceLayer, "IPv6 Server ready at: [%s]:%d", ip_addr, CHIP_PORT); - } - else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) + switch (attributeId) { - ChipLogProgress(DeviceLayer, "Lost IPv6 connectivity..."); + case Clusters::OnOff::Attributes::OnOff::Id: + break; + + default:; } } -void DeviceCallbacks::OnInterfaceIpAddressChanged(const ChipDeviceEvent * event) +// This returns an instance of this class. +AllClustersApp::DeviceCallbacks & AllClustersApp::DeviceCallbacks::GetDefaultInstance() { - switch (event->InterfaceIpAddressChanged.Type) - { - case InterfaceIpChangeType::kIpV4_Assigned: - ChipLogProgress(DeviceLayer, "Interface IPv4 address assigned"); - break; - case InterfaceIpChangeType::kIpV4_Lost: - ChipLogProgress(DeviceLayer, "Interface IPv4 address lost"); - break; - case InterfaceIpChangeType::kIpV6_Assigned: - ChipLogProgress(DeviceLayer, "Interface IPv6 address assigned"); - break; - case InterfaceIpChangeType::kIpV6_Lost: - ChipLogProgress(DeviceLayer, "Interface IPv6 address lost"); - break; - } + static AllClustersApp::DeviceCallbacks sDeviceCallbacks; + return sDeviceCallbacks; } -#if CHIP_ENABLE_OPENTHREAD && CHIP_DEVICE_CONFIG_CHIPOBLE_DISABLE_ADVERTISING_WHEN_PROVISIONED -void DeviceCallbacks::OnComissioningComplete(const chip::DeviceLayer::ChipDeviceEvent * event) +chip::DeviceManager::CHIPDeviceManagerCallbacks & chip::NXP::App::GetDeviceCallbacks() { - /* - * If a transceiver supporting a multiprotocol scenario is used, a check of the provisioning state is required, - * so that we can inform the transceiver to stop BLE to give the priority to another protocol. - * For example it is the case when a K32W0 transceiver supporting OT+BLE+Zigbee is used. When the device is already provisioned, - * BLE is no more required and the transceiver needs to be informed so that Zigbee can be switched on and BLE switched off. - * - * If a transceiver does not support such vendor property the cmd would be ignored. - */ - if (ConfigurationMgr().IsFullyProvisioned()) - { - ChipLogDetail(DeviceLayer, "Provisioning complete, stopping BLE\n"); - ThreadStackMgrImpl().LockThreadStack(); - PlatformMgrImpl().StopBLEConnectivity(); - ThreadStackMgrImpl().UnlockThreadStack(); - } + return AllClustersApp::DeviceCallbacks::GetDefaultInstance(); } -#endif diff --git a/examples/all-clusters-app/nxp/common/main/ZclCallbacks.cpp b/examples/all-clusters-app/nxp/common/main/ZclCallbacks.cpp index 86ea10f4687558..d4be6f1eb89a8c 100644 --- a/examples/all-clusters-app/nxp/common/main/ZclCallbacks.cpp +++ b/examples/all-clusters-app/nxp/common/main/ZclCallbacks.cpp @@ -25,7 +25,6 @@ #include #include #include -#include using namespace ::chip; diff --git a/examples/all-clusters-app/nxp/common/main/include/AppEvent.h b/examples/all-clusters-app/nxp/common/main/include/AppEvent.h index 8047da99982e23..a0dad141a27055 100644 --- a/examples/all-clusters-app/nxp/common/main/include/AppEvent.h +++ b/examples/all-clusters-app/nxp/common/main/include/AppEvent.h @@ -19,7 +19,7 @@ #pragma once struct AppEvent; -typedef void (*EventHandler)(AppEvent *); +using EventHandler = void (*)(const AppEvent &); struct AppEvent { diff --git a/examples/all-clusters-app/nxp/common/main/include/AppMatterCli.h b/examples/all-clusters-app/nxp/common/main/include/AppMatterCli.h deleted file mode 100644 index ee043e52320782..00000000000000 --- a/examples/all-clusters-app/nxp/common/main/include/AppMatterCli.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2022 NXP - * All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#ifndef _MATTER_CLI_H_ -#define _MATTER_CLI_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * API allowing to register matter cli command - */ -CHIP_ERROR AppMatterCli_RegisterCommands(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _MATTER_CLI_H_ */ diff --git a/examples/all-clusters-app/nxp/common/main/include/AppTask.h b/examples/all-clusters-app/nxp/common/main/include/AppTask.h index e276e287aa92a6..9bda003e25344a 100644 --- a/examples/all-clusters-app/nxp/common/main/include/AppTask.h +++ b/examples/all-clusters-app/nxp/common/main/include/AppTask.h @@ -2,6 +2,7 @@ * * Copyright (c) 2020 Project CHIP Authors * Copyright (c) 2021-2023 Google LLC. + * Copyright 2024 NXP * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,47 +20,31 @@ #pragma once -#include -#include - -#include "AppEvent.h" -#include "DeviceCallbacks.h" - -class AppTask +#if CONFIG_APP_FREERTOS_OS +#include "AppTaskFreeRTOS.h" +#else +#include "AppTaskZephyr.h" +#endif +namespace AllClustersApp { +#if CONFIG_APP_FREERTOS_OS +class AppTask : public chip::NXP::App::AppTaskFreeRTOS +#else +class AppTask : public chip::NXP::App::AppTaskZephyr +#endif { public: - CHIP_ERROR StartAppTask(); - static void AppTaskMain(void * pvParameter); - - void PostEvent(const AppEvent * event); - - /* Commissioning handlers */ - void StartCommissioningHandler(void); - void StopCommissioningHandler(void); - void SwitchCommissioningStateHandler(void); - - /* FactoryResetHandler */ - void FactoryResetHandler(void); - -private: - DeviceCallbacks deviceCallbacks; - - friend AppTask & GetAppTask(void); - - CHIP_ERROR Init(); - void DispatchEvent(AppEvent * event); - CHIP_ERROR DisplayDeviceInformation(void); - - /* Functions that would be called in the Matter task context */ - static void StartCommissioning(intptr_t arg); - static void StopCommissioning(intptr_t arg); - static void SwitchCommissioningState(intptr_t arg); - static void InitServer(intptr_t arg); - - static AppTask sAppTask; + ~AppTask() override{}; + void PreInitMatterStack(void) override; + void PostInitMatterStack(void) override; + void PostInitMatterServerInstance(void) override; + // This returns an instance of this class. + static AppTask & GetDefaultInstance(); }; - -inline AppTask & GetAppTask(void) -{ - return AppTask::sAppTask; -} +} // namespace AllClustersApp +/** + * Returns the application-specific implementation of the AppTaskBase object. + * + * Applications can use this to gain access to features of the AppTaskBase + * that are specific to the selected application. + */ +chip::NXP::App::AppTaskBase & GetAppTask(); diff --git a/examples/all-clusters-app/nxp/common/main/include/DeviceCallbacks.h b/examples/all-clusters-app/nxp/common/main/include/DeviceCallbacks.h index 2a37a2dfb99a94..748905b52ad736 100644 --- a/examples/all-clusters-app/nxp/common/main/include/DeviceCallbacks.h +++ b/examples/all-clusters-app/nxp/common/main/include/DeviceCallbacks.h @@ -1,6 +1,6 @@ /* * - * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2020-2023 Project CHIP Authors * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -26,24 +26,27 @@ #pragma once #include "CHIPDeviceManager.h" -#include -#include +#include "CommonDeviceCallbacks.h" -class DeviceCallbacks : public chip::DeviceManager::CHIPDeviceManagerCallbacks +namespace AllClustersApp { +class DeviceCallbacks : public chip::NXP::App::CommonDeviceCallbacks { public: - virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); - virtual void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, - uint8_t type, uint16_t size, uint8_t * value); + // This returns an instance of this class. + static DeviceCallbacks & GetDefaultInstance(); + void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value); private: - void OnWiFiConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); - void OnInternetConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); - void OnSessionEstablished(const chip::DeviceLayer::ChipDeviceEvent * event); - void OnInterfaceIpAddressChanged(const chip::DeviceLayer::ChipDeviceEvent * event); void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); -#if CHIP_DEVICE_CONFIG_CHIPOBLE_DISABLE_ADVERTISING_WHEN_PROVISIONED - void OnComissioningComplete(const chip::DeviceLayer::ChipDeviceEvent * event); -#endif }; + +/** + * Returns the application-specific implementation of the CommonDeviceCallbacks object. + * + * Applications can use this to gain access to features of the CommonDeviceCallbacks + * that are specific to the selected application. + */ +chip::DeviceManager::CHIPDeviceManagerCallbacks & GetDeviceCallbacks(); +} // namespace AllClustersApp diff --git a/examples/all-clusters-app/nxp/common/main/main.cpp b/examples/all-clusters-app/nxp/common/main/main.cpp index c2305cf9ac4eb6..b2aadab98ceb8b 100644 --- a/examples/all-clusters-app/nxp/common/main/main.cpp +++ b/examples/all-clusters-app/nxp/common/main/main.cpp @@ -37,7 +37,7 @@ extern "C" int main(int argc, char * argv[]) TaskHandle_t taskHandle; PlatformMgrImpl().HardwareInit(); - GetAppTask().StartAppTask(); + chip::NXP::App::GetAppTask().Start(); vTaskStartScheduler(); } diff --git a/examples/all-clusters-app/nxp/linux-imx/imx8m/README.md b/examples/all-clusters-app/nxp/linux-imx/imx8m/README.md index 9a90a11e0dccc4..e20ff1065d3dfb 100644 --- a/examples/all-clusters-app/nxp/linux-imx/imx8m/README.md +++ b/examples/all-clusters-app/nxp/linux-imx/imx8m/README.md @@ -1,4 +1,4 @@ To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** **EVK**, see the associated -[README document](../../../../../docs/guides/nxp_imx8m_linux_examples.md) for -details. +[README document](../../../../../docs/guides/nxp/nxp_imx8m_linux_examples.md) +for details. diff --git a/examples/all-clusters-app/nxp/mw320/BUILD.gn b/examples/all-clusters-app/nxp/mw320/BUILD.gn index 65d2df0401dd62..ebae8c34bccdee 100644 --- a/examples/all-clusters-app/nxp/mw320/BUILD.gn +++ b/examples/all-clusters-app/nxp/mw320/BUILD.gn @@ -63,7 +63,10 @@ mw320_executable("shell_mw320") { "${chip_root}/src/setup_payload", ] - deps = [ "${chip_root}/src/platform:syscalls_stub" ] + deps = [ + "${chip_root}/src/platform:syscalls_stub", + "${chip_root}/src/platform/logging:default", + ] include_dirs = [ "${chip_root}/src/platform/nxp/mw320", diff --git a/examples/all-clusters-app/nxp/mw320/binding-handler.cpp b/examples/all-clusters-app/nxp/mw320/binding-handler.cpp index ace7da026b253a..e4a2df4d387249 100644 --- a/examples/all-clusters-app/nxp/mw320/binding-handler.cpp +++ b/examples/all-clusters-app/nxp/mw320/binding-handler.cpp @@ -81,7 +81,7 @@ static void BoundDeviceChangedHandler(const EmberBindingTableEntry & binding, ch } if (binding.type == MATTER_UNICAST_BINDING && binding.local == 1 && - (!binding.clusterId.HasValue() || binding.clusterId.Value() == Clusters::OnOff::Id)) + binding.clusterId.value_or(Clusters::OnOff::Id) == Clusters::OnOff::Id) { auto onSuccess = [](const ConcreteCommandPath & commandPath, const StatusIB & status, const auto & dataResponse) { ChipLogProgress(NotSpecified, "OnOff command succeeds"); diff --git a/examples/all-clusters-app/nxp/rt/rw61x/.gn b/examples/all-clusters-app/nxp/rt/rw61x/.gn index c0a26c2dc77832..cbbec24fe8c308 100644 --- a/examples/all-clusters-app/nxp/rt/rw61x/.gn +++ b/examples/all-clusters-app/nxp/rt/rw61x/.gn @@ -28,6 +28,9 @@ default_args = { import("//args.gni") + # Import common example GN args + import("${chip_root}/examples/platform/nxp/common/gn/args.gni") + # Import default platform configs import("${chip_root}/src/platform/nxp/rt/rw61x/args.gni") } diff --git a/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn b/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn index 6f167c92ce5be2..e6bf8d64d94524 100644 --- a/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn +++ b/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn @@ -35,24 +35,43 @@ assert(target_os == "freertos") assert(nxp_platform == "rt/rw61x") declare_args() { - # This defines the device type as a "thermostat" by default, - # use "all-clusters" in order to build the all-clusters-app - nxp_device_type = "thermostat" + # Allows to start the tcp download test app + tcp_download = false + + # Allows to start the wifi connect test app + wifi_connect = false + + # The 2 params below are used only if tcp_download or wifi_connect are true, otherwise they're unused. + wifi_ssid = "" + wifi_password = "" + + # Setup discriminator as argument + setup_discriminator = 3840 } -example_platform_dir = "${chip_root}/examples/platform/nxp/${nxp_platform}" +example_platform_dir = + "${nxp_sdk_matter_support_root}/examples/platform/${nxp_platform}" +common_example_dir = "${chip_root}/examples/platform/nxp/common" -if (nxp_device_type == "thermostat") { - app_common_folder = "${nxp_device_type}/nxp/zap" -} else { - app_common_folder = "${nxp_device_type}-app/${nxp_device_type}-common" +if (tcp_download == true && wifi_connect == true) { + assert("Cannot enable tcp_download and wifi_connect at the same time!") } +app_common_folder = "all-clusters-app/all-clusters-common" + # Create here the SDK instance. # Particular sources/defines/includes could be added/changed depending on the target application. rt_sdk("sdk") { defines = [] + # To be moved, temporary mbedtls config fix to build app with factory data + if (chip_enable_secure_dac_private_key_storage == 1) { + defines += [ + "MBEDTLS_NIST_KW_C", + "MBEDTLS_PSA_CRYPTO_CLIENT", + ] + } + cflags = [] public_deps = [] public_configs = [] @@ -75,6 +94,15 @@ rt_sdk("sdk") { # Indicate the default path to OpenThreadConfig.h include_dirs += [ "${example_platform_dir}/app/project_include/openthread" ] + + # For matter with BR feature, increase FreeRTOS heap size + if (chip_enable_wifi && chip_enable_openthread) { + defines += [ "configTOTAL_HEAP_SIZE=(size_t)(160 * 1024)" ] + } + + defines += [ + "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setup_discriminator}", + ] } # Create the SDK driver instance. @@ -85,12 +113,18 @@ rw61x_sdk_drivers("sdk_driver") { rt_executable("all_cluster_app") { output_name = "chip-rw61x-all-cluster-example" - defines = [ "CONFIG_RENDEZVOUS_MODE=7" ] + defines = [ + "CONFIG_RENDEZVOUS_MODE=7", + "CONFIG_APP_FREERTOS_OS=1", + ] + + if (chip_enable_openthread) { + defines += [ "CONFIG_NET_L2_OPENTHREAD=1" ] + } include_dirs = [ "../../common/main/include", "../../common/main", - "${chip_root}/examples/all-clusters-app/all-clusters-common/include", "${chip_root}/examples/providers/", ] @@ -98,54 +132,116 @@ rt_executable("all_cluster_app") { sources = [ "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", "${chip_root}/examples/providers/DeviceInfoProviderImpl.cpp", - "../../common/main/AppFactoryDataDefaultImpl.cpp", - "../../common/main/AppMatterButtonEmpty.cpp", - "../../common/main/AppMatterCli.cpp", "../../common/main/AppTask.cpp", - "../../common/main/CHIPDeviceManager.cpp", "../../common/main/DeviceCallbacks.cpp", "../../common/main/ZclCallbacks.cpp", "../../common/main/include/AppEvent.h", "../../common/main/include/AppTask.h", - "../../common/main/include/CHIPDeviceManager.h", "../../common/main/include/DeviceCallbacks.h", "../../common/main/main.cpp", ] - deps = [ "${chip_root}/examples/${app_common_folder}" ] - - if (nxp_device_type == "all-clusters") { - defines += [ "DEVICE_TYPE_ALL_CLUSTERS" ] + if (chip_enable_secure_dac_private_key_storage == 1) { sources += [ - "${chip_root}/examples/${app_common_folder}/src/EnergyEvseDelegateImpl.cpp", - "${chip_root}/examples/${app_common_folder}/src/EnergyEvseManager.cpp", - "${chip_root}/examples/${app_common_folder}/src/bridged-actions-stub.cpp", - "${chip_root}/examples/${app_common_folder}/src/energy-evse-stub.cpp", - "${chip_root}/examples/${app_common_folder}/src/smco-stub.cpp", - "${chip_root}/examples/${app_common_folder}/src/static-supported-modes-manager.cpp", + "${example_platform_dir}/factory_data/source/AppFactoryDataExample.cpp", + ] + } else { + sources += [ + "${common_example_dir}/factory_data/source/AppFactoryDataDefaultImpl.cpp", ] } + # App common files + include_dirs += [ + "${common_example_dir}/icd/include", + "${common_example_dir}/matter_button/include", + "${common_example_dir}/matter_cli/include", + "${common_example_dir}/device_manager/include", + "${common_example_dir}/device_callbacks/include", + "${common_example_dir}/app_task/include", + "${common_example_dir}/factory_data/include", + ] + + sources += [ + "${common_example_dir}/app_task/source/AppTaskBase.cpp", + "${common_example_dir}/app_task/source/AppTaskFreeRTOS.cpp", + "${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp", + "${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp", + "${common_example_dir}/icd/source/ICDUtil.cpp", + "${common_example_dir}/matter_button/source/AppMatterButtonEmpty.cpp", + ] + + deps = [ + "${chip_root}/examples/${app_common_folder}", + "${chip_root}/src/platform/logging:default", + ] + + 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/smco-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", + ] + if (chip_enable_matter_cli) { defines += [ "ENABLE_CHIP_SHELL" ] deps += [ "${chip_root}/examples/shell/shell_common:shell_common", "${chip_root}/src/lib/shell:shell", ] + sources += [ + "${common_example_dir}/matter_cli/source/AppCLIBase.cpp", + "${common_example_dir}/matter_cli/source/AppCLIFreeRTOS.cpp", + ] } if (chip_enable_ota_requestor) { + include_dirs += [ "${common_example_dir}/ota_requestor/include" ] sources += [ - "${chip_root}/examples/platform/nxp/common/OTARequestorInitiator.cpp", - "${chip_root}/examples/platform/nxp/common/OTARequestorInitiator.h", + "${common_example_dir}/ota_requestor/source/OTARequestorInitiator.cpp", + "${common_example_dir}/ota_requestor/source/OTARequestorInitiatorCommon.cpp", ] - include_dirs += [ "${chip_root}/examples/platform/nxp/common" ] + } + + if (wifi_connect) { + defines += [ + "WIFI_CONNECT_TASK=1", + "WIFI_CONNECT=1", + ] + + if (!chip_enable_matter_cli) { + assert(wifi_ssid != "" && wifi_password != "", + "WiFi SSID and password must be specified at build time!") + } + + if (wifi_ssid != "") { + defines += [ "WIFI_SSID=\"${wifi_ssid}\"" ] + } + + if (wifi_password != "") { + defines += [ "WIFI_PASSWORD=\"${wifi_password}\"" ] + } + + include_dirs += [ "${common_example_dir}/wifi_connect/include" ] + sources += [ "${common_example_dir}/wifi_connect/source/WifiConnect.cpp" ] + } + + if (tcp_download) { + defines += [ "CONFIG_CHIP_TCP_DOWNLOAD=1" ] + defines += [ + "WIFI_CONNECT=1", + "WIFI_SSID=\"${wifi_ssid}\"", + "WIFI_PASSWORD=\"${wifi_password}\"", + ] + + include_dirs += [ "${common_example_dir}/tcp_download_test/include" ] + sources += + [ "${common_example_dir}/tcp_download_test/source/TcpDownload.cpp" ] } # In case a dedicated assert function needs to be supported the flag sdk_fsl_assert_support should be set to false # The would add to the build a dedicated application assert implementation. if (!sdk_fsl_assert_support) { - sources += [ "../../common/main/AppAssert.cpp" ] + sources += [ "${common_example_dir}/app_assert/source/AppAssert.cpp" ] } cflags = [ "-Wconversion" ] diff --git a/examples/all-clusters-app/nxp/rt/rw61x/README.md b/examples/all-clusters-app/nxp/rt/rw61x/README.md index d5b436d9fee8e1..bdec2c58956274 100644 --- a/examples/all-clusters-app/nxp/rt/rw61x/README.md +++ b/examples/all-clusters-app/nxp/rt/rw61x/README.md @@ -25,13 +25,13 @@ commissioning and different cluster control. The RW61x all-cluster application provides a working demonstration of the RW610/RW612 board integration, built using the Project CHIP codebase and the NXP -RW612 SDK. The example supports basic ZCL commands and acts as a thermostat -device-type. +RW612 SDK. The example supports: - Matter over Wi-Fi - Matter over Openthread +- Matter over Wi-Fi with OpenThread Border Router support. ### Hardware requirements @@ -46,6 +46,12 @@ For Matter over WiFi configuration : - BLE antenna (to plug in Ant1) - Wi-Fi antenna (to plug in Ant2) +For Matter over Wi-Fi with OpenThread Border Router : + +- [`NXP RD-RW612-BGA`] board +- BLE/15.4 antenna (to plug in Ant1) +- Wi-Fi antenna (to plug in Ant2) + ## Building @@ -56,22 +62,26 @@ distribution (the demo-application was compiled on Ubuntu 20.04). - Follow instruction in [BUILDING.md](../../../../../docs/guides/BUILDING.md) to setup the environment to be able to build Matter. -- Download [RD-RW612 SDK v2.13.1](https://mcuxpresso.nxp.com/en/select). +- Download + [RD-RW612 SDK for Project CHIP](https://mcuxpresso.nxp.com/en/select). Creating an nxp.com account is required before being able to download the SDK. Once the account is created, login and follow the steps for downloading SDK. The SDK Builder UI selection should be similar with the one from the - image below. In case you do not have access to the SDK, please ask your NXP - representative. + image below. ![MCUXpresso SDK Download](../../../../platform/nxp/rt/rw61x/doc/images/mcux-sdk-download.PNG) (Note: All SDK components should be selected. If size is an issue Azure RTOS component can be omitted.) + Please refer to Matter release notes for getting the latest released SDK. + - Start building the application. ``` user@ubuntu:~/Desktop/git/connectedhomeip$ export NXP_SDK_ROOT=/home/user/Desktop/SDK_RW612/ +user@ubuntu:~/Desktop/git/connectedhomeip$ scripts/checkout_submodules.py --shallow --platform nxp --recursive +user@ubuntu:~/Desktop/git/connectedhomeip$ source ./scripts/bootstrap.sh user@ubuntu:~/Desktop/git/connectedhomeip$ source ./scripts/activate.sh user@ubuntu:~/Desktop/git/connectedhomeip$ cd examples/all-clusters-app/nxp/rt/rw61x/ ``` @@ -87,13 +97,26 @@ user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rw61x #### Building with Matter over Thread configuration on RW612 -- Build the Openthread configuration with BLE commissioning. +- Build Matter-over-Thread configuration with BLE commissioning. ``` user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rw61x$ gn gen --args="chip_enable_openthread=true chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=true is_sdk_package=true" out/debug user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rw61x$ ninja -C out/debug ``` +#### Building with Matter over Wifi + OpenThread Border Router configuration on RW612 + +This configuration requires enabling the Matter CLI in order to control the +Thread network on the Border Router. + +- Build Matter with Border Router configuration with BLE commissioning + (ble-wifi) : + +``` +user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rw610$ gn gen --args="chip_enable_wifi=true chip_enable_openthread=true chip_enable_matter_cli=true is_sdk_package=true openthread_root=\"//third_party/connectedhomeip/third_party/openthread/ot-nxp/openthread-br\"" out/debug +user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rw610$ ninja -C out/debug +``` + #### General information The resulting output file can be found in @@ -108,24 +131,24 @@ Optional GN options that can be added when building an application: - To switch the SDK type used, the argument `is_=true` must be added to the _gn gen_ command (with being either sdk_package or sdk_internal). -- By default, the RW612 A1 board revision will be chosen. To switch to an A0 - revision, the argument `board_version=\"A0\"` must be added to the _gn gen_ +- By default, the RW612 A1 board revision will be chosen. To switch to an A2 + revision, the argument `board_version=\"A2\"` must be added to the _gn gen_ command. - To build the application in debug mode, the argument `is_debug=true optimize_debug=false` must be added to the _gn gen_ command. - To build with the option to have Matter certificates/keys pre-loaded in a specific flash area the argument `chip_with_factory_data=1` must be added to the _gn gen_ command. (for more information see - [Guide for writing manufacturing data on NXP devices](../../../../../docs/guides/nxp_manufacturing_flow.md). + [Guide for writing manufacturing data on NXP devices](../../../../../docs/guides/nxp/nxp_manufacturing_flow.md). - To build the application with the OTA Requestor enabled, the arguments `chip_enable_ota_requestor=true no_mcuboot=false` must be added to the _gn gen_ command. (More information about the OTA Requestor feature in - [OTA Requestor README](README_OTA_Requestor.md))) + [OTA Requestor README](../../../../../docs/guides/nxp/nxp_rw61x_ota_software_update.md) ## Manufacturing data See -[Guide for writing manufacturing data on NXP devices](../../../../../docs/guides/nxp_manufacturing_flow.md) +[Guide for writing manufacturing data on NXP devices](../../../../../docs/guides/nxp/nxp_manufacturing_flow.md) Other comments: @@ -133,6 +156,21 @@ The all cluster app demonstrates the usage of encrypted Matter manufacturing data storage. Matter manufacturing data should be encrypted using an AES 128 software key before flashing them to the device flash. +Using DAC private key secure usage: Experimental feature, contain some +limitation: potential concurrent access issue during sign with dac key operation +due to the lack of protection between multiple access to `ELS` crypto module. +The argument `chip_enable_secure_dac_private_key_storage=1` must be added to the +_gn gen_ command to enable secure private DAC key usage with S50. +`chip_with_factory_data=1` must have been added to the _gn gen_ command + +DAC private key generation: The argument `chip_convert_dac_private_key=1` must +be added to the _gn gen_ command to enable DAC private plain key conversion to +blob with S50. `chip_enable_secure_dac_private_key_storage=1` must have been +added to the _gn gen_ command + +`ELS` contain concurrent access risks. They must be fixed before enabling it by +default. + ## Flashing and debugging @@ -213,6 +251,16 @@ The "ble-wifi" pairing method can be used in order to commission the device. The "ble-thread" pairing method can be used in order to commission the device. +#### Matter over wifi with openthread border router configuration : + +In order to create or join a Thread network on the Matter Border Router, the +`otcli` commands from the matter CLI can be used. For more information about +using the matter shell, follow instructions from +['Testing the all-clusters application with Matter CLI'](#testing-the-all-clusters-application-with-matter-cli-enabled). + +In this configuration, the device can be commissioned over Wi-Fi with the +'ble-wifi' pairing method. + ### Testing the all-clusters application without Matter CLI: 1. Prepare the board with the flashed `All-cluster application` (as shown @@ -284,6 +332,41 @@ Here are described steps to use the all-cluster-app with the Matter CLI enabled it is described [here](../../../../chip-tool/README.md#using-the-client-to-send-matter-commands). +For Matter with OpenThread Border Router support, the matter CLI can be used to +start/join the Thread network, using the following ot-cli commands. (Note that +setting channel, panid, and network key is not enough anymore because of an Open +Thread stack update. We first need to initialize a new dataset.) + +``` +> otcli dataset init new +Done +> otcli dataset +Active Timestamp: 1 +Channel: 25 +Channel Mask: 0x07fff800 +Ext PAN ID: 42af793f623aab54 +Mesh Local Prefix: fd6e:c358:7078:5a8d::/64 +Network Key: f824658f79d8ca033fbb85ecc3ca91cc +Network Name: OpenThread-b870 +PAN ID: 0xb870 +PSKc: f438a194a5e968cc43cc4b3a6f560ca4 +Security Policy: 672 onrc 0 +Done +> otcli dataset panid 0xabcd +Done +> otcli dataset channel 25 +Done +> otcli dataset commit active +Done +> otcli ifconfig up +Done +> otcli thread start +Done +> otcli state +leader +Done +``` + ## OTA Software Update @@ -291,4 +374,4 @@ Here are described steps to use the all-cluster-app with the Matter CLI enabled Over-The-Air software updates are supported with the RW61x all-clusters example. The process to follow in order to perform a software update is described in the dedicated guide -['Matter Over-The-Air Software Update with NXP RW61x example applications'](../../../../../docs/guides/nxp_rw61x_ota_software_update.md). +['Matter Over-The-Air Software Update with NXP RW61x example applications'](../../../../../docs/guides/nxp/nxp_rw61x_ota_software_update.md). diff --git a/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h b/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h index 9fe84849fd753f..2653e97705fe39 100644 --- a/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h +++ b/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h @@ -50,8 +50,13 @@ #if !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA // Use a default pairing code if one hasn't been provisioned in flash. +#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#endif + +#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 +#endif // Use a default pairing code if one hasn't been provisioned in flash. #define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" diff --git a/examples/all-clusters-app/telink/CMakeLists.txt b/examples/all-clusters-app/telink/CMakeLists.txt index 2c59e658a7e6dc..d5f2132c9d2747 100644 --- a/examples/all-clusters-app/telink/CMakeLists.txt +++ b/examples/all-clusters-app/telink/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2022 Project CHIP Authors +# Copyright (c) 2022-2024 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. @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # + cmake_minimum_required(VERSION 3.13.1) get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH) @@ -21,47 +22,11 @@ get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH) get_filename_component(ALL_CLUSTERS_COMMON_DIR ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH) get_filename_component(ENERGY_MANAGEMENT_COMMON_DIR ${CHIP_ROOT}/examples/energy-management-app/energy-management-common/ REALPATH) -if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay") - set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay") -else() - unset(LOCAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay") - set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay") -else() - unset(GLOBAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b") -else() - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay") - message(STATUS "Flash memory size is set to: 2mb") -endif() - -if(DTC_OVERLAY_FILE) - set(DTC_OVERLAY_FILE - "${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}" - CACHE STRING "" FORCE - ) -else() - set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}) -endif() - -set(CONF_FILE prj.conf) - -# Load NCS/Zephyr build system -list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module) -find_package(Zephyr HINTS $ENV{ZEPHYR_BASE}) - -project(chip-telink-all-clusters-app-example) - +include(${TELINK_COMMON}/common.cmake) include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake) include(${CHIP_ROOT}/src/app/chip_data_model.cmake) -target_compile_options(app PRIVATE -fpermissive) +project(chip-telink-all-clusters-app-example) target_include_directories(app PRIVATE include @@ -70,7 +35,8 @@ target_include_directories(app PRIVATE ${GEN_DIR}/app-common ${GEN_DIR}/all-clusters-app ${TELINK_COMMON}/common/include - ${TELINK_COMMON}/util/include) + ${TELINK_COMMON}/util/include + ${TELINK_COMMON}/zephyr_ext) target_sources(app PRIVATE src/AppTask.cpp @@ -92,10 +58,15 @@ target_sources(app PRIVATE ${ENERGY_MANAGEMENT_COMMON_DIR}/src/DeviceEnergyManagementManager.cpp ${TELINK_COMMON}/common/src/mainCommon.cpp ${TELINK_COMMON}/common/src/AppTaskCommon.cpp - ${TELINK_COMMON}/util/src/LEDWidget.cpp + ${TELINK_COMMON}/util/src/LEDManager.cpp ${TELINK_COMMON}/util/src/ButtonManager.cpp ${TELINK_COMMON}/util/src/ThreadUtil.cpp - ${TELINK_COMMON}/util/src/PWMDevice.cpp) + ${TELINK_COMMON}/util/src/PWMManager.cpp + ${TELINK_COMMON}/zephyr_ext/zephyr_key_matrix.c + ${TELINK_COMMON}/zephyr_ext/zephyr_key_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_led_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_pwm_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_ws2812.c) chip_configure_data_model(app INCLUDE_SERVER diff --git a/examples/all-clusters-app/telink/README.md b/examples/all-clusters-app/telink/README.md index a5532487fa67a2..89d8221af75d3f 100644 --- a/examples/all-clusters-app/telink/README.md +++ b/examples/all-clusters-app/telink/README.md @@ -27,7 +27,7 @@ creating your own application. ``` 3. In the example dir run (replace __ with your board name, for - example, `tlsr9518adk80d`, `tlsr9528a` or `tlsr9258a`): + example, `tlsr9118bdk40d`, `tlsr9518adk80d`, `tlsr9528a` or `tlsr9258a`): ```bash $ west build -b diff --git a/examples/all-clusters-app/telink/include/AppConfig.h b/examples/all-clusters-app/telink/include/AppConfig.h index 68263bbda460db..602aa6065313a5 100644 --- a/examples/all-clusters-app/telink/include/AppConfig.h +++ b/examples/all-clusters-app/telink/include/AppConfig.h @@ -19,11 +19,5 @@ #pragma once // ---- All Clusters Application example config ---- -#define APP_USE_EXAMPLE_START_BUTTON 0 -#define APP_USE_BLE_START_BUTTON 0 -#define APP_USE_THREAD_START_BUTTON 1 #define APP_SET_DEVICE_INFO_PROVIDER 1 #define APP_SET_NETWORK_COMM_ENDPOINT_SEC 1 -#if defined(CONFIG_BOARD_TLSR9518ADK80D) || defined(CONFIG_BOARD_TLSR9528A) -#define APP_USE_IDENTIFY_PWM 1 -#endif diff --git a/examples/all-clusters-app/telink/prj.conf b/examples/all-clusters-app/telink/prj.conf index 18b7edcc11f395..2c9840cb66d6c2 100644 --- a/examples/all-clusters-app/telink/prj.conf +++ b/examples/all-clusters-app/telink/prj.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2022-2023 Project CHIP Authors +# Copyright (c) 2022-2024 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. @@ -14,7 +14,7 @@ # limitations under the License. # -# This sample uses sample-defaults.conf to set options common for all +# This sample uses Kconfig.defaults to set options common for all # samples. This file should contain only options specific for this sample # or overrides of default values. @@ -22,10 +22,6 @@ CONFIG_CHIP=y CONFIG_STD_CPP17=y -# CHIP configuration -CONFIG_CHIP_PROJECT_CONFIG="include/CHIPProjectConfig.h" -CONFIG_CHIP_OPENTHREAD_CONFIG="../../platform/telink/project_include/OpenThreadConfig.h" - # CHIP PID: 32769 == 0x8001 (all-clusters-app) CONFIG_CHIP_DEVICE_PRODUCT_ID=32769 @@ -36,9 +32,6 @@ CONFIG_BT_DEVICE_NAME="TelinkApp" CONFIG_CHIP_OTA_REQUESTOR=n CONFIG_CHIP_DEVICE_SOFTWARE_VERSION=1 -# Enable CHIP pairing automatically on application start. -CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y - # Disable CHIP shell support CONFIG_CHIP_LIB_SHELL=n diff --git a/examples/all-clusters-app/tizen/include/CHIPProjectAppConfig.h b/examples/all-clusters-app/tizen/include/CHIPProjectAppConfig.h index 38f322eecaab66..3d67773217a22a 100644 --- a/examples/all-clusters-app/tizen/include/CHIPProjectAppConfig.h +++ b/examples/all-clusters-app/tizen/include/CHIPProjectAppConfig.h @@ -33,3 +33,7 @@ // All clusters app has 3 group endpoints. This needs to defined here so that // CHIP_CONFIG_MAX_GROUPS_PER_FABRIC is properly configured. #define CHIP_CONFIG_MAX_GROUP_ENDPOINTS_PER_FABRIC 3 + +// Claim a device type while advertising that matches the device type on our +// endpoint 1. 0x0101 is the "Dimmable Light" device type. +#define CHIP_DEVICE_CONFIG_DEVICE_TYPE 0x0101 diff --git a/examples/all-clusters-app/tizen/src/main.cpp b/examples/all-clusters-app/tizen/src/main.cpp index e3e8aa736846fc..49c9f06ad9b8f6 100644 --- a/examples/all-clusters-app/tizen/src/main.cpp +++ b/examples/all-clusters-app/tizen/src/main.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index 0c9569504c7846..f7b4645e04f3a8 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -713,7 +713,7 @@ cluster BasicInformation = 40 { readonly attribute optional char_string<32> serialNumber = 15; attribute access(write: manage) optional boolean localConfigDisabled = 16; readonly attribute optional boolean reachable = 17; - readonly attribute optional char_string<32> uniqueID = 18; + readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; readonly attribute optional ProductAppearanceStruct productAppearance = 20; readonly attribute int32u specificationVersion = 21; @@ -1385,9 +1385,9 @@ cluster NetworkCommissioning = 49 { readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5; readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; - readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; - readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; - readonly attribute optional int16u threadVersion = 10; + provisional readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8; + provisional readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9; + provisional readonly attribute optional int16u threadVersion = 10; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -1989,6 +1989,7 @@ cluster Switch = 59 { kMomentarySwitchRelease = 0x4; kMomentarySwitchLongPress = 0x8; kMomentarySwitchMultiPress = 0x10; + kActionSwitch = 0x20; } info event SwitchLatched = 0 { @@ -2424,14 +2425,21 @@ provisional cluster ScenesManagement = 98 { kSceneNames = 0x1; } - struct AttributeValuePair { + struct AttributeValuePairStruct { attrib_id attributeID = 0; - int32u attributeValue = 1; + optional int8u valueUnsigned8 = 1; + optional int8s valueSigned8 = 2; + optional int16u valueUnsigned16 = 3; + optional int16s valueSigned16 = 4; + optional int32u valueUnsigned32 = 5; + optional int32s valueSigned32 = 6; + optional int64u valueUnsigned64 = 7; + optional int64s valueSigned64 = 8; } struct ExtensionFieldSet { cluster_id clusterID = 0; - AttributeValuePair attributeValueList[] = 1; + AttributeValuePairStruct attributeValueList[] = 1; } fabric_scoped struct SceneInfoStruct { @@ -2543,7 +2551,7 @@ provisional cluster ScenesManagement = 98 { int8u sceneIdentifierFrom = 2; } - /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}' */ + /** Add a scene to the scene table. Extension field sets are supported, and are inputed as '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeID": VALUE, "Value*": VALUE}]}' */ fabric command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; /** Retrieves the requested scene entry from its Scene table. */ fabric command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; @@ -2972,7 +2980,7 @@ cluster DoorLock = 257 { readonly attribute optional int8u numberOfCredentialsSupportedPerUser = 28; attribute access(write: manage) optional char_string<3> language = 33; attribute access(write: manage) optional int8u LEDSettings = 34; - attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) optional int32u autoRelockTime = 35; attribute access(write: manage) optional int8u soundVolume = 36; attribute access(write: manage) OperatingModeEnum operatingMode = 37; readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; @@ -2987,15 +2995,15 @@ cluster DoorLock = 257 { attribute access(write: administer) optional boolean sendPINOverTheAir = 50; attribute access(write: administer) optional boolean requirePINforRemoteOperation = 51; attribute access(write: administer) optional int16u expiringUserTimeout = 53; - readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; - readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; - readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; - readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; - readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; - readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; - readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; - readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; - readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; + provisional readonly attribute access(read: administer) optional nullable octet_string<65> aliroReaderVerificationKey = 128; + provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroReaderGroupIdentifier = 129; + provisional readonly attribute access(read: administer) optional octet_string<16> aliroReaderGroupSubIdentifier = 130; + provisional readonly attribute access(read: administer) optional octet_string aliroExpeditedTransactionSupportedProtocolVersions[] = 131; + provisional readonly attribute access(read: administer) optional nullable octet_string<16> aliroGroupResolvingKey = 132; + provisional readonly attribute access(read: administer) optional octet_string aliroSupportedBLEUWBProtocolVersions[] = 133; + provisional readonly attribute access(read: administer) optional int8u aliroBLEAdvertisingVersion = 134; + provisional readonly attribute optional int16u numberOfAliroCredentialIssuerKeysSupported = 135; + provisional readonly attribute optional int16u numberOfAliroEndpointKeysSupported = 136; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -4437,6 +4445,17 @@ cluster OccupancySensing = 1030 { kPhysicalContact = 3; } + bitmap Feature : bitmap32 { + kOther = 0x1; + kPassiveInfrared = 0x2; + kUltrasonic = 0x4; + kPhysicalContact = 0x8; + kActiveInfrared = 0x10; + kRadar = 0x20; + kRFSensing = 0x40; + kVision = 0x80; + } + bitmap OccupancyBitmap : bitmap8 { kOccupied = 0x1; } @@ -4447,9 +4466,17 @@ cluster OccupancySensing = 1030 { kPhysicalContact = 0x4; } + struct HoldTimeLimitsStruct { + int16u holdTimeMin = 0; + int16u holdTimeMax = 1; + int16u holdTimeDefault = 2; + } + readonly attribute OccupancyBitmap occupancy = 0; readonly attribute OccupancySensorTypeEnum occupancySensorType = 1; readonly attribute OccupancySensorTypeBitmap occupancySensorTypeBitmap = 2; + attribute access(write: manage) optional int16u holdTime = 3; + readonly attribute optional HoldTimeLimitsStruct holdTimeLimits = 4; attribute access(write: manage) optional int16u PIROccupiedToUnoccupiedDelay = 16; attribute access(write: manage) optional int16u PIRUnoccupiedToOccupiedDelay = 17; attribute access(write: manage) optional int8u PIRUnoccupiedToOccupiedThreshold = 18; @@ -4472,7 +4499,7 @@ cluster WakeOnLan = 1283 { revision 1; readonly attribute optional char_string<12> MACAddress = 0; - readonly attribute optional octet_string<16> linkLocalAddress = 1; + provisional readonly attribute optional octet_string<16> linkLocalAddress = 1; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -5735,6 +5762,10 @@ internal cluster UnitTesting = 4294048773 { int8u arg1[] = 0; } + response struct StringEchoResponse = 13 { + octet_string payload = 0; + } + request struct TestEnumsRequestRequest { vendor_id arg1 = 0; SimpleEnum arg2 = 1; @@ -5789,6 +5820,10 @@ internal cluster UnitTesting = 4294048773 { int8u fillCharacter = 2; } + request struct StringEchoRequestRequest { + octet_string payload = 0; + } + request struct TestDifferentVendorMeiRequestRequest { int8u arg1 = 0; } @@ -5868,6 +5903,10 @@ internal cluster UnitTesting = 4294048773 { command TestBatchHelperRequest(TestBatchHelperRequestRequest): TestBatchHelperResponse = 22; /** Second command that responds after sleepBeforeResponseTimeMs with an octet_string the size requested with fillCharacter. */ command TestSecondBatchHelperRequest(TestSecondBatchHelperRequestRequest): TestBatchHelperResponse = 23; + /** Command that takes an argument which is an octet string. The response echoes + the string back. If the string is large then it would require a session that + supports large payloads. */ + command StringEchoRequest(StringEchoRequestRequest): StringEchoResponse = 24; /** Command having a different MEI vendor ID than the cluster. Also emits TestDifferentVendorMeiEvent. */ command TestDifferentVendorMeiRequest(TestDifferentVendorMeiRequestRequest): TestDifferentVendorMeiResponse = 4294049962; } @@ -5951,6 +5990,7 @@ endpoint 0 { callback attribute hardwareVersionString; callback attribute softwareVersion; callback attribute softwareVersionString; + callback attribute uniqueID; callback attribute capabilityMinima; callback attribute specificationVersion; callback attribute maxPathsPerInvoke; @@ -6785,6 +6825,7 @@ endpoint 1 { handle command TestEmitTestFabricScopedEventResponse; handle command TestListNestedStructListArgumentRequest; handle command TestListInt8UReverseRequest; + handle command StringEchoResponse; handle command TestEnumsRequest; handle command TestNullableOptionalRequest; handle command SimpleStructEchoRequest; @@ -6794,6 +6835,7 @@ endpoint 1 { handle command TestEmitTestFabricScopedEventRequest; handle command TestBatchHelperRequest; handle command TestSecondBatchHelperRequest; + handle command StringEchoRequest; handle command TestDifferentVendorMeiRequest; handle command TestDifferentVendorMeiResponse; } @@ -6920,7 +6962,7 @@ endpoint 2 { } } endpoint 65534 { - device type ma_secondary_network_commissioning = 4293984258, version 1; + device type ma_secondary_network_interface = 25, version 1; server cluster Descriptor { diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap index 3294f430a3e337..090dda6a70e2e5 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap @@ -1,6 +1,6 @@ { "fileFormat": 2, - "featureLevel": 100, + "featureLevel": 103, "creator": "zap", "keyValuePairs": [ { @@ -17,6 +17,13 @@ } ], "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "type": "gen-templates-json", + "category": "matter", + "version": "chip-v1" + }, { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/zcl/zcl.json", @@ -24,12 +31,6 @@ "category": "matter", "version": 1, "description": "Matter SDK ZCL data" - }, - { - "pathRelativity": "relativeToZap", - "path": "../../../src/app/zap-templates/app-templates.json", - "type": "gen-templates-json", - "version": "chip-v1" } ], "endpointTypes": [ @@ -899,6 +900,22 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "CapabilityMinima", "code": 19, @@ -3002,7 +3019,7 @@ ] }, { - "name": "WiFi Network Diagnostics", + "name": "Wi-Fi Network Diagnostics", "code": 54, "mfgCode": null, "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", @@ -9048,6 +9065,14 @@ "isIncoming": 1, "isEnabled": 1 }, + { + "name": "StringEchoResponse", + "code": 13, + "mfgCode": null, + "source": "server", + "isIncoming": 0, + "isEnabled": 1 + }, { "name": "TestEnumsRequest", "code": 14, @@ -9120,6 +9145,14 @@ "isIncoming": 1, "isEnabled": 1 }, + { + "name": "StringEchoRequest", + "code": 24, + "mfgCode": null, + "source": "client", + "isIncoming": 1, + "isEnabled": 1 + }, { "name": "TestDifferentVendorMeiRequest", "code": 4294049962, @@ -11837,27 +11870,27 @@ "id": 4, "name": "Anonymous Endpoint Type", "deviceTypeRef": { - "code": 4293984258, + "code": 25, "profileId": 259, - "label": "MA-secondary-network-commissioning", - "name": "MA-secondary-network-commissioning" + "label": "MA-secondary-network-interface", + "name": "MA-secondary-network-interface" }, "deviceTypes": [ { - "code": 4293984258, + "code": 25, "profileId": 259, - "label": "MA-secondary-network-commissioning", - "name": "MA-secondary-network-commissioning" + "label": "MA-secondary-network-interface", + "name": "MA-secondary-network-interface" } ], "deviceVersions": [ 1 ], "deviceIdentifiers": [ - 4293984258 + 25 ], - "deviceTypeName": "MA-secondary-network-commissioning", - "deviceTypeCode": 4293984258, + "deviceTypeName": "MA-secondary-network-interface", + "deviceTypeCode": 25, "deviceTypeProfileId": 259, "clusters": [ { diff --git a/examples/all-clusters-minimal-app/ameba/README.md b/examples/all-clusters-minimal-app/ameba/README.md index 693b06cbaa80e4..b4e72ca32d02b5 100644 --- a/examples/all-clusters-minimal-app/ameba/README.md +++ b/examples/all-clusters-minimal-app/ameba/README.md @@ -27,13 +27,13 @@ The CHIP demo application is supported on - Pull docker image: ``` - $ docker pull ghcr.io/project-chip/chip-build-ameba:35 + $ docker pull ghcr.io/project-chip/chip-build-ameba:54 ``` - Run docker container: ``` - $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:35 + $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:54 ``` - Setup build environment: diff --git a/examples/all-clusters-minimal-app/ameba/chip_main.cmake b/examples/all-clusters-minimal-app/ameba/chip_main.cmake index acd5032e661fbf..e8fa8393ddeb1c 100755 --- a/examples/all-clusters-minimal-app/ameba/chip_main.cmake +++ b/examples/all-clusters-minimal-app/ameba/chip_main.cmake @@ -187,7 +187,6 @@ target_include_directories( ${chip_dir}/src/app/server/ ${chip_dir}/src/controller/data_model ${chip_dir}/third_party/nlio/repo/include/ - ${chip_dir}/third_party/nlunit-test/repo/src ) if (matter_enable_rpc) diff --git a/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp b/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp index ed88297b6bb515..6d83f6886182a6 100644 --- a/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp +++ b/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp @@ -61,10 +61,9 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) err = PlatformMgr().InitChipStack(); SuccessOrExit(err); - if (CONFIG_NETWORK_LAYER_BLE) - { - ConnectivityMgr().SetBLEAdvertisingEnabled(true); - } +#if CONFIG_NETWORK_LAYER_BLE + ConnectivityMgr().SetBLEAdvertisingEnabled(true); +#endif // Register a function to receive events from the CHIP device layer. Note that calls to // this function will happen on the CHIP event loop thread, not the app_main thread. diff --git a/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp b/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp index 67b13d9abb9506..a02dd619100928 100644 --- a/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp +++ b/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp b/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp index bc297dfa3d426b..abb0791ac9a132 100644 --- a/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp +++ b/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/examples/all-clusters-minimal-app/asr/BUILD.gn b/examples/all-clusters-minimal-app/asr/BUILD.gn index 33401d925e7b54..da47c98a26be09 100755 --- a/examples/all-clusters-minimal-app/asr/BUILD.gn +++ b/examples/all-clusters-minimal-app/asr/BUILD.gn @@ -94,6 +94,7 @@ asr_executable("clusters_minimal_app") { "${chip_root}/examples/common/QRCode", "${chip_root}/examples/providers:device_info_provider", "${chip_root}/src/lib", + "${chip_root}/src/platform/logging:default", "${chip_root}/src/setup_payload", ] diff --git a/examples/all-clusters-minimal-app/asr/include/AppTask.h b/examples/all-clusters-minimal-app/asr/include/AppTask.h index 97d1bfe538fb64..7e168e14d5a854 100755 --- a/examples/all-clusters-minimal-app/asr/include/AppTask.h +++ b/examples/all-clusters-minimal-app/asr/include/AppTask.h @@ -24,7 +24,7 @@ #include "AppEvent.h" #include "FreeRTOS.h" #include "timers.h" // provides FreeRTOS timer support -#include +#include #include // Application-defined error codes in the CHIP_ERROR space. diff --git a/examples/all-clusters-minimal-app/asr/src/AppTask.cpp b/examples/all-clusters-minimal-app/asr/src/AppTask.cpp index d6f77d2f28a836..f9d05c2157382d 100644 --- a/examples/all-clusters-minimal-app/asr/src/AppTask.cpp +++ b/examples/all-clusters-minimal-app/asr/src/AppTask.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp b/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp index 89266592872d3e..c40de8c006e1fc 100644 --- a/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp +++ b/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt b/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt index cae8b64315a232..7178945c7eb21c 100644 --- a/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt +++ b/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt @@ -82,7 +82,7 @@ set(SRC_DIRS_LIST "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/door-lock-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/occupancy-sensor-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/device-energy-management-server" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/energy-evse-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/energy-evse-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ethernet-network-diagnostics-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/localization-configuration-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/time-format-localization-server" @@ -118,19 +118,8 @@ set(SRC_DIRS_LIST "${SRC_DIRS_LIST}" ) endif (CONFIG_ENABLE_PW_RPC) -set(PRIV_REQUIRES_LIST chip QRCode bt driver app_update nvs_flash spi_flash openthread) - -if(${IDF_TARGET} STREQUAL "esp32") - list(APPEND PRIV_REQUIRES_LIST spidriver screen-framework) -endif() - -if(CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM) - list(APPEND PRIV_REQUIRES_LIST led_strip) -endif() - idf_component_register(PRIV_INCLUDE_DIRS ${PRIV_INCLUDE_DIRS_LIST} - SRC_DIRS ${SRC_DIRS_LIST} - PRIV_REQUIRES ${PRIV_REQUIRES_LIST}) + SRC_DIRS ${SRC_DIRS_LIST}) get_filename_component(CHIP_ROOT ${CMAKE_SOURCE_DIR}/third_party/connectedhomeip REALPATH) diff --git a/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp b/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp index c588c84bcff2d0..f56a3e69a023e7 100644 --- a/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp +++ b/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp @@ -21,6 +21,9 @@ #include #include +#include +#include + #if CONFIG_HAVE_DISPLAY using namespace ::chip; using namespace ::chip::Credentials; diff --git a/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp b/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp index 578f44003f435e..ac39b9498e9f21 100644 --- a/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp +++ b/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp @@ -42,6 +42,8 @@ #include #include +#include + // TODO need sensible library tag when put in library extern const char TAG[]; diff --git a/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp b/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp index 55f42a32723823..0013bda66c5c70 100644 --- a/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp +++ b/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp @@ -45,6 +45,8 @@ #include #include +#include + #define MAX_LENGTH_SMALL_FONT 30 using namespace chip; diff --git a/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h b/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h index da0ca8de53fe20..c02cd619d3ca82 100644 --- a/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h +++ b/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h @@ -32,6 +32,7 @@ #include "ScreenManager.h" #include +#include #include class QRCodeScreen : public Screen diff --git a/examples/all-clusters-minimal-app/esp32/main/main.cpp b/examples/all-clusters-minimal-app/esp32/main/main.cpp index 0ac538607efd89..993dc609300943 100644 --- a/examples/all-clusters-minimal-app/esp32/main/main.cpp +++ b/examples/all-clusters-minimal-app/esp32/main/main.cpp @@ -36,7 +36,7 @@ #include #include -#include +#include #include #include #include diff --git a/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults.esp32c2 b/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults.esp32c2 index 6cb90db4f55b9d..200dc5825bc2e2 100644 --- a/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults.esp32c2 +++ b/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults.esp32c2 @@ -17,3 +17,6 @@ CONFIG_BT_NIMBLE_ROLE_OBSERVER=n CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=4 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=8 CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=16 + +# Event Queue Size +CONFIG_MAX_EVENT_QUEUE_SIZE=25 diff --git a/examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn b/examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn index 721b1492d4c1f5..c70c282db2ac17 100644 --- a/examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn +++ b/examples/all-clusters-minimal-app/infineon/psoc6/BUILD.gn @@ -126,6 +126,7 @@ psoc6_executable("clusters_minimal_app") { "${chip_root}/examples/common/QRCode", "${chip_root}/examples/providers:device_info_provider", "${chip_root}/src/lib", + "${chip_root}/src/platform/logging:default", "${chip_root}/src/setup_payload", ] diff --git a/examples/all-clusters-minimal-app/infineon/psoc6/include/AppTask.h b/examples/all-clusters-minimal-app/infineon/psoc6/include/AppTask.h index 6dbd906b8104d6..b5102a153e25e1 100644 --- a/examples/all-clusters-minimal-app/infineon/psoc6/include/AppTask.h +++ b/examples/all-clusters-minimal-app/infineon/psoc6/include/AppTask.h @@ -26,7 +26,7 @@ #include "AppEvent.h" #include "FreeRTOS.h" #include "timers.h" // provides FreeRTOS timer support -#include +#include #include // Application-defined error codes in the CHIP_ERROR space. diff --git a/examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp b/examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp index 7cbaf6f447d405..ccc271dd7a2d06 100644 --- a/examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp +++ b/examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/all-clusters-minimal-app/linux/main-common.cpp b/examples/all-clusters-minimal-app/linux/main-common.cpp index d9f0a51cd747cf..f0bf3cafe8553c 100644 --- a/examples/all-clusters-minimal-app/linux/main-common.cpp +++ b/examples/all-clusters-minimal-app/linux/main-common.cpp @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp b/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp index 02f0704f080a58..86bfe7a9aa132b 100644 --- a/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp +++ b/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -34,6 +35,13 @@ #include "OTAUtil.h" #endif +#ifdef CONFIG_CHIP_CRYPTO_PSA +#include +#ifdef CHIP_MIGRATE_OPERATIONAL_KEYS_TO_ITS +#include "MigrationManager.h" +#endif +#endif + #include #include #include @@ -59,6 +67,10 @@ FactoryResetLEDsWrapper<3> sFactoryResetLEDs{ { FACTORY_RESET_SIGNAL_LED, FACTOR bool sIsNetworkProvisioned = false; bool sIsNetworkEnabled = false; bool sHaveBLEConnections = false; + +#ifdef CONFIG_CHIP_CRYPTO_PSA +chip::Crypto::PSAOperationalKeystore sPSAOperationalKeystore{}; +#endif } // namespace namespace LedConsts { @@ -155,10 +167,23 @@ CHIP_ERROR AppTask::Init() #endif static chip::CommonCaseDeviceServerInitParams initParams; +#ifdef CONFIG_CHIP_CRYPTO_PSA + initParams.operationalKeystore = &sPSAOperationalKeystore; +#endif (void) initParams.InitializeStaticResourcesBeforeServerInit(); ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); AppFabricTableDelegate::Init(); +#ifdef CONFIG_CHIP_MIGRATE_OPERATIONAL_KEYS_TO_ITS + err = MoveOperationalKeysFromKvsToIts(sLocalInitData.mServerInitParams->persistentStorageDelegate, + sLocalInitData.mServerInitParams->operationalKeystore); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("MoveOperationalKeysFromKvsToIts() failed"); + return err; + } +#endif + // We only have network commissioning on endpoint 0. emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); ConfigurationMgr().LogDeviceConfig(); diff --git a/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md b/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md index 9a90a11e0dccc4..e20ff1065d3dfb 100644 --- a/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md +++ b/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md @@ -1,4 +1,4 @@ To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** **EVK**, see the associated -[README document](../../../../../docs/guides/nxp_imx8m_linux_examples.md) for -details. +[README document](../../../../../docs/guides/nxp/nxp_imx8m_linux_examples.md) +for details. diff --git a/examples/all-clusters-minimal-app/telink/CMakeLists.txt b/examples/all-clusters-minimal-app/telink/CMakeLists.txt index a68471e379a842..3cfcc56d36783c 100644 --- a/examples/all-clusters-minimal-app/telink/CMakeLists.txt +++ b/examples/all-clusters-minimal-app/telink/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (c) 2022 Project CHIP Authors +# Copyright (c) 2022-2024 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. @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # + cmake_minimum_required(VERSION 3.13.1) get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH) @@ -20,47 +21,11 @@ get_filename_component(TELINK_COMMON ${CHIP_ROOT}/examples/platform/telink REALP get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH) get_filename_component(ALL_CLUSTERS_COMMON_DIR ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH) -if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay") - set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay") -else() - unset(LOCAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay") - set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay") -else() - unset(GLOBAL_DTC_OVERLAY_FILE) -endif() - -if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay") - message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b") -else() - set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay") - message(STATUS "Flash memory size is set to: 2mb") -endif() - -if(DTC_OVERLAY_FILE) - set(DTC_OVERLAY_FILE - "${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}" - CACHE STRING "" FORCE - ) -else() - set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}) -endif() - -set(CONF_FILE prj.conf) - -# Load NCS/Zephyr build system -list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module) -find_package(Zephyr HINTS $ENV{ZEPHYR_BASE}) - -project(chip-telink-all-clusters-minimal-app-example) - +include(${TELINK_COMMON}/common.cmake) include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake) include(${CHIP_ROOT}/src/app/chip_data_model.cmake) -target_compile_options(app PRIVATE -fpermissive) +project(chip-telink-all-clusters-minimal-app-example) target_include_directories(app PRIVATE include @@ -68,7 +33,8 @@ target_include_directories(app PRIVATE ${GEN_DIR}/app-common ${GEN_DIR}/all-clusters-minimal-app ${TELINK_COMMON}/common/include - ${TELINK_COMMON}/util/include) + ${TELINK_COMMON}/util/include + ${TELINK_COMMON}/zephyr_ext) target_sources(app PRIVATE src/AppTask.cpp @@ -78,9 +44,15 @@ target_sources(app PRIVATE ${ALL_CLUSTERS_COMMON_DIR}/src/binding-handler.cpp ${TELINK_COMMON}/common/src/mainCommon.cpp ${TELINK_COMMON}/common/src/AppTaskCommon.cpp - ${TELINK_COMMON}/util/src/LEDWidget.cpp + ${TELINK_COMMON}/util/src/LEDManager.cpp + ${TELINK_COMMON}/util/src/PWMManager.cpp ${TELINK_COMMON}/util/src/ButtonManager.cpp - ${TELINK_COMMON}/util/src/ThreadUtil.cpp) + ${TELINK_COMMON}/util/src/ThreadUtil.cpp + ${TELINK_COMMON}/zephyr_ext/zephyr_key_matrix.c + ${TELINK_COMMON}/zephyr_ext/zephyr_key_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_led_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_pwm_pool.c + ${TELINK_COMMON}/zephyr_ext/zephyr_ws2812.c) chip_configure_data_model(app INCLUDE_SERVER diff --git a/examples/all-clusters-minimal-app/telink/README.md b/examples/all-clusters-minimal-app/telink/README.md index 8e18bf4b9419b0..396afb1cc63091 100644 --- a/examples/all-clusters-minimal-app/telink/README.md +++ b/examples/all-clusters-minimal-app/telink/README.md @@ -27,7 +27,7 @@ for creating your own application. ``` 3. In the example dir run (replace __ with your board name, for - example, `tlsr9518adk80d`, `tlsr9528a` or `tlsr9258a`): + example, `tlsr9118bdk40d`, `tlsr9518adk80d`, `tlsr9528a` or `tlsr9258a`): ```bash $ west build -b diff --git a/examples/all-clusters-minimal-app/telink/include/AppConfig.h b/examples/all-clusters-minimal-app/telink/include/AppConfig.h index 5ef62e04203e1b..38bbe54833078b 100644 --- a/examples/all-clusters-minimal-app/telink/include/AppConfig.h +++ b/examples/all-clusters-minimal-app/telink/include/AppConfig.h @@ -20,8 +20,5 @@ // ---- All Clusters Minimal Application example config ---- -#define APP_USE_EXAMPLE_START_BUTTON 0 -#define APP_USE_BLE_START_BUTTON 0 -#define APP_USE_THREAD_START_BUTTON 0 #define APP_SET_DEVICE_INFO_PROVIDER 0 #define APP_SET_NETWORK_COMM_ENDPOINT_SEC 1 diff --git a/examples/all-clusters-minimal-app/telink/prj.conf b/examples/all-clusters-minimal-app/telink/prj.conf index 8b63c719c3875c..20a5920d569dea 100644 --- a/examples/all-clusters-minimal-app/telink/prj.conf +++ b/examples/all-clusters-minimal-app/telink/prj.conf @@ -1,5 +1,5 @@ # -# Copyright (c) 2022-2023 Project CHIP Authors +# Copyright (c) 2022-2024 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. @@ -14,7 +14,7 @@ # limitations under the License. # -# This sample uses sample-defaults.conf to set options common for all +# This sample uses Kconfig.defaults to set options common for all # samples. This file should contain only options specific for this sample # or overrides of default values. @@ -25,10 +25,6 @@ CONFIG_STD_CPP17=y # enable GPIO CONFIG_GPIO=y -# CHIP configuration -CONFIG_CHIP_PROJECT_CONFIG="include/CHIPProjectConfig.h" -CONFIG_CHIP_OPENTHREAD_CONFIG="../../platform/telink/project_include/OpenThreadConfig.h" - # CHIP PID: 32769 == 0x8001 (all-clusters-minimal-app) CONFIG_CHIP_DEVICE_PRODUCT_ID=32769 @@ -39,9 +35,6 @@ CONFIG_BT_DEVICE_NAME="TelinkMinApp" CONFIG_CHIP_OTA_REQUESTOR=n CONFIG_CHIP_DEVICE_SOFTWARE_VERSION=1 -# Enable CHIP pairing automatically on application start. -CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y - # Disable CHIP shell support CONFIG_CHIP_LIB_SHELL=n diff --git a/examples/all-clusters-minimal-app/tizen/src/main.cpp b/examples/all-clusters-minimal-app/tizen/src/main.cpp index 327623911831bb..fd2a345c952dd8 100644 --- a/examples/all-clusters-minimal-app/tizen/src/main.cpp +++ b/examples/all-clusters-minimal-app/tizen/src/main.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include diff --git a/examples/android/CHIPTest/.gn b/examples/android/CHIPTest/.gn new file mode 100644 index 00000000000000..3b11e2ba2e62ee --- /dev/null +++ b/examples/android/CHIPTest/.gn @@ -0,0 +1,25 @@ +# Copyright (c) 2024 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("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + import("//args.gni") +} diff --git a/examples/android/CHIPTest/BUILD.gn b/examples/android/CHIPTest/BUILD.gn new file mode 100644 index 00000000000000..c8ccb2e614c103 --- /dev/null +++ b/examples/android/CHIPTest/BUILD.gn @@ -0,0 +1,82 @@ +# Copyright (c) 2024 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("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +import("${build_root}/config/android_abi.gni") +import("${chip_root}/build/chip/chip_build.gni") +import("${chip_root}/build/chip/java/rules.gni") +import("${chip_root}/build/chip/tools.gni") + +shared_library("jni") { + output_name = "libCHIPTest" + + sources = [ "app/src/main/cpp/CHIPTest-JNI.cpp" ] + + deps = [ + "${chip_root}/src:tests", + "${chip_root}/src/controller/java", + "${chip_root}/src/controller/java:onboarding_payload", + "${chip_root}/src/lib", + "${chip_root}/src/lib/support", + "${chip_root}/src/lib/support:pw_tests_wrapper", + "${chip_root}/src/lib/support:test_utils", + "${chip_root}/src/lib/support/jsontlv", + "${chip_root}/src/platform", + "${chip_root}/src/platform/android", + "${chip_root}/src/platform/android:java", + "${chip_root}/src/platform/android:logging", + "${chip_root}/src/platform/tests:tests", + "${chip_root}/third_party/inipp", + "${chip_root}/third_party/nlfaultinjection:nlfaultinjection", + ] + + cflags = [ "-Wconversion" ] + + output_dir = "${root_out_dir}/lib/jni/${android_abi}" + + ldflags = [ "-Wl,--gc-sections" ] + + libs = [ "log" ] +} + +android_library("java") { + output_name = "CHIPTest.jar" + + deps = [ + ":android", + "${chip_root}/third_party/android_deps:annotation", + ] + + data_deps = [ + ":jni", + "${chip_root}/build/chip/java:shared_cpplib", + ] + + sources = [ "app/src/main/java/com/tcl/chip/chiptest/TestEngine.java" ] + + javac_flags = [ "-Xlint:deprecation" ] +} + +java_prebuilt("android") { + jar_path = "${android_sdk_root}/platforms/android-26/android.jar" +} + +group("default") { + deps = [ + ":java", + ":jni", + ] +} diff --git a/examples/android/CHIPTest/app/build.gradle b/examples/android/CHIPTest/app/build.gradle index e7aa3be805d55f..a6bd5dc0b7d8a6 100644 --- a/examples/android/CHIPTest/app/build.gradle +++ b/examples/android/CHIPTest/app/build.gradle @@ -25,9 +25,7 @@ android { externalNativeBuild { cmake { - arguments "-DMATTER_SDK_SOURCE_BUILD="+matterSdkSourceBuild \ - , "-DMATTER_SDK_BUILD_ROOT="+matterBuildSrcDir \ - , "-DMATTER_SDK_UTEST_LIB="+matterUTestLib + targets "default" } } } @@ -52,23 +50,22 @@ android { jvmTarget = '1.8' } - externalNativeBuild { - cmake { - path file('src/main/cpp/CMakeLists.txt') - version '3.10.2' - } - } - buildFeatures { viewBinding true } + sourceSets { + main { + jniLibs.srcDirs = ['libs/jniLibs'] + java.srcDirs = [ + 'src/main/java', + 'src/main/jni', + ] + } + } } dependencies { - if(!matterSdkSourceBuild.toBoolean()) { - implementation fileTree(dir: "libs", include: ["*.jar"]) - } - + implementation fileTree(dir: "libs", include: ["*.jar", "*.so"]) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.6.0' implementation 'androidx.appcompat:appcompat:1.3.1' diff --git a/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp b/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp index c1d9ffe2e1c985..e24e6098cdd17a 100644 --- a/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp +++ b/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp @@ -25,67 +25,43 @@ #include #include -#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include +#include "pw_unit_test/framework.h" +#include "pw_unit_test/googletest_style_event_handler.h" +#include "pw_unit_test/logging_event_handler.h" using namespace chip; namespace { JavaVM * sJVM; -jclass sTestEngineCls = NULL; -jclass sTestEngineExceptionCls = NULL; } // namespace -static void ThrowError(JNIEnv * env, CHIP_ERROR errToThrow); -static CHIP_ERROR N2J_Error(JNIEnv * env, CHIP_ERROR inErr, jthrowable & outEx); -// static void ReportError(JNIEnv * env, CHIP_ERROR cbErr, const char * functName); +static void ReportError(JNIEnv * env, CHIP_ERROR cbErr, const char * functName); jint JNI_OnLoad(JavaVM * jvm, void * reserved) { CHIP_ERROR err = CHIP_NO_ERROR; - JNIEnv * env; + JNIEnv * env = nullptr; ChipLogProgress(Test, "JNI_OnLoad() called"); - // Save a reference to the JVM. Will need this to call back into Java. - JniReferences::GetInstance().SetJavaVm(jvm, "com/tcl/chip/chiptest/TestEngine"); sJVM = jvm; + err = AndroidChipPlatformJNI_OnLoad(jvm, reserved); + VerifyOrReturnValue(err == CHIP_NO_ERROR, JNI_ERR, ReportError(env, err, __FUNCTION__), JNI_OnUnload(jvm, reserved)); // Get a JNI environment object. env = JniReferences::GetInstance().GetEnvForCurrentThread(); - VerifyOrExit(env != NULL, err = CHIP_JNI_ERROR_NO_ENV); + VerifyOrReturnValue(env != nullptr, JNI_ERR, ReportError(env, err, __FUNCTION__)); + JniLocalReferenceScope scope(env); - ChipLogProgress(Test, "Loading Java class references."); + ChipLogProgress(Test, "JNI_OnLoad() complete"); - // Get various class references need by the API. - jobject testEngineCls; - err = JniReferences::GetInstance().GetLocalClassRef(env, "com/tcl/chip/chiptest/TestEngine", sTestEngineCls); - SuccessOrExit(err); - err = sTestEngineCls.Init(testEngineCls); - SuccessOrExit(err); - jobject testEngineExceptionCls; - err = JniReferences::GetInstance().GetLocalClassRef(env, "com/tcl/chip/chiptest/TestEngineException", sTestEngineExceptionCls); - SuccessOrExit(err); - err = sTestEngineExceptionCls.Init(testEngineExceptionCls); - SuccessOrExit(err); - ChipLogProgress(Test, "Java class references loaded."); - - err = AndroidChipPlatformJNI_OnLoad(jvm, reserved); - SuccessOrExit(err); - -exit: - if (err != CHIP_NO_ERROR) - { - ThrowError(env, err); - JNI_OnUnload(jvm, reserved); - } - - return (err == CHIP_NO_ERROR) ? JNI_VERSION_1_6 : JNI_ERR; + return JNI_VERSION_1_6; } void JNI_OnUnload(JavaVM * jvm, void * reserved) @@ -94,12 +70,12 @@ void JNI_OnUnload(JavaVM * jvm, void * reserved) AndroidChipPlatformJNI_OnUnload(jvm, reserved); - sJVM = NULL; + sJVM = nullptr; } -void ReportError(JNIEnv * env, CHIP_ERROR cbErr, const char * functName) +static void ReportError(JNIEnv * env, CHIP_ERROR cbErr, const char * functName) { - if (cbErr == CHIP_JNI_ERROR_EXCEPTION_THROWN) + if (cbErr == CHIP_JNI_ERROR_EXCEPTION_THROWN && env != nullptr) { ChipLogError(Test, "Java exception thrown in %s", functName); env->ExceptionDescribe(); @@ -110,13 +86,19 @@ void ReportError(JNIEnv * env, CHIP_ERROR cbErr, const char * functName) switch (cbErr.AsInteger()) { case CHIP_JNI_ERROR_TYPE_NOT_FOUND.AsInteger(): - errStr = "JNI type not found"; + errStr = "CHIP Device Test Error: JNI type not found"; break; case CHIP_JNI_ERROR_METHOD_NOT_FOUND.AsInteger(): - errStr = "JNI method not found"; + errStr = "CHIP Device Test Error: JNI method not found"; break; case CHIP_JNI_ERROR_FIELD_NOT_FOUND.AsInteger(): - errStr = "JNI field not found"; + errStr = "CHIP Device Test Error: JNI field not found"; + break; + case CHIP_JNI_ERROR_DEVICE_NOT_FOUND.AsInteger(): + errStr = "CHIP Device Test Error: Device not found"; + break; + case CHIP_JNI_ERROR_EXCEPTION_THROWN.AsInteger(): + errStr = "CHIP Device Test Error: Java exception thrown, env is nullptr"; break; default: errStr = ErrorStr(cbErr); @@ -126,72 +108,26 @@ void ReportError(JNIEnv * env, CHIP_ERROR cbErr, const char * functName) } } -void ThrowError(JNIEnv * env, CHIP_ERROR errToThrow) -{ - CHIP_ERROR err = CHIP_NO_ERROR; - jthrowable ex; - - err = N2J_Error(env, errToThrow, ex); - if (err == CHIP_NO_ERROR) - { - env->Throw(ex); - } -} - -CHIP_ERROR N2J_Error(JNIEnv * env, CHIP_ERROR inErr, jthrowable & outEx) -{ - CHIP_ERROR err = CHIP_NO_ERROR; - const char * errStr = NULL; - jstring errStrObj = NULL; - jmethodID constructor; - - env->ExceptionClear(); - constructor = env->GetMethodID(sTestEngineExceptionCls.ObjectRef(), "", "(ILjava/lang/String;)V"); - VerifyOrExit(constructor != NULL, err = CHIP_JNI_ERROR_METHOD_NOT_FOUND); - - switch (inErr.AsInteger()) - { - case CHIP_JNI_ERROR_TYPE_NOT_FOUND.AsInteger(): - errStr = "CHIP Device Test Error: JNI type not found"; - break; - case CHIP_JNI_ERROR_METHOD_NOT_FOUND.AsInteger(): - errStr = "CHIP Device Test Error: JNI method not found"; - break; - case CHIP_JNI_ERROR_FIELD_NOT_FOUND.AsInteger(): - errStr = "CHIP Device Test Error: JNI field not found"; - break; - case CHIP_JNI_ERROR_DEVICE_NOT_FOUND.AsInteger(): - errStr = "CHIP Device Test Error: Device not found"; - break; - default: - errStr = ErrorStr(inErr); - break; - } - errStrObj = (errStr != NULL) ? env->NewStringUTF(errStr) : NULL; - - outEx = (jthrowable) env->NewObject(sTestEngineExceptionCls.ObjectRef(), constructor, static_cast(inErr.AsInteger()), - errStrObj); - VerifyOrExit(!env->ExceptionCheck(), err = CHIP_JNI_ERROR_EXCEPTION_THROWN); - -exit: - env->DeleteLocalRef(errStrObj); - return err; -} - static void onLog(const char * fmt, ...) { CHIP_ERROR err = CHIP_NO_ERROR; jmethodID method; - jstring strObj = NULL; - char str[512] = { 0 }; + jstring strObj = nullptr; + jclass sTestEngineCls = nullptr; + char str[512] = {}; va_list args; ChipLogProgress(Test, "Received onLog"); JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); - VerifyOrExit(env != NULL, err = CHIP_JNI_ERROR_NO_ENV); + VerifyOrReturn(env != nullptr, ChipLogError(Test, "Could not get JNIEnv for current thread")); + JniLocalReferenceScope scope(env); + + // Get various class references need by the API. + err = JniReferences::GetInstance().GetLocalClassRef(env, "com/tcl/chip/chiptest/TestEngine", sTestEngineCls); + SuccessOrExit(err); - method = env->GetStaticMethodID(sTestEngineCls.ObjectRef(), "onTestLog", "(Ljava/lang/String;)V"); - VerifyOrExit(method != NULL, err = CHIP_JNI_ERROR_NO_ENV); + method = env->GetStaticMethodID(sTestEngineCls, "onTestLog", "(Ljava/lang/String;)V"); + VerifyOrExit(method != nullptr, err = CHIP_JNI_ERROR_NO_ENV); va_start(args, fmt); vsnprintf(str, sizeof(str), fmt, args); @@ -201,68 +137,69 @@ static void onLog(const char * fmt, ...) ChipLogProgress(Test, "Calling Java onTestLog"); env->ExceptionClear(); - env->CallStaticVoidMethod(sTestEngineCls.ObjectRef(), method, strObj); + env->CallStaticVoidMethod(sTestEngineCls, method, strObj); VerifyOrExit(!env->ExceptionCheck(), err = CHIP_JNI_ERROR_EXCEPTION_THROWN); exit: env->ExceptionClear(); env->DeleteLocalRef(strObj); - - if (err != CHIP_NO_ERROR) - { - ReportError(env, err, __FUNCTION__); - } + VerifyOrReturn(err != CHIP_NO_ERROR, ReportError(env, err, __FUNCTION__)); } -static void jni_log_name(struct _nlTestSuite * inSuite) -{ - onLog("[ %s ]\n", inSuite->name); -} +namespace pw::unit_test { -static void jni_log_initialize(struct _nlTestSuite * inSuite, int inResult, int inWidth) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "Initialize", inResult == FAILURE ? "FAILED" : "PASSED"); -} -static void jni_log_terminate(struct _nlTestSuite * inSuite, int inResult, int inWidth) +class AndroidLoggingEventHandler : public pw::unit_test::LoggingEventHandler { - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "Terminate", inResult == FAILURE ? "FAILED" : "PASSED"); -} +public: + void RunAllTestsStart() override { onLog(PW_UNIT_TEST_GOOGLETEST_RUN_ALL_TESTS_START); } -static void jni_log_setup(struct _nlTestSuite * inSuite, int inResult, int inWidth) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "Setup", inResult == FAILURE ? "FAILED" : "PASSED"); -} - -static void jni_log_test(struct _nlTestSuite * inSuite, int inWidth, int inIndex) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, inSuite->tests[inIndex].name, inSuite->flagError ? "FAILED" : "PASSED"); -} - -static void jni_log_teardown(struct _nlTestSuite * inSuite, int inResult, int inWidth) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "TearDown", inResult == FAILURE ? "FAILED" : "PASSED"); -} - -static void jni_log_statTest(struct _nlTestSuite * inSuite) -{ - onLog("Failed Tests: %d / %d\n", inSuite->failedTests, inSuite->runTests); -} + void RunAllTestsEnd(const RunTestsSummary & run_tests_summary) override + { + onLog(PW_UNIT_TEST_GOOGLETEST_RUN_ALL_TESTS_END); + onLog(PW_UNIT_TEST_GOOGLETEST_PASSED_SUMMARY, run_tests_summary.passed_tests); + if (run_tests_summary.skipped_tests) + { + onLog(PW_UNIT_TEST_GOOGLETEST_DISABLED_SUMMARY, run_tests_summary.skipped_tests); + } + if (run_tests_summary.failed_tests) + { + onLog(PW_UNIT_TEST_GOOGLETEST_FAILED_SUMMARY, run_tests_summary.failed_tests); + } + } -static void jni_log_statAssert(struct _nlTestSuite * inSuite) -{ - onLog("Failed Asserts: %d / %d\n", inSuite->failedAssertions, inSuite->performedAssertions); -} + void TestCaseStart(const TestCase & test_case) override + { + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_START, test_case.suite_name, test_case.test_name); + } -static nl_test_output_logger_t jni_test_logger = { - jni_log_name, jni_log_initialize, jni_log_terminate, jni_log_setup, - jni_log_test, jni_log_teardown, jni_log_statTest, jni_log_statAssert, + void TestCaseEnd(const TestCase & test_case, TestResult result) override + { + // Use a switch with no default to detect changes in the test result enum. + switch (result) + { + case TestResult::kSuccess: + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_OK, test_case.suite_name, test_case.test_name); + break; + case TestResult::kFailure: + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_FAILED, test_case.suite_name, test_case.test_name); + break; + case TestResult::kSkipped: + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_DISABLED, test_case.suite_name, test_case.test_name); + break; + } + } }; +}; // namespace pw::unit_test extern "C" JNIEXPORT jint Java_com_tcl_chip_chiptest_TestEngine_runTest(JNIEnv * env, jclass clazz) { - nlTestSetLogger(&jni_test_logger); + chip::DeviceLayer::StackLock lock; - jint ret = RunRegisteredUnitTests(); + // Running Pigweed Tests + testing::InitGoogleTest(nullptr, static_cast(nullptr)); + pw::unit_test::AndroidLoggingEventHandler handler; + pw::unit_test::RegisterEventHandler(&handler); + jint ret = RUN_ALL_TESTS(); return ret; } diff --git a/examples/android/CHIPTest/app/src/main/cpp/CMakeLists.txt b/examples/android/CHIPTest/app/src/main/cpp/CMakeLists.txt deleted file mode 100644 index 7c86548554fea5..00000000000000 --- a/examples/android/CHIPTest/app/src/main/cpp/CMakeLists.txt +++ /dev/null @@ -1,66 +0,0 @@ -# For more information about using CMake with Android Studio, read the -# documentation: https://d.android.com/studio/projects/add-native-code.html - -# Sets the minimum version of CMake required to build the native library. -cmake_minimum_required(VERSION 3.10.2) - -# Declares and names the project. -project("chiptest") - -message(STATUS "MATTER_SDK_SOURCE_BUILD=${MATTER_SDK_SOURCE_BUILD}") -message(STATUS "MATTER_SDK_BUILD_ROOT=${MATTER_SDK_BUILD_ROOT}") -message(STATUS "MATTER_SDK_UTEST_LIB=${MATTER_SDK_UTEST_LIB}") - -set(MATTER_SDK_ROOT "${PROJECT_SOURCE_DIR}/../../../../../../..") - -if(IS_ABSOLUTE ${MATTER_SDK_BUILD_ROOT}) -set(MATTER_SDK_BUILD ${MATTER_SDK_BUILD_ROOT}) -else() -set(MATTER_SDK_BUILD "${MATTER_SDK_ROOT}/${MATTER_SDK_BUILD_ROOT}") -endif() - -message(STATUS "MATTER_SDK_ROOT=${MATTER_SDK_ROOT}") -message(STATUS "MATTER_SDK_BUILD=${MATTER_SDK_BUILD}") - -set(CHIPTest_srcs - CHIPTest-JNI.cpp) -add_library(CHIPTest SHARED ${CHIPTest_srcs}) -set_property(TARGET CHIPTest APPEND PROPERTY INCLUDE_DIRECTORIES - ${MATTER_SDK_ROOT}/src/include/ - ${MATTER_SDK_ROOT}/src/ - ${MATTER_SDK_BUILD}/gen/include/ - ${MATTER_SDK_ROOT}/src/lib/ - ${MATTER_SDK_ROOT}/config/standalone/ - ${MATTER_SDK_ROOT}/third_party/nlassert/repo/include/ - ${MATTER_SDK_ROOT}/third_party/nlio/repo/include/ - ${MATTER_SDK_ROOT}/third_party/nlfaultinjection/include/ - ${MATTER_SDK_ROOT}/third_party/nlunit-test/repo/src/) -set_target_properties(CHIPTest PROPERTIES COMPILE_DEFINITIONS "CHIP_HAVE_CONFIG_H=1") - -set(CHIPTest_Libs - -Wl,--start-group - ${MATTER_SDK_BUILD}/obj/src/lib/core/lib/libChipCore.a - ${MATTER_SDK_BUILD}/obj/src/lib/support/lib/libSupportLayer.a - ${MATTER_SDK_BUILD}/lib/libnlunit-test.a - ${MATTER_SDK_BUILD}/obj/src/ble/lib/libBleLayer.a - ${MATTER_SDK_BUILD}/obj/src/inet/lib/libInetLayer.a - ${MATTER_SDK_BUILD}/obj/src/platform/logging/lib/android.a - ${MATTER_SDK_BUILD}/lib/libnlfaultinjection.a - ${MATTER_SDK_BUILD}/obj/src/system/lib/libSystemLayer.a - ${MATTER_SDK_BUILD}/obj/src/platform/lib/libDeviceLayer.a - ${MATTER_SDK_BUILD}/obj/src/platform/android/lib/libAndroidPlatform.a - ${MATTER_SDK_BUILD}/obj/src/crypto/lib/libChipCrypto.a - ${MATTER_SDK_BUILD}/lib/libmbedtls.a - -llog - - -Wl,-whole-archive - ${MATTER_SDK_BUILD}/lib/${MATTER_SDK_UTEST_LIB} - -Wl,-no-whole-archive - - -Wl,--end-group - ) -target_link_libraries(CHIPTest ${CHIPTest_Libs}) - -#if( MATTER_SDK_SRC_DIR ) -# include(../../../../${MATTER_SDK_SRC_DIR}/CMakeLists.txt) -#endif() diff --git a/examples/android/CHIPTest/args.gni b/examples/android/CHIPTest/args.gni new file mode 100644 index 00000000000000..df7c34af9c20ae --- /dev/null +++ b/examples/android/CHIPTest/args.gni @@ -0,0 +1,40 @@ +# Copyright (c) 2024 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("//build_overrides/chip.gni") + +import("${chip_root}/config/standalone/args.gni") + +import("//build_overrides/pigweed.gni") + +chip_project_config_include_dirs = [ "${chip_root}/config/standalone" ] + +chip_build_test_static_libraries = false + +chip_build_tests = true + +chip_monolithic_tests = false + +pw_sys_io_BACKEND = "$dir_pw_sys_io_stdio" + +pw_assert_BACKEND = "$dir_pw_assert_log" +pw_log_BACKEND = "$dir_pw_log_basic" + +pw_unit_test_BACKEND = "$dir_pw_unit_test:light" + +# TODO: Make sure only unit tests link against this +pw_build_LINK_DEPS = [ + "$dir_pw_assert:impl", + "$dir_pw_log:impl", +] diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/build_overrides b/examples/android/CHIPTest/build_overrides similarity index 100% rename from examples/all-clusters-app/cc13x2x7_26x2x7/build_overrides rename to examples/android/CHIPTest/build_overrides diff --git a/examples/android/CHIPTest/third_party/connectedhomeip b/examples/android/CHIPTest/third_party/connectedhomeip new file mode 120000 index 00000000000000..2259b00e7b8deb --- /dev/null +++ b/examples/android/CHIPTest/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../. \ No newline at end of file diff --git a/examples/android/CHIPTool/app/build.gradle b/examples/android/CHIPTool/app/build.gradle index 368930259ea66a..4502b7f7a18897 100644 --- a/examples/android/CHIPTool/app/build.gradle +++ b/examples/android/CHIPTool/app/build.gradle @@ -43,9 +43,6 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } - packagingOptions { - exclude 'META-INF/main.kotlin_module' - } buildFeatures { viewBinding = true diff --git a/examples/android/CHIPTool/app/src/main/cpp/native-lib.cpp b/examples/android/CHIPTool/app/src/main/cpp/native-lib.cpp index 4a0235adbff06e..abf57152cd153d 100644 --- a/examples/android/CHIPTool/app/src/main/cpp/native-lib.cpp +++ b/examples/android/CHIPTool/app/src/main/cpp/native-lib.cpp @@ -26,6 +26,8 @@ #include #include +#include + // This is just a sample function to demonstrate end-to-end calling in/out of CHIP stack // is working. std::string base38Encode(void) diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt index 2da072a85fa243..2b2078dde5e688 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/CHIPToolActivity.kt @@ -95,7 +95,7 @@ class CHIPToolActivity : } } - override fun onCommissioningComplete(code: Int, nodeId: Long) { + override fun onCommissioningComplete(code: Long, nodeId: Long) { runOnUiThread { Toast.makeText(this, getString(R.string.commissioning_completed, code), Toast.LENGTH_SHORT) .show() @@ -122,7 +122,7 @@ class CHIPToolActivity : startActivity(redirectIntent) } - override fun SetNetworkType(type: ProvisionNetworkType) { + override fun setNetworkType(type: ProvisionNetworkType?) { networkType = type } @@ -238,6 +238,16 @@ class CHIPToolActivity : } } + override fun onResume() { + super.onResume() + ChipClient.startDnssd(this) + } + + override fun onPause() { + ChipClient.stopDnssd(this) + super.onPause() + } + companion object { private const val TAG = "CHIPToolActivity" private const val ADDRESS_COMMISSIONING_FRAGMENT_TAG = "address_commissioning_fragment" diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt index 77c59d75d00c36..de8e598ee0ed9c 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt @@ -22,6 +22,8 @@ import android.util.Log import chip.devicecontroller.ChipDeviceController import chip.devicecontroller.ControllerParams import chip.devicecontroller.GetConnectedDeviceCallbackJni.GetConnectedDeviceCallback +import chip.devicecontroller.ICDCheckInDelegate +import chip.devicecontroller.ICDClientInfo import chip.platform.AndroidBleManager import chip.platform.AndroidChipPlatform import chip.platform.ChipMdnsCallbackImpl @@ -31,6 +33,7 @@ import chip.platform.NsdManagerServiceResolver import chip.platform.PreferencesConfigurationManager import chip.platform.PreferencesKeyValueStoreManager import com.google.chip.chiptool.attestation.ExampleAttestationTrustStoreDelegate +import com.google.chip.chiptool.clusterclient.ICDCheckInCallback import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException import kotlinx.coroutines.suspendCancellableCoroutine @@ -43,18 +46,43 @@ object ChipClient { /* 0xFFF4 is a test vendor ID, replace with your assigned company ID */ const val VENDOR_ID = 0xFFF4 + private var icdCheckInCallback: ICDCheckInCallback? = null + fun getDeviceController(context: Context): ChipDeviceController { getAndroidChipPlatform(context) if (!this::chipDeviceController.isInitialized) { chipDeviceController = - ChipDeviceController(ControllerParams.newBuilder().setControllerVendorId(VENDOR_ID).build()) + ChipDeviceController( + ControllerParams.newBuilder() + .setControllerVendorId(VENDOR_ID) + .setEnableServerInteractions(true) + .build() + ) // Set delegate for attestation trust store for device attestation verifier. // It will replace the default attestation trust store. chipDeviceController.setAttestationTrustStoreDelegate( ExampleAttestationTrustStoreDelegate(chipDeviceController) ) + + chipDeviceController.setICDCheckInDelegate( + object : ICDCheckInDelegate { + override fun onCheckInComplete(info: ICDClientInfo) { + Log.d(TAG, "onCheckInComplete : $info") + icdCheckInCallback?.notifyCheckInMessage(info) + } + + override fun onKeyRefreshNeeded(info: ICDClientInfo): ByteArray? { + Log.d(TAG, "onKeyRefreshNeeded : $info") + return null + } + + override fun onKeyRefreshDone(errorCode: Long) { + Log.d(TAG, "onKeyRefreshDone : $errorCode") + } + } + ) } return chipDeviceController @@ -69,7 +97,10 @@ object ChipClient { AndroidBleManager(context), PreferencesKeyValueStoreManager(context), PreferencesConfigurationManager(context), - NsdManagerServiceResolver(context), + NsdManagerServiceResolver( + context, + NsdManagerServiceResolver.NsdManagerResolverAvailState() + ), NsdManagerServiceBrowser(context), ChipMdnsCallbackImpl(), DiagnosticDataProviderImpl(context) @@ -79,6 +110,25 @@ object ChipClient { return androidPlatform } + fun setICDCheckInCallback(callback: ICDCheckInCallback) { + icdCheckInCallback = callback + } + + fun startDnssd(context: Context) { + if (!this::chipDeviceController.isInitialized) { + getDeviceController(context) + } else { + chipDeviceController.startDnssd() + } + } + + fun stopDnssd(context: Context) { + if (!this::chipDeviceController.isInitialized) { + getDeviceController(context) + } + chipDeviceController.stopDnssd() + } + /** * Wrapper around [ChipDeviceController.getConnectedDevicePointer] to return the value directly. */ diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt index 2d126e31c6c426..2eb2a1c77fa042 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/GenericChipDeviceListener.kt @@ -12,15 +12,15 @@ open class GenericChipDeviceListener : ChipDeviceController.CompletionListener { // No op } - override fun onPairingComplete(code: Int) { + override fun onPairingComplete(code: Long) { // No op } - override fun onPairingDeleted(code: Int) { + override fun onPairingDeleted(code: Long) { // No op } - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { // No op } @@ -33,7 +33,7 @@ open class GenericChipDeviceListener : ChipDeviceController.CompletionListener { // No op } - override fun onCommissioningStatusUpdate(nodeId: Long, stage: String, errorCode: Int) { + override fun onCommissioningStatusUpdate(nodeId: Long, stage: String, errorCode: Long) { // No op } @@ -57,7 +57,7 @@ open class GenericChipDeviceListener : ChipDeviceController.CompletionListener { // No op } - override fun onICDRegistrationComplete(errorCode: Int, icdDeviceInfo: ICDDeviceInfo) { + override fun onICDRegistrationComplete(errorCode: Long, icdDeviceInfo: ICDDeviceInfo) { // No op } } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt index f935ab37926927..69bfdc109912c9 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt @@ -154,7 +154,7 @@ class SelectActionFragment : Fragment() { /** Notifies listener of a click to manually input the CHIP device address. */ fun onShowDeviceAddressInput() - fun SetNetworkType(type: ProvisionNetworkType) + fun setNetworkType(type: ProvisionNetworkType?) } private fun showFragment(fragment: Fragment, showOnBack: Boolean = true) { @@ -172,6 +172,7 @@ class SelectActionFragment : Fragment() { /** Notifies listener of Scan QR code button click. */ private fun handleScanQrCodeClicked() { + getCallback()?.setNetworkType(null) showFragment(BarcodeFragment.newInstance()) } @@ -226,13 +227,13 @@ class SelectActionFragment : Fragment() { /** Notifies listener of provision-WiFi-credentials button click. */ private fun handleProvisionWiFiCredentialsClicked() { - getCallback()?.SetNetworkType(ProvisionNetworkType.WIFI) + getCallback()?.setNetworkType(ProvisionNetworkType.WIFI) showFragment(BarcodeFragment.newInstance()) } /** Notifies listener of provision-Thread-credentials button click. */ private fun handleProvisionThreadCredentialsClicked() { - getCallback()?.SetNetworkType(ProvisionNetworkType.THREAD) + getCallback()?.setNetworkType(ProvisionNetworkType.THREAD) showFragment(BarcodeFragment.newInstance()) } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/attestation/ExampleAttestationTrustStoreDelegate.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/attestation/ExampleAttestationTrustStoreDelegate.kt index f62be2ce7dbbc6..33ad938f144fb9 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/attestation/ExampleAttestationTrustStoreDelegate.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/attestation/ExampleAttestationTrustStoreDelegate.kt @@ -3,6 +3,7 @@ package com.google.chip.chiptool.attestation import android.util.Base64 import chip.devicecontroller.AttestationTrustStoreDelegate import chip.devicecontroller.ChipDeviceController +import chip.devicecontroller.DeviceAttestation import java.util.* class ExampleAttestationTrustStoreDelegate(val chipDeviceController: ChipDeviceController) : @@ -13,9 +14,7 @@ class ExampleAttestationTrustStoreDelegate(val chipDeviceController: ChipDeviceC override fun getProductAttestationAuthorityCert(skid: ByteArray): ByteArray? { return paaCerts .map { Base64.decode(it, Base64.DEFAULT) } - .firstOrNull { cert -> - Arrays.equals(chipDeviceController.extractSkidFromPaaCert(cert), skid) - } + .firstOrNull { cert -> Arrays.equals(DeviceAttestation.extractSkidFromPaaCert(cert), skid) } } companion object { diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/bluetooth/BluetoothManager.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/bluetooth/BluetoothManager.kt index 16d0f745b5f70f..61e95838b1cc61 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/bluetooth/BluetoothManager.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/bluetooth/BluetoothManager.kt @@ -138,6 +138,12 @@ class BluetoothManager : BleCallback { private val coroutineContinuation = continuation + private val STATE_INIT = 1 + private val STATE_DISCOVER_SERVICE = 2 + private val STATE_REQUEST_MTU = 3 + + private var mState = STATE_INIT + override fun onConnectionStateChange(gatt: BluetoothGatt?, status: Int, newState: Int) { super.onConnectionStateChange(gatt, status, newState) Log.i( @@ -148,21 +154,31 @@ class BluetoothManager : BleCallback { if (newState == BluetoothProfile.STATE_CONNECTED && status == BluetoothGatt.GATT_SUCCESS) { Log.i("$TAG|onConnectionStateChange", "Discovering Services...") + mState = STATE_DISCOVER_SERVICE gatt?.discoverServices() } } override fun onServicesDiscovered(gatt: BluetoothGatt?, status: Int) { Log.d(TAG, "${gatt?.device?.name}.onServicesDiscovered status = $status") + if (mState != STATE_DISCOVER_SERVICE) { + Log.d(TAG, "Invalid state : $mState") + return + } wrappedCallback.onServicesDiscovered(gatt, status) Log.i("$TAG|onServicesDiscovered", "Services Discovered") + mState = STATE_REQUEST_MTU gatt?.requestMtu(247) } override fun onMtuChanged(gatt: BluetoothGatt?, mtu: Int, status: Int) { Log.d(TAG, "${gatt?.device?.name}.onMtuChanged: connecting to CHIP device") super.onMtuChanged(gatt, mtu, status) + if (mState != STATE_REQUEST_MTU) { + Log.d(TAG, "Invalid state : $mState") + return + } wrappedCallback.onMtuChanged(gatt, mtu, status) if (coroutineContinuation.isActive) { coroutineContinuation.resume(gatt) diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/AddressUpdateFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/AddressUpdateFragment.kt index b4c87dc53c6538..81693c94d355cf 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/AddressUpdateFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/AddressUpdateFragment.kt @@ -2,25 +2,36 @@ package com.google.chip.chiptool.clusterclient import android.content.Context import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.AdapterView import android.widget.ArrayAdapter +import android.widget.Toast import androidx.fragment.app.Fragment +import androidx.lifecycle.lifecycleScope +import chip.devicecontroller.ChipClusterException +import chip.devicecontroller.ChipClusters import chip.devicecontroller.ChipDeviceController +import chip.devicecontroller.ICDClientInfo import com.google.chip.chiptool.ChipClient import com.google.chip.chiptool.databinding.AddressUpdateFragmentBinding import com.google.chip.chiptool.util.DeviceIdUtil +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch /** Fragment for updating the address of a device given its fabric and node ID. */ -class AddressUpdateFragment : Fragment() { +class AddressUpdateFragment : ICDCheckInCallback, Fragment() { private val deviceController: ChipDeviceController get() = ChipClient.getDeviceController(requireContext()) val deviceId: Long - get() = binding.deviceIdEd.text.toString().toULong().toLong() + get() = binding.deviceIdEd.text.toString().toULong(16).toLong() var endpointId: Int get() = binding.epIdEd.text.toString().toInt() @@ -32,22 +43,46 @@ class AddressUpdateFragment : Fragment() { private val binding get() = _binding!! + private lateinit var scope: CoroutineScope + + private var icdDeviceId: Long = 0L + private var icdTotalRemainStayActiveTimeMs = 0L + private var icdDeviceRemainStayActiveTimeMs = 0L + private var isSendingStayActiveCommand = false + private val icdRequestActiveDurationMs: Long + get() = binding.icdActiveDurationEd.text.toString().toLong() * 1000 + + private val handler = Handler(Looper.getMainLooper()) + + private var externalICDCheckInMessageCallback: ICDCheckInMessageCallback? = null + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { _binding = AddressUpdateFragmentBinding.inflate(inflater, container, false) + scope = viewLifecycleOwner.lifecycleScope return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + ChipClient.setICDCheckInCallback(this) + val compressedFabricId = deviceController.compressedFabricId - binding.fabricIdEd.setText(compressedFabricId.toULong().toString().padStart(16, '0')) + binding.fabricIdEd.setText(compressedFabricId.toULong().toString(16).padStart(16, '0')) binding.deviceIdEd.setText(DeviceIdUtil.getLastDeviceId(requireContext()).toString(16)) binding.epIdEd.setText(endpointId.toString()) + binding.icdActiveDurationEd.setText((ICD_STAY_ACTIVE_DURATION / 1000).toString()) + + binding.icdInteractionSwitch.setOnClickListener { + val isChecked = binding.icdInteractionSwitch.isChecked + if (updateUIForICDInteractionSwitch(isChecked)) { + icdInteractionSwitchClick(isChecked) + } + } updateDeviceIdSpinner() } @@ -68,6 +103,61 @@ class AddressUpdateFragment : Fragment() { } } + private fun icdInteractionSwitchClick(isEnabled: Boolean) { + if (isEnabled) { + icdDeviceId = deviceId + } else { + icdDeviceId = 0 + if (icdDeviceRemainStayActiveTimeMs != 0L || icdTotalRemainStayActiveTimeMs != 0L) { + scope.launch { + icdDeviceRemainStayActiveTimeMs = sendStayActive(0L) + icdTotalRemainStayActiveTimeMs = icdDeviceRemainStayActiveTimeMs + } + } + } + } + + private suspend fun sendStayActive(duration: Long): Long { + isSendingStayActiveCommand = true + val devicePtr = + try { + ChipClient.getConnectedDevicePointer(requireContext(), deviceId) + } catch (e: IllegalStateException) { + Log.d(TAG, "getConnectedDevicePointer exception", e) + showToastMessage("Get DevicePointer fail!") + throw e + } + + val cluster = ChipClusters.IcdManagementCluster(devicePtr, 0) + val retDuration = suspendCoroutine { cont -> + cluster.stayActiveRequest( + object : ChipClusters.IcdManagementCluster.StayActiveResponseCallback { + override fun onError(error: Exception) { + Log.d(TAG, "onError", error) + cont.resume(0L) + } + + override fun onSuccess(promisedActiveDuration: Long) { + cont.resume(promisedActiveDuration) + } + }, + duration + ) + } + isSendingStayActiveCommand = false + return retDuration + } + + private fun updateUIForICDInteractionSwitch(isEnabled: Boolean): Boolean { + val isICD = isICDDevice() + if (isEnabled && !isICD) { + binding.icdInteractionSwitch.isChecked = false + return false + } + + return true + } + override fun onDestroyView() { super.onDestroyView() _binding = null @@ -81,6 +171,12 @@ class AddressUpdateFragment : Fragment() { } } + private fun showToastMessage(msg: String) { + requireActivity().runOnUiThread { + Toast.makeText(requireActivity(), msg, Toast.LENGTH_SHORT).show() + } + } + fun isGroupId(): Boolean { return isGroupNodeId(getNodeId()) } @@ -90,7 +186,76 @@ class AddressUpdateFragment : Fragment() { } fun getNodeId(): ULong { - return binding.deviceIdEd.text.toString().toULong() + return binding.deviceIdEd.text.toString().toULong(16) + } + + fun isICDDevice(): Boolean { + return deviceController.icdClientInfo.firstOrNull { info -> info.peerNodeId == deviceId } != + null + } + + override fun notifyCheckInMessage(info: ICDClientInfo) { + externalICDCheckInMessageCallback?.notifyCheckInMessage() + if (info.peerNodeId != icdDeviceId) { + return + } + + scope.launch { + try { + icdDeviceRemainStayActiveTimeMs = sendStayActive(icdRequestActiveDurationMs) + icdTotalRemainStayActiveTimeMs = icdRequestActiveDurationMs + turnOnActiveMode() + } catch (e: IllegalStateException) { + Log.d(TAG, "IlligalStateException", e) + } catch (e: ChipClusterException) { + Log.d(TAG, "ChipClusterException", e) + } + } + } + + fun setNotifyCheckInMessageCallback(callback: ICDCheckInMessageCallback?) { + externalICDCheckInMessageCallback = callback + } + + interface ICDCheckInMessageCallback { + fun notifyCheckInMessage() + } + + private fun turnOnActiveMode() { + requireActivity().runOnUiThread { + binding.icdProgressBar.max = (icdTotalRemainStayActiveTimeMs / 1000).toInt() + binding.icdProgressBar.progress = (icdTotalRemainStayActiveTimeMs / 1000).toInt() + } + + val runnable = + object : Runnable { + override fun run() { + if (!isAdded) { + Log.d(TAG, "Fragment is not attached") + return + } + if (icdTotalRemainStayActiveTimeMs >= ICD_PROGRESS_STEP) { + icdDeviceRemainStayActiveTimeMs -= ICD_PROGRESS_STEP + icdTotalRemainStayActiveTimeMs -= ICD_PROGRESS_STEP + handler.postDelayed(this, ICD_PROGRESS_STEP) + requireActivity().runOnUiThread { + binding.icdProgressBar.progress = (icdTotalRemainStayActiveTimeMs / 1000).toInt() + } + + if ( + !isSendingStayActiveCommand && + (ICD_RESEND_STAY_ACTIVE_TIME > icdDeviceRemainStayActiveTimeMs) && + (ICD_RESEND_STAY_ACTIVE_TIME < icdTotalRemainStayActiveTimeMs) + ) + scope.launch { + icdDeviceRemainStayActiveTimeMs = sendStayActive(icdTotalRemainStayActiveTimeMs) + } + } else { + requireActivity().runOnUiThread { binding.icdProgressBar.progress = 0 } + } + } + } + handler.post(runnable) } companion object { @@ -99,6 +264,10 @@ class AddressUpdateFragment : Fragment() { private const val MIN_GROUP_NODE_ID = 0xFFFF_FFFF_FFFF_0000UL private const val MASK_GROUP_ID = 0x0000_0000_0000_FFFFUL + private const val ICD_STAY_ACTIVE_DURATION = 30000L // 30 secs. + private const val ICD_PROGRESS_STEP = 1000L // 1 sec. + private const val ICD_RESEND_STAY_ACTIVE_TIME = 2000L // 2 secs. + fun isGroupNodeId(nodeId: ULong): Boolean { return nodeId >= MIN_GROUP_NODE_ID } @@ -112,3 +281,7 @@ class AddressUpdateFragment : Fragment() { } } } + +interface ICDCheckInCallback { + fun notifyCheckInMessage(info: ICDClientInfo) +} diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/BasicClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/BasicClientFragment.kt index 3ef61298930268..5378f65da9d44e 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/BasicClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/BasicClientFragment.kt @@ -98,7 +98,7 @@ class BasicClientFragment : Fragment() { inner class ChipControllerCallback : GenericChipDeviceListener() { override fun onConnectDeviceComplete() {} - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { Log.d(TAG, "onCommissioningComplete for nodeId $nodeId: $errorCode") } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/GroupSettingFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/GroupSettingFragment.kt index bbaacbd3c997ba..48370305e74713 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/GroupSettingFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/GroupSettingFragment.kt @@ -539,7 +539,7 @@ class GroupSettingFragment : Fragment() { } inner class ChipControllerCallback : GenericChipDeviceListener() { - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { Log.d(TAG, "onCommissioningComplete for nodeId $nodeId: $errorCode") } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt index 08443d6ffb4ffc..6faeb9bdb65ebc 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt @@ -102,7 +102,7 @@ class MultiAdminClientFragment : Fragment() { inner class ChipControllerCallback : GenericChipDeviceListener() { override fun onConnectDeviceComplete() {} - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { Log.d(TAG, "onCommissioningComplete for nodeId $nodeId: $errorCode") } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt index d4b55194147fca..2d82628dbdee40 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OnOffClientFragment.kt @@ -243,7 +243,7 @@ class OnOffClientFragment : Fragment() { inner class ChipControllerCallback : GenericChipDeviceListener() { override fun onConnectDeviceComplete() {} - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { Log.d(TAG, "onCommissioningComplete for nodeId $nodeId: $errorCode") showMessage("Address update complete for nodeId $nodeId with code $errorCode") } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt index 1fd8db6c97a13b..fd69b93837c50b 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OpCredClientFragment.kt @@ -76,7 +76,7 @@ class OpCredClientFragment : Fragment() { inner class ChipControllerCallback : GenericChipDeviceListener() { override fun onConnectDeviceComplete() {} - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { Log.d(TAG, "onCommissioningComplete for nodeId $nodeId: $errorCode") } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OtaProviderClientFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OtaProviderClientFragment.kt index 5d2d62ee76a690..13caa7b50ea09a 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OtaProviderClientFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/OtaProviderClientFragment.kt @@ -682,7 +682,7 @@ class OtaProviderClientFragment : Fragment() { } inner class ChipControllerCallback : GenericChipDeviceListener() { - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { Log.d(TAG, "onCommissioningComplete for nodeId $nodeId: $errorCode") showMessage("Address update complete for nodeId $nodeId with code $errorCode") } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/WildcardFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/WildcardFragment.kt index 2ffbec50c746a2..f27aede35d19e8 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/WildcardFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/WildcardFragment.kt @@ -45,7 +45,7 @@ import matter.tlv.AnonymousTag import matter.tlv.TlvReader import matter.tlv.TlvWriter -class WildcardFragment : Fragment() { +class WildcardFragment : Fragment(), AddressUpdateFragment.ICDCheckInMessageCallback { private var _binding: WildcardFragmentBinding? = null private val binding get() = _binding!! @@ -63,6 +63,23 @@ class WildcardFragment : Fragment() { private val invokePath = ArrayList() private val subscribeIdList = ArrayList() + data class ReadICDConfig(val isFabricFiltered: Boolean, val eventMin: Long?) + + data class SubscribeICDConfig( + val minInterval: Int, + val maxInterval: Int, + val keepSubscriptions: Boolean, + val isFabricFiltered: Boolean, + val eventMin: Long? + ) + + data class WriteInvokeICDConfig(val timedRequestTimeoutMs: Int, val imTimeoutMs: Int) + + private var readICDConfig: ReadICDConfig? = null + private var subscribeICDConfig: SubscribeICDConfig? = null + private var writeICDConfig: WriteInvokeICDConfig? = null + private var invokeICDConfig: WriteInvokeICDConfig? = null + private val reportCallback = object : ReportCallback { override fun onError( @@ -157,7 +174,7 @@ class WildcardFragment : Fragment() { setVisibilityEachView(radioBtnId) } - binding.sendBtn.setOnClickListener { showDialog() } + binding.sendBtn.setOnClickListener { showDialog(isICDQueueBtn = false) } binding.shutdownSubscriptionBtn.setOnClickListener { showShutdownSubscriptionDialog() } @@ -166,6 +183,16 @@ class WildcardFragment : Fragment() { binding.addListBtn.setOnClickListener { addRequest() } binding.resetBtn.setOnClickListener { resetPath() } binding.writeInvokeresetBtn.setOnClickListener { resetPath() } + binding.icdQueueBtn.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + val isSetting = showDialog(isICDQueueBtn = true) + if (!isSetting) { + binding.icdQueueBtn.isChecked = false + } + } else { + resetICDConfig() + } + } addressUpdateFragment = childFragmentManager.findFragmentById(R.id.addressUpdateFragment) as AddressUpdateFragment @@ -173,6 +200,52 @@ class WildcardFragment : Fragment() { return binding.root } + override fun onResume() { + super.onResume() + addressUpdateFragment.setNotifyCheckInMessageCallback(this) + } + + override fun onPause() { + addressUpdateFragment.setNotifyCheckInMessageCallback(null) + super.onPause() + } + + override fun notifyCheckInMessage() { + Log.d(TAG, "notifyCheckInMessage") + scope.launch { + if (attributePath.isNotEmpty() || eventPath.isNotEmpty()) { + if (binding.readRadioBtn.isChecked && readICDConfig != null) { + read(readICDConfig!!.isFabricFiltered, readICDConfig!!.eventMin) + } else if (binding.subscribeRadioBtn.isChecked && subscribeICDConfig != null) { + subscribe( + subscribeICDConfig!!.minInterval, + subscribeICDConfig!!.maxInterval, + subscribeICDConfig!!.keepSubscriptions, + subscribeICDConfig!!.isFabricFiltered, + subscribeICDConfig!!.eventMin + ) + } + } else if ( + binding.writeRadioBtn.isChecked && writePath.isNotEmpty() && writeICDConfig != null + ) { + write(writeICDConfig!!.timedRequestTimeoutMs, writeICDConfig!!.imTimeoutMs) + } else if ( + binding.invokeRadioBtn.isChecked && invokePath.isNotEmpty() && invokeICDConfig != null + ) { + invoke(invokeICDConfig!!.timedRequestTimeoutMs, invokeICDConfig!!.imTimeoutMs) + } + requireActivity().runOnUiThread { binding.icdQueueBtn.isChecked = false } + resetICDConfig() + } + } + + private fun resetICDConfig() { + readICDConfig = null + subscribeICDConfig = null + writeICDConfig = null + invokeICDConfig = null + } + private fun setVisibilityEachView(radioBtnId: Int) { val readBtnOn = (radioBtnId == R.id.readRadioBtn) val subscribeBtnOn = (radioBtnId == R.id.subscribeRadioBtn) @@ -205,16 +278,20 @@ class WildcardFragment : Fragment() { resetPath() } - private fun showDialog() { + private fun showDialog(isICDQueueBtn: Boolean): Boolean { + var ret = false if (binding.readRadioBtn.isChecked) { - showReadDialog() + ret = showReadDialog(isICDQueueBtn) } else if (binding.subscribeRadioBtn.isChecked) { - showSubscribeDialog() + ret = showSubscribeDialog(isICDQueueBtn) } else if (binding.writeRadioBtn.isChecked) { - showWriteDialog() + showWriteDialog(isICDQueueBtn) + ret = true } else if (binding.invokeRadioBtn.isChecked) { - showInvokeDialog() + showInvokeDialog(isICDQueueBtn) + ret = true } + return ret } private fun addRequest() { @@ -491,7 +568,7 @@ class WildcardFragment : Fragment() { ) } - private fun showReadDialog() { + private fun showReadDialog(isICDQueueBtn: Boolean): Boolean { if (attributePath.isEmpty() && eventPath.isEmpty()) { requireActivity().runOnUiThread { Toast.makeText( @@ -501,7 +578,7 @@ class WildcardFragment : Fragment() { ) .show() } - return + return false } val dialogView = requireActivity().layoutInflater.inflate(R.layout.read_dialog, null) val eventMinEd = dialogView.findViewById(R.id.eventMinEd) @@ -520,14 +597,20 @@ class WildcardFragment : Fragment() { if (eventPath.isNotEmpty() && eventMinEd.text.isNotBlank()) { eventMin = eventMinEd.text.toString().toULong().toLong() } - read(isFabricFilteredEd.selectedItem.toString().toBoolean(), eventMin) + if (isICDQueueBtn) { + readICDConfig = + ReadICDConfig(isFabricFilteredEd.selectedItem.toString().toBoolean(), eventMin) + } else { + read(isFabricFilteredEd.selectedItem.toString().toBoolean(), eventMin) + } requireActivity().runOnUiThread { dialog.dismiss() } } } dialog.show() + return true } - private fun showWriteDialog() { + private fun showWriteDialog(isICDQueueBtn: Boolean) { binding.outputTv.text = "" val dialogView = requireActivity().layoutInflater.inflate(R.layout.write_dialog, null) val dialog = AlertDialog.Builder(requireContext()).apply { setView(dialogView) }.create() @@ -537,25 +620,30 @@ class WildcardFragment : Fragment() { dialogView.findViewById(R.id.timedRequestTimeoutEd).text.toString() val imTimeout = dialogView.findViewById(R.id.imTimeoutEd).text.toString() scope.launch { - write( + val timedRequestTimeoutInt = if (timedRequestTimeoutMs.isEmpty()) { 0 } else { timedRequestTimeoutMs.toInt() - }, + } + val imTimeoutInt = if (imTimeout.isEmpty()) { 0 } else { imTimeout.toInt() } - ) + if (isICDQueueBtn) { + writeICDConfig = WriteInvokeICDConfig(timedRequestTimeoutInt, imTimeoutInt) + } else { + write(timedRequestTimeoutInt, imTimeoutInt) + } requireActivity().runOnUiThread { dialog.dismiss() } } } dialog.show() } - private fun showSubscribeDialog() { + private fun showSubscribeDialog(isICDQueueBtn: Boolean): Boolean { if (attributePath.isEmpty() && eventPath.isEmpty()) { requireActivity().runOnUiThread { Toast.makeText( @@ -565,7 +653,7 @@ class WildcardFragment : Fragment() { ) .show() } - return + return false } val dialogView = requireActivity().layoutInflater.inflate(R.layout.subscribe_dialog, null) val eventMinEd = dialogView.findViewById(R.id.eventMinEd) @@ -588,13 +676,24 @@ class WildcardFragment : Fragment() { if (eventPath.isNotEmpty() && eventMinEd.text.isNotBlank()) { eventMin = eventMinEd.text.toString().toULong().toLong() } - subscribe( - minIntervalEd.text.toString().toInt(), - maxIntervalEd.text.toString().toInt(), - keepSubscriptionsSp.selectedItem.toString().toBoolean(), - isFabricFilteredSp.selectedItem.toString().toBoolean(), - eventMin, - ) + if (isICDQueueBtn) { + subscribeICDConfig = + SubscribeICDConfig( + minIntervalEd.text.toString().toInt(), + maxIntervalEd.text.toString().toInt(), + keepSubscriptionsSp.selectedItem.toString().toBoolean(), + isFabricFilteredSp.selectedItem.toString().toBoolean(), + eventMin + ) + } else { + subscribe( + minIntervalEd.text.toString().toInt(), + maxIntervalEd.text.toString().toInt(), + keepSubscriptionsSp.selectedItem.toString().toBoolean(), + isFabricFilteredSp.selectedItem.toString().toBoolean(), + eventMin + ) + } } else { Log.e(TAG, "minInterval or maxInterval is empty!") } @@ -602,9 +701,10 @@ class WildcardFragment : Fragment() { } } dialog.show() + return true } - private fun showInvokeDialog() { + private fun showInvokeDialog(isICDQueueBtn: Boolean) { binding.outputTv.text = "" val dialogView = requireActivity().layoutInflater.inflate(R.layout.invoke_dialog, null) val dialog = AlertDialog.Builder(requireContext()).apply { setView(dialogView) }.create() @@ -614,18 +714,23 @@ class WildcardFragment : Fragment() { dialogView.findViewById(R.id.timedRequestTimeoutEd).text.toString() val imTimeout = dialogView.findViewById(R.id.imTimeoutEd).text.toString() scope.launch { - invoke( + val timedRequestTimeoutInt = if (timedRequestTimeoutMs.isEmpty()) { 0 } else { timedRequestTimeoutMs.toInt() - }, + } + val imTimeoutInt = if (imTimeout.isEmpty()) { 0 } else { imTimeout.toInt() } - ) + if (isICDQueueBtn) { + invokeICDConfig = WriteInvokeICDConfig(timedRequestTimeoutInt, imTimeoutInt) + } else { + invoke(timedRequestTimeoutInt, imTimeoutInt) + } requireActivity().runOnUiThread { dialog.dismiss() } } } diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt index aa3488248b81a3..97b2576827079a 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/DeviceProvisioningFragment.kt @@ -104,7 +104,7 @@ class DeviceProvisioningFragment : Fragment() { override fun onDeviceAttestationCompleted( devicePtr: Long, attestationInfo: AttestationInfo, - errorCode: Int + errorCode: Long ) {} } @@ -249,10 +249,10 @@ class DeviceProvisioningFragment : Fragment() { Log.d(TAG, "Pairing status update: $status") } - override fun onCommissioningComplete(nodeId: Long, errorCode: Int) { + override fun onCommissioningComplete(nodeId: Long, errorCode: Long) { if (errorCode == STATUS_PAIRING_SUCCESS) { FragmentUtil.getHost(this@DeviceProvisioningFragment, Callback::class.java) - ?.onCommissioningComplete(0, nodeId) + ?.onCommissioningComplete(0L, nodeId) } else { showMessage(R.string.rendezvous_over_ble_pairing_failure_text) FragmentUtil.getHost(this@DeviceProvisioningFragment, Callback::class.java) @@ -260,7 +260,7 @@ class DeviceProvisioningFragment : Fragment() { } } - override fun onPairingComplete(code: Int) { + override fun onPairingComplete(code: Long) { Log.d(TAG, "onPairingComplete: $code") if (code != STATUS_PAIRING_SUCCESS) { @@ -274,7 +274,7 @@ class DeviceProvisioningFragment : Fragment() { Log.d(TAG, String(csr)) } - override fun onPairingDeleted(code: Int) { + override fun onPairingDeleted(code: Long) { Log.d(TAG, "onPairingDeleted: $code") } @@ -293,7 +293,7 @@ class DeviceProvisioningFragment : Fragment() { ) } - override fun onICDRegistrationComplete(errorCode: Int, icdDeviceInfo: ICDDeviceInfo) { + override fun onICDRegistrationComplete(errorCode: Long, icdDeviceInfo: ICDDeviceInfo) { Log.d( TAG, "onICDRegistrationComplete - errorCode: $errorCode, symmetricKey : ${icdDeviceInfo.symmetricKey.toHex()}, icdDeviceInfo : $icdDeviceInfo" @@ -303,7 +303,11 @@ class DeviceProvisioningFragment : Fragment() { requireActivity(), getString( R.string.icd_registration_completed, - icdDeviceInfo.userActiveModeTriggerHint.toString() + icdDeviceInfo.userActiveModeTriggerHint.toString(), + icdDeviceInfo.userActiveModeTriggerInstruction, + icdDeviceInfo.idleModeDuration.toString(), + icdDeviceInfo.activeModeDuration.toString(), + icdDeviceInfo.activeModeThreshold.toString() ), Toast.LENGTH_LONG ) @@ -318,14 +322,14 @@ class DeviceProvisioningFragment : Fragment() { /** Callback from [DeviceProvisioningFragment] notifying any registered listeners. */ interface Callback { /** Notifies that commissioning has been completed. */ - fun onCommissioningComplete(code: Int, nodeId: Long = 0L) + fun onCommissioningComplete(code: Long, nodeId: Long = 0L) } companion object { private const val TAG = "DeviceProvisioningFragment" private const val ARG_DEVICE_INFO = "device_info" private const val ARG_NETWORK_CREDENTIALS = "network_credentials" - private const val STATUS_PAIRING_SUCCESS = 0 + private const val STATUS_PAIRING_SUCCESS = 0L /** * Set for the fail-safe timer before onDeviceAttestationFailed is invoked. diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/UnpairDeviceFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/UnpairDeviceFragment.kt index f01e43d85fc174..585386dca7eda9 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/UnpairDeviceFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/UnpairDeviceFragment.kt @@ -8,11 +8,13 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import chip.devicecontroller.ChipDeviceController +import chip.devicecontroller.ChipICDClient import chip.devicecontroller.UnpairDeviceCallback import com.google.chip.chiptool.ChipClient import com.google.chip.chiptool.R import com.google.chip.chiptool.clusterclient.AddressUpdateFragment import com.google.chip.chiptool.databinding.UnpairDeviceFragmentBinding +import com.google.chip.chiptool.util.DeviceIdUtil import kotlinx.coroutines.* class UnpairDeviceFragment : Fragment() { @@ -63,6 +65,18 @@ class UnpairDeviceFragment : Fragment() { addressUpdateFragment.deviceId, ChipUnpairDeviceCallback() ) + + // Remove ICD Client info + if (addressUpdateFragment.isICDDevice()) { + ChipICDClient.clearICDClientInfo(deviceController.fabricIndex, addressUpdateFragment.deviceId) + + Log.d(TAG, "ICDClientInfo : ${ChipICDClient.getICDClientInfo(deviceController.fabricIndex)}") + } + requireActivity().runOnUiThread { + Log.d(TAG, "remove : ${addressUpdateFragment.deviceId}") + DeviceIdUtil.removeCommissionedNodeId(requireContext(), addressUpdateFragment.deviceId) + addressUpdateFragment.updateDeviceIdSpinner() + } } companion object { diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt index b2b27ee31da900..411f51eae3de73 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceDetailsFragment.kt @@ -18,7 +18,12 @@ package com.google.chip.chiptool.setuppayloadscanner +import android.content.Intent +import android.net.Uri import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -27,6 +32,10 @@ import androidx.fragment.app.Fragment import com.google.chip.chiptool.R import com.google.chip.chiptool.databinding.ChipDeviceInfoFragmentBinding import com.google.chip.chiptool.util.FragmentUtil +import java.net.URLEncoder +import matter.onboardingpayload.OnboardingPayload +import matter.onboardingpayload.OnboardingPayloadException +import matter.onboardingpayload.QRCodeOnboardingPayloadGenerator /** Show the [CHIPDeviceInfo]. */ class CHIPDeviceDetailsFragment : Fragment() { @@ -35,6 +44,8 @@ class CHIPDeviceDetailsFragment : Fragment() { private val binding get() = _binding!! + private lateinit var onBoardingPayload: OnboardingPayload + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -43,18 +54,13 @@ class CHIPDeviceDetailsFragment : Fragment() { _binding = ChipDeviceInfoFragmentBinding.inflate(inflater, container, false) deviceInfo = checkNotNull(requireArguments().getParcelable(ARG_DEVICE_INFO)) - binding.versionTv.text = "${deviceInfo.version}" - binding.vendorIdTv.text = "${deviceInfo.vendorId}" - binding.productIdTv.text = "${deviceInfo.productId}" - binding.setupCodeTv.text = "${deviceInfo.setupPinCode}" - binding.discriminatorTv.text = "${deviceInfo.discriminator}" - binding.discoveryCapabilitiesTv.text = - requireContext() - .getString( - R.string.chip_device_info_discovery_capabilities_text, - deviceInfo.discoveryCapabilities - ) - + binding.versionEd.setText(deviceInfo.version.toString()) + binding.vendorIdEd.setText(deviceInfo.vendorId.toString()) + binding.productIdEd.setText(deviceInfo.productId.toString()) + binding.setupCodeEd.setText(deviceInfo.setupPinCode.toString()) + binding.discriminatorEd.setText(deviceInfo.discriminator.toString()) + binding.serialNumberEd.setText(deviceInfo.serialNumber) + binding.discoveryCapabilitiesTv.text = "${deviceInfo.discoveryCapabilities}" if (deviceInfo.optionalQrCodeInfoMap.isEmpty()) { binding.vendorTagsLabelTv.visibility = View.GONE binding.vendorTagsContainer.visibility = View.GONE @@ -70,7 +76,7 @@ class CHIPDeviceDetailsFragment : Fragment() { } } - binding.commissioningFlowTv.text = "${deviceInfo.commissioningFlow}" + binding.commissioningFlowEd.setText(deviceInfo.commissioningFlow.toString()) // commissioningFlow = 2 (Custom), read device info from Ledger if (deviceInfo.commissioningFlow == 2) { @@ -81,9 +87,74 @@ class CHIPDeviceDetailsFragment : Fragment() { } } + onBoardingPayload = deviceInfo.toSetupPayload() + binding.qrCodeTv.text = + QRCodeOnboardingPayloadGenerator(onBoardingPayload) + .payloadBase38RepresentationWithAutoTLVBuffer() + + setDiscoveryCapabilitiesEditTextListener() + setQRCodeButtonListener() + return binding.root } + private fun setDiscoveryCapabilitiesEditTextListener() { + binding.discoveryCapabilitiesEd.setText(onBoardingPayload.getRendezvousInformation().toString()) + binding.discoveryCapabilitiesEd.addTextChangedListener( + object : TextWatcher { + override fun onTextChanged(value: CharSequence?, p1: Int, p2: Int, p3: Int) { + if (value.isNullOrEmpty()) { + return + } + onBoardingPayload.setRendezvousInformation(value.toString().toLong()) + binding.discoveryCapabilitiesTv.text = "${onBoardingPayload.discoveryCapabilities}" + } + + override fun afterTextChanged(p0: Editable?) { + // no_op + } + + override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + // no_op + } + } + ) + } + + private fun setQRCodeButtonListener() { + binding.showQRCodeBtn.setOnClickListener { + onBoardingPayload.apply { + version = binding.versionEd.text.toString().toInt() + vendorId = binding.vendorIdEd.text.toString().toInt() + productId = binding.productIdEd.text.toString().toInt() + commissioningFlow = binding.commissioningFlowEd.text.toString().toInt() + setupPinCode = binding.setupCodeEd.text.toString().toLong() + discriminator = binding.discriminatorEd.text.toString().toInt() + val serialNumber = binding.serialNumberEd.text.toString() + try { + removeSerialNumber() + } catch (e: OnboardingPayloadException) { + Log.d(TAG, "Serial Number not set!", e) + } + if (serialNumber.isNotEmpty()) { + addSerialNumber(binding.serialNumberEd.text.toString()) + } + } + val qrCode = + QRCodeOnboardingPayloadGenerator(onBoardingPayload) + .payloadBase38RepresentationWithAutoTLVBuffer() + Log.d(TAG, "QR Code : $qrCode") + binding.qrCodeTv.text = qrCode + } + + binding.showQRCodeUriBtn.setOnClickListener { + val qrCodeEncode = URLEncoder.encode(binding.qrCodeTv.text.toString(), "UTF-8") + val qrCodeUri = getString(R.string.chip_device_info_qrcode_uri, qrCodeEncode) + val intent = Intent(Intent.ACTION_VIEW, Uri.parse(qrCodeUri)) + startActivity(intent) + } + } + override fun onDestroyView() { super.onDestroyView() _binding = null @@ -96,6 +167,7 @@ class CHIPDeviceDetailsFragment : Fragment() { } companion object { + private const val TAG = "CHIPDeviceDetailsFragment" private const val ARG_DEVICE_INFO = "device_info" @JvmStatic diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceInfo.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceInfo.kt index d8fb51bbb3d844..b2afd8a9985474 100644 --- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceInfo.kt +++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/setuppayloadscanner/CHIPDeviceInfo.kt @@ -19,9 +19,12 @@ package com.google.chip.chiptool.setuppayloadscanner import android.os.Parcelable +import android.util.Log import kotlinx.parcelize.Parcelize import matter.onboardingpayload.DiscoveryCapability import matter.onboardingpayload.OnboardingPayload +import matter.onboardingpayload.OnboardingPayloadException +import matter.onboardingpayload.OptionalQRCodeInfoType /** Class to hold the CHIP device information. */ @Parcelize @@ -35,12 +38,47 @@ data class CHIPDeviceInfo( val optionalQrCodeInfoMap: Map = mapOf(), val discoveryCapabilities: MutableSet = mutableSetOf(), val isShortDiscriminator: Boolean = false, + val serialNumber: String = "", val ipAddress: String? = null, val port: Int = 5540 ) : Parcelable { + fun toSetupPayload(): OnboardingPayload { + val onboardingPayload = + OnboardingPayload( + version, + vendorId, + productId, + commissioningFlow, + discoveryCapabilities, + discriminator, + isShortDiscriminator, + setupPinCode + ) + if (serialNumber.isNotEmpty()) { + onboardingPayload.addSerialNumber(serialNumber) + } + optionalQrCodeInfoMap.forEach { (_, info) -> + if (info.type == OptionalQRCodeInfoType.TYPE_STRING && info.data != null) { + onboardingPayload.addOptionalVendorData(info.tag, info.data) + } else { + onboardingPayload.addOptionalVendorData(info.tag, info.intDataValue) + } + } + return onboardingPayload + } + companion object { + private const val TAG = "CHIPDeviceInfo" + fun fromSetupPayload(setupPayload: OnboardingPayload): CHIPDeviceInfo { + val serialNumber = + try { + setupPayload.getSerialNumber() + } catch (e: OnboardingPayloadException) { + Log.d(TAG, "serialNumber Exception", e) + "" + } return CHIPDeviceInfo( setupPayload.version, setupPayload.vendorId, @@ -48,11 +86,12 @@ data class CHIPDeviceInfo( setupPayload.getLongDiscriminatorValue(), setupPayload.setupPinCode, setupPayload.commissioningFlow, - setupPayload.optionalQRCodeInfo.mapValues { (_, info) -> - QrCodeInfo(info.tag, info.type, info.data, info.int32) + setupPayload.getAllOptionalVendorData().associate { info -> + info.tag to QrCodeInfo(info.tag, info.type, info.data, info.int32) }, setupPayload.discoveryCapabilities, - setupPayload.hasShortDiscriminator + setupPayload.hasShortDiscriminator, + serialNumber ) } } diff --git a/examples/android/CHIPTool/app/src/main/res/layout/address_update_fragment.xml b/examples/android/CHIPTool/app/src/main/res/layout/address_update_fragment.xml index c7883536078439..f206db45b62e29 100644 --- a/examples/android/CHIPTool/app/src/main/res/layout/address_update_fragment.xml +++ b/examples/android/CHIPTool/app/src/main/res/layout/address_update_fragment.xml @@ -9,20 +9,24 @@ android:id="@+id/fabricIdEd" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="20sp" + android:textSize="16sp" android:hint="@string/enter_fabric_id_hint_text" - android:inputType="number" + android:digits="0123456789ABCDEF" + android:inputType="textCapCharacters" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintRight_toLeftOf="@+id/deviceIdEd"/> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintRight_toLeftOf="@id/deviceIdEd"/> - + + + + + + + + + + + \ No newline at end of file diff --git a/examples/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml b/examples/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml index 6e326a65008edb..a1deab648adc9f 100644 --- a/examples/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml +++ b/examples/android/CHIPTool/app/src/main/res/layout/chip_device_info_fragment.xml @@ -1,5 +1,6 @@ @@ -26,16 +27,18 @@ android:layout_below="@id/titleTv" android:layout_alignParentStart="true" android:textSize="20sp"/> - + android:textSize="11sp" + android:autofillHints="@string/chip_device_info_version_label" + android:inputType="number" + tools:ignore="LabelFor" /> - + android:textSize="11sp" + android:autofillHints="@string/chip_device_info_vendor_id_label" + android:inputType="number" + tools:ignore="LabelFor" /> - + android:textSize="11sp" + android:autofillHints="@string/chip_device_info_product_id_label" + android:inputType="number" + tools:ignore="LabelFor" /> - + android:textSize="11sp" + android:autofillHints="@string/chip_device_info_discriminator_label" + android:inputType="number" + tools:ignore="LabelFor" /> - + android:textSize="11sp" + android:autofillHints="@string/chip_device_info_setup_code_label" + android:inputType="number" + tools:ignore="LabelFor" /> + + - + + +