/interface/ethernet/switch/qos/tx-manager/queue
queue
每个端口有八个发送队列。分配的 Tx Manager 控制数据包入队并调度发送顺序。每个队列可以具有严格优先级(最高流量类的数据包始终先发送),也可以分组进行加权轮询发送调度。
interface/ethernet/switch/qos/tx-manager/queue
Syscap: rbswitch and crs_prestera Type: Directory
每个端口有八个发送队列。分配的 Tx Manager 控制数据包入队并调度发送顺序。每个队列可以具有严格优先级(最高流量类的数据包始终先发送),也可以分组进行加权轮询发送调度。
创建 Tx Manager 会自动创建所有八个相应的队列调度器。
危险
在卸载过程中更改 Tx Manager 或队列的任何属性会完全停止流量入队和发送。设备转发流量时预计会出现临时数据包丢失。 危险
在某些设备型号上,由于硬件限制,在一个队列上启用 ECN 会打开所有队列上支持 ECN 的数据包的 CE 标记。在这种情况下,尽管
ecn=no,仍会显示ecn-actual=yes。 | 标志 | 名称 | 描述 | | --- | --- | --- | |*| default | | |I| inactive | | |H| hw-offloaded | |
| 参数 | 类型 | 描述 |
|---|---|---|
schedule | enum (strict-priority | low-priority-group | high-priority-group) { strict-priority:0, low-priority-group:1, high-priority-group:2 } | 按流量类的严格优先级或组内轮询调度发送。 - strict-priority - 相应队列中的数据包始终先被调度,然后再处理较低流量类。当前队列为空之前,较低流量类的数据包不会发送。 - high-priority-group - 组内的所有队列使用加权轮询原理一起调度。例如,如果 TC5 权重为 4、TC4 为 3、TC3 为 2,则调度器在单轮中发送 4 个来自 queue5 的数据包、3 个来自 Q4 的数据包和 2 个来自 Q3 的数据包。为降低延迟,每一轮会在组内所有队列之间进行 "切片"。换句话说,上述示例中每一轮的数据包顺序为 "Q5, Q4, Q3, Q5, Q4, Q3, Q5, Q4, Q5"。 - low-priority-group - 逻辑与 high-priority-group 类似,但仅在 high-priority-group 中的所有队列为空时才调度 low-priority-group。 |
weight | num | 如果流量类属于调度组,则为其权重值。在严格优先级调度的情况下不使用此字段。 |
queue-buffers | alt { queue-buffers-pct: num [ .. 100] , queue-buffers-byte: num [1536 .. 67108864] } | 分配给此队列的硬件发送缓冲区数量。除 auto 之外的任何值都不会按端口数缩放,即该值会在连接到 Tx Manager 的端口之间分配。以百分比表示时,它表示 tx-manager 的 queue-buffers 值的百分比。 |
use-shared-buffers | bool | 当 queue-buffers 已满时,允许队列使用共享缓冲池。如果队列已满且共享缓冲区被禁用,数据包会被丢弃。如果启用了共享缓冲区,队列最多可从共享池使用 shared-packet-cap 或 shared-poolX-packet-cap(详情请参阅 QoS 设置)个数据包。 |
wred | bool | 为给定队列启用/禁用 加权随机早期检测。 |
ecn | bool | 启用/禁用发送数据包的 ECN 标记。 |
| 只读参数 | 类型 | 描述 |
|---|---|---|
tx-manager | enum | 关联的 Tx Manager |
traffic-class | num | 调度器控制的流量类(tc0..tc7)和相应端口队列(queue0..queue7)。 |
wred-actual | bool | 实际 WRED 值 |
ecn-actual | bool | 实际 ECN 值 |