This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PROCESSOR-SDK-AM64X:AM64 GP EVM 的 TSN 演示

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1112739/processor-sdk-am64x-tsn-demonstration-with-am64-gp-evms

器件型号:PROCESSOR-SDK-AM64X

您好!

我正在尝试使用针对 AM64GP EVM 的 TSN 演示。

我已通过以下链接访问演示

https://www.youtube.com/watch?v=MDrFPLGxIHs&ab_channel=TexasInstruments

我将四个 AM64GP EVM 设置为充当直通交换机、它们运行良好。  (使用的处理器 SDK 为08.02.00.23)

但是、我无法获得参考视频中执行的相同实时流量性能。

在视频中、优先级数据包不会被后台数据中断、因此会保持10.0Mbit/s 的位速率。

在我的情况下、即使我设置了 VLAN 优先级、我也只能获得大约3Mbit/s 的比特率。

我捕获了两个实验结果、即没有 QoS 的实时流量和具有 QoS (VLAN)的实时流量。

没有 QoS 的实时流量:Iperf3比特率性能下降(低于1 Mbit/s)

2. QoS 的实时流量(VLAN 优先级):  Iperf3位速率性能降级 (低于3Mbit/s)

 由于 VLAN 优先级设置、性能得到了增强、但我希望实时流量的比特率为10 Mbit/s、如演示视频所示。

如何获得与演示视频所展示的相同的 TSN 性能?

提前感谢您。

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

    您好!

    您能否使用 iperf3命令共享在每个电路板上运行的确切命令以及 VLAN 的使用情况。 根据屏幕截图、Netperf 流量在 LAN 中的某个点使用与后台流量相同的 TX 队列。

    此外,我建议在多层中处理此问题,现在忽略直通,因为它不会对带宽产生任何影响。

     Pekka

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

    感谢你的答复。

    以下是我使用的命令。

     1.直通模式  

    ----------------------------------------------------

    ip link 设置 dev eth0 down
    ip link set dev eth1 down (IP 链路设置设备 eth1关闭

    ethtool -L eth0 TX 2.
    ethtool -L eth1 TX 2.
    ethtool --set-priv-flags eth0 p0-rx-ptype-robin off
    ethtool --set-priv-flags eth0 iet-frame-preempion 打开
    ethtool --set-priv-flags eth0 iet-mac-verify 打开
    ethtool --set-priv-flags eth1 p0-rx-ptype-robin off
    ethtool --set-priv-flags eth1 iet-frame-preempion 打开
    ethtool --set-priv-flags eth1 iet-mac-verify 打开

    DevLink 开发参数集 platform/8000000.ethernet name switch_mode 值真正的 cmode 运行时

    echo 8 >/sys/kernel/debug/80000.ethernet/port1/cut_thru r_pri 掩码
    echo 8 >/sys/kernel/debug/80000.ethernet/port1/cut_thru TX_prI_mask
    echo 8 >/sys/kernel/debug/80000.ethernet/port2/cut_thru r_pri 掩码
    echo 8 >/sys/kernel/debug/80000.ethernet/port2/cut_thru TX_prI_mask

    ethtool --set-priv-flags eth0 cut-thru on
    ethtool --set-priv-flags eth1直通

    ----------------------------------------------------

    2.开关功能启用代码  

    ------------------------------------------------------

    ip link add name br0 type bridge
    ip link set dev br0 type bridge evaging time_1000

    ip link set dev eth0 up
    睡眠1
    ip link set dev eth1 up
    睡眠1

    ip link set dev eth0 master br0
    ip link set dev eth1 master br0

    ip link set dev br0 type bridge STP_state 1.

    ip link set dev br0 up

    桥接 VLAN add dev br0 vid 1 PVID 无标记自我

    brctl showstp br0

    udhcpc -i br0

    ------------------------------------------------------

    3.中央 AM64 GP EVM 的 VLAN 设置命令

    ------------------------------------------------------

    ip link add link br0 name br0.100 type vlan id 100
    睡眠1
    桥接器 VLAN add dev br0 vid 100 self
    桥接 VLAN add dev eth0 vid 100
    桥接 VLAN add dev eth1 vid 100
    ip link set dev br0.100 up

    ------------------------------------------------------

    4.端点 AM64 GP EVM 的 VLAN 设置命令

    ------------------------------------------------------

    ip link add link br0 name br0.100 type vlan id 100出口 Qos-map 0:3
    睡眠1
    桥接器 VLAN add dev br0 vid 100 self
    桥接 VLAN add dev eth0 vid 100
    桥接 VLAN add dev eth1 vid 100
    ip link set dev br0.100 up

    ------------------------------------------------------

    5. iperf3命令

    ----------------------------------------------------

    iperf3 -u -t 0 -b 10M -c 's="" vlan="" ip="">-l 200 -p 5201

    ------------------------------------------------------

    6. Netperf 命令  

    ------------------------------------------------------

    Netperf -H 's="" vlan="" ip="">

    ----------------------------------------------------

    我将在没有直通模式的情况下尝试相同的演示。

    谢谢你。

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

    禁用直通功能似乎正常工作。

    但我还需要直通模式。

    如何通过直通模式获得最大吞吐量?

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

    谢谢。 只有快速流量支持使用占先(IET)直通。 测试对实时应用程序使用队列3 (位掩码中的位掩码8)、该应用程序是映射到 VLAN 优先级3的 iperf3、具有出口 Qos-map 0:3。 看起来您只使用 ethtool 配置2个 TX 队列。  在 https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM64X/latest/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW3g.html#intersperse-express-traffic-iet-frame-preemption-offload 中 、我们声明:

    驱动程序将最高优先级的 h/w 队列作为快速队列并配置更低的队列(Q0-QN-2、其中 N 是配置的最大队列数) 如果 MAC 验证成功或启用强制模式、则通过对 Pn_REG_IET_CTRL 寄存器进行编程来设置可抢占队列。在使用 IET 功能之前、应关闭 P0-Rx-ptype-robin 标志。即、应将 CPSW2g h/w 编程为严格优先级模式、以使 IET 正常工作。

    由于直通式开/关决定了您的设置工作的天气、我认为正在发生的情况是这三件事、配置了多少个硬件队列、复制了上面的假设、然后将 iperf3流量映射到给定 VLAN 优先级不匹配。 您还可以尝试使用 clsact 和匹配 IP dport 等映射流量、如上述链接指向的 IET 部分所示、而不是出口 Qos-map。

     Pekka

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

    感谢您的支持。

    我将在 wiki 页面中尝试"clslact"和"port"。