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.

[参考译文] SK-AM64B:CPSW 开关模式不工作

Guru**** 2482225 points
Other Parts Discussed in Thread: SK-AM64B

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1448495/sk-am64b-cpsw-switch-mode-not-working

器件型号:SK-AM64B

工具与软件:

您好!

我们尝试启用 CPSW3G 的开关模式、然后按照 SDK 文档中的说明设置基本的非托管交换机:

3.2.9.3.1.7.1. 桥接设置

DevLink dev 参数集 platform/8000000.ethernet name switch_mode value true cmode 运行时

 ip 链路添加名称 br0类型网桥 ip 链
路设置 dev br0类型网桥老化时间1000
 ip 链路设置 dev eth0 up ip 链

路设置 dev eth1 up ip 链路设置 dev eth0主 br0 ip 链路设置 dev eth1主 br0 ip 链路设置 dev eth1主 br0 
IP 链路集设备 br0类型桥接 STP_STATE 1 
IP 链路设置设备 br0启动 

以下是这些命令的日志:

[ 152.284219] am65-cpsw-nuss 8000000.ethernet:启用交换机模式
[ 152.355117]网桥:默认情况下不再提供通过 arp/ip/ip6tables 进行过滤。 如果需要、请更新脚本以加载 br_netfilter。
[152.449101] br0:端口1 (eth0)进入阻塞状态
[152.449201] br0:端口1 (eth0)已进入禁用状态
[ 152.449261] am65-cpsw-nuss 8000000.ethernet eth0:已进入所有多播模式
[ 152.458579] am65-cpsw-nuss 8000000.ethernet eth0:已进入混杂模式
[ 152.544137] br0:端口2 (eth1)进入阻塞状态
[152.546365] br0:端口2 (eth1)已进入禁用状态
[152.546459] am65-cpsw-nuss 8000000.ethernet eth1:已进入所有多播模式
[152.567750] am65-cpsw-nuss 8000000.ethernet eth1:已进入混杂模式
[ 152.749350] br0:端口2 (eth1)进入阻塞状态
[ 152.749682] br0:端口1 (eth0)进入阻塞状态
[153.752231] br0:端口1 (eth0)进入阻塞状态
[ 153.757499] br0:端口2 (eth1)进入阻塞状态
[156.739862] br0:端口1 (eth0)进入学习状态
[156.743882] br0:端口1 (eth0)进入转发状态
[ 156.744042] br0:端口2 (eth1)已进入学习状态
[156.744132] br0:端口2 (eth1)进入转发状态

配置如下:SK-AM64的一侧连接到路由器、另一侧连接到电路板1。 

root@am64xx-evm:~# brctl show
桥接器名称桥接器 ID 支持 STP 的接口
br0 8000.66fedbc96c5d 是 eth0
eth1

root@am64xx-evm:~# bridge link show
2:eth0: MTU 1500主 br0状态转发优先级32成本19
3:eth1: MTU 1500主 br0状态转发优先级32成本5.

我可以与电路板1 (所有协议)通信、但不能与 SK-AM64通信(没有对 ping 的回复...) 如果连接到路由器的电缆断开/重新连接、SK 将不会从路由器获取 IP 地址。
SK-AM64B 使用 TI 的默认映像版本10.00.07.04:
https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-InmvA50mCw/10.00.07.04/tisdk-default-image-rt-am64xx-evm.rootfs.wic.xz

请查看有关使用 CSW3G 硬件功能设置非托管交换机的说明(缺失/有待更新)。
谢谢你。


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

    您好!

    您能否描述您的网络拓扑? 此网络中是否有 DHCP 路由器? 您能否发布 ip addr show 或 ifconfig -a 的结果?

    如果在断开电缆等链路断开事件后、您是否可以尝试删除网桥并重新构建它?  

    此致、

    Schuyler

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

    您好!

    网络由1台路由器组成:连接到它的路由器有:

    1- PC

    2- SK-AM64B (ETH1)

    路由器处于 DHCP 模式、所有开发板和 PC 都配置为 DHCP。

    SK-AM64B 的 ETH0连接到板1 (也是 Linux)、目标是使用 SK-AM64B 作为简单的交换机使板1位于同一网络上。 在更改 SK 上的任何配置之前、所有网络系统都具有分配的 IP 地址。

    在 SK-AM64B 上、如上所述启用开关并配置桥后:

    root@am64xx-evm:~# ip addr show
    1:低: MTU 65536 qdisc noqueue 状态未知组默认 qlen 1000
    链接/回送00:00:00:00:00:00 BRD 00:00:00:00:00:00
    INET 127.0.0.1/8范围主机
    VALID_LFT FOREVER PREFPTED_LFT FOREVER
    inet6 ::1/128范围主机 noprefixroute
    VALID_LFT FOREVER PREFPTED_LFT FOREVER
    2:eth0: MTU 1500 qdisc mq master br0状态组默认 qlen 1000
    Link/ether 34:08:E1:80:b7:D1 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::3608:e1ff:fe80:b7d1/64范围链接 proto kernel_ll
    VALID_LFT FOREVER PREFPTED_LFT FOREVER
    3:eth1: MTU 1500 qdisc mq master br0状态组默认 qlen 1000
    Link/ether 70:ff:76:1f:42:20 brd ff:ff:ff:ff:ff:ff
    INET 192.168.8.212/24 metric 1024 BRD 192.168.8.255范围全局动态 eth1
    VALID_lft 42556sec preferred_lft 42556sec
    inet6 fe80::72ff:76ff:fe1f:4220/64范围链接 proto kernel_ll
    VALID_LFT FOREVER PREFPTED_LFT FOREVER
    4:wlan0: MTU 1500 qdisc nofqueue 状态关闭组默认 qlen 1000
    Link/ether 6c:79:b8:fa:ff:3a brd ff:ff:ff:ff:ff:ff
    5:BR0: MTU 1500 qdisc noqueue 状态组默认 qlen 1000
    Link/ether 66:Fe:db:c9:6c:5d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::64fe: dbff:fec9:6c5d/64作用域链接 proto kernel_ll
    VALID_LFT FOREVER PREFPTED_LFT FOREVER

    root@am64xx-evm:~# ifconfig -a
    BR0:标志=4163 MTU 1500
    inet6 fe80::64fe: dbff:fec9:6c5d prefixlen 64 scopeid 0x20.
    乙醚66:Fe:db:c9:6c:5d txqueuelen 1000 (以太网)
    RX 数据包34字节1594 (1.5 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包20字节2476 (2.4KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    eth0:flags=4163 MTU 1500
    inet6 fe80::3608:e1ff:fe80:b7d1 prefixlen 64 scopeid 0x20.
    乙醚34:08:E1:80:B7:D1 txqueuelen 1000 (以太网)
    RX 数据包11字节3619 (3.5 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包238字节20211 (19.7KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    ETH1:flags=4163 MTU 1500
    INET 192.168.8.212网络掩码255.255.255.0广播192.168.8.255
    inet6 fe80::72ff:76ff:fe1f:4220 prefixlen 64 scopeid 0x20.
    以太网70:ff:76:1f:42:20 txqueuelen 1000 (以太网)
    RX 数据包401字节25308 (24.7KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包274字节18854 (18.4KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    Lo: flags=73. MTU 65536
    INET 127.0.0.1网络掩码255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10.
    loop txqueuelen 1000 (本地环回)
    RX 数据包103字节8738 (8.5 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包103字节8738 (8.5 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    wlan0:flags=4099 MTU 1500
    乙醚6c:79:b8:fa:ff:3a txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0 B)
    TX 错误0丢弃0溢出0载波0冲突0

    电路板1可以 ping 通路由器(192.168.8.1)、但无法 ping 通 SK-AM64B、PC 也无法 ping 通 SK-AM64B。

    SK-AM64B 无法对路由器、电路板1和 PC 执行 ping 操作。

    拔下路由器和 SK-AM64B 之间的电缆并插回 、可使与电路板1的互联网连接正常运行 、而无需删除并 重建网桥。 唯一的影响是 eth1没有 AND 地址、这里是 ifconfig -a:

    root@am64xx-evm:~# ifconfig -a
    BR0:标志=4163 MTU 1500
    inet6 fe80::64fe: dbff:fec9:6c5d prefixlen 64 scopeid 0x20.
    乙醚66:Fe:db:c9:6c:5d txqueuelen 1000 (以太网)
    RX 数据包168字节10014 (9.7KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包22字节2616 (2.5 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    eth0:flags=4163 MTU 1500
    inet6 fe80::3608:e1ff:fe80:b7d1 prefixlen 64 scopeid 0x20.
    乙醚34:08:E1:80:B7:D1 txqueuelen 1000 (以太网)
    RX 数据包11字节3619 (3.5 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包772字节53108 (51.8 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    ETH1:flags=4163 MTU 1500
    inet6 fe80::72ff:76ff:fe1f:4220 prefixlen 64 scopeid 0x20.
    以太网70:ff:76:1f:42:20 txqueuelen 1000 (以太网)
    RX 数据包536字节36495 (35.6 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包924字节54892 (53.6 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    Lo: flags=73. MTU 65536
    INET 127.0.0.1网络掩码255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10.
    loop txqueuelen 1000 (本地环回)
    RX 数据包180字节15826 (15.4KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包180字节15826 (15.4KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    wlan0:flags=4099 MTU 1500
    乙醚6c:79:b8:fa:ff:3a txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0 B)
    TX 错误0丢弃0溢出0载波0冲突0

    否、删除网桥不会导致 eth1获得地址:

    IP 链路设置设备 br0关闭
    ip link del br0
    DevLink 开发参数设置 platform/8000000.ethernet 名称 switch_mode 值错误 cmode 运行时

    需要完全重启。

    好像交换机的第3个端口(CPSW3G)未连接:eth0和 eth1已连接、但 Sitara 侧没有连接。

    如何在 AM64x 上测试开关功能?是否在最新的 SDK 上进行了测试?

    谢谢你。

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

    您好!

    感谢您提供的信息。 我注意到 eth1有 IP 地址、但在网桥设置后则没有 br0。 我认为您需要在设置桥接器之前同时降低 eth0和 eth1。 我将继续查看您发布的内容、但请先尝试执行该步骤。

    此致、

    Schuyler

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

    您好!  

    我们有一个问题是、是否为接口分配了 IP 地址或依赖 DHCP? 询问的原因是我看到 DHCP 和所有接口都分配了 IP 地址、我想确认所有 IP 地址都来自 DHCP 服务器。

    此致、

    Schuyler

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

    你好、MH、

    为了添加到 Schuyler 的评论中,我看了您在初始帖子中分享的桥设置文档: https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components /内核/ Kernel_Drivers Network/CPSW3g.html#bridge-setup 

    您似乎没有运行网桥设置中列为必需的两个命令? (请参阅下面的内容以了解我指的内容)除了已运行用于桥接设置的命令之外、您是否可以尝试运行下面列出的两个桥接器命令、并查看是否能够在连接的设备(板#1)上获得 IP 地址?

    [*] bridge vlan add dev br0 vid 1 self
    [*] bridge vlan add dev br0 vid 1 pvid untagged self
    [*] if vlan_filtering=1, where default_pvid=1
    
    Note: Steps [*] are mandatory.

    -道林

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

    您好!

    如前所述、所有接口都依赖于 DHCP、除了列出的接口之外、默认 SDK 配置中不会对接口进行进一步的操作。

    实际上、br0没有获取 IP 地址。

    尝试设置接口已关闭的桥接器、结果最差、下面是脚本:

    ip link set dev eth0 down
    ip link set dev eth1 down
    IP 链路添加名称 br0类型桥接器
    DevLink 开发参数设置 platform/8000000.ethernet 名称 switch_mode 值 true cmode runtime
    IP 链路集设备 eth0主设备 br0
    IP 链路集 DEV ETH1主器件 br0
    ip link set dev eth0 up
    ip link set dev eth1 up
    IP 链路设置设备 br0启动

    第一个问题:cpsw-nuss 驱动程序没有反馈(我没有得到此"am65-cpsw-nuss 80000.ethernet: enable switch mode")。 然后交换机无法工作、 板1无法获取 IP 地址。

    此外、 当 我删除桥接器时、使用上面的脚本会导致内核崩溃。

    此致、

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

    尊敬的 Daolin:

    首先、我们不需要为基本的非托管网桥(无 netwrok 段、无流量控制...)设置 VLAN。 第二行不是 Linux CLI 命令:如果 VLAN_FILTERING=1、其中 DEFAULT_PVID=1"、什么是"[*]?

    在所有情况下,我使用下面的脚本看看是否有任何即兴发挥:

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

    正如预期的那样、我得到的结果与没有网桥 VLAN 线的原始脚本完全相同:同样、问题不是 board #1、board #1正在获取 IP 地址、我可以通过 ssh 从同一网络上的 PC 连接到它。 问题在于 SK-AM64B 未在 BR0上获取 IP 地址、因此这表明交换机部分工作(3个端口中有2个)。 脚本后是 ifconfig -a:

    root@am64xx-evm:~# ifconfig -a
    BR0:标志=4163 MTU 1500
    inet6 fe80::64fe: dbff:fec9:6c5d prefixlen 64 scopeid 0x20.
    乙醚66:Fe:db:c9:6c:5d txqueuelen 1000 (以太网)
    RX 数据包99字节10693 (10.4 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包22字节2584 (2.5 KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    eth0:flags=4163 MTU 1500
    inet6 fe80::3608:e1ff:fe80:b7d1 prefixlen 64 scopeid 0x20.
    乙醚34:08:E1:80:B7:D1 txqueuelen 1000 (以太网)
    RX 数据包24字节5038 (4.9KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包52字节8350 (8.1KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    ETH1:flags=4163 MTU 1500
    INET 192.168.8.212网络掩码255.255.255.0广播192.168.8.255
    inet6 fe80::72ff:76ff:fe1f:4220 prefixlen 64 scopeid 0x20.
    以太网70:ff:76:1f:42:20 txqueuelen 1000 (以太网)
    RX 数据包91字节10777 (10.5 KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包145字节11638 (11.3KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    Lo: flags=73. MTU 65536
    INET 127.0.0.1网络掩码255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10.
    loop txqueuelen 1000 (本地环回)
    RX 数据包55字节5634 (5.5KiB)
    RX 错误0丢弃0溢出0帧0
    TX 数据包55字节5634 (5.5KiB)
    TX 错误0丢弃0溢出0载波0冲突0

    wlan0:flags=4099 MTU 1500
    乙醚6c:79:b8:fa:ff:3a txqueuelen 1000 (以太网)
    RX 数据包0字节0 (0.0B)
    RX 错误0丢弃0溢出0帧0
    TX 数据包0字节0 (0.0 B)
    TX 错误0丢弃0溢出0载波0冲突0

    能否提供在您的芯片和 SK 电路板上工作的极简桥接配置脚本(非托管)?

    谢谢!

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

    您好、mH

    首先、我们不需要为基本的非托管网桥设置 VLAN (无 netwrok 段、无流量控制...)。 第二行不是 Linux CLI 命令:如果 VLAN_FILTERING=1、其中 DEFAULT_PVID=1"、什么是"[*]?[/QUOT]

    请访问 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1307112/am6442-what-is-bridge-command-added-in-sdk06_01_00_08 和 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1287911/am625-enabling-cpsw-switch-prevents-ethernet-communication/4888546#4888546 以了解原因  两个  地址和密码。 您不需要第3行。

    bridge vlan add dev br0 vid 1 self
    bridge vlan add dev br0 vid 1 pvid untagged self

    问题在于 SK-AM64B 在 br0上没有 IP 地址、因此这表明交换机部分工作(3个端口中有2个)

    您提到3个端口中的2个。 由于 eth0和 eth1配置为交换机的一部分、您指的第三个端口是什么? SK-AM64B 只有2个外部以太网端口。

    -道林

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

    最新动态:

    您是否可以在设置桥接器时使用的命令后尝试运行"udhcpc -i br0"? 通过运行此命令、您应该能够在 br0接口上获取 IP 地址。

    以下是我在 SK-AM64B 上进行的测试日志、该测试使用 DHCP 服务器将 eth0连接到主机 PC、将 eth1连接到另一个器件。

    172.168.1.1是我的主机 PC、172.168.1.148是 SK-AM64B 上 br0的 IP 地址、172.168.1.57是分配给连接设备的 IP 地址。

    root@am64xx-evm:~# uname -a
    Linux am64xx-evm 6.6.32-g588e4fa18099 #8 SMP PREEMPT Mon Oct 28 11:08:04 CDT 2024 aarch64 GNU/Linux
    root@am64xx-evm:~# cat switch_setup.sh 
    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
    udhcpc -i br0
    root@am64xx-evm:~# sh switch_setup.sh 
    [  32.166524] am65-cpsw-nuss 8000000.ethernet: Enable switch mode
    [  32.256369] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
    [  32.362481] br0: port 1(eth0) entered blocking state
    [  32.367880] br0: port 1(eth0) entered disabled state
    [  32.373123] am65-cpsw-nuss 8000000.ethernet eth0: entered allmulticast mode
    [  32.385920] am65-cpsw-nuss 8000000.ethernet eth0: entered promiscuous mode
    [  32.398274] kauditd_printk_skb: 5 callbacks suppressed
    [  32.398302] audit: type=1700 audit(1709210012.076:19): dev=eth0 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
    [  32.433606] audit: type=1300 audit(1709210012.076:19): arch=c00000b7 syscall=211 success=yes exit=40 a0=3 a1=ffffd91a0668 a2=0 a3=1 items=0 ppid=902 pid=911 auid=4294967295 uid=0 gid=0 euid=0 suid=0 f)
    [  32.460126] br0: port 2(eth1) entered blocking state
    [  32.465425] br0: port 2(eth1) entered disabled state
    [  32.466551] audit: type=1327 audit(1709210012.076:19): proctitle=6970006C696E6B00736574006465760065746830006D617374657200627230
    [  32.470853] am65-cpsw-nuss 8000000.ethernet eth1: entered allmulticast mode
    [  32.495464] am65-cpsw-nuss 8000000.ethernet eth1: entered promiscuous mode
    [  32.503560] audit: type=1700 audit(1709210012.172:20): dev=eth1 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
    [  32.515199] audit: type=1300 audit(1709210012.172:20): arch=c00000b7 syscall=211 success=yes exit=40 a0=3 a1=fffffee13698 a2=0 a3=1 items=0 ppid=902 pid=917 auid=4294967295 uid=0 gid=0 euid=0 suid=0 f)
    [  32.537459] br0: port 2(eth1) entered blocking state
    [  32.542018] audit: type=1327 audit(1709210012.172:20): proctitle=6970006C696E6B00736574006465760065746831006D617374657200627230
    [  32.546893] br0: port 2(eth1) entered forwarding state
    [  32.547036] br0: port 1(eth0) entered blocking state
    [  32.568520] br0: port 1(eth0) entered forwarding state
    udhcpc: started, v1.36.1
    Dropped protocol specifier '.udhcpc' from 'br0.udhcpc'. Using 'br0' (ifindex=5).
    udhcpc: broadcasting discover
    udhcpc: broadcasting select for 172.168.1.148, server 172.168.1.1
    udhcpc: lease of 172.168.1.148 obtained from 172.168.1.1, lease time 494
    Dropped protocol specifier '.udhcpc' from 'br0.udhcpc'. Using 'br0' (ifindex=5).
    No DNS servers specified, refusing operation.
    root@am64xx-evm:~# ifconfig 
    br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
           inet 172.168.1.148 netmask 255.255.255.0 broadcast 172.168.1.255
           inet6 fe80::3cd4:dbff:fefb:bba9 prefixlen 64 scopeid 0x20<link>
           ether 3e:d4:db:fb:bb:a9 txqueuelen 1000 (Ethernet)
           RX packets 24 bytes 3382 (3.3 KiB)
           RX errors 0 dropped 0 overruns 0 frame 0
           TX packets 30 bytes 4666 (4.5 KiB)
           TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
           inet6 fe80::1e63:49ff:fe1a:d2a9 prefixlen 64 scopeid 0x20<link>
           ether 1c:63:49:1a:d2:a9 txqueuelen 1000 (Ethernet)
           RX packets 19 bytes 3750 (3.6 KiB)
           RX errors 0 dropped 0 overruns 0 frame 0
           TX packets 49 bytes 8238 (8.0 KiB)
           TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
           inet 172.168.1.136 netmask 255.255.255.0 broadcast 172.168.1.255
           inet6 fe80::72ff:76ff:fe1f:42ef prefixlen 64 scopeid 0x20<link>
           ether 70:ff:76:1f:42:ef txqueuelen 1000 (Ethernet)
           RX packets 15 bytes 2032 (1.9 KiB)
           RX errors 0 dropped 0 overruns 0 frame 0
           TX packets 74 bytes 11904 (11.6 KiB)
           TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
           inet 127.0.0.1 netmask 255.0.0.0
           inet6 ::1 prefixlen 128 scopeid 0x10<host>
           loop txqueuelen 1000 (Local Loopback)
           RX packets 98 bytes 9166 (8.9 KiB)
           RX errors 0 dropped 0 overruns 0 frame 0
           TX packets 98 bytes 9166 (8.9 KiB)
           TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    
    wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
           ether 6c:30:2a:16:09:93 txqueuelen 1000 (Ethernet)
           RX packets 0 bytes 0 (0.0 B)
           RX errors 0 dropped 0 overruns 0 frame 0
           TX packets 0 bytes 0 (0.0 B)
           TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    
    root@am64xx-evm:~# ping 172.168.1.1 -I eth1
    PING 172.168.1.1 (172.168.1.1) from 172.168.1.136 eth1: 56(84) bytes of data.
    ^C
    --- 172.168.1.1 ping statistics ---
    2 packets transmitted, 0 received, 100% packet loss, time 1019ms
    
    root@am64xx-evm:~# ping 172.168.1.1 -I br0 
    PING 172.168.1.1 (172.168.1.1) from 172.168.1.148 br0: 56(84) bytes of data.
    64 bytes from 172.168.1.1: icmp_seq=1 ttl=64 time=0.490 ms
    64 bytes from 172.168.1.1: icmp_seq=2 ttl=64 time=0.485 ms
    64 bytes from 172.168.1.1: icmp_seq=3 ttl=64 time=0.495 ms
    64 bytes from 172.168.1.1: icmp_seq=4 ttl=64 time=0.510 ms
    ^C
    --- 172.168.1.1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3052ms
    rtt min/avg/max/mdev = 0.485/0.495/0.510/0.009 ms
    root@am64xx-evm:~#  

    请尝试一下、如果可行、请告诉我们。

    -道林

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

    尊敬的 Daolin:

    3个端口:CPSW3G 代表"3端口千兆位以太网交换机"、2个端口是2个 RGMII 端口、第三个端口是处理器端。

    感谢您提供的链接实际上、似乎需要 VLAN 配置、您在第二个链接上使用的脚本似乎工作正常、但我相信它没有启用硬件交换机、而是依靠软件来进行数据包的切换。  原因如下:

    如果在两个接口都关闭时尝试将"switch_mode"设置为 true、则命令将在 cpsw-nuss 驱动程序中丢弃、因为消息 "am65-cpsw-nuss 80000.ethernet:enable switch mode"不会回显。 但是、通过至少建立一个接口、我们将实现该消息。 我认为正确的脚本是:

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

    下面是日志并注意红色行:

    [ 40.920548] am65-cpsw-nuss 8000000.ethernet eth0:链路断开
    [ 40.949230] am65-cpsw-nuss 8000000.ethernet eth1:link is down (am65-cpsw-nuss 8000000.ethernet eth1:链路断开)
    [ 41.988178] am65-cpsw-nuss 8000000.ethernet eth0:phy [8000f00.MDIO:00]驱动器[TI DP83867](IRQ=poll)
    [ 41.988242] am65-cpsw-nuss 8000000.ethernet eth0:配置 phy/RGMII-rxid 链路模式
    [ 42.015530] am65-cpsw-nuss 8000000.ethernet eth1:phy [8000f00.MDIO:01]驱动器[TI DP83867](IRQ=poll)
    [ 42.015598] am65-cpsw-nuss 80000.ethernet eth1:配置 phy/RGMII-rxid 链路模式
    [ 44.070422] am65-cpsw-nuss 8000000.ethernet eth0:链路已接通- 100Mbps/全-流控制 Rx/TX
    [ 44.088938] am65-cpsw-nuss 8000000.ethernet:启用交换机模式
    [ 45.094217] am65-cpsw-nuss 8000000.ethernet eth1:链路接通- 1Gbps/全-流控制 Rx/TX
    [ 45.148856]网桥:默认情况下、通过 arp/ip/ip6tables 进行过滤将不再可用。 如果需要、请更新脚本以加载 br_netfilter。
    [46.199249] br0:端口1 (eth0)进入阻塞状态
    [46.199352] br0:端口1 (eth0)已进入禁用状态
    [46.199410] am65-cpsw-nuss 8000000.ethernet eth0:已进入所有多播模式
    [ 46.205339] am65-cpsw-nuss 8000000.ethernet eth0:已进入混杂模式
    [46.225137] br0:端口2 (eth1)进入阻塞状态
    [46.225191] br0:端口2 (eth1)已进入禁用状态
    [46.225248] am65-cpsw-nuss 8000000.ethernet eth1:已进入所有多播模式
    [46.233017] am65-cpsw-nuss 8000000.ethernet eth1:已进入混杂模式
    [46.361977] br0:端口2 (eth1)进入阻塞状态
    [ 46.364869] br0:端口1 (eth0)进入阻塞状态
    [ 47.362123] br0:端口1 (eth0)进入阻塞状态
    [ 47.365477] br0:端口2 (eth1)进入阻塞状态

    现在这是工作的,我试图阅读 ALE 表,但似乎这个应用程序不再起作用(它不能建立在内核版本6.x.x ):

    git@git.ti.com:switch-config/switch-config.git 

    是否有其他用户空间意味着从当前内核上的驱动程序读取 ALE 表?

    谢谢你。

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

    您好、mH

    [报价 userid="466540" url="~/support/processors-group/processors/f/processors-forum/1448495/sk-am64b-cpsw-switch-mode-not-working/5562865 #5562865"]

    现在这是工作的,我试图阅读 ALE 表,但似乎这个应用程序不再起作用(它不能建立在内核版本6.x.x ):

    git@git.ti.com:switch-config/switch-config.git 

    是否有其他用户空间意味着从当前内核上的驱动程序读取 ALE 表?

    [报价]

    您能解释一下您当前是如何阅读 ALE 表的吗?

    -道林

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

    尊敬的 Daolin:

    我计划使用 switch-config、但这不再是一个选项、所以我看的是 ioctl 和 ethtool 命令。

    如果我使用 cmd ethtool_Gregs ,我应该有 ALE 表的转储(查看函数 am65_cpsw_get_regs()),然后搜索 表的模块 id = 9。

    我可以使用什么更简单的方法吗?

    谢谢你。