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.

[参考译文] AM6422:以太网交换机模式

Guru**** 2455450 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1485497/am6422-ethernet-switch-mode

器件型号:AM6422

工具与软件:

您好!

我现在在 CPU 上使用 cpsw 实现了双 emac 模式:

ROOT@PM5680-T-2ETH:~# ifconfig
eth0 Link encap:以太网 HWaddr 70:FF:76:1F:44:4B
iNet addr:192.168.0.10 Bcast:0.0.0.0 Mask:255.255.255.0
运行多播 MTU:1500公制:1的上行广播
RX 数据包:266错误:0丢弃:0溢出:0帧:0
TX 数据包:251错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
接收字节:19744 (19.2KiB)发送字节:18094 (17.6KiB)

ETH1 Link encap:以太网 HWaddr 70:FF:76:1F:44:4C
iNet 地址:192.168.1.10 Bcast:0.0.0.0掩码:255.255.255.0
上广播多播 MTU:1500公制:1
RX 数据包:0错误:0丢弃:0溢出:0帧:0
TX 数据包:0错误:0丢弃:0溢出:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

LO Link encap:局部环回
iNet 地址:127.0.0.1掩码:255.0.0.0
运行 MTU:65536公制:1的上环回
RX 数据包:0错误:0丢弃:0溢出:0帧:0
TX 数据包:0错误:0丢弃:0溢出:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

它可以正常工作。

接下来、我尝试激活开关模式、以使用两个端口(用于菊花链)。

输入了以下命令:

DevLink 开发参数设置 platform/8000000.ethernet 名称 switch_mode 值1 cmode 运行时

IP 链路添加名称 br0类型桥接器
IP 链路集设备 br0类型网桥老化时间1000
ip link set dev eth0 up
ip link set dev eth1 up
IP 链路集设备 eth0主设备 br0
IP 链路集 DEV ETH1主器件 br0

ip link set dev br0类型网桥 vlan_filtering 1.
网桥 vlan add dev br0 vid 1自
网桥 VLAN 添加设备 br0 vid 1 PVID 未标记自我

IP 地址添加192.168.0.11/24 dev br0
IP 链路设置设备 br0启动

我希望可以在网络中 ping br0、但没有回复。

有什么缺失吗 ?

此致

Walter

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

    您好!

    您能否发布 ifconfig -A 的结果?

    此致、

    Schuyler

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

    您好、Walter、  

    [报价 userid="341107" url="~/support/processors-group/processors/f/processors-forum/1485497/am6422-ethernet-switch-mode "]ip addr add 192.168.0.11/24 dev br0

    假设您的设备已通过 DHCP 服务或路由器连接到主机 PC 并尝试测试 ping、那么您是否可以运行"udhcpc -i br0"、而不是使用"IP addr add"静态设置 br0的 IP 地址?   有关详细信息、请参阅 e2e.ti.com/.../5557385

    是否有特殊要求使用静态 IP 地址设置 br0?

    -道林

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

    尊敬的 Daolin:

    该地址必须为静态地址。

    此致

    Walter

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

    您好!

    输出如下:

    ROOT@PM5680-T-2ETH:~# ifconfig -a
    eth0 Link encap:以太网 HWaddr 70:FF:76:1F:44:4B
    iNet addr:192.168.0.10 Bcast:0.0.0.0 Mask:255.255.255.0
    运行多播 MTU:1500公制:1的上行广播
    RX 数据包:18错误:0丢弃:0溢出:0帧:0
    TX 数据包:131错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:1587 (1.5kiB) TX 字节:6742 (6.5kiB)

    ETH1 Link encap:以太网 HWaddr 70:FF:76:1F:44:4C
    iNet 地址:192.168.1.10 Bcast:0.0.0.0掩码:255.255.255.0
    上广播多播 MTU:1500公制:1
    RX 数据包:0错误:0丢弃:0溢出:0帧:0
    TX 数据包:0错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

    BR0 Link encap:以太网 HWaddr 70:FF:76:1F:44:4B
    iNet addr:192.168.0.11 Bcast:0.0.0.0掩码:255.255.255.0
    运行多播 MTU:1500公制:1的上行广播
    RX 数据包:13错误:0丢弃:0溢出:0帧:0
    TX 数据包:1错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:1077 (1.0 KiB) TX 字节:42 (42.0 B)

    CAN0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00
    NOARP MTU:16公制:1
    RX 数据包:0错误:0丢弃:0溢出:0帧:0
    TX 数据包:0错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueuelen:10
    RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)
    中断:77

    LO Link encap:局部环回
    iNet 地址:127.0.0.1掩码:255.0.0.0
    运行 MTU:65536公制:1的上环回
    RX 数据包:2错误:0丢弃:0溢出:0帧:0
    TX 数据包:2错误:0丢弃:0溢出:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:176 (176.0 B) TX 字节:176 (176.0 B)

    此致

    Walter

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

    以下也是控制台输出:

    [ 15.002239] am65-cpsw-nuss 8000000.ethernet eth0:链路断开
    [ 20.043957] am65-cpsw-nuss 8000000.ethernet eth0:phy [8000f00.mDIO:01]驱动器[通用 PHY](IRQ=poll)
    [ 20.053760] am65-cpsw-nuss 8000000.ethernet eth0:配置 phy/RGMII-rxid 链路模式
    [ 20.061697] 8021q:将 VLAN 0添加到设备 eth0上的硬件过滤器

    [ 20.073109] am65-cpsw-nuss 8000000.ethernet eth1:phy [8000f00.mDIO:02]驱动器[通用 PHY](IRQ=poll)
    [ 20.073188] am65-cpsw-nuss 8000000.ethernet eth1:配置 phy/RGMII-rxid 链路模式
    [ 20.078254] 8021q:将 VLAN 0添加到设备 eth1上的硬件过滤器
    [ 22.114681] am65-cpsw-nuss 8000000.ethernet eth0:link is up - 100Mbps/ full - flow control off
    [ 25.093739] am65-cpsw-nuss 8000000.ethernet:启用交换机模式
    [ 35.147531] br0:端口1 (eth0)已进入阻塞状态
    [35.147662] br0:端口1 (eth0)已进入禁用状态
    [ 35.147715] am65-cpsw-nuss 8000000.ethernet eth0:已进入所有多播模式
    [ 35.150002] am65-cpsw-nuss 8000000.ethernet eth0:已进入混杂模式
    [ 35.158986] br0:端口2 (eth1)进入阻塞状态
    [35.159034] br0:端口2 (eth1)已进入禁用状态
    [ 35.159086] am65-cpsw-nuss 8000000.ethernet eth1:已进入所有多播模式
    [35.161790] am65-cpsw-nuss 8000000.ethernet eth1:已进入混杂模式
    [ 35.176687] br0:端口1 (eth0)进入阻塞状态
    [35.176734] br0:端口1 (eth0)已进入侦听状态
    ARPING 192.168.0.11来自192.168.0.11 br0
    发送5个探针(0个广播)
    收到0个响应(0个请求、0个广播)
    [ 50.657876] br0:端口1 (eth0)已进入学习状态
    [66.01785] br0:端口1 (eth0)进入转发状态
    [66.017924] br0:检测到拓扑更改、传播

    将脚本更改为:

    #!/bin/sh

    ip link set dev eth1 down
    ip link set dev eth2 down
    睡眠5.
    ip link set dev eth1 up
    ip link set dev eth2 up
    睡眠5.
    DevLink 开发参数设置 platform/8000000.ethernet 名称 switch_mode 值 true cmode runtime
    睡眠5.
    IP 链路添加名称 br0类型桥接器
    IP 链路集设备 br0类型网桥老化时间1000
    睡眠5.
    IP 链路集 DEV ETH1主器件 br0
    ip link set dev eth2主设备 br0
    IP 链路集设备 br0类型桥接 STP_STATE 1
    IP 链路设置设备 br0启动
    网桥 vlan add dev br0 vid 1自
    网桥 VLAN 添加设备 br0 vid 1 PVID 未标记自我
    #udhcpc -i br0
    IP 地址添加192.168.0.11/24 dev br0

    睡眠3.
    arping -c 5 -U -i br0 192.168.0.11

    此致

    Walter

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

    您好、Walter、

    您能解释一下以下几点吗

    1.您使用的 Linux SDK 版本是什么?

    2.这个测试是在定制的电路板上完成的吗?

    3.您是否可以尝试以下操作将 CPSW 设置为具有静态地址配置的交换机?

    devlink dev param set platform/8000000.ethernet name switch_mode value true cmode runtime
    ip link add name br0 type bridge
    ip link set dev br0 type bridge ageing_time 1000
    ip link set dev eth0 up
    ip link set dev eth1 up
    ip link set dev eth0 master br0
    ip link set dev eth1 master br0
    bridge vlan add dev br0 vid 1 self
    bridge vlan add dev br0 vid 1 pvid untagged self
    ip link set dev br0 up
    sleep 2
    ip addr add 192.168.0.11/24 dev br0
    

    您是否可以将另一个设备连接到 DUT、而不是使用"arping -c 5 -U -I br0 192.168.0.11"、将连接的设备也具有位于同一子网中的 IP 地址、然后测试"ping" -i br0"?

    -道林

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

    尊敬的 Daolin:

    我们同时使用:具有标准 SDK 的 TI 板 AM64-SK、以及具有香草 Linux RT 的定制板。

    我们重新测试了标准解决方案:它的工作原理。

    我们的不同之处在于:在我们的设置中、IP 地址设置为 eth0和 eth1。

    输出级似乎是错误的。

    以下脚本工作正常:

    ifconfig eth0 down
    ifconfig eth1 down
    睡眠2.
    ifconfig eth0 0.0.0.0
    ifconfig eth1 0.0.0.0
    DevLink 开发参数设置 platform/8000000.ethernet 名称 switch_mode 值 true cmode runtime
    IP 链路添加名称 br0类型桥接器
    IP 链路集设备 br0类型网桥老化时间1000
    ip link set dev eth0 up
    ip link set dev eth1 up
    IP 链路集设备 eth0主设备 br0
    IP 链路集 DEV ETH1主器件 br0
    网桥 vlan add dev br0 vid 1自
    网桥 VLAN 添加设备 br0 vid 1 PVID 未标记自我
    IP 链路设置设备 br0启动
    睡眠2.
    IP 地址添加192.168.0.11/24 dev br0

    非常感谢您的支持!

    问题已解决。

    此致

    Walter