| # 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. |
| |
| name: |
| 13.4.2. [TC-SC-4.2] Commissionable Node Discovery - Commissioner Case [DUT - |
| Commissioner] |
| |
| PICS: |
| - MCORE.ROLE.COMMISSIONER |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Secure Channel" |
| endpoint: 0 |
| discriminator: |
| type: int16u |
| defaultValue: 3840 |
| vendorId: |
| type: int16u |
| defaultValue: 65521 |
| productId: |
| type: int16u |
| defaultValue: 32769 |
| deviceType: |
| type: int16u |
| defaultValue: 5 |
| |
| tests: |
| - label: "Wait for the commissioned device to be retrieved" |
| cluster: "DelayCommands" |
| command: "WaitForCommissionee" |
| arguments: |
| values: |
| - name: "nodeId" |
| value: nodeId |
| |
| - label: |
| "TH is put in Commissioning Mode using Open Basic Commissioning Window |
| command and starts advertising Commissionable Node Discovery service |
| using DNS-SD" |
| cluster: "AdministratorCommissioning" |
| command: "OpenBasicCommissioningWindow" |
| timedInteractionTimeoutMs: 10000 |
| arguments: |
| values: |
| - name: "CommissioningTimeout" |
| value: 180 |
| |
| - label: "Check Instance Name" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "instanceName" |
| saveAs: deviceInstanceNameBeforeReboot1 |
| constraints: |
| minLength: 16 |
| maxLength: 16 |
| isUpperCase: true |
| isHexString: true |
| |
| #validate the service type and the service domain not implemented in CI |
| |
| - label: "Check Hostname" |
| PICS: "( MCORE.SC.WIFI || MCORE.SC.ETH ) && !MCORE.SC.THR" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "hostName" |
| constraints: |
| minLength: 12 |
| maxLength: 12 |
| isUpperCase: true |
| isHexString: true |
| |
| - label: "Check Hostname" |
| PICS: "( !MCORE.SC.WIFI && !MCORE.SC.ETH ) && MCORE.SC.THR " |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "hostName" |
| constraints: |
| minLength: 16 |
| maxLength: 16 |
| isUpperCase: true |
| isHexString: true |
| |
| #subtype |
| - label: "Check Long Discriminator _L" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByLongDiscriminator" |
| arguments: |
| values: |
| - name: "value" |
| value: discriminator |
| |
| - label: "Check Short Discriminator (_S)" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByShortDiscriminator" |
| arguments: |
| values: |
| - name: "value" |
| value: discriminator |
| |
| - label: "Check Vendor ID (_V)" |
| PICS: MCORE.SC.VENDOR_SUBTYPE |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByVendorId" |
| arguments: |
| values: |
| - name: "value" |
| value: vendorId |
| |
| - label: "Check Device Type ID (_T)" |
| PICS: PICS_SKIP_SAMPLE_APP && MCORE.SC.DEVTYPE_SUBTYPE |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByDeviceType" |
| arguments: |
| values: |
| - name: "value" |
| value: deviceType |
| |
| - label: "Check Commissioning Mode (_CM)" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByCommissioningMode" |
| |
| - label: "TXT key for Vendor ID and Product ID (VP)" |
| PICS: MCORE.SC.VP_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "vendorId" |
| value: vendorId |
| |
| - label: "TXT key for Vendor ID and Product ID (VP)" |
| PICS: MCORE.SC.VP_KEY |
| optional: true |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "productId" |
| value: productId |
| |
| - label: "Optional TXT key for MRP Retry Interval Idle (CRI)" |
| PICS: MCORE.SC.SII_OP_DISCOVERY_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "mrpRetryIntervalIdle" |
| constraints: |
| maxValue: 3600000 |
| |
| - label: "Optional TXT key for MRP Retry Interval Active (CRA)" |
| PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "mrpRetryIntervalActive" |
| constraints: |
| maxValue: 3600000 |
| |
| - label: "TXT key for commissioning mode (CM)" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "commissioningMode" |
| value: 1 |
| |
| - label: "Optional TXT key for device type (DT)" |
| PICS: PICS_SKIP_SAMPLE_APP && MCORE.SC.DT_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "deviceType" |
| value: deviceType |
| constraints: |
| maxValue: 999 |
| |
| - label: "Optional TXT key for device name (DN)" |
| PICS: MCORE.SC.DN_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "deviceName" |
| constraints: |
| maxLength: 32 |
| |
| - label: "Optional TXT key for rotating device identifier (RI)" |
| PICS: MCORE.SC.RI_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "rotatingIdLen" |
| constraints: |
| maxValue: 100 |
| |
| - label: "Optional TXT key for pairing hint (PH)" |
| PICS: MCORE.SC.PH_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "pairingHint" |
| constraints: |
| notValue: 0 |
| |
| - label: "Optional TXT key for pairing instructions (PI)" |
| PICS: MCORE.SC.PI_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "pairingInstruction" |
| constraints: |
| maxLength: 128 |
| |
| - label: "Check IPs" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "numIPs" |
| constraints: |
| minValue: 1 |
| |
| - label: "Stop target device" |
| PICS: PICS_SDK_CI_ONLY |
| cluster: "SystemCommands" |
| command: "Stop" |
| |
| - label: |
| "Start target device with the provided discriminator for basic |
| commissioning advertisement" |
| cluster: "SystemCommands" |
| PICS: PICS_SDK_CI_ONLY |
| command: "Start" |
| arguments: |
| values: |
| - name: "discriminator" |
| value: discriminator |
| |
| - label: "TH is rebooted" |
| verification: | |
| Not implemented in YAML |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_SKIP_SAMPLE_APP |
| arguments: |
| values: |
| - name: "message" |
| value: "Please reboot the TH and enter 'y' after TH starts" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: "Wait for the commissioned device to be retrieved" |
| cluster: "DelayCommands" |
| command: "WaitForCommissionee" |
| arguments: |
| values: |
| - name: "nodeId" |
| value: nodeId |
| |
| - label: "Open Commissioning Window" |
| cluster: "AdministratorCommissioning" |
| command: "OpenBasicCommissioningWindow" |
| timedInteractionTimeoutMs: 10000 |
| arguments: |
| values: |
| - name: "CommissioningTimeout" |
| value: 180 |
| |
| - label: "Check Instance Name" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "instanceName" |
| constraints: |
| minLength: 16 |
| maxLength: 16 |
| isUpperCase: true |
| isHexString: true |
| notValue: deviceInstanceNameBeforeReboot1 |
| |
| #validate the service type and the service domain not implemented in CI |
| |
| - label: "Check Hostname" |
| PICS: "( MCORE.SC.WIFI || MCORE.SC.ETH ) && !MCORE.SC.THR " |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "hostName" |
| constraints: |
| minLength: 12 |
| maxLength: 12 |
| isUpperCase: true |
| isHexString: true |
| |
| - label: "Check Hostname" |
| PICS: "( !MCORE.SC.WIFI && !MCORE.SC.ETH ) && MCORE.SC.THR" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "hostName" |
| constraints: |
| minLength: 16 |
| maxLength: 16 |
| isUpperCase: true |
| isHexString: true |
| |
| - label: "Check Long Discriminator _L" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByLongDiscriminator" |
| arguments: |
| values: |
| - name: "value" |
| value: discriminator |
| |
| - label: "Check Short Discriminator (_S)" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByShortDiscriminator" |
| arguments: |
| values: |
| - name: "value" |
| value: discriminator |
| |
| - label: "Check Vendor ID (_V)" |
| PICS: MCORE.SC.VENDOR_SUBTYPE |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByVendorId" |
| arguments: |
| values: |
| - name: "value" |
| value: vendorId |
| |
| - label: "Check Device Type ID (_T)" |
| PICS: PICS_SKIP_SAMPLE_APP && MCORE.SC.DEVTYPE_SUBTYPE |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByDeviceType" |
| arguments: |
| values: |
| - name: "value" |
| value: deviceType |
| |
| - label: "Check Commissioning Mode (_CM)" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionableByCommissioningMode" |
| |
| - label: "TXT key for Vendor ID and Product ID (VP)" |
| PICS: MCORE.SC.VP_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "vendorId" |
| value: vendorId |
| |
| - label: "TXT key for Vendor ID and Product ID (VP)" |
| PICS: MCORE.SC.VP_KEY |
| optional: true |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "productId" |
| value: productId |
| |
| - label: "Optional TXT key for MRP Retry Interval Idle (CRI)" |
| PICS: MCORE.SC.SII_OP_DISCOVERY_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "mrpRetryIntervalIdle" |
| constraints: |
| maxValue: 3600000 |
| |
| - label: "Optional TXT key for MRP Retry Interval Active (CRA)" |
| PICS: MCORE.SC.SAI_OP_DISCOVERY_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "mrpRetryIntervalActive" |
| constraints: |
| maxValue: 3600000 |
| |
| - label: "TXT key for commissioning mode (CM)" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "commissioningMode" |
| value: 1 |
| |
| - label: "Optional TXT key for device type (DT)" |
| PICS: PICS_SKIP_SAMPLE_APP && MCORE.SC.DT_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "deviceType" |
| value: deviceType |
| constraints: |
| maxValue: 999 |
| |
| - label: "Optional TXT key for device name (DN)" |
| PICS: MCORE.SC.DN_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "deviceName" |
| constraints: |
| maxLength: 32 |
| |
| - label: "Optional TXT key for rotating device identifier (RI)" |
| PICS: MCORE.SC.RI_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "rotatingIdLen" |
| constraints: |
| maxValue: 100 |
| |
| - label: "Optional TXT key for pairing hint (PH)" |
| PICS: MCORE.SC.PH_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "pairingHint" |
| constraints: |
| notValue: 0 |
| |
| - label: "Optional TXT key for pairing instructions (PI)" |
| PICS: MCORE.SC.PI_KEY |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "pairingInstruction" |
| constraints: |
| maxLength: 128 |
| |
| - label: "Check IPs" |
| cluster: "DiscoveryCommands" |
| command: "FindCommissionable" |
| response: |
| values: |
| - name: "numIPs" |
| constraints: |
| minValue: 1 |
| |
| #Negative scenarios not implemented in CI |
| - label: "TH adds an unknown key/value pair in the advertised data" |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_USER_PROMPT |
| arguments: |
| values: |
| - name: "message" |
| value: |
| "Please enter 'y' if TH adds an unknown key/value pair in |
| the advertised data" |
| - name: "expectedValue" |
| value: "y" |
| |
| #Negative scenarios not implemented in CI |
| - label: "Scan for DNS-SD commissioner advertisements from TH" |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_USER_PROMPT |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' for success" |
| - name: "expectedValue" |
| value: "y" |