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-AM62X:如何对 CPSW 接收的多播和广播实现限制

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513548/processor-sdk-am62x-how-to-implement-restrictions-on-the-multicast-and-broadcast-received-by-cpsw

器件型号:PROCESSOR-SDK-AM62X

工具/软件:

SDK 10.01.10.04  RT Linux

广播消息限制为每秒1100个数据包
多播消息限制为每秒200个数据包
如何配置 CPSW?

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

    您好、Jou:

    您目前是在 AM62x TI EVM 还是定制电路板上进行开发?

    Unknown 说:
    广播消息限制为每秒1100个数据包
    多播消息限制为每秒200个数据包
    如何配置 CPSW?

    您是否查看了以下页面、以了解该方法是否可用于您的应用? 您的要求以"每秒数据包数"为单位、但使用 tc 过滤器时的速率限制似乎是按每秒位数来衡量的。 在您的情况下、每个数据包的位数是多少、或者您是否能够以 Mbps 的速率重新定义您的要求?

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components network/Kernel/Network/CPSW3g.html#transmit-traffics-control-and-rate-limiting Kernel_Drivers 

    此外、以下方法也可以是一种限制入口流量速率的方法。 虽然我还没有尝试过、但这可能是一种配置、可以根据广播和多播消息限制入口数据包的方法。

    -道林

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

    您可以在 AM62x TI EVM 上验证它。
    TC 工具不具有限制入口流量。的功能
    要求限制 CPSW 硬件层的流量。μ A

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

    您好、Jou:

    此外、以下方法也可以限制入口流量。 虽然我还没有尝试过、但它可能配置为根据广播和多播消息限制入口数据包。

    我意识到我从来没有插入这个方法的线程。 虽然这种方法也使用 TC、但它确实允许限制入口/入口流量。  

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1482060/am6422-how-to-limit-the-eth-port-in-driver/5768639?tisearch=e2e-sitesearch&keymatch=%252520user%25253A576780#5768639  

    -道林

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

    当网络中有一个环形网络时、大量广播和多播消息占用带宽。
    它还会消耗大量 CPU 资源来处理网络数据包。

    因此、需要在 CPSW 硬件中实现广播和多播消息限制

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

    您好、Jou:  

    因此需要在 CPSW 硬件中实现广播和多播消息限制

    在内部进行检查后、CPSW 仅根据硬件方面进行检查、可以根据地址阻止多播数据包。  

    就广播数据包而言、根据 AM62x TRM 第12.3.1.4.6.1.9节"地址表"条目:"全1的多播地址是可添加到表中的广播地址"。  

    请参阅 AM62x TRM 中的12.3.1.4.6.1.16数据包转发过程和12.3.1.4.6.1.16.1入口过滤过程、以查看丢弃数据包所需满足的条件列表。

    具体而言、以下情况可能与丢弃多播/广播数据包最为相关。

    "IF ((ENABLE_RATE_LIMIT)和(超出速率限制) AND (不是 BCAST_MCAST_CTL)
    然后是((找到多播/广播目标地址)和(非超级地址)或(未找到多播/广播目标地址))
    然后丢弃数据包"

    就 Linux 软件支持而言、据我所知、我不知道我们是否有针对多播/广播入口点的软件支持、尽管我正在尝试咨询软件开发团队。

    -道林

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

    您好、Jou:  

    要求限制 CPSW 硬件层的流量。

    您能否具体说明一下限制 CPSW 硬件层的流量是什么意思? 您的意思是限制通过 RX 队列的流量的速率吗?

    首先、您可以尝试一下 https://lore.kernel.org/all/20220412102929.30719-1-grygorii.strashko@ti.com/?中给出的示例吗 看看它是否起作用?

    Examples:
    - BC rate limit to 1000pps:
      tc qdisc add dev eth0 clsact
      tc filter add dev eth0 ingress flower skip_sw dst_mac ff:ff:ff:ff:ff:ff \
      action police pkts_rate 1000 pkts_burst 1 drop
    
    - MC rate limit to 20000pps:
      tc qdisc add dev eth0 clsact
      tc filter add dev eth0 ingress flower skip_sw dst_mac 01:00:00:00:00:00/01:00:00:00:00:00 \
      action police rate pkts_rate 20000 pkts_burst 1 drop

    -道林

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

    非常感谢您的帮助!  问题已解决。

    tc 过滤器添加 DEV eth0入口花 SKIP_SW dst_mac 01:00:00:00:00:00:00:00:00:00:00:00 操作警察速率 pkts_rate 20000 pkts_burst 1滴

    需要将此命令修改为

    tc 过滤器添加 DEV eth1入口花 SKIP_SW dst_mac 01:00:00:00:00/01:00:00:00:00:00:00:00 操作警察 pkts_rate 1200 pkts_burst 1滴