1. 25 Jul, 2014 3 commits
    • Janusz Dziedzic's avatar
      ath10k: handle attention flags correctly when using A-MSDU · 0ccb7a34
      Janusz Dziedzic authored
      In case of A-MSDU RX we should check attention flags
      correctly to be sure we report correct FCS status for
      A-MSDU subframes. Without a patch we could report A-MSDU
      subframes with wrong FCS as a correct to the stack, next
      get a lot of DUP ACK TCP packets. Finally TP drop is seen
      and this drop depends on FCS errors ratio for A-MSDU frame.
      
      Example test case when TP drop is seen:
      - ath10k configured as an AP
      - used ath10k station
      - forced A-MSDU (7 frames) on STA
      - other traffic on channel (often FCS errors)
      - monitor iface added on AP
      - TCP STA -> AP traffic (iperf)
      
      a) Iperf logs for case without the patch:
      
      echo "1 64" > htt_max_amsdu_ampdu // disable A-MSDU
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 5.0 sec  56.6 MBytes  95.0 Mbits/sec
      [  3]  5.0-10.0 sec  60.4 MBytes   101 Mbits/sec
      [  3] 10.0-15.0 sec  60.2 MBytes   101 Mbits/sec
      [  3] 15.0-20.0 sec  60.2 MBytes   101 Mbits/sec
      [  3] 20.0-25.0 sec  63.8 MBytes   107 Mbits/sec
      [  3] 25.0-30.0 sec  64.9 MBytes   109 Mbits/sec
      
      echo "7 64" > htt_max_amsdu_ampdu  // set 7 A-MSDU subframes
      [  3] 30.0-35.0 sec  40.0 MBytes  67.1 Mbits/sec
      [  3] 35.0-40.0 sec  35.9 MBytes  60.2 Mbits/sec
      [  3] 40.0-45.0 sec  36.9 MBytes  61.9 Mbits/sec
      [  3] 45.0-50.0 sec  37.9 MBytes  63.5 Mbits/sec
      [  3] 50.0-55.0 sec  34.5 MBytes  57.9 Mbits/sec
      [  3] 55.0-60.0 sec  25.4 MBytes  42.6 Mbits/sec
      [  3] 60.0-65.0 sec  48.2 MBytes  81.0 Mbits/sec
      [  3] 65.0-70.0 sec  28.8 MBytes  48.2 Mbits/sec
      [  3] 70.0-75.0 sec  29.2 MBytes  49.1 Mbits/sec
      [  3] 75.0-80.0 sec  22.9 MBytes  38.4 Mbits/sec
      [  3] 80.0-85.0 sec  26.4 MBytes  44.2 Mbits/sec
      [  3] 85.0-90.0 sec  31.5 MBytes  52.8 Mbits/sec
      
      b) Iperf logs for case with patch:
      
      echo "1 64" > htt_max_amsdu_ampdu // disable A-MSDU
      [  3] local 192.168.12.2 port 57512 connected with 192.168.12.1 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 5.0 sec  60.8 MBytes   102 Mbits/sec
      [  3]  5.0-10.0 sec  62.2 MBytes   104 Mbits/sec
      [  3] 10.0-15.0 sec  60.9 MBytes   102 Mbits/sec
      
      echo "7 64" > htt_max_amsdu_ampdu  // set 7 A-MSDU subframes
      [  3] 15.0-20.0 sec  68.1 MBytes   114 Mbits/sec
      [  3] 20.0-25.0 sec  80.5 MBytes   135 Mbits/sec
      [  3] 25.0-30.0 sec  83.0 MBytes   139 Mbits/sec
      [  3] 30.0-35.0 sec  79.1 MBytes   133 Mbits/sec
      [  3] 35.0-40.0 sec  77.1 MBytes   129 Mbits/sec
      [  3] 40.0-45.0 sec  77.4 MBytes   130 Mbits/sec
      Reported-by: default avatarDenton Gentry <denton.gentry@gmail.com>
      Signed-off-by: default avatarJanusz Dziedzic <janusz.dziedzic@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      0ccb7a34
    • Michal Kazior's avatar
      ath10k: don't advertise IBSS iftype for 10.x · cf850d1d
      Michal Kazior authored
      The 10.x firmware does not support IBSS mode at
      all. It can't beacon and it crashes when trying to
      scan.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      cf850d1d
    • Michal Kazior's avatar
      ath10k: fix Rx aggregation reordering · aa5b4fbc
      Michal Kazior authored
      Firmware doesn't perform Rx reordering so it is
      left to the host driver to do that.
      
      Use mac80211 to perform reordering instead of
      re-inventing the wheel.
      
      This fixes TCP throughput issues in some
      environments.
      Reported-by: default avatarDenton Gentry <denton.gentry@gmail.com>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      aa5b4fbc
  2. 24 Jul, 2014 1 commit
  3. 23 Jul, 2014 7 commits
  4. 22 Jul, 2014 28 commits
  5. 21 Jul, 2014 1 commit
    • Michal Kazior's avatar
      ath10k: prevent some tx flushing failures · 708b9bde
      Michal Kazior authored
      Firmware could request inspection of some
      submitted tx requests. Since the callback wasn't
      implemented it was possible to bleed tx msdu_ids
      which could translate to tx flushing timeouts.
      
      There's nothing ath10k can do to help firmware
      with tx processing now so just report all tx
      frames as already inspected to prevent firmware
      from sending up inspection events and force it to
      report regular tx completion indications with
      discard status.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      708b9bde