qcacld-3.0: Handle protected dual of public action frame

Handle protected dual of public action frame in lim_process_action_frame.

GAS comeback request/response frames will be converted into protected dual of
public action frame on encryption. These frames should be passed to userspace
for further processing.

Change-Id: I25e7f06369cdd238a561ddb5a825a63fe35f7b17
CRs-Fixed: 1063665
(cherry picked from commit 7745335fbdebcd81b274c703e5a080d61dd86428)
This commit is contained in:
Krishna Kumaar Natarajan 2016-09-02 12:28:07 -07:00 • committed by qcabuildsw
commit 6553ea16be
2 changed files with 30 additions and 0 deletions

View file

@ -243,6 +243,12 @@
#define SIR_MAC_WNM_NOTIF_REQUEST 26
#define SIR_MAC_WNM_NOTIF_RESPONSE 27
/* Protected Dual of Public Action(PDPA) frames Action field */
#define SIR_MAC_PDPA_GAS_INIT_REQ 10
#define SIR_MAC_PDPA_GAS_INIT_RSP 11
#define SIR_MAC_PDPA_GAS_COMEBACK_REQ 12
#define SIR_MAC_PDPA_GAS_COMEBACK_RSP 13
#define SIR_MAC_MAX_RANDOM_LENGTH 2306
/* ----------------------------------------------------------------------------- */

View file

@ -2104,6 +2104,30 @@ void lim_process_action_frame(tpAniSirGlobal mac_ctx,
session, 0);
break;
}
case SIR_MAC_ACTION_PROT_DUAL_PUB:
lim_log(mac_ctx, LOG1,
FL("Rcvd Protected Dual of Public Action; action %d."),
action_hdr->actionID);
switch (action_hdr->actionID) {
case SIR_MAC_PDPA_GAS_INIT_REQ:
case SIR_MAC_PDPA_GAS_INIT_RSP:
case SIR_MAC_PDPA_GAS_COMEBACK_REQ:
case SIR_MAC_PDPA_GAS_COMEBACK_RSP:
mac_hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
lim_send_sme_mgmt_frame_ind(mac_ctx,
mac_hdr->fc.subType, (uint8_t *) mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr),
session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info), session, rssi);
break;
default:
lim_log(mac_ctx, LOG1,
FL("Unhandled - Protected Dual Public Action"));
break;
}
break;
default:
lim_log(mac_ctx, LOG1,
FL("Action category %d not handled"),