Ответ 1
Что касается, если этот код может работать правильно, я сомневаюсь. Это изменение вызовет проблемы, например:
dev_queue_xmit()
-> enqueue to QoS (I assume you mean Qdisc)
-> rtl8139_start_xmit()
-> dev_queue_xmit() # creating a loop
В настоящее время нет возможности "ifconfig" узнать "количество отбрасываемых пакетов (из-за QoS)", потому что "ifconfig" считывает статистику из /proc/net/dev, и эти статистические данные не содержат статистику QoS, но только сам драйвер NIC.
Но вы можете узнать "количество пакетов папок (из-за QoS)", иначе. В исходном коде ядра есть:
rtnl_register(PF_UNSPEC, RTM_GETQDISC, tc_get_qdisc, tc_dump_qdisc, NULL); # it fill "gnet_stats_queue", and there is a drop counter internally.
который должен сбросить статус Qdisc, включая номер капли из-за перегрузки. Это интерфейс для Advanced user-level admin tool (а не "ifconfig" ) для получения более подробной информации через сообщение rtlink, в дополнение к "/proc/net/dev". Тем не менее, я не уверен, что такое продвинутый пользовательский администратор (не знакомый с ними). Может быть, команда "ip" может?