Skip to content

Contents

DCS

Dynamic channel selection (DCS) DCS is a feature to detect and avoid CW interference. CW interference causes the noise floor to be high. This stops transmissions as well as causes receives to fail frequently. The noise floor is monitored by the calibration logic. When the noise floor is above a threshold, the AP is put into EACS mode. It will disconnect from the STAs (it would already have due to the interference) and move to a new channel. The STAs are expected to re-associate with the AP on their own. In the DCS configuration, the DCS channel switch can be enabled/disabled using the cfg80211tool command:

cfg80211tool <wifix> dcs_enable <1/0>

1 enables DCS and 0 disables the feature. The default value is set to 1. See the Configuration of DCS-IM section for details about usage of the dcs_enable parameter.

Configuration of DCS-IM

The following command line interface can be used to control DCS algorithm: cfg80211tool wifi<0/1> dcs_enable <0-7> dcs_enable <0-3> can be used to disable/enable the DCS feature at run time. When dcs_enable is set to 0, disable DCS. When dcs_enable is set to 1, enable DCS for CW interference mitigation (CW_IM). When dcs_enable is set to 2, enable DCS for WLAN interference mitigation. Since the algorithm defined in this section primarily mitigates WLAN interferences, it is referred to as as DCS for WLAN interference mitigation (WLAN_IM). When dcs_enable is set to 3, enable both DCS for CW_IM and DCS for WLAN_IM. When dcs_enable is set to 4, enable DCS for AWGN interference mitigation. This value is introduced in the QCA_Networking_2021.SPF.11.4 release. When dcs_enable is set to 5, enable both DCS for CW_IM and DCS for AWGN_IM. This value is introduced in the QCA_Networking_2021.SPF.11.4 release. When dcs_enable is set to 6, enable both DCS for CW_IM and DCS for AWGN_IM. This value is introduced in the QCA_Networking_2021.SPF.11.4 release. Similar to enabling DCS for CW_IM and WLAN_IM in combination, it is possible to set a value of 7 for the dcs_enable parameter to enable DCS for CW_IM, WLAN_IM, and AWGN_ IM. This value is introduced in the QCA_Networking_2021.SPF.11.4 release. The values for dcs_sim and dcs_enable parameters can be entered either in decimal format or hexadecimal format (by prefixing the 0x notation before the number). Although the dcs_enable parameter can be enabled through the console by entering the cfg80211tool wifiX dcs_enable command, this parameter can be alternatively set in /etc/config/wireless also as follows: option dcs_enable (if enabled through /etc/config/wireless) Also, this command can also be entered using UCI as follows: wireless.wifi0.dcs_enable='3' If the dcs_enable parameter is used as part of radio/VAP bring-up scripts using UCI or /etc/config/wireless addition, DCS WLAN interference management is not supported (value: 0x2) for fixed channel configuration. This behavior ensures that a movement away from the preset channel does not occur. If WLAN interference management is required even for fixed channel configuration, then it needs to be explicitly enabled using cfg80211tool after the bring-up is complete. This restriction is not applied on channels selected using ACS.

  • cfg80211tool wifi<0/1> get_dcs_enable The get function get_dcs_enable can be used to get the current status of the DCS.
  • cfg80211tool wifi<0/1> set_dcs_intrth set_dcs_intrth can be used to configure co-channel interference threshold (as a percentage) to trigger channel change. Default value of co-channel interference threshold is 30%.
  • cfg80211tool wifi<0/1> get_dcs_intrth get_dcs_intrth can be used to get the current value of co-channel interference threshold.
  • cfg80211tool wifi<0/1> set_dcs_errth set_dcs_errth can be used to configure transmission failure rate threshold, used to indicate presence of interference. Default value of transmission failure rate threshold is 30%.
  • cfg80211tool wifi<0/1> get_dcs_errth get_dcs_errth can be used to get the default value of this transmission failure rate threshold.
  • cfg80211tool wifi<0/1> set_dcs_phyerrth set_dcs_phyerrth can be used to configure channel time wasted due to each Phy error (Phy error Penalty). Default value of Phy error penalty is set as 500 µsec.
  • cfg80211tool wifi<0/1> get_dcs_phyerrth get_dcs_phyerrth can be used to get the current value of Phy error penalty (in µsec)

Channel Hopping

Channel hopping deals with different criteria that should be taken into account before triggering channel change. It is similar to the criteria for DCS and does not significantly interfere in channel selection algorithm. However, it is necessary to maintain history of the blacklisted channel, (channel on which noise was detected) so that the same channel is not used again until a history keeping timer expires (long time default value is 15 minutes). It is necessary to track noise values for a configurable counter window; another detect window (for polling the register) needs to be started