# Channel Manager

# Channel Manager

This module includes configuration variables for Channel Manager.

## Summary

| ### Macros ||
|---|---|
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1ga6252557b18b79f5e453d357035b03702 (0xffff * 14 / 100)` | Default minimum CCA failure rate threshold on current channel before Channel Manager starts channel selection attempt. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1gacbd83b553737ac41191b8429a6482d72 0` | Define as 1 to enable Channel Manager support for selecting CSL channels. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1ga67cabf7000148c41e1a1abd0a03b9ad0 (3 * 60 * 60)` | The default time interval (in seconds) used by Channel Manager for auto-channel-selection functionality. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1ga967afd42cac9d86ad0b94aee9ab72d5d 0` | Define as 1 to enable Channel Manager support. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1ga4f6a7c9a50d4af1a826ce29ad5db0573 120` | The minimum delay (in seconds) used by Channel Manager module for performing a channel change. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1gae41973d8789f116363debdfecc2b430f 500` | The minimum number of RSSI samples per channel by Channel Monitoring feature before the collected data can be used by the Channel Manager module to (auto) select a better channel. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1gab3e1cd20bd7e3207693e5e7f8fcb9020 (0xffff * 10 / 100)` | This threshold specifies the minimum occupancy rate difference required between the current channel and a newly selected channel for Channel Manager to allow channel change to the new channel. |
| `https://openthread.io/reference/config/group/config-channel-manager#group__config-channel-manager_1ga667031e6a867927dfbf4d943a3cc40da (0xffff * 7 / 100)` | This threshold specifies the minimum occupancy rate difference between two channels for the Channel Manager to prefer an unfavored channel over the best favored one. |

## Macros

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_CCA_FAILURE_THRESHOLD

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_CCA_FAILURE_THRESHOLD (0xffff * 14 / 100)
```
Default minimum CCA failure rate threshold on current channel before Channel Manager starts channel selection attempt.

Value 0 maps to 0% and 0xffff maps to 100%.

Applicable only if Channel Manager feature is enabled (i.e., `OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is set).

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_CSL_CHANNEL_SELECT_ENABLE

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_CSL_CHANNEL_SELECT_ENABLE 0
```
Define as 1 to enable Channel Manager support for selecting CSL channels.

`OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE` must be enabled in addition.

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_DEFAULT_AUTO_SELECT_INTERVAL

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_DEFAULT_AUTO_SELECT_INTERVAL (3 * 60 * 60)
```
The default time interval (in seconds) used by Channel Manager for auto-channel-selection functionality.

Applicable only if Channel Manager feature is enabled (i.e., `OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is set).

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE 0
```
Define as 1 to enable Channel Manager support.

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_MINIMUM_DELAY

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_MINIMUM_DELAY 120
```
The minimum delay (in seconds) used by Channel Manager module for performing a channel change.

The minimum delay should preferably be longer than maximum data poll interval used by all sleepy-end-devices within the Thread network.

Applicable only if Channel Manager feature is enabled (i.e., `OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is set).

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_MINIMUM_MONITOR_SAMPLE_COUNT

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_MINIMUM_MONITOR_SAMPLE_COUNT 500
```
The minimum number of RSSI samples per channel by Channel Monitoring feature before the collected data can be used by the Channel Manager module to (auto) select a better channel.

Applicable only if Channel Manager and Channel Monitoring features are both enabled (i.e., `OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are set).

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_THRESHOLD_TO_CHANGE_CHANNEL

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_THRESHOLD_TO_CHANGE_CHANNEL (0xffff * 10 / 100)
```
This threshold specifies the minimum occupancy rate difference required between the current channel and a newly selected channel for Channel Manager to allow channel change to the new channel.

The difference is based on the `ChannelMonitor::GetChannelOccupancy()` definition which provides the average percentage of RSSI samples (within a time window) indicating that channel was busy (i.e., RSSI value higher than a threshold). Value 0 maps to 0% rate and 0xffff maps to 100%.

Applicable only if Channel Manager feature is enabled (i.e., `OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is set).

### OPENTHREAD_CONFIG_CHANNEL_MANAGER_THRESHOLD_TO_SKIP_FAVORED

```
 OPENTHREAD_CONFIG_CHANNEL_MANAGER_THRESHOLD_TO_SKIP_FAVORED (0xffff * 7 / 100)
```
This threshold specifies the minimum occupancy rate difference between two channels for the Channel Manager to prefer an unfavored channel over the best favored one.

This is used when (auto) selecting a channel based on the collected channel quality data by "channel monitor" feature.

The difference is based on the `ChannelMonitor::GetChannelOccupancy()` definition which provides the average percentage of RSSI samples (within a time window) indicating that channel was busy (i.e., RSSI value higher than a threshold). Value 0 maps to 0% and 0xffff maps to 100%.

Applicable only if Channel Manager feature is enabled (i.e., `OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is set).

## Resources

OpenThread API Reference topics originate from the source code, available
on [GitHub](https://github.com/openthread/openthread/tree/main/include/openthread).
For more information, or to contribute to our documentation, refer to
[Resources](https://openthread.io/resources).