Estou tentando ajustar o tamanho do buffer de recepção e transmissão UDP. De acordo com as minhas necessidades de aplicação em tempo real, eu preciso configurar o buffer Tx como 6 bytes e o buffer Rx como 22 bytes. Estou executando o Angstrom em um processador ARM A9. (Altera ciclone v soc). O cliente e o servidor estão se comunicando via Wi-Fi no modo ad hoc.
root@cyclone5:/proc/sys/net/core# cat rmem_max
163840
root@cyclone5:/proc/sys/net/core# sysctl -w rmem_max=22
sysctl: cannot stat /proc/sys/rmem_max: No such file or directory
O arquivo está localizado no caminho /proc/sys/net/core
, mas o stat
está procurando pelo arquivo no caminho /proc/sys/
Eu também tentei o seguinte:
root@cyclone5:/proc/sys/net/core# sysctl -w net.core.rmem_max=22
sysctl: setting key "net.core.rmem_max": Invalid argument
net.core.rmem_max = 22
Alguém tem uma mão sobre este problema?
O propósito de ajustar os tamanhos de buffer é porque, eu não quero enfileirar os pacotes nos buffers. Não há problema em sobrescrever o pacote antigo com novos pacotes, toda vez que a chamada para recvfrom
e sendto
é feita.
Editar:
Um pouco mais de depuração para este problema, descobri que os bytes mínimos que posso definir para este buffer são 2240 bytes.
root@cyclone5:/proc/sys/net/core# echo 2238 > rmem_max
-sh: echo: write error: Invalid argument
root@cyclone5:/proc/sys/net/core# echo 2239 > rmem_max
-sh: echo: write error: Invalid argument
root@cyclone5:/proc/sys/net/core# echo 2240 > rmem_max
root@cyclone5:/proc/sys/net/core# cat rmem_max
2240
Existe alguma maneira de reduzir esse número para apenas 22 bytes?