# 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 knows the DUTs Discovery Capability Bitmask, it starts the
          commissioning process in any order of priority on all of the
          networking technologies that are supported by both the TH and the DUT"
      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: "TH does not respond to DUT and DUT keeps sending ADVs"
      PICS: MCORE.COM.BLE
      verification: |
          Verify in DUT(ALL-CLUSTER-APP)

          [5855][P][DIS]Advertise commission parameter vendorID=65521 productID=32773 discriminator=3840/15
      disabled: true

    - label: "TH does not respond to DUT and DUT keeps sending ADVs"
      PICS: MCORE.COM.BLE
      verification: |
          No applicable TH or DUT 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: |
          This BLE advertisements can be verified using  BLE discovery tool of choice (Try NRF Connect OR HCIDump)
          ->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
          Verify in DUT(ALL-CLUSTER-APP)

          I: 3242 [DL]CHIPoBLE advertising started
          I: 3279 [DL]NFC Tag emulation started
          I: 33245 [DL]CHIPoBLE advertising mode changed to slow
          D: 901346 [DIS]OnExpiration callback for cleared session
          D: 901351 [DIS]Extended discovery timeout cancelled
          I: 903097 [SVR]Closing pairing window
          D: 903100 [IN]SecureSession Released 0x20002c00 Type:1 LSID:27704
          I: 903106 [DIS]Updating services using commissioning mode 0
          D: 903111 [DL]Using Thread extended MAC for hostname.
          D: 903116 [DL]Using Thread extended MAC for hostname.
          I: 903138 [DIS]Advertise commission parameter vendorID=65521 productID=32784 di5
          E: 903147 [DIS]Failed to advertise extended commissionable node: Error CHIP:0x03


          After 900s (that is 15min) advertisement stops
          Verify in DUT(ALL-CLUSTER-APP)

          D: 903154 [DIS]Scheduling extended discovery timeout in 900s
          E: 903160 [DIS]Failed to finalize service update: Error CHIP:0x0000001C
          D: 903166 [DL]CHIPoBLE advertising set to off
          I: 903171 [DL]CHIPoBLE advertising stopped
          I: 903174 [DL]NFC Tag emulation stopped
      disabled: true

    - label: "TH does not respond to DUT. User power cycles the DUT"
      PICS: MCORE.COM.BLE
      verification: |
          1. Reboot the DUT commissionee

          sudo reboot
      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: |
          Check timestamp, ADV stop after 15 mins
          Verify in DUT(ALL-CLUSTER-APP)

          D: 903154 [DIS]Scheduling extended discovery timeout in 900s
          E: 903160 [DIS]Failed to finalize service update: Error CHIP:0x0000001C
      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.DD.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 and the DUT is sending
          mandatory Commissionable Node Discovery service records 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 && MCORE.DD.TXT_KEY_DT && MCORE.DD.TXT_KEY_DN &&
          MCORE.DD.TXT_KEY_RI && MCORE.DD.TXT_KEY_PH && MCORE.DD.TXT_KEY_PI
      verification: |
          ./chip-tool discover commissionables
          Verify in TH (CHIP-TOOL)

          Example output using all-clusters-app"s advertisements found on the TH commissioner:
          [1657218902314] [29617:16663220] CHIP: [DL] Browsing for: _matterc._udp
          [1657218902488] [29617:16663220] CHIP: [DL] Mdns: OnBrowseAdd  name: 5B4185091B6CAD28, type: _matterc._udp., domain: local., interface: 7
          [1657218902488] [29617:16663220] CHIP: [DL] Resolve type=_matterc._udp name=5B4185091B6CAD28 interface=7
          [1657218902489] [29617:16663220] CHIP: [DL] Mdns : OnNewInterface hostname:DCA6328D2B9F0000.local. fullname:5B4185091B6CAD28._matterc._udp.local. interface: 7
          [1657218902490] [29617:16663220] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2
          [1657218902490] [29617:16663220] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fe80::1e81:3e0:3865:2d29
          [1657218902490] [29617:16663220] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.10
          [1657218902490] [29617:16663220] CHIP: [DIS]         Hostname: DCA6328D2B9F0000
          [1657218902490] [29617:16663220] CHIP: [DIS]         IP Address #1: fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2
          [1657218902490] [29617:16663220] CHIP: [DIS]         IP Address #2: fe80::1e81:3e0:3865:2d29
          [1657218902490] [29617:16663220] CHIP: [DIS]         IP Address #3: 192.168.1.10
          [1657218902490] [29617:16663220] CHIP: [DIS]         Port: 5540
          [1657218902490] [29617:16663220] CHIP: [DIS]         Mrp Interval idle: 5000 ms
          [1657218902490] [29617:16663220] CHIP: [DIS]         Mrp Interval active: 300 ms
          [1657218902490] [29617:16663220] CHIP: [DIS]         Vendor ID: 65521
          [1657218902490] [29617:16663220] CHIP: [DIS]         Product ID: 32769
          [1657218902490] [29617:16663220] CHIP: [DIS]         Long Discriminator: 3840
          [1657218902490] [29617:16663220] CHIP: [DIS]         Pairing Hint: 33
          [1657218902490] [29617:16663220] CHIP: [DIS]         Instance Name: 5B4185091B6CAD28
          [1657218902490] [29617:16663220] CHIP: [DIS]         Commissioning Mode: 1


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

          Example output using all-clusters-app"s advertisements:
          +   eth0 IPv6 1E36C55245E2908D                              _matterc._udp        local
          =   eth0 IPv6 1E36C55245E2908D                              _matterc._udp        local
             hostname = [DCA6328D2B9F0000.local]
             address = [192.168.1.10]
             port = [5540]
             txt = ["PI=" "PH=33" "CM=1" "D=3840" "T=1" "SAI=300" "SII=5000" "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 (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:
          "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: |
          ./chip-tool discover commissionables
          Verify in TH (CHIP-TOOL)

          [1657220492275] [29906:16679893] CHIP: [DL] Browsing for: _matterc._udp
          [1657220492275] [29906:16679893] CHIP: [DL] Mdns: OnBrowseAdd  name: 74AFA51731B2E373, type: _matterc._udp., domain: local., interface: 7
          [1657220492275] [29906:16679893] CHIP: [DL] Resolve type=_matterc._udp name=74AFA51731B2E373 interface=7
          [1657220492276] [29906:16679893] CHIP: [DL] Mdns : OnNewInterface hostname:DCA6328D2B9F0000.local. fullname:74AFA51731B2E373._matterc._udp.local. interface: 7
          [1657220492277] [29906:16679893] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2
          [1657220492277] [29906:16679893] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:fe80::1e81:3e0:3865:2d29
          [1657220492277] [29906:16679893] CHIP: [DL] Mdns: OnNewAddress interface: 7 ip:192.168.1.10
          [1657220492277] [29906:16679893] CHIP: [DIS]         Hostname: DCA6328D2B9F0000
          [1657220492277] [29906:16679893] CHIP: [DIS]         IP Address #1: fd54:23a1:c6de:4637:4c4:ee82:2a0f:b5e2
          [1657220492277] [29906:16679893] CHIP: [DIS]         IP Address #2: fe80::1e81:3e0:3865:2d29
          [1657220492277] [29906:16679893] CHIP: [DIS]         IP Address #3: 192.168.1.10
          [1657220492277] [29906:16679893] CHIP: [DIS]         Port: 5540
          [1657220492277] [29906:16679893] CHIP: [DIS]         Mrp Interval idle: 5000 ms
          [1657220492277] [29906:16679893] CHIP: [DIS]         Mrp Interval active: 300 ms
          [1657220492277] [29906:16679893] CHIP: [DIS]         Vendor ID: 65521
          [1657220492277] [29906:16679893] CHIP: [DIS]         Product ID: 32769
          [1657220492277] [29906:16679893] CHIP: [DIS]         Long Discriminator: 3840
          [1657220492277] [29906:16679893] CHIP: [DIS]         Pairing Hint: 33
          [1657220492277] [29906:16679893] CHIP: [DIS]         Instance Name: 74AFA51731B2E373
          [1657220492277] [29906:16679893] CHIP: [DIS]         Commissioning Mode: 1
      disabled: true
