qcacmn: Add new wrapper API to send peer-level T2LM
Add a new wrapper API to send peer-level negotiated tid-to-link mapping to FW as the existing API to send the mapping received from the beacon/probe response uses ML dev context whereas the new API uses ML peer context. Change-Id: Ifada5600e9524585c69847f332ed0280fd316813 CRs-Fixed: 3423127
This commit is contained in:

committed by
Madan Koyyalamudi

parent
28f7114375
commit
1958f62e8a
@@ -720,6 +720,20 @@ QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||
*/
|
||||
QDF_STATUS wlan_get_t2lm_mapping_status(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_t2lm_info *t2lm);
|
||||
|
||||
/**
|
||||
* wlan_send_peer_level_tid_to_link_mapping() - API to send peer level T2LM info
|
||||
* negotiated using action frames to FW.
|
||||
*
|
||||
* @vdev: Pointer to vdev
|
||||
* @peer: pointer to peer
|
||||
*
|
||||
* Return QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_send_peer_level_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_peer *peer);
|
||||
|
||||
#else
|
||||
static inline QDF_STATUS wlan_mlo_parse_t2lm_ie(
|
||||
struct wlan_t2lm_onging_negotiation_info *t2lm, uint8_t *ie)
|
||||
@@ -842,5 +856,12 @@ QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
wlan_send_peer_level_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_peer *peer)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* WLAN_FEATURE_11BE */
|
||||
#endif /* _WLAN_MLO_T2LM_H_ */
|
||||
|
@@ -926,6 +926,42 @@ peer_release:
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_send_peer_level_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_peer *peer)
|
||||
{
|
||||
uint8_t dir, idx = 0;
|
||||
struct wlan_mlo_peer_context *ml_peer;
|
||||
struct wlan_t2lm_info *t2lm_info;
|
||||
QDF_STATUS status = QDF_STATUS_E_NULL_VALUE;
|
||||
|
||||
if (!peer) {
|
||||
t2lm_err("peer is null");
|
||||
return status;
|
||||
}
|
||||
|
||||
ml_peer = peer->mlo_peer_ctx;
|
||||
if (!ml_peer) {
|
||||
t2lm_err("ml peer is null");
|
||||
return status;
|
||||
}
|
||||
|
||||
for (dir = 0; dir < WLAN_T2LM_MAX_DIRECTION; dir++) {
|
||||
t2lm_info = &ml_peer->t2lm_policy.t2lm_negotiated_info.t2lm_info[dir];
|
||||
if (t2lm_info && t2lm_info->direction !=
|
||||
WLAN_T2LM_INVALID_DIRECTION) {
|
||||
t2lm_debug("send peer-level mapping to FW for dir: %d", dir);
|
||||
status = wlan_send_tid_to_link_mapping(vdev, t2lm_info);
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!idx)
|
||||
t2lm_debug("No peer-level mapping present");
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
void wlan_mlo_t2lm_timer_expiry_handler(void *vdev)
|
||||
{
|
||||
struct wlan_objmgr_vdev *vdev_ctx = (struct wlan_objmgr_vdev *)vdev;
|
||||
|
Reference in New Issue
Block a user