# uname -r
4.7.5-200.fc24.x86_64+debug
# tc -s -d qdisc show dev ens3
qdisc mq 8001: root
Sent 44589 bytes 340 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
qdisc fq_codel 0: parent 8001:1
limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn Sent 90 bytes 1 pkt (dropped 0, overlimits 0 requeues 0)
[...]
qdisc fq_codel 0: parent 8001:2
limit 10240p flows 1024 quantum 1514 target 5.0ms interval
100.0ms ecn Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) [...]
-> При попытке заменить ...
# tc qdisc replace dev ens3 parent 8001 handle :1 sfq
Error: argument ":5" is wrong: invalid qdisc ID
# tc qdisc replace dev ens3 handle 8001:1 sfq
RTNETLINK answers: Invalid argument
# tc qdisc replace dev ens3 parent 8001 handle 1 sfq
RTNETLINK answers: No such file or directory
# tc qdisc replace dev ens3 parent 8001:1 sfq
RTNETLINK answers: No such file or directory
Конкретный qdisc здесь не рассматривается. Хотя это имеет смысл, особенно для старых ядер, где qdisc по умолчанию - FIFO!
Согласно коду должно быть возможно:
http://lxr.free-electrons.com/source/net/sched/sch_api.c#L1214
Избавляя вас тривиальные пути кода tc. Он просто создает сообщение netlink к ядру из ввода cli.
Я еще не проследил, может быть, простой. :)
Кто нибудь менял листик в экземпляре multiq? Я что-то не так понимаю при создании вызова cli?
Что ж, в целом это можно решить, изменив qdisc по умолчанию, поскольку mq инициализирует его, оставив qdisc по умолчанию. Так ...
sysctl -w net.core.default_qdisc=<your_qdisc>
tc qdisc replace dev <your iface> root mq
Подтверждение ...
tc -s qdisc show <your iface> ens3
Хотя индивидуальная настройка была бы прелестью. Я мог бы прийти и реализовать это когда-нибудь, когда возникнет необходимость. :)