0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 ===================================================================
0004 Texas Instruments K3 AM65 CPSW NUSS switchdev based ethernet driver
0005 ===================================================================
0006
0007 :Version: 1.0
0008
0009 Port renaming
0010 =============
0011
0012 In order to rename via udev::
0013
0014 ip -d link show dev sw0p1 | grep switchid
0015
0016 SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}==<switchid>, \
0017 ATTR{phys_port_name}!="", NAME="sw0$attr{phys_port_name}"
0018
0019
0020 Multi mac mode
0021 ==============
0022
0023 - The driver is operating in multi-mac mode by default, thus
0024 working as N individual network interfaces.
0025
0026 Devlink configuration parameters
0027 ================================
0028
0029 See Documentation/networking/devlink/am65-nuss-cpsw-switch.rst
0030
0031 Enabling "switch"
0032 =================
0033
0034 The Switch mode can be enabled by configuring devlink driver parameter
0035 "switch_mode" to 1/true::
0036
0037 devlink dev param set platform/c000000.ethernet \
0038 name switch_mode value true cmode runtime
0039
0040 This can be done regardless of the state of Port's netdev devices - UP/DOWN, but
0041 Port's netdev devices have to be in UP before joining to the bridge to avoid
0042 overwriting of bridge configuration as CPSW switch driver completely reloads its
0043 configuration when first port changes its state to UP.
0044
0045 When the both interfaces joined the bridge - CPSW switch driver will enable
0046 marking packets with offload_fwd_mark flag.
0047
0048 All configuration is implemented via switchdev API.
0049
0050 Bridge setup
0051 ============
0052
0053 ::
0054
0055 devlink dev param set platform/c000000.ethernet \
0056 name switch_mode value true cmode runtime
0057
0058 ip link add name br0 type bridge
0059 ip link set dev br0 type bridge ageing_time 1000
0060 ip link set dev sw0p1 up
0061 ip link set dev sw0p2 up
0062 ip link set dev sw0p1 master br0
0063 ip link set dev sw0p2 master br0
0064
0065 [*] bridge vlan add dev br0 vid 1 pvid untagged self
0066
0067 [*] if vlan_filtering=1. where default_pvid=1
0068
0069 Note. Steps [*] are mandatory.
0070
0071
0072 On/off STP
0073 ==========
0074
0075 ::
0076
0077 ip link set dev BRDEV type bridge stp_state 1/0
0078
0079 VLAN configuration
0080 ==================
0081
0082 ::
0083
0084 bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1
0085
0086 Note. This step is mandatory for bridge/default_pvid.
0087
0088 Add extra VLANs
0089 ===============
0090
0091 1. untagged::
0092
0093 bridge vlan add dev sw0p1 vid 100 pvid untagged master
0094 bridge vlan add dev sw0p2 vid 100 pvid untagged master
0095 bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100
0096
0097 2. tagged::
0098
0099 bridge vlan add dev sw0p1 vid 100 master
0100 bridge vlan add dev sw0p2 vid 100 master
0101 bridge vlan add dev br0 vid 100 pvid tagged self <---- Add cpu port to VLAN100
0102
0103 FDBs
0104 ----
0105
0106 FDBs are automatically added on the appropriate switch port upon detection
0107
0108 Manually adding FDBs::
0109
0110 bridge fdb add aa:bb:cc:dd:ee:ff dev sw0p1 master vlan 100
0111 bridge fdb add aa:bb:cc:dd:ee:fe dev sw0p2 master <---- Add on all VLANs
0112
0113 MDBs
0114 ----
0115
0116 MDBs are automatically added on the appropriate switch port upon detection
0117
0118 Manually adding MDBs::
0119
0120 bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent vid 100
0121 bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent <---- Add on all VLANs
0122
0123 Multicast flooding
0124 ==================
0125 CPU port mcast_flooding is always on
0126
0127 Turning flooding on/off on swithch ports:
0128 bridge link set dev sw0p1 mcast_flood on/off
0129
0130 Access and Trunk port
0131 =====================
0132
0133 ::
0134
0135 bridge vlan add dev sw0p1 vid 100 pvid untagged master
0136 bridge vlan add dev sw0p2 vid 100 master
0137
0138
0139 bridge vlan add dev br0 vid 100 self
0140 ip link add link br0 name br0.100 type vlan id 100
0141
0142 Note. Setting PVID on Bridge device itself works only for
0143 default VLAN (default_pvid).