2013-09-06 6 views
4

Я отлаживаю некоторый сетевой драйвер под Linux. В некотором месте этого драйвера есть функция netif_stop_queue(). Он перестает отправлять пакеты по ядру моему драйверу, и все в порядке.очереди сетевого стека Linux

Интересно, как долго ядро ​​может размещать эти пакеты до тех пор, пока они не начнут их бросать? Является ли это параметром txqueuelen в ifconfig, который указывает, сколько пакетов, заданных интерфейсом, может стоять в очереди или есть еще одна очередь в ядре?

+1

Смотрите так: 'Qdisc'. IIRC, он обрабатывает все пакеты, которые поступают на устройство. –

ответ

2

Поле «без знака длиной tx_queue_len» по структуре net_device netdevice.h, Line 1143 контролирует максимальное количество кадров, которые могут быть поставлены в очередь в очереди передачи устройства

И да, это тот же параметр в Ifconfig. Вы можете установить длину очереди с помощью:

ifconfig <interface> txqueuelen <size> 
Ex: 
ifconfig eth0 txqueuelen 10000 
Смежные вопросы