qcacmn: Add force flag support for PTQM migration
Add force flag support for PTQM migration. This flag will be used to allow migration to vdevs which are not allowed to be selected as primary by using the ini config. This will be helpful in scenarios where if the current primary link is going down and peer ptqm needs to be migrated but the partner links of that mld are the user disabled links for ptqm. Also add skip_pumac_cnt to mark a link to be skipped from being selected as new primary Change-Id: Ia8c7881f37d32211a732c5c7394c4a608099b62a CRs-Fixed: 3548552
Šī revīzija ir iekļauta:

revīziju iesūtīja
Rahul Choudhary

vecāks
cf3f12281d
revīzija
444fa57930
@@ -349,6 +349,7 @@ struct wlan_channel {
|
||||
* @mlo_link_id: link id for mlo connection
|
||||
* @mlo_external_sae_auth: MLO external SAE auth
|
||||
* @wlan_vdev_mlo_lock: lock to protect the set/clear of
|
||||
* @skip_pumac_cnt: Counter to skip vdev to be selected as pumac
|
||||
* WLAN_VDEV_FEXT2_MLO feature flag in vdev MLME
|
||||
*/
|
||||
struct wlan_objmgr_vdev_mlme {
|
||||
@@ -375,6 +376,9 @@ struct wlan_objmgr_vdev_mlme {
|
||||
#else
|
||||
qdf_mutex_t wlan_vdev_mlo_lock;
|
||||
#endif
|
||||
#ifdef QCA_SUPPORT_PRIMARY_LINK_MIGRATE
|
||||
qdf_atomic_t skip_pumac_cnt;
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -2254,4 +2258,80 @@ static inline bool wlan_mlo_peer_delete_is_not_allowed(
|
||||
WLAN_VDEV_OP_MLME_LEGACY_PEER_DISCON_TRIG);
|
||||
}
|
||||
|
||||
#ifdef QCA_SUPPORT_PRIMARY_LINK_MIGRATE
|
||||
/**
|
||||
* wlan_vdev_init_skip_pumac_cnt() - init skip_pumac_cnt
|
||||
* @vdev: VDEV object
|
||||
*
|
||||
* API to initialize skip_pumac_cnt
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static inline void
|
||||
wlan_vdev_init_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
qdf_atomic_init(&vdev->vdev_mlme.skip_pumac_cnt);
|
||||
}
|
||||
|
||||
/**
|
||||
* wlan_vdev_inc_skip_pumac_cnt() - inc skip_pumac_cnt
|
||||
* @vdev: VDEV object
|
||||
*
|
||||
* API to increment skip_pumac_cnt
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static inline void
|
||||
wlan_vdev_inc_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
qdf_atomic_inc(&vdev->vdev_mlme.skip_pumac_cnt);
|
||||
}
|
||||
|
||||
/**
|
||||
* wlan_vdev_dec_skip_pumac_cnt() - dec skip_pumac_cnt
|
||||
* @vdev: VDEV object
|
||||
*
|
||||
* API to decrement skip_pumac_cnt
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static inline void
|
||||
wlan_vdev_dec_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
qdf_atomic_dec(&vdev->vdev_mlme.skip_pumac_cnt);
|
||||
}
|
||||
|
||||
/**
|
||||
* wlan_vdev_read_skip_pumac_cnt() - read skip_pumac_cnt
|
||||
* @vdev: VDEV object
|
||||
*
|
||||
* API to read skip_pumac_cnt value
|
||||
*
|
||||
* Return: skip_pumac_cnt value
|
||||
*/
|
||||
static inline int32_t
|
||||
wlan_vdev_read_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return qdf_atomic_read(&vdev->vdev_mlme.skip_pumac_cnt);
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
wlan_vdev_init_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{ }
|
||||
|
||||
static inline void
|
||||
wlan_vdev_inc_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{ }
|
||||
|
||||
static inline void
|
||||
wlan_vdev_dec_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{ }
|
||||
|
||||
static inline int32_t
|
||||
wlan_vdev_read_skip_pumac_cnt(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _WLAN_OBJMGR_VDEV_OBJ_H_*/
|
||||
|
@@ -236,6 +236,7 @@ struct wlan_objmgr_vdev *wlan_objmgr_vdev_obj_create(
|
||||
vdev->vdev_objmgr.max_peer_count =
|
||||
wlan_pdev_get_max_peer_count(pdev);
|
||||
|
||||
wlan_vdev_init_skip_pumac_cnt(vdev);
|
||||
if (params->legacy_osif)
|
||||
vdev->vdev_nif.osdev->legacy_osif_priv = params->legacy_osif;
|
||||
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user