4. Existing settings GSK interacts with
All but the last are set and read with sid_option(). sid_config.time_sync_config is passed to sid_init().
| Setting | Value type | Why it matters to GSK |
|---|---|---|
SID_OPTION_DL_ROUTE_VALIDITY (19) | struct sid_dlrv_config { uint16_t time; uint16_t nwsync_time; bool is_set; } | time is the downlink route validity, 1–1440 min. nwsync_time overrides the keep-alive interval in minutes, and is one value shared by both sub-GHz links. The keep-alive interval is the dominant term in detection latency (§6). |
SID_OPTION_900MHZ_SET_DEVICE_PROFILE (1), SID_OPTION_900MHZ_GET_DEVICE_PROFILE (2) | struct sid_device_profile | The stack re-resolves the MDR RX-window separation from l3_mdr_rx_window_interval_ms on every entry to MDR, including at boot. A product that needs 500 ms or 1000 ms sets the field once, and a GSK data-rate transition cannot lose it. Setting a profile while a session is active does not tear the session down, but an accepted change on a started, network-synchronized LoRa link takes the link out of network synchronization, which your application sees as the same link_status_mask bounce as a GSK transition (§2.2). |
sid_config.time_sync_config | struct sid_time_sync_config { const uint16_t *adaptive_sync_intervals_h; uint8_t num_intervals; } | Each interval is between TIME_SYNC_INTERVAL_MIN_HOURS = 2 and TIME_SYNC_INTERVAL_MAX_HOURS = 720 hours. NULL or an invalid set selects the SDK default. Sparse intervals lengthen the windows in which nothing establishes. |
Table 4.1: Existing settings whose values change GSK behavior.
The effective keep-alive interval must be longer than idle_timeout_sec. If it is not, the quiet window never elapses and no session is established. Read the interval in effect with is_set = false. It is reported even if you never set one.
Never override the keep-alive interval with 0. 0 means not set. SubG-FSK and LoRa Profile C fall back to their own default, but LoRa Profile B discards its 5 minute default and reads back the 2 minute floor (§7).
nwsync_time has its own range, dependent on the link and device profile. For the ranges and how the interval is derived, see the Amazon Sidewalk Keep-Alive (KA) Application Note. Out of range returns SID_ERROR_INVALID_ARGS (-11). A value below the 2 min floor is accepted, then floored by the scheduler.