diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-02-20 04:37:26 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-02-20 04:37:26 -0800 |
| commit | ebe11d18538b3ba0802168c928898b7ca448df3f (patch) | |
| tree | 83bda98343cb93e7d7172156844899ea4b4dbff3 | |
| parent | 60740935c5e6b1f829a0243086d7f10c3b5e6b77 (diff) | |
| parent | b48ae46554e295b6b446dd33ffa52892b1de7da6 (diff) | |
Merge "qcacld-2.0: Add MAC address in vendor event for each peer" into wlan-cld2.driver.lnx.1.0-dev
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 2 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 25 |
3 files changed, 29 insertions, 0 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index f0b72106cdd1..0c362cfb800e 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -6998,6 +6998,8 @@ static int put_wifi_ll_ext_peer_info(struct sir_wifi_ll_ext_peer_stats *peers, nla_put_u32(skb, QCA_WLAN_VENDOR_ATTR_LL_STATS_EXT_RX_MGMT, peers->rx_oth_mgmts) || + nla_put(skb, QCA_WLAN_VENDOR_ATTR_LL_STATS_EXT_PEER_MAC_ADDRESS, + VOS_MAC_ADDR_SIZE, peers->mac_address) || put_wifi_signal_info(&peers->peer_signal_stats, skb)) { hddLog(LOGE, FL("put peer signal attr failed")); return -EINVAL; diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index dc01fa906f45..cd70cd3aa840 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -6537,6 +6537,7 @@ struct sir_wifi_ll_ext_wmm_ac_stats { * struct sir_wifi_ll_ext_peer_stats - per peer stats * @peer_id: peer ID * @vdev_id: VDEV ID + * mac_address: MAC address * @sta_ps_inds: how many times STAs go to sleep * @sta_ps_durs: total sleep time of STAs (units in ms) * @rx_probe_reqs: number of probe requests received @@ -6548,6 +6549,7 @@ struct sir_wifi_ll_ext_wmm_ac_stats { struct sir_wifi_ll_ext_peer_stats { uint32_t peer_id; uint32_t vdev_id; + tSirMacAddr mac_address; uint32_t sta_ps_inds; uint32_t sta_ps_durs; uint32_t rx_probe_reqs; diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 9cffc5bfe543..646229fcd4b2 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -5735,6 +5735,8 @@ static int wma_ll_stats_evt_handler(void *handle, u_int8_t *event, uint32_t i, peer_num, result_size, dst_len; tpAniSirGlobal mac; vos_msg_t vos_msg; + struct ol_txrx_peer_t *peer; + ol_txrx_pdev_handle pdev; mac = (tpAniSirGlobal)vos_get_context(VOS_MODULE_ID_PE, wma_handle->vos_context); @@ -5748,6 +5750,12 @@ static int wma_ll_stats_evt_handler(void *handle, u_int8_t *event, return -EINVAL; } + pdev = vos_get_context(VOS_MODULE_ID_TXRX, wma_handle->vos_context); + if (!pdev) { + WMA_LOGD("%s: NULL ol_txrx pdev ptr. Exiting", __func__); + return -EINVAL; + } + WMA_LOGD("%s: Posting MAC counters event to HDD", __func__); param_buf = (WMI_REPORT_STATS_EVENTID_param_tlvs *)event; @@ -5812,6 +5820,23 @@ static int wma_ll_stats_evt_handler(void *handle, u_int8_t *event, } else { WMA_LOGE(FL("Invalid length of PEER signal.")); } + + peer = ol_txrx_peer_find_by_local_id(pdev, + wmi_peer_signal->peer_id); + if (!peer) { + WMA_LOGE(FL("Invalid Peer ID %d in FW message."), + wmi_peer_signal->peer_id); + } else { + vos_mem_copy(&peer_stats[i].mac_address, + &peer->mac_addr, + sizeof(peer_stats[i].mac_address)); + WMA_LOGI("Peer %d mac address is: ", + wmi_peer_signal->peer_id); + WMA_LOGI("%2x:%2x:%2x:%2x:%2x:%2x.", + peer->mac_addr.raw[0], peer->mac_addr.raw[1], + peer->mac_addr.raw[2], peer->mac_addr.raw[3], + peer->mac_addr.raw[4], peer->mac_addr.raw[5]); + } } result += peer_num * sizeof(struct sir_wifi_ll_ext_peer_stats); |
