将队列规则重置回默认的 pfifo_fast 规则?

将队列规则重置回默认的 pfifo_fast 规则?

我正在尝试临时设置一个速率限制的队列规则,然后稍后将其删除:

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

不幸的是,这完全消除了队列规则,并阻止了队列删除后传出的数据传输。

我希望能够将队列规则重置为默认值:

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

但事实并非如此pfifo_fast可以手动创建 qdisc:

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

我发现的解决方法是创建一个新的简单队列规则:

# /sbin/tc qdisc add dev eth1 root prio

然而,我想知道如何将其重置回真实默认无需重启。

答案1

删除并添加新的队列规则:

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

或者如果队列规则已经到位,你可以直接替换它:

tc qdisc replace dev eth1 root pfifo

答案2

答案3

pfifo_fast 的手册页 (man tc-pfifo_fast) 说接口自动附加 pfifo_fast qdisc - 当您添加不同的 qdisc 然后删除此 qdisc 时,pfifo_fast 将自动重新投入使用。

这表明 OP 的设置中存在问题。

已测试:

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

相关内容