Ядро Linux предоставляет общий протокол NETLINK «netdev» (семейство) для запроса информации о конфигурации очереди NIC RX и TX, а также сведений об экземпляре NAPI, таких как IRQ для конкретной очереди. Преимущество этого протокола «netdev» заключается в том, что он позволяет избежать проблем с /sys/class/net, который привязан к определенному сетевому пространству имен и времени монтирования. Кроме того, этот API предоставляет информацию, недоступную через ethtool ioctls или протокол ethtool NETLINK, например правильные идентификаторы очередей (индексы).
Я использую команду NETDEV_CMD_QUEUE_GET; однако это не возвращает никакой информации о сетевых интерфейсах, которые находятся в рабочем состоянии (ни включенном, ни неизвестном). Попытка «GET» информации об очереди для определенного NETDEV_A_QUEUE_IFINDEX завершается успешно, но не дает никакой информации об очереди, поскольку netdev_nl_queue_dump_one пропускает все, что не имеет IFF_UP.
Есть ли (другой) способ получить информацию об очереди (и не быть sysfs или ethtool) для сетевого интерфейса, который (пока) не работает, или что я здесь делаю неправильно? Почему netdev_nl_queue_dump_one пропускает отключенные сетевые устройства?
Подробнее здесь: https://stackoverflow.com/questions/786 ... or-netdevs