OpenWRT noack 和 mcs 速率

OpenWRT noack 和 mcs 速率

在 noack 模式下运行时是否支持不同的 MCS 速率?

语境:我正在使用 ath9k 调制解调器 + Compex WPQ864 (linux-ipq864) 主板。我已将其中一个主板配置为接入点,将另一个配置为站点。我已将它们连接到 wlan 上,ping 成功。我尝试使用以下命令关闭 ack:

iw dev wlan1 set noack_map 0xff

我尝试使用以下方法修改 MCS 速率:

iw dev wlan1 set bitrates ht-mcs-5 7

但是当 ack 开启时,这个功能可以正常工作,但是当我使用上面的 noack_map 命令关闭 ack 时,它不起作用。并且速率始终为 6Mbps。

iw wlan1 station dump 

显示以下输出:

inactive time:  570 ms
rx bytes:       190293
rx packets:     1700
tx bytes:       187747
tx packets:     1621
tx retries:     0
tx failed:      883
rx drop misc:   1
signal:         -37 [-44, -38] dBm
signal avg:     -36 [-43, -37] dBm
tx bitrate:     6.0 MBit/s
rx bitrate:     13.0 MBit/s MCS 1rx drop misc:   1
signal:         -37 [-44, -38] dBm
signal avg:     -36 [-43, -37] dBm
tx bitrate:     6.0 MBit/s
rx bitrate:     13.0 MBit/s MCS 1

任何帮助都将受到赞赏。

答案1

你真幸运!我正在尝试为视频创建一个低延迟通道。我尝试过的每种抑制 Acks 的方法(数据包注入、QoS、noack_map 0x01)都有效,但会使我的数据速率降至 1 Mbps。

您可以尝试对一个套接字而不是整个接口进行 NoAck(这是 C,我尝试通过 iptablesset-tos选项来执行此操作,但没有弄清楚它是如何工作的):

int priority = 262;  // Wifi QoS priority Video (VI)
if (setsockopt(s, SOL_SOCKET, SO_PRIORITY, (const char *)&priority, sizeof(priority)) < 0) {
    perror("setsockopt SO_PRIORITY");
}

QoS Control它会在802.11 标头字段中为您的套接字赋予优先级 6(VI 又名视频) 。然后使用以下命令:

iw dev wlan0 set noack_map 0x00C0

为该套接字启用 NoAck。这应该是正确的做法,但对我来说,尽管 和 ,这些 NoAcked 帧的数据速率仍然被硬性规定为 1 Mbps iw dev set bitratesiw dev set mcast_rate也许你会更幸运。

相关内容