Skip to main content Link Menu Expand (external link) Document Search Copy Copied

5. LoRa (900MHz) Test Cases

5.1.1 Test Purpose

DUT is able to receive downlink packets with various sizes of Command data (1B, 10B, 19B) sent from the Lower Tester.

5.1.2 Initial Conditions

  • DUT is configured as profile B.

  • DUT is registered with Amazon Sidewalk network.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operate on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on the Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with 1B of Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: 1B"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with 10B of Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: 10B"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with 19B of Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: 19B"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.1.4 Expected Results

5.1.4.1 Pass Verdict

Packets with various sizes of Command data sent by Lower Tester are able to reach the DUT.

The Command data content must be verified for correctness on the Upper Tester side.

5.2.1 Test Purpose

Lower Tester is able to receive uplink packets with various Command data sizes (1B, 10B, 19B) sent from the DUT.

5.2.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data 10B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 10B of Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data 19B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 19B of Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.2.4 Expected Results

5.2.4.1 Pass Verdict

Packets with various sizes of Command data sent by DUT are able to reach the Lower Tester.

The Command data content of each packet must be verified for correctness on the Lower Tester side.

5.3 LORA/EP/SEC/UUID/BV/01: Endpoint rotates UUID immediately after time sync.

5.3.1 Test Purpose

DUT is able to change the current UUID and use it right after the time synchronization procedure is completed.

5.3.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

5.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 uninitialised
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    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, Link Down, No Time, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: GET_TIME(TX-UUID-1)
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Up, Time Synced, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: SET_JOIN_REQ(TX-UUID-2)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, Time Synced, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 0, LoRa Disconnected"

5.3.4 Expected Results

5.3.4.1 Pass Verdict

UUID of the Endpoint should change right after successful time synchronization procedure, therefore the value of TX-UUID sent as part of the GET_TIME packet should be different from the TX-UUID sent in the SET_JOIN_REQ packet.

As the source device ID information is sent as plain text in the link layer, the above condition can be validated on the Lower Tester side.

5.4 LORA/EP/SEC/UUID/BV/02: UUID rotates every 15 minutes after time sync.

5.4.1 Test Purpose

DUT is able to change the UUID every 15 minutes after the time synchronization procedure is completed.

5.4.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

5.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 uninitialised
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    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, Link Down, No Time, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: GET_TIME(TX-UUID-1)
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Up, Time Synced, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: SET_JOIN_REQ(TX-UUID-2)
    Note over Lower_Tester,Upper_Tester: Wait 15 minutes for DUT to change the UUID
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(TX-UUID-3)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, Time Synced, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 0, LoRa Disconnected"

5.4.4 Expected Results

5.4.4.1 Pass Verdict

After successful time synchronization procedure, the UUID of the DUT should change every 15 minutes. Therefore, the TX-UUID value sent as part of the SET_JOIN_REQ packet should be different from the TX-UUID sent 15 minutes later in the CUSTOM_NOTIFY_CMD packet.

As the source device ID information is sent as plain text in the link layer, the above condition can be validated on the Lower Tester side.

5.4.5.2 Fail Verdict

A test failure will occur if the DUT re-uses an older TX-UUID at any point during the test.

5.5 LORA/EP/SEC/UUID/BV/03: Endpoint can exchange UL/DL during UUID rotation.

5.5.1 Test Purpose

DUT is able to exchange the uplink and downlink packets during UUID rotation.

5.5.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

5.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 uninitialised
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    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, Link Down, No Time, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: GET_TIME(TX-UUID-1)
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Up, Time Synced, Link Mask 4, LoRa Connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(TX-UUID-2)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(TX-UUID-2)
    DUT->>Upper_Tester: on_msg_received()
    Note over Lower_Tester,Upper_Tester: Continue sending the above uplink and downlink packets with 1 second interval until the UUID changes
    Note over Lower_Tester,DUT: ...
    Note over Lower_Tester,Upper_Tester: UUID rotation
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(TX-UUID-3)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(TX-UUID-3)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, Time Synced, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 0, LoRa Disconnected"

5.5.4 Expected Results

5.5.4.1 Pass Verdict

After successful time synchronization procedure, the UUID of the DUT should change every 15 minutes. All packets, both uplink and downlink, transmitted around the moment of UUID rotation should be handled correctly and reach the destination.

5.6 LORA/EP/CONN/REG/BV/02: Endpoint can be deregistered from Sidewalk network.

5.6.1 Test Purpose

To verify that the DUT is able to be deregistered from the Amazon Sidewalk network.

5.6.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Upper_Tester->>DUT: sid_set_factory_reset()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: NOTIFY_RESET(RESET_HARD)
    DUT->>Upper_Tester: on_status_changed() "Status: Not registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_get_time()
    DUT->>Upper_Tester: #35;SID_ERROR_INVALID_STATE
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Not registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Not Registered, Link Mask 0, LoRa Disconnected"

5.6.4 Expected Results

5.6.4.1 Pass Verdict

Calling the sid_set_factory_reset method should force the DUT to send the packet NOTIFY_RESET (with RESET_HARD parameter) to the Lower Tester. Then the DUT should report to the Upper Tester the change in registration status to “Not registered”.

After successful deregistration, the attempt to send the GET_TIME packet should fail with the SID_ERROR_INVALID_STATE returned to the Upper Tester.

5.7 LORA/EP/CONN/LP/BV/01: Endpoint can select Profile A and complete Join procedure.

5.7.1 Test Purpose

DUT is able to set Profile A and complete Join procedure triggered after profile selection. DUT and Lower Tester can exchange data after successful Join procedure.

5.7.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • Both DUT and Lower Tester operate on the same LDR channel.

  • DUT has completed the time synchronization.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Upper_Tester->>DUT: sid_option(SET_DEVICE_PROFILE, SID_LINK3_PROFILE_A)
    DUT->>Lower_Tester: SET_JOIN_REQ (contains "SID_LINK3_PROFILE_A")
    Note over Lower_Tester,Upper_Tester: Wait for up to 21 seconds
    Lower_Tester->>DUT: RESP_JOIN_REQ
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.7.4 Expected Results

5.7.4.1 Pass Verdict

Transmission of “SET_JOIN_REQ” is triggered after setting the Profile A.

Content of the “SET_JOIN_REQ” packet must be verified in terms of whether it contains Profile A data.

“RESP_JOIN_REQ” packet must be sent back to DUT (within 21 seconds), confirming that Join procedure finished successfully.

After completing Join procedure DUT and Lower Tester can exchange data (UL and DL packet).

5.8 LORA/EP/CONN/LP/BV/02: Endpoint can select Profile B and complete Join procedure.

5.8.1 Test Purpose

DUT is able to set Profile B and complete Join procedure triggered after profile selection. DUT and Lower Tester can exchange data after successful Join procedure.

5.8.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • Both DUT and Lower Tester operate on the same LDR channel.

  • DUT has completed the time synchronization.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Upper_Tester->>DUT: sid_option(SET_DEVICE_PROFILE, SID_LINK3_PROFILE_B)
    DUT->>Lower_Tester: SET_JOIN_REQ (contains "SID_LINK3_PROFILE_B")
    Note over Lower_Tester,Upper_Tester: Wait for up to 21 seconds
    Lower_Tester->>DUT: RESP_JOIN_REQ
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.8.4 Expected Results

5.8.4.1 Pass Verdict

Transmission of “SET_JOIN_REQ” is triggered after setting the Profile B.

Content of the “SET_JOIN_REQ” packet must be verified in terms of whether it contains Profile B data.

“RESP_JOIN_REQ” packet must be sent back to DUT (within 21 seconds), confirming that Join procedure finished successfully.

After completing Join procedure DUT and Lower Tester can exchange data (UL and DL packet).

5.9.1 Test Purpose

To verify that the uplink packets sent by the DUT contain the sequence number written in the seq_num field in the Link Layer. With each subsequent sent packet, the value of seq_num should be incremented by one.

5.9.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with seq_num field in the Link Layer)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with seq_num field in the Link Layer)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with seq_num field in the Link Layer)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with seq_num field in the Link Layer)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.9.4 Expected Results

5.9.4.1 Pass Verdict

The seq_num field is properly filled in the Link Layer of each CUSTOM_NOTIFY_CMD packet sent by DUT. Moreover, seq_num of each CUSTOM_NOTIFY_CMD packet should be incremented by one relative to the seq_num of the previous transmitted packet.

As the packet sequence number is sent as plain text in the Link Layer, the above condition can be validated on the Lower Tester side.

5.10.1 Test Purpose

To verify that the DUT increments the uplink packet sequence number until the UUID is changed. After the UUID is changed, the DUT should generate a new sequence number in the range between 0 and 16383.

5.10.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with seq_num field in the Link Layer)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,DUT: ...
    Note over Lower_Tester,Upper_Tester: Repeat the uplink packet once per minute for up to 15 minutes
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the new seq_num in the Link Layer)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.10.4 Expected Results

5.10.4.1 Pass Verdict

The seq_num field should be properly incremented by one for each subsequent packet sent by DUT within a maximum of 15 minutes from the previous UUID change, then a new sequence number should be generated in the range between 0 and 16383.

As the packet sequence number is sent as plain text in the Link Layer, all CUSTOM_NOTIFY_CMD packets can be verified for seq_num field content on the Lower Tester side.

5.11.1 Test Purpose

To verify that the downlink packets with both increasing and decreasing sequence number can be decoded by the DUT.

5.11.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=2)
    DUT->>Upper_Tester: on_msg_received() "seq_num=2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=3)
    DUT->>Upper_Tester: on_msg_received() "seq_num=3"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=6)
    DUT->>Upper_Tester: on_msg_received() "seq_num=6"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=5)
    DUT->>Upper_Tester: on_msg_received() "seq_num=5"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=4)
    DUT->>Upper_Tester: on_msg_received() "seq_num=4"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.11.4 Expected Results

5.11.4.1 Pass Verdict

The first three CUSTOM_NOTIFY_CMD packets sent by Lower Tester to the DUT contain an increasing sequence number ranging from 1 to 3. The next three CUSTOM_NOTIFY_CMD packets contain a decreasing sequence number ranging from 6 to 4. All sent packets should be accepted and properly decoded by the DUT which should manifested by reporting all six events to the Upper Tester.

5.12.1 Test Purpose

To verify that a downlink packet which contains a duplicated sequence number is rejected by the DUT.

5.12.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.12.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=1)
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=2)
    DUT->>Upper_Tester: on_msg_received() "seq_num=2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=2)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.12.4 Expected Results

5.12.4.1 Pass Verdict

The first CUSTOM_NOTIFY_CMD packet sent by the Lower Tester containing sequence number equal to 1 should be decoded correctly and information about this event should be visible on the Upper Tester side. However, another CUSTOM_NOTIFY_CMD packet sent by the Lower Tester also containing the same sequence number should be rejected by the DUT.

The third CUSTOM_NOTIFY_CMD packet containing parameter seq_num increased by one should be decoded correctly and information about this event should again be visible on the Upper Tester side. The fourth CUSTOM_NOTIFY_CMD packet with a duplicated seq_num equal to 2 should be rejected by the DUT.

In the case of duplicate packets, information about this event should not be visible on the Upper Tester side.

5.13.1 Test Purpose

To verify that a group of five downlink packets which contain a duplicate sequence number are rejected by the DUT.

5.13.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.13.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=2)
    DUT->>Upper_Tester: on_msg_received() "seq_num=2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=3)
    DUT->>Upper_Tester: on_msg_received() "seq_num=3"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=4)
    DUT->>Upper_Tester: on_msg_received() "seq_num=4"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=5)
    DUT->>Upper_Tester: on_msg_received() "seq_num=5"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=1)
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=2)
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=3)
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=4)
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=5)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.13.4 Expected Results

5.13.4.1 Pass Verdict

The first five CUSTOM_NOTIFY_CMD packets with sequence numbers increasing sequentially from 1 to 5 should be sent from the Lower Tester and correctly decoded on the DUT side. Receipt of all five of these packets should be reported on the Upper Tester side.

After re-sending from the Lower Tester the same packets containing sequence numbers from 1 to 5, all of them should be rejected by the DUT. Information on these five events should not be visible on the Upper Tester side.

5.14 LORA/EP/CONN/SEQ/BV/07: SEQ number can be accepted again after getting 10 other messages.

5.14.1 Test Purpose

DUT is able to receive downlink packet with already used SEQ number, after receiving at least 10 additional packets with different, unique SEQ number.

5.14.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operate on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on the Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.14.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=2)
    DUT->>Upper_Tester: on_msg_received() "seq_num=2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=3)
    DUT->>Upper_Tester: on_msg_received() "seq_num=3"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=4)
    DUT->>Upper_Tester: on_msg_received() "seq_num=4"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=5)
    DUT->>Upper_Tester: on_msg_received() "seq_num=5"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=6)
    DUT->>Upper_Tester: on_msg_received() "seq_num=6"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=7)
    DUT->>Upper_Tester: on_msg_received() "seq_num=7"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=8)
    DUT->>Upper_Tester: on_msg_received() "seq_num=8"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=9)
    DUT->>Upper_Tester: on_msg_received() "seq_num=9"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=10)
    DUT->>Upper_Tester: on_msg_received() "seq_num=10"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=1)
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=11)
    DUT->>Upper_Tester: on_msg_received() "seq_num=11"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.14.4 Expected Results

5.14.4.1 Pass Verdict

First, eleventh and thirteenth CUSTOM_NOTIFY_CMD packet contain the same SEQ number.

All the other CUSTOM_NOTIFY_CMD packets contain different, unique SEQ number.

Due to the fact that 10 additional packets have to be received by DUT before SEQ number can be reused: Eleventh CUSTOM_NOTIFY_CMD packet should be rejected by DUT (after 9 additional packets received). Thirteenth CUSTOM_NOTIFY_CMD packet should be received and decoded properly by DUT (after 10 additional packets received).

5.15 LORA/EP/CONN/SEQ/BV/08: SEQ number can be accepted again after Sidewalk stack reinitialization.

5.15.1 Test Purpose

DUT is able to receive downlink packet with already used SEQ number, after reinitialization of Sidewalk stack.

5.15.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operate on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on the Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.15.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=1)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Not Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_start()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Wait until DUT completes time sync and Join procedure
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 4, LoRa Connected"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (seq_num=1)
    DUT->>Upper_Tester: on_msg_received() "seq_num=1"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.15.4 Expected Results

5.15.4.1 Pass Verdict

First and third CUSTOM_NOTIFY_CMD packets should be received and decoded properly by DUT, despite having the same SEQ number.

Since there was no stack reinitialization before second CUSTOM_NOTIFY_CMD packet, it should be rejected by DUT because of repeating SEQ number.

5.16 LORA/EP/CONN/SEQ/BV/09: Endpoint drops the packet with SEQ which is out of range.

5.16.1 Test Purpose

To verify that a downlink packet which contains an out of range sequence number is dropped by the DUT.

5.16.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

  • The Sidewalk stack (LoRa) is initialized and started on the DUT.

  • DUT has completed the time synchronization and the Join procedure.

5.16.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: DUT Status: Registered, Link Mask 4, LoRa Connected
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=16383)
    DUT->>Upper_Tester: on_msg_received() "seq_num=16383"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(seq_num=16384)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

5.16.4 Expected Results

5.16.4.1 Pass Verdict

The first CUSTOM_NOTIFY_CMD packet sent by the Lower Tester containing the maximum allowed sequence number (16383) should be decoded correctly and information about this event should be visible on the Upper Tester side.

The second CUSTOM_NOTIFY_CMD packet sent by the Lower Tester should be dropped by the DUT due to the seq_num parameter being exceeded and therefore this event should not be reported to the Upper Tester.

5.17 LORA/EP/NW/SYNC/JOIN/BV/02: Endpoint keeps synchronization with the network by periodic transmission of Join request.

5.17.1 Test Purpose

DUT is able to keep synchronization with the network by periodic transmission of Join request.

When the time sync and Join procedure is completed device is automatically synchronized with the network. Then after a period of 300 seconds of uplink inactivity (no data is transmitted), the DUT should send another Join request command to keep link with the network active/alive.

5.17.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

5.17.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 uninitialised
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    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, Link Down, No Time, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: GET_TIME
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Up, Time Synced, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    Note over Lower_Tester,Upper_Tester: Wait 300 seconds for the end of 'in sync' state on DUT
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    Note over Lower_Tester,Upper_Tester: Wait 31 seconds
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, Time Synced, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 0, LoRa Disconnected"

5.17.4 Expected Results

5.17.4.1 Pass Verdict

DUT is able to acquire positive response from the network when Join request is sent during the active synchronization process.

The GET_TIME packet must be the first uplink transmission right after initializing the Sidewalk stack with LoRa modulation. The RESP_TIME packet will be sent to DUT within 30 seconds and no re-transmission of the GET_TIME packet should occur during this time.

Also no other uplink transmission is allowed before the DUT receives the RESP_TIME packet which will be reported via Time Status: Synced. Completion of the time synchronization procedure should also change the Link Status to Up.

DUT should send the SET_JOIN_REQ packet right after the time synchronization procedure is complete. The RESP_JOIN_REQ packet should be sent back to DUT within 20 seconds and until then DUT should not repeat the transmission of the next SET_JOIN_REQ commands.

After sending the first RESP_JOIN_REQ, wait 300 seconds after which DUT should send the second SET_JOIN_REQ packet to keep synchronization with the network. No uplink transmission should occur during this period.

After sending the second RESP_JOIN_REQ, wait 20 seconds and verify that DUT has not resent SET_JOIN_REQ. This means that the DUT is able to maintain synchronization with the network by periodic transmission of Join request.

As the SET_JOIN_REQ carries requested async profile attributes, its content must be verified against the declared capabilities of the DUT.

5.18 LORA/EP/NW/SYNC/JOIN/BV/03: Endpoint keeps synchronization with the network by embedded sync request.

5.18.1 Test Purpose

DUT is able to keep synchronization with the network with the use of embedded sync request.

When the time sync and Join procedure is completed device is automatically synchronized with the network. However, 150 seconds after a successful synchronization, the DUT should start attaching a sync request to each uplink packet in order to maintain the synchronization without the need to send a separate Join request, which reduces signalling.

5.18.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile B.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • Both DUT and Lower Tester operates on the same LDR channel.

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

5.18.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 uninitialised
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    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, Link Down, No Time, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: GET_TIME
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Up, Time Synced, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    Note over Lower_Tester,Upper_Tester: Wait 150 seconds until DUT starts attaching the sync request to the packet
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, "PING")
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD with NDB format 3 embedded in the Network Diagnostic Data block of the Presentation Layer
    Lower_Tester->>DUT: NTFY_JOIN_REQ
    Note over Lower_Tester,Upper_Tester: Wait 170 seconds to make sure that the DUT remains synchronized and does not send a Join request
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, Time Synced, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 0, LoRa Disconnected"

5.18.4 Expected Results

5.18.4.1 Pass Verdict

DUT is able to acquire Join notify from the network when synchronization request is embedded in uplink data.

The GET_TIME packet must be the first uplink transmission right after initializing the Sidewalk stack with LoRa modulation. The RESP_TIME packet will be sent to DUT within 30 seconds and no re-transmission of the GET_TIME packet should occur during this time.

Also no other uplink transmission is allowed before the DUT receives the RESP_TIME packet which will be reported via Time Status: Synced. Completion of the time synchronization procedure should also change the Link Status to Up.

DUT should send the SET_JOIN_REQ packet right after the time synchronization procedure is complete. The RESP_JOIN_REQ packet should be sent back to DUT within 20 seconds and until then DUT should not repeat the transmission of the next SET_JOIN_REQ commands.

After sending the RESP_JOIN_REQ, wait 150 seconds, then the Upper Tester must trigger sending uplink data on the DUT (CUSTOM_NOTIFY_CMD with “PING” as the Command data). As a result, the mentioned packet will be sent to the network. The uplink data must include TLV key 0x01 synchronization request in Network Data Blob format 3 and it must be verified on the Lower Tester side. The NTFY_JOIN_REQ packet should be sent back to DUT within 25 seconds.

After sending the NTFY_JOIN_REQ, wait another 170 seconds and verify that DUT does not send SET_JOIN_REQ during this period. This means that the DUT is able to maintain synchronization with the network by embedded sync request during transmission of regular data.

As the SET_JOIN_REQ carries requested async profile attributes, its content must be verified against the declared capabilities of the DUT.

5.19 LORA/EP/NW/SYNC/TIME/BV/01: Endpoint completes the initial time sync procedure.

5.19.1 Test Purpose

DUT is able to pass the initial time synchronization procedure.

5.19.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • Lower Tester operates in the default mixed (MULTI_RATE) mode.

  • The protocol is enabled on the Lower Tester.

  • Both DUT and Lower Tester operate on the same LDR channel.

  • SidewalkNetworkFlag is enabled on Lower Tester.

5.19.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 uninitialised on DUT
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_3)
    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, Link Down, No Time, Link Mask 4, LoRa Connected"
    DUT->>Lower_Tester: GET_TIME
    Note over Lower_Tester,Upper_Tester: Wait for up to 30 seconds
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Up, Time Synced, Link Mask 4, LoRa Connected"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, Time Synced, Link Mask 0, LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 0, LoRa Disconnected"

5.19.4 Expected Results

5.19.4.1 Pass Verdict

DUT is able to acquire time from the network.

The RESP_TIME packet will be sent to DUT within 30 seconds and no re-transmission of the GET_TIME packet should occur during this time.

No other UL transmission should take place until the DUT receives a correct RESP_TIME packet which will be reported via Time Status: Synced.

Completion of the time synchronization procedure should also change the Link Status to Up.


Back to top

©2023 Amazon.com, Inc. or its affiliates (collectively, “Amazon”). All Rights Reserved.