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

7. Multi-link Test Cases

7.1.1 Test Purpose

A registered DUT without enabling BLE auto-connect shouldn’t attempt to establish a BLE connection with the Lower Tester and send uplink via BLE when sending an uplink with a Link_Mask 0 status. Instead, the DUT should report a proper error message to the Upper Tester.

7.1.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode.

7.1.3 Test Procedure

sequenceDiagram
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over DUT,Upper_Tester: Sidewalk application started
    Note over DUT,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: on_send_error(SID_ERROR_INVALID_STATE)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.1.4 Expected Results

7.1.4.1 Pass Verdict

The DUT should report the proper error message, SID_ERROR_INVALID_STATE, to the Upper Tester.

7.2 MULTI-LINK/EP/BLE-AUTO-CONNECT/UL/BV/02: Send UL with auto-connect, ack is true, retry is 3, TTL is 60.

7.2.1 Test Purpose

A registered DUT enabling BLE auto-connect should attempt to establish a BLE connection with the Lower Tester and send uplink via BLE when sending an uplink with a Link_Mask 0 status.

7.2.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 5 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.2.4 Expected Results

7.2.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.3.1 Test Purpose

A registered DUT without enabling FSK auto-connect shouldn’t attempt to establish a FSK connection with the Lower Tester and send uplink via FSK when sending an uplink with a Link_Mask 0 status. Instead, the DUT should report a proper error message to the Upper Tester.

7.3.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode.

7.3.3 Test Procedure

sequenceDiagram
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over DUT,Upper_Tester: Sidewalk application started
    Note over DUT,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: on_send_error(SID_ERROR_INVALID_STATE)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.3.4 Expected Results

7.3.4.1 Pass Verdict

The DUT should report the proper error message, SID_ERROR_INVALID_STATE, to the Upper Tester.

7.4 MULTI-LINK/EP/FSK-AUTO-CONNECT/UL/BV/02: Send UL with auto-connect, ack is true, retry is 3, TTL is 60.

7.4.1 Test Purpose

A registered DUT enabling FSK auto-connect should attempt to establish a FSK connection with the Lower Tester and send uplink via FSK when sending an uplink with a Link_Mask 0 status.

7.4.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 2 1 20 90
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.4.4 Expected Results

7.4.4.1 Pass Verdict

A registered DUT should successfully establish a FSK connection with the Lower Tester and send an uplink.

7.5.1 Test Purpose

A registered DUT without enabling LoRa auto-connect shouldn’t attempt to establish a LoRa connection with the Lower Tester and send uplink via LoRa when sending an uplink with a Link_Mask 0 status. Instead, the DUT should report a proper error message to the Upper Tester.

7.5.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode.

7.5.3 Test Procedure

sequenceDiagram
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over DUT,Upper_Tester: Sidewalk application started
    Note over DUT,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: on_send_error(SID_ERROR_INVALID_STATE)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.5.4 Expected Results

7.5.4.1 Pass Verdict

The DUT should report the proper error message, SID_ERROR_INVALID_STATE, to the Upper Tester.

7.6 MULTI-LINK/EP/LoRa-AUTO-CONNECT/UL/BV/02: Send UL with auto-connect, ack is true, retry is 3, TTL is 60.

7.6.1 Test Purpose

A registered DUT enabling LoRa auto-connect should attempt to establish a LoRa connection with the Lower Tester and send uplink via LoRa when sending an uplink with a Link_Mask 0 status.

7.6.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.6.4 Expected Results

7.6.4.1 Pass Verdict

A registered DUT should successfully establish a LoRa connection with the Lower Tester and send an uplink.

7.7.1 Test Purpose

A registered DUT that enables BLE, and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. Given the BLE>LoRa link priority and enabling BLE on the Lower Tester, the DUT should attempt to establish a BLE connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status.

7.7.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, LoRa Disconnected"

7.7.4 Expected Results

7.7.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.8.1 Test Purpose

A registered DUT that enables BLE and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. Given the BLE>LoRa link priority and enabling LoRa on the Lower Tester, the DUT should first attempt to establish a BLE connection, which will fail. Afterward, it should attempt to establish a LoRa connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status.

7.8.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection failed
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.8.4 Expected Results

7.8.4.1 Pass Verdict

A registered DUT should attempt to establish a BLE connection and fail. Afterward, it should attempt to establish a LoRa connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status

7.9.1 Test Purpose

A registered DUT that enables BLE, and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. The DUT will stop the connection search process if it can’t connect with the proper link type before the TTL has expired. Given the BLE>LoRa link priority and enabling LoRa on the Lower Tester, the DUT should first attempt to establish a BLE connection, which will fail. Afterward, it should attempt to establish a LoRa connection, which will also fail. The DUT will repeat the same process and stop the process after the TTL has expired.

7.9.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE&LoRa mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection failed
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&LoRa Disconnected"

7.9.4 Expected Results

7.9.4.1 Pass Verdict

A registered DUT should first attempt to establish a BLE connection, which will fail. Afterward, it should attempt to establish a LoRa connection, which will also fail. The DUT will repeat the same process and stop the process after the TTL has expired.

7.10.1 Test Purpose

For an auto-connect registered DUT, when the link mask in the sid_put message does not have the auto-connect enabled, an error is returned, and the link connection is not established.

7.10.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.10.3 Test Procedure

sequenceDiagram
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over DUT,Upper_Tester: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over DUT,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, LinkType: FSK)
    DUT->>Upper_Tester: on_send_error(SID_ERROR_NO_ROUTE_AVAILABLE)
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&LoRa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&LoRa Disconnected"

7.10.4 Expected Results

7.10.4.1 Pass Verdict

The DUT should report the proper error message, SID_ERROR_NO_ROUTE_AVAILABLE, to the Upper Tester.

7.11 MULTI-LINK/EP/BLE-FSK-LoRa-AUTO-CONNECT/UL/BV/01: UL sent through BLE when no connection.

7.11.1 Test Purpose

A registered DUT that enables BLE, FSK, and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. Given the BLE>FSK>LoRa link priority and enabling BLE on the Lower Tester, the DUT should attempt to establish a BLE connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status.

7.11.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 2 1 20 90
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.11.4 Expected Results

7.11.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.12 MULTI-LINK/EP/BLE-FSK-LoRa-AUTO-CONNECT/UL/BV/02: UL sent through FSK when no connection.

7.12.1 Test Purpose

A registered DUT that enables BLE, FSK, and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. Given the BLE>FSK>LoRa link priority and enabling FSK on the Lower Tester, the DUT should first attempt to establish a BLE connection, which will fail. Subsequently, it should then attempt to establish an FSK connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status.

7.12.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 2 1 20 90
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.12.4 Expected Results

7.12.4.1 Pass Verdict

A registered DUT should attempt to establish a BLE connection and fail. It should then try to establish an FSK connection with the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.13 MULTI-LINK/EP/BLE-FSK-LoRa-AUTO-CONNECT/UL/BV/03: UL sent through LoRa when no connection.

7.13.1 Test Purpose

A registered DUT that enables BLE, FSK, and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. Given the BLE>FSK>LoRa link priority and enabling LoRa on the Lower Tester, the DUT should first attempt to establish a BLE connection, which will fail. Subsequently, it should then attempt to establish an FSK connection, which will also fail. Afterward, it should attempt to establish a LoRa connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status.

7.13.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 2 1 20 90
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.13.4 Expected Results

7.13.4.1 Pass Verdict

A registered DUT should attempt to establish a BLE connection and fail. It should then try to establish an FSK connection and fail. Afterward, it should attempt to establish a LoRa connection with the Lower Tester and automatically send the uplink when sending an uplink with a Link_Mask 0 status

7.14 MULTI-LINK/EP/BLE-FSK-LoRa-AUTO-CONNECT/UL/BV/04: UL not send when no connection and BLE/FSK/LoRa unavailable.

7.14.1 Test Purpose

A registered DUT that enables BLE, FSK, and LoRa auto-connect should attempt to establish a connection with each link type according to the configured link priority and send an uplink via the connected link type. The DUT will stop the connection search process if it can’t connect with the proper link type before the TTL has expired. Given the BLE>FSK>LoRa link priority and disabling BLE&FSK&LoRa on the Lower Tester, the DUT should first attempt to establish a BLE connection, which will fail. Subsequently, it should then attempt to establish an FSK connection, which will also fail. Afterward, it should attempt to establish a LoRa connection, which will also fail. The DUT will repeat the same process and stop the process after the TTL has expired.

7.14.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE & FSK & LoRa mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 2 1 20 90
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any, Ack: True, Retries: 3, TTL: 60)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.14.4 Expected Results

7.14.4.1 Pass Verdict

A registered DUT should first attempt to establish a BLE connection, which will fail. Subsequently, it should then attempt to establish an FSK connection, which will also fail. Afterward, it should attempt to establish a LoRa connection, which will also fail. The DUT will repeat the same process and stop the process after the TTL has expired.

7.15.1 Test Purpose

When the link is connected, a registered auto-connect DUT does not initiate a connection but sends out a message on the connected link.

7.15.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates BLE mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 1 1 10 30
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 2 1 20 90
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -c 3 1 30 120
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid conn_req 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.15.4 Expected Results

7.15.4.1 Pass Verdict

A registered DUT should send an uplink via BLE directly.

7.16 MULTI-LINK/EP/MLM-ACTIVE/UL/BV/01: UL sent through BLE when no connection.

7.16.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM ACTIVE policy, which is BLE>FSK>LoRa.

7.16.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 0
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.16.4 Expected Results

7.16.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.17 MULTI-LINK/EP/MLM-ACTIVE/UL/BV/02: UL sent through FSK when no connection.

7.17.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM ACTIVE policy, which is BLE>FSK>LoRa.

7.17.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 0
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.17.4 Expected Results

7.17.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.18 MULTI-LINK/EP/MLM-ACTIVE/UL/BV/03: UL sent through LoRa when no connection.

7.18.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM ACTIVE policy, which is BLE>FSK>LoRa.

7.18.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 0
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.18.4 Expected Results

7.18.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK and fail. Afterward, it should attempt to connect with LoRa on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.19 MULTI-LINK/EP/MLM-ACTIVE/UL/BV/04: UL not send when no connection and BLE/FSK/LoRa unavailable.

7.19.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type. The DUT will halt the connection search process if it cannot connect with the proper link type before the TTL has expired. Once the TTL has expired, a background process may or may not be triggered according to the configured MLM policy. For MLM ACTIVE, the background process should not be triggered. The TTL will be equal to the LoRa link type’s TTL.

7.19.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE & FSK & LoRa mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 0
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    DUT->>Upper_Tester: Disable background process
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.19.4 Expected Results

7.19.4.1 Pass Verdict

A registered DUT should attempt to connect with BLE and fail, then try to connect with FSK and fail, and attempt to connect with LoRa and fail. The DUT will repeat the same process and stop it after the TTL has expired. Once the TTL is expired, the background process should not be triggered (indicating that the DUT will not attempt to connect with each link type).

7.20.1 Test Purpose

When the link is connected, a registered MLM ACTIVE DUT does not initiate a connection but sends out a message on the connected link.

7.20.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates BLE mode.

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 0
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid conn_req 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.20.4 Expected Results

7.20.4.1 Pass Verdict

A registered DUT should send an uplink via BLE directly.

7.21 MULTI-LINK/EP/MLM-POWER/UL/BV/01: UL sent through BLE when no connection.

7.21.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM POWER policy, which is BLE>FSK>LoRa.

7.21.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.21.4 Expected Results

7.21.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.22 MULTI-LINK/EP/MLM-POWER/UL/BV/02: UL sent through FSK when no connection.

7.22.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM POWER policy, which is BLE>FSK>LoRa.

7.22.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode

7.22.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.22.4 Expected Results

7.22.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.23 MULTI-LINK/EP/MLM-POWER/UL/BV/03: UL sent through LoRa when no connection.

7.23.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM POWER policy, which is BLE>FSK>LoRa.

7.23.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode

7.23.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.23.4 Expected Results

7.23.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK and fail. Afterward, it should attempt to connect with LoRa on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.24 MULTI-LINK/EP/MLM-POWER/UL/BV/04: UL not send when no connection and BLE/FSK/LoRa unavailable.

7.24.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type. The DUT will halt the connection search process if it cannot connect with the proper link type before the TTL has expired. Once the TTL has expired, a background process may or may not be triggered according to the configured MLM policy. For MLM POWER, the background process should not be triggered. The TTL will be equal to the LoRa link type’s TTL.

7.24.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE & FSK & LoRa mode

7.24.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    DUT->>Upper_Tester: Disable background process
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.24.4 Expected Results

7.24.4.1 Pass Verdict

A registered DUT should attempt to connect with BLE and fail, then try to connect with FSK and fail, and attempt to connect with LoRa and fail. The DUT will repeat the same process and stop it after the TTL has expired. Once the TTL is expired, the background process should not be triggered (indicating that the DUT will not attempt to connect with each link type).

7.25.1 Test Purpose

When the link is connected, a registered MLM POWER DUT does not initiate a connection but sends out a message on the connected link.

7.25.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates BLE mode.

7.25.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid conn_req 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.25.4 Expected Results

7.25.4.1 Pass Verdict

A registered DUT should send an uplink via BLE directly.

7.26 MULTI-LINK/EP/MLM-PERFORMANCE/UL/BV/01: UL sent through BLE when no connection.

7.26.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM PERFORMANCE policy, which is BLE>FSK>LoRa.

7.26.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.26.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.26.4 Expected Results

7.26.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.27 MULTI-LINK/EP/MLM-PERFORMANCE/UL/BV/02: UL sent through FSK when no connection.

7.27.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM PERFORMANCE policy, which is BLE>FSK>LoRa.

7.27.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode

7.27.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.27.4 Expected Results

7.27.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.28 MULTI-LINK/EP/MLM-PERFORMANCE/UL/BV/03: UL sent through LoRa when no connection.

7.28.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM PERFORMANCE policy, which is BLE>FSK>LoRa.

7.28.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode

7.28.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.28.4 Expected Results

7.28.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK and fail. Afterward, it should attempt to connect with LoRa on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.29 MULTI-LINK/EP/MLM-PERFORMANCE/UL/BV/04: UL not send when no connection and BLE/FSK/LoRa unavailable.

7.29.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type. The DUT will halt the connection search process if it cannot connect with the proper link type before the TTL has expired. Once the TTL has expired, a background process may or may not be triggered according to the configured MLM policy. For MLM PERFORMANCE, the background process should be triggered. The DUT will perform the background process (BLE>FSK>LoRa) indefinitely. The TTL will be equal to the LoRa link type’s TTL.

7.29.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE & FSK & LoRa mode

7.29.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    DUT->>Upper_Tester: Disable background process
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.29.4 Expected Results

7.29.4.1 Pass Verdict

A registered DUT should attempt to connect with BLE and fail, then try to connect with FSK and fail, and finally attempt to connect with LoRa and fail. This process should be repeated until the TTL expires. Once the TTL has expired, the background process should be triggered. The DUT will then try to connect with BLE, FSK, and LoRa indefinitely.

7.30.1 Test Purpose

When the link is connected, a registered MLM PERFORMANCE DUT does not initiate a connection but sends out a message on the connected link.

7.30.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates BLE mode.

7.30.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid conn_req 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.30.4 Expected Results

7.30.4.1 Pass Verdict

A registered DUT should send an uplink via BLE directly.

7.31 MULTI-LINK/EP/MLM-LATENCY/UL/BV/01: UL sent through BLE when no connection.

7.31.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM LATENCY policy, which is BLE>FSK>LoRa.

7.31.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.31.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 3
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.31.4 Expected Results

7.31.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.32 MULTI-LINK/EP/MLM-LATENCY/UL/BV/02: UL sent through FSK when no connection.

7.32.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM LATENCY policy, which is BLE>FSK>LoRa.

7.32.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode

7.32.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 3
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.32.4 Expected Results

7.32.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.33 MULTI-LINK/EP/MLM-LATENCY/UL/BV/03: UL sent through LoRa when no connection.

7.33.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM LATENCY policy, which is BLE>FSK>LoRa.

7.33.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode

7.33.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 3
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.33.4 Expected Results

7.33.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK and fail. Afterward, it should attempt to connect with LoRa on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.34 MULTI-LINK/EP/MLM-LATENCY/UL/BV/04: UL not send when no connection and BLE/FSK/LoRa unavailable.

7.34.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type. The DUT will halt the connection search process if it cannot connect with the proper link type before the TTL has expired. Once the TTL has expired, a background process may or may not be triggered according to the configured MLM policy. For MLM LATENCY, the background process should be triggered. The DUT will perform the background process (BLE>FSK>LoRa) indefinitely. The TTL will be equal to the LoRa link type’s TTL.

7.34.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE & FSK & LoRa mode

7.34.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 3
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    DUT->>Upper_Tester: Disable background process
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.34.4 Expected Results

7.34.4.1 Pass Verdict

A registered DUT should attempt to connect with BLE and fail, then try to connect with FSK and fail, and finally attempt to connect with LoRa and fail. This process should be repeated until the TTL expires. Once the TTL has expired, the background process should be triggered. The DUT will then try to connect with BLE, FSK, and LoRa indefinitely.

7.35.1 Test Purpose

When the link is connected, a registered MLM LATENCY DUT does not initiate a connection but sends out a message on the connected link.

7.35.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates BLE mode.

7.35.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 3
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid conn_req 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.35.4 Expected Results

7.35.4.1 Pass Verdict

A registered DUT should send an uplink via BLE directly.

7.36 MULTI-LINK/EP/MLM-RELIABILITY/UL/BV/01: UL sent through BLE when no connection.

7.36.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM RELIABILITY policy, which is BLE>FSK>LoRa.

7.36.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode

7.36.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 4
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"

7.36.4 Expected Results

7.36.4.1 Pass Verdict

A registered DUT should successfully establish a BLE connection with the Lower Tester and send an uplink.

7.37 MULTI-LINK/EP/MLM-RELIABILITY/UL/BV/02: UL sent through FSK when no connection.

7.37.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM RELIABILITY policy, which is BLE>FSK>LoRa.

7.37.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in FSK mode

7.37.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 4
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 2, FSK connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop FSK connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, FSK Disconnected"

7.37.4 Expected Results

7.37.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.38 MULTI-LINK/EP/MLM-RELIABILITY/UL/BV/03: UL sent through LoRa when no connection.

7.38.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type, following the priority table defined by the MLM policy, when sending an uplink with a Link_Mask 0 status. Specifically, in this instance, the DUT should adhere to the priority of the MLM RELIABILITY policy, which is BLE>FSK>LoRa.

7.38.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates in LoRa mode

7.38.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 4
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 4, LoRa connected"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop LoRa connection
    DUT->>Upper_Tester: on_status_changed() "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() "No Time, Link Mask 0, LoRa Disconnected"

7.38.4 Expected Results

7.38.4.1 Pass Verdict

A registered DUT should try to connect with BLE and fail, then attempt to connect with FSK and fail. Afterward, it should attempt to connect with LoRa on the Lower Tester and send the uplink automatically when sending an uplink with a Link_Mask 0 status.

7.39 MULTI-LINK/EP/MLM-RELIABILITY/UL/BV/04: UL not send when no connection and BLE/FSK/LoRa unavailable.

7.39.1 Test Purpose

A registered DUT configured with the MLM policy will attempt to establish a connection with each link type and send an uplink via the connected link type. The DUT will halt the connection search process if it cannot connect with the proper link type before the TTL has expired. Once the TTL has expired, a background process may or may not be triggered according to the configured MLM policy. For MLM RELIABILITY, the background process should be triggered. The DUT will perform the background process (FSK>LoRa) indefinitely. The TTL will be equal to the LoRa link type’s TTL.

7.39.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester disables BLE & FSK & LoRa mode

7.39.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 4
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Start the auto-connect process
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: BLE connection attempt timeout
    DUT->>Lower_Tester: Trigger GW discovery process
    Lower_Tester->>DUT: Establish FSK connection
    DUT->>Upper_Tester: FSK connection attempt timeout
    DUT->>Lower_Tester: SET_JOIN_REQ
    Lower_Tester->>DUT: RESP_JOIN_REQ
    DUT->>Upper_Tester: LoRa connection attempt timeout
    Note over Lower_Tester,Upper_Tester: Repeat the above process until TTL expires
    DUT->>Upper_Tester: Disable background process
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.39.4 Expected Results

7.39.4.1 Pass Verdict

A registered DUT should attempt to connect with BLE and fail, then try to connect with FSK and fail, and finally attempt to connect with LoRa and fail. This process should be repeated until the TTL expires. Once the TTL has expired, the background process should be triggered. The DUT will then try to connect with FSK, and LoRa indefinitely.

7.40.1 Test Purpose

When the link is connected, a registered MLM RELIABILITY DUT does not initiate a connection but sends out a message on the connected link.

7.40.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • DUT is time-synced with Amazon Sidewalk network.

  • Lower Tester operates BLE mode.

7.40.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: Sidewalk application started
    Upper_Tester->>DUT: sid_option -m 2
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_option -ml 4
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over Lower_Tester,Upper_Tester: Ensure DUT's Link_Mask is 0
    Upper_Tester->>DUT: sid conn_req 1
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD(with and Command data)
    DUT->>Upper_Tester: on_msg_received()
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE&FSK&LORa Disconnected"
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE&FSK&LORa Disconnected"

7.40.4 Expected Results

7.40.4.1 Pass Verdict

A registered DUT should send an uplink via BLE directly.


Back to top

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