mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
qcacld-3.0: Add support for GMAC offload
Add check for GMAC offload capability wmi_service_gmac_offload_support. If firmware supports GMAC offload, trim MMIE when driver receives PMF frame. Otherwise, driver calculates MIC and trims MMIE. Also, add support for suiteB auth types during roaming in e_csr_auth_type_to_rsn_authmode. Change-Id: Id44f44a41297ca3e462d14905f5986f904a639fd CRs-Fixed: 2185819
This commit is contained in:
parent
4081a3a3cc
commit
9668240906
2 changed files with 25 additions and 7 deletions
|
|
@ -3325,6 +3325,8 @@ int wma_process_bip(tp_wma_handle wma_handle,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
WMA_LOGD(FL("key_cipher %d key_id %d"), iface->key.key_cipher, key_id);
|
||||
|
||||
switch (iface->key.key_cipher) {
|
||||
case WMI_CIPHER_AES_CMAC:
|
||||
if (wmi_service_enabled(wma_handle->wmi_handle,
|
||||
|
|
@ -3350,15 +3352,27 @@ int wma_process_bip(tp_wma_handle wma_handle,
|
|||
break;
|
||||
|
||||
case WMI_CIPHER_AES_GMAC:
|
||||
if (cds_is_gmac_mmie_valid(iface->key.key,
|
||||
iface->key.key_id[key_id - WMA_IGTK_KEY_INDEX_4].ipn,
|
||||
(uint8_t *) wh, efrm, iface->key.key_length)) {
|
||||
WMA_LOGD(FL("Protected BC/MC frame GMAC MMIE validation successful"));
|
||||
/* Remove MMIE */
|
||||
if (wmi_service_enabled(wma_handle->wmi_handle,
|
||||
wmi_service_gmac_offload_support)) {
|
||||
/*
|
||||
* if gmac offload is enabled then mmie validation is
|
||||
* performed in firmware, host just need to trim the
|
||||
* mmie.
|
||||
*/
|
||||
WMA_LOGD(FL("Trim GMAC MMIE"));
|
||||
qdf_nbuf_trim_tail(wbuf, cds_get_gmac_mmie_size());
|
||||
} else {
|
||||
WMA_LOGD(FL("BC/MC GMAC MIC error or MMIE not present, dropping the frame"));
|
||||
return -EINVAL;
|
||||
if (cds_is_gmac_mmie_valid(iface->key.key,
|
||||
iface->key.key_id[key_id - WMA_IGTK_KEY_INDEX_4].ipn,
|
||||
(uint8_t *) wh, efrm, iface->key.key_length)) {
|
||||
WMA_LOGD(FL("Protected BC/MC frame GMAC MMIE validation successful"));
|
||||
/* Remove MMIE */
|
||||
qdf_nbuf_trim_tail(wbuf,
|
||||
cds_get_gmac_mmie_size());
|
||||
} else {
|
||||
WMA_LOGD(FL("BC/MC GMAC MIC error or MMIE not present, dropping the frame"));
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -673,6 +673,10 @@ A_UINT32 e_csr_auth_type_to_rsn_authmode(eCsrAuthType authtype,
|
|||
return WMI_AUTH_RSNA_FILS_SHA256;
|
||||
case eCSR_AUTH_TYPE_FILS_SHA384:
|
||||
return WMI_AUTH_RSNA_FILS_SHA384;
|
||||
case eCSR_AUTH_TYPE_SUITEB_EAP_SHA256:
|
||||
return WMI_AUTH_RSNA_SUITE_B_8021X_SHA256;
|
||||
case eCSR_AUTH_TYPE_SUITEB_EAP_SHA384:
|
||||
return WMI_AUTH_RSNA_SUITE_B_8021X_SHA384;
|
||||
default:
|
||||
return WMI_AUTH_NONE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue