Bad host-vased AP performace -- and qouple of questions about FreeBSD WiFi stack tuning

Bernhard Schmidt bschmidt at freebsd.org
Tue Aug 9 13:12:17 UTC 2011


On Tuesday, August 09, 2011 14:34:02 Lev Serebryakov wrote:
> Hello, Bernhard.
> You wrote 9 августа 2011 г., 15:32:15:
> 
> > On Tuesday, August 09, 2011 12:20:33 Lev Serebryakov wrote:
> >> Hello, Adrian.
> >> You wrote 9 августа 2011 г., 14:14:19:
> >> 
> >> > txpower 15 is actually 15dBm. Ie, try "ifconfig wlan0 txpower 1.5"  
> >> Bernhard Schmidt says, that iwn(4) uses half-dBm units and "txpower
> >> 30" on iwn(4) means 15dBm physically.
> 
> > The ifconfig txpower command gets its argument in 0.5 dBm steps. That
> > means if you want to set 15dBm you have to use 30, as 30 * 0.5 = 15.
> > This is because someone might want to set eg 7.5 dBm but we still
> > want use an integer to store that value.
>    It is in contradiction to what Adrian wrote, that "ifconfig" takes
>  TRUE dBm as argument, and that "15.5" is allowed. Even more, it is in
>  contradiction with ifconfig source code (ifieee80211.c:978 on
>  8-STABLE) and with practice:
> 
> gateway# ifconfig wlan0
> wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>          <SKIPPED>
>         txpower 30 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs
> gateway# ifconfig wlan0 txpower 20.5
> gateway# ifconfig wlan0
> wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>          <SKIPPED>
>         txpower 20.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs
> gateway# ifconfig wlan0 txpower 30
> gateway# ifconfig wlan0
> wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>          <SKIPPED>
>         txpower 30 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs
> gateway# ifconfig wlan0 txpower 20.6
> ifconfig: invalid tx power (must be .5 dBm units)
> gateway#
> 
>   So, at COMMAND LINE it seems, that "txpower" is TRUE dBm, 1 unit of
>  txpower == 1dBm.
> 
>   Yes, INTERNAL representation is integer with "1 unit = 0.5 dBm", but
> command line and output txpower seems to be true dBms

Yeah, sorry, my fault. I got the formula wrong, it is
<internal stored limit> = <what you set> * 2 or
<what you set> = <internal stored limit> * 0.5

> > The 30 you are seeing is probably coming somewhere else, I assume
> > it is the regulatory limit allowed by that channel. Try playing
> > with different regdomains/countries.
>   30 is a max in regdomains.xml

That is what I expected, basically ifconfig restricts what you can
set based on the regulatory limit, the driver then applies its
restrictions ontop of that. Point is, the driver limits aren't
exported to user space (ifconfig).

-- 
Bernhard


More information about the freebsd-wireless mailing list