qcacmn: Receive and parse RCSA with subchannel information
Update NOL list based on the external radar information sent from the action frame and store in DFS structure. Add an utility - dispatcher function that can be called by UMAC with NOL IE information. In the DFS structure, 1). If subchannel marking is disabled, add all the current channel's subchannels to NOL, do not update the NOL IE structures inside dfs, and send a flag saying not to propagate the NOL IE to uplink. This is because, in case of cascading repeaters, one of the repeaters (RE1) in the cascading system might have subchannel marking disabled. In that case, sending the same NOL IE to uplink results in RE1 and its BSS to disconnect. 2). If subchannel marking is enabled, add those subhannels to NOL, and update flags saying NOL and RCSA IE should be sent. Change-Id: I3f3e14a59503cd1a15573c988a984a20117aa814 CRs-Fixed: 2328377
这个提交包含在:
@@ -353,6 +353,22 @@ QDF_STATUS utils_dfs_get_rcsa_flags(struct wlan_objmgr_pdev *pdev,
|
||||
bool *is_rcsa_ie_sent,
|
||||
bool *is_nol_ie_sent);
|
||||
|
||||
/**
|
||||
* utils_dfs_process_nol_ie_bitmap() - Update NOL with external radar
|
||||
* information.
|
||||
* pdev: Pointer to DFS pdev object.
|
||||
* nol_ie_bandwidth: Minimum DFS subchannel Bandwidth.
|
||||
* nol_ie_startfreq: Radar affected channel list start channel's
|
||||
* centre frequency.
|
||||
* nol_ie_bitmap: Bitmap of radar affected subchannels.
|
||||
*
|
||||
* Return: True if NOL IE should be propagated, else false.
|
||||
*/
|
||||
bool utils_dfs_process_nol_ie_bitmap(struct wlan_objmgr_pdev *pdev,
|
||||
uint8_t nol_ie_bandwidth,
|
||||
uint16_t nol_ie_startfreq,
|
||||
uint8_t nol_ie_bitmap);
|
||||
|
||||
/**
|
||||
* utils_dfs_set_cac_timer_running() - Sets the cac timer running.
|
||||
* @pdev: Pointer to DFS pdev object.
|
||||
|
@@ -409,12 +409,26 @@ QDF_STATUS utils_dfs_get_rcsa_flags(struct wlan_objmgr_pdev *pdev,
|
||||
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
|
||||
if (!dfs)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
dfs_get_rcsa_flags(dfs, is_rcsa_ie_sent, is_nol_ie_sent);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bool utils_dfs_process_nol_ie_bitmap(struct wlan_objmgr_pdev *pdev,
|
||||
uint8_t nol_ie_bandwidth,
|
||||
uint16_t nol_ie_startfreq,
|
||||
uint8_t nol_ie_bitmap)
|
||||
{
|
||||
struct wlan_dfs *dfs;
|
||||
|
||||
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
|
||||
if (!dfs)
|
||||
return false;
|
||||
return dfs_process_nol_ie_bitmap(dfs, nol_ie_bandwidth,
|
||||
nol_ie_startfreq,
|
||||
nol_ie_bitmap);
|
||||
}
|
||||
|
||||
QDF_STATUS utils_dfs_set_cac_timer_running(struct wlan_objmgr_pdev *pdev,
|
||||
int val)
|
||||
{
|
||||
|
在新工单中引用
屏蔽一个用户