Fel*_*lix 12 linux wireless-networking linux-kernel debian-jessie
我使用外部 23dBm 天线和带有 Atheros AR9285 芯片的 Ubiquiti SR71-E 在大约 150m 的距离内连接到 eduroam。我的系统是 Debian Jessie 服务器 - 因此连接由 wpa_supplicant 管理。身份验证超时导致连接稳定性问题。迁移到 backports 内核 4.7.0 解决了这些问题。
但是现在内核正在减少(思科)AP 所宣传的 tx-power。该函数可以在“has_80211h_pwr”和“has_cisco_pwr”下找到
http://lxr.free-electrons.com/source/net/mac80211/mlme.c
问题是
iwconfig wlan0 txpower XX
iw dev wlan0 set txpower fixed XXXX
只允许将 txpower 设置在 0 和新限制之间。由于 AP 通告了 8dbm 的限制,因此连接被迫达到 1 Mb/s,并且仍然有很高的“Tx 重试次数”和“无效杂项”计数。
小智 3
这是一个补丁,当将 txpower 设置为“固定”时,该补丁应该忽略来自 AP 的烦人的 802.11h 帧。
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index d6a1a46..f3ee9ab 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -61,7 +61,8 @@ bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata)
if (sdata->user_power_level != IEEE80211_UNSET_POWER_LEVEL)
power = min(power, sdata->user_power_level);
- if (sdata->ap_power_level != IEEE80211_UNSET_POWER_LEVEL)
+ if (sdata->ap_power_level != IEEE80211_UNSET_POWER_LEVEL &&
+ sdata->vif.bss_conf.txpower_type != NL80211_TX_POWER_FIXED)
power = min(power, sdata->ap_power_level);
if (power != sdata->vif.bss_conf.txpower) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3449 次 |
| 最近记录: |