RSSI-based jamming detection.
2026 Silicon Laboratories Inc.
This module implements the jamming detection algorithm: sample RSSI per channel every 100 ms over a configurable window (e.g. 150 samples = 15 s), count samples above a configurable RSSI threshold, and mark a channel as jammed when a configurable number of samples in the window are above the threshold.
Modules#
sl_jamming_detection_collection_t
sl_jamming_detection_statistics_t
sl_jamming_detection_collection_t.samples
sl_jamming_detection_statistics_t.statistics
sl_jamming_detection_config_t.settings
Macros#
Max number of channels to monitor.
Typedefs#
Callback invoked when jamming is detected on one or more channels.
Functions#
Initialize the jamming detection module.
Fill a config with default jamming detection values.
Enable the jamming detection collection.
Set the report interval in seconds.
Set the configuration for a specific channel.
Macro Definition Documentation#
SL_JAMMING_DETECTION_NUM_CHANNELS#
#define SL_JAMMING_DETECTION_NUM_CHANNELSValue:
ZPAL_RADIO_NUM_CHANNELS_LR_CH_CFG_1_2
Max number of channels to monitor.
SL_JAMMING_DETECTION_NUM_STATS_CHANNELS#
#define SL_JAMMING_DETECTION_NUM_STATS_CHANNELSValue:
(ZPAL_RADIO_NUM_CHANNELS + ZPAL_RADIO_NUM_CHANNELS_LR_CH_CFG3)
SL_JAMMING_DETECTION_NUM_COLLECTION_CHANNELS#
#define SL_JAMMING_DETECTION_NUM_COLLECTION_CHANNELSValue:
(SL_JAMMING_DETECTION_NUM_STATS_CHANNELS)
Typedef Documentation#
sl_jamming_detection_collection_callback_t#
typedef zpal_status_t(* sl_jamming_detection_collection_callback_t) (const sl_jamming_detection_collection_t *collection) )(const sl_jamming_detection_collection_t *collection)
sl_jamming_detection_report_callback_t#
typedef zpal_status_t(* sl_jamming_detection_report_callback_t) (const sl_jamming_detection_statistics_t *statistics) )(const sl_jamming_detection_statistics_t *statistics)
Callback invoked when jamming is detected on one or more channels.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| [in] | statistics | Struct with channel_bitmap and per-channel statistics (threshold, counts). |
Function Documentation#
sl_jamming_detection_init#
zpal_status_t sl_jamming_detection_init (const sl_jamming_detection_config_t * config)
Initialize the jamming detection module.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| const sl_jamming_detection_config_t * | [in] | config | Configuration (threshold, samples, detection-callback). Must not be NULL. |
Returns
ZPAL_STATUS_OK on success, ZPAL_STATUS_INVALID_ARGUMENT if config is NULL or invalid.
sl_jamming_detection_default_config#
zpal_status_t sl_jamming_detection_default_config (sl_jamming_detection_config_t * config)
Fill a config with default jamming detection values.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| sl_jamming_detection_config_t * | [out] | config | Config to fill. Must not be NULL. |
Call this before modifying only the fields you need (e.g. callback, threshold), then pass the config to sl_jamming_detection_init().
Returns
ZPAL_STATUS_OK on success, ZPAL_STATUS_INVALID_ARGUMENT if config is NULL.
sl_jamming_detection_enable_collection#
zpal_status_t sl_jamming_detection_enable_collection (uint16_t periods)
Enable the jamming detection collection.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint16_t | [in] | periods | Duration in periods (100 ms each) to collect samples (0xffff means forever). |
Use 0 to disable collection.
Returns
ZPAL_STATUS_OK on success
sl_jamming_detection_set_report_interval_sec#
zpal_status_t sl_jamming_detection_set_report_interval_sec (uint16_t interval_sec)
Set the report interval in seconds.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint16_t | [in] | interval_sec | Interval between reporting jamming detection events (in seconds). |
Use 0 to disable periodic jamming reports (evaluation timing is skipped). Values from 1 to 20 set the interval in seconds; values greater than 20 are invalid.
Returns
ZPAL_STATUS_OK on success, ZPAL_STATUS_INVALID_ARGUMENT if invalid argument.
sl_jamming_detection_set_channel_configuration#
zpal_status_t sl_jamming_detection_set_channel_configuration (uint8_t logical_channel, int8_t threshold, uint8_t critical_number_of_samples)
Set the configuration for a specific channel.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint8_t | [in] | logical_channel | index. |
| int8_t | [in] | threshold | RSSI threshold in dBm. |
| uint8_t | [in] | critical_number_of_samples | Number of samples above threshold to trigger jamming detection. |
Returns
ZPAL_STATUS_OK on success, ZPAL_STATUS_FAIL if failure.