fw-api: CL 3298756 - update fw common interface files
WMI interface for FILS roaming <Describe here the change summary in detail> Change-Id: If1c0adb4d822d86db2a67072220ef306141346c2 CRs-Fixed: 1107600
Dieser Commit ist enthalten in:
@@ -840,6 +840,12 @@ typedef enum {
|
||||
WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_roam_rssi_rejection_oce_config_param,
|
||||
WMITLV_TAG_STRUC_wmi_unit_test_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_roam_fils_offload_tlv_param,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_update_pmk_cache_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_pmk_cache,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_update_fils_hlp_pkt_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_roam_fils_synch_tlv_param,
|
||||
WMITLV_TAG_STRUC_wmi_gtk_offload_extended_tlv_param,
|
||||
} WMITLV_TAG_ID;
|
||||
|
||||
/*
|
||||
@@ -1176,6 +1182,8 @@ typedef enum {
|
||||
OP(WMI_OEM_DMA_RING_CFG_REQ_CMDID) \
|
||||
OP(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID) \
|
||||
OP(WMI_VDEV_LIMIT_OFFCHAN_CMDID) \
|
||||
OP(WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID) \
|
||||
OP(WMI_PDEV_UPDATE_PMK_CACHE_CMDID) \
|
||||
/* add new CMD_LIST elements above this line */
|
||||
|
||||
|
||||
@@ -1489,8 +1497,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RMV_BCN_FILTER_CMDID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_11r_offload_tlv_param, offload_11r_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ese_offload_tlv_param, offload_ese_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tlv_buf_len_param, assoc_ie_len_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, assoc_ie_buf, WMITLV_SIZE_VAR)
|
||||
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, assoc_ie_buf, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_fils_offload_tlv_param, offload_fils_info_param, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_MODE);
|
||||
|
||||
/* Roam scan Rssi Threshold Cmd */
|
||||
@@ -1675,6 +1683,15 @@ WMITLV_CREATE_PARAM_STRUC(WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CHANNEL_CMDID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_PDEV_UPDATE_PMK_CACHE_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_update_pmk_cache_cmd_fixed_param, wmi_pdev_update_pmk_cache_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pmk_cache, pmk_cache, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UPDATE_PMK_CACHE_CMDID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_update_fils_hlp_pkt_cmd_fixed_param, wmi_pdev_update_fils_hlp_pkt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, fils_hlp_pkt, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID);
|
||||
/* Echo Cmd */
|
||||
#define WMITLV_TABLE_WMI_ECHO_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param, wmi_echo_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
@@ -1715,7 +1732,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_P2P_GO_SET_BEACON_IE);
|
||||
|
||||
/* GTK offload Cmd */
|
||||
#define WMITLV_TABLE_WMI_GTK_OFFLOAD_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, WMI_GTK_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, WMI_GTK_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_gtk_offload_fils_tlv_param, wmi_fils_gtk_info, WMITLV_SIZE_VAR)
|
||||
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_CMDID);
|
||||
|
||||
@@ -3618,7 +3636,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_req_frame, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_hw_mode_transition_event_fixed_param, hw_mode_transition_fixed_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_fils_synch_tlv_param, roam_fils_synch_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID);
|
||||
|
||||
/* WOW Wakeup Host Event */
|
||||
|
110
fw/wmi_unified.h
110
fw/wmi_unified.h
@@ -370,6 +370,10 @@ typedef enum {
|
||||
WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID,
|
||||
/* get bss chan info */
|
||||
WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID,
|
||||
/* update pmk cache info */
|
||||
WMI_PDEV_UPDATE_PMK_CACHE_CMDID,
|
||||
/* update fils HLP */
|
||||
WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID,
|
||||
|
||||
/* VDEV (virtual device) specific commands */
|
||||
/** vdev create */
|
||||
@@ -3096,6 +3100,100 @@ typedef struct {
|
||||
/* followed by WMITLV_TAG_ARRAY_BYTE */
|
||||
} wmi_diag_event_fixed_param;
|
||||
|
||||
|
||||
#define WMI_MAX_PMKID_LEN 16
|
||||
#define WMI_MAX_PMK_LEN 64
|
||||
|
||||
#define WMI_PMK_CACHE_CAT_FLAG_BSSID 0x1
|
||||
#define WMI_PMK_CACHE_CAT_FLAG_SSID_CACHE_ID 0x2
|
||||
|
||||
#define WMI_PMK_CACHE_ACTION_FLAG_ADD_ENTRY 0x1
|
||||
#define WMI_PMK_CACHE_ACTION_FLAG_DEL_ENTRY 0x2
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header;
|
||||
A_UINT32 pmk_len;
|
||||
A_UINT8 pmk[WMI_MAX_PMK_LEN];/* for big-endian hosts, manual endian conversion will be needed to keep the array values in their original order,
|
||||
in spite of the automatic byte-swap applied to WMI messages during download*/
|
||||
A_UINT32 pmkid_len;
|
||||
A_UINT8 pmkid[WMI_MAX_PMKID_LEN];
|
||||
wmi_mac_addr bssid;
|
||||
wmi_ssid ssid;
|
||||
A_UINT32 cache_id;
|
||||
A_UINT32 cat_flag; // whether (bssid) or (ssid,cache_id) is valid
|
||||
A_UINT32 action_flag; // add/delete the entry
|
||||
} wmi_pmk_cache;
|
||||
|
||||
#define WMI_PMK_CACHE_OP_FLAG_FLUSH_ALL 0x1
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_update_pmk_cache_cmd_fixed_param */
|
||||
A_UINT32 op_flag; //option to flush all the cache at once
|
||||
A_UINT32 vdev_id;
|
||||
A_UINT32 num_cache;
|
||||
/**
|
||||
* TLV (tag length value) parameters follow the update_pmk_cache cmd
|
||||
* structure. The TLV's are:
|
||||
* wmi_pmk_cache cache_list[];
|
||||
*/
|
||||
} wmi_pdev_update_pmk_cache_cmd_fixed_param;
|
||||
|
||||
#define WMI_FILS_MAX_USERNAME_LEN 16
|
||||
#define WMI_FILS_MAX_REALM_LEN 256
|
||||
#define WMI_FILS_MAX_RRK_LEN 64
|
||||
#define WMI_FILS_MAX_RIK_LEN 64
|
||||
|
||||
/* for big-endian hosts, manual endian conversion will be needed to keep the array values in their original order,
|
||||
in spite of the automatic byte-swap applied to WMI messages during download*/
|
||||
|
||||
typedef struct {
|
||||
A_UINT8 username[WMI_FILS_MAX_USERNAME_LEN];
|
||||
A_UINT32 username_length;
|
||||
A_UINT32 next_erp_seq_num;
|
||||
A_UINT8 rRk[WMI_FILS_MAX_RRK_LEN];
|
||||
A_UINT32 rRk_length;
|
||||
A_UINT8 rIk[WMI_FILS_MAX_RIK_LEN];
|
||||
A_UINT32 rIk_length;
|
||||
A_UINT8 realm[WMI_FILS_MAX_REALM_LEN];
|
||||
A_UINT32 realm_len;
|
||||
} wmi_erp_info;
|
||||
|
||||
enum wmi_fils_hlp_pkt_type {
|
||||
WMI_FILS_HLP_PKT_TYPE_DHCP_DISCOVER = 1,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_fils_offload_tlv_param */
|
||||
A_UINT32 flags;
|
||||
wmi_erp_info vdev_erp_info;
|
||||
} wmi_roam_fils_offload_tlv_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** tag WMITLV_TAG_STRUC_wmi_pdev_update_fils_hlp_pkt_cmd_fixed_param**/
|
||||
A_UINT32 flags;
|
||||
A_UINT32 vdev_id;
|
||||
A_UINT32 size;
|
||||
A_UINT32 pkt_type; // filled using enum wmi_fils_hlp_pkt_type
|
||||
// A_UINT8 fils_hlp_pkt[];
|
||||
} wmi_pdev_update_fils_hlp_pkt_cmd_fixed_param;
|
||||
|
||||
#define WMI_MAX_KEK_LEN 64
|
||||
#define GTK_OFFLOAD_KEK_EXTENDED_BYTES WMI_MAX_KEK_LEN /*KEK len has been increased to 64 to support FILS security.
|
||||
To not break backward compatibility, new GTK_OFFLOAD_KEK_EXTENDED_BYTES has been defined without modifying old GTK_OFFLOAD_KEK_BYTES */
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_fils_synch_tlv_param */
|
||||
A_UINT32 update_erp_next_seq_num;// Boolean denoting whether next erp_seq_num changed or not.
|
||||
A_UINT32 next_erp_seq_num;
|
||||
A_UINT32 kek_len;
|
||||
A_UINT8 kek[WMI_MAX_KEK_LEN];
|
||||
A_UINT32 pmk_len;
|
||||
A_UINT8 pmk[WMI_MAX_PMK_LEN];
|
||||
A_UINT8 pmkid[WMI_MAX_PMKID_LEN];
|
||||
A_UINT8 realm[WMI_FILS_MAX_REALM_LEN];
|
||||
A_UINT32 realm_len;
|
||||
} wmi_roam_fils_synch_tlv_param;
|
||||
|
||||
/*
|
||||
* If FW has multiple active channels due to MCC(multi channel concurrency),
|
||||
* then these stats are combined stats for all the active channels.
|
||||
@@ -9450,6 +9548,8 @@ enum {
|
||||
WMI_AUTH_RSNA_8021X_SHA256,
|
||||
WMI_AUTH_CCKM_WPA,
|
||||
WMI_AUTH_CCKM_RSNA,
|
||||
WMI_AUTH_RSNA_FILS_SHA256,
|
||||
WMI_AUTH_RSNA_FILS_SHA384,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
@@ -11621,6 +11721,16 @@ typedef struct {
|
||||
A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* replay counter for re-key */
|
||||
} WMI_GTK_OFFLOAD_CMD_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gtk_offload_extended_tlv_param */
|
||||
A_UINT32 vdev_id; /** unique id identifying the VDEV */
|
||||
A_UINT32 flags; /* control flags, GTK offload command use high byte */
|
||||
A_UINT32 kek_len;
|
||||
A_UINT8 KEK[GTK_OFFLOAD_KEK_EXTENDED_BYTES]; /* key encryption key */
|
||||
A_UINT8 KCK[GTK_OFFLOAD_KCK_BYTES]; /* key confirmation key */
|
||||
A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* replay counter for re-key */
|
||||
} wmi_gtk_offload_fils_tlv_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param */
|
||||
A_UINT32 vdev_id;
|
||||
|
@@ -36,7 +36,7 @@
|
||||
#define __WMI_VER_MINOR_ 0
|
||||
/** WMI revision number has to be incremented when there is a
|
||||
* change that may or may not break compatibility. */
|
||||
#define __WMI_REVISION_ 419
|
||||
#define __WMI_REVISION_ 420
|
||||
|
||||
/** The Version Namespace should not be normally changed. Only
|
||||
* host and firmware of the same WMI namespace will work
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren