Back to home page

OSCL-LXR

 
 

    


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).