Texas Instruments 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 埠多播泛洪始終開啟
開啟/關閉交換機埠泛洪: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)。