15

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.

François Marier
  • 381
  • 2
  • 3
  • 12

3 Answers3

13

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
garuse
  • 231
  • 2
  • 4
  • 1
    This doesn't reset to pfifo_fast, only pfifo, which is different. OP's comment about what happens if you try to do this with '_fast' is relevant. – Thomas Thorogood Feb 18 '15 at 19:45
5

from http://www.knowplace.org/pages/howtos/traffic_shaping_with_linux/examples.php:

tc qdisc del dev eth1 root
Avamander
  • 193
  • 1
  • 11
David Kemp
  • 51
  • 1
  • 2
  • As I stated in the question, that's what the documentation lead me to believe, but it doesn't work on Debian/Ubuntu since it removes the queue entirely without adding back the default one. – François Marier Mar 18 '13 at 20:19
  • it works for me on ubuntu 12.04 – fireant Mar 17 '15 at 14:11
  • Works for mee-too on Ubuntu Vivid. After deleting the qdisc, it returns to the default pfifo_fast. – Beli Jul 22 '15 at 09:54
2

The man page for pfifo_fast (man tc-pfifo_fast) says that interfaces automatically have the pfifo_fast qdisc attached - when you then add a different qdisc and then delete this qdisc, pfifo_fast will automatically go back into service.

This suggests something has broken in the OP's setup.

Tested with:

$ uname -a
Linux debian-testing-vm 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
slm
  • 7,355
  • 16
  • 54
  • 72