# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name:
    4.1.2. [TC-CADMIN-1.2] Administrator Behavior using BCM [DUT - Commissioner]

PICS:
    - CADMIN.C
    - CADMIN.C.C01.Tx

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label: "Note"
      verification: |
          For DUT as comissioner  test cases, Chip-tool command used below are an example to verify the functionality. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label: "Precondition"
      verification: |
          Reset Devices to factory defaults
      disabled: true

    - label: "TH_CR1 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          "1. Provision the TH_CE (all-cluster-app) device using TH_CR1 (chip-tool ) on the raspi"
      disabled: true

    - label:
          "TH_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM
          (Basic Commissioning Method)"
      PICS: CADMIN.C.C01.Tx
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On TH_CR1 send the below command

          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 1 0 --timedInteractionTimeoutMs 1000

          Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log

          [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
          [1660901022.112389][3045:3045] CHIP:ZCL: Commissioning window is now open
          [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
      disabled: true

    - label: "TH_CR1 sends command to TH_CE to read the list of Fabrics"
      PICS: OPCREDS.C.A0001
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On TH_CR1 send the below command

          ./chip-tool operationalcredentials read fabrics 1 0 --fabric-filtered 0


          Verify TH_CE reports 1 entry in fabrics list


          [1661486369.837260][7071:7071] CHIP:DMG:                 AttributeReportIB =
          [1661486369.837292][7071:7071] CHIP:DMG:                 {
          [1661486369.837317][7071:7071] CHIP:DMG:                         AttributeDataIB =
          [1661486369.837343][7071:7071] CHIP:DMG:                         {
          [1661486369.837371][7071:7071] CHIP:DMG:                                 DataVersion = 0x8d915768,
          [1661486369.837398][7071:7071] CHIP:DMG:                                 AttributePathIB =
          [1661486369.837426][7071:7071] CHIP:DMG:                                 {
          [1661486369.837455][7071:7071] CHIP:DMG:                                         Endpoint = 0x0,
          [1661486369.837485][7071:7071] CHIP:DMG:                                         Cluster = 0x3e,
          [1661486369.837515][7071:7071] CHIP:DMG:                                         Attribute = 0x0000_0001,
          [1661486369.837544][7071:7071] CHIP:DMG:                                         ListIndex = Null,
          [1661486369.837572][7071:7071] CHIP:DMG:                                 }
          [1661486369.837601][7071:7071] CHIP:DMG:
          [1661486369.837629][7071:7071] CHIP:DMG:                                 Data =
          [1661486369.837656][7071:7071] CHIP:DMG:                                 {
          [1661486369.837685][7071:7071] CHIP:DMG:                                         0x1 = [
          [1661486369.837731][7071:7071] CHIP:DMG:                                                         0x4, 0xb5, 0xc1, 0xfd, 0xdd, 0x6a, 0xdd, 0xc3, 0xa1, 0x3d, 0xee, 0x39, 0xa2, 0xe, 0x66, 0x7, 0xa2, 0x3a, 0x6d, 0x4a, 0x86, 0x57, 0x36, 0xf7, 0x1f, 0x20, 0x7c, 0x9d, 0xe8, 0x8, 0xa, 0xd5, 0xf2, 0x9c, 0x9d, 0x1b, 0x14, 0x5f, 0xbc, 0x60, 0xb9, 0xe7, 0xee, 0xb3, 0x4c, 0x2, 0xf4, 0x7b, 0x21, 0xdb, 0x74, 0x4e, 0xb1, 0x65, 0x22, 0xd3, 0xe0, 0x32, 0xbd, 0xbe, 0xde, 0x43, 0xfe, 0x26, 0xd6,
          [1661486369.837769][7071:7071] CHIP:DMG:                                         ] (65 bytes)
          [1661486369.837799][7071:7071] CHIP:DMG:                                         0x2 = 65521,
          [1661486369.837830][7071:7071] CHIP:DMG:                                         0x3 = 1,
          [1661486369.837861][7071:7071] CHIP:DMG:                                         0x4 = 1,
          [1661486369.837893][7071:7071] CHIP:DMG:                                         0x5 = "" (0 chars),
          [1661486369.837923][7071:7071] CHIP:DMG:                                         0xfe = 1,
          [1661486369.837953][7071:7071] CHIP:DMG:                                 },
          [1661486369.837979][7071:7071] CHIP:DMG:                         },
          [1661486369.838010][7071:7071] CHIP:DMG:
          [1661486369.838034][7071:7071] CHIP:DMG:                 },
          [1661486369.838064][7071:7071] CHIP:DMG:
          [1661486369.838084][7071:7071] CHIP:DMG:         ],
          [1661486369.838116][7071:7071] CHIP:DMG:
      disabled: true

    - label: "DUT_CR2 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool pairing onnetwork 2 20202021 --commissioner-name beta

          Verify TH_CE logs for
          Commissioning completed successfully
      disabled: true

    - label: "Verify TH_CE is now discoverable over DNS-SD with two SRV Records"
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers


          On the raspi , Verify if the TH_CE(All-cluster-app) is broadcasting

          On TH_CR1 send the below command

          ubuntu@ubuntu:~/may10_cntrl2/connectedhomeip/examples/chip-tool/out/debug$ avahi-browse -rt _matter._tcp
          +   eth0 IPv6 E0AF53B23E580769-0000000000000002             _matter._tcp         local
          +   eth0 IPv6 7FF84D214A19B581-0000000000000001             _matter._tcp         local
          =   eth0 IPv6 E0AF53B23E580769-0000000000000002             _matter._tcp         local
             hostname = [E45F010F3BAF0000.local]
             address = [fe80::e65f:1ff:fe0f:3baf]
             port = [5540]
             txt = ["T=1" "CRA=300" "CRI=5000"]
          =   eth0 IPv6 7FF84D214A19B581-0000000000000001             _matter._tcp         local
             hostname = [E45F010F3BAF0000.local]
             address = [fe80::e65f:1ff:fe0f:3baf]
             port = [5540]
             txt = ["T=1" "CRA=300" "CRI=5000"]
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to write and read the Basic
          Information Clusters NodeLabel mandatory attribute"
      PICS: BINFO.C.A0005
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool basic write  node-label te5new 2 0 --commissioner-name beta

          On TH2(all-clusters-app) Log

          Verify Write request on TH_CE(all-clusters-app) Log

          [1660894021.901330][2871:2871] CHIP:EM: Handling via exchange: 9616r, Delegate: 0xaaaada21ffc0
          [1660894021.901426][2871:2871] CHIP:IM: Received Write request
          [1660894021.901484][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
          [1660894021.901613][2871:2871] CHIP:DMG: WriteRequestMessage =
          [1660894021.901676][2871:2871] CHIP:DMG: {
          [1660894021.901735][2871:2871] CHIP:DMG:         suppressResponse = false,
          [1660894021.901802][2871:2871] CHIP:DMG:         timedRequest = false,
          [1660894021.901864][2871:2871] CHIP:DMG:         AttributeDataIBs =
          [1660894021.901940][2871:2871] CHIP:DMG:         [
          [1660894021.902001][2871:2871] CHIP:DMG:                 AttributeDataIB =
          [1660894021.902071][2871:2871] CHIP:DMG:                 {
          [1660894021.902136][2871:2871] CHIP:DMG:                         AttributePathIB =
          [1660894021.902219][2871:2871] CHIP:DMG:                         {
          [1660894021.902302][2871:2871] CHIP:DMG:                                 Endpoint = 0x0,


          ./chip-tool basic read node-label 2 0 --commissioner-name beta

          Verify read request on TH_CE(all-clusters-app) Log


          [1660894142.828718][2871:2871] CHIP:EM: Handling via exchange: 62454r, Delegate: 0xaaaada21ffc0
          [1660894142.828834][2871:2871] CHIP:IM: Received Read request
          [1660894142.829023][2871:2871] CHIP:DMG: ReadRequestMessage =
          [1660894142.829097][2871:2871] CHIP:DMG: {
          [1660894142.829153][2871:2871] CHIP:DMG:         AttributePathIBs =
          [1660894142.829235][2871:2871] CHIP:DMG:         [
          [1660894142.829306][2871:2871] CHIP:DMG:                 AttributePathIB =
          [1660894142.829376][2871:2871] CHIP:DMG:                 {
          [1660894142.829449][2871:2871] CHIP:DMG:                         Endpoint = 0x0,
          [1660894142.829532][2871:2871] CHIP:DMG:                         Cluster = 0x28,
          [1660894142.829627][2871:2871] CHIP:DMG:                         Attribute = 0x0000_0005,
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to read the list of Fabrics on TH_CE"
      PICS: OPCREDS.C.A0001
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool operationalcredentials read fabrics 2 0 --fabric-filtered 0 --commissioner-name beta

          Verify 2 entries in TH_CE log


          [1661481567.477399][6453:6453] CHIP:DMG:                 AttributeReportIB =
          [1661481567.477428][6453:6453] CHIP:DMG:                 {
          [1661481567.477450][6453:6453] CHIP:DMG:                         AttributeDataIB =
          [1661481567.477475][6453:6453] CHIP:DMG:                         {
          [1661481567.477503][6453:6453] CHIP:DMG:                                 DataVersion = 0x482f8cf0,
          [1661481567.477530][6453:6453] CHIP:DMG:                                 AttributePathIB =
          [1661481567.477558][6453:6453] CHIP:DMG:                                 {
          [1661481567.477586][6453:6453] CHIP:DMG:                                         Endpoint = 0x0,
          [1661481567.477616][6453:6453] CHIP:DMG:                                         Cluster = 0x3e,
          [1661481567.477649][6453:6453] CHIP:DMG:                                         Attribute = 0x0000_0001,
          [1661481567.477678][6453:6453] CHIP:DMG:                                         ListIndex = Null,
          [1661481567.477706][6453:6453] CHIP:DMG:                                 }
          [1661481567.477735][6453:6453] CHIP:DMG:
          [1661481567.477762][6453:6453] CHIP:DMG:                                 Data =
          [1661481567.477791][6453:6453] CHIP:DMG:                                 {
          [1661481567.477823][6453:6453] CHIP:DMG:                                         0x1 = [
          [1661481567.477871][6453:6453] CHIP:DMG:                                                         0x4, 0xb5, 0xc1, 0xfd, 0xdd, 0x6a, 0xdd, 0xc3, 0xa1, 0x3d, 0xee, 0x39, 0xa2, 0xe, 0x66, 0x7, 0xa2, 0x3a, 0x6d, 0x4a, 0x86, 0x57, 0x36, 0xf7, 0x1f, 0x20, 0x7c, 0x9d, 0xe8, 0x8, 0xa, 0xd5, 0xf2, 0x9c, 0x9d, 0x1b, 0x14, 0x5f, 0xbc, 0x60, 0xb9, 0xe7, 0xee, 0xb3, 0x4c, 0x2, 0xf4, 0x7b, 0x21, 0xdb, 0x74, 0x4e, 0xb1, 0x65, 0x22, 0xd3, 0xe0, 0x32, 0xbd, 0xbe, 0xde, 0x43, 0xfe, 0x26, 0xd6,
          [1661481567.477909][6453:6453] CHIP:DMG:                                         ] (65 bytes)
          [1661481567.477942][6453:6453] CHIP:DMG:                                         0x2 = 65521,
          [1661481567.477974][6453:6453] CHIP:DMG:                                         0x3 = 1,
          [1661481567.478007][6453:6453] CHIP:DMG:                                         0x4 = 1,
          [1661481567.478096][6453:6453] CHIP:DMG:                                         0x5 = "" (0 chars),
          [1661481567.478129][6453:6453] CHIP:DMG:                                         0xfe = 1,
          [1661481567.478160][6453:6453] CHIP:DMG:                                 },
          [1661481567.478187][6453:6453] CHIP:DMG:                         },
          [1661481567.478217][6453:6453] CHIP:DMG:
          [1661481567.478241][6453:6453] CHIP:DMG:                 },
          [1661481567.478278][6453:6453] CHIP:DMG:
          [1661481567.478298][6453:6453] CHIP:DMG:                 AttributeReportIB =
          [1661481567.478330][6453:6453] CHIP:DMG:                 {
          [1661481567.478354][6453:6453] CHIP:DMG:                         AttributeDataIB =
          [1661481567.478380][6453:6453] CHIP:DMG:                         {
          [1661481567.478406][6453:6453] CHIP:DMG:                                 DataVersion = 0x482f8cf0,
          [1661481567.478433][6453:6453] CHIP:DMG:                                 AttributePathIB =
          [1661481567.478461][6453:6453] CHIP:DMG:                                 {
          [1661481567.478489][6453:6453] CHIP:DMG:                                         Endpoint = 0x0,
          [1661481567.478522][6453:6453] CHIP:DMG:                                         Cluster = 0x3e,
          [1661481567.478554][6453:6453] CHIP:DMG:                                         Attribute = 0x0000_0001,
          [1661481567.478584][6453:6453] CHIP:DMG:                                         ListIndex = Null,
          [1661481567.478612][6453:6453] CHIP:DMG:                                 }
          [1661481567.478643][6453:6453] CHIP:DMG:
          [1661481567.478672][6453:6453] CHIP:DMG:                                 Data =
          [1661481567.478702][6453:6453] CHIP:DMG:                                 {
          [1661481567.478732][6453:6453] CHIP:DMG:                                         0x1 = [
          [1661481567.478777][6453:6453] CHIP:DMG:                                                         0x4, 0x7b, 0x5b, 0x9a, 0x2a, 0xd1, 0x4e, 0x1e, 0x8d, 0xf4, 0xca, 0xea, 0xde, 0x1c, 0xbe, 0xa7, 0xf6, 0xd4, 0xa1, 0xe8, 0xf0, 0x20, 0x9f, 0x6c, 0x38, 0x30, 0x31, 0x88, 0xb5, 0x89, 0x69, 0xd4, 0x7, 0x17, 0x16, 0x85, 0x25, 0x55, 0x8f, 0x5b, 0xed, 0x58, 0x68, 0x27, 0xde, 0x5e, 0xf6, 0xf9, 0xf8, 0x99, 0x54, 0x92, 0x8e, 0x33, 0xa6, 0xf4, 0xb0, 0x5a, 0xc1, 0xa6, 0x1a, 0xf5, 0x2, 0xb4, 0x4f,
          [1661481567.478815][6453:6453] CHIP:DMG:                                         ] (65 bytes)
          [1661481567.478848][6453:6453] CHIP:DMG:                                         0x2 = 65521,
          [1661481567.478877][6453:6453] CHIP:DMG:                                         0x3 = 2,
          [1661481567.478907][6453:6453] CHIP:DMG:                                         0x4 = 1,
          [1661481567.478938][6453:6453] CHIP:DMG:                                         0x5 = "" (0 chars),
          [1661481567.478968][6453:6453] CHIP:DMG:                                         0xfe = 2,
          [1661481567.478999][6453:6453] CHIP:DMG:                                 },
          [1661481567.479026][6453:6453] CHIP:DMG:                         },
          [1661481567.479056][6453:6453] CHIP:DMG:
          [1661481567.479079][6453:6453] CHIP:DMG:                 },
          [1661481567.479107][6453:6453] CHIP:DMG:
      disabled: true

    - label:
          "TH_CR1 sends command to TH_CE to write and read the Basic Information
          Clusters NodeLabel mandatory attribute"
      PICS: BINFO.C.A0005
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers


          ./chip-tool basic write node-label te8 1 0

          Verify the Write request On TH_CE(all-clusters-app) Log


          [1660894538.804578][2871:2871] CHIP:EM: Handling via exchange: 64932r, Delegate: 0xaaaada21ffc0
          [1660894538.804677][2871:2871] CHIP:IM: Received Write request
          [1660894538.804737][2871:2871] CHIP:DMG: IM WH moving to [Initialized]
          [1660894538.804867][2871:2871] CHIP:DMG: WriteRequestMessage =
          [1660894538.804933][2871:2871] CHIP:DMG: {
          [1660894538.804993][2871:2871] CHIP:DMG:         suppressResponse = false,
          [1660894538.805059][2871:2871] CHIP:DMG:         timedRequest = false,
          [1660894538.805120][2871:2871] CHIP:DMG:         AttributeDataIBs =
          [1660894538.805196][2871:2871] CHIP:DMG:         [


          ./chip-tool basic read node-label 1 0

          Verify the Read request On TH_CE(all-clusters-app) Log

          [1660894686.511690][2871:2871] CHIP:EM: Received message of type 0x2 with protocolId (0, 1) and MessageCounter:155836021 on exchange 25703r
          [1660894686.511817][2871:2871] CHIP:EM: Handling via exchange: 25703r, Delegate: 0xaaaada21ffc0
          [1660894686.511920][2871:2871] CHIP:IM: Received Read request
          [1660894686.512190][2871:2871] CHIP:DMG: ReadRequestMessage =
          [1660894686.512259][2871:2871] CHIP:DMG: {
          [1660894686.512314][2871:2871] CHIP:DMG:         AttributePathIBs =
          [1660894686.512380][2871:2871] CHIP:DMG:         [
          [1660894686.512441][2871:2871] CHIP:DMG:                 AttributePathIB =
          [1660894686.512526][2871:2871] CHIP:DMG:                 {
          [1660894686.512599][2871:2871] CHIP:DMG:                         Endpoint = 0x0,
          [1660894686.512683][2871:2871] CHIP:DMG:                         Cluster = 0x28,
          [1660894686.512772][2871:2871] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1660894142.829703][2871:2871] CHIP:DMG:                 }
          [1660894142.829777][2871:2871] CHIP:DMG:
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to read, write and then read the Basic
          Information Clusters NodeLabel mandatory attribute"
      PICS: BINFO.C.A0005
      verification: |
          On DUT_CR2 read, write attribute and then read attribute to and from TH_CE

            Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command


          ./chip-tool basic read node-label 2 0 --commissioner-name beta

          Verify the Read request On TH_CE(all-clusters-app) Log

          [1660902253.379018][3045:3045] CHIP:EM: Handling via exchange: 3197r, Delegate: 0xaaaaadbeffc0
          [1660902253.379122][3045:3045] CHIP:IM: Received Read request
          [1660902253.379306][3045:3045] CHIP:DMG: ReadRequestMessage =
          [1660902253.379373][3045:3045] CHIP:DMG: {
          [1660902253.379430][3045:3045] CHIP:DMG:         AttributePathIBs =
          [1660902253.379496][3045:3045] CHIP:DMG:         [
          [1660902253.379557][3045:3045] CHIP:DMG:                 AttributePathIB =
          [1660902253.379634][3045:3045] CHIP:DMG:                 {
          [1660902253.379703][3045:3045] CHIP:DMG:                         Endpoint = 0x0,
          [1660902253.379782][3045:3045] CHIP:DMG:                         Cluster = 0x28,
          [1660902253.379871][3045:3045] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1660902253.379935][3045:3045] CHIP:DMG:                 }
          [1660902253.380141][3045:3045] CHIP:DMG:
          [1660902253.380208][3045:3045] CHIP:DMG:         ],



          ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta


          Verify the Write request On TH_CE(all-clusters-app) Log

          [1660902144.913634][3045:3045] CHIP:EM: Handling via exchange: 22257r, Delegate: 0xaaaaadbeffc0
          [1660902144.913728][3045:3045] CHIP:IM: Received Write request
          [1660902144.913785][3045:3045] CHIP:DMG: IM WH moving to [Initialized]
          [1660902144.913912][3045:3045] CHIP:DMG: WriteRequestMessage =
          [1660902144.913977][3045:3045] CHIP:DMG: {
          [1660902144.914038][3045:3045] CHIP:DMG:         suppressResponse = false,
          [1660902144.914106][3045:3045] CHIP:DMG:         timedRequest = false,
          [1660902144.914168][3045:3045] CHIP:DMG:         AttributeDataIBs =
          [1660902144.914244][3045:3045] CHIP:DMG:         [
          [1660902144.914305][3045:3045] CHIP:DMG:                 AttributeDataIB =
          [1660902144.914375][3045:3045] CHIP:DMG:                 {
          [1660902144.914440][3045:3045] CHIP:DMG:                         AttributePathIB =
          [1660902144.914522][3045:3045] CHIP:DMG:                         {
          [1660902144.914602][3045:3045] CHIP:DMG:                                 Endpoint = 0x0,
          [1660902144.914691][3045:3045] CHIP:DMG:                                 Cluster = 0x28,
          [1660902144.914940][3045:3045] CHIP:DMG:                                 Attribute = 0x0000_0005,
          [1660902144.915025][3045:3045] CHIP:DMG:                         }
          [1660902144.915109][3045:3045] CHIP:DMG:
          [1660902144.915208][3045:3045] CHIP:DMG:                         Data = "te5new" (6 chars),
          [1660902144.915292][3045:3045] CHIP:DMG:                 },
          [1660902144.915374][3045:3045] CHIP:DMG:



          ./chip-tool basic read node-label 2 0 --commissioner-name beta

          Verify the Read request On TH_CE(all-clusters-app) Log

          [1660902253.379018][3045:3045] CHIP:EM: Handling via exchange: 3197r, Delegate: 0xaaaaadbeffc0
          [1660902253.379122][3045:3045] CHIP:IM: Received Read request
          [1660902253.379306][3045:3045] CHIP:DMG: ReadRequestMessage =
          [1660902253.379373][3045:3045] CHIP:DMG: {
          [1660902253.379430][3045:3045] CHIP:DMG:         AttributePathIBs =
          [1660902253.379496][3045:3045] CHIP:DMG:         [
          [1660902253.379557][3045:3045] CHIP:DMG:                 AttributePathIB =
          [1660902253.379634][3045:3045] CHIP:DMG:                 {
          [1660902253.379703][3045:3045] CHIP:DMG:                         Endpoint = 0x0,
          [1660902253.379782][3045:3045] CHIP:DMG:                         Cluster = 0x28,
          [1660902253.379871][3045:3045] CHIP:DMG:                         Attribute = 0x0000_0005,
          [1660902253.379935][3045:3045] CHIP:DMG:                 }
          [1660902253.380141][3045:3045] CHIP:DMG:
          [1660902253.380208][3045:3045] CHIP:DMG:         ],
      disabled: true

    - label: "Turn off TH_CR1"
      verification: |
          No need to do anything as chip-tool process exits after each command
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM
          (Basic Commissioning Method)"
      PICS: CADMIN.C.C01.Tx
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000  --commissioner-name beta

          Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log

          [1660901022.112296][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
          [1660901022.112389][3045:3045] CHIP:ZCL: Commissioning window is now open
          [1660901022.112474][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to revoke the commissioning window
          using the Revoke Commissioning command"
      PICS: CADMIN.C.C02.Tx
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool administratorcommissioning revoke-commissioning 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta

          Verify the Commissioning window is closed in TH_CE(all-clusters-app) Log
          [1661485834.635244][6993:6993] CHIP:DIS: mDNS service published: _matter._tcp
          [1661485834.635293][6993:6993] CHIP:ZCL: Commissioning window is now closed
          [1661485834.635328][6993:6993] CHIP:DMG: Command handler moving to [ Preparing]
      disabled: true

    - label:
          "TH_CR3 attempts to execute a PASE to starts a commissioning process
          with TH_CE"
      PICS: CADMIN.C
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On TH_CR3 send the below command

          ./chip-tool pairing onnetwork 3 20202021 --commissioner-name gamma

          verify you got the following message in the TH_CR3(chip-tool) log

          CHIP:SC: PASESession timed out while waiting for a response from the peer. Expected message type was 33
          CHIP:TOO: Secure Pairing Failed
          CHIP:TOO: Pairing Failure: ../../third_party/connectedhomeip/src/protocols/secure_channel/PASESession.cpp:324: CHIP Error 0x00000032: Timeout
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to write and read the Basic
          Information Clusters NodeLabel mandatory attribute"
      PICS: BINFO.C.A0005
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool basic write node-label te5new 2 0 --commissioner-name beta

          Verify the Write request On TH_CE(all-clusters-app) Log

          [1660902144.913634][3045:3045] CHIP:EM: Handling via exchange: 22257r, Delegate: 0xaaaaadbeffc0
          [1660902144.913728][3045:3045] CHIP:IM: Received Write request
          [1660902144.913785][3045:3045] CHIP:DMG: IM WH moving to [Initialized]
          [1660902144.913912][3045:3045] CHIP:DMG: WriteRequestMessage =
          [1660902144.913977][3045:3045] CHIP:DMG: {
          [1660902144.914038][3045:3045] CHIP:DMG:         suppressResponse = false,
          [1660902144.914106][3045:3045] CHIP:DMG:         timedRequest = false,
          [1660902144.914168][3045:3045] CHIP:DMG:         AttributeDataIBs =

          [1660902144.915374][3045:3045] CHIP:DMG:

          ./chip-tool basic read node-label 2 0 --commissioner-name beta

          Verify the Read request On TH_CE(all-clusters-app) Log

          [1660902253.379018][3045:3045] CHIP:EM: Handling via exchange: 3197r, Delegate: 0xaaaaadbeffc0
          [1660902253.379122][3045:3045] CHIP:IM: Received Read request
          [1660902253.379306][3045:3045] CHIP:DMG: ReadRequestMessage =
          [1660902253.379373][3045:3045] CHIP:DMG: {
          [1660902253.379430][3045:3045] CHIP:DMG:         AttributePathIBs =
          [1660902253.379496][3045:3045] CHIP:DMG:         [
          [1660902253.379557][3045:3045] CHIP:DMG:                 AttributePathIB =
          [1660902253.379634][3045:3045] CHIP:DMG:                 {
          [1660902253.379703][3045:3045] CHIP:DMG:                         Endpoint = 0x0,
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to open a commissioning window using
          BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool administratorcommissioning open-basic-commissioning-window 180 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta

          Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log

          [1660902413.357922][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
          [1660902413.358025][3045:3045] CHIP:ZCL: Commissioning window is now open
          [1660902413.358116][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
      disabled: true

    - label:
          "Wait for commissioning window that was opened in step 13 to timeout"
      verification: |
          Wait for the timeout of commissioning window in the above step
      disabled: true

    - label:
          "DUT_CR2 sends command to TH_CE to open a commissioning window using
          BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On DUT_CR2 send the below command

          ./chip-tool administratorcommissioning open-basic-commissioning-window 500 2 0 --timedInteractionTimeoutMs 1000 --commissioner-name beta

          Verify the Commissioning window is opened in TH_CE(all-clusters-app) Log

          [1660902623.744448][3045:3045] CHIP:DIS: mDNS service published: _matterc._udp
          [1660902623.744550][3045:3045] CHIP:ZCL: Commissioning window is now open
          [1660902623.744634][3045:3045] CHIP:DMG: Command handler moving to [ Preparing]
      disabled: true

    - label:
          "TH_CR1 starts a commissioning process with TH_CE before the timeout
          from step 15"
      PICS: CADMIN.C
      verification: |
          Below are the example command for using single RPI as multiple controller. Vendor should have the provision to use the equivalent command in their DUT or use multiple commissioners/controllers

          On TH_CR1 send the below command

          ./chip-tool pairing onnetwork 1 20202021

          Verify the OperationalCert error 9 in TH_CE(all-clusters-app) Log

          [1660902716.613196][3045:3045] CHIP:DMG: Command handler moving to [AddedComma]
          [1660902716.613274][3045:3045] CHIP:ZCL: OpCreds: Failed AddNOC request (err=../../examples/all-clusters-app/linux/third_party/connectedhomeip/src/credentials/FabricTable.cpp:1692: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists) with OperationalCert error 9
          [1660902716.613394][3045:3045] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0
          [1660902716.613497][3045:3045] CHIP:EM: Piggybacking Ack for MessageCounter:176866087 on exchange: 56605r
      disabled: true
