# 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.14. [TC-CADMIN-1.14] Open commissioning window twice on DUT using BCM
    then ECM [DUT - Commissioner]

PICS:
    - CADMIN.C
    - CADMIN.C.C01.Tx
    - CADMIN.C.C00.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: "DUT_CR1 starts a commissioning process with TH_CE"
      PICS: CADMIN.C
      verification: |
          "1. Provision TH_CE using DUT_CR1 (Chip-tool as DUT controller)
          "
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and
          TH_CR3 Commissions with TH_CE"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On DUT_CR1 , open commissioning window using BCM

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


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

          Verify the Open commisioning window on the TH_CE(all-cluster-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]



          On TH_CR3, using chip tool connect to the accessory
          ./chip-tool pairing onnetwork 1 20202021  --commissioner-name gamma

          Verify you got below message on TH_CE (all-clusters-app) log
          Commissioning completed successfully
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM and
          TH_CR2 Commissions with TH_CE"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On DUT_CR1 , open commissioning window using BCM

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


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

          Verify the Open commisioning window on the TH_CE(all-cluster-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]




          On TH_CR2 , using chip tool connect to the accessory

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

          Verify you got below message on TH_CE (all-clusters-app) log

          Commissioning completed successfully
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using BCM"
      PICS: CADMIN.C.C01.Tx
      verification: |
          On DUT_CR1 , open commissioning window using BCM

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


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

          Verify the Open commisioning window on the TH_CE(all-cluster-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:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 4, DUT_CR1 sends command to TH_CE to read WindowStatus
          attribute"
      PICS: CADMIN.C.A0000
      verification: |
          On DUT_CR1 , read WindowStatus

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

          ./chip-tool administratorcommissioning read window-status 1 0

          Verify TH_CE successfully reads windowstatus

          [1661483425.923623][6917:6917] CHIP:DMG: ReportDataMessage =
          [1661483425.923649][6917:6917] CHIP:DMG: {
          [1661483425.923667][6917:6917] CHIP:DMG:         AttributeReportIBs =
          [1661483425.923698][6917:6917] CHIP:DMG:         [
          [1661483425.923722][6917:6917] CHIP:DMG:                 AttributeReportIB =
          [1661483425.923752][6917:6917] CHIP:DMG:                 {
          [1661483425.923777][6917:6917] CHIP:DMG:                         AttributeDataIB =
          [1661483425.923805][6917:6917] CHIP:DMG:                         {
          [1661483425.923834][6917:6917] CHIP:DMG:                                 DataVersion = 0x2b727529,
          [1661483425.923862][6917:6917] CHIP:DMG:                                 AttributePathIB =
          [1661483425.923891][6917:6917] CHIP:DMG:                                 {
          [1661483425.923921][6917:6917] CHIP:DMG:                                         Endpoint = 0x0,
          [1661483425.923951][6917:6917] CHIP:DMG:                                         Cluster = 0x3c,
          [1661483425.923981][6917:6917] CHIP:DMG:                                         Attribute = 0x0000_0000,
          [1661483425.924009][6917:6917] CHIP:DMG:                                 }
          [1661483425.924040][6917:6917] CHIP:DMG:
          [1661483425.924070][6917:6917] CHIP:DMG:                                 Data = 2,
          [1661483425.924097][6917:6917] CHIP:DMG:                         },
          [1661483425.924126][6917:6917] CHIP:DMG:
          [1661483425.924169][6917:6917] CHIP:DMG:                 },
          [1661483425.924197][6917:6917] CHIP:DMG:
          [1661483425.924218][6917:6917] CHIP:DMG:         ],
          [1661483425.924244][6917:6917] CHIP:DMG:
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 4, DUT_CR1 sends command to TH_CE to open a 2nd commissioning
          window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds
          using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On DUT_CR1 chip tool, open commissioning window using ECM

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


          ./chip-tool pairing open-commissioning-window 1 1 200 1000 3840

          Verify that the TH_CE is rejecting the opening of second commissioning session  with  the response status 0x01 failure in TH_CE Log


          CHIP:DMG: InvokeResponseMessage =
          [1650527622.373450][15824:15829] CHIP:DMG: {
          [1650527622.373531][15824:15829] CHIP:DMG:         suppressResponse = false,
          [1650527622.373628][15824:15829] CHIP:DMG:         InvokeResponseIBs =
          [1650527622.373734][15824:15829] CHIP:DMG:         [
          [1650527622.373817][15824:15829] CHIP:DMG:                 InvokeResponseIB =
          [1650527622.373913][15824:15829] CHIP:DMG:                 {
          [1650527622.374001][15824:15829] CHIP:DMG:                         CommandStatusIB =
          [1650527622.374087][15824:15829] CHIP:DMG:                         {
          [1650527622.374182][15824:15829] CHIP:DMG:                                 CommandPathIB =
          [1650527622.374296][15824:15829] CHIP:DMG:                                 {
          [1650527622.374382][15824:15829] CHIP:DMG:                                         EndpointId = 0x0,
          [1650527622.374490][15824:15829] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650527622.374593][15824:15829] CHIP:DMG:                                         CommandId = 0x1,
          [1650527622.374682][15824:15829] CHIP:DMG:                                 },
          [1650527622.374799][15824:15829] CHIP:DMG:
          [1650527622.374896][15824:15829] CHIP:DMG:                                 StatusIB =
          [1650527622.374979][15824:15829] CHIP:DMG:                                 {
          [1650527622.375086][15824:15829] CHIP:DMG:                                         status = 0x01 (FAILURE),
          [1650527622.375236][15824:15829] CHIP:DMG:                                         cluster-status = 0x1,
          [1650527622.375320][15824:15829] CHIP:DMG:                                 },
          [1650527622.375426][15824:15829] CHIP:DMG:
          [1650527622.375527][15824:15829] CHIP:DMG:                         },
          [1650527622.375616][15824:15829] CHIP:DMG:
          [1650527622.375704][15824:15829] CHIP:DMG:                 },
          [1650527622.375786][15824:15829] CHIP:DMG:
          [1650527622.375864][15824:15829] CHIP:DMG:         ],
          [1650527622.375940][15824:15829] CHIP:DMG:
          [1650527622.376000][15824:15829] CHIP:DMG:         InteractionModelRevision = 1
          [1650527622.376058][15824:15829] CHIP:DMG: },
          [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
          [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01"
      disabled: true

    - label:
          "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
          set in step 4"
      verification: |
          Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 4
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to re-opens a commissioning window
          with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds using
          ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On DUT_CR1  chip tool, open commissioning window using ECM

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

          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840

          Verify the Open commisioning window on the TH_CE(all-cluster-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:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 8, DUT_CR1 sends command to TH_CE to read WindowStatus
          attribute"
      PICS: CADMIN.C.A0000
      verification: |
          On DUT_CR1 , read WindowStatus

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

          ./chip-tool administratorcommissioning read window-status 1 0
          Verify TH_CE successfully reads windowstatus

          [1661482777.283822][6453:6453] CHIP:DMG: ReportDataMessage =
          [1661482777.283855][6453:6453] CHIP:DMG: {
          [1661482777.283882][6453:6453] CHIP:DMG:         AttributeReportIBs =
          [1661482777.283921][6453:6453] CHIP:DMG:         [
          [1661482777.283951][6453:6453] CHIP:DMG:                 AttributeReportIB =
          [1661482777.283995][6453:6453] CHIP:DMG:                 {
          [1661482777.284036][6453:6453] CHIP:DMG:                         AttributeDataIB =
          [1661482777.284080][6453:6453] CHIP:DMG:                         {
          [1661482777.284122][6453:6453] CHIP:DMG:                                 DataVersion = 0xd3f3fc78,
          [1661482777.284289][6453:6453] CHIP:DMG:                                 AttributePathIB =
          [1661482777.284337][6453:6453] CHIP:DMG:                                 {
          [1661482777.284385][6453:6453] CHIP:DMG:                                         Endpoint = 0x0,
          [1661482777.284430][6453:6453] CHIP:DMG:                                         Cluster = 0x3c,
          [1661482777.284479][6453:6453] CHIP:DMG:                                         Attribute = 0x0000_0000,
          [1661482777.284522][6453:6453] CHIP:DMG:                                 }
          [1661482777.284567][6453:6453] CHIP:DMG:
          [1661482777.284612][6453:6453] CHIP:DMG:                                 Data = 1,
          [1661482777.284655][6453:6453] CHIP:DMG:                         },
          [1661482777.284699][6453:6453] CHIP:DMG:
          [1661482777.284733][6453:6453] CHIP:DMG:                 },
          [1661482777.284773][6453:6453] CHIP:DMG:
          [1661482777.284803][6453:6453] CHIP:DMG:         ],
          [1661482777.284841][6453:6453] CHIP:DMG:
          [1661482777.284872][6453:6453] CHIP:DMG:         SuppressResponse = true,
          [1661482777.284905][6453:6453] CHIP:DMG:         InteractionModelRevision = 1
          [1661482777.284934][6453:6453] CHIP:DMG: }
          [1661482777.284962][6453:6453] CHIP:DMG:
      disabled: true

    - label:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 8, TH_CR3 sends command to TH_CE to open a 2nd commissioning
          window with a commissioning timeout of PIXIT.CADMIN.CwDuration seconds
          using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On TH_CR3 chip tool, open commissioning window using ECM

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


          ./chip-tool pairing open-commissioning-window 1 1 200 1000 3840 --commissioner-name beta

          Verify that the TH_CE is rejecting the opening of second commissioning session  with  the response status 0x01 failure in TH_CE Log


          CHIP:DMG: InvokeResponseMessage =
          [1650527622.373450][15824:15829] CHIP:DMG: {
          [1650527622.373531][15824:15829] CHIP:DMG:         suppressResponse = false,
          [1650527622.373628][15824:15829] CHIP:DMG:         InvokeResponseIBs =
          [1650527622.373734][15824:15829] CHIP:DMG:         [
          [1650527622.373817][15824:15829] CHIP:DMG:                 InvokeResponseIB =
          [1650527622.373913][15824:15829] CHIP:DMG:                 {
          [1650527622.374001][15824:15829] CHIP:DMG:                         CommandStatusIB =
          [1650527622.374087][15824:15829] CHIP:DMG:                         {
          [1650527622.374182][15824:15829] CHIP:DMG:                                 CommandPathIB =
          [1650527622.374296][15824:15829] CHIP:DMG:                                 {
          [1650527622.374382][15824:15829] CHIP:DMG:                                         EndpointId = 0x0,
          [1650527622.374490][15824:15829] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650527622.374593][15824:15829] CHIP:DMG:                                         CommandId = 0x1,
          [1650527622.374682][15824:15829] CHIP:DMG:                                 },
          [1650527622.374799][15824:15829] CHIP:DMG:
          [1650527622.374896][15824:15829] CHIP:DMG:                                 StatusIB =
          [1650527622.374979][15824:15829] CHIP:DMG:                                 {
          [1650527622.375086][15824:15829] CHIP:DMG:                                         status = 0x01 (FAILURE),
          [1650527622.375236][15824:15829] CHIP:DMG:                                         cluster-status = 0x1,
          [1650527622.375320][15824:15829] CHIP:DMG:                                 },
          [1650527622.375426][15824:15829] CHIP:DMG:
          [1650527622.375527][15824:15829] CHIP:DMG:                         },
          [1650527622.375616][15824:15829] CHIP:DMG:
          [1650527622.375704][15824:15829] CHIP:DMG:                 },
          [1650527622.375786][15824:15829] CHIP:DMG:
          [1650527622.375864][15824:15829] CHIP:DMG:         ],
          [1650527622.375940][15824:15829] CHIP:DMG:
          [1650527622.376000][15824:15829] CHIP:DMG:         InteractionModelRevision = 1
          [1650527622.376058][15824:15829] CHIP:DMG: },
          [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
          [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01"
      disabled: true

    - label:
          "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
          set in step 8"
      verification: |
          Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 8
      disabled: true

    - label:
          "DUT_CR1 sends command to TH_CE to open a commissioning window with a
          commissioning timeout of PIXIT.CADMIN.CwDuration seconds using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On DUT_CR1 chip tool, open commissioning window using ECM

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

          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840

          Verify the Open commisioning window on the TH_CE(all-cluster-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:
          "Before the expiration of PIXIT.CADMIN.CwDuration seconds that is set
          in step 12, TH_CR2 sends command to TH_CE to open a second
          commissioning window with a commissioning timeout of
          PIXIT.CADMIN.CwDuration seconds using ECM"
      PICS: CADMIN.C.C00.Tx
      verification: |
          On TH_CR2 using chip tool connect to the accessory using ECM

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


          ./chip-tool pairing open-commissioning-window 1 1 180 1000 3840  --commissioner-name beta

          Verify that the TH_CE is rejecting the opening of second commissioning session  with  the response status 0x01 failure in TH_CE Log

          CHIP:DMG: InvokeResponseMessage =
          [1650527622.373450][15824:15829] CHIP:DMG: {
          [1650527622.373531][15824:15829] CHIP:DMG:         suppressResponse = false,
          [1650527622.373628][15824:15829] CHIP:DMG:         InvokeResponseIBs =
          [1650527622.373734][15824:15829] CHIP:DMG:         [
          [1650527622.373817][15824:15829] CHIP:DMG:                 InvokeResponseIB =
          [1650527622.373913][15824:15829] CHIP:DMG:                 {
          [1650527622.374001][15824:15829] CHIP:DMG:                         CommandStatusIB =
          [1650527622.374087][15824:15829] CHIP:DMG:                         {
          [1650527622.374182][15824:15829] CHIP:DMG:                                 CommandPathIB =
          [1650527622.374296][15824:15829] CHIP:DMG:                                 {
          [1650527622.374382][15824:15829] CHIP:DMG:                                         EndpointId = 0x0,
          [1650527622.374490][15824:15829] CHIP:DMG:                                         ClusterId = 0x3c,
          [1650527622.374593][15824:15829] CHIP:DMG:                                         CommandId = 0x1,
          [1650527622.374682][15824:15829] CHIP:DMG:                                 },
          [1650527622.374799][15824:15829] CHIP:DMG:
          [1650527622.374896][15824:15829] CHIP:DMG:                                 StatusIB =
          [1650527622.374979][15824:15829] CHIP:DMG:                                 {
          [1650527622.375086][15824:15829] CHIP:DMG:                                         status = 0x01 (FAILURE),
          [1650527622.375236][15824:15829] CHIP:DMG:                                         cluster-status = 0x1,
          [1650527622.375320][15824:15829] CHIP:DMG:                                 },
          [1650527622.375426][15824:15829] CHIP:DMG:
          [1650527622.375527][15824:15829] CHIP:DMG:                         },
          [1650527622.375616][15824:15829] CHIP:DMG:
          [1650527622.375704][15824:15829] CHIP:DMG:                 },
          [1650527622.375786][15824:15829] CHIP:DMG:
          [1650527622.375864][15824:15829] CHIP:DMG:         ],
          [1650527622.375940][15824:15829] CHIP:DMG:
          [1650527622.376000][15824:15829] CHIP:DMG:         InteractionModelRevision = 1
          [1650527622.376058][15824:15829] CHIP:DMG: },
          [1650527622.376202][15824:15829] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003C Command=0x0000_0001 Status=0x1
          [1650527622.376278][15824:15829] CHIP:TOO: Error: IM Error 0x00000601: Cluster-specific error: 0x01"
      disabled: true

    - label:
          "Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is
          set in step 12"
      verification: |
          Wait for the expiration of PIXIT.CADMIN.CwDuration seconds that is set in step 12
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read WindowStatus attribute"
      PICS: CADMIN.C.A0000
      verification: |
          On DUT_CR1 , read WindowStatus

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

          ./chip-tool administratorcommissioning read window-status 1 0
          Verify TH_CE successfully reads windowstatus

          [1661482777.283822][6453:6453] CHIP:DMG: ReportDataMessage =
          [1661482777.283855][6453:6453] CHIP:DMG: {
          [1661482777.283882][6453:6453] CHIP:DMG:         AttributeReportIBs =
          [1661482777.283921][6453:6453] CHIP:DMG:         [
          [1661482777.283951][6453:6453] CHIP:DMG:                 AttributeReportIB =
          [1661482777.283995][6453:6453] CHIP:DMG:                 {
          [1661482777.284036][6453:6453] CHIP:DMG:                         AttributeDataIB =
          [1661482777.284080][6453:6453] CHIP:DMG:                         {
          [1661482777.284122][6453:6453] CHIP:DMG:                                 DataVersion = 0xd3f3fc78,
          [1661482777.284289][6453:6453] CHIP:DMG:                                 AttributePathIB =
          [1661482777.284337][6453:6453] CHIP:DMG:                                 {
          [1661482777.284385][6453:6453] CHIP:DMG:                                         Endpoint = 0x0,
          [1661482777.284430][6453:6453] CHIP:DMG:                                         Cluster = 0x3c,
          [1661482777.284479][6453:6453] CHIP:DMG:                                         Attribute = 0x0000_0000,
          [1661482777.284522][6453:6453] CHIP:DMG:                                 }
          [1661482777.284567][6453:6453] CHIP:DMG:
          [1661482777.284612][6453:6453] CHIP:DMG:                                 Data = 0,
          [1661482777.284655][6453:6453] CHIP:DMG:                         },
          [1661482777.284699][6453:6453] CHIP:DMG:
          [1661482777.284733][6453:6453] CHIP:DMG:                 },
          [1661482777.284773][6453:6453] CHIP:DMG:
          [1661482777.284803][6453:6453] CHIP:DMG:         ],
          [1661482777.284841][6453:6453] CHIP:DMG:
          [1661482777.284872][6453:6453] CHIP:DMG:         SuppressResponse = true,
          [1661482777.284905][6453:6453] CHIP:DMG:         InteractionModelRevision = 1
          [1661482777.284934][6453:6453] CHIP:DMG: }
          [1661482777.284962][6453:6453] CHIP:DMG:
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read AdminFabricIndex attribute"
      PICS: CADMIN.C.A0001
      verification: |
          On DUT_CR1 , read AdminFabricIndex

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

          ./chip-tool administratorcommissioning read admin-fabric-index  1 0

          Verify on TH_CE(all-clusters-app) successfully reads the AdminFabricIndex

          [1661484456.069189][6930:6930] CHIP:DMG: ReportDataMessage =
          [1661484456.069213][6930:6930] CHIP:DMG: {
          [1661484456.069232][6930:6930] CHIP:DMG:         AttributeReportIBs =
          [1661484456.069259][6930:6930] CHIP:DMG:         [
          [1661484456.069280][6930:6930] CHIP:DMG:                 AttributeReportIB =
          [1661484456.069314][6930:6930] CHIP:DMG:                 {
          [1661484456.069339][6930:6930] CHIP:DMG:                         AttributeDataIB =
          [1661484456.069366][6930:6930] CHIP:DMG:                         {
          [1661484456.069395][6930:6930] CHIP:DMG:                                 DataVersion = 0x5698b43f,
          [1661484456.069427][6930:6930] CHIP:DMG:                                 AttributePathIB =
          [1661484456.069459][6930:6930] CHIP:DMG:                                 {
          [1661484456.069492][6930:6930] CHIP:DMG:                                         Endpoint = 0x0,
          [1661484456.069524][6930:6930] CHIP:DMG:                                         Cluster = 0x3c,
          [1661484456.069629][6930:6930] CHIP:DMG:                                         Attribute = 0x0000_0001,
          [1661484456.069661][6930:6930] CHIP:DMG:                                 }
          [1661484456.069695][6930:6930] CHIP:DMG:
          [1661484456.069729][6930:6930] CHIP:DMG:                                 Data = NULL
          [1661484456.069757][6930:6930] CHIP:DMG:                         },
          [1661484456.069790][6930:6930] CHIP:DMG:
          [1661484456.069815][6930:6930] CHIP:DMG:                 },
          [1661484456.069844][6930:6930] CHIP:DMG:
          [1661484456.069865][6930:6930] CHIP:DMG:         ],
          [1661484456.069892][6930:6930] CHIP:DMG:
      disabled: true

    - label: "DUT_CR1 sends command to TH_CE to read AdminVendorId attribute"
      PICS: CADMIN.C.A0002
      verification: |
          On DUT_CR1 , read AdminVendorId

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

          Verify on TH_CE(all-clusters-app) successfully reads the AdminVendorId

          ./chip-tool administratorcommissioning read admin-vendor-id 1 0

          [1661484515.721772][6930:6930] CHIP:DMG: ReportDataMessage =
          [1661484515.721809][6930:6930] CHIP:DMG: {
          [1661484515.721838][6930:6930] CHIP:DMG:         AttributeReportIBs =
          [1661484515.721880][6930:6930] CHIP:DMG:         [
          [1661484515.721913][6930:6930] CHIP:DMG:                 AttributeReportIB =
          [1661484515.721965][6930:6930] CHIP:DMG:                 {
          [1661484515.722006][6930:6930] CHIP:DMG:                         AttributeDataIB =
          [1661484515.722051][6930:6930] CHIP:DMG:                         {
          [1661484515.722100][6930:6930] CHIP:DMG:                                 DataVersion = 0x5698b43f,
          [1661484515.722146][6930:6930] CHIP:DMG:                                 AttributePathIB =
          [1661484515.722191][6930:6930] CHIP:DMG:                                 {
          [1661484515.722242][6930:6930] CHIP:DMG:                                         Endpoint = 0x0,
          [1661484515.722292][6930:6930] CHIP:DMG:                                         Cluster = 0x3c,
          [1661484515.722344][6930:6930] CHIP:DMG:                                         Attribute = 0x0000_0002,
          [1661484515.722394][6930:6930] CHIP:DMG:                                 }
          [1661484515.722443][6930:6930] CHIP:DMG:
          [1661484515.722494][6930:6930] CHIP:DMG:                                 Data = NULL
          [1661484515.722542][6930:6930] CHIP:DMG:                         },
          [1661484515.722589][6930:6930] CHIP:DMG:
          [1661484515.722626][6930:6930] CHIP:DMG:                 },
          [1661484515.722673][6930:6930] CHIP:DMG:
          [1661484515.722705][6930:6930] CHIP:DMG:         ],
          [1661484515.722746][6930:6930] CHIP:DMG:
      disabled: true
