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.

[参考译文] TDA4VH-Q1:TI 桥设置文档中步骤不明确

Guru**** 2553260 points
Other Parts Discussed in Thread: DRA829J

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1556635/tda4vh-q1-unclear-steps-in-ti-documentation-of-bridge-setup

器件型号:TDA4VH-Q1


工具/软件:

您好、

为了让另一个主题(DRA829J:CPSW9G 表现得像集线器 — 处理器论坛-处理器 — TI E2E 支持论坛)分开、我在这里启动这个新主题。

在最新的 TI 文档中、要在本机以太网模式下为 CPSW9G 设置桥接器、有一些命令我不完全理解。

3.2.10.3.2.3.1. CPSWng 本机以太网 — 适用于 TDA4VM 的 Processor SDK Linux 文档

设置结束时有三个必需步骤(如[*]所示)。

[*] IP 链路集 dev br0 类型 bridge vlan_filing 1
[*]
bridge vlan add dev br0 vid 1 self [*] bridge vlan add dev br0 vid 1 pvid untagged self 

如果我错了、请纠正我。 对我来说,文档读作:“你必须以这个精确的顺序运行这些命令中的每一个“。

对我来说、最后两个命令的作用或多或少相同。

将 VID 1 添加到桥接接口 br0(第一个命令):

桥接 VLAN 添加设备 br0 vid 1 自身 

将 VID 1 添加到桥接式接口 br0、但还将 VID 1 设置为 PVID、并在出口处使用 VID 1 取消标记数据包(第二个命令):

桥接 VLAN 添加设备 br0 vid 1 PVID 未标记的自身 

因此、这两条命令都将 VID 1 添加到 br0。 “PVID"和“和“UNTagged"只是“只是选项。 为什么必须先运行第一个命令?

为什么我不能跑步

桥接 VLAN 添加设备 br0 vid 1 PVID 未标记的自身 

单独使用该命令会将 VID 1 添加到 br0。 就像第一条命令那样。 还将设置额外的标志。

下面的文档进一步为这两个命令添加了一些说明:

<-----添加 VLAN 作为桥接条目 
<--将 CPU 端口添加到 VLAN 1 

但“PVID"和“和“UNTagged"只是“只是附加选项(如手册页桥 (8)- Linux 手册页中所述)

桥接 VLAN { add | del }开发 vid VID [ tunne_info tunnel_ID ][ PVID ]【未标记】[ self ][ master ] 

TI 是否以某种方式利用这一事实、即第二个命令向命令添加了“PVID"和“和“Untagged",“,并且、并且执行了与缺少这些选项不同的操作?

 CPSW9G 需要这两个命令的技术说明是什么?

此致、

Matthias

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

    您好、Matthias、

    TI 不修改桥接层。 我们只是使用钩子在硬件上卸载 VLAN 过滤和标记属性。

    这意味着命令没有特定的顺序或结构。 这取决于用户的配置方式。 该行为不会从手册页中更改。

    我刚尝试对命令进行注释、结果配置存在差异。 似乎这两个命令都是必需的、作用不同。

    此致、
    Tanmay

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

    您好、Tanmay、

    我也可以看到系统上配置的差异。 但我仅在 TI 硬件上看到它们。 “桥接“工具没有任何不同的指示。

    运行“bridge VLAN show“始终会显示此结果:

    port              vlan-id
    xf2               1 PVID Egress Untagged
                        state forwarding mcast_router 1
    xf4               1 PVID Egress Untagged
                        state forwarding mcast_router 1
    br0               1 PVID Egress Untagged
                        state forwarding mcast_router 1

    只有交换机 ALE 条目显示一些差异。

    如果我运行文档中的行:

    网桥 VLAN 添加 dev br0 vid 1 自
    桥 VLAN 添加 dev br0 vid 1 pvid 未标记的自我 

    我获得了一个工作配置:

    7:键入:内部 VLAN 
    Nolearn 掩码= 0x0、入口检查= 0
    VLAN ID = 1、注册掩码= 0x61、无组帧= 0
    强制无标记数据包出口= 0x61、限制下一个标头控制= 0、未注册掩码= 0x1、成员= 0x61

    如果我 ommit “bridge vlan add dev br0 vid 1 self“并只运行以下命令:

    桥接 VLAN 添加设备 br0 vid 1 PVID 未标记的自身 

    我得到一个不工作的配置:

    7:键入:内部 VLAN 
    Nolearn 掩码= 0x0、入口检查= 0
    VLAN ID = 1、注册掩码= 0x60、无组帧= 0
    强制无标记数据包出口= 0x60、限制下一个标头控制= 0、未注册掩码= 0x0、成员= 0x60

    但是、如果我将文档示例稍微更改为:

    网桥 VLAN 添加 dev br0 vid 1 pvid 标记的 self bridge
    vlan 添加 dev br0 vid 1 pvid 未标记的 self 

    我再次得到一个工作配置与:

    7:键入:内部 VLAN 
    Nolearn 掩码= 0x0、入口检查= 0
    VLAN ID = 1、注册掩码= 0x61、无组帧= 0
    强制无标记数据包出口= 0x61、限制下一个标头控制= 0、未注册掩码= 0x1、成员= 0x61

    是的、这两个命令都是必需的、执行的操作不同。 但区别仅在于 TI 硬件。

    这对我来说似乎很奇怪。 我无法想象运行这两条几乎相同的线路是如何真正发挥作用的、并且始终需要每个 Linux 桥接器接口。 运行“bridge vlan add dev br0 vid 1 pvid untagged self“后、内核显示了正确的配置、并且 Linux bridge 接口的软件解决方案在只运行这一行后也能正常工作。

    只有在运行两个几乎相同的命令后、我才会使用 TI 硬件获得可正常工作的配置。

    对我来说、看起来很明显、只有 TI HW 需要两个命令才能正常工作、而这通常不是 Linux 桥接器要求。 我找不到任何其他使用 Linux 桥接器接口的示例、其中添加 VID 需要运行两次几乎相同的命令。

    此致、
    Matthias

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

    您好、Matthias、

    不确定 内核中正在发生什么(有关此问题的桥接层)。 但第二个命令似乎没有将 vid 添加到主机端口。 这可能是内核中的一个 bug、也可能有一些故意的原因来保持它在硬件桥接器中的这种方式。 此外、网桥配置也适用于标准 systemd 网络配置

    在任何情况下、TI switchdev 层都不会出现问题。

    此致、
    Tanmay

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

    您好、Tanmay、

    因此技术原因不明确。 我们只知道它是必需的。 它可能是一个错误或未知的要求。

    感谢您的帮助。

    此致、

    Matthias

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

    您好、Matthias、

    因此技术原因不明确。 我们只是知道它是必要的。

    这也是我同意的。 所以我认为在内核 5.10 之前不需要这两个命令。 因此、内核可能会发生一些变化。

    我只是想让你知道。

    此致、
    Tanmay