qcacmn: Introduce OSIF ops callback handler pointers

The ops are called on BSS info to be updated to OSIF and
to call for MAC address update on particular VDEV

Change-Id: Ib7b07e6ea2927c365298555ed6f24377127ddd4a
CRs-Fixed: 3556338
Este commit está contenido en:
Vinod Kumar Pirla
2023-07-05 09:23:39 -07:00
cometido por Rahul Choudhary
padre 63bf6f5d07
commit 1049b376f7
Se han modificado 3 ficheros con 78 adiciones y 0 borrados

Ver fichero

@@ -144,6 +144,41 @@ QDF_STATUS mlo_reg_mlme_ext_cb(struct mlo_mgr_context *ctx,
*/
QDF_STATUS mlo_unreg_mlme_ext_cb(struct mlo_mgr_context *ctx);
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
/**
* wlan_mlo_mgr_register_osif_ext_ops() - Function to register OSIF callbacks
* @mlo_ctx: Global MLO manager pointer
* @ops: Pointer to the struct containing OSIF callbacks.
*
* Return: QDF_STATUS
*/
QDF_STATUS wlan_mlo_mgr_register_osif_ext_ops(struct mlo_mgr_context *mlo_ctx,
struct mlo_osif_ext_ops *ops);
/**
* wlan_mlo_mgr_unregister_osif_ext_ops() - Function to unregister OSIF
* callbacks
* @mlo_ctx: Global MLO manager pointer
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlo_mgr_unregister_osif_ext_ops(struct mlo_mgr_context *mlo_ctx);
#else
static inline QDF_STATUS
wlan_mlo_mgr_register_osif_ext_ops(struct mlo_mgr_context *mlo_ctx,
struct mlo_osif_ext_ops *ops)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
wlan_mlo_mgr_unregister_osif_ext_ops(struct mlo_mgr_context *mlo_ctx)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* mlo_mlme_clone_sta_security() - Clone Security params in partner vdevs
* @vdev: Object manager vdev

Ver fichero

@@ -59,6 +59,7 @@
#define MAX_MLO_PEER 512
struct mlo_mlme_ext_ops;
struct mlo_osif_ext_ops;
struct vdev_mlme_obj;
struct wlan_t2lm_context;
struct mlo_link_switch_context;
@@ -216,6 +217,7 @@ struct mlo_state_params {
* @setup_info: Pointer to MLO setup_info of all groups
* @total_grp: Total number of MLO groups
* @mlme_ops: MLO MLME callback function pointers
* @osif_ops: MLO to OSIF callback function pointers
* @msgq_ctx: Context switch mgr
* @mlo_is_force_primary_umac: Force Primary UMAC enable
* @mlo_forced_primary_umac_id: Force Primary UMAC ID
@@ -243,6 +245,9 @@ struct mlo_mgr_context {
uint8_t total_grp;
#endif
struct mlo_mlme_ext_ops *mlme_ops;
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
struct mlo_osif_ext_ops *osif_ops;
#endif
struct ctxt_switch_mgr *msgq_ctx;
bool mlo_is_force_primary_umac;
uint8_t mlo_forced_primary_umac_id;
@@ -988,6 +993,23 @@ struct mlo_mlme_ext_ops {
qdf_nbuf_t frm_buf);
};
/*
* struct mlo_osif_ext_ops - MLO manager to OSIF callback functions
* @mlo_mgr_osif_update_bss_info: Callback to update each link connection info.
* @mlo_mgr_osif_update_mac_addr: Callback to notify MAC addr update complete
* from old link id to new link id for the vdev.
*/
struct mlo_osif_ext_ops {
QDF_STATUS
(*mlo_mgr_osif_update_bss_info)(struct qdf_mac_addr *self_mac,
struct qdf_mac_addr *bssid,
int32_t link_id);
QDF_STATUS (*mlo_mgr_osif_update_mac_addr)(int32_t ieee_old_link_id,
int32_t ieee_new_link_id,
uint8_t vdev_id);
};
/* maximum size of vdev bitmap array for MLO link set active command */
#define MLO_VDEV_BITMAP_SZ 2

Ver fichero

@@ -100,6 +100,27 @@ QDF_STATUS mlo_unreg_mlme_ext_cb(struct mlo_mgr_context *ctx)
return QDF_STATUS_SUCCESS;
}
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
QDF_STATUS wlan_mlo_mgr_register_osif_ext_ops(struct mlo_mgr_context *mlo_ctx,
struct mlo_osif_ext_ops *ops)
{
if (!ops || !mlo_ctx)
return QDF_STATUS_E_FAILURE;
mlo_ctx->osif_ops = ops;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wlan_mlo_mgr_unregister_osif_ext_ops(struct mlo_mgr_context *mlo_ctx)
{
if (!mlo_ctx)
return QDF_STATUS_E_FAILURE;
mlo_ctx->osif_ops = NULL;
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS mlo_mlme_clone_sta_security(struct wlan_objmgr_vdev *vdev,
struct wlan_cm_connect_req *req)
{