1. 01 Apr, 2015 6 commits
    • Thomas Huehn's avatar
      mac80211: add new Minstrel-HT statistic output via csv · 2cae0b6a
      Thomas Huehn authored
      This patch adds a new debugfs file "rc_stats_csv" to output
      Minstrel-HTs statistics in a common csv format that is easy
      to parse.
      Signed-off-by: default avatarThomas Huehn <thomas@net.t-labs.tu-berlin.de>
      Signed-off-by: default avatarStefan Venz <ikstream86@gmail.com>
      Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
      [remove printing current time of day]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      2cae0b6a
    • Thomas Huehn's avatar
      mac80211: add new Minstrel statistic output via csv · 6d488517
      Thomas Huehn authored
      This patch adds a new debugfs file "rc_stats_csv" to output Minstrels
      statistics in a common csv format that is easy to parse.
      Signed-off-by: default avatarThomas Huehn <thomas@net.t-labs.tu-berlin.de>
      Signed-off-by: default avatarStefan Venz <ikstream86@gmail.com>
      Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
      [remove printing current time of day]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      6d488517
    • Thomas Huehn's avatar
      mac80211: enhance readability of Minstrel-HTs rc_stats output · 9c00bb72
      Thomas Huehn authored
      This patch restructures the rc_stats debugfs table of Minstrel-HT in
      order to achieve better human readability. A new layout of the
      statistics and a new header is added. In addition to the old layout
      there are two new columns of information added:
      idx	- representing the rate index of each rate in mac80211 which
      	  can be used to set specific rates as fixed rate via debugfs
      airtime	- the tx-time in micro seconds that a 1200 Byte packet
      	  takes to be transmitted over the air at the given rate
      
      The old layout of rc_stats:
      
      type           rate      tpt eprob *prob ret  *ok(*cum)        ok(      cum)
      HT20/LGI       MCS0      5.6 100.0 100.0   1    0(   0)         1(        1)
      HT20/LGI   B   MCS1     10.5 100.0 100.0   0    0(   0)         1(        1)
      HT20/LGI  A    MCS2     14.8 100.0 100.0   0    0(   0)         1(        1)
      ...
      
      is changed into this new layout:
      
                  best   ________rate______    __statistics__    ________last_______    ______sum-of________
      mode guard #  rate  [name   idx airtime]  [ ø(tp) ø(prob)]  [prob.|retry|suc|att]  [#success | #attempts]
      HT20  LGI  1         MCS0     0    1480      0.0      0.0      0.0   1     0 0             0   0
      HT20  LGI  1     B   MCS1     1     740     10.5    100.0    100.0   0     0 0             1   1
      HT20  LGI  1    A    MCS2     2     496     14.8    100.0    100.0   0     0 0             1   1
      ...
      Signed-off-by: default avatarThomas Huehn <thomas@net.t-labs.tu-berlin.de>
      Signed-off-by: default avatarStefan Venz <ikstream86@gmail.com>
      Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9c00bb72
    • Thomas Huehn's avatar
      mac80211: enhance readability of Minstrels rc_stats output · e161f7f6
      Thomas Huehn authored
      This patch restructures the rc_stats debugfs table of Minstrel in
      order to achieve better human readability. A new layout of the
      statistics and a new header is added. In addition to the old layout
      there are two new columns of information added:
      idx	- representing the rate index of each rate in mac80211 which
      	  can be used to set specific rates as fixed rate via debugfs
      airtime - the tx-time in micro seconds that a 1200 Byte packet
      	  takes to be transmitted over the air at the given rate
      
      The old layout of rc_stats:
      
          rate      tpt  eprob *prob ret  *ok(*cum)        ok(      cum)
       DP 1          0.9  93.5 100.0   1    0(   0)         2(        2)
          2          0.4  40.0 100.0   0    0(   0)         4(        10)
          5.5        0.0   0.0   0.0   0    0(   0)         0(        0)
      ...
      
      is changed into this new layout:
      
      best   _______rate_____    __statistics__    ________last_______    ______sum-of________
      rate  [name idx tx-time]  [ ø(tp) ø(prob)]  [prob.|retry|suc|att]  [#success | #attempts]
       DP   1     0     9738      0.9    93.5     100.0   1     1 1             2   2
            2     1     4922      0.4    40.0     100.0   1     0 0             4   10
            5.5   2     1858      0.0     0.0       0.0   2     0 0             0   0
      ...
      Signed-off-by: default avatarThomas Huehn <thomas@net.t-labs.tu-berlin.de>
      Signed-off-by: default avatarStefan Venz <ikstream86@gmail.com>
      Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      e161f7f6
    • Ilan peer's avatar
      cfg80211: Stop calling crda if it is not responsive · c37722bd
      Ilan peer authored
      Patch eeca9fce (cfg80211: Schedule
      timeout for all CRDA call) introduced a regression, where in case
      that crda is not installed (or not configured properly etc.), the
      regulatory core will needlessly continue to call it, polluting the
      log with the following log:
      
      "cfg80211: Calling CRDA to update world regulatory domain"
      
      Fix this by limiting the number of continuous CRDA request failures.
      Signed-off-by: default avatarIlan Peer <ilan.peer@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c37722bd
    • Johannes Berg's avatar
      mac80211: use rhashtable for station table · 7bedd0cf
      Johannes Berg authored
      We currently have a hand-rolled table with 256 entries and are
      using the last byte of the MAC address as the hash. This hash
      is obviously very fast, but collisions are easily created and
      we waste a lot of space in the common case of just connecting
      as a client to an AP where we just have a single station. The
      other common case of an AP is also suboptimal due to the size
      of the hash table and the ease of causing collisions.
      
      Convert all of this to use rhashtable with jhash, which gives
      us the advantage of a far better hash function (with random
      perturbation to avoid hash collision attacks) and of course
      that the hash table grows and shrinks dynamically with chain
      length, improving both cases above.
      
      Use a specialised hash function (using jhash, but with fixed
      length) to achieve better compiler optimisation as suggested
      by Sergey Ryazanov.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      7bedd0cf
  2. 31 Mar, 2015 34 commits