|
@@ -4911,6 +4911,8 @@ int wma_get_arp_stats_handler(void *handle, uint8_t *data,
|
|
|
{
|
|
|
WMI_VDEV_GET_ARP_STAT_EVENTID_param_tlvs *param_buf;
|
|
|
wmi_vdev_get_arp_stats_event_fixed_param *data_event;
|
|
|
+ wmi_vdev_get_connectivity_check_stats *connect_stats_event;
|
|
|
+ uint8_t *buf_ptr;
|
|
|
struct rsp_stats rsp;
|
|
|
tpAniSirGlobal mac = cds_get_context(QDF_MODULE_ID_PE);
|
|
|
|
|
@@ -4950,6 +4952,21 @@ int wma_get_arp_stats_handler(void *handle, uint8_t *data,
|
|
|
rsp.ba_session_establishment_status =
|
|
|
data_event->ba_session_establishment_status;
|
|
|
|
|
|
+ buf_ptr = (uint8_t *)data_event;
|
|
|
+ buf_ptr = buf_ptr + sizeof(wmi_vdev_get_arp_stats_event_fixed_param) +
|
|
|
+ WMI_TLV_HDR_SIZE;
|
|
|
+ connect_stats_event = (wmi_vdev_get_connectivity_check_stats *)buf_ptr;
|
|
|
+
|
|
|
+ if (((connect_stats_event->tlv_header & 0xFFFF0000) >> 16 ==
|
|
|
+ WMITLV_TAG_STRUC_wmi_vdev_get_connectivity_check_stats)) {
|
|
|
+ rsp.connect_stats_present = true;
|
|
|
+ rsp.tcp_ack_recvd = connect_stats_event->tcp_ack_recvd;
|
|
|
+ rsp.icmpv4_rsp_recvd = connect_stats_event->icmpv4_rsp_recvd;
|
|
|
+ WMA_LOGD("tcp_ack_recvd %d icmpv4_rsp_recvd %d",
|
|
|
+ connect_stats_event->tcp_ack_recvd,
|
|
|
+ connect_stats_event->icmpv4_rsp_recvd);
|
|
|
+ }
|
|
|
+
|
|
|
mac->sme.get_arp_stats_cb(mac->hHdd, &rsp);
|
|
|
|
|
|
return 0;
|