qcacld-3.0: CL 1641391 – update fw common interface files

Propagation from qcacld-2.0 to qcacld-3.0.

WMI modification for DISA feature

Change-Id: I57441642986ecfb6d3ee42d602810f6b22f83c46
CRs-Fixed: 865207
このコミットが含まれているのは:
Himanshu Agarwal
2016-09-14 20:42:35 +05:30
committed by qcabuildsw
コミット 7a391e0354
3個のファイルの変更97行の追加2行の削除

ファイルの表示

@@ -410,6 +410,9 @@ typedef enum {
/** To set custom aggregation size for per vdev */
WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID,
/* DISA feature: Encrypt-decrypt data request */
WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID,
/* peer specific commands */
/** create a peer */
@@ -1111,7 +1114,13 @@ typedef enum {
/* FW response to Host for vdev delete cmdid */
WMI_VDEV_DELETE_RESP_EVENTID,
/* peer specific events */
/**
* DISA feature: FW response to Host with encrypted/decrypted
* 802.11 DISA frame
*/
WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID,
/* peer specific events */
/** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */
WMI_PEER_STA_KICKOUT_EVENTID =
WMI_EVT_GRP_START_ID(WMI_GRP_PEER),
@@ -15134,6 +15143,77 @@ typedef struct {
*/
} wmi_vdev_set_ie_cmd_fixed_param;
/* DISA feature related data structures */
#define MAX_MAC_HEADER_LEN 32
typedef enum {
INVALID,
ENCRYPT = 1,
DECRYPT = 2,
} ENCRYPT_DECRYPT_FLAG;
typedef struct {
/**
* TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param
*/
A_UINT32 tlv_header;
/** unique id identifying the VDEV, generated by the caller */
A_UINT32 vdev_id;
ENCRYPT_DECRYPT_FLAG key_flag;
A_UINT32 key_idx;
A_UINT32 key_cipher;
A_UINT32 key_len; /* units = bytes */
A_UINT32 key_txmic_len; /* units = bytes */
A_UINT32 key_rxmic_len; /* units = bytes */
/** Key: This array needs to be provided in little-endian order */
A_UINT8 key_data[WMI_MAX_KEY_LEN];
/**
* Packet number: This array needs to be provided in little-endian
* order.
* If the PN is less than 8 bytes, the PN data shall be placed into this
* pn[] array starting at byte 0, leaving the MSBs empty.
*/
A_UINT8 pn[8];
/**
* 802.11 MAC header to be typecast to struct ieee80211_qosframe_addr4
* This array needs to be provided in little-endian order.
*/
A_UINT8 mac_hdr[MAX_MAC_HEADER_LEN];
A_UINT32 data_len; /** Payload length, units = bytes */
/**
* Following this struct are this TLV:
* A_UINT8 data[]; <-- actual data to be encrypted,
* needs to be provided in little-endian order
*/
} wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param;
/**
* This event is generated in response to
* WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID from HOST.
* On receiving WMI command WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID from
* HOST with DISA test vectors, DISA frame will prepared and submitted to HW,
* then on receiving the tx completion for the DISA frame this WMI event
* will be delivered to HOST with the encrypted frame.
*/
typedef struct {
/**
* TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param
*/
A_UINT32 tlv_header;
/* VDEV identifier */
A_UINT32 vdev_id;
A_INT32 status; /* 0: success, -1: Failure, */
/* 802.11 header length + encrypted payload length (units = bytes) */
A_UINT32 data_length;
/**
* Following this struct is this TLV:
* A_UINT8 enc80211_frame[]; <-- Encrypted 802.11 frame;
* 802.11 header + encrypted payload,
* provided in little-endian order
*/
} wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param;
/* DEPRECATED - use wmi_pdev_set_pcl_cmd_fixed_param instead */
typedef struct {
/*