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

name:
    3.3.7. [TC-DD-3.7] Commissioning Flow - Concurrent - Negative Scenario [DUT
    - Commissioner]

PICS:
    - MCORE.ROLE.COMMISSIONER

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

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

    - label: "Preconditions"
      verification: |
          1 - 5.5 - Commissioner is on a network. - The network can either be WiFi or Thread.
          2 - 5.5 - Commissionee can either be a Matter device which is already on a network or the test harness connected to the network.
      disabled: true

    - label:
          "Commissioner has regulatory and fabric information available and has
          accurate date, time and timezone"
      verification: |
          Verify in TH as server side
          sudo ./chip-all-clusters-app --wifi --discriminator 3841

          [1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000
          [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn"t get a PASE salt, generating one.
          [1653471956.972152][10713:10713] CHIP:DL: Device Configuration:
          [1653471956.972270][10713:10713] CHIP:DL:   Serial Number: TEST_SN
          [1653471956.972315][10713:10713] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1653471956.972354][10713:10713] CHIP:DL:   Product Id: 32769 (0x8001)
          [1653471956.972388][10713:10713] CHIP:DL:   Hardware Version: 0
          [1653471956.972413][10713:10713] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1653471956.972435][10713:10713] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01)
          [1653471956.972464][10713:10713] CHIP:DL:   Manufacturing Date: (not set)
          [1653471956.972488][10713:10713] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1653471956.972509][10713:10713] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ====
          [1653471956.972546][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00]
          [1653471956.972579][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1653471956.972600][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00
          [1653471956.972632][10713:10713] CHIP:SVR: Manual pairing code: [34970112332]
          [1653471956.972654][10713:10713] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
          [1653471956.972715][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00]
          [1653471956.972748][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1653471956.972769][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00
          [1653471956.972803][10713:10713] CHIP:SVR: Manual pairing code: [749701123365521327694]

          Verify in DUT as client side
          ./chip-tool pairing code 1 MT:-24J0CEK01KA0648G00
          ...
          [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293
          [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device <FFFFFFFB00000000, 0>, LSID:47293 PSID:201!
          [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake
          [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD
          [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success
          [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful
          [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo"
      disabled: true

    - label:
          "Commissioner and Commissionee discover each other and connect via the
          discovery mode applicable for the DUT."
      verification: |
          Verify in DUT as client side
          ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
          ...
          [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293
          [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device <FFFFFFFB00000000, 0>, LSID:47293 PSID:201!
          [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake
          [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD
          [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success
          [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful
          [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo"


          Verify in TH as server side
          $ ./out/all-clusters-app/chip-all-clusters-app
          ...
          [1657226543.948995][369114:369114] CHIP:IN: SecureSession[0xaaaab60788e0]: Activated - Type:1 LSID:201
          [1657226543.949023][369114:369114] CHIP:IN: New secure session created for device <FFFFFFFB00000000, 0>, LSID:201 PSID:47293!
          [1657226543.949048][369114:369114] CHIP:SVR: Commissioning completed session establishment step
      disabled: true

    - label:
          "Establish encryption keys with Password Authenticated Session
          Establishment on the commissioning channel"
      verification: |
          Verify in DUT as client side

          CHIP:SC: Sent PBKDF param request
          CHIP:CTL: Setting attestation nonce to random value
          CHIP:CTL: Setting CSR nonce to random value
          CHIP:CTL: Commission called for node ID 0x000000000001B669
          CHIP:EM: Received message of type 0x21 with protocolId (0, 0) and MessageCounter:1341084110 on exchange 63762i
          CHIP:EM: Found matching exchange: 63762i, Delegate: 0xffff8c000bc0
          CHIP:EM: Rxd Ack; Removing MessageCounter:850320430 from Retrans Table on exchange 63762i
          CHIP:EM: Removed CHIP MessageCounter:850320430 from RetransTable on exchange 63762i
          CHIP:SC: Received PBKDF param response
      disabled: true

    - label:
          "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
          (the autonomously Fail-safe timer length set by Commissionee)"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Commissioning stage next step: "ReadCommissioningInfo" -> "ArmFailSafe"
          CHIP:CTL: Performing next commissioning step "ArmFailSafe"
          CHIP:CTL: Arming failsafe (60 seconds)
      disabled: true

    - label: "Reboot TH and prepare for commissioning"
      verification: |
          1. Using TH=all-clusters-app, exit the app, re-launch app
      disabled: true

    - label: "Commissioner should return to step 2"
      verification: |
          Verify in DUT as client side

          ./chip-tool discover commissionables
          Waiting for device responses...
          CHIP:CTL: Generating ICAC
          CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT START ====
          CHIP:DL: AUDIT: * Validate buf1 and buf2 are <<<different every run/boot!>>>
          CHIP:DL: AUDIT: * Validate r1 and r2 are <<<different every run/boot!>>>
          CHIP:DL: AUDIT: * buf1: 3BE3E264C0A0A053248E93609D22044A
          CHIP:DL: AUDIT: * buf2: E69C8767AD6B60907AD3633E774F38EB
          CHIP:DL: AUDIT: * r1: 0x2A0E6454 r2: 0x16315893
          CHIP:DL: AUDIT: ===== RANDOM NUMBER GENERATOR AUDIT END ====
          CHIP:DL: writing settings to file (/tmp/chip_counters.ini-9yXPat)
          CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
          CHIP:DL: NVS set: chip-counters/reboot-count = 23 (0x17)
          CHIP:DL: Got Ethernet interface: eth0
          CHIP:DL: Found the primary Ethernet interface:eth0
          CHIP:DL: Got WiFi interface: wlan0
          CHIP:DL: Failed to reset WiFi statistic counts
          CHIP:IN: UDP::Init bind&listen port=5541
          CHIP:IN: UDP::Init bound to port=5541
          CHIP:IN: UDP::Init bind&listen port=5541
          CHIP:IN: UDP::Init bound to port=5541
          CHIP:IN: TransportMgr initialized
          CHIP:DIS: Init fabric pairing table with server storage
          CHIP:DL: writing settings to file (/tmp/chip_counters.ini-zgCtZd)
          CHIP:DL: renamed tmp file to file (/tmp/chip_counters.ini)
          CHIP:DL: NVS set: chip-counters/GlobalMCTR = 25000 (0x61A8)
          CHIP:CTL: System State Initialized...
          CHIP:DL: MDNS failed to join multicast group on veth5731933 for address type IPv4: ../th
          CHIP:DL: MDNS failed to join multicast group on vethbf7bfa6 for address type IPv4: ../th
          CHIP:DL: MDNS failed to join multicast group on vethcf434e5 for address type IPv4: ../th
          CHIP:ZCL: Using ZAP configuration...
          CHIP:DIS: Verifying the received credentials
          CHIP:IN: Generating compressed fabric ID using uncompressed fabric ID 0x0000000000000000
          CHIP:IN: 0x04, 0x66, 0xd6, 0xcf, 0x4c, 0x1e, 0x11, 0xc3,
          CHIP:IN: 0x52, 0x4f, 0xa6, 0x8c, 0x6e, 0x65, 0x46, 0xdc,
          CHIP:IN: 0x90, 0x1b, 0x5f, 0x42, 0x9f, 0x69, 0xd1, 0xb7,
          CHIP:IN: 0x7d, 0xf3, 0x6b, 0x54, 0x12, 0x6c, 0x12, 0x59,
          CHIP:IN: 0x5b, 0xc3, 0x07, 0x1c, 0x5c, 0xf4, 0x4e, 0x5f,
          CHIP:IN: 0x71, 0x06, 0x9a, 0xbb, 0x2f, 0xef, 0x20, 0x0d,
          CHIP:IN: 0x0e, 0x9b, 0x26, 0x3e, 0x8d, 0x46, 0x09, 0xd8,
          CHIP:IN: 0xfd, 0xa1, 0xc0, 0x10, 0x4f, 0x05, 0x14, 0x99,
          CHIP:IN: 0x22,
          CHIP:IN: Generated compressed fabric ID
          CHIP:IN: 0x4a, 0x53, 0x1e, 0x52, 0x06, 0xed, 0x06, 0xda,
          CHIP:DIS: Added new fabric at index: 1, Initialized: 1
          CHIP:DIS: Assigned compressed fabric ID: 0x4A531E5206ED06DA, node ID: 0x000000000001B669
          CHIP:CTL: Joined the fabric at index 1. Compressed fabric ID is: 0x4A531E5206ED06DA
          CHIP:DL: CHIP task running
          CHIP:DIS: Attempt to mDNS broadcast failed:  ../third_party/connectedhomeip/src/inet/UDP
          CHIP:DIS: Attempt to mDNS broadcast failed:  ../third_party/connectedhomeip/src/inet/UDP
          CHIP:DIS: Attempt to mDNS broadcast failed:  ../third_party/connectedhomeip/src/inet/UDP
          CHIP:DIS: Attempt to mDNS broadcast failed:  ../third_party/connectedhomeip/src/inet/UDP
          CHIP:DIS: Discovered Node:
          CHIP:DIS:      Host name:              EEAABADABAD0DDCA        CHIP:DIS:      Port:                   5540
          CHIP:DIS:      Long discriminator:     3840
          CHIP:DIS:      Vendor ID:              9050
          CHIP:DIS:      Product ID:             65279
          CHIP:DIS:      Commissioning Mode      1
          CHIP:DIS:      Device Type             0
          CHIP:DIS:      Device Name
          CHIP:DIS:      Rotating Id             00007C5F6E176CD40F68685D100A1CF8A98B
          CHIP:DIS:      Pairing Instruction
          CHIP:DIS:      Pairing Hint            0x21
          CHIP:DIS:      Address 0:              2402:e280:2108:181:dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 1:              fe80::dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 2:              192.168.1.12
          CHIP:DIS: Discovered Node:
          CHIP:DIS:      Host name:              EEAABADABAD0DDCA        CHIP:DIS:      Port:                   5540
          CHIP:DIS:      Long discriminator:     3840
          CHIP:DIS:      Vendor ID:              9050
          CHIP:DIS:      Product ID:             65279
          CHIP:DIS:      Commissioning Mode      1
          CHIP:DIS:      Device Type             0
          CHIP:DIS:      Device Name
          CHIP:DIS:      Rotating Id             00007C5F6E176CD40F68685D100A1CF8A98B
          CHIP:DIS:      Pairing Instruction
          CHIP:DIS:      Pairing Hint            0x21
          CHIP:DIS:      Address 0:              2402:e280:2108:181:dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 1:              fe80::dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 2:              192.168.1.12
          CHIP:DIS: Discovered Node:
          CHIP:DIS:      Host name:              EEAABADABAD0DDCA        CHIP:DIS:      Port:                   5540
          CHIP:DIS:      Long discriminator:     3840
          CHIP:DIS:      Vendor ID:              9050
          CHIP:DIS:      Product ID:             65279
          CHIP:DIS:      Commissioning Mode      1
          CHIP:DIS:      Device Type             0
          CHIP:DIS:      Device Name
          CHIP:DIS:      Rotating Id             00007C5F6E176CD40F68685D100A1CF8A98B
          CHIP:DIS:      Pairing Instruction
          CHIP:DIS:      Pairing Hint            0x21
          CHIP:DIS:      Address 0:              2402:e280:2108:181:dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 1:              fe80::dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 2:              192.168.1.12
          CHIP:DIS: Discovered Node:
          CHIP:DIS:      Host name:              EEAABADABAD0DDCA        CHIP:DIS:      Port:                   5540
          CHIP:DIS:      Long discriminator:     3840
          CHIP:DIS:      Vendor ID:              9050
          CHIP:DIS:      Product ID:             65279
          CHIP:DIS:      Commissioning Mode      1
          CHIP:DIS:      Device Type             0
          CHIP:DIS:      Device Name
          CHIP:DIS:      Rotating Id             00007C5F6E176CD40F68685D100A1CF8A98B
          CHIP:DIS:      Pairing Instruction
          CHIP:DIS:      Pairing Hint            0x21
          CHIP:DIS:      Address 0:              2402:e280:2108:181:dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 1:              fe80::dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 2:              192.168.1.12
          CHIP:DIS: Discovered Node:
          CHIP:DIS:      Host name:              EEAABADABAD0DDCA        CHIP:DIS:      Port:                   5540
          CHIP:DIS:      Long discriminator:     3840
          CHIP:DIS:      Vendor ID:              9050
          CHIP:DIS:      Product ID:             65279
          CHIP:DIS:      Commissioning Mode      1
          CHIP:DIS:      Device Type             0
          CHIP:DIS:      Device Name
          CHIP:DIS:      Rotating Id             00007C5F6E176CD40F68685D100A1CF8A98B
          CHIP:DIS:      Pairing Instruction
          CHIP:DIS:      Pairing Hint            0x21
          CHIP:DIS:      Address 0:              2402:e280:2108:181:dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 1:              fe80::dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 2:              192.168.1.12
          CHIP:DIS: Discovered Node:
          CHIP:DIS:      Host name:              EEAABADABAD0DDCA        CHIP:DIS:      Port:                   5540
          CHIP:DIS:      Long discriminator:     3840
          CHIP:DIS:      Vendor ID:              9050
          CHIP:DIS:      Product ID:             65279
          CHIP:DIS:      Commissioning Mode      1
          CHIP:DIS:      Device Type             0
          CHIP:DIS:      Device Name
          CHIP:DIS:      Rotating Id             00007C5F6E176CD40F68685D100A1CF8A98B
          CHIP:DIS:      Pairing Instruction
          CHIP:DIS:      Pairing Hint            0x21
          CHIP:DIS:      Address 0:              2402:e280:2108:181:dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 1:              fe80::dea6:32ff:fef9:f0a1
          CHIP:DIS:      Address 2:              192.168.1.12
      disabled: true

    - label:
          "Establish encryption keys with Password Authenticated Session
          Establishment on the commissioning channel"
      verification: |
          Verify in DUT as client side

          CHIP:SC: Sent PBKDF param request
          CHIP:CTL: Setting attestation nonce to random value
          CHIP:CTL: Setting CSR nonce to random value
          CHIP:CTL: Commission called for node ID 0x000000000001B669
          CHIP:EM: Received message of type 0x21 with protocolId (0, 0) and MessageCounter:1341084110 on exchange 63762i
          CHIP:EM: Found matching exchange: 63762i, Delegate: 0xffff8c000bc0
          CHIP:EM: Rxd Ack; Removing MessageCounter:850320430 from Retrans Table on exchange 63762i
          CHIP:EM: Removed CHIP MessageCounter:850320430 from RetransTable on exchange 63762i
          CHIP:SC: Received PBKDF param response
      disabled: true

    - label:
          "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
          (the autonomously Fail-safe timer length set by Commissionee)"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Commissioning stage next step: "ReadCommissioningInfo" -> "ArmFailSafe"
          CHIP:CTL: Performing next commissioning step "ArmFailSafe"
          CHIP:CTL: Arming failsafe (60 seconds)
      disabled: true

    - label:
          "Commissioner SHALL configure regulatory information in the
          Commissionee."
      PICS: MCORE.COM.WIRELESS
      verification: |
          Verify in DUT as client side

          Performing next commissioning step "ConfigRegulatory"
          [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config
          [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0)

          Verify in TH as server side
           NVS set: chip-config/regulatory-location = 0 (0x0)
      disabled: true

    - label:
          "Commissioner requests operational CSR from Commissionee with
          OperationalCSRRequest command"
      verification: |
          Verify in DUT as client side

          CHIP:ZCL: OpCreds: commissioner has requested a CSR
          CHIP:ZCL: OpCreds: NewCertificateSigningRequest returned ../../third_party/connectedhomeip/src/crypto/CHIPCryptoPALOpenSSL.cpp:1114: Success
      disabled: true

    - label:
          "Commissioner configures operational credentials on DUT if not
          previously installed"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Performing next commissioning step "SendTrustedRootCert"
          CHIP:CTL: Sending root certificate to the device
          CHIP:DMG: ICR moving to [AddingComm]
          CHIP:DMG: ICR moving to [AddedComma]
          CHIP:IN: Prepared secure message 0xaaaafc0d5be8 to 0x000000000001B669 (1)  of type 0x8 and protocolId (0, 1) on exchange 63770i with MessageCounter:695615.
          CHIP:IN: Sending encrypted msg 0xaaaafc0d5be8 with MessageCounter:695615 to 0x000000000001B669 (1) at monotonic time: 0000000000FBA3DE msec
          CHIP:DMG: ICR moving to [CommandSen]
          CHIP:CTL: Sent root certificate to the device
      disabled: true

    - label:
          "Commissioner configures itself as administrator in ACL on TH if
          needed"
      verification: |
          Verify in DUT as client side after commissioning



          [1646909537.115328][3145:3150] CHIP:CTL: Sending CSR request to 0xffffac001730 device
          [1646909537.115512][3145:3150] CHIP:DMG: ICR moving to [AddingComm]
          [1646909537.115589][3145:3150] CHIP:DMG: ICR moving to [AddedComma]
          [1646909537.115861][3145:3150] CHIP:IN: Prepared secure message 0xffffb67cbd98 to 0x0000000000000001 (1)  of type 0x8 and protocolId (0, 1) on exchange 7731i with MessageCounter:8191681.
          [1646909537.115959][3145:3150] CHIP:IN: Sending encrypted msg 0xffffb67cbd98 with MessageCounter:8191681 to 0x0000000000000001 (1) at monotonic time: 10877964 msec
          [1646909537.116173][3145:3150] CHIP:DMG: ICR moving to [CommandSen]
          [1646909537.116242][3145:3150] CHIP:CTL: Sent CSR request, waiting for the CSR
          [1646909537.116356][3145:3150] CHIP:DMG: ICR moving to [AwaitingDe]
          [1646909537.193355][3145:3150] CHIP:DL: HandlePlatformSpecificBLEEvent 16387
          [1646909537.241579][3145:3148] CHIP:DL: Indication received, conn = 0xffffa803b310
          [1646909537.241838][3145:3150] CHIP:DL: HandlePlatformSpecificBLEEvent 16389
          [1646909537.341266][3145:3148] CHIP:DL: Indication received, conn = 0xffffa803b310
          [1646909537.341523][3145:3150] CHIP:DL: HandlePlatformSpecificBLEEvent 16389
          [1646909537.341903][3145:3150] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:2304337 on exchange 7731i
          [1646909537.341988][3145:3150] CHIP:EM: Found matching exchange: 7731i, Delegate: 0xffffa8026ab0
          [1646909537.342086][3145:3150] CHIP:DMG: ICR moving to [ResponseRe]
          [1646909537.342191][3145:3150] CHIP:DMG: InvokeResponseMessage =
          [1646909537.342251][3145:3150] CHIP:DMG: {
          [1646909537.342310][3145:3150] CHIP:DMG:         suppressResponse = false,
          [1646909537.342370][3145:3150] CHIP:DMG:         InvokeResponseIBs =
          [1646909537.342450][3145:3150] CHIP:DMG:         [
          [1646909537.342511][3145:3150] CHIP:DMG:                 InvokeResponseIB =
          [1646909537.342598][3145:3150] CHIP:DMG:                 {
          [1646909537.342662][3145:3150] CHIP:DMG:                         CommandDataIB =
          [1646909537.342749][3145:3150] CHIP:DMG:                         {
          [1646909537.342832][3145:3150] CHIP:DMG:                                 CommandPathIB =
          [1646909537.342915][3145:3150] CHIP:DMG:                                 {
          [1646909537.342998][3145:3150] CHIP:DMG:                                         EndpointId = 0x0,
          [1646909537.343091][3145:3150] CHIP:DMG:                                         ClusterId = 0x3e,
          [1646909537.343177][3145:3150] CHIP:DMG:                                         CommandId = 0x5,
          [1646909537.343262][3145:3150] CHIP:DMG:                                 },
          [1646909537.343346][3145:3150] CHIP:DMG:
          [1646909537.343420][3145:3150] CHIP:DMG:                                 CommandData =
          [1646909537.343548][3145:3150] CHIP:DMG:                                 {
          [1646909537.343632][3145:3150] CHIP:DMG:                                         0x0 = [
          [1646909537.343772][3145:3150] CHIP:DMG:                                                 0x15, 0x30, 0x1, 0xcb, 0x30, 0x81, 0xc8, 0x30, 0x70, 0x2, 0x1, 0x0, 0x30, 0xe, 0x31, 0xc, 0x30, 0xa, 0x6, 0x3, 0x55, 0x4, 0xa, 0xc, 0x3, 0x43, 0x53, 0x52, 0x30, 0x59, 0x30, 0x13, 0x6, 0x7, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x2, 0x1, 0x6, 0x8, 0x2a, 0x86
          [1646909537.343880][3145:3150] CHIP:DMG:                                 ]
          [1646909537.343968][3145:3150] CHIP:DMG:                                         0x1 = [
          [1646909537.344094][3145:3150] CHIP:DMG:                                                 0xbd, 0xef, 0xb7, 0x8c, 0x5, 0x95, 0x9b, 0x60, 0xf4, 0xb1, 0xf7, 0x9c, 0x24, 0x50, 0x51, 0x9c, 0x59, 0x46, 0x97, 0x5e, 0x89, 0xe8, 0x7d, 0x29, 0x88, 0xac, 0x45, 0xed, 0xa6, 0xca, 0xac, 0x55, 0x2a, 0x7e, 0x11, 0x71, 0xe9, 0x68, 0x0, 0x91, 0xe, 0x23,
          [1646909537.344193][3145:3150] CHIP:DMG:                                 ]
          [1646909537.344274][3145:3150] CHIP:DMG:                                 },
          [1646909537.344349][3145:3150] CHIP:DMG:                         },
          [1646909537.344442][3145:3150] CHIP:DMG:
          [1646909537.344508][3145:3150] CHIP:DMG:                 },
          [1646909537.344588][3145:3150] CHIP:DMG:
          [1646909537.344646][3145:3150] CHIP:DMG:         ],
          [1646909537.344721][3145:3150] CHIP:DMG:
          [1646909537.344779][3145:3150] CHIP:DMG:         InteractionModelRevision = 1
          [1646909537.344837][3145:3150] CHIP:DMG: },
          [1646909537.344985][3145:3150] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0005
          [1646909537.345068][3145:3150] CHIP:CTL: Received certificate signing request from the device
          [1646909537.345139][3145:3150] CHIP:CTL: Getting certificate chain for the device from the issuer
          [1646909537.347800][3145:3150] CHIP:CTL: Verifying Certificate Signing Request
          [1646909537.349300][3145:3150] CHIP:CTL: Generating NOC
          [1646909537.350268][3145:3150] CHIP:CTL: Providing certificate chain to the commissioner
          [1646909537.350347][3145:3150] CHIP:CTL: Received callback from the CA for NOC Chain generation. Status ../../third_party/connectedhomeip/src/controller/ExampleOperationalCredentialsIssuer.cpp:225: Success
      disabled: true

    - label:
          "Commissioner configures operational network on TH if TH both supports
          and requires"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Operational credentials provisioned on device 0xffff8c000b60
          CHIP:TOO: Secure Pairing Success
      disabled: true

    - label:
          "Commissioner instructs Commissionee to connect to operational network
          if not already connected"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Performing next commissioning step "FindOperational"
          CHIP:CSM: FindOrEstablishSession: PeerId = BFCBED670D527591:000000000001B669
          CHIP:CSM: FindOrEstablishSession: No existing OperationalDeviceProxy instance found
      disabled: true

    - label: "Reboot TH"
      verification: |
          1. Using TH=all-clusters-app, exit the app, re-launch app
      disabled: true

    - label:
          "Commissioner should return to the same state as step 13 to continue
          commissioning (i.e. Commissioner configure operational network on TH
          if TH both supports and requires)"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Operational credentials provisioned on device 0xffff8c000b60
          CHIP:TOO: Secure Pairing Success
      disabled: true

    - label:
          "Commissioner instructs Commissionee to connect to operational network
          if not already connected"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Performing next commissioning step "FindOperational"
          CHIP:CSM: FindOrEstablishSession: PeerId = BFCBED670D527591:000000000001B669
          CHIP:CSM: FindOrEstablishSession: No existing OperationalDeviceProxy instance found
      disabled: true

    - label: "Commissioner starts discovery of TH using Operational Discovery"
      verification: |
          Verify in DUT as client side

          CHIP:DIS: Resolving BFCBED670D527591:000000000001B669 ...
          CHIP:DIS: Operational node lookup already in progress. Will NOT start a new one.
          CHIP:DMG: ICR moving to [AwaitingDe]
          CHIP:EM: Sending Standalone Ack for MessageCounter:9439913 on exchange 63771i
          CHIP:IN: Prepared secure message 0xffffa1c07938 to 0x000000000001B669 (1)  of type 0x10 and protocolId (0, 0) on exchange 63771i with MessageCounter:695619.
          CHIP:IN: Sending encrypted msg 0xffffa1c07938 with MessageCounter:695619 to 0x000000000001B669 (1) at monotonic time: 0000000000FBA446 msec
          CHIP:EM: Flushed pending ack for MessageCounter:9439913 on exchange 63771i
          CHIP:DL: Avahi resolve found
          CHIP:DIS: Node ID resolved for BFCBED670D527591:000000000001B669
          CHIP:DIS:     Addr 0: [fe80::dea6:32ff:feba:b3f7]:5540
      disabled: true

    - label:
          "Commissioner opens a CASE session with TH over operational network"
      verification: |
          Verify in DUT as client side

          CHIP:SC: Establishing CASE session
      disabled: true

    - label: "Commissioner sends CommissioningComplete command"
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Received CommissioningComplete response
          CHIP:CTL: Successfully finished commissioning step "SendComplete"
      disabled: true

    - label:
          "Commissioning channel between the Commissioner and Commissionee is
          terminated."
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Successfully finished commissioning step "SendComplete"
          CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
          CHIP:CTL: Performing next commissioning step "Cleanup"
          CHIP:CTL: Successfully finished commissioning step "Cleanup"
          CHIP:TOO: Device commissioning completed with success
      disabled: true
