فهرست منبع

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
Sai Pratyusha Magam 2 سال پیش
والد
کامیت
c87c0928b1

+ 1 - 1
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,

+ 1 - 0
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)(

+ 4 - 0
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];
 };

+ 2 - 0
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);