Linux kernel 如何手动将数据包放入TX队列的头部?

Linux kernel 如何手动将数据包放入TX队列的头部?,linux-kernel,network-programming,kernel-module,nic,Linux Kernel,Network Programming,Kernel Module,Nic,据我所知,为了发送数据包,网络驱动程序将修改TDT(传输描述符尾部)以指向该数据包,NIC将从TDH(传输描述符头部)读取数据包,发送数据包并修改该TDH 我想要的是把一个数据包放到TX队列的头上。这是可以实现的吗?如果是,我怎么做 提前感谢。我认为,要做到这一点,您必须对NIC的驱动程序进行大量补丁 但是在linux中使用prioqdisc可以很容易地实现优先级排序(tcqdisc adddeveth0根句柄1:prio)。只需使用适当的TOS/DSCP标记标记您的高优先级数据包,并使用tc

据我所知,为了发送数据包,网络驱动程序将修改TDT(传输描述符尾部)以指向该数据包,NIC将从TDH(传输描述符头部)读取数据包,发送数据包并修改该TDH

我想要的是把一个数据包放到TX队列的头上。这是可以实现的吗?如果是,我怎么做


提前感谢。

我认为,要做到这一点,您必须对NIC的驱动程序进行大量补丁

但是在linux中使用prioqdisc可以很容易地实现优先级排序(
tcqdisc adddeveth0根句柄1:prio
)。只需使用适当的TOS/DSCP标记标记您的高优先级数据包,并使用
tc filter将其置于
flowid 1:1