德州仪器 K3 AM65 CPSW NUSS 基于 switchdev 的以太网驱动程序¶
- 版本:
1.0
端口重命名¶
为了通过 udev 重命名
ip -d link show dev sw0p1 | grep switchid
SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}==<switchid>, \
ATTR{phys_port_name}!="", NAME="sw0$attr{phys_port_name}"
多 MAC 模式¶
该驱动程序默认以多 MAC 模式运行,因此作为 N 个独立的网络接口工作。
Devlink 配置参数¶
启用“交换机”¶
可以通过将 devlink 驱动程序参数 “switch_mode” 配置为 1/true 来启用交换机模式
devlink dev param set platform/c000000.ethernet \
name switch_mode value true cmode runtime
这可以在端口的 netdev 设备状态(UP/DOWN)无关的情况下完成,但端口的 netdev 设备必须处于 UP 状态,然后才能加入网桥,以避免在第一个端口将其状态更改为 UP 时覆盖网桥配置,因为 CPSW 交换机驱动程序会完全重新加载其配置。
当两个接口都加入网桥后,CPSW 交换机驱动程序将启用使用 offload_fwd_mark 标志标记数据包。
所有配置均通过 switchdev API 实现。
网桥设置¶
devlink dev param set platform/c000000.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 sw0p1 up
ip link set dev sw0p2 up
ip link set dev sw0p1 master br0
ip link set dev sw0p2 master br0
[*] bridge vlan add dev br0 vid 1 pvid untagged self
[*] if vlan_filtering=1. where default_pvid=1
Note. Steps [*] are mandatory.
开启/关闭 STP¶
ip link set dev BRDEV type bridge stp_state 1/0
VLAN 配置¶
bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1
注意。此步骤对于网桥/default_pvid 是强制性的。
添加额外的 VLAN¶
未标记
bridge vlan add dev sw0p1 vid 100 pvid untagged master bridge vlan add dev sw0p2 vid 100 pvid untagged master bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100已标记
bridge vlan add dev sw0p1 vid 100 master bridge vlan add dev sw0p2 vid 100 master bridge vlan add dev br0 vid 100 pvid tagged self <---- Add cpu port to VLAN100
FDB¶
FDB 会在检测到时自动添加到相应的交换机端口
手动添加 FDB
bridge fdb add aa:bb:cc:dd:ee:ff dev sw0p1 master vlan 100
bridge fdb add aa:bb:cc:dd:ee:fe dev sw0p2 master <---- Add on all VLANs
MDB¶
MDB 会在检测到时自动添加到相应的交换机端口
手动添加 MDB
bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent vid 100
bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent <---- Add on all VLANs
多播洪泛¶
CPU 端口 mcast_flooding 始终开启
在交换机端口上开启/关闭洪泛:bridge link set dev sw0p1 mcast_flood on/off
接入和干线端口¶
bridge vlan add dev sw0p1 vid 100 pvid untagged master
bridge vlan add dev sw0p2 vid 100 master
bridge vlan add dev br0 vid 100 self
ip link add link br0 name br0.100 type vlan id 100
注意。在网桥设备本身上设置 PVID 仅适用于默认 VLAN (default_pvid)。