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.

[参考译文] Linux/AM3352:无法在 CPSW 双 Mac 上 ping 到 eth1

Guru**** 2543430 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/744458/linux-am3352-cannot-ping-to-eth1-on-cpsw-dual-mac

器件型号:AM3352

工具/软件:Linux

你(们)好

我使用 的是 ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05。

我在 CPSW 上发现了内核中的双 PHY 检测到了 eth0和 eth1。

ifconfig 转储如下:

eth0 链路连接:以太网 HWaddr C4:F3:12:75:12:BB
iNet addr:192.168.1.100 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr:fe80::c6f3:12ff:FE75:12bb%763860/64范围:链接
上广播多播 MTU:1500公制:1
RX 数据包:390错误:0丢弃:0超限:0帧:0
TX 数据包:97错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:41798 (40.8 KiB) TX 字节:13114 (12.8 KiB)
中断:173

eth1 链路连接:以太网 HWaddr C4:F3:12:75:12:BD
iNet addr:192.168.2.100 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr:fe80::c6f3:12ff:FE75:12bd%763860/64范围:链接
运行多播 MTU:1500公制:1的上广播
RX 数据包:750错误:0丢弃:0超限:0帧:0
TX 数据包:198错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:84263 (82.2 KiB) TX 字节:34240 (33.4 KiB)

然后、eth0可以接收 ping、但 eth1无法接收 ping。

如何解决此问题?

请提供任何建议。

"ethtool -S eth1"转储在此线程上共享。

e2e.ti.com/.../ethtool_5F002D00_S_5F00_eth1.txt

此致。

西桥

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

    请完成此检查清单并将结果发布在以下位置: processors.wiki.ti.com/.../5x_CPSW
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Biser。

    以下是:

    引导日志、命令转储和 Wireshark 数据包日志打包为:e2e.ti.com/.../share_2D00_log_2D00_1108am9.zip

    板:定制板、如 AM335x GP EVM

    Linux: TI-processor-SDK-Linux-RT-AM335x-EVM-04.03.00.05

    此致。

    西桥

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

    我看到 eth1端口上发出了带有 eth1 MAC ID 的 DHCP 数据包、因此 TX 路径看起来很好。 因此、RX 路径可能不起作用、因为电路板没有响应 ARP 请求。 确保针对 eth1接口的引脚多路复用器正确。 ifconfig 命令中的 pktt 计数显示为0。 是否是 ping 命令前后的转储? 在尝试 ping eth1时、是否可以使用 Wireshark 捕获 eth0输出?

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

    大家好、Schuyler。

    感谢您的宝贵建议。

    我在连接两个端口时检查哪个端口接收到 ARP 数据包 eth0或 eth1。 我发现 eth0接收它。

    我发现这两个都在同一个网络中:eth0具有192.168.1.100/16、而 eth1具有192.168.2.100/16。

    CPSW 是否允许两个 eth I/F 位于同一网络中?

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

    两个 CPSW 接口必须至少位于不同的子网中。 如果正确,则接口位于不同的子网中,eth0位于..1.x 上,而 eth1位于..2.x 上

    eth0具有192.168.1.100/16、而 eth1具有192.168.2.100/16

    尽管您所描述的内容听起来像一个相同的子网问题。 .1.100和.2.100接口的链接伙伴是否连接到同一台计算机? 它们是否插入具有多个 NIC 卡的 PC?

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

    你(们)好

    现在、两者都链接到具有2个 NIC 卡的 PC 以进行 ping 检查。 但最后、它们中的一个连接到另一台机器。

    此致。
    西桥

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    链接可能在同一台 PC 上导致问题。 如果仍有问题、请单独尝试每个链接、完全断开一个链接并测试 ping。 然后对另一个链接执行相同的操作。
    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我已按如下方式设置网络接口、并为每个接口连接到其他 PC。
    它们在与每个 ethX 相同的24位网络上具有 IP 地址。 (例如,eth0连接192.168.1.10,子网掩码为255.255.0.0)  
    首先、我仅连接 eth0、然后 ping 正常。 接下来、只有 eth1、然后是 NG。 最后将这两个引脚都接线、那么只有 eth0是可以的。

    如果两个接口位于同一网络中、则 Eth1似乎无法接收数据包。
    在同一网络中、eth0 (cpsw0)具有更高的数据包接收或发送优先级。
    因此、我将使用24位网络掩码来解决该问题。

    (我猜上面是正确的吗? 我想知道这个。)

    AM335x 
    eth0 链路连接:以太网 HWaddr C4:F3:12:75:12:BB iNet addr:192.168.1.100 Bcast:192.168.255.255 Mask:255.255.0.0 inet6 addr:fe80::c6f3:12ff:FE75:12bb%763860/64范围:链接 运行多播 MTU:1500公制:1的上广播 RX 数据包:5错误:0丢弃:0超限:0帧:0 TX 数据包:191错误:0丢弃:0溢出:0载波:0 冲突:0 txqueuelen:1000 RX 字节:434 (434.0 B) TX 字节:24150 (23.5 KiB) 中断:171 eth1 链路连接:以太网 HWaddr C4:F3:12:75:12:BD iNet addr:192.168.2.100 Bcast:192.168.255.255 Mask:255.255.0.0 inet6 addr:fe80::c6f3:12ff:FE75:12bd%763860/64范围:链接 运行多播 MTU:1500公制:1的上广播 RX 数据包:841错误:0丢弃:0超限:0帧:0 TX 数据包:135错误:0丢弃:0超限:0载波:0 冲突:0 txqueuelen:1000 RX 字节:105554 (103.0 KiB) TX 字节:23142 (22.5 KiB)
    PC 连接到 eth0 
    iNet addr:192.168.1.10掩码:255.255.0.0
    PC 连接到 eth1
    iNet addr:192.168.2.10掩码:255.255.0.0


    此致。
    西桥

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

    您是否指定了从 PC 发送 ping 时使用的链接? 我不确定要向您介绍的有关 PC 的信息、但在路由表中、可能会对这里产生影响。 根据该表的填充方式、PC 可能只会看到一条带有 TI 处理器的电路板路径。 与响应相同的是、路由表可能具有返回 PC 的不同路径。 我建议同时在两条链路上进行 Wireshark 捕获、并查看数据包是如何发出的。

    此外、还可以将另一个端口设置为 PC 以外的另一个器件? 总共有三个设备和两个子网:192.168.1.x 和192.168.2.x? 尝试使用该拓扑进行测试? 如果这样做,则表示路由冲突与上一个问题相同。

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

    你(们)好

    我尝试了您的回答:
    >>共有三台设备和两个子网192.168.1.x 和192.168.2.x? 尝试使用该拓扑进行测试?

    为每个接口设置子网地址:192.168.1.x 和192.168.2.x 时(如下所示),它们运行良好。 (检查 ping 是否正常)
      PC1 192.168.1.200  -->  CPSW1 192.168.1.100 (网络掩码:255.255.255.0)
      PC2 192.168.2.200  -->  CPSW2 192.168.2.100 (网络掩码:255.255.255.0)


    在这个问题中,我尝试在网络192.168.x.x 上设置192.168.1.x 和192.168.2.x,但它们不能正常工作。 因此、我可能认为您说它存在路由冲突。
      PC1 192.168.1.200  -->  CPSW1 192.168.1.100 (网络掩码:255.255.0.0)
      PC2 192.168.2.200  -->  CPSW2 192.168.2.100 (网络掩码:255.255.0.0)


    非常感谢。
    西桥