Zurücksetzen einer Warteschlangendisziplin auf die Standarddisziplin pfifo_fast?

13

Ich versuche, vorübergehend eine frequenzbegrenzte Warteschlangendisziplin festzulegen und sie dann etwas später zu entfernen:

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

Leider wird dadurch die Warteschlangendisziplin vollständig aufgehoben und es wird verhindert, dass ausgehende Datenübertragungen funktionieren, nachdem die Warteschlange gelöscht wurde.

Ich hatte gehofft, die Warteschlangendisziplin wieder auf die Standarddisziplin zurücksetzen zu können:

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

Es sieht jedoch nicht so aus, als ob pfifo_fast qdisc manuell erstellt werden kann:

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

Der Workaround, den ich gefunden habe, besteht darin, eine neue einfache Warteschlangendisziplin zu erstellen:

# /sbin/tc qdisc add dev eth1 root prio

Allerdings habe ich mich gefragt, wie ich dies ohne Neustart auf den tatsächlichen Standard zurücksetzen kann .

François Marier
quelle

Antworten:

11

So entfernen Sie eine neue Warteschlangendisziplin und fügen sie hinzu:

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

oder wenn eine Warteschlangendisziplin bereits vorhanden ist, können Sie diese direkt ersetzen:

tc qdisc replace dev eth1 root pfifo
garuse
quelle
1
Dies wird nicht auf pfifo_fast zurückgesetzt, sondern nur auf pfifo, was anders ist. Der Kommentar von OP darüber, was passiert, wenn Sie versuchen, dies mit '_fast' zu tun, ist relevant.
Thomas Thorogood
3

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

tc qdisc del dev eth1 root
David Kemp
quelle
Wie ich in der Frage festgestellt habe, hat mich die Dokumentation zu dieser Annahme veranlasst, aber sie funktioniert unter Debian / Ubuntu nicht, da sie die Warteschlange vollständig entfernt, ohne die Standardwarteschlange wieder hinzuzufügen.
Francois Marier
es funktioniert für mich am Ubuntu 12.04
Fireant
Funktioniert auch für Ubuntu Vivid. Nach dem Löschen der qdisc wird die Standardeinstellung pfifo_fast wiederhergestellt.
Beli
2

Die Manpage für pfifo_fast (man tc-pfifo_fast) besagt, dass Schnittstellen automatisch die qdisc pfifo_fast angehängt haben. Wenn Sie dann eine andere qdisc hinzufügen und diese löschen, wird pfifo_fast automatisch wieder in Betrieb genommen.

Dies deutet darauf hin, dass im OP-Setup ein Fehler aufgetreten ist.

Getestet mit:

$ uname -a
Linux debian-testing-vm 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
Omega-Waffe
quelle