From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp.codeaurora.org ([198.145.29.96]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1f85RQ-0004Ig-ID for ath10k@lists.infradead.org; Mon, 16 Apr 2018 14:49:28 +0000 From: Balaji Pothunoori Subject: [PATCHv2 1/3] cfg80211: average ack rssi support for data frames Date: Mon, 16 Apr 2018 20:18:40 +0530 Message-Id: <1523890122-23952-2-git-send-email-bpothuno@codeaurora.org> In-Reply-To: <1523890122-23952-1-git-send-email-bpothuno@codeaurora.org> References: <1523890122-23952-1-git-send-email-bpothuno@codeaurora.org> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: johannes@sipsolutions.net, ath10k@lists.infradead.org Cc: bpothuno@codeaurora.org, linux-wireless@vger.kernel.org QXZlcmFnZSBhY2sgcnNzaSB3aWxsIGJlIGdpdmVuIHRvIHVzZXJzcGFjZSB2aWEgTkw4MDIxMSBp bnRlcmZhY2UKaWYgZmlybXdhcmUgaXMgY2FwYWJsZS4gVXNlcnNwYWNlIHRvb2wg4oCYaXfigJkg Y2FuIHByb2Nlc3MgdGhpcwppbmZvcm1hdGlvbiBhbmQgZ2l2ZSB0aGUgb3V0cHV0IGFzIG9uZSBv ZiB0aGUgZmllbGRzIGluCuKAmGl3IGRldiB3bGFuWCBzdGF0aW9uIGR1bXDigJkuCgpFeGFtcGxl IG91dHB1dCA6Cgpsb2NhbGhvc3QgfiAjaXcgZGV2IHdsYW4tNTAwMG1oeiBzdGF0aW9uIGR1bXAg U3RhdGlvbgozNDpmMzo5YTphYTozYjoyOSAob24gd2xhbi01MDAwbWh6KQogICAgICAgIGluYWN0 aXZlIHRpbWU6ICA1MzcwIG1zCiAgICAgICAgcnggYnl0ZXM6ICAgICAgIDg1MzIxCiAgICAgICAg cnggcGFja2V0czogICAgIDU3NgogICAgICAgIHR4IGJ5dGVzOiAgICAgICAxNDIyNQogICAgICAg IHR4IHBhY2tldHM6ICAgICA3MQogICAgICAgIHR4IHJldHJpZXM6ICAgICAwCiAgICAgICAgdHgg ZmFpbGVkOiAgICAgIDIKICAgICAgICBiZWFjb24gbG9zczogICAgMAogICAgICAgIHJ4IGRyb3Ag bWlzYzogICAwCiAgICAgICAgc2lnbmFsOiAgICAgICAgIC01NCBkQm0KICAgICAgICBzaWduYWwg YXZnOiAgICAgLTUzIGRCbQogICAgICAgIHR4IGJpdHJhdGU6ICAgICA4NjYuNyBNQml0L3MgVkhU LU1DUyA5IDgwTUh6IHNob3J0IEdJIFZIVC1OU1MgMgogICAgICAgIHJ4IGJpdHJhdGU6ICAgICA4 NjYuNyBNQml0L3MgVkhULU1DUyA5IDgwTUh6IHNob3J0IEdJIFZIVC1OU1MgMgogICAgICAgIGF2 ZyBhY2sgc2lnbmFsOiAtNTYgZEJtCiAgICAgICAgYXV0aG9yaXplZDogICAgIHllcwogICAgICAg IGF1dGhlbnRpY2F0ZWQ6ICB5ZXMKICAgICAgICBhc3NvY2lhdGVkOiAgICAgeWVzCiAgICAgICAg cHJlYW1ibGU6ICAgICAgIHNob3J0CiAgICAgICAgV01NL1dNRTogICAgICAgIHllcwogICAgICAg IE1GUDogICAgICAgICAgICBubwogICAgICAgIFRETFMgcGVlcjogICAgICBubwogICAgICAgIERU SU0gcGVyaW9kOiAgICAyCiAgICAgICAgYmVhY29uIGludGVydmFsOjEwMAogICAgICAgc2hvcnQg cHJlYW1ibGU6IHllcwogICAgICAgc2hvcnQgc2xvdCB0aW1lOnllcwogICAgICAgY29ubmVjdGVk IHRpbWU6IDIwMyBzZWNvbmRzCgpNYWluIHVzZSBjYXNlIGlzIHRvIG1lYXN1cmUgdGhlIHNpZ25h bCBzdHJlbmd0aCBvZiBhIGNvbm5lY3RlZCBzdGF0aW9uCnRvIEFQLiBEYXRhIHBhY2tldCB0cmFu c21pdCByYXRlcyBhbmQgYmFuZHdpZHRoIHVzZWQgYnkgc3RhdGlvbiBjYW4gdmFyeQphIGxvdCBl dmVuIGlmIHRoZSBzdGF0aW9uIGlzIGF0IGZpeGVkIGxvY2F0aW9uLCBlc3BlY2lhbGx5IGlmIHRo ZSByYXRlcwp1c2VkIGFyZSBtdWx0aSBzdHJlYW0oMnN0cmVhbSwgM3N0cmVhbSkgcmF0ZXMgd2l0 aCBkaWZmZXJlbnQgYmFuZHdpZHRoKDIwLzQwLzgwIE1oeikuClRoZXNlIG11bHRpIHN0cmVhbSBy YXRlcyBhcmUgc2Vuc2l0aXZlIGFuZCBzdGF0aW9uIGNhbiB1c2UgZGlmZmVyZW50IHRyYW5zbWl0 IHBvd2VyCmZvciBlYWNoIG9mIHRoZSByYXRlIGFuZCBiYW5kd2lkdGggY29tYmluYXRpb25zLiBS U1NJIG1lYXN1cmVkIGZyb20gdGhlc2UgUlggcGFja2V0cwpvbiBBUCB3aWxsIGJlIG5vdCBzdGFi bGUgYW5kIGNhbiB2YXJ5IGEgbG90IHdpdGggaW4gYSBzaG9ydCB0aW1lLgpXaGVyZWFzIDgwMi4x MSBhY2sgZnJhbWVzIGZyb20gc3RhdGlvbiBhcmUgc2VudCByZWxhdGl2ZWx5IGF0IGEgY29uc3Rh bnQKcmF0ZSAoNi8xMi8yNCBNYnBzKSB3aXRoIGNvbnN0YW50IGJhbmR3aWR0aCgyMCBNaHopLgpT byBhdmVyYWdlIHJzc2kgb2YgdGhlIGFjayBwYWNrZXRzIGlzIGdvb2QgYW5kIG1vcmUgYWNjdXJh dGUuIgoKU2lnbmVkLW9mZi1ieTogQmFsYWppIFBvdGh1bm9vcmkgPGJwb3RodW5vQGNvZGVhdXJv cmEub3JnPgotLS0KIGluY2x1ZGUvbmV0L2NmZzgwMjExLmggICAgICAgfCAzICsrKwogaW5jbHVk ZS91YXBpL2xpbnV4L25sODAyMTEuaCB8IDcgKysrKysrKwogbmV0L3dpcmVsZXNzL25sODAyMTEu YyAgICAgICB8IDMgKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaApp bmRleCAyNTBkYWMzLi41ZTg4OGVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5o CisrKyBiL2luY2x1ZGUvbmV0L2NmZzgwMjExLmgKQEAgLTExNTIsNiArMTE1Miw4IEBAIHN0cnVj dCBjZmc4MDIxMV90aWRfc3RhdHMgewogICogQHBlcnRpZDogcGVyLVRJRCBzdGF0aXN0aWNzLCBz ZWUgJnN0cnVjdCBjZmc4MDIxMV90aWRfc3RhdHMsIHVzaW5nIHRoZSBsYXN0CiAgKgkoSUVFRTgw MjExX05VTV9USURTKSBpbmRleCBmb3IgTVNEVXMgbm90IGVuY2Fwc3VsYXRlZCBpbiBRb1MtTVBE VXMuCiAgKiBAYWNrX3NpZ25hbDogc2lnbmFsIHN0cmVuZ3RoIChpbiBkQm0pIG9mIHRoZSBsYXN0 IEFDSyBmcmFtZS4KKyAqIEBhdmdfYWNrX3NpZ25hbDogYXZlcmFnZSByc3NpIHZhbHVlIG9mIGFj ayBwYWNrZXQgZm9yIHRoZSBubyBvZiBtc2R1J3MgaGFzCisgKgliZWVuIHNlbnQuCiAgKi8KIHN0 cnVjdCBzdGF0aW9uX2luZm8gewogCXU2NCBmaWxsZWQ7CkBAIC0xMTk3LDYgKzExOTksNyBAQCBz dHJ1Y3Qgc3RhdGlvbl9pbmZvIHsKIAl1OCByeF9iZWFjb25fc2lnbmFsX2F2ZzsKIAlzdHJ1Y3Qg Y2ZnODAyMTFfdGlkX3N0YXRzIHBlcnRpZFtJRUVFODAyMTFfTlVNX1RJRFMgKyAxXTsKIAlzOCBh Y2tfc2lnbmFsOworCXM4IGF2Z19hY2tfc2lnbmFsOwogfTsKIAogI2lmIElTX0VOQUJMRUQoQ09O RklHX0NGRzgwMjExKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25sODAyMTEuaCBi L2luY2x1ZGUvdWFwaS9saW51eC9ubDgwMjExLmgKaW5kZXggMTVkYWY1ZS4uYTQxYTc3YiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25sODAyMTEuaAorKysgYi9pbmNsdWRlL3VhcGkv bGludXgvbmw4MDIxMS5oCkBAIC0yOTgwLDYgKzI5ODAsOCBAQCBlbnVtIG5sODAyMTFfc3RhX2Jz c19wYXJhbSB7CiAgKglyZWNlaXZlZCBmcm9tIHRoZSBzdGF0aW9uICh1NjQsIHVzZWMpCiAgKiBA Tkw4MDIxMV9TVEFfSU5GT19QQUQ6IGF0dHJpYnV0ZSB1c2VkIGZvciBwYWRkaW5nIGZvciA2NC1i aXQgYWxpZ25tZW50CiAgKiBATkw4MDIxMV9TVEFfSU5GT19BQ0tfU0lHTkFMOiBzaWduYWwgc3Ry ZW5ndGggb2YgdGhlIGxhc3QgQUNLIGZyYW1lKHU4LCBkQm0pCisgKiBATkw4MDIxMV9TVEFfSU5G T19EQVRBX0FDS19TSUdOQUxfQVZHOiBhdmcgc2lnbmFsIHN0cmVuZ3RoIG9mIGRhdGEgQUNLCisg KiBmcmFtZShzOCwgZEJtKQogICogQF9fTkw4MDIxMV9TVEFfSU5GT19BRlRFUl9MQVNUOiBpbnRl cm5hbAogICogQE5MODAyMTFfU1RBX0lORk9fTUFYOiBoaWdoZXN0IHBvc3NpYmxlIHN0YXRpb24g aW5mbyBhdHRyaWJ1dGUKICAqLwpAQCAtMzAxOSw2ICszMDIxLDcgQEAgZW51bSBubDgwMjExX3N0 YV9pbmZvIHsKIAlOTDgwMjExX1NUQV9JTkZPX1JYX0RVUkFUSU9OLAogCU5MODAyMTFfU1RBX0lO Rk9fUEFELAogCU5MODAyMTFfU1RBX0lORk9fQUNLX1NJR05BTCwKKwlOTDgwMjExX1NUQV9JTkZP X0RBVEFfQUNLX1NJR05BTF9BVkcsCiAKIAkvKiBrZWVwIGxhc3QgKi8KIAlfX05MODAyMTFfU1RB X0lORk9fQUZURVJfTEFTVCwKQEAgLTUwMzgsNiArNTA0MSw5IEBAIGVudW0gbmw4MDIxMV9mZWF0 dXJlX2ZsYWdzIHsKICAqCSJyYWRhciBkZXRlY3RlZCIgZXZlbnQuCiAgKiBATkw4MDIxMV9FWFRf RkVBVFVSRV9DT05UUk9MX1BPUlRfT1ZFUl9OTDgwMjExOiBEcml2ZXIgc3VwcG9ydHMgc2VuZGlu ZyBhbmQKICAqCXJlY2VpdmluZyBjb250cm9sIHBvcnQgZnJhbWVzIG92ZXIgbmw4MDIxMSBpbnN0 ZWFkIG9mIHRoZSBuZXRkZXZpY2UuCisgKiBATkw4MDIxMV9FWFRfRkVBVFVSRV9EQVRBX0FDS19T SUdOQUxfU1VQUE9SVDogVGhpcyBEcml2ZXIgc3VwcG9ydCBkYXRhIGFjaworICoJcnNzaSBpZiBm aXJtd2FyZSBzdXBwb3J0LCB0aGlzIGZsYWcgaXMgdG8gaW50aW1hdGUgYWJvdXQgYWNrIHJzc2kK KyAqCXN1cHBvcnQgdG8gbmw4MDIxMS4KICAqCiAgKiBATlVNX05MODAyMTFfRVhUX0ZFQVRVUkVT OiBudW1iZXIgb2YgZXh0ZW5kZWQgZmVhdHVyZXMuCiAgKiBATUFYX05MODAyMTFfRVhUX0ZFQVRV UkVTOiBoaWdoZXN0IGV4dGVuZGVkIGZlYXR1cmUgaW5kZXguCkBAIC01MDcwLDYgKzUwNzYsNyBA QCBlbnVtIG5sODAyMTFfZXh0X2ZlYXR1cmVfaW5kZXggewogCU5MODAyMTFfRVhUX0ZFQVRVUkVf SElHSF9BQ0NVUkFDWV9TQ0FOLAogCU5MODAyMTFfRVhUX0ZFQVRVUkVfREZTX09GRkxPQUQsCiAJ Tkw4MDIxMV9FWFRfRkVBVFVSRV9DT05UUk9MX1BPUlRfT1ZFUl9OTDgwMjExLAorCU5MODAyMTFf RVhUX0ZFQVRVUkVfREFUQV9BQ0tfU0lHTkFMX1NVUFBPUlQsCiAKIAkvKiBhZGQgbmV3IGZlYXR1 cmVzIGJlZm9yZSB0aGUgZGVmaW5pdGlvbiBiZWxvdyAqLwogCU5VTV9OTDgwMjExX0VYVF9GRUFU VVJFUywKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMgYi9uZXQvd2lyZWxlc3Mv bmw4MDIxMS5jCmluZGV4IGZmMjhmOGYuLjU0MTVlN2MgMTAwNjQ0Ci0tLSBhL25ldC93aXJlbGVz cy9ubDgwMjExLmMKKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYwpAQCAtNDQ5NCw2ICs0NDk0 LDkgQEAgc3RhdGljIGludCBubDgwMjExX3NlbmRfc3RhdGlvbihzdHJ1Y3Qgc2tfYnVmZiAqbXNn LCB1MzIgY21kLCB1MzIgcG9ydGlkLAogCVBVVF9TSU5GT19VNjQoQkVBQ09OX1JYLCByeF9iZWFj b24pOwogCVBVVF9TSU5GTyhCRUFDT05fU0lHTkFMX0FWRywgcnhfYmVhY29uX3NpZ25hbF9hdmcs IHU4KTsKIAlQVVRfU0lORk8oQUNLX1NJR05BTCwgYWNrX3NpZ25hbCwgdTgpOworCWlmICh3aXBo eV9leHRfZmVhdHVyZV9pc3NldCgmcmRldi0+d2lwaHksCisJCQkJICAgIE5MODAyMTFfRVhUX0ZF QVRVUkVfREFUQV9BQ0tfU0lHTkFMX1NVUFBPUlQpKQorCQlQVVRfU0lORk8oREFUQV9BQ0tfU0lH TkFMX0FWRywgYXZnX2Fja19zaWduYWwsIHM4KTsKIAogI3VuZGVmIFBVVF9TSU5GTwogI3VuZGVm IFBVVF9TSU5GT19VNjQKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYXRoMTBrIG1haWxpbmcgbGlzdAphdGgxMGtAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2F0aDEw awo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp.codeaurora.org ([198.145.29.96]:37780 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751172AbeDPOtC (ORCPT ); Mon, 16 Apr 2018 10:49:02 -0400 From: Balaji Pothunoori To: johannes@sipsolutions.net, ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, bpothuno@codeaurora.org Subject: [PATCHv2 1/3] cfg80211: average ack rssi support for data frames Date: Mon, 16 Apr 2018 20:18:40 +0530 Message-Id: <1523890122-23952-2-git-send-email-bpothuno@codeaurora.org> (sfid-20180416_164958_378716_9C98BEB5) In-Reply-To: <1523890122-23952-1-git-send-email-bpothuno@codeaurora.org> References: <1523890122-23952-1-git-send-email-bpothuno@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: Average ack rssi will be given to userspace via NL80211 interface if firmware is capable. Userspace tool ‘iw’ can process this information and give the output as one of the fields in ‘iw dev wlanX station dump’. Example output : localhost ~ #iw dev wlan-5000mhz station dump Station 34:f3:9a:aa:3b:29 (on wlan-5000mhz) inactive time: 5370 ms rx bytes: 85321 rx packets: 576 tx bytes: 14225 tx packets: 71 tx retries: 0 tx failed: 2 beacon loss: 0 rx drop misc: 0 signal: -54 dBm signal avg: -53 dBm tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2 rx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2 avg ack signal: -56 dBm authorized: yes authenticated: yes associated: yes preamble: short WMM/WME: yes MFP: no TDLS peer: no DTIM period: 2 beacon interval:100 short preamble: yes short slot time:yes connected time: 203 seconds Main use case is to measure the signal strength of a connected station to AP. Data packet transmit rates and bandwidth used by station can vary a lot even if the station is at fixed location, especially if the rates used are multi stream(2stream, 3stream) rates with different bandwidth(20/40/80 Mhz). These multi stream rates are sensitive and station can use different transmit power for each of the rate and bandwidth combinations. RSSI measured from these RX packets on AP will be not stable and can vary a lot with in a short time. Whereas 802.11 ack frames from station are sent relatively at a constant rate (6/12/24 Mbps) with constant bandwidth(20 Mhz). So average rssi of the ack packets is good and more accurate." Signed-off-by: Balaji Pothunoori --- include/net/cfg80211.h | 3 +++ include/uapi/linux/nl80211.h | 7 +++++++ net/wireless/nl80211.c | 3 +++ 3 files changed, 13 insertions(+) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 250dac3..5e888ec 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -1152,6 +1152,8 @@ struct cfg80211_tid_stats { * @pertid: per-TID statistics, see &struct cfg80211_tid_stats, using the last * (IEEE80211_NUM_TIDS) index for MSDUs not encapsulated in QoS-MPDUs. * @ack_signal: signal strength (in dBm) of the last ACK frame. + * @avg_ack_signal: average rssi value of ack packet for the no of msdu's has + * been sent. */ struct station_info { u64 filled; @@ -1197,6 +1199,7 @@ struct station_info { u8 rx_beacon_signal_avg; struct cfg80211_tid_stats pertid[IEEE80211_NUM_TIDS + 1]; s8 ack_signal; + s8 avg_ack_signal; }; #if IS_ENABLED(CONFIG_CFG80211) diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 15daf5e..a41a77b 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -2980,6 +2980,8 @@ enum nl80211_sta_bss_param { * received from the station (u64, usec) * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm) + * @NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG: avg signal strength of data ACK + * frame(s8, dBm) * @__NL80211_STA_INFO_AFTER_LAST: internal * @NL80211_STA_INFO_MAX: highest possible station info attribute */ @@ -3019,6 +3021,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_RX_DURATION, NL80211_STA_INFO_PAD, NL80211_STA_INFO_ACK_SIGNAL, + NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG, /* keep last */ __NL80211_STA_INFO_AFTER_LAST, @@ -5038,6 +5041,9 @@ enum nl80211_feature_flags { * "radar detected" event. * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211: Driver supports sending and * receiving control port frames over nl80211 instead of the netdevice. + * @NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT: This Driver support data ack + * rssi if firmware support, this flag is to intimate about ack rssi + * support to nl80211. * * @NUM_NL80211_EXT_FEATURES: number of extended features. * @MAX_NL80211_EXT_FEATURES: highest extended feature index. @@ -5070,6 +5076,7 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN, NL80211_EXT_FEATURE_DFS_OFFLOAD, NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211, + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT, /* add new features before the definition below */ NUM_NL80211_EXT_FEATURES, diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index ff28f8f..5415e7c 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -4494,6 +4494,9 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid, PUT_SINFO_U64(BEACON_RX, rx_beacon); PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8); PUT_SINFO(ACK_SIGNAL, ack_signal, u8); + if (wiphy_ext_feature_isset(&rdev->wiphy, + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT)) + PUT_SINFO(DATA_ACK_SIGNAL_AVG, avg_ack_signal, s8); #undef PUT_SINFO #undef PUT_SINFO_U64 -- 2.7.4