summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-04-17 01:32:33 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-17 01:32:33 -0700
commit34b7eb885a97974879c28471b75dd9547fbcf31d (patch)
treea04b3a5b1d3c5b024da0a6d0d491bbac9a5016f7
parentca5a773202efcee1c4031e0609bc7505e0e520b1 (diff)
parent6756562e3f236bde3a69708cc0b8e4991d9a38ce (diff)
Merge "qcacld-2.0: CL 2890711 - update fw common interface files" into wlan-cld2.driver.lnx.1.0-dev
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h22
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h80
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c2
4 files changed, 94 insertions, 12 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index 5bec4b7f2cef..1a83fb251f8f 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -797,6 +797,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_set_diversity_gain_cmd_fixed_param,
WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_COMBO,
WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_CAPABILITY,
+ WMITLV_TAG_STRUC_wmi_vdev_set_arp_stats_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1121,6 +1124,8 @@ typedef enum {
OP(WMI_PDEV_UPDATE_PKT_ROUTING_CMDID) \
OP(WMI_PDEV_CHECK_CAL_VERSION_CMDID) \
OP(WMI_PDEV_SET_DIVERSITY_GAIN_CMDID) \
+ OP(WMI_VDEV_SET_ARP_STAT_CMDID) \
+ OP(WMI_VDEV_GET_ARP_STAT_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -1296,6 +1301,7 @@ typedef enum {
OP(WMI_PDEV_CHIP_POWER_SAVE_FAILURE_DETECTED_EVENTID) \
OP(WMI_PDEV_CSA_SWITCH_COUNT_STATUS_EVENTID) \
OP(WMI_PDEV_CHECK_CAL_VERSION_EVENTID) \
+ OP(WMI_VDEV_GET_ARP_STAT_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -3220,6 +3226,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHECK_CAL_VERSION_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, diversity_gains, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_DIVERSITY_GAIN_CMDID);
+/* set arp stats cmd */
+#define WMITLV_TABLE_WMI_VDEV_SET_ARP_STAT_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_arp_stats_cmd_fixed_param, wmi_vdev_set_arp_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_ARP_STAT_CMDID);
+
+/* get arp stats cmd */
+#define WMITLV_TABLE_WMI_VDEV_GET_ARP_STAT_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_cmd_fixed_param, wmi_vdev_get_arp_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_ARP_STAT_CMDID);
+
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
@@ -4288,6 +4305,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CSA_SWITCH_COUNT_STATUS_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_check_cal_version_event_fixed_param, wmi_pdev_check_cal_version_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHECK_CAL_VERSION_EVENTID);
+/* ARP stats response event */
+#define WMITLV_TABLE_WMI_VDEV_GET_ARP_STAT_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_event_fixed_param, wmi_vdev_get_arp_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_ARP_STAT_EVENTID);
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 428fbbf43ab8..7556f3b489f5 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -420,6 +420,10 @@ typedef enum {
/** Command to enable mac randomizaton **/
WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID,
+ /** WMI commands related to dbg arp stats */
+ WMI_VDEV_SET_ARP_STAT_CMDID,
+ WMI_VDEV_GET_ARP_STAT_CMDID,
+
/* peer specific commands */
/** create a peer */
@@ -1142,6 +1146,9 @@ typedef enum {
/** event to report mac randomization success **/
WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_STATUS_EVENTID,
+ /* event for ARP stats collection */
+ WMI_VDEV_GET_ARP_STAT_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),
@@ -6092,17 +6099,18 @@ typedef struct {
A_UINT32 key_seq_counter_h;
} wmi_key_seq_counter;
-#define WMI_CIPHER_NONE 0x0 /* clear key */
-#define WMI_CIPHER_WEP 0x1
-#define WMI_CIPHER_TKIP 0x2
-#define WMI_CIPHER_AES_OCB 0x3
-#define WMI_CIPHER_AES_CCM 0x4
-#define WMI_CIPHER_WAPI 0x5
-#define WMI_CIPHER_CKIP 0x6
-#define WMI_CIPHER_AES_CMAC 0x7
-#define WMI_CIPHER_ANY 0x8
-#define WMI_CIPHER_AES_GCM 0x9
-#define WMI_CIPHER_AES_GMAC 0xa
+#define WMI_CIPHER_NONE 0x0 /* clear key */
+#define WMI_CIPHER_WEP 0x1
+#define WMI_CIPHER_TKIP 0x2
+#define WMI_CIPHER_AES_OCB 0x3
+#define WMI_CIPHER_AES_CCM 0x4
+#define WMI_CIPHER_WAPI 0x5
+#define WMI_CIPHER_CKIP 0x6
+#define WMI_CIPHER_AES_CMAC 0x7
+#define WMI_CIPHER_ANY 0x8
+#define WMI_CIPHER_AES_GCM 0x9
+#define WMI_CIPHER_AES_GMAC 0xa
+#define WMI_CIPHER_WAPI_GCM_SM4 0xb
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param */
@@ -10563,6 +10571,54 @@ typedef struct {
A_UINT32 keepaliveMethod; /* seconds */
} wmi_vdev_get_keepalive_event_fixed_param;
+typedef enum {
+ WMI_CLEAR_ARP_STATS_COLLECTED = 0x0,
+ WMI_START_ARP_STATS_COLLECTION,
+} WMI_ARP_STATS_ACTION;
+
+typedef enum {
+ WMI_ARP_STATS_RX_PKT_TYPE_ARP = 0x1,
+} WMI_ARP_STATS_RX_PKT_TYPE;
+
+typedef enum {
+ WMI_BA_SESSION_ESTABLISHMENT_STATUS_SUCCESS = 0x0,
+ WMI_BA_SESSION_ESTABLISHMENT_STATUS_FAILURE,
+} WMI_ARP_STATS_BA_SESSION_ESTABLISH_STATUS;
+
+typedef enum {
+ WMI_CONNECTION_STATUS_FAILURE = 0x0,
+ WMI_CONNECTION_STATUS_SUCCESS,
+} WMI_ARP_STATS_CONNECTION_STATUS;
+
+/* ARP stats set (configure) req */
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_arp_stats_cmd_fixed_param */
+ A_UINT32 vdev_id;
+ A_UINT32 set_clr; /* WMI_ARP_STATS_ACTION */
+ A_UINT32 pkt_type; /* WMI_ARP_STATS_RX_PKT_TYPE */
+ A_UINT32 ipv4; /* target will maintain ARP stats (only) for frames containing this IP address */
+} wmi_vdev_set_arp_stats_cmd_fixed_param;
+
+/* ARP stats get req */
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_cmd_fixed_param */
+ A_UINT32 vdev_id;
+} wmi_vdev_get_arp_stats_cmd_fixed_param;
+
+/* per vdev based ARP stats */
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_event_fixed_param */
+ A_UINT32 vdev_id;
+ A_UINT32 arp_req_enqueue;
+ A_UINT32 arp_req_tx_success;
+ A_UINT32 arp_req_tx_failure; /* number of times a tx MPDU containing a unicast ARP request went unacked */
+ A_UINT32 arp_rsp_recvd;
+ A_UINT32 out_of_order_arp_rsp_drop_cnt;
+ A_UINT32 dad_detected; /* duplicate address detection */
+ A_UINT32 connect_status; /* WMI_ARP_STATS_CONNECTION_STATUS */
+ A_UINT32 ba_session_establishment_status; /* WMI_ARP_STATS_BA_SESSION_ESTABLISH_STATUS */
+} wmi_vdev_get_arp_stats_event_fixed_param;
+
#define IPSEC_NATKEEPALIVE_FILTER_DISABLE 0
#define IPSEC_NATKEEPALIVE_FILTER_ENABLE 1
@@ -18016,6 +18072,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_PDEV_UPDATE_PKT_ROUTING_CMDID);
WMI_RETURN_STRING(WMI_PDEV_CHECK_CAL_VERSION_CMDID);
WMI_RETURN_STRING(WMI_PDEV_SET_DIVERSITY_GAIN_CMDID);
+ WMI_RETURN_STRING(WMI_VDEV_SET_ARP_STAT_CMDID);
+ WMI_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID);
}
return "Invalid WMI cmd";
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 6cc1f7270b04..d6cf15fe8550 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/wmi_version.h
@@ -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_ 354
+#define __WMI_REVISION_ 355
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 74dc677b2cc5..8695723224d8 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -741,6 +741,8 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_PDEV_UPDATE_PKT_ROUTING_CMDID);
CASE_RETURN_STRING(WMI_PDEV_CHECK_CAL_VERSION_CMDID);
CASE_RETURN_STRING(WMI_PDEV_SET_DIVERSITY_GAIN_CMDID);
+ CASE_RETURN_STRING(WMI_VDEV_SET_ARP_STAT_CMDID);
+ CASE_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID);
}
return "Invalid WMI cmd";
}