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.

AM625SIP: AM625SIP 双网卡独立接收组播流问题

Part Number: AM625SIP
Other Parts Discussed in Thread: AM625

TI的工程师您好

我在 AM625SIP EVM 开发板上,尝试通过两个以太网接口(eth0 和 eth1)同时接收两个不同的 UDP 组播流:
eth0:监听 239.130.130.130:1300
eth1:监听 239.130.130.1:1301
程序采用多进程方式,每个子进程绑定对应接口并加入组播组。
观察到的现象:
有时仅 eth1 能收到数据(持续打印 [eth1]),eth0 无输出;
重启程序后,可能变为仅 eth0 能收到,eth1 无输出;
从未同时看到两个接口的接收日志。
然而,通过 tcpdump 验证:
tcpdump -i eth0 host 239.130.130.130 → 能捕获到组播报文
tcpdump -i eth1 host 239.130.130.1 → 也能捕获到组播报文
且 /proc/net/igmp 显示两个接口均已成功加入对应组播组。
我的问题是AM625SIP是否需要进行某些配置才可使eth0 和 eth1同时接收两个不同的 UDP 组播流?

  • 已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 好的,希望尽快得到您的回复

  • 你好,请问调查有结果了吗?

  • 你好,请问调查有结果了吗?

  • 你好,请问有调查结果了吗

  • 抱歉回复迟了。

    请描述:

    1. 您正在使用哪个版本的 Linux SDK?

    2. 您的测试拓扑结构是怎样的?(即在您的测试环境中,哪些设备连接到了 eth0 和 eth1?)

    3. 根据您的帖子,您似乎将 eth0 和 eth1 都配置在了同一个子网中?请注意,如果 eth0 和 eth1 未处于交换机模式(即双 EMAC 模式),则不建议将这两个接口配置在同一子网中,具体原因请参阅 www.ti.com/.../spradj8.pdf 文档中 10.4 节“连接交换机时的注意事项”。尽管该文档描述的是连接交换机的场景,但即使未连接交换机,只要 eth0 和 eth1 处于同一子网,也会导致这两个接口之间接收数据包时出现问题。

    类似的解释可参见 RE: AM6442: Ethernet ports configuration in PSDK Linux prebuilt image 

  • 谢谢你的回复。

    1.Linux SDK 版本:
    使用的SDK版本是 ti-processor-sdk-linux-am62xxsip-evm-09.02.01.10-Linux-x86-Install。
    2.测试拓扑结构:
    AM625 SIP EVM 开发板通过两个独立的以太网接口(eth0 和 eth1)分别连接至一台 H3C 三层交换机:
    eth0 配置 IP 地址为 192.168.1.130/24,
    eth1 配置 IP 地址为 192.168.2.130/24。
    交换机上还连接了两台测试源设备,用于发送组播流量:
    组播流 1:目的地址 239.130.130.130,源地址 192.168.1.186(通过 eth0 所在子网接入);
    组播流 2:目的地址 239.130.130.1,源地址 192.168.2.96(通过 eth1 所在子网接入)。
    网络中无其他设备连接。
    3.关于子网配置的说明:
    eth0 和 eth1 并未配置在同一子网中(分别为 192.168.1.0/24 和 192.168.2.0/24),因此不存在因双 EMAC 接口处于同一广播域而导致的数据包接收异常问题。

    补充信息请看截图:

  • 感谢您分享您的设备配置详情。

    有时仅 eth1 能收到数据(持续打印 [eth1]),eth0 无输出;
    重启程序后,可能变为仅 eth0 能收到,eth1 无输出;
    从未同时看到两个接口的接收日志。
    然而,通过 tcpdump 验证:
    tcpdump -i eth0 host 239.130.130.130 → 能捕获到组播报文
    tcpdump -i eth1 host 239.130.130.1 → 也能捕获到组播报文

    您提到 tcpdump 显示 eth0 和 eth1 都成功捕获了组播数据包,但从未在两个接口上观察到“接收日志”。您说的“接收日志”是什么意思?您使用的是哪个工具?您期望看到 eth0 和 eth1 都接收到了组播数据包吗?