|
@@ -134,7 +134,8 @@ t2lm_gen_dialog_token(struct wlan_mlo_peer_t2lm_policy *t2lm_policy)
|
|
|
|
|
|
QDF_STATUS t2lm_handle_rx_req(struct wlan_objmgr_vdev *vdev,
|
|
|
struct wlan_objmgr_peer *peer,
|
|
|
- void *event_data, uint8_t *token)
|
|
|
+ void *event_data, uint32_t frame_len,
|
|
|
+ uint8_t *token)
|
|
|
{
|
|
|
struct wlan_t2lm_onging_negotiation_info t2lm_req = {0};
|
|
|
struct wlan_t2lm_info *t2lm_info;
|
|
@@ -148,6 +149,7 @@ QDF_STATUS t2lm_handle_rx_req(struct wlan_objmgr_vdev *vdev,
|
|
|
return QDF_STATUS_E_FAILURE;
|
|
|
|
|
|
status = wlan_mlo_parse_t2lm_action_frame(&t2lm_req, event_data,
|
|
|
+ frame_len,
|
|
|
WLAN_T2LM_CATEGORY_REQUEST);
|
|
|
if (status != QDF_STATUS_SUCCESS) {
|
|
|
mlme_err("Unable to parse T2LM request action frame");
|
|
@@ -231,7 +233,8 @@ QDF_STATUS t2lm_handle_tx_req(struct wlan_objmgr_vdev *vdev,
|
|
|
|
|
|
QDF_STATUS t2lm_handle_rx_resp(struct wlan_objmgr_vdev *vdev,
|
|
|
struct wlan_objmgr_peer *peer,
|
|
|
- void *event_data, uint8_t *token)
|
|
|
+ void *event_data, uint32_t frame_len,
|
|
|
+ uint8_t *token)
|
|
|
{
|
|
|
struct wlan_t2lm_onging_negotiation_info t2lm_rsp = {0};
|
|
|
struct wlan_t2lm_onging_negotiation_info *t2lm_req;
|
|
@@ -256,6 +259,7 @@ QDF_STATUS t2lm_handle_rx_resp(struct wlan_objmgr_vdev *vdev,
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
|
|
|
status = wlan_mlo_parse_t2lm_action_frame(&t2lm_rsp, event_data,
|
|
|
+ frame_len,
|
|
|
WLAN_T2LM_CATEGORY_RESPONSE);
|
|
|
if (status != QDF_STATUS_SUCCESS) {
|
|
|
mlme_err("Unable to parse T2LM request action frame");
|
|
@@ -342,7 +346,8 @@ QDF_STATUS t2lm_handle_tx_teardown(struct wlan_objmgr_vdev *vdev,
|
|
|
QDF_STATUS t2lm_deliver_event(struct wlan_objmgr_vdev *vdev,
|
|
|
struct wlan_objmgr_peer *peer,
|
|
|
enum wlan_t2lm_evt event,
|
|
|
- void *event_data, uint8_t *token)
|
|
|
+ void *event_data, uint32_t frame_len,
|
|
|
+ uint8_t *token)
|
|
|
{
|
|
|
struct wlan_objmgr_psoc *psoc;
|
|
|
QDF_STATUS status;
|
|
@@ -356,7 +361,8 @@ QDF_STATUS t2lm_deliver_event(struct wlan_objmgr_vdev *vdev,
|
|
|
|
|
|
switch (event) {
|
|
|
case WLAN_T2LM_EV_ACTION_FRAME_RX_REQ:
|
|
|
- status = t2lm_handle_rx_req(vdev, peer, event_data, token);
|
|
|
+ status = t2lm_handle_rx_req(vdev, peer, event_data,
|
|
|
+ frame_len, token);
|
|
|
break;
|
|
|
case WLAN_T2LM_EV_ACTION_FRAME_TX_RESP:
|
|
|
status = t2lm_handle_tx_resp(vdev, event_data, token);
|
|
@@ -365,7 +371,8 @@ QDF_STATUS t2lm_deliver_event(struct wlan_objmgr_vdev *vdev,
|
|
|
status = t2lm_handle_tx_req(vdev, peer, event_data, token);
|
|
|
break;
|
|
|
case WLAN_T2LM_EV_ACTION_FRAME_RX_RESP:
|
|
|
- status = t2lm_handle_rx_resp(vdev, peer, event_data, token);
|
|
|
+ status = t2lm_handle_rx_resp(vdev, peer, event_data,
|
|
|
+ frame_len, token);
|
|
|
break;
|
|
|
case WLAN_T2LM_EV_ACTION_FRAME_RX_TEARDOWN:
|
|
|
status = t2lm_handle_rx_teardown(vdev, peer, event_data);
|
|
@@ -703,6 +710,7 @@ wlan_populate_link_disable_t2lm_frame(struct wlan_objmgr_vdev *vdev,
|
|
|
status = t2lm_deliver_event(vdev, peer,
|
|
|
WLAN_T2LM_EV_ACTION_FRAME_TX_REQ,
|
|
|
&t2lm_neg,
|
|
|
+ 0,
|
|
|
&t2lm_neg.dialog_token);
|
|
|
|
|
|
wlan_objmgr_peer_release_ref(peer, WLAN_MLO_MGR_ID);
|
|
@@ -713,7 +721,9 @@ QDF_STATUS wlan_t2lm_deliver_event(struct wlan_objmgr_vdev *vdev,
|
|
|
struct wlan_objmgr_peer *peer,
|
|
|
enum wlan_t2lm_evt event,
|
|
|
void *event_data,
|
|
|
+ uint32_t frame_len,
|
|
|
uint8_t *dialog_token)
|
|
|
{
|
|
|
- return t2lm_deliver_event(vdev, peer, event, event_data, dialog_token);
|
|
|
+ return t2lm_deliver_event(vdev, peer, event, event_data,
|
|
|
+ frame_len, dialog_token);
|
|
|
}
|