4

I need to evaluate the performance of a few wireless cards at different bitrates. I found out that "minstrel" algorithm continuously adjusts this rate.

  1. Can someone point me to 'how I can manually set the bit-rate for these wireless cards'?

NOTE: I used

iwconfig wlan0 rate 54M fixed

but that was of no use.

(Please see https://superuser.com/questions/870779/iwlist-wlan0-bitrate-says-unknown-bit-rate-information/)

  1. Is this of any help to me?

    CONFIG_MAC80211_HAS_RC=y

1 Answers1

4

1) The command

iwconfig wlan0 rate 54M fixed

is inefficient[1] since Linux kernel itself invocates one of the two default rate control algorithms:

  1. minstrel (and/or minstrel_ht)
  2. PID

You can verify which was chosen for your interface by checking the output of 'dmesg'.

In case the algorithm is 'minstrel/minstrel_ht', to manually set the rates, do the following from the terminal (as a root user)

# echo 'index' > /sys/kernel/debug/ieee80211/phy0/rc/fixed_rate_idx 

where the 'index' is an allowed 'rate index'. You can try small integers. This adjusts the rate to some fixed value in a few seconds.

References: http://lxr.free-electrons.com/source/net/mac80211/rc80211_minstrel.h#L113

[1] I need someone to comment on this 'inefficiency'.

2) The switch

CONFIG_MAC80211_HAS_RC=y (and similar switches around it in the 'kernel .config file')

can be played with. However,

Failed to select rate control algorithm

is one message I found in 'dmesg' output once I did that and no wireless interfaces worked. I believe there's a dependency on this 'rate control' algorithm in the ath*k drivers. I would like to know if this can be avoided somehow.

Acknowledgements: Thanks to @bcopeland and @johill at #linux-wireless for the guidance all the way!