基于TC队列的过滤¶
TC 可以用于将流量定向到一组队列或发送和接收端的单个队列。
在发送端
使用动作 skbedit priority 实现将流量定向到一组队列的 TC 过滤器,用于 Tx 优先级选择。当使用 mqprio 配置队列集时,优先级映射到流量类别(一组队列)。
TC 过滤器使用动作 skbedit queue_mapping $tx_qid 将流量定向到发送队列。用于发送队列的动作 skbedit queue_mapping 仅在软件中执行,无法卸载。
同样,在接收端,支持以下两种用于选择队列集和/或单个队列的过滤器
TC flower 过滤器使用 'hw_tc' 选项将传入流量定向到一组队列。 hw_tc $TCID - 指定一个硬件流量类别,将匹配的数据包传递到该类别。TCID 的范围是 0 到 15。
带有动作 skbedit queue_mapping $rx_qid 的 TC 过滤器选择一个接收队列。用于接收队列的动作 skbedit queue_mapping 仅在硬件中支持。多个过滤器可能会在硬件中竞争队列选择。在这种情况下,硬件流水线根据优先级解决冲突。在 Intel E810 设备上,将流量定向到队列的 TC 过滤器比分配队列的流导向器过滤器具有更高的优先级。哈希过滤器的优先级最低。