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

9. Endpoint Metrics Test Cases

9.1 CMN/EP/EPMETRICS/METRICS/BV/01: Verify Endpoint has corresponding metrics but not invalid metrics enabled.

9.1.1 Test Purpose

DUT only has the metrics that correspond to enabled protocol stacks, with no irrelevant metrics present.

9.1.2 Initial Conditions

  • DUT is registered with Amazon Sidewalk network.

9.1.3 Test Procedure

sequenceDiagram
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over DUT,Upper_Tester: iterate: Each Sidewalk operation mode
    Note over DUT,Upper_Tester: Sidewalk application started
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    Upper_Tester->>DUT: sid_stop()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: sid_deinit()
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Note over DUT,Upper_Tester: end of iteration

9.1.4 Expected Results

9.1.4.1 Pass Verdict

DUT maintains only metrics associated with currently enabled protocol stacks, with no irrelevant metrics present.

9.2 BLE/EP/EPMETRICS/REPORT/BV/01: Verify Endpoint sends Endpoint Metrics to Cloud over BLE in a specific time interval.

9.2.1 Test Purpose

DUT demonstrates capability to transmit endpoint metrics through BLE connectivity based on the configured metrics periodicity.

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

  • DUT is configured with metrics capability enabled.

  • Lower Tester operates in BLE mode.

9.2.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 0, BLE disconnected
    Note over Lower_Tester,Upper_Tester: Wait: metrics periodicity cycle - 1 minute post initial time synchronization
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    Note over Lower_Tester,Upper_Tester: Wait: remaining 1 minute to complete periodicity cycle
    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: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_received()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    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"

9.2.4 Expected Results

9.2.4.1 Pass Verdict

Following time synchronization, DUT successfully transmits metrics over BLE according to the configured periodicity.

DUT receives Cloud acknowledgment for the transmitted metrics package.

DUT resets metrics after periodic reporting completion.

9.3 BLE/EP/EPMETRICS/REPORT/BV/02: Verify Endpoint sends remaining Endpoint Metrics to Cloud over BLE via piggybacking on a periodic reporting.

9.3.1 Test Purpose

DUT implements metrics piggybacking over subsequent BLE uplinks to complete metrics transmission when single periodic uplink capacity is insufficient.

9.3.2 Initial Conditions

  • The Sidewalk stack (BLE+FSK), (BLE+LORA) or (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.

  • DUT is configured with metrics capability enabled.

  • Lower Tester operates in BLE mode.

9.3.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 0, BLE disconnected
    Note over Lower_Tester,Upper_Tester: Configure individual metrics to their respective boundary values
    Upper_Tester->>DUT: metrics_set(Category_ID, Metric_ID, boundary_value)
    Note over Lower_Tester,Upper_Tester: Manually trigger periodic metrics reporting
    Upper_Tester->>DUT: metrics_send()
    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: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_received()
    Note over Lower_Tester,Upper_Tester: loop: Send uplinks until all remaining metrics are piggybacked via BLE
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data and piggybacked metrics)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: end of loop
    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"

9.3.4 Expected Results

9.3.4.1 Pass Verdict

DUT transmits remaining metrics from periodic reporting via BLE uplink piggybacking.

9.4 BLE/EP/EPMETRICS/REPORT/BV/03: Verify Endpoint Metrics are uploaded via Piggybacking over BLE if the explicit reporting is disabled.

9.4.1 Test Purpose

When metrics capability is disabled, DUT is able to transmit endpoint metrics via BLE piggybacking instead of periodic reporting during regular reporting intervals.

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

  • DUT is configured with metrics capability disabled.

  • Lower Tester operates in BLE mode.

9.4.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 0, BLE disconnected
    Note over Lower_Tester,Upper_Tester: Manually trigger periodic metrics reporting
    Upper_Tester->>DUT: metrics_send()
    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"
    Note over Lower_Tester,Upper_Tester: loop: Send uplinks until all metrics are piggybacked via BLE
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data and piggybacked metrics)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: end of loop
    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"

9.4.4 Expected Results

9.4.4.1 Pass Verdict

DUT transmits all metrics through BLE piggybacking instead of periodic reporting.

9.5.1 Test Purpose

DUT captures BLE uplink metrics.

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

9.5.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 0, BLE disconnected
    Upper_Tester->>DUT: sid_ble_bcn_connection_request(set)
    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: clear_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_ul: 0"
    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 the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_ul: 1"
    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 the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_ul: 2"
    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 the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: Continued on next page.
sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: Continued from previous page
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_ul: 3"
    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"

9.5.4 Expected Results

9.5.4.1 Pass Verdict

DUT’s BLE uplink metrics increment after each BLE uplink transmission.

9.6.1 Test Purpose

DUT captures BLE downlink metrics.

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

9.6.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 0, BLE disconnected
    Upper_Tester->>DUT: clear_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_dl: 0"
    Note over Lower_Tester,Upper_Tester: Continued on next page.
sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: Continued from previous page
    Lower_Tester->>DUT: Establish BLE connection (triggered by upcoming downlink packets)
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_dl: 1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_dl: 2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_dl: 3"
    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"

9.6.4 Expected Results

9.6.4.1 Pass Verdict

DUT’s BLE downlink metrics increment after each BLE downlink reception.

9.7 BLE/EP/EPMETRICS/CONN-BV-01: Verify Connection attempts Metrics.

9.7.1 Test Purpose

DUT captures BLE connection attempts metrics.

9.7.2 Initial Conditions

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

  • DUT is registered with Amazon Sidewalk network.

  • Lower Tester operates in BLE mode.

9.7.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: The Sidewalk stack BLE is initialized but not started
    Upper_Tester->>DUT: sid_start(ble_start: true)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Upper_Tester: on_status_changed() "No Time, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_conn_attempts: 1"
    DUT->>Lower_Tester: Beacon with time sync request
    Lower_Tester->>DUT: Establish BLE connection
    Lower_Tester->>DUT: RESP_TIME
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_conn_attempts: 1"
    Upper_Tester->>DUT: sid_ble_bcn_connection_request(set)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: Beacon with connection request
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_conn_attempts: 2"
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    Note over Lower_Tester,Upper_Tester: Wait: 30 sec
    DUT->>Lower_Tester: Drop BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 0, BLE Disconnected"
    Upper_Tester->>DUT: metrics_send()
    DUT->>Lower_Tester: Beacon with connection request
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_BLE_LINK)
    DUT->>Upper_Tester: Print BLE_LINK metrics "num_conn_attempts: 3"
    Lower_Tester->>DUT: Establish BLE connection
    DUT->>Upper_Tester: on_status_changed() "Time Synced, Link Mask 1, BLE connected"
    DUT->>Lower_Tester: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_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"

9.7.4 Expected Results

9.7.4.1 Pass Verdict

DUT’s BLE connection attempts metrics increment after BLE start and each DUT-initiated BLE connection request.

9.8 FSK/EP/EPMETRICS/REPORT/BV/01: Verify Endpoint sends Endpoint Metrics to Cloud over FSK in a specific time interval.

9.8.1 Test Purpose

DUT demonstrates capability to transmit endpoint metrics through FSK connectivity based on the configured metrics periodicity.

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

  • DUT is configured with metrics capability enabled.

  • Lower Tester operates in FSK mode.

9.8.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 2, FSK connected
    Note over Lower_Tester,Upper_Tester: Wait: metrics periodicity cycle - 1 minute post initial time synchronization
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    Note over Lower_Tester,Upper_Tester: Wait: remaining 1 minute to complete periodicity cycle
    DUT->>Lower_Tester: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_received()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    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"

9.8.4 Expected Results

9.8.4.1 Pass Verdict

Following time synchronization, DUT successfully transmits metrics over FSK according to the configured periodicity.

DUT receives Cloud acknowledgment for the transmitted metrics package.

DUT resets metrics after periodic reporting completion.

9.9 FSK/EP/EPMETRICS/REPORT/BV/02: Verify Endpoint sends remaining Endpoint Metrics to Cloud over FSK via piggybacking on a periodic reporting.

9.9.1 Test Purpose

DUT implements metrics piggybacking over subsequent FSK uplinks to complete metrics transmission when single periodic uplink capacity is insufficient.

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

  • DUT is configured with metrics capability enabled.

  • Lower Tester operates in FSK mode.

9.9.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 2, FSK connected
    Note over Lower_Tester,Upper_Tester: Configure individual metrics to their respective boundary values
    Upper_Tester->>DUT: metrics_set(Category_ID, Metric_ID, boundary_value)
    Note over Lower_Tester,Upper_Tester: Manually trigger periodic metrics reporting
    Upper_Tester->>DUT: metrics_send()
    DUT->>Lower_Tester: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_received()
    Note over Lower_Tester,Upper_Tester: Continued on next page.
sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: Continued from previous page
    Note over Lower_Tester,Upper_Tester: loop: Send uplinks until all remaining metrics are piggybacked via FSK
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data and piggybacked metrics)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: end of loop
    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"

9.9.4 Expected Results

9.9.4.1 Pass Verdict

DUT transmits remaining metrics from periodic reporting via FSK uplink piggybacking.

9.10 FSK/EP/EPMETRICS/REPORT/BV/03: Verify Endpoint Metrics are uploaded via Piggybacking over FSK if the explicit reporting is disabled.

9.10.1 Test Purpose

When metrics capability is disabled, DUT is able to transmit endpoint metrics via FSK piggybacking instead of periodic reporting during regular reporting intervals.

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

  • DUT is configured with metrics capability disabled.

  • Lower Tester operates in FSK mode.

9.10.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 2, FSK disconnected
    Note over Lower_Tester,Upper_Tester: Manually trigger periodic metrics reporting
    Upper_Tester->>DUT: metrics_send()
    Note over Lower_Tester,Upper_Tester: loop: Send uplinks until all metrics are piggybacked via FSK
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data and piggybacked metrics)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: end of loop
    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"

9.10.4 Expected Results

9.10.4.1 Pass Verdict

DUT transmits all metrics through FSK piggybacking instead of periodic reporting.

9.11.1 Test Purpose

DUT captures FSK uplink metrics and TX packets metrics.

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

9.11.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 2, FSK connected
    Upper_Tester->>DUT: clear_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_ul: 0"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_TX: 0"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE "TX CRID: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_ul: 1"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_TX: 1"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE "TX CRID: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_ul: 2"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_TX: 2"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE "TX CRID: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_ul: 3"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_TX: 3"
    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"

9.11.4 Expected Results

9.11.4.1 Pass Verdict

DUT’s FSK uplink metrics increment after each FSK uplink transmission.

DUT’s FSK TX packets metrics increment after each FSK packet transmission.

9.12.1 Test Purpose

DUT captures FSK downlink metrics and RX packets metrics.

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

9.12.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 2, FSK connected
    Upper_Tester->>DUT: clear_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_dl: 0"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_RX: 0"
    Note over Lower_Tester,Upper_Tester: Continued on next page.
sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: Continued from previous page
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_dl: 1"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_RX: 1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_dl: 2"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_RX: 2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_LINK)
    DUT->>Upper_Tester: Print FSK_LINK metrics "num_dl: 3"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_FSK_MAC)
    DUT->>Upper_Tester: Print FSK_MAC metrics "num_RX: 3"
    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"

9.12.4 Expected Results

9.12.4.1 Pass Verdict

DUT’s FSK downlink metrics increment after each FSK downlink reception.

DUT’s FSK RX packets metrics increment after each FSK packet reception.

9.13 LORA/EP/EPMETRICS/REPORT/BV/01: Verify Endpoint sends Endpoint Metrics to Cloud over LoRa in a specific time interval.

9.13.1 Test Purpose

DUT demonstrates capability to transmit endpoint metrics through LoRa connectivity based on the configured metrics periodicity.

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

  • DUT is configured with metrics capability enabled.

  • Lower Tester operates in LoRa mode.

9.13.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 4, LoRa connected
    Note over Lower_Tester,Upper_Tester: Wait: metrics periodicity cycle - 1 minute post initial time synchronization
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    Note over Lower_Tester,Upper_Tester: Wait: remaining 1 minute to complete periodicity cycle
    DUT->>Lower_Tester: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_received()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: Print all applicable metrics for enabled stacks
    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"

9.13.4 Expected Results

9.13.4.1 Pass Verdict

Following time synchronization, DUT successfully transmits metrics over LoRa according to the configured periodicity.

DUT receives Cloud acknowledgment for the transmitted metrics package.

DUT resets metrics after periodic reporting completion.

9.14 LORA/EP/EPMETRICS/REPORT/BV/02: Verify Endpoint sends remaining Endpoint Metrics to Cloud over LoRa via piggybacking on a periodic reporting.

9.14.1 Test Purpose

DUT implements metrics piggybacking over subsequent LoRa uplinks to complete metrics transmission when single periodic uplink capacity is insufficient.

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

  • DUT is configured with metrics capability enabled.

  • Lower Tester operates in LoRa mode.

9.14.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 4, LoRa connected
    Note over Lower_Tester,Upper_Tester: Manually trigger periodic metrics reporting
    Upper_Tester->>DUT: metrics_send()
    DUT->>Lower_Tester: NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_sent()
    Lower_Tester->>DUT: ACK_NTFY_READ_METRICS_FWK
    DUT->>Upper_Tester: on_metrics_received()
    Note over Lower_Tester,Upper_Tester: loop: Send uplinks until all remaining metrics are piggybacked via LoRa
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data and piggybacked metrics)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: end of loop
    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"

9.14.4 Expected Results

9.14.4.1 Pass Verdict

DUT transmits remaining metrics from periodic reporting via LoRa uplink piggybacking.

9.15 LORA/EP/EPMETRICS/REPORT/BV/03: Verify Endpoint Metrics are uploaded via Piggybacking over LoRa if the explicit reporting is disabled.

9.15.1 Test Purpose

When metrics capability is disabled, DUT is able to transmit endpoint metrics via LoRa piggybacking instead of periodic reporting during regular reporting intervals.

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

  • DUT is configured with metrics capability disabled.

  • Lower Tester operates in LoRa mode.

9.15.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 4, LoRa disconnected
    Note over Lower_Tester,Upper_Tester: Manually trigger periodic metrics reporting
    Upper_Tester->>DUT: metrics_send()
    Note over Lower_Tester,Upper_Tester: loop: Send uplinks until all metrics are piggybacked via LoRa
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: 1B)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD (with 1B of Command data and piggybacked metrics)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: end of loop
    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"

9.15.4 Expected Results

9.15.4.1 Pass Verdict

DUT transmits all metrics through LoRa piggybacking instead of periodic reporting.

9.16.1 Test Purpose

DUT captures LoRa uplink metrics and TX normal packets metrics.

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

9.16.3 Test Procedure

sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: DUT Status: Registered, Time Synced, Link Mask 4, LoRa connected
    Upper_Tester->>DUT: clear_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_ul: 0"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_TX: 0"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE "TX CRID: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_ul: 1"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_TX: 1"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE "TX CRID: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_ul: 2"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Note over Lower_Tester,Upper_Tester: Continued on next page.
sequenceDiagram
    participant Lower_Tester as Lower Tester
    participant DUT as DUT
    participant Upper_Tester as Upper Tester
    Note over Lower_Tester,Upper_Tester: Continued from previous page
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_TX: 2"
    Upper_Tester->>DUT: sid_put_msg(SID_MSG_TYPE_NOTIFY, Command data: any)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE "TX CRID: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_ul: 3"
    DUT->>Lower_Tester: CUSTOM_NOTIFY_CMD(with the Command data)
    DUT->>Upper_Tester: on_msg_sent()
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_TX: 3"
    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"

9.16.4 Expected Results

9.16.4.1 Pass Verdict

DUT’s LoRa uplink metrics increment after each LoRa uplink transmission.

DUT’s LoRa TX packets metrics increment after each LoRa packet transmission.

9.17.1 Test Purpose

DUT captures LoRa downlink metrics and RX packets metrics.

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

9.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: DUT Status: Registered, Time Synced, Link Mask 4, LoRa connected
    Upper_Tester->>DUT: clear_metrics(SID_METRICS_CAT_ALL)
    DUT->>Upper_Tester: #35;SID_ERROR_NONE
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_dl: 0"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_RX: 0"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_dl: 1"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_RX: 1"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_dl: 2"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_RX: 2"
    Lower_Tester->>DUT: CUSTOM_NOTIFY_CMD (with any Command data)
    DUT->>Upper_Tester: on_msg_received() "Command data: any"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_LINK)
    DUT->>Upper_Tester: Print LORA_LINK metrics "num_dl: 3"
    Upper_Tester->>DUT: print_metrics(SID_METRICS_CAT_LORA_MAC)
    DUT->>Upper_Tester: Print LORA_MAC metrics "num_RX: 3"
    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"

9.17.4 Expected Results

9.17.4.1 Pass Verdict

DUT’s LoRa downlink metrics increment after each LoRa downlink reception.

DUT’s LoRa RX packets metrics increment after each LoRa normal packet reception.


Back to top

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