专栏底层软件求解答 J3/J5 中 CBS 算法的疑问

求解答 J3/J5 中 CBS 算法的疑问

已解决
最初的梦想2023-01-11
24
2

地平线 J3/J5 的 CBS 算法的初始化会将 send_slope、idle_slope、high_credit、low_credit、percentage 这些值配到对应的寄存器,现在存在以下疑问:

(1)若 credit 的值累加到了 High_Credit,CBS算法会通过硬件/软件做怎样处理?

(2)那个 percentage 的参数发挥什么作用?该如何使用?

底层软件
征程3征程5
评论2
0/1000
  • 疯狂星期6
    Lv.1

    您好:

    (1)CBS的算法是基于IEEE 802.1Qav标准的。您如果想了解具体的行为可能需要阅读下这个标准。简单的来说,其若达到High_Credit,硬件将会关闭其传输的通道。

    (2)percentage应该是保留带宽的百分比。

    2023-01-12
    0
    0
  • 疯狂星期6
    Lv.1

    cbs的常规使用,一般是用于多队列的保留带宽。将不同队列用于不同的功能,传输不同优先级的流量。

    使用参考格式:ethtool hobot_gmac --set-cbs eth1 max-frame-size 1000 q1 10 q2 25 q3 40

    这个命令的格式表示设置eth1的队列1保留1G的10%带宽(即100M),Q2为250M,Q3为400M。表示这几个队列的最大流量不能大于设定值。

    测试的话,J5平台可使用板内自带的tperf指定队列发送进行测试,也可自行编写程序实现。

    2023-01-12
    0
    0