qcacld-3.0: Add candidate validation to the if_mgr
Add the API to validate the BSS before roaming to it. This API will check if other vdevs are already connected to the BSS, if concurrency is allowed, and if channel is allowed for the current HW mode. Keep the new changes under the interface_mgr feature flag. Change-Id: I280e95b0a30c08fe4037295330628b79d22acf5f CRs-fixed: 2774543
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include "wlan_objmgr_pdev_obj.h"
|
||||
#include "wlan_objmgr_vdev_obj.h"
|
||||
#include "wlan_policy_mgr_api.h"
|
||||
#include "wlan_if_mgr_public_struct.h"
|
||||
#include "wlan_if_mgr_roam.h"
|
||||
|
||||
/**
|
||||
@@ -40,6 +41,19 @@ struct change_roam_state_arg {
|
||||
uint8_t curr_vdev_id;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct bssid_search_arg - Contains candidate validation arguments
|
||||
* @peer_addr: MAC address of the BSS
|
||||
* @vdev_id: virtual device ID
|
||||
*
|
||||
* This structure is used to pass the candidate validation information to the
|
||||
* callback
|
||||
*/
|
||||
struct bssid_search_arg {
|
||||
struct qdf_mac_addr peer_addr;
|
||||
uint8_t vdev_id;
|
||||
};
|
||||
|
||||
/**
|
||||
* if_mgr_enable_roaming() - interface manager enable roaming
|
||||
* @vdev: vdev object
|
||||
@@ -106,4 +120,19 @@ QDF_STATUS if_mgr_enable_roaming_after_p2p_disconnect(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
enum wlan_cm_rso_control_requestor requestor);
|
||||
|
||||
/**
|
||||
* if_mgr_validate_candidate() - validate candidate event handler
|
||||
* @vdev: vdev object
|
||||
* @event_data: Interface mgr event data
|
||||
*
|
||||
* This function will validate the candidate to see if it is a suitable option
|
||||
* for roaming to.
|
||||
*
|
||||
* Context: It should run in thread context
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS if_mgr_validate_candidate(struct wlan_objmgr_vdev *vdev,
|
||||
struct if_mgr_event_data *event_data);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user