User Tools

Site Tools


en:developers:documentation:mac80211:ratecontrol:minstrel

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
en:developers:documentation:mac80211:ratecontrol:minstrel [2015/01/26 09:49]
127.0.0.1 external edit
en:developers:documentation:mac80211:ratecontrol:minstrel [2016/01/11 18:02]
Valent Turkovic I noticed that there are 27 files and not 6 so I updated the list, but I don't have description for them.
Line 27: Line 27:
 Packets sent between two radio devices have some chance of being successfully sent. The probability of success is an unknown function of the variables (distance between devices, multipath effects, interference from other devices). The radio can be used in any environment,​ where the relationship between these variables is unknown. Further, we do not know which variable will predominate. We do not even know what the interference will look like. If the interference is bursty, then quicker packets (higher rates) have a better chance of getting through in the gaps. Given the unknown nature of the environment,​ we decided that performance at a particular rate has to be considered as being independant of performance at a different rate.  Packets sent between two radio devices have some chance of being successfully sent. The probability of success is an unknown function of the variables (distance between devices, multipath effects, interference from other devices). The radio can be used in any environment,​ where the relationship between these variables is unknown. Further, we do not know which variable will predominate. We do not even know what the interference will look like. If the interference is bursty, then quicker packets (higher rates) have a better chance of getting through in the gaps. Given the unknown nature of the environment,​ we decided that performance at a particular rate has to be considered as being independant of performance at a different rate. 
  
-Currently, there Since the relationship between these variables is not known we decided to take a [[http://​dictionary.reference.com/​search?​q=heuristic|heuristic]] approach, ​where the approach is "​pertaining to, or based on experimentation,​ evaluation, or trial-and-error methods"​. ​+Since the relationship between these variables is not known we decided to take a [[http://​dictionary.reference.com/​search?​q=heuristic|heuristic]] approach, ​meaning ​"​pertaining to, or based on experimentation,​ evaluation, or trial-and-error methods"​. ​
  
 The implementation of minstrel provides a rate table for each of the remote nodes being communicated with. This rate table is  found in the debugfs directory, and shows some interesting things. Sometimes, the 11mbit rate is more likely to succeed, or has a higher throughput, than the the 2mbit rate.  The implementation of minstrel provides a rate table for each of the remote nodes being communicated with. This rate table is  found in the debugfs directory, and shows some interesting things. Sometimes, the 11mbit rate is more likely to succeed, or has a higher throughput, than the the 2mbit rate. 
Line 120: Line 120:
  
 <​code>#​ mount -t debugfs debugfs /​sys/​kernel/​debug/</​code>​ <​code>#​ mount -t debugfs debugfs /​sys/​kernel/​debug/</​code>​
-Inside the <​code>/​sys/​kernel/​debug/​ieee80211/​phy0/​stations/</​code> ​ directory there will be  subdirectories,​ where the subdirectory corresponds to each node that  we are associated with. The name of the subdirectory is the mac address of the associated node. Take for example (from a box here) the directory <​code>/​sys/​kernel/​debug/​ieee80211/​phy0/​stations/​00:​02:​6f:​49:​41:​01</​code>​. There are different files +Inside the <​code>/​sys/​kernel/​debug/​ieee80211/​phy0/​stations/</​code> ​ directory there will be  subdirectories,​ where the subdirectory corresponds to each node that  we are associated with. The name of the subdirectory is the mac address of the associated node. Take for example (from a box here) the directory <​code>/​sys/​kernel/​debug/​ieee80211/​phy0/​stations/​00:​02:​6f:​49:​41:​01</​code>​. There are 27 different files 
  
  
 <​code>​agg_status ​       report of different parameters for the remote station <​code>​agg_status ​       report of different parameters for the remote station
 +beacon_loss_count
 +connected_time
 +current_tx_rate
 +dev
 +driver_buffered_tids
 flags             Auth, Assoc, ps authorized preamble, wme, wds, mfp flags             Auth, Assoc, ps authorized preamble, wme, wds, mfp
 +ht_capa
 inactive_ms ​      time (ms) since received a last packet inactive_ms ​      time (ms) since received a last packet
 +last_ack_signal
 +last_rx_rate
 last_seq_ctrl ​    for each RX q, last rx seq/frag number from the remote station last_seq_ctrl ​    for each RX q, last rx seq/frag number from the remote station
 +last_signal
 num_ps_buf_frames number of ps frames to transmit to the remote station num_ps_buf_frames number of ps frames to transmit to the remote station
-rc_stats ​         A table of loss/​success rates for each data rates</​code>​+rc_stats ​         A table of loss/​success rates for each data rates 
 +rx_bytes 
 +rx_dropped 
 +rx_duplicates 
 +rx_fragments 
 +rx_packets 
 +tx_bytes 
 +tx_filtered 
 +tx_fragments 
 +tx_packets 
 +tx_retry_count 
 +tx_retry_failed 
 +vht_capa</​code>​
 The most interesting file is the <​code>​rc_stats</​code>​ file, as it contains the working information that Minstrel uses to determine the rate for the next packet, and is a report on which rates  work well/badly. While developing Minstrel, the following command: ​ The most interesting file is the <​code>​rc_stats</​code>​ file, as it contains the working information that Minstrel uses to determine the rate for the next packet, and is a report on which rates  work well/badly. While developing Minstrel, the following command: ​
  
Line 160: Line 181:
       * This succ/​attempt reports how many packets were sent (and number of successes) in the last time interval. ​       * This succ/​attempt reports how many packets were sent (and number of successes) in the last time interval. ​
       * Finally, the global number of success and attempts (that is, since the remote node became associated with us). From looking at this table, we  see that almost all of the data packets have been sent at 54Mbits/​sec. The total packet count reports the number of packets that have been processed by minstrel (modulo 10000). This indicates if data has been flowing. ​       * Finally, the global number of success and attempts (that is, since the remote node became associated with us). From looking at this table, we  see that almost all of the data packets have been sent at 54Mbits/​sec. The total packet count reports the number of packets that have been processed by minstrel (modulo 10000). This indicates if data has been flowing. ​
- 
en/developers/documentation/mac80211/ratecontrol/minstrel.txt · Last modified: 2016/01/12 08:07 by Johannes Berg