Linux – Resetting a queue discipline back to the default pfifo_fast one

linuxtc

I'm trying to temporarily set a rate-limited queue discipline and then remove it a bit later:

# /sbin/tc qdisc add dev eth1 root tbf rate 600kbit latency 50ms burst 1540
# /sbin/tc qdisc del dev eth1 root

Unfortunately, this entirely removes the queue discipline and prevents outgoing data transfers from working after the queue is deleted.

I was hoping to be able to reset the queue discipline back to the default one:

qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

However it doesn't look like that pfifo_fast qdisc can be created manually:

# /sbin/tc qdisc add dev eth1 root pfifo_fast
qdisc 'pfifo_fast' does not support option parsing

The work-around I found is to create a new simple queue discipline:

# /sbin/tc qdisc add dev eth1 root prio

However, I was wondering how to reset this back to the real default without rebooting.

Best Answer

to remove and add a new queue discipline:

tc qdisc del dev eth1 root
tc qdisc add dev eth1 root pfifo

or if a queue discipline is already in place you can replace it directly:

tc qdisc replace dev eth1 root pfifo
Related Topic