qcacmn: Add APIs to set and get acs_mode in vdev mlme obj
To support fixed channel SAP in unsafe channels, driver needs to cache and retrieve SAP start mode i.e. ACS or fixed. Add a new param is_acs_mode to vdev_mlme_mgmt_ap and APIs to set and get the same through vdev. Change-Id: Ib274b95be66e774b15f4687a02ed7fef6bf21056 CRs-Fixed: 3381401
This commit is contained in:

committed by
Madan Koyyalamudi

parent
f9c3074fea
commit
539d3bfb53
@@ -435,6 +435,7 @@ struct wlan_vdev_aid_mgr {
|
|||||||
* @max_chan_switch_time: Max channel switch time in milliseconds.
|
* @max_chan_switch_time: Max channel switch time in milliseconds.
|
||||||
* @last_bcn_ts_ms: Timestamp (in milliseconds) of the last beacon sent on the
|
* @last_bcn_ts_ms: Timestamp (in milliseconds) of the last beacon sent on the
|
||||||
* CSA triggered channel.
|
* CSA triggered channel.
|
||||||
|
* @is_acs_mode: True if SAP is started in ACS mode
|
||||||
*/
|
*/
|
||||||
struct vdev_mlme_mgmt_ap {
|
struct vdev_mlme_mgmt_ap {
|
||||||
bool hidden_ssid;
|
bool hidden_ssid;
|
||||||
@@ -442,6 +443,7 @@ struct vdev_mlme_mgmt_ap {
|
|||||||
struct wlan_vdev_aid_mgr *aid_mgr;
|
struct wlan_vdev_aid_mgr *aid_mgr;
|
||||||
uint32_t max_chan_switch_time;
|
uint32_t max_chan_switch_time;
|
||||||
unsigned long last_bcn_ts_ms;
|
unsigned long last_bcn_ts_ms;
|
||||||
|
bool is_acs_mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -243,4 +243,15 @@ QDF_STATUS ucfg_vdev_mgr_cdp_vdev_attach(struct wlan_objmgr_vdev *vdev);
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_vdev_mgr_cdp_vdev_detach(struct wlan_objmgr_vdev *vdev);
|
QDF_STATUS ucfg_vdev_mgr_cdp_vdev_detach(struct wlan_objmgr_vdev *vdev);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_util_vdev_mgr_set_acs_mode_for_vdev() - ucfg API to set SAP start mode
|
||||||
|
* @vdev: pointer to vdev object
|
||||||
|
* @is_acs_mode: Carries true if SAP is started in ACS
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ucfg_util_vdev_mgr_set_acs_mode_for_vdev(struct wlan_objmgr_vdev *vdev,
|
||||||
|
bool is_acs_mode);
|
||||||
#endif /* __WLAN_VDEV_MLME_UCFG_H__ */
|
#endif /* __WLAN_VDEV_MLME_UCFG_H__ */
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -171,6 +171,23 @@ void wlan_util_vdev_mgr_set_cac_timeout_for_vdev(struct wlan_objmgr_vdev *vdev,
|
|||||||
uint32_t new_chan_cac_ms);
|
uint32_t new_chan_cac_ms);
|
||||||
#endif /* MOBILE_DFS_SUPPORT */
|
#endif /* MOBILE_DFS_SUPPORT */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_util_vdev_mgr_set_acs_mode_for_vdev() - set if the SAP is started in ACS
|
||||||
|
* @vdev: Pointer to vdev object.
|
||||||
|
* @is_acs_mode: Indicates true if the SAP is started in ACS
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
void wlan_util_vdev_mgr_set_acs_mode_for_vdev(struct wlan_objmgr_vdev *vdev,
|
||||||
|
bool is_acs_mode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_util_vdev_mgr_get_acs_mode_for_vdev() - Get the SAP start mode
|
||||||
|
* @vdev: Pointer to vdev object.
|
||||||
|
*
|
||||||
|
* Return: true if the SAP is started in ACS
|
||||||
|
*/
|
||||||
|
bool wlan_util_vdev_mgr_get_acs_mode_for_vdev(struct wlan_objmgr_vdev *vdev);
|
||||||
#ifdef WLAN_FEATURE_11BE_MLO
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
/**
|
/**
|
||||||
* wlan_util_vdev_mgr_quiet_offload() - set quiet status for given link
|
* wlan_util_vdev_mgr_quiet_offload() - set quiet status for given link
|
||||||
|
@@ -206,3 +206,10 @@ QDF_STATUS ucfg_vdev_mgr_cdp_vdev_detach(struct wlan_objmgr_vdev *vdev)
|
|||||||
|
|
||||||
qdf_export_symbol(ucfg_vdev_mgr_cdp_vdev_detach);
|
qdf_export_symbol(ucfg_vdev_mgr_cdp_vdev_detach);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void
|
||||||
|
ucfg_util_vdev_mgr_set_acs_mode_for_vdev(struct wlan_objmgr_vdev *vdev,
|
||||||
|
bool is_acs_mode)
|
||||||
|
{
|
||||||
|
wlan_util_vdev_mgr_set_acs_mode_for_vdev(vdev, is_acs_mode);
|
||||||
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -761,6 +761,33 @@ void wlan_util_vdev_mgr_set_cac_timeout_for_vdev(struct wlan_objmgr_vdev *vdev,
|
|||||||
}
|
}
|
||||||
#endif /* MOBILE_DFS_SUPPORT */
|
#endif /* MOBILE_DFS_SUPPORT */
|
||||||
|
|
||||||
|
void wlan_util_vdev_mgr_set_acs_mode_for_vdev(struct wlan_objmgr_vdev *vdev,
|
||||||
|
bool is_acs_mode)
|
||||||
|
{
|
||||||
|
struct vdev_mlme_obj *vdev_mlme;
|
||||||
|
|
||||||
|
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||||
|
if (!vdev_mlme) {
|
||||||
|
mlme_err("vdev_mlme is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
vdev_mlme->mgmt.ap.is_acs_mode = is_acs_mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wlan_util_vdev_mgr_get_acs_mode_for_vdev(struct wlan_objmgr_vdev *vdev)
|
||||||
|
{
|
||||||
|
struct vdev_mlme_obj *vdev_mlme;
|
||||||
|
|
||||||
|
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||||
|
if (!vdev_mlme) {
|
||||||
|
mlme_err("vdev_mlme is null");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vdev_mlme->mgmt.ap.is_acs_mode;
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS wlan_util_vdev_mgr_get_csa_channel_switch_time(
|
QDF_STATUS wlan_util_vdev_mgr_get_csa_channel_switch_time(
|
||||||
struct wlan_objmgr_vdev *vdev,
|
struct wlan_objmgr_vdev *vdev,
|
||||||
uint32_t *chan_switch_time)
|
uint32_t *chan_switch_time)
|
||||||
|
Reference in New Issue
Block a user