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.

[参考译文] TMDS64EVM:ICSSG 开关模式初始化问题

Guru**** 2914580 points

Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1646284/tmds64evm-icssg-switch-mode-initialization-issues

器件型号: TMDS64EVM
主题: AM6442 中讨论的其他器件

您好:

我在正确初始化 ICSSG 双端口以太网交换机模式时遇到问题。 我使用 最新 SDK 的文档中的命令。 我无法克服的一件事是丢弃多播数据包、SMV 通信是特定的 (ether 类型 0x88BA)。 我的设置如下所示:

PC <->EVM(开关模式)<->AM6442 定制板

定制板将发送 PTP 数据包、SMV 数据包、并作为额外的测试 ICMP ping。 如果我严格遵循文档中所述的 EVM 开关模式配置顺序(物理接口已启动):

ip link add name br0 type bridge
ip link set dev eth1 master br0
ip link set dev eth2 master br0
ip link set dev br0 up
bridge vlan add dev br0 vid 1 pvid untagged self

在 PC 上的 Wireshark 上观察流量、我可以在不同的场景中看到不同的行为:

  • 在 EVM eth1 上使用 PC 启用开关模式、在 EVM eth2 上启用定制电路板(在引导时已连接)-在这种情况下、我可以看到 SMV、PTP ICMP 流量会双向转发、也会在切换 eth1 和 eth2 端口上的电缆之后转发
  • 通过 EVM eth1 上的定制板、EVM eth2 上的 PC 启用开关模式 — 首先转发~20 个 SMV 数据包、然后所有 SMV 丢弃、PTP 和 ICMP 正确转发
  • 配置切换模式并随后连接 eth — 所有 SMV 已丢弃、PTP 和 ICMP 已正确转发

我尝试使用 VLAN 配置、FDB、MDB、组播泛洪和直通转发、但一旦发现 SMB 降级、这些设置似乎对过滤没有任何影响。

另一种情况是、如果在配置开关模式并注意到 SMV 被丢弃后、我首先禁用两个物理接口、然后重新启动它们(这会导致 ICSSG 固件重新加载)、我可以看到 包括 SMV 在内的整个流量都被转发、但仅限于稍后从最初启动的端口转发到首先启动的端口(具体而言)。:

ifconfig eth1 down
ifconfig eth2 down
ifconfig eth1 up
ifconfig eth2 up

只会导致 从 eth2 向 eth1 转发流量。 EVM 本身仍会响应两个端口上的 ping、但连接到 EVM 的两个器件无法相互连接。

我看到了这种切换模式的行为、这两个 EVM 板在 12.0 SDK 中运行映像、以及使用内核 6.18.13 和 icssg0(而不是 EVM 使用的 icssg1)通过 Yocto 构建的定制 AM6442 板上运行映像。

主要问题是、开关模式配置中是否遗漏了一些内容? 是 ICSSG 二进制文件还是驱动程序错误? 此外、降低多播流量或转发多播流量时、预期会出现哪种行为? 是否有其他人认为我可以测试或检查以找出这些差异的根本原因?

此致、
Mateusz

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

    尊敬的 Mateusz:

    我测试了以下场景、但无法使用通用以太网进行重现:

    配置交换机模式并随后连接 eth — 所有 SMV 已丢弃、PTP 和 ICMP 已正确转发

    主机 PC:  

    $ ./pack_gen 01:80:8b:77:ce:bf 128 1000 0

    发送了 1000 个数据包、每个数据包具有 128 字节。 链接启动后、您是否在日志中看到以下消息?

    root@am64xx-evm:~# [ 102.823723] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [ 102.831985] br0: port 1(eth1) entered blocking state
    [ 102.837063] br0: port 1(eth1) entered forwarding state
    [ 102.887913] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [ 102.895838] br0: port 2(eth2) entered blocking state
    [ 102.900904] br0: port 2(eth2) entered forwarding state

    BR
    Jc.

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

    尊敬的 JC:

    是的、我可以确认可以看到这些日志。 附加了一些 dmesg 日志、以防有一些有趣的内容:

    [  151.637636] audit: type=1006 audit(1748545982.709:2): pid=853 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [  151.637669] audit: type=1300 audit(1748545982.709:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffe80560d8 a2=1 a3=1 items=0 ppid=1 pid=853 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="(systemd)" exe="/usr/lib/systemd/systemd-executor" key=(null)
    [  151.637684] audit: type=1327 audit(1748545982.709:2): proctitle="(systemd)"
    [  158.231415] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
    [  158.261946] br0: port 1(eth1) entered blocking state
    [  158.262034] br0: port 1(eth1) entered disabled state
    [  158.262101] icssg-prueth icssg1-eth eth1: entered allmulticast mode
    [  158.264858] icssg-prueth icssg1-eth eth1: entered promiscuous mode
    [  158.265846] audit: type=1700 audit(1748545989.334:3): dev=eth1 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
    [  158.270596] audit: type=1300 audit(1748545989.334:3): arch=c00000b7 syscall=211 success=yes exit=40 a0=3 a1=ffffc90627c8 a2=0 a3=1 items=0 ppid=860 pid=871 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="ip" exe="/usr/sbin/ip.iproute2" key=(null)
    [  158.270637] audit: type=1327 audit(1748545989.334:3): proctitle=6970006C696E6B00736574006465760065746831006D617374657200627230
    [  158.362098] br0: port 2(eth2) entered blocking state
    [  158.362198] br0: port 2(eth2) entered disabled state
    [  158.362256] icssg-prueth icssg1-eth eth2: entered allmulticast mode
    [  158.364795] remoteproc remoteproc7: stopped remote processor 3008a000.txpru
    [  158.364823] remoteproc remoteproc16: stopped remote processor 30084000.rtu
    [  158.364832] remoteproc remoteproc13: stopped remote processor 300b4000.pru
    [  158.364842] remoteproc remoteproc8: stopped remote processor 3008c000.txpru
    [  158.364851] remoteproc remoteproc15: stopped remote processor 30086000.rtu
    [  158.364860] remoteproc remoteproc14: stopped remote processor 300b8000.pru
    [  158.368691] remoteproc remoteproc13: powering up 300b4000.pru
    [  158.374260] remoteproc remoteproc13: Booting fw image ti-pruss/am64x-sr2-pru0-prusw-fw.elf, size 45708
    [  158.374308] remoteproc remoteproc13: unsupported resource 5
    [  158.374341] remoteproc remoteproc13: remote processor 300b4000.pru is now up
    [  158.374389] remoteproc remoteproc16: powering up 30084000.rtu
    [  158.378718] remoteproc remoteproc16: Booting fw image ti-pruss/am64x-sr2-rtu0-prusw-fw.elf, size 34188
    [  158.378780] remoteproc remoteproc16: remote processor 30084000.rtu is now up
    [  158.378827] remoteproc remoteproc7: powering up 3008a000.txpru
    [  158.381384] remoteproc remoteproc7: Booting fw image ti-pruss/am64x-sr2-txpru0-prusw-fw.elf, size 39340
    [  158.381451] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [  158.381496] remoteproc remoteproc14: powering up 300b8000.pru
    [  158.384651] remoteproc remoteproc14: Booting fw image ti-pruss/am64x-sr2-pru1-prusw-fw.elf, size 45868
    [  158.384694] remoteproc remoteproc14: unsupported resource 5
    [  158.384727] remoteproc remoteproc14: remote processor 300b8000.pru is now up
    [  158.384773] remoteproc remoteproc15: powering up 30086000.rtu
    [  158.387637] remoteproc remoteproc15: Booting fw image ti-pruss/am64x-sr2-rtu1-prusw-fw.elf, size 33424
    [  158.387693] remoteproc remoteproc15: remote processor 30086000.rtu is now up
    [  158.387740] remoteproc remoteproc8: powering up 3008c000.txpru
    [  158.390687] remoteproc remoteproc8: Booting fw image ti-pruss/am64x-sr2-txpru1-prusw-fw.elf, size 37828
    [  158.390749] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [  158.394064] icssg-prueth icssg1-eth eth2: entered promiscuous mode
    [  158.394660] audit: type=1700 audit(1748545989.434:4): dev=eth2 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
    [  158.397225] audit: type=1300 audit(1748545989.434:4): arch=c00000b7 syscall=211 success=yes exit=40 a0=3 a1=ffffe2dda038 a2=0 a3=1 items=0 ppid=860 pid=877 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="ip" exe="/usr/sbin/ip.iproute2" key=(null)
    [  158.397347] audit: type=1327 audit(1748545989.434:4): proctitle=6970006C696E6B00736574006465760065746832006D617374657200627230
    [  165.028985] icssg-prueth icssg1-eth eth1: Link is Up - 100Mbps/Full - flow control off
    [  165.029212] br0: port 1(eth1) entered blocking state
    [  165.029239] br0: port 1(eth1) entered forwarding state
    [  169.188912] icssg-prueth icssg1-eth eth2: Link is Up - 100Mbps/Full - flow control off
    [  169.189144] br0: port 2(eth2) entered blocking state
    [  169.189197] br0: port 2(eth2) entered forwarding state


    我现在检查了 SDK 11.02.08.02 中的映像、行为与我在 SDK 12.0 中的行为相同。

    您能否验证在您的情况下、SMV 多播 MAC 是否有任何不同? 01:0C:CD:04:00:00 和 01:0C:CD:04:01:FF 之间的一个。 我们的帧大小为 136 字节、每秒 4800 帧。

    还值得注意的是、我现在看到在开关模式下、MAC 01:15:4E:00:01:00 的 PRP 监控数据包从一个端口转发到另一个端口、而这些数据包具有 SMV 多播 MAC(例如 01:0C:CD:04:00:03)。

    此致、
    Mateusz

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

    尊敬的 Mateusz:

    您能否确认此数据包结构是否正常?

    [引述 userid=“564235“ url=“~/support/processors-group/processors/f/processors-forum/1646284/tmds64evm-icssg-switch-mode-initialization-issues
    • 配置切换模式并随后连接 eth — 所有 SMV 已丢弃、PTP 和 ICMP 已正确转发

    [/报价]

    我尝试了上述方案、但仍然 会为我转发数据包。

    BR
    Jc.

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

    尊敬的 JC:

    您能否确认此数据包结构是否正常?

    至少目的 MAC 和数据包类型看起来正常。

    与流量相比、我现在看到的一件事是测试 SMV 软件包中存在的 VLAN 标记。 问题不是多播类型、而是 VLAN 标记? 示例:


    另外、请确认此场景是否可重现、启用了开关模式且连接了电缆:

    首先禁用两个物理接口、然后重新启动它们(这会导致 ICSSG 固件重新加载)、我可以看到 整个流量(包括 SMV)正在转发、但仅从稍后启动到先启动的端口转发


    此致、
    Mateusz

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

    尊敬的 Mateusz:  

    同样值得注意的是、我现在看到在交换模式下、MAC 01:15:4E:00:01:00 的 PRP 监控数据包从一个端口转发到另一个端口、而 SMV 多播 MAC(例如 01:0C:CD:04:00:03)则不转发。

    感谢您提供我今天要尝试的详细信息。

    BR
    Jc.

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

    尊敬的 JC:

    正在等待更新。

    同时我还有一个问题、如何转发 PTP 数据包? 我想将器件配置为用作具有 PTP 边界时钟功能的交换机:一个端口用作 PTP 主器件、另一个用作 PTP 从器件、不在端口之间转发 PTP 数据包、因此与切换模式文档中的示例大不相同。 我将介绍文档中的设置、但不知道如何防止转发 PTP 数据包。

    此致、
    Mateusz

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

    尊敬的 Mateusz:  

    我能够在我的 Linux 设置中重现该问题。 这似乎是与配置/命令相关的问题、我在内部进行了调查。 同一固件可与 RTOS 正确配合使用、从而确认这与 PRU 固件无关。

    关于 用于设置桥接模式的命令:我怀疑这一点

    bridge vlan add dev br0 vid 1 pvid untagged self

    关于其他发现 — 如果您希望继续测试, VLAN ID 1 将正常工作。 为了解原因、VLAN ID 1 起作用是因为网桥为 VLAN ID 1 注册、而未标记标志指示它去除 VLAN 标记。 当我运行上述命令时,此行为是一致的 — 这意味着 VLAN ID 1 被接收并作为未标记流量转发到其他端口、如上述命令所定义。

    我也尝试使用相同的命令配置 VLAN ID 0、但仍然不起作用。 我目前正在内部调查此事、调查仍在进行中。

    BR
    Jc.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还尝试使用相同的命令配置 VLAN ID 0、但它仍然不起作用。 我目前正在内部调查此事、调查仍在进行中。

    请注意、在 CPSW 硬件上、VLAN ID 0 始终保留并用于优先级标记目的。 我不确定 ICSSG 是否相同、因此 JC 值得一看

    -道林

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

    您好:

    当我运行上述命令时,此行为是一致的 — 这意味着 VLAN ID 1 被接收并作为未标记流量转发到其他端口、如上述命令所定义。

    这是一个很好的澄清、谢谢。 实际上、当流量使用其他 VLAN ID 时、我设法控制转发。 因此、根据我的理解、网络中可用于其他设备(目前不包括 VLAN ID 0)的 SMV 流量的每个 VLAN ID 都必须在设备上明确配置、以便在不剥离 VLAN 标记的情况下转发它、是否正确?

    您能否澄清我对 PTP 交通的疑虑?

    我想将器件配置为具有 PTP 边界时钟功能的交换机 — 一个端口充当 PTP 主端口、另一个作为 PTP 从端口、不在端口之间转发 PTP 数据包、因此与交换模式文档中的示例相比有很大不同。 我将介绍文档中的设置、但不知道如何防止转发 PTP 数据包。
    [/报价]


    此致、
    Mateusz

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

    尊敬的 Mateusz:

    我想将器件配置为具有 PTP 边界时钟功能的交换机 — 一个端口充当 PTP 主端口、另一个作为 PTP 从端口、不在端口之间转发 PTP 数据包、因此与交换模式文档中的示例有很大不同。 我将介绍文档中的设置、但无法确定如何防止转发 PTP 数据包。

    您是否尝试过跳过配置步骤以启用开关模式? 据我所知、从过去的测试来看、如果您在一条线路中连接的三个器件中的每一个上运行 ptp4l、那么假设您已正确配置 ptp4l 配置文件、中间器件不一定在切换模式下启用才能使 PTP 边界时钟正常工作。

    因此、根据我的理解、网络中可用于其他设备(目前不包括 VLAN ID 0)SMV 流量的每个 VLAN ID 都必须在设备上明确配置为、以便在不剥离 VLAN 标记的情况下转发它、是否正确?

    如果使用 CPSW 以太网、是的、我相信您的理解是正确的。 如果是 ICSSG 以太网、JC 很可能会验证其是否执行相同的操作。

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、根据我的理解、网络中可用于其他设备(目前不包括 VLAN ID 0)SMV 流量的每个 VLAN ID 都必须在设备上明确配置为、以便在不剥离 VLAN 标记的情况下转发它、是否正确?

    对。

    BR
    Jc.

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

    您好:

    您是否尝试过跳过配置步骤以启用切换模式? 根据我的理解和过去的测试、我运行的是、如果您在一条线路中连接的三个设备中的每一个设备上运行 ptp4l、则假定您已正确配置 ptp4l 配置文件、中间设备不一定在切换模式下启用、PTP 边界时钟才能工作。

    遗憾的是、启用开关模式是器件需要的主要功能、而 ptp4l 边界时钟模式就是该要求的结果。

    此致、
    Mateusz

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

    尊敬的 Mateusz:

    在桥接器/BC 中运行此命令、然后事情就会正常。 我在我这边进行了验证

    bridge mdb add dev br0 port br0 grp 01:80:c2:00:00:0e  permanent vid 1

    BR
    Jc.

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

    >01 :80:C2:00:00:0e  

    LLDP 多播 MAC 地址以上为 P2P 保留 MAC — 这会导致恶意延迟响应,您的情况下会转发哪些数据包?  

    您也可以对 Grandmaster (gm) 中的同步消息 MAC 地址运行相同的命令。

    如果您有任何其他问题、请单独提出 E2E 问题并附上相关的 BC.cfg 和 OC.cfg 配置文件。

    BR
    Jc.

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

    您好:JC、

    您的 case 中会转发哪些数据包?

    在本例中、是 Pdelay_Req、Pdelay_Resp 和 Pdelay_Resp 后续消息(ptp4l 在 p2p 模式下运行)。 我现在尝试了两种方法:

    bridge mdb add dev br0 port br0 grp 01:80:c2:00:00:0e permanent vid 1
    bridge mdb add dev br0 port br0 grp 01:1b:19:00:00:00 permanent vid 1

    我看到在使用检查时添加了这些 MAC
    bridge mdb list

    但在桥接器的其他端口上、我仍然可以看到转发的请求/响应/后续消息、同步中断。

    是否应将进一步讨论移至新的主题?

    此致、
    Mateusz

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

    尊敬的 Mateusz:  

    现在是否应该将进一步讨论移至新主题?

    好的、请

    可能您可以验证并关闭这个 Slight smile

    BR
    Jc.

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

    另外、请附上您正在使用的 PTP OC 和 BC 配置文件。

    BR
    Jc.

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

    在结束之前、也许还有一个问题:

    我还尝试使用相同的命令配置 VLAN ID 0、但它仍然不起作用。 我目前正在内部调查此事、调查仍在进行中。

    我能否以某种方式跟踪或被告知调查的进度?

    此致、
    Mateusz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还尝试使用相同的命令配置 VLAN ID 0、但它仍然不起作用。 我目前正在内部调查此事、调查仍在进行中。

    好的、您可以让该主题保持打开状态、直到解决该问题


    BR
    Jc.