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

4. FSK (900MHz) Test Cases

4.1 FSK/EP/BCN/DISCO/BV/01: FSK-WAN Endpoint discovers neighbor Gateway and synchronizes with it if roaming is allowed.

4.1.1 Test Purpose

DUT is able to discover and synchronize with neighbor Gateway if roam_opt flag is set to 1 in Beacon.

4.1.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.

4.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 uninitialised
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_start()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 2, FSK Connected"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.1.4 Expected Results

4.1.4.1 Pass Verdict

DUT is able to detect Beacon and synchronize with the neighbor Gateway that allows roaming. Detection of Beacon and synchronization with GW should take place within 40 seconds of starting the Sidewalk stack.

In result the FSK stack goes connected state which means that synchronization on PHY layer has been achieved.

4.2 FSK/EP/BCN/DISCO/BV/02: FSK-WAN Endpoint discovers home Gateway and synchronizes with it even if roaming is forbidden.

4.2.1 Test Purpose

DUT is able to discover and synchronize with home Gateway even if roam_opt flag is set to 0 in Beacon.

4.2.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 disabled on Lower Tester.

4.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 uninitialised
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_start()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 2, FSK Connected"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.2.4 Expected Results

4.2.4.1 Pass Verdict

DUT is able to detect Beacon and synchronize with the home Gateway that does not allow roaming. Detection of Beacon and synchronization with Lower Tester should take place within 40 seconds of starting the Sidewalk stack.

In result the FSK stack goes connected state which means that synchronization on PHY layer has been achieved.

4.3 FSK/EP/BCN/DISCO/BV/03: FSK-WAN Endpoint detects a neighbor Gateway Beacon but continues with the Gateway discovery process if roaming is forbidden.

4.3.1 Test Purpose

DUT is able to detect Beacon frame but continues with the Gateway discovery process if roam_opt flag is set to 0 in Beacon.

4.3.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network using different user accounts.

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

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is disabled on the Lower Tester.

4.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
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_start()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Beacon frame rejected due to roam_opt=0
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Beacon frame rejected due to roam_opt=0
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Beacon frame rejected due to roam_opt=0
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.3.4 Expected Results

4.3.4.1 Pass Verdict

DUT is able to detect a Beacon, but the Gateway discovery procedure is continued and should not be successful due to disabled SidewalkNetworkFlag.

DUT should reject three consecutive Beacon frames which were received after stack is started. In result change of SID application status should not be observed and FSK stack should remain in disconnected state all the time.

No transmission of a UL packet should occur during the entire test as DUT is involved in a passive way in Beacon detection for most of time.

4.4 FSK/EP/CONN/REG/BV/02: Endpoint can be deregistered from Sidewalk network.

4.4.1 Test Purpose

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

4.4.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

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

4.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: DUT Status: Registered, Link Mask 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_get_time()
    DUT->>Upper_Tester: #35;SID_ERROR_INVALID_ARGS
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Not registered, Link Mask 0, FSK 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, FSK Disconnected"

4.4.4 Expected Results

4.4.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_ARGS returned to the Upper Tester.

4.5 FSK/EP/CONN/REG/BV/03: An unregistered Endpoint successfully completes Sidewalk device registration with use of FFN.

4.5.1 Test Purpose

An unregistered DUT configures the Sidewalk stack in FSK mode. DUT synchronizes with Lower Tester (by detecting a Beacon) and starts registration flow by sending “PROV_INIT_REQ” packet to Lower Tester. At the end of the registration flow, DUT receives SET_CONFIGURATION_COMPLETE packet from Lower Tester and responds with RESP_CONFIGURATION_COMPLETE packet, which is a sign of successful device registration. After that DUT continues to work using FSK radio for Amazon Sidewalk network activities.

4.5.2 Initial Conditions

  • DUT is fully unregistered from Amazon Sidewalk network (both Cloud and DUT side)

4.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
    DUT->>Upper_Tester: on_status_changed() "Status: Not Registered, Link Mask 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Not Registered, Link Mask 2, FSK Connected"
    Note over Lower_Tester,Upper_Tester: Sidewalk Registration
    DUT->>Lower_Tester: PROV_INIT_REQ
    DUT->>Lower_Tester: PROV_INIT_REQ_SIG
    Lower_Tester->>DUT: RESP_PROV_INIT_REQ
    Lower_Tester->>DUT: PROV_INIT_SIG
    DUT->>Lower_Tester: RESP_PROV_INIT_SIG
    Lower_Tester->>DUT: GET_DEVICE_ECDH_SIG
    DUT->>Lower_Tester: RESP_DEVICE_ECDH_SIG
    Lower_Tester->>DUT: HAND_SHAKE_REQ
    DUT->>Lower_Tester: HAND_SHAKE_RESP
    Lower_Tester->>DUT: SET_PAN_ID
    DUT->>Lower_Tester: RESP_PAN_ID
    Lower_Tester->>DUT: SET_P2P_CHANNEL
    DUT->>Lower_Tester: RESP_P2P_CHANNEL
    Lower_Tester->>DUT: SET_P2P_BROADCAST_KEY
    DUT->>Lower_Tester: RESP_P2P_BROADCAST_KEY
    Lower_Tester->>DUT: SET_WAN_SEC_PARAMS
    DUT->>Lower_Tester: RESP_WAN_SEC_PARAMS
    Note over Lower_Tester,Upper_Tester: Continued on next page
sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: Application Registration
    Lower_Tester->>DUT: RESP_PROV_INIT_REQ
    Lower_Tester->>DUT: PROV_INIT_SIG
    DUT->>Lower_Tester: RESP_PROV_INIT_SIG
    Lower_Tester->>DUT: GET_DEVICE_ECDH_SIG
    DUT->>Lower_Tester: RESP_GET_DEVICE_ECDH_SIG
    Lower_Tester->>DUT: HAND_SHAKE_REQ
    DUT->>Lower_Tester: RESP_HAND_SHAKE_REQ
    Lower_Tester->>DUT: SET_CONFIGURATION_COMPLETE
    DUT->>Lower_Tester: RESP_CONFIGURATION_COMPLETE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 2, FSK Connected"
    DUT->>Lower_Tester: GET_TIME
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 2, FSK Connected"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Time Synced, Link Mask 0, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, No Time, Link Mask 0, FSK Disconnected"

4.5.4 Expected Results

4.5.4.1 Pass Verdict

Registration process is triggered by DUT, after detecting a Beacon and synchronizing with Lower Tester.

DUT sends “PROV_INIT_REQ” packet to initiate the registration flow.

Every registration related packet is successfully exchanged between Lower Tester and DUT.

During the process of registration, DUT does not change Sidewalk stack.

DUT receives “SET_CONFIGURATION_COMPLETE” packet from Lower Tester and responds with
“RESP_CONFIGURATION_COMPLETE”. Those two packets signify that DUT is successfully registered with Amazon Sidewalk network with use of FFN.

Afterwards, DUT completes time synchronization over FSK.

4.6.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.

4.6.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 the Lower Tester.

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

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

4.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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.6.4 Expected Results

4.6.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.

4.7.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.

4.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 the Lower Tester.

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

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

4.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 2, FSK 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 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.7.4 Expected Results

4.7.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.

4.8.1 Test Purpose

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

4.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 the Lower Tester.

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

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

4.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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.8.4 Expected Results

4.8.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.

4.9.1 Test Purpose

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

4.9.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 the Lower Tester.

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

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

4.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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.9.4 Expected Results

4.9.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.

4.10.1 Test Purpose

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

4.10.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 the Lower Tester.

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

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

4.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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.10.4 Expected Results

4.10.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.

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

4.11.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.

4.11.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 the Lower Tester.

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

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

4.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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.11.4 Expected Results

4.11.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).

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

4.12.1 Test Purpose

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

4.12.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 the Lower Tester.

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

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

4.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 2, FSK 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, FSK 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, FSK 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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.12.4 Expected Results

4.12.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.

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

4.13.1 Test Purpose

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

4.13.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 (FSK) is initialized and started on the DUT.

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

4.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 2, FSK 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.13.4 Expected Results

4.13.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.

4.14.1 Test Purpose

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

4.14.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 the Lower Tester.

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

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

4.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 2, FSK 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 100B of Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: 100B"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with 200B of Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: 200B"
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Mask 0, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.14.4 Expected Results

4.14.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.

4.15.1 Test Purpose

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

4.15.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 the Lower Tester.

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

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

4.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 2, FSK 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 100B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 100B of Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data 200B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 200B 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, FSK Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE

4.15.4 Expected Results

4.15.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.

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

4.16.1 Test Purpose

DUT is able to pass the initial time synchronization procedure.

4.16.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.

4.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: The Sidewalk stack is uninitialised
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    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 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 2, FSK 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 2, FSK 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, FSK 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, FSK Disconnected"

4.16.4 Expected Results

4.16.4.1 Pass Verdict

DUT is able to acquire time from the network.

Moreover, the GET_TIME packet must be the first UL transmission right after detecting the Beacon and synchronizing with the Lower Tester. 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.

4.17 FSK/EP/NW/SYNC/JOIN/BV/01: Endpoint completes the initial Join procedure.

4.17.1 Test Purpose

DUT is able to pass the initial Join procedure.

4.17.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile 1 (FSK-WAN ADHOC).

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

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

4.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
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_option(SET_DEVICE_PROFILE, SID_LINK2_PROFILE_1)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    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 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 2, FSK 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 2, FSK Connected"
    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, FSK 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, FSK Disconnected"

4.17.4 Expected Results

4.17.4.1 Pass Verdict

DUT is able to acquire positive Join response from the network.

Moreover, the GET_TIME packet must be the first UL transmission right after detecting the Beacon and synchronizing with the Lower Tester. 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 UL 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 will be sent back to DUT within 31 seconds and until then DUT should not repeat the transmission of the next SET_JOIN_REQ commands. This means the Join procedure completes as expected.

As the SET_JOIN_REQ carries requested link characteristics for both UL and the DL messaging expected on the end device, its content must be verified against the declared capabilities of the DUT.

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

4.18.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 840 seconds of uplink inactivity (no data is transmitted), the DUT should send another Join request command to keep link with the network active/alive.

4.18.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

  • DUT is configured as Profile 1 (FSK-WAN ADHOC).

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

  • The protocol is enabled on the Lower Tester.

  • SidewalkNetworkFlag is enabled on Lower Tester.

4.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
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_option(SET_DEVICE_PROFILE, SID_LINK2_PROFILE_1)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    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 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 2, FSK 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 2, FSK Connected"
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    Note over Lower_Tester,Upper_Tester: Wait 840 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, FSK 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, FSK Disconnected"

4.18.4 Expected Results

4.18.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 detecting the Beacon and synchronizing with the Lower Tester. 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 31 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 840 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 31 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 initial SET_JOIN_REQ carries requested link characteristics for both uplink and the downlink messaging expected on the end device, its content must be verified against the declared capabilities of the DUT. In the case of the second SET_JOIN_REQ (Join request related to Network Synchronization), the only content that must be verified is the GWID field.

4.19 FSK/EP/SEC/UUID/BV/01: Endpoint rotates UUID immediately after time sync.

4.19.1 Test Purpose

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

4.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.

  • SidewalkNetworkFlag is enabled on the Lower Tester.

4.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
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    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 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 2, FSK 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 2, FSK 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, FSK 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, FSK Disconnected"

4.19.4 Expected Results

4.19.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.

4.20 FSK/EP/SEC/UUID/BV/02: UUID rotates every 15 minutes after time sync.

4.20.1 Test Purpose

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

4.20.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 the Lower Tester.

4.20.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
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    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 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 2, FSK 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 2, FSK Connected"
    DUT->>Lower_Tester: SET_JOIN_REQ(TX-UUID-2)
    Note over Lower_Tester,Upper_Tester: Wait up to 15 minutes for the 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()
    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-4)
    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, FSK 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, FSK Disconnected"

4.20.4 Expected Results

4.20.4.1 Pass Verdict

After successful time synchronization procedure, the UUID of the DUT should change every 15 minutes (the first change may occur earlier). Therefore, the TX-UUID value sent as part of the SET_JOIN_REQ packet should be different from the TX-UUID sent up to 15 minutes later in the CUSTOM_NOTIFY_CMD packet.

The next CUSTOM_NOTIFY_CMD packet sent exactly 15 minutes after the previous UUID change should contain the new UUID.

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.

4.20.5.2 Fail Verdict

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

4.21 FSK/EP/SEC/UUID/BV/03: Endpoint can exchange UL/DL during UUID rotation.

4.21.1 Test Purpose

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

4.21.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 the Lower Tester.

4.21.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
    Lower_Tester->>DUT: Beacon TX
    Upper_Tester->>DUT: sid_init(SID_LINK_TYPE_2)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Lower_Tester->>DUT: Beacon TX
    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 0, FSK Disconnected"
    Lower_Tester->>DUT: Beacon TX
    Note over Lower_Tester,Upper_Tester: Wait for end of Gateway Discovery
    Lower_Tester->>DUT: Beacon TX
    DUT->>Upper_Tester: on_status_changed() "Status: Registered, Link Down, No Time, Link Mask 2, FSK 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 2, FSK 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, FSK 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, FSK Disconnected"

4.21.4 Expected Results

4.21.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.


Back to top

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