| # Copyright (c) 2023 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: |
| 12.4.9. [TC-CNET-4.11] [WiFi] Verification for ConnectNetwork Command |
| [DUT-Server] |
| |
| PICS: |
| - CNET.S.F00 |
| |
| config: |
| nodeId: 0x12344321 |
| cluster: "Network Commissioning" |
| #PIXIT.CNET.ENDPOINT_WIFI |
| endpoint: 0 |
| |
| PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID: |
| type: octet_string |
| defaultValue: "hex:47524C50726976617465" |
| PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID: |
| type: octet_string |
| defaultValue: "hex:7A6967626565686F6D65" |
| PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS: |
| type: octet_string |
| defaultValue: "hex:70617373776f7264313233" |
| |
| tests: |
| - label: "Precondition: TH reads FeatureMap attribute from the DUT" |
| command: "readAttribute" |
| attribute: "FeatureMap" |
| response: |
| value: 1 |
| constraints: |
| type: bitmap32 |
| |
| - label: |
| "Step 1: TH sends ArmFailSafe command to the DUT with |
| ExpiryLengthSeconds set to 900" |
| cluster: "General Commissioning" |
| command: "ArmFailSafe" |
| arguments: |
| values: |
| - name: "ExpiryLengthSeconds" |
| value: 900 |
| - name: "Breadcrumb" |
| value: 0 |
| response: |
| values: |
| - name: "ErrorCode" |
| value: 0 |
| - name: "DebugText" |
| value: "" |
| |
| - label: |
| "Step 2: TH reads Networks attribute from the DUT and saves the number |
| of entries as 'NumNetworks'" |
| PICS: CNET.S.A0001 |
| command: "readAttribute" |
| attribute: "Networks" |
| response: |
| saveAs: NumNetworks |
| constraints: |
| contains: |
| [ |
| { |
| NetworkID: PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID, |
| Connected: true, |
| }, |
| ] |
| |
| - label: |
| "Step 3: TH finds the index of the Networks list entry with NetworkID |
| for PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and saves it as |
| 'Userwifi_netidx'" |
| verification: | |
| TH finds the index of the Networks list entry with NetworkID for PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and saves it as 'Userwifi_netidx' |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_USER_PROMPT && CNET.S.A0001 |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' for success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Step 4: TH sends RemoveNetwork Command to the DUT with NetworkID |
| field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field |
| set to 1" |
| verification: | |
| Verify that DUT sends NetworkConfigResponse to command with the following fields: |
| NetworkingStatus is success |
| |
| NetworkIndex is 'Userwifi_netidx' |
| PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx |
| command: "RemoveNetwork" |
| arguments: |
| values: |
| - name: "NetworkID" |
| value: PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID |
| - name: "Breadcrumb" |
| value: 1 |
| response: |
| values: |
| - name: "NetworkingStatus" |
| value: 0 |
| - name: "NetworkIndex" |
| value: 0 |
| |
| - label: |
| "Step 5: TH sends AddOrUpdateWiFiNetwork command to the DUT with SSID |
| field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, Credentials field |
| set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS and Breadcrumb |
| field set to 1" |
| PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx |
| command: "AddOrUpdateWiFiNetwork" |
| arguments: |
| values: |
| - name: "SSID" |
| value: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID |
| - name: "Credentials" |
| value: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS |
| - name: "Breadcrumb" |
| value: 1 |
| response: |
| values: |
| - name: "NetworkingStatus" |
| value: 0 |
| - name: "DebugText" |
| constraints: |
| maxLength: 512 |
| |
| - label: "Step 6: TH reads Networks attribute from the DUT" |
| PICS: CNET.S.A0001 |
| command: "readAttribute" |
| attribute: "Networks" |
| response: |
| constraints: |
| contains: |
| [ |
| { |
| NetworkID: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, |
| Connected: false, |
| }, |
| ] |
| |
| - label: |
| "Step 7: TH sends ConnectNetwork command to the DUT with NetworkID |
| field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID and Breadcrumb field |
| set to 2" |
| PICS: CNET.C.C06.Tx |
| timedInteractionTimeoutMs: 5000 |
| command: "ConnectNetwork" |
| arguments: |
| values: |
| - name: "NetworkID" |
| value: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID |
| - name: "Breadcrumb" |
| value: 2 |
| response: |
| values: |
| - name: "NetworkingStatus" |
| value: 0 |
| - name: "ErrorValue" |
| constraints: |
| type: int32s |
| |
| - label: |
| "Step 8: TH changes its WiFi connection to |
| PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID" |
| verification: | |
| Make sure TH also joins the 2nd Wifi network to have a connectivity to the DUT. |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_USER_PROMPT |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' for success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Step 9: TH discovers and connects to DUT on the |
| PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID operational network" |
| PICS: CNET.S.A0001 |
| command: "readAttribute" |
| attribute: "Networks" |
| response: |
| constraints: |
| contains: |
| [ |
| { |
| NetworkID: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, |
| Connected: true, |
| }, |
| ] |
| |
| - label: |
| "Step 10: TH reads Breadcrumb attribute from the General Commissioning |
| cluster of the DUT" |
| PICS: CNET.S.C06.Rsp |
| cluster: "General Commissioning" |
| command: "readAttribute" |
| attribute: "Breadcrumb" |
| response: |
| value: 2 |
| constraints: |
| type: int64u |
| |
| - label: |
| "Step 11: TH sends ArmFailSafe command to the DUT with |
| ExpiryLengthSeconds set to 0. This forcibly disarms the fail-safe and |
| is expected to cause the changes of configuration to |
| NetworkCommissioning cluster done so far to be reverted." |
| cluster: "General Commissioning" |
| command: "ArmFailSafe" |
| arguments: |
| values: |
| - name: "ExpiryLengthSeconds" |
| value: 0 |
| - name: "Breadcrumb" |
| value: 0 |
| response: |
| values: |
| - name: "ErrorCode" |
| value: 0 |
| |
| #Issue: https://github.com/project-chip/connectedhomeip/issues/26848 |
| - label: |
| "Step 12 & 13: TH changes its WiFi connection to |
| PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID, TH discovers and connects to DUT |
| on the PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID operational network" |
| PICS: CNET.S.A0001 && PICS_USER_PROMPT |
| verification: | |
| ./chip-tool networkcommissioning read networks 1 0 |
| |
| Via the TH (chip-tool), Verify: |
| -the Networks attribute has NetworkID that should be as PIXIT.CNET.WIFI_1ST_ ACCESSPOINT_SSID. |
| -that the connected status should be the type of bool value as TRUE. |
| |
| [1684497703.596528][3941:3943] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_0001 DataVersion: 873070909 |
| [1684497703.596592][3941:3943] CHIP:TOO: Networks: 1 entries |
| [1684497703.596640][3941:3943] CHIP:TOO: [1]: { |
| [1684497703.596668][3941:3943] CHIP:TOO: NetworkID: 47524C50726976617465 |
| [1684497703.596697][3941:3943] CHIP:TOO: Connected: FALSE |
| [1684497703.596721][3941:3943] CHIP:TOO: } |
| [1684497703.596882][3941:3943] CHIP:EM: <<< [E:51584i S:48726 M:88313254 (Ack:206238679)] (S) Msg TX to 1:0000000000000001 [3A8F] --- Type 0000:10 (SecureChannel:StandaloneAck) |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' for success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Step 14: TH sends ArmFailSafe command to the DUT with |
| ExpiryLengthSeconds set to 900" |
| cluster: "General Commissioning" |
| command: "ArmFailSafe" |
| arguments: |
| values: |
| - name: "ExpiryLengthSeconds" |
| value: 900 |
| - name: "Breadcrumb" |
| value: 0 |
| response: |
| values: |
| - name: "ErrorCode" |
| value: 0 |
| |
| - label: |
| "Step 15: TH sends RemoveNetwork Command to the DUT with NetworkID |
| field set to PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID and Breadcrumb field |
| set to 1" |
| verification: | |
| Verify that DUT sends NetworkConfigResponse to command with the following fields: |
| NetworkingStatus is success |
| |
| NetworkIndex is 'Userwifi_netidx' |
| PICS: CNET.S.C04.Rsp && CNET.S.C05.Tx |
| command: "RemoveNetwork" |
| arguments: |
| values: |
| - name: "NetworkID" |
| value: PIXIT.CNET.WIFI_1ST_ACCESSPOINT_SSID |
| - name: "Breadcrumb" |
| value: 1 |
| response: |
| values: |
| - name: "NetworkingStatus" |
| value: 0 |
| - name: "NetworkIndex" |
| value: 0 |
| |
| - label: |
| "Step 16: TH sends AddOrUpdateWiFiNetwork command to the DUT with SSID |
| field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, Credentials field |
| set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS and Breadcrumb |
| field set to 1" |
| PICS: CNET.S.C02.Rsp && CNET.S.C05.Tx |
| command: "AddOrUpdateWiFiNetwork" |
| arguments: |
| values: |
| - name: "SSID" |
| value: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID |
| - name: "Credentials" |
| value: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_CREDENTIALS |
| - name: "Breadcrumb" |
| value: 1 |
| response: |
| values: |
| - name: "NetworkingStatus" |
| value: 0 |
| - name: "DebugText" |
| constraints: |
| maxLength: 512 |
| |
| - label: |
| "Step 17: TH sends ConnectNetwork command to the DUT with NetworkID |
| field set to PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID and Breadcrumb field |
| set to 3" |
| PICS: CNET.S.C06.Rsp && CNET.S.C07.Tx |
| command: "ConnectNetwork" |
| timedInteractionTimeoutMs: 5000 |
| arguments: |
| values: |
| - name: "NetworkID" |
| value: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID |
| - name: "Breadcrumb" |
| value: 3 |
| response: |
| values: |
| - name: "NetworkingStatus" |
| value: 0 |
| - name: "ErrorValue" |
| constraints: |
| type: int32s |
| |
| - label: |
| "Step 18: TH changes its WiFi connection to |
| PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID" |
| verification: | |
| Make sure TH also joins the 2nd Wifi network to have a connectivity to the DUT. |
| cluster: "LogCommands" |
| command: "UserPrompt" |
| PICS: PICS_USER_PROMPT |
| arguments: |
| values: |
| - name: "message" |
| value: "Please enter 'y' for success" |
| - name: "expectedValue" |
| value: "y" |
| |
| - label: |
| "Step 19: TH discovers and connects to DUT on the |
| PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID operational network" |
| PICS: CNET.S.A0001 |
| command: "readAttribute" |
| attribute: "Networks" |
| response: |
| constraints: |
| contains: |
| [ |
| { |
| NetworkID: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, |
| Connected: true, |
| }, |
| ] |
| |
| - label: |
| "Step 20: TH reads Breadcrumb attribute from the General Commissioning |
| cluster of the DUT" |
| PICS: CNET.S.C06.Rsp |
| cluster: "General Commissioning" |
| command: "readAttribute" |
| attribute: "Breadcrumb" |
| response: |
| value: 3 |
| constraints: |
| type: int64u |
| |
| - label: "Step 21: TH sends the CommissioningComplete command to the DUT" |
| cluster: "General Commissioning" |
| command: "CommissioningComplete" |
| response: |
| values: |
| - name: "ErrorCode" |
| value: 0 |
| - name: "DebugText" |
| value: "" |
| |
| - label: "Step 22: TH reads Networks attribute from the DUT" |
| PICS: CNET.S.A0001 |
| command: "readAttribute" |
| attribute: "Networks" |
| response: |
| constraints: |
| contains: |
| [ |
| { |
| NetworkID: PIXIT.CNET.WIFI_2ND_ACCESSPOINT_SSID, |
| Connected: true, |
| }, |
| ] |