1 MQPRIO
MQPRIO qdisc 是一个简单的队列规则,可以通过优先级以及优先级对应的流量等级,将不同流量映射到硬件队列的区间。连续的流量等级可以1对1的映射到硬件的队列上。
使用方法如下:
tc qdisc ... dev dev ( parent classid | root) [ handle major: ] mqprio [ num_tc tcs ] [ map P0 P1 P2... ] [ queues count1@offset1 count2@offset2 ... ] [ hw 1|0 ] [ mode dcb|channel] ] [ shaper dcb| [ bw_rlimit min_rate min_rate1 min_rate2 ... max_rate max_rate1 max_rate2 ... ]]
num_tc:使用的流量等级,最大支持16个等级
map: 将VLAN优先级 (VLAN PRI) 0 -15映射到特定的流量等级
queues: 为每个流量等级提供队列的数量和范围。每个流量等级的队列范围不能重叠且必须连续
hw: 设置为1支持硬件卸载,设置为0配置为仅在软件使用用户指定的值
举个例子:(来源open62541 pub/sub TSN)
sudo tc qdisc add dev <I210 interface> parent root mqprio num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@1 2@2 hw 0
[num_tc 3] 定义3个流量等级
[map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2]
| PRI |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
| TC |
2 |
2 |
1 |
0 |
2 |
2 |
2 |
2 |
2 |

本文介绍了Linux中的三种流量管理qdisc,包括MQPRIO的优先级映射、ETF的早到时间调度和ETS的周期性门控列表,以及TAPRIO在IEEE 802.1Qbv中的实现,重点阐述了它们在工业控制中确保数据传输确定性和周期性的重要性。
最低0.47元/天 解锁文章
4795





