OpenWRT ноак и мсс скорость

416
LinuxUser

Поддерживаются ли разные скорости MCS при работе в режиме noack?

Контекст: я использую модемы ath9k + платы Compex WPQ864 (linux-ipq864). Я настроил одну из плат в качестве точки доступа, а другую - в качестве станции. Я соединил их на wlan и ping работах. Я пытаюсь отключить подтверждение с помощью:

iw dev wlan1 set noack_map 0xff 

И я попытался изменить ставки MCS, используя:

iw dev wlan1 set bitrates ht-mcs-5 7 

Но это работает как задумано, когда ack включен, но не имеет никакого эффекта, когда я выключаю ack, используя вышеупомянутую команду noack_map. И скорость всегда в 6 Мбит / с.

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 

Любая помощь приветствуется.

2
Просто из любопытства, почему вы используете режимы noack? Кстати, эти битрейты чрезвычайно плохи для выходного сигнала уровня мощности ** iw wlan1 station dump **. Tim_Stewart 4 года назад 0
Отключение подтверждения является абсолютным требованием для достижения цели всей системы. LinuxUser 4 года назад 0
Теперь мне очень любопытно: какова цель всей системы, которая требует отключения ack? И я думаю, вам придется прочитать исходный текст драйвера ath9k, чтобы найти ответ. Скорее всего, OpenWRT не повлияет на это. dirkt 4 года назад 1
Ох, все интересуются целью :) Это задержка, чувак! Иногда вы можете позволить себе потерять пакет, но не можете позволить себе застрять в потоке даже на несколько миллисекунд. Это увеличит дрожание и укусит вашу задницу, если вы делаете VoIP или что-то подобное. ogurets 4 года назад 0

1 ответ на вопрос

0
ogurets

Повезло тебе! Я пытаюсь создать канал с низкой задержкой для видео. Каждый метод, который я пытался подавить Acks (инъекция пакетов, QoS, noack_map 0x01), работает, но снижает скорость передачи данных до 1 Мбит / с.

Вы можете попробовать NoAck'ing один сокет вместо всего интерфейса (это C, я пытался сделать это с помощью set-tosопции iptables, но не выяснил, как это работает):

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"); } 

Это даст вашему сокету приоритет 6 (VI aka Video) в QoS Controlполе заголовка 802.11. Тогда используйте это:

iw dev wlan0 set noack_map 0x00C0 

включить NoAck для этого сокета. Это должен был быть правильный способ сделать это, но для меня скорость передачи данных этих кадров с нулевой задержкой была жестко зафиксирована до 1 Мбит / с, несмотря на iw dev set bitratesи iw dev set mcast_rate. Может быть, вам повезет.

Похожие вопросы