Changes between Version 3 and Version 4 of Internal/WinlabMadwifi/RateControl


Ignore:
Timestamp:
Nov 11, 2005, 9:38:56 PM (19 years ago)
Author:
zhibinwu
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/WinlabMadwifi/RateControl

    v3 v4  
    44General Information could be found in this [http://madwifi.org/wiki/UserDocs/RateControl link].
    55
    6 Rate control, or rate adaptation, is a technique to adapt PHY channel rate in sender node. With the help of either some explicit feedback from recever (ACK frames) or implicit information (RSSI), the sender infers channel quality and choose a proper modulation scheme for next outgoing packet to maintain acceptable BER(PER) performance.
     6Rate control, or rate adaptation, is a technique to adapt PHY channel rate in sender node. With the help of either some explicit feedback from recever (ACK frames) or implicit information (RSSI), the sender infers channel quality and choose a proper modulation scheme for next outgoing packet to maintain acceptable BER/PER/Throughput performance.
    77
    88Files involved for rate control:
     
    2020
    2121=== When the rate is determined? ===
    22 when a packet is xmitted, a rate has to be determined associate with this packet. This is done by ''ath_tx_start(struct net_device *dev, struct ieee80211_node *ni, struct ath_buf *bf, struct sk_buff *skb)'' function. A call to '''ath_rate_findrate''' will fill the pointer to '''txrate''' and tis rate will be passed into tx-descriptor.
     22when a packet is xmitted, a rate has to be determined associate with this packet. This is done by ''ath_tx_start(struct net_device *dev, struct ieee80211_node *ni, struct ath_buf *bf, struct sk_buff *skb)'' function. A call to '''ath_rate_findrate''' will fill the pointer to ''txrate'' and this rate will be passed into tx-descriptor.
    2323{{{
    24                         if (ic->ic_fixed_rate == -1) {
    25                                 /*
    26                                  * Data frames; consult the rate control module.
    27                                  */
    28                                 ath_rate_findrate(sc, an, shortPreamble, pktlen,
    29                                           &rix, &try0, &txrate);
    30                         }
    31                         else {
    32                                 rix = ic->ic_fixed_rate;
    33                                 try0 = ATH_TXMAXTRY; //XXX: should be configurabe
    34                                 if (shortPreamble)
    35                                         txrate = rt->info[rix].shortPreamble;
    36                                 else
    37                                         txrate = rt->info[rix].rateCode;
    38                         }
    39 
     24      if (ic->ic_fixed_rate == -1) {
     25               / * Data frames; consult the rate control module.
     26                 */
     27              ath_rate_findrate(sc, an, shortPreamble, pktlen,
     28                                 &rix, &try0, &txrate);
     29       }
     30       else {
     31                  rix = ic->ic_fixed_rate;
     32                  try0 = ATH_TXMAXTRY; //XXX: should be configuralbe
     33                  if (shortPreamble)
     34                        txrate = rt->info[rix].shortPreamble;
     35                  else
     36                        txrate = rt->info[rix].rateCode;
     37      }
    4038}}}
    4139