14. Power Optimization Test Cases
14.1 FSK/EP/PWR/OPT/BV/01: Verify RX duration can be adjusted.
14.1.1 Test Purpose
DUT FSK RX duration can be adjusted.
14.1.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 2 command: sid option -lp_set SID_LINK2_PROFILE_2 RX_INTERVAL_IN_MS BEACON_INTERVAL RX_DURATION_IN_S
14.1.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 2 630 1 6
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
Note over Lower_Tester,Upper_Tester: After 30 seconds, start a timer T = 0s
Upper_Tester->>DUT: T = 0s, sid send test
Lower_Tester->>DUT: T <= 5s, Send a downlink
DUT->>Upper_Tester: Receive a downlink
Lower_Tester->>DUT: T >= 7s, Send a downlink
DUT->>Upper_Tester: Does not receive a downlink as expected
14.1.4 Expected Results
14.1.4.1 Pass Verdict
The RX window remains open for 6.63 (RX duration + RX window interval) seconds.
14.2 FSK/EP/PWR/OPT/BV/02: Verify RX windows after control message sent should not be closed.
14.2.1 Test Purpose
The RX windows after sending control messages (time-sync and join) should not be overridden by user settings. The RX windows should remain open until the response to the control message is received.
14.2.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 2 command: sid option -lp_set SID_LINK2_PROFILE_2 RX_INTERVAL_IN_MS BEACON_INTERVAL RX_DURATION_IN_S
14.2.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 2 5040 1 6
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Lower_Tester->>DUT: After GW discover prcoess finish, disable GW Wi-Fi
Note over Lower_Tester,Upper_Tester: Before 3rd time-sync request sent, enable GW Wi-Fi
DUT->>Lower_Tester: EN sent 3rd time-sync request
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 0, FSK not Connected"
Lower_Tester->>DUT: After EN time-synced, disable GW Wi-Fi
Note over Lower_Tester,Upper_Tester: Before 3rd join request sent, enable GW Wi-Fi
DUT->>Lower_Tester: EN sent 3rd join request
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
Note over Lower_Tester,Upper_Tester: Wait for 30 seconds
Lower_Tester->>DUT: Send a downlink
DUT->>Upper_Tester: Does not receive a downlink as expected
14.2.4 Expected Results
14.2.4.1 Pass Verdict
Control messages (time-sync and join) are not affected by user config and can be sent and received normally.
14.3 FSK/EP/PWR/OPT/BV/03: Verify RX window termination request stop RX window opened at profile 2.
14.3.1 Test Purpose
Users can close the DUT RX windows at any time using the RX window termination command
14.3.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 2 command: sid option -lp_set SID_LINK2_PROFILE_2 RX_INTERVAL_IN_MS BEACON_INTERVAL RX_DURATION_IN_S
-
DUT User control commands with sub-ghz: sid option -sub_ghz_ctl CTL_CMD
14.3.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 2 630 1 20
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
Note over Lower_Tester,Upper_Tester: After 30 seconds, start a timer T = 0s
Upper_Tester->>DUT: T = 0s, sid send test
Lower_Tester->>DUT: T <= 5s, Send a downlink
DUT->>Upper_Tester: Receive a downlink
Upper_Tester->>DUT: T = 8s, sid option -sub_ghz 1
Lower_Tester->>DUT: T = 10s, Send a downlink
DUT->>Upper_Tester: Does not receive a downlink as expected
14.3.4 Expected Results
14.3.4.1 Pass Verdict
There is no RX window opening after RX window termination command executed.
14.4 FSK/EP/PWR/OPT/BV/04: Verify RX window termination request should not stop RX window opened at profile 1.
14.4.1 Test Purpose
As profile 1 default setting is unlimited RX duration, the RX window termination command should not interrupt or close RX windows.
14.4.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 1 command: sid option -lp_set SID_LINK2_PROFILE_1 BEACON_INTERVAL
-
DUT User control commands with sub-ghz: sid option -sub_ghz_ctl CTL_CMD
14.4.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 1 1
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
Note over Lower_Tester,Upper_Tester: Wait for 30 seconds
Lower_Tester->>DUT: Send a downlink
DUT->>Upper_Tester: Receive a downlink
Upper_Tester->>DUT: sid option -sub_ghz 1
Lower_Tester->>DUT: Send a downlink
DUT->>Upper_Tester: Receive a downlink
14.4.4 Expected Results
14.4.4.1 Pass Verdict
RX window termination command should not interrupt or close RX windows.
14.5 FSK/EP/PWR/OPT/BV/05: Verify Beacon interval can be adjusted.
14.5.1 Test Purpose
Users can modify the number of beacons to skip.
14.5.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 1 command: sid option -lp_set SID_LINK2_PROFILE_1 BEACON_INTERVAL
-
DUT Set FSK Profile 2 command: sid option -lp_set SID_LINK2_PROFILE_2 RX_INTERVAL_IN_MS BEACON_INTERVAL RX_DURATION_IN_S
14.5.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 2 5040 3 0
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
DUT->>Upper_Tester: Receive a beacon
DUT->>Upper_Tester: Receive a beacon
DUT->>Upper_Tester: Receive a beacon
Note over Lower_Tester,Upper_Tester: Check beacon interval is 3 * 10080 ms
Note over Lower_Tester,Upper_Tester: Repeat the above steps, iterating through sid option -lp_set 2 5040 2 0 (beacon interval = 2 * 10080 ms), sid option -lp_set 2 5040 1 0 (1 * 10080 ms), sid option -lp_set 1 3 (3 * 10080 ms), sid option -lp_set 1 2 (2 * 10080 ms), sid option -lp_set 1 1 (1 * 10080 ms)
14.5.4 Expected Results
14.5.4.1 Pass Verdict
Beacon interval can be modified by user setting.
14.6 FSK/EP/PWR/OPT/BV/06: Verify beacon interval revert to default after 2nd beacon misses.
14.6.1 Test Purpose
To prevent gateway beacon loss, DUT beacon interval will revert to default (10080 ms) after two consecutive beacon misses
14.6.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 2 command: sid option -lp_set SID_LINK2_PROFILE_2 RX_INTERVAL_IN_MS BEACON_INTERVAL RX_DURATION_IN_S
-
Sidewalk gateway put in a shielding box.
14.6.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 2 5040 3 0
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
DUT->>Upper_Tester: Receive a beacon, start a timer T = 0s
Note over Lower_Tester,Upper_Tester: Close the shielding box door
DUT->>Upper_Tester: T = 30s, miss a beacon
DUT->>Upper_Tester: T = 60s, miss a beacon
Note over Lower_Tester,Upper_Tester: Open the shielding box door
DUT->>Upper_Tester: T = 70s, receive a beacon
DUT->>Upper_Tester: T = 100s, receive a beacon
Note over Lower_Tester,Upper_Tester: Change DUT profile by sid option -lp_set 2 5040 2 0, repeat above steps. Expected behavior is T = 0s receive a beacon, T = 20s miss a beacon, T = 40s miss a beacon, T = 50s receive a beacon, T = 70s receive a beacon
14.6.4 Expected Results
14.6.4.1 Pass Verdict
When the DUT misses two beacons, it triggers a default interval beacon. Upon receiving this beacon, the Beacon interval should be restored to the user-configured setting.
14.7 FSK/EP/PWR/OPT/BV/07: Verify DUT can still perform uplinks and downlinks normally after a beacon skipped.
14.7.1 Test Purpose
After DUT skip a beacon, there will be some time drift, but a compensation mechanism allows TX/RX to maintain normal transmission and reception
14.7.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set FSK Profile 2 command: sid option -lp_set SID_LINK2_PROFILE_2 RX_INTERVAL_IN_MS BEACON_INTERVAL RX_DURATION_IN_S
14.7.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_2)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 2 630 3 8
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
DUT->>Upper_Tester: Receive a beacon, start a timer T = 0s
Upper_Tester->>DUT: T = 11s, sid send -a 1 1 10 TEST
DUT->>Lower_Tester: A uplink sent
Lower_Tester->>DUT: Response an ACK
DUT->>Upper_Tester: Receive an ACK
Upper_Tester->>DUT: T = 22s, sid send -a 1 1 10 TEST
DUT->>Lower_Tester: A uplink sent
Lower_Tester->>DUT: Response an ACK
DUT->>Upper_Tester: Receive an ACK
14.7.4 Expected Results
14.7.4.1 Pass Verdict
Even during the beacon skip phase, uplinks and downlinks can operate normally.
14.8 LORA/EP/PWR/OPT/BV/01: Verify number of RX windows is limited and can be changed.
14.8.1 Test Purpose
At profile A, after single transmission in an uplink, DUT should open specified number of RX windows and go to sleep.
14.8.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set LoRa Profile A command: sid option -lp_set SID_LINK3_PROFILE_A RX_WINDOWS
14.8.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_3)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 128 2
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 4, LoRa Connected"
Note over Lower_Tester,Upper_Tester: Wait for 30 seconds
Upper_Tester->>DUT: sid send test, start a timer = 0s
Lower_Tester->>DUT: T = 3s, send a downlink
DUT->>Upper_Tester: Receive a downlink
Lower_Tester->>DUT: T = 15s, send a downlink
DUT->>Upper_Tester: Does not receive a downlink as expected
Note over Lower_Tester,Upper_Tester: Change DUT profile by sid option -lp_set 128 60, repeat above steps. Expected behavior is T = 0s send an uplink, T = 3s send a downlink (expect received), T = 293s send a downlink (expect received), T = 305s send a downlink (expect no downlink received)
14.8.4 Expected Results
14.8.4.1 Pass Verdict
The RX windows can be adjusted by user setting.
14.9 LORA/EP/PWR/OPT/BV/02: Verify number of RX windows is reset after sending an additional uplink.
14.9.1 Test Purpose
At profile A, when TX occurs before all RX windows have been opened, then windows counter should be reset again.
14.9.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set LoRa Profile A command: sid option -lp_set SID_LINK3_PROFILE_A RX_WINDOWS
14.9.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_3)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 128 30
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 4, LoRa Connected"
Note over Lower_Tester,Upper_Tester: Wait for 30 seconds
Upper_Tester->>DUT: sid send test, start a timer = 0s
Lower_Tester->>DUT: T = 73s, send a downlink
DUT->>Upper_Tester: Receive a downlink
Upper_Tester->>DUT: T = 80s, sid send test
Lower_Tester->>DUT: T = 222s, send a downlink
DUT->>Upper_Tester: Receive a downlink
14.9.4 Expected Results
14.9.4.1 Pass Verdict
The RX windows counter is reset by an uplink sent
14.10 LORA/EP/PWR/OPT/BV/03: Verify RX window termination request stop RX window opened at profile A.
14.10.1 Test Purpose
Users can close the DUT RX windows at any time using the RX window termination command
14.10.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set LoRa Profile A command: sid option -lp_set SID_LINK3_PROFILE_A RX_WINDOWS
-
DUT User control commands with sub-ghz: sid option -sub_ghz_ctl CTL_CMD
14.10.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_3)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 128 10
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 4, LoRa Connected"
Note over Lower_Tester,Upper_Tester: Wait for 30 seconds
Upper_Tester->>DUT: sid send test, start a timer = 0s
Lower_Tester->>DUT: T = 3s, send a downlink
DUT->>Upper_Tester: Receive a downlink
Upper_Tester->>DUT: sid option -sub_ghz 1
Lower_Tester->>DUT: T = 18s, send a downlink
DUT->>Upper_Tester: Does not receive a downlink as expected
14.10.4 Expected Results
14.10.4.1 Pass Verdict
There is no RX window opening after RX window termination command executed.
14.11 LORA/EP/PWR/OPT/BV/04: Verify RX window termination request should not stop RX window opened at profile B.
14.11.1 Test Purpose
As profile B default setting is unlimited RX window count, the RX window termination command should not interrupt or close RX windows.
14.11.2 Initial Conditions
-
DUT is registered on Amazon Sidewalk Network.
-
Lower Tester acts a Sidewalk gateway and cloud.
-
Upper Tester operates as a SID API user.
-
DUT Set LoRa Profile B command: sid option -lp_set SID_LINK3_PROFILE_B RX_WINDOWS
-
DUT User control commands with sub-ghz: sid option -sub_ghz_ctl CTL_CMD
14.11.3 Test Procedure
sequenceDiagram
participant Lower_Tester as Lower Tester
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester,Upper_Tester: The Sidewalk stack is uninitialized
Upper_Tester->>DUT: sid init(SID_LINK_TYPE_3)
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid option -lp_set 129 0
DUT->>Upper_Tester: #35;SID_ERROR_NONE
Upper_Tester->>DUT: sid start
DUT->>Upper_Tester: #35;SID_ERROR_NONE
DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 4, LoRa Connected"
Note over Lower_Tester,Upper_Tester: Wait for 30 seconds
Upper_Tester->>DUT: sid send test, start a timer = 0s
Lower_Tester->>DUT: T = 3s, send a downlink
DUT->>Upper_Tester: Receive a downlink
Upper_Tester->>DUT: sid option -sub_ghz 1
Lower_Tester->>DUT: T = 18s, send a downlink
DUT->>Upper_Tester: Receive a downlink
14.11.4 Expected Results
14.11.4.1 Pass Verdict
RX window termination command should not interrupt or close RX windows.