2016-09-06 07:09:16

by Rajkumar Manoharan

[permalink] [raw]
Subject: [PATCH] ath10k: advertize hardware packet loss mechanism

Indicate hardware (or firmware) supports that CQM packet-loss report
will be generated based on station kickout algorithm. As of now mac80211
tracks connection loss by missing msdu counts (50) whereas ath10k
firmware tracks them by missing ppdus (+ BAR tries). While firmware is
trying to adapt its rate table, mac80211 might send out low_ack event to
hostapd. This is causing frequent connect and disconnect iteration under
noisy environment or when station is roaming around.

Signed-off-by: Rajkumar Manoharan <[email protected]>
---
drivers/net/wireless/ath/ath10k/mac.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 79525f769db6..bae7662e7207 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7865,6 +7865,7 @@ int ath10k_mac_register(struct ath10k *ar)
ieee80211_hw_set(ar->hw, WANT_MONITOR_VIF);
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
+ ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);

if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL);
--
2.9.3


2016-09-09 12:27:39

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: advertize hardware packet loss mechanism

kbuild test robot <[email protected]> writes:

> Hi Rajkumar,
>
> [auto build test ERROR on ath6kl/ath-next]
> [also build test ERROR on v4.8-rc5 next-20160906]
> [if your patch is applied to the wrong git tree, please drop us a note to=
help improve the system]
> [Suggest to use git(>=3D2.9.0) format-patch --base=3D<commit> (or --base=
=3Dauto for convenience) to record what (public, well-known) commit your pa=
tch series was built on]
> [Check https://git-scm.com/docs/git-format-patch for more information]
>
> url: https://github.com/0day-ci/linux/commits/Rajkumar-Manoharan/ath10=
k-advertize-hardware-packet-loss-mechanism/20160906-151148
> base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath=
-next
> config: i386-randconfig-x008-201636 (attached as .config)
> compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=3Di386=20
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from drivers/net/wireless/ath/ath10k/mac.h:21:0,
> from drivers/net/wireless/ath/ath10k/mac.c:18:
> drivers/net/wireless/ath/ath10k/mac.c: In function 'ath10k_mac_registe=
r':
>>> include/net/mac80211.h:2206:57: error: 'IEEE80211_HW_REPORTS_LOW_ACK' u=
ndeclared (first use in this function)
> #define ieee80211_hw_set(hw, flg) _ieee80211_hw_set(hw, IEEE80211_HW_=
##flg)
> ^
>>> drivers/net/wireless/ath/ath10k/mac.c:7884:2: note: in expansion of mac=
ro 'ieee80211_hw_set'
> ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
> ^~~~~~~~~~~~~~~~
> include/net/mac80211.h:2206:57: note: each undeclared identifier is re=
ported only once for each function it appears in
> #define ieee80211_hw_set(hw, flg) _ieee80211_hw_set(hw, IEEE80211_HW_=
##flg)
> ^
>>> drivers/net/wireless/ath/ath10k/mac.c:7884:2: note: in expansion of mac=
ro 'ieee80211_hw_set'
> ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
> ^~~~~~~~~~~~~~~~

This is expected as this depends on a mac80211 patch which is not
applied yet.

--=20
Kalle Valo=

2016-09-06 08:19:24

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] ath10k: advertize hardware packet loss mechanism

Hi Rajkumar,

[auto build test ERROR on ath6kl/ath-next]
[also build test ERROR on v4.8-rc5 next-20160906]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url: https://github.com/0day-ci/linux/commits/Rajkumar-Manoharan/ath10k-advertize-hardware-packet-loss-mechanism/20160906-151148
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: i386-randconfig-x008-201636 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All error/warnings (new ones prefixed by >>):

In file included from drivers/net/wireless/ath/ath10k/mac.h:21:0,
from drivers/net/wireless/ath/ath10k/mac.c:18:
drivers/net/wireless/ath/ath10k/mac.c: In function 'ath10k_mac_register':
>> include/net/mac80211.h:2206:57: error: 'IEEE80211_HW_REPORTS_LOW_ACK' undeclared (first use in this function)
#define ieee80211_hw_set(hw, flg) _ieee80211_hw_set(hw, IEEE80211_HW_##flg)
^
>> drivers/net/wireless/ath/ath10k/mac.c:7884:2: note: in expansion of macro 'ieee80211_hw_set'
ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
^~~~~~~~~~~~~~~~
include/net/mac80211.h:2206:57: note: each undeclared identifier is reported only once for each function it appears in
#define ieee80211_hw_set(hw, flg) _ieee80211_hw_set(hw, IEEE80211_HW_##flg)
^
>> drivers/net/wireless/ath/ath10k/mac.c:7884:2: note: in expansion of macro 'ieee80211_hw_set'
ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
^~~~~~~~~~~~~~~~

vim +/ieee80211_hw_set +7884 drivers/net/wireless/ath/ath10k/mac.c

7868 BIT(NL80211_IFTYPE_P2P_GO);
7869
7870 ieee80211_hw_set(ar->hw, SIGNAL_DBM);
7871 ieee80211_hw_set(ar->hw, SUPPORTS_PS);
7872 ieee80211_hw_set(ar->hw, SUPPORTS_DYNAMIC_PS);
7873 ieee80211_hw_set(ar->hw, MFP_CAPABLE);
7874 ieee80211_hw_set(ar->hw, REPORTS_TX_ACK_STATUS);
7875 ieee80211_hw_set(ar->hw, HAS_RATE_CONTROL);
7876 ieee80211_hw_set(ar->hw, AP_LINK_PS);
7877 ieee80211_hw_set(ar->hw, SPECTRUM_MGMT);
7878 ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT);
7879 ieee80211_hw_set(ar->hw, CONNECTION_MONITOR);
7880 ieee80211_hw_set(ar->hw, SUPPORTS_PER_STA_GTK);
7881 ieee80211_hw_set(ar->hw, WANT_MONITOR_VIF);
7882 ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
7883 ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
> 7884 ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
7885
7886 if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
7887 ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL);
7888
7889 ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
7890 ar->hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
7891
7892 if (ar->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS)

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (3.24 kB)
.config.gz (32.16 kB)
Download all attachments

2016-09-28 10:11:32

by Kalle Valo

[permalink] [raw]
Subject: Re: ath10k: advertize hardware packet loss mechanism

Rajkumar Manoharan <[email protected]> wrote:
> Indicate hardware (or firmware) supports that CQM packet-loss report
> will be generated based on station kickout algorithm. As of now mac80211
> tracks connection loss by missing msdu counts (50) whereas ath10k
> firmware tracks them by missing ppdus (+ BAR tries). While firmware is
> trying to adapt its rate table, mac80211 might send out low_ack event to
> hostapd. This is causing frequent connect and disconnect iteration under
> noisy environment or when station is roaming around.
>
> Signed-off-by: Rajkumar Manoharan <[email protected]>

(Note to myself in patchwork)

Depends on:

e8a24cd4b872 mac80211: allow driver to handle packet-loss mechanism

Is in net-next currently.

--
https://patchwork.kernel.org/patch/9315811/

Documentation about submitting wireless patches and checking status
from patchwork:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2016-11-23 13:53:50

by Kalle Valo

[permalink] [raw]
Subject: Re: ath10k: advertize hardware packet loss mechanism

Rajkumar Manoharan <[email protected]> wrote:
> Indicate hardware (or firmware) supports that CQM packet-loss report
> will be generated based on station kickout algorithm. As of now mac80211
> tracks connection loss by missing msdu counts (50) whereas ath10k
> firmware tracks them by missing ppdus (+ BAR tries). While firmware is
> trying to adapt its rate table, mac80211 might send out low_ack event to
> hostapd. This is causing frequent connect and disconnect iteration under
> noisy environment or when station is roaming around.
>
> Signed-off-by: Rajkumar Manoharan <[email protected]>

Patch applied to ath-next branch of ath.git, thanks.

ff32eeb86aa1 ath10k: advertize hardware packet loss mechanism

--
https://patchwork.kernel.org/patch/9315811/

Documentation about submitting wireless patches and checking status
from patchwork:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches