linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] IOP RX BA session issues
@ 2016-08-18  7:36 Maxim Altshul
  2016-08-18  7:36 ` [PATCH 1/3] mac80211: RX BA support for sta max_rx_aggregation_subframes Maxim Altshul
  0 siblings, 1 reply; 6+ messages in thread
From: Maxim Altshul @ 2016-08-18  7:36 UTC (permalink / raw)
  To: linux-wireless; +Cc: kvalo, johannes, Maxim Altshul

Some background: 

There exist some devices (latest mobile phones and some AP's e.g LG G4 H815, 
Samsung Galaxy S5 G900H) that tend to not respect a BA 
sessions maximum size (in Kbps). 

These devices won't respect the AMPDU size that was negotiated 
during associasion (even though they do respect the maximal number of packets).

This violation is characterized by a valid number of 
packets in a single AMPDU who all have the same size.
Even so, the total size will exceed the size negotiated during association.

Eventually, this will cause some undefined behavior, 
which in turn causes the hw to drop packets, causing the throughput to plummet.

The fix is separated to 3 patches:
wlcore patches (patches 2+3):
Add a functionality in which the firmware is able 
to notify the driver that the aggregation window size 
must be changed, and in turn the driver will notify mac80211.

mac80211 patch (patch 1) which will:
a. Make the subframe limitation to be held by each station, 
instead of being held only by hw.
b. Create an api for the driver to call which will remove all violating
BA sessions with a specific peer.

Reopening the BA sessions with a different size will limit the aggregation 
window size, which will in turn limit the maximum size in bytes of the whole aggregation.

I hope that the commit messages are clear enough, and if not then I will change them upon request.

Maxim Altshul (3):
  mac80211: RX BA support for sta max_rx_aggregation_subframes
  wlcore: Pass win_size taken from ieee80211_sta to FW
  wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event

 drivers/net/wireless/ti/wl18xx/event.c | 22 ++++++++++++++++++++++
 drivers/net/wireless/ti/wl18xx/event.h |  1 +
 drivers/net/wireless/ti/wl18xx/main.c  |  3 ++-
 drivers/net/wireless/ti/wlcore/acx.c   |  5 +++--
 drivers/net/wireless/ti/wlcore/acx.h   |  3 ++-
 drivers/net/wireless/ti/wlcore/main.c  |  6 ++++--
 include/net/mac80211.h                 | 22 ++++++++++++++++++++++
 net/mac80211/agg-rx.c                  | 31 +++++++++++++++++++++++++++----
 net/mac80211/ht.c                      | 18 ++++++++++++++++++
 net/mac80211/sta_info.c                |  3 +++
 10 files changed, 104 insertions(+), 10 deletions(-)

-- 
2.9.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-08-19  1:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-18  7:36 [PATCH 0/3] IOP RX BA session issues Maxim Altshul
2016-08-18  7:36 ` [PATCH 1/3] mac80211: RX BA support for sta max_rx_aggregation_subframes Maxim Altshul
2016-08-18  7:36   ` [PATCH 2/3] wlcore: Pass win_size taken from ieee80211_sta to FW Maxim Altshul
2016-08-18  7:36     ` [PATCH 3/3] wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event Maxim Altshul
2016-08-18 21:23     ` [PATCH 2/3] wlcore: Pass win_size taken from ieee80211_sta to FW Johannes Berg
2016-08-18 21:21   ` [PATCH 1/3] mac80211: RX BA support for sta max_rx_aggregation_subframes Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).