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

name:
    3.2.1. [TC-DD-2.1] Announcement by Device Verification [DUT - Commissionee]

PICS:
    - MCORE.ROLE.COMMISSIONEE

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

tests:
    - label: "Preconditions"
      verification: |
          1 - The DUT is switched on and the DUT is transport-connected (BLE, Wi-Fi or Ethernet)

          To put the DUT into commissionable state and verify commissionable state.
          This step is same in couple of other cases (like DD) so use the same verification method here too i.e. if your DUT is discoverable over mDNS then use 'chiptool discover commissionables'  to discover mDNS adv and provision the device using 'chip-tool pairing code node-id payload'.
          otherwise if your DUT is advertising over BLE , pls use the '/chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1' command to discover and provision the device (BTW the SSID , passwd, descriminator ..etc are configurable parameters for your DUT)
      disabled: true

    - label:
          "If TH is aware of the DUT's Discovery Capability Bitmask, it SHALL
          initiate Device Discovery in any order of priority on all the
          networking technologies that are supported by both the TH and the DUT
          If TH is unaware of the DUT's Discovery Capability Bitmask, it SHALL
          initiate Device Discovery in any order on all the networking
          technologies it supports out of Wi-Fi Soft-AP, BLE, and on IP network
          discovery."
      verification: |
          TH selects the DUT's capability bitmask and start the commissiong process accordingly
          No applicable TH or DUT logs.
      disabled: true

    - label:
          "If (MCORE.DD.CHIP_DEV) then If !(MCORE.DD.CHIP_DEV) then If
          (MCORE.DD.DEV_LOCK) then If (MCORE.DD.DEV_BARRIER) then"
      PICS:
          MCORE.DD.CHIP_DEV || !(MCORE.DD.CHIP_DEV) || MCORE.DD.DEV_LOCK ||
          MCORE.DD.DEV_BARRIER
      verification: |
          If (MCORE.DD.CHIP_DEV) IP/BLE discovery tool should discover the DUT else it should not
          If !(MCORE.DD.CHIP_DEV) instruct DUT to start Advertising and scan again for commissionale devices using the IP/BLE discovery tool

          Verify in TH (CHIP-TOOL)
          For devices already on the network:
          ./chip-tool discover commissionables

          [1651192893436] [15304:442604] CHIP: [DL] Mdns: OnNewAddress interface: 24 ip:fe80::dea6:32ff:fe8d:6e32
          [1651192893436] [15304:442604] CHIP: [DIS]         Vendor ID: 65521
          [1651192893436] [15304:442604] CHIP: [DIS]         Product ID: 32769
          [1651192893436] [15304:442604] CHIP: [DIS]         Long Discriminator: 3840
          [1651192893436] [15304:442604] CHIP: [DIS]         Pairing Hint: 33
          [1651192893436] [15304:442604] CHIP: [DIS]         Hostname: DCA6328D6E320000
          [1651192893436] [15304:442604] CHIP: [DIS]         Instance Name: 914762134DA8E7D1
          [1651192893436] [15304:442604] CHIP: [DIS]         IP Address #1: fe80::dea6:32ff:fe8d:6e32
          [1651192893436] [15304:442604] CHIP: [DIS]         Port: 5540
          [1651192893436] [15304:442604] CHIP: [DIS]         Commissioning Mode: 1
          [1651192893436] [15304:442604] CHIP: [DIS]         Mrp Interval idle: 5000 ms
          [1651192893436] [15304:442604] CHIP: [DIS]         Mrp Interval active: 300 ms

          For devices not on the network (i.e. BLE discovery):
          1. Discover commissionables over BLE using a BLE discovery tool of choice.
          Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
          OR
          HCIDump (https://ubuntu.com/core/docs/bluez/reference/commands)
          Observe the DUT advertising in a commissionable state
      disabled: true

    - label:
          "DUT begins sending ADVs. TH does not respond to these DUT ADVs so
          that the DUT can keep sending ADVs"
      PICS: MCORE.COM.BLE
      verification: |
          No applicable TH logs.

          1. This step can be verified using a BLE discovery tool of choice.
          Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
          OR
          HCIDump (https://ubuntu.com/core/docs/bluez/reference/commands)
          2. Observe the Service Data being advertised in Hexidecimal format
          For example, "F6-FF-00-01-0F-F1-FF-01-80-00" would translate to:
          0xF6, 0xFF= 0xFFF6 = 16-bit Matter UUID assigned by Bluetooth SIG
          0x00 = 0x00 (Commissionable) = Matter BLE OpCode
          0x01, 0x0F = 0x0F01 = 3841 Discriminator
          0xF1, 0xFF, = 0xFFF1 = 65521 VendorID
          0x01, 0x80 = 0x8001 = 32769 Product ID
          0x00 = Additional Data Flag
      disabled: true

    - label: "TH does not respond to DUT and DUT keeps sending ADVs"
      PICS: MCORE.COM.BLE
      verification: |
          No applicable TH logs.

          This step can be verified using a BLE discovery tool of choice.
          Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
          OR
          HCIDump (https://ubuntu.com/core/docs/bluez/reference/commands)+++
      disabled: true

    - label: "TH does not respond to DUT and DUT keeps sending ADVs"
      PICS: MCORE.COM.BLE
      verification: |
          No applicable TH logs.

          This BLE advertisements can be verified using  BLE discovery tool of choice.
          Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
          OR
          HCIDump (https://ubuntu.com/core/docs/bluez/reference/commands)
          ->For T0 and 30s we have to get advertisement range between 20ms to 60ms
          ->For 30s and 15mins we have to get advertisement range between 150ms to 1200ms
      disabled: true

    - label: "TH does not respond to DUT. User power cycles the DUT"
      PICS: MCORE.COM.BLE
      verification: |
          No applicable TH logs.

          1. Reboot the DUT commissionee according to manufacturer's instructions
      disabled: true

    - label:
          "TH does not respond to DUT and DUT keeps sending ADVs. TH waits at
          least 15 minutes"
      PICS: MCORE.COM.BLE
      verification: |
          No applicable TH logs.

          1. Discover commissionables over BLE using a BLE discovery tool of choice.
          Try NRF Connect app (https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop)
          OR
          HCIDump (https://ubuntu.com/core/docs/bluez/reference/commands)
          2. After DUT has been advertising for 2min59sec (right before the minimum 3min mark), check that the DUT is still advertising over BLE
          3. After DUT has been advertising for 15min, check that the DUT has stopped advertising over BLE
      disabled: true

    - label: "TH scans and finds the DUT SSID"
      PICS: MCORE.COM.WIFI
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported on TH=chip-tool
      disabled: true

    - label:
          "TH scans and finds the DUT SSID TH sends to DUT a 1st power cycle
          command (or reset manually) TH sends to DUT a 2nd power cycle command
          (or reset manually)"
      PICS: MCORE.COM.WIFI
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported on TH=chip-tool
      disabled: true

    - label: "TH scans and finds the DUT SSID"
      PICS: MCORE.COM.WIFI && MCORE.DD.IE
      verification: |
          Out of Scope for V1.0
          SoftAP commissioning not currently supported on TH=chip-tool
      disabled: true

    - label:
          "TH and DUT are connected to the same network through vendor-unique
          means or by commissioning the DUT onto the Matter network and opening
          a commissioning window. The DUT is sending mandatory Commissionable
          Node Discovery service records over DNS-SD.|DUT is able to be
          discovered over DNS-SD."
      verification: |
          ./chip-all-clusters-app
          ...
          [1646286638.375844][11651:11651] CHIP:DL: Device Configuration:
          [1646286638.375960][11651:11651] CHIP:DL:   Serial Number: TEST_SN
          [1646286638.376016][11651:11651] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1646286638.376066][11651:11651] CHIP:DL:   Product Id: 32769 (0x8001)
          [1646286638.376153][11651:11651] CHIP:DL:   Hardware Version: 0
          [1646286638.377458][11651:11651] CHIP:DL:   Setup Pin Code: 20202021
          [1646286638.377541][11651:11651] CHIP:DL:   Setup Discriminator: 3840 (0xF00)
          [1646286638.377611][11651:11651] CHIP:DL:   Manufacturing Date: (not set)
          [1646286638.377664][11651:11651] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1646286638.377771][11651:11651] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00]
          [1646286638.377865][11651:11651] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1646286638.377915][11651:11651] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00
          [1646286638.377986][11651:11651] CHIP:SVR: Manual pairing code: [34970112332]

          ./chip-tool discover commissionables
          Verify in TH (CHIP-TOOL)

          Example output using all-clusters-app's advertisements:
          [1651256405894] [18453:593886] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
          [1651256405894] [18453:593886] CHIP: [DIS]         Vendor ID: 65521
          [1651256405894] [18453:593886] CHIP: [DIS]         Product ID: 32769
          [1651256405894] [18453:593886] CHIP: [DIS]         Long Discriminator: 3840
          [1651256405894] [18453:593886] CHIP: [DIS]         Pairing Hint: 33
          [1651256405894] [18453:593886] CHIP: [DIS]         Hostname: DCA6328D2B9F0000
          [1651256405894] [18453:593886] CHIP: [DIS]         Instance Name: 8FFEE04E82830E26
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #1: fd54:23a1:c6de:4637:dea6:32ff:fe8d:2b9f
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #2: fe80::dea6:32ff:fe8d:2b9f
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #3: fe80::dea6:32ff:fe8d:2ba0
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #4: 192.168.1.2
          [1651256405894] [18453:593886] CHIP: [DIS]         Port: 5540
          [1651256405894] [18453:593886] CHIP: [DIS]         Commissioning Mode: 1
          [1651256405894] [18453:593886] CHIP: [DIS]         Mrp Interval idle: 5000 ms
          [1651256405894] [18453:593886] CHIP: [DIS]         Mrp Interval active: 300 ms
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending
          optional Commissionable Node Discovery service records over DNS-SD."
      PICS: MCORE.DD.TXT_KEY_VP
      verification: |
          $ ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674595314229] [66646:12313662] [DIS] Discovered node:
          [1674595314229] [66646:12313662] [DIS]         Hostname: 010203040506
          [1674595314229] [66646:12313662] [DIS]         IP Address #1: fe80::2ca0:93c7:6e52:5b12
          [1674595314229] [66646:12313662] [DIS]         IP Address #2: fd11:1111:1122:2222:c15b:6c2c:eef:3c07
          [1674595314229] [66646:12313662] [DIS]         IP Address #3: fdf1:228a:1759:0:e96:da4d:3138:a0c5
          [1674595314229] [66646:12313662] [DIS]         Port: 5540
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval idle: not present
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval active: not present
          [1674595314229] [66646:12313662] [DIS]         TCP Supported: 0
          [1674595314229] [66646:12313662] [DIS]         Rotating ID: AB
          [1674595314229] [66646:12313662] [DIS]         Device Name: Test Bulb
          [1674595314229] [66646:12313662] [DIS]         Vendor ID: 65521
          [1674595314229] [66646:12313662] [DIS]         Product ID: 32769
          [1674595314229] [66646:12313662] [DIS]         Device Type: 257
          [1674595314229] [66646:12313662] [DIS]         Long Discriminator: 840
          [1674595314229] [66646:12313662] [DIS]         Pairing Instruction: 10
          [1674595314229] [66646:12313662] [DIS]         Pairing Hint: 33
          [1674595314229] [66646:12313662] [DIS]         Instance Name: D75A66B8EE701A71
          [1674595314229] [66646:12313662] [DIS]         Commissioning Mode: 0

          OR
          1. User a dns-sd records browser
          $ avahi-browse _matterc._udp -r

          Example output using all-clusters-app's advertisements:
          =  wlan0 IPv6 32635B3D67B32ABB                              _matterc._udp        local
            hostname = [010203040506.local]
            address = [fe80::3d59:5ecc:1961:27b0]
            port = [5540]
            txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"]
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending
          optional Commissionable Node Discovery service records over DNS-SD."
      PICS: MCORE.DD.TXT_KEY_DT
      verification: |
          $ ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674595314229] [66646:12313662] [DIS] Discovered node:
          [1674595314229] [66646:12313662] [DIS]         Hostname: 010203040506
          [1674595314229] [66646:12313662] [DIS]         IP Address #1: fe80::2ca0:93c7:6e52:5b12
          [1674595314229] [66646:12313662] [DIS]         IP Address #2: fd11:1111:1122:2222:c15b:6c2c:eef:3c07
          [1674595314229] [66646:12313662] [DIS]         IP Address #3: fdf1:228a:1759:0:e96:da4d:3138:a0c5
          [1674595314229] [66646:12313662] [DIS]         Port: 5540
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval idle: not present
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval active: not present
          [1674595314229] [66646:12313662] [DIS]         TCP Supported: 0
          [1674595314229] [66646:12313662] [DIS]         Rotating ID: AB
          [1674595314229] [66646:12313662] [DIS]         Device Name: Test Bulb
          [1674595314229] [66646:12313662] [DIS]         Vendor ID: 65521
          [1674595314229] [66646:12313662] [DIS]         Product ID: 32769
          [1674595314229] [66646:12313662] [DIS]         Device Type: 257
          [1674595314229] [66646:12313662] [DIS]         Long Discriminator: 840
          [1674595314229] [66646:12313662] [DIS]         Pairing Instruction: 10
          [1674595314229] [66646:12313662] [DIS]         Pairing Hint: 33
          [1674595314229] [66646:12313662] [DIS]         Instance Name: D75A66B8EE701A71
          [1674595314229] [66646:12313662] [DIS]         Commissioning Mode: 0

          OR
          1. User a dns-sd records browser
          $ avahi-browse _matterc._udp -r

          Example output using all-clusters-app's advertisements:
          =  wlan0 IPv6 32635B3D67B32ABB                              _matterc._udp        local
            hostname = [010203040506.local]
            address = [fe80::3d59:5ecc:1961:27b0]
            port = [5540]
            txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"]
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending
          optional Commissionable Node Discovery service records over DNS-SD."
      PICS: MCORE.DD.TXT_KEY_DN
      verification: |
          $ ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674595314229] [66646:12313662] [DIS] Discovered node:
          [1674595314229] [66646:12313662] [DIS]         Hostname: 010203040506
          [1674595314229] [66646:12313662] [DIS]         IP Address #1: fe80::2ca0:93c7:6e52:5b12
          [1674595314229] [66646:12313662] [DIS]         IP Address #2: fd11:1111:1122:2222:c15b:6c2c:eef:3c07
          [1674595314229] [66646:12313662] [DIS]         IP Address #3: fdf1:228a:1759:0:e96:da4d:3138:a0c5
          [1674595314229] [66646:12313662] [DIS]         Port: 5540
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval idle: not present
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval active: not present
          [1674595314229] [66646:12313662] [DIS]         TCP Supported: 0
          [1674595314229] [66646:12313662] [DIS]         Rotating ID: AB
          [1674595314229] [66646:12313662] [DIS]         Device Name: Test Bulb
          [1674595314229] [66646:12313662] [DIS]         Vendor ID: 65521
          [1674595314229] [66646:12313662] [DIS]         Product ID: 32769
          [1674595314229] [66646:12313662] [DIS]         Device Type: 257
          [1674595314229] [66646:12313662] [DIS]         Long Discriminator: 840
          [1674595314229] [66646:12313662] [DIS]         Pairing Instruction: 10
          [1674595314229] [66646:12313662] [DIS]         Pairing Hint: 33
          [1674595314229] [66646:12313662] [DIS]         Instance Name: D75A66B8EE701A71
          [1674595314229] [66646:12313662] [DIS]         Commissioning Mode: 0

          OR
          1. User a dns-sd records browser
          $ avahi-browse _matterc._udp -r

          Example output using all-clusters-app's advertisements:
          =  wlan0 IPv6 32635B3D67B32ABB                              _matterc._udp        local
            hostname = [010203040506.local]
            address = [fe80::3d59:5ecc:1961:27b0]
            port = [5540]
            txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"]
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending
          optional Commissionable Node Discovery service records over DNS-SD."
      PICS: MCORE.DD.TXT_KEY_RI
      verification: |
          $ ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674595314229] [66646:12313662] [DIS] Discovered node:
          [1674595314229] [66646:12313662] [DIS]         Hostname: 010203040506
          [1674595314229] [66646:12313662] [DIS]         IP Address #1: fe80::2ca0:93c7:6e52:5b12
          [1674595314229] [66646:12313662] [DIS]         IP Address #2: fd11:1111:1122:2222:c15b:6c2c:eef:3c07
          [1674595314229] [66646:12313662] [DIS]         IP Address #3: fdf1:228a:1759:0:e96:da4d:3138:a0c5
          [1674595314229] [66646:12313662] [DIS]         Port: 5540
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval idle: not present
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval active: not present
          [1674595314229] [66646:12313662] [DIS]         TCP Supported: 0
          [1674595314229] [66646:12313662] [DIS]         Rotating ID: AB
          [1674595314229] [66646:12313662] [DIS]         Device Name: Test Bulb
          [1674595314229] [66646:12313662] [DIS]         Vendor ID: 65521
          [1674595314229] [66646:12313662] [DIS]         Product ID: 32769
          [1674595314229] [66646:12313662] [DIS]         Device Type: 257
          [1674595314229] [66646:12313662] [DIS]         Long Discriminator: 840
          [1674595314229] [66646:12313662] [DIS]         Pairing Instruction: 10
          [1674595314229] [66646:12313662] [DIS]         Pairing Hint: 33
          [1674595314229] [66646:12313662] [DIS]         Instance Name: D75A66B8EE701A71
          [1674595314229] [66646:12313662] [DIS]         Commissioning Mode: 0

          OR
          1. User a dns-sd records browser
          $ avahi-browse _matterc._udp -r

          Example output using all-clusters-app's advertisements:
          =  wlan0 IPv6 32635B3D67B32ABB                              _matterc._udp        local
            hostname = [010203040506.local]
            address = [fe80::3d59:5ecc:1961:27b0]
            port = [5540]
            txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"]
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending
          optional Commissionable Node Discovery service records over DNS-SD."
      PICS: MCORE.DD.TXT_KEY_PH
      verification: |
          $ ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674595314229] [66646:12313662] [DIS] Discovered node:
          [1674595314229] [66646:12313662] [DIS]         Hostname: 010203040506
          [1674595314229] [66646:12313662] [DIS]         IP Address #1: fe80::2ca0:93c7:6e52:5b12
          [1674595314229] [66646:12313662] [DIS]         IP Address #2: fd11:1111:1122:2222:c15b:6c2c:eef:3c07
          [1674595314229] [66646:12313662] [DIS]         IP Address #3: fdf1:228a:1759:0:e96:da4d:3138:a0c5
          [1674595314229] [66646:12313662] [DIS]         Port: 5540
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval idle: not present
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval active: not present
          [1674595314229] [66646:12313662] [DIS]         TCP Supported: 0
          [1674595314229] [66646:12313662] [DIS]         Rotating ID: AB
          [1674595314229] [66646:12313662] [DIS]         Device Name: Test Bulb
          [1674595314229] [66646:12313662] [DIS]         Vendor ID: 65521
          [1674595314229] [66646:12313662] [DIS]         Product ID: 32769
          [1674595314229] [66646:12313662] [DIS]         Device Type: 257
          [1674595314229] [66646:12313662] [DIS]         Long Discriminator: 840
          [1674595314229] [66646:12313662] [DIS]         Pairing Instruction: 10
          [1674595314229] [66646:12313662] [DIS]         Pairing Hint: 33
          [1674595314229] [66646:12313662] [DIS]         Instance Name: D75A66B8EE701A71
          [1674595314229] [66646:12313662] [DIS]         Commissioning Mode: 0

          OR
          1. User a dns-sd records browser
          $ avahi-browse _matterc._udp -r

          Example output using all-clusters-app's advertisements:
          =  wlan0 IPv6 32635B3D67B32ABB                              _matterc._udp        local
             hostname = [010203040506.local]
             address = [fe80::3d59:5ecc:1961:27b0]
             port = [5540]
             txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"]
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending
          optional Commissionable Node Discovery service records over DNS-SD."
      PICS: MCORE.DD.TXT_KEY_PI
      verification: |
          $ ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674595314229] [66646:12313662] [DIS] Discovered node:
          [1674595314229] [66646:12313662] [DIS]         Hostname: 010203040506
          [1674595314229] [66646:12313662] [DIS]         IP Address #1: fe80::2ca0:93c7:6e52:5b12
          [1674595314229] [66646:12313662] [DIS]         IP Address #2: fd11:1111:1122:2222:c15b:6c2c:eef:3c07
          [1674595314229] [66646:12313662] [DIS]         IP Address #3: fdf1:228a:1759:0:e96:da4d:3138:a0c5
          [1674595314229] [66646:12313662] [DIS]         Port: 5540
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval idle: not present
          [1674595314229] [66646:12313662] [DIS]         Mrp Interval active: not present
          [1674595314229] [66646:12313662] [DIS]         TCP Supported: 0
          [1674595314229] [66646:12313662] [DIS]         Rotating ID: AB
          [1674595314229] [66646:12313662] [DIS]         Device Name: Test Bulb
          [1674595314229] [66646:12313662] [DIS]         Vendor ID: 65521
          [1674595314229] [66646:12313662] [DIS]         Product ID: 32769
          [1674595314229] [66646:12313662] [DIS]         Device Type: 257
          [1674595314229] [66646:12313662] [DIS]         Long Discriminator: 840
          [1674595314229] [66646:12313662] [DIS]         Pairing Instruction: 10
          [1674595314229] [66646:12313662] [DIS]         Pairing Hint: 33
          [1674595314229] [66646:12313662] [DIS]         Instance Name: D75A66B8EE701A71
          [1674595314229] [66646:12313662] [DIS]         Commissioning Mode: 0

          OR
          1. User a dns-sd records browser
          $ avahi-browse _matterc._udp -r

          Example output using all-clusters-app's advertisements:
          =  wlan0 IPv6 32635B3D67B32ABB                              _matterc._udp        local
            hostname = [010203040506.local]
            address = [fe80::3d59:5ecc:1961:27b0]
            port = [5540]
            txt = ["PI=10" "PH=33" "RI=AB" "CM=0" "D=840" "DN=Test Bulb" "DT=257" "VP=65521+32769"]
      disabled: true

    - label: "Place the DUT device into a non-commissionable state"
      PICS: MCORE.DD.EXTENDED_DISCOVERY
      verification: |
          1. Vendor specific, take DUT out of commissioning mode

          2. Use a dns-sd browser to check for _CM subtype. Should be empty.
           dns-sd -B _matterc._udp,_CM
          Browsing for _matterc._udp,_CM
          DATE: ---Thu 07 Jul 2022---
          11:51:34.814  ...STARTING...
      disabled: true

    - label:
          "TH and DUT are connected to the same network and the DUT is sending a
          Commissionable Node Discovery service record over DNS-SD."
      verification: |
          ./chip-tool discover commissionables
          Verify in TH (CHIP-TOOL)

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1651256405894] [18453:593886] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.2
          [1651256405894] [18453:593886] CHIP: [DIS]         Vendor ID: 65521
          [1651256405894] [18453:593886] CHIP: [DIS]         Product ID: 32769
          [1651256405894] [18453:593886] CHIP: [DIS]         Long Discriminator: 3840
          [1651256405894] [18453:593886] CHIP: [DIS]         Pairing Hint: 33
          [1651256405894] [18453:593886] CHIP: [DIS]         Hostname: DCA6328D2B9F0000
          [1651256405894] [18453:593886] CHIP: [DIS]         Instance Name: 8FFEE04E82830E26
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #1: fd54:23a1:c6de:4637:dea6:32ff:fe8d:2b9f
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #2: fe80::dea6:32ff:fe8d:2b9f
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #3: fe80::dea6:32ff:fe8d:2ba0
          [1651256405894] [18453:593886] CHIP: [DIS]         IP Address #4: 192.168.1.2
          [1651256405894] [18453:593886] CHIP: [DIS]         Port: 5540
          [1651256405894] [18453:593886] CHIP: [DIS]         Commissioning Mode: 1
          [1651256405894] [18453:593886] CHIP: [DIS]         Mrp Interval idle: 5000 ms
          [1651256405894] [18453:593886] CHIP: [DIS]         Mrp Interval active: 300 ms
      disabled: true

    - label:
          "Mandatory Commissioning Subtypes: Send a browse request for
          '_services._dns-sd._udp' using a DNS-SD records command-line test tool
          (i.e. 'dns-sd -B _services._dns-sd._udp' or 'avahi-browse
          _services._dns-sd._udp -r')"
      verification: |
          Vendor specific, take DUT out of commissioning mode
           dns-sd -B _services._dns-sd._udp

          Example output using all-clusters-app's advertisements:
          11:30:36.040  Add        3   7 .                    _sub.local.          _L3840
          11:30:36.040  Add        3   7 .                    _sub.local.          _S15
          11:30:36.040  Add        2   7 .                    _sub.local.          _CM
      disabled: true

    - label:
          "Optional Commissioning Subtypes: Send a browse request for
          '_services._dns-sd._udp' using a DNS-SD records command-line test tool
          (i.e. 'dns-sd -B _services._dns-sd._udp' or 'avahi-browse
          _services._dns-sd._udp -r')"
      PICS: MCORE.DD.COMMISSIONING_SUBTYPE_V || MCORE.DD.COMMISSIONING_SUBTYPE_T
      verification: |
          Vendor specific, take DUT out of commissioning mode
          dns-sd -B _services._dns-sd._udp

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          11:56:29.770  Add        3   7 .                    _sub.local.          _V65521
      disabled: true

    - label: "Place the DUT device into Commissioning mode"
      verification: |
          $  ./chip-tool discover commissionables
          Verify in TH as commissioner side:

          Example output using all-clusters-app's advertisements found on the TH commissioner:
          [1674601355.769735][9780:9782] CHIP:DIS: Discovered node:
          [1674601355.769786][9780:9782] CHIP:DIS:         Hostname: 88665A0BE29E
          [1674601355.769826][9780:9782] CHIP:DIS:         IP Address #1: fd11:1111:1122:2222:8cd:a043:f97:9d96
          [1674601355.769852][9780:9782] CHIP:DIS:         IP Address #2: fe80::cab:7cb7:31cb:cd5c
          [1674601355.769876][9780:9782] CHIP:DIS:         IP Address #3: 17.112.82.171
          [1674601355.769898][9780:9782] CHIP:DIS:         Port: 5540
          [1674601355.769920][9780:9782] CHIP:DIS:         Mrp Interval idle: not present
          [1674601355.769942][9780:9782] CHIP:DIS:         Mrp Interval active: not present
          [1674601355.769963][9780:9782] CHIP:DIS:         TCP Supported: 1
          [1674601355.769986][9780:9782] CHIP:DIS:         Vendor ID: 65521
          [1674601355.770005][9780:9782] CHIP:DIS:         Product ID: 32769
          [1674601355.770026][9780:9782] CHIP:DIS:         Long Discriminator: 3841
          [1674601355.770048][9780:9782] CHIP:DIS:         Pairing Hint: 33
          [1674601355.770070][9780:9782] CHIP:DIS:         Instance Name: A043306EF9D2CB3F
          [1674601355.770093][9780:9782] CHIP:DIS:         Commissioning Mode: 1
      disabled: true

    - label:
          "Send a browse request for '_matterc._udp' using a DNS-SD records
          command-line test tool (i.e. 'dns-sd -B _matterc._udp' or
          'avahi-browse _matterc._udp -r')"
      verification: |
          Verify using the DNS-SD records command-line test tool:
          $ dns-sd -B _matterc._udp
          Browsing for _matterc._udp
          DATE: ---Tue 24 Jan 2023---
          22:56:40.175  ...STARTING...
          Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
          22:56:40.175  Add        2   2 local.               _matterc._udp.       A043306EF9D2CB3F

          OR

          $ avahi-browse _matterc._udp -r
          +   eth0 IPv4 A043306EF9D2CB3F                              _matterc._udp        local
          =   eth0 IPv4 A043306EF9D2CB3F                              _matterc._udp        local
            hostname = [88665A0BE29E.local]
            address = [17.112.82.171]
            port = [5540]
            txt = ["PI=" "PH=33" "CM=1" "D=3841" "T=1" "VP=65521+32769"]
      disabled: true
