Sorte sua! Estou tentando criar um canal de baixo atraso para o vídeo. Todo método que eu tentei suprimir Acks (injeção de pacotes, QoS, noack_map 0x01) funciona, mas está reduzindo minha taxa de dados para 1 Mbps.
Você poderia tentar NoAck'ing um soquete ao invés de toda a interface (isto é C, eu tentei fazer isso via opção iptables ' set-tos
, mas não descobri como funciona):
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");
}
Ele dará ao seu soquete prioridade 6 (VI Vídeo) no campo QoS Control
do cabeçalho 802.11. Então use isto:
iw dev wlan0 set noack_map 0x00C0
para ativar o NoAck para este soquete. Esta deve ter sido a maneira correta de fazer isso, mas para mim a taxa de dados desses quadros NoAcked foi muito difícil para 1 Mbps, apesar de iw dev set bitrates
e iw dev set mcast_rate
. Talvez você tivesse mais sorte.