madwifi-ng a regulace výkonu

Asi před 14 dny se v madwifi-devel konferenci objevila zmínka o patchi na regulaci výkonu pro madwifi-ng. Posílal jsem informaci na CZFree forum. Zatím nikdo nezpochybnil ani nepotvrdil funkčnost regulace na 5GHz.

Pro otestování stačí aplikovat tento patch od Wang Wenjuan.

static int
ieee80211_ioctl_siwtxpow(struct net_device *dev,
    struct iw_request_info *info,
    struct iw_param *rrq, char *extra)
{
 struct ieee80211vap *vap = dev->priv;
 struct ieee80211com *ic = vap->iv_ic;
 int fixed, disabled;

 fixed = (ic->ic_flags & IEEE80211_F_TXPOW_FIXED);
 disabled = (fixed && vap->iv_bss->ni_txpower == 0);
 if (rrq->disabled) {
  if (!disabled) {
   if ((ic->ic_caps & IEEE80211_C_TXPMGT) == 0)
    return -EOPNOTSUPP;
   ic->ic_flags |= IEEE80211_F_TXPOW_FIXED;
   vap->iv_bss->ni_txpower = 0;
   goto done;
  }
  return 0;
 }
 if (rrq->fixed) {
  if ((ic->ic_caps & IEEE80211_C_TXPMGT) == 0)
   return -EOPNOTSUPP;
  if (rrq->flags != IW_TXPOW_DBM)
   return -EOPNOTSUPP;
 ic->ic_txpowlimit= 2*rrq->value;/*add this*/
//vap->iv_bss->ni_txpower = 2*rrq->value;/*delete this*/
  ic->ic_flags |= IEEE80211_F_TXPOW_FIXED;
 } else {
  if (!fixed)  /* no change */
   return 0;
  ic->ic_flags &= ~IEEE80211_F_TXPOW_FIXED;
 }
done:
 return IS_UP(ic->ic_dev) ? -ic->ic_reset(ic->ic_dev) : 0;
}

Patch jsem zkoušel na madwifi-ng-r1392-20060109 a PCMCIA Atheros kartě NEC Aterm WL54AG v master mode na 2.4GHz proti notebooku s Orinoco Silver PCMCIA kartou.

atheros:~# wlanconfig ath0 create wlandev wifi0 wlanmode ap
ath0
atheros:~# iwconfig ath0 essid test
atheros:~# ifconfig ath0 192.168.1.1 netmask 255.255.255.0
atheros:~# iwconfig ath0 txpower 17

orinoco:~# iwconfig eth0
eth0      IEEE 802.11b  ESSID:"test"  Nickname:"HERMES I"
          Mode:Managed  Frequency:2.417 GHz  Access Point: xx:xx:xx:xx:xx:xx
          Bit Rate:11 Mb/s   Sensitivity:1/3
          Retry limit:4   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=54/92  Signal level=-44 dBm  Noise level=-97 dBm
          Rx invalid nwid:0  Rx invalid crypt:18  Rx invalid frag:8
          Tx excessive retries:2  Invalid misc:0   Missed beacon:0

atheros:~# iwconfig ath0 txpower 0

orinoco:~# iwconfig eth0
eth0      IEEE 802.11b  ESSID:"test"  Nickname:"HERMES I"
          Mode:Managed  Frequency:2.417 GHz  Access Point: xx:xx:xx:xx:xx:xx
          Bit Rate:11 Mb/s   Sensitivity:1/3
          Retry limit:4   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=42/92  Signal level=-56 dBm  Noise level=-98 dBm
          Rx invalid nwid:0  Rx invalid crypt:18  Rx invalid frag:8
          Tx excessive retries:2  Invalid misc:0   Missed beacon:0

Síla signálu během testů držela stále na stejné úrovni. Bez aplikace patche nedošlo ke změně síly signálu vubec. Regulaci jsem otestoval také v managed mode proti XI-626 s HostAPem v master mode a též došlo ke změně síly signálu. Během všech testů byly počítače blízko sebe, rozdíl v dBm proto nelze brát jako hodnotu ukazující rozptyl regulace.

Written on January 21, 2006