添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1233877/dra821-cpsw-cbs-configuration-and-linux-standard-tc-cbs-interface

器件型号: DRA821

您好!

我们的一位客户对 CPSW CBS 支持有以下问题:

客户已经查看了基于信用的整形器(CBS)的文档 、并有一些问题...

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j7200/08_06_00_11/exports/docs/j7200/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW-CBS.html

首先,它看起来似乎驱动程序不支持 CBS、tc-CBS 的普通 Linux 接口 ,并且有自己的配置方式。 为什么不使用标准接口?

它似乎使用了 sysfs 接口和 mqprio qdisc 的"min_rate"和"max_rate"参数的组合。 尚不清楚这些 参数与802.1Qav 整形器参数的确切映射情况?

官方界面 tc-cbs 拥有直接 对应于预期参数的参数,但根本不清楚如何通过现有接口实现这些参数。

在"3.2.3.6.3.3.4.1.1节中增加了内容。 主机端口入口速率限制卸载、"设置了/sys/class/net/eth0/queues/tx-7/tx_maxrate sysfs 值、但该部分被描述为"入口速率限制"。 这意味着它作为策略器来限制接收速率、但参数名称为"TX_maxRate"、这意味着出口速率限制。 这是入口速率限制还是出口速率限制?  实验中、它似乎是出口限制。

下一节,"3.2.3.6.4.3.3.2.3.1.2. 交换机出口、以太网端口传输速率限制卸载"、建议它配置出口限制并通过 sysfs 接口和"mqprio"接口设置值。 这些值之间有什么关系?

  • /sys/class/net/eth0/queues/tx-7/tx_maxrate
  • bw_rlimit min_rate
  • bw_rlimit max_rate
  • 本文档将"min_rate"描述为 CIR、将"max_rate"描述为 EIR。 在该示例中、MIN_RATE 与 TX_maxRATE 匹配、传输速率被限制为 MIN_RATE。  如果在带宽允许的情况下不允许发送器超过 MIN_RATE、max_rate 会做什么?

    有哪些约束条件、因为输入无效配置很容易、但没有关于约束条件实际值的反馈?

    最后、使用这些设置来执行数据包捕获、VLAN 标头 在捕获的数据包中始终将优先级代码点(PCP)设置为零。 这是 TC0的预期结果、但在示例中并非 TC6和 TC7的预期结果。 是否可以对硬件进行配置、以将 PCP 设置为正确的值? 这是一个问题、因为如果没有正确的值、开关就无法提供有保证的资源。

    ——Gunter

    请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Gunter:

    将 Siddharth 的响应放在此处的邮件线程中。

    首先,它看起来似乎驱动程序不支持 CBS、tc-CBS 的普通 Linux 接口,并且有自己的配置方式。 这是有原因的
    不使用标准接口?
    => 如 tc-CBS 手册页面所述 、网址为:man7.org/.../tc-cbs.8.html、
    "CBS 是要安装在另一个 qdisc 下,它将数据包流映射到流量类别,一个
    示例为 mqprio。" 当 tc 命令用于 mqprio 时、驱动程序支持 HW 卸载
    参数设置为1。 该驱动程序支持卸载特定参数:min_rate 和 max_rate
    使用 CIR (提交信息速率)和 EIR (过量信息速率)将数据发送到 CPSW 硬件
    寄存器中、将 CIR 寄存器配置为 MIN_RATE、将 EMX_RATE 配置为 MIN_RATE。
    软件支持包括 CBS 在内的所有 tc 命令。 中使用的具体示例
    包含 MIN_RATE 和 max_RATE 的文档是可卸载到 CPSW 的 tc 命令的子集
    与 PC 通信

    它似乎使用了 sysfs 接口和 mqprio qdisc 的"min_rate"和"max_rate"参数的组合。 尚不清楚这些参数与802.1Qav 整形器参数的确切映射情况?
    => sysfs 接口用于主机端口 DMA 通道速率限制、控制速率 AT
    将流量从主机端口通过 DMA 通道发送到 CPSW 硬件。 Min_Rate 和 Max_Rate
    属于 tc mqprio 命令一部分的参数可卸载至 HW。 中的 tc-CBS 命令
    软件可以按原样使用、并使用 mqprio min_rate 和 max_rate 参数来强制执行
    接收器速率限制。 802.1Qav 旨在根据分配到的速率来塑造流量
    每个优先级。 根据、可以使用 MIN_RATE 和 max_RATE 参数以及来实现相同的设置
    优先级、能够将其卸载到转发路径上的 CPSW 硬件、以及 DMA
    通道速率限制用于控制发送到 CPSW 硬件的主机端口流量。

    官方界面 tc-cbs 拥有直接对应于预期参数的参数,但根本不清楚如何通过现有接口实现这些参数。
    => 带有 min_rate 和 max_rate 参数的 tc mqprio 命令未被映射到 tc CBS
    组件。 它们都可以固定使用、并且在软件中受支持。 唯一的区别是
    带有 min_rate 和 max_rate 参数的 tc mqprio 命令可用于速率限制
    每个优先级的流量、并可将其卸载到 CPSW 硬件以处理转发中的速率限制流量
    路径以及外部端口出口路径。

    在"3.2.3.6.3.3.4.1.1节中增加了内容。 主机端口入口速率限制卸载、"设置了/sys/class/net/eth0/queues/tx-7/tx_maxrate sysfs 值、但该部分被描述为"入口速率限制"。 这意味着它作为策略器来限制接收速率、但参数名称为"TX_maxRate"、这意味着出口速率限制。 这是入口速率限制还是出口速率限制? 实验中、它似乎是出口限制。
    => 此处的"入口"一词必须与"主机端口"一词结合理解
    放在前面。 主机端口对应于 CPSW 中面向软件/DMA 的端口、其中显示
    主机生成的通信映射到 CPSW 硬件。 因此、主机端口入口速率较高
    限制卸载对应于限制从主机发送到 CPSW 主机端口的流量的速率
    间接地意味着 DMA 通道速率限制。

    下一节,"3.2.3.6.4.3.3.2.3.1.2. 交换机出口、以太网端口传输速率限制卸载"、建议它配置出口限制并通过 sysfs 接口和"mqprio"接口设置值。 这些值之间有什么关系?
    => sysfs 命令用于配置与相对应的 CPSW 主机端口入口速率
    DMA 通道速率限制。
    mqprio 命令可在软件和硬件中使用。 文档中的、其为
    参数"HW"设置为1、将最小速率和最大速率限制卸载到 CPSW 硬件上。
    这样、将针对从主机发送和移出外部的所有流量
    端口、或者正在转发并移出外部端口的流量、可以是速率
    在 CPSW 硬件本身中受到限制。

    本文档将"min_rate"描述为 CIR、将"max_rate"描述为 EIR。 在该示例中、MIN_RATE 与 TX_maxRATE 匹配、传输速率被限制为 MIN_RATE。 如果在带宽允许的情况下不允许发送器超过 MIN_RATE、max_rate 会做什么?
    => CIR 对应于 MIN_RATE、而 EIR 对应于超额速率、即 MAX_RATE - MIN_RATE。
    MIN_RATE 和 max_RATE 对应的流量应允许的最小速率
    最高优先级的函数。 例如、该命令可以为指定 MIN_RATE
    优先级0、1和2。 如果优先级为2的流量足够、则可以预期会有
    满足 MIN_RATE 要求。 另一方面、如果没有优先级为2的流量、且只有的流量
    此时、优先级1恰好是最高优先级的流量、那么它是可以预期的
    如果优先级为1的流量足够、则满足 MIN_RATE 标准。 此外
    MIN_RATE 参数允许间歇性地切换到其他优先级流量、同时确保这一点
    已满足最高优先级流量的 MIN_RATE 要求。 MAX_RATE 可确保相应优先级的流量不会超过允许的值
    由 max_rate 参数配置。

    有哪些约束条件、因为输入无效配置很容易、但没有关于约束条件实际值的反馈?
    => MIN_RATE 和 max_RATE 的值是正整数、单位为 Mbps。 最小值
    对于 MIN_RATE 为1、而允许的最大值取决于链路带宽。 同样、
    MAX_RATE 必须至少为2、因为它应大于 MIN_RATE。 的总和
    优先级中的所有 max_rate 值都不能超过链路带宽。

    最后、使用这些设置来执行数据包捕获、VLAN 标头在捕获的数据包中始终将优先级代码点(PCP)设置为零。 这是 TC0的预期结果、但在示例中并非 TC6和 TC7的预期结果。 是否可以对硬件进行配置、以将 PCP 设置为正确的值? 这是一个问题、因为如果没有正确的值、开关就无法提供有保证的资源。
    => 如果源接口为 VLAN 接口、则使用 skbedit 命令来编辑 PCP 值
    中的一个、用于映射 VLAN 出口的 ip 命令如下所示:
    IP link set eth0.100 type VLAN outlet 0:0 1:1 2:2 3 4:4 5:5 6:6 7:7
    然后、VLAN 标头将具有相应的优先级标签、对应于中添加的 PCP 值
    使用 VLAN 接口发送的数据包 skbedit。

    此致、
    Tanmy.