Linux网络堆栈队列

Linux网络堆栈队列,linux,linux-kernel,linux-device-driver,Linux,Linux Kernel,Linux Device Driver,我正在linux下调试一些网络驱动程序。在这个驱动程序的某些地方有netif\u stop\u queue()函数。它停止通过内核向我的驱动程序发送数据包,一切正常 我想知道内核可以将这些数据包排队多久,直到它开始丢弃它们?是ifconfig中的txqueuelen参数告诉给定接口中有多少数据包可以排队,还是内核中还有另一个队列?网络设备结构上的“unsigned long tx_queue_len”字段控制设备传输队列中可以排队的最大帧数 是的,它与ifconfig中的参数相同。您可以使用以下

我正在linux下调试一些网络驱动程序。在这个驱动程序的某些地方有netif\u stop\u queue()函数。它停止通过内核向我的驱动程序发送数据包,一切正常

我想知道内核可以将这些数据包排队多久,直到它开始丢弃它们?是ifconfig中的txqueuelen参数告诉给定接口中有多少数据包可以排队,还是内核中还有另一个队列?

网络设备结构上的“unsigned long tx_queue_len”字段控制设备传输队列中可以排队的最大帧数

是的,它与ifconfig中的参数相同。您可以使用以下选项设置队列长度:

ifconfig <interface> txqueuelen <size>
Ex:
ifconfig eth0 txqueuelen 10000
ifconfig txqueuelen
前任:
ifconfig eth0 txqueuelen 10000

请参见
Qdisc
。IIRC,它处理所有发送到设备的数据包。