I am a beginner with Linux TC. I cannot figure out why a certain qdisc which I added to the root of an interface cannot be deleted by specifying its handle.
Yes, I know I can delete it using the root
specifier if it's attached to the root of the interface, but I should also be able to delete it by handle.
root@pc:/home/pc# tc qdisc add dev enp0s3 root netem
root@pc:/home/pc# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc netem 8005: dev enp0s3 root refcnt 2 limit 1000
root@pc:/home/pc# tc qdisc delete dev enp0s3 handle 8005
RTNETLINK answers: Invalid argument
root@pc:/home/pc# tc qdisc delete dev enp0s3 root
root@pc:/home/pc#
In the above sample, a netem
qdisc was added, and it's handle is shown as 8005. I try to delete it by specifying that handle. This doesn't work. But obviously, specifying root
as the handle works.
Why?