From c87c0928b158885bfc44e1abb91b04c3f445e1f7 Mon Sep 17 00:00:00 2001 From: Sai Pratyusha Magam Date: Mon, 28 Nov 2022 08:51:42 +0530 Subject: [PATCH] qcacmn: Add Keyix param for PN request to FW Add Keyix param for PN request cmdid and event to FW WMI_PEER_TX_PN_REQUEST_CMDID, WMI_PEER_TX_PN_RESPONSE_EVENTID Change-Id: I2803fdfaa20fae543cf0de34dd5c3f0966f2d605 CRs-Fixed: 3345914 --- umac/cmn_services/crypto/inc/wlan_crypto_global_def.h | 2 +- umac/cmn_services/crypto/src/wlan_crypto_global_api.c | 1 + wmi/inc/wmi_unified_param.h | 4 ++++ wmi/src/wmi_unified_tlv.c | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/umac/cmn_services/crypto/inc/wlan_crypto_global_def.h b/umac/cmn_services/crypto/inc/wlan_crypto_global_def.h index 464833b24b..219f9f9843 100644 --- a/umac/cmn_services/crypto/inc/wlan_crypto_global_def.h +++ b/umac/cmn_services/crypto/inc/wlan_crypto_global_def.h @@ -517,7 +517,7 @@ struct wlan_lmac_if_crypto_tx_ops { struct wlan_crypto_key *key, enum wlan_crypto_key_type key_type); QDF_STATUS(*getpn)(struct wlan_objmgr_vdev *vdev, - uint8_t *macaddr, uint32_t key_type); + uint8_t *macaddr, uint8_t keyix, uint32_t key_type); QDF_STATUS (*set_ltf_keyseed)(struct wlan_objmgr_psoc *psoc, struct wlan_crypto_ltf_keyseed_data *ks); QDF_STATUS (*set_vdev_param)(struct wlan_objmgr_psoc *psoc, diff --git a/umac/cmn_services/crypto/src/wlan_crypto_global_api.c b/umac/cmn_services/crypto/src/wlan_crypto_global_api.c index 086d4049dd..89e08e9b8d 100644 --- a/umac/cmn_services/crypto/src/wlan_crypto_global_api.c +++ b/umac/cmn_services/crypto/src/wlan_crypto_global_api.c @@ -1389,6 +1389,7 @@ QDF_STATUS wlan_crypto_getkey(struct wlan_objmgr_vdev *vdev, if (get_pn_enable) { if (WLAN_CRYPTO_TX_OPS_GETPN(tx_ops)) WLAN_CRYPTO_TX_OPS_GETPN(tx_ops)(vdev, mac_addr, + req_key->keyix, req_key->type); if (WLAN_CRYPTO_RX_OPS_GET_RXPN(&rx_ops->crypto_rx_ops)) WLAN_CRYPTO_RX_OPS_GET_RXPN(&rx_ops->crypto_rx_ops)( diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index a6d8ff43f2..9c7ce782ff 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -4067,11 +4067,13 @@ struct rtt_meas_req_test_params { /** * struct peer_request_pn_param - PN request params * @vdev_id: vdev id + * @keyix: key index * @peer_macaddr: Peer mac address * @key_type: key type */ struct peer_request_pn_param { uint32_t vdev_id; + uint8_t keyix; uint8_t peer_macaddr[QDF_MAC_ADDR_SIZE]; uint32_t key_type; }; @@ -8313,12 +8315,14 @@ enum wmi_host_fatal_condition_subtype_packet_log_config { * struct wmi_host_get_pn_event - PN event params * @vdev_id: vdev id * @peer_macaddr: Peer mac address + * @key_ix: Key index * @key_type: key type * @pn : pn value */ struct wmi_host_get_pn_event { uint32_t vdev_id; uint8_t mac_addr[QDF_MAC_ADDR_SIZE]; + uint8_t key_ix; uint32_t key_type; uint8_t pn[GET_PN_MAX_LEN]; }; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index c2c6adec32..b2d2e5190b 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -14870,6 +14870,7 @@ send_pdev_get_pn_cmd_tlv(wmi_unified_t wmi_handle, cmd->vdev_id = params->vdev_id; WMI_CHAR_ARRAY_TO_MAC_ADDR(params->peer_macaddr, &cmd->peer_macaddr); cmd->key_type = params->key_type; + cmd->key_ix = params->keyix; if (wmi_unified_cmd_send(wmi_handle, buf, len, WMI_PEER_TX_PN_REQUEST_CMDID)) { wmi_err("Failed to send WMI command"); @@ -14900,6 +14901,7 @@ extract_get_pn_data_tlv(wmi_unified_t wmi_handle, void *evt_buf, param->vdev_id = event->vdev_id; param->key_type = event->key_type; + param->key_ix = event->key_ix; qdf_mem_copy(param->pn, event->pn, sizeof(event->pn)); WMI_MAC_ADDR_TO_CHAR_ARRAY(&event->peer_macaddr, param->mac_addr);