Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation: net: dsa: Describe DSA switch configuration

Document DSA tagged and VLAN based switch configuration by showcases.

Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Benedikt Spranger and committed by
David S. Miller
58dd7a8d 31d16664

+293
+292
Documentation/networking/dsa/configuration.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ======================================= 4 + DSA switch configuration from userspace 5 + ======================================= 6 + 7 + The DSA switch configuration is not integrated into the main userspace 8 + network configuration suites by now and has to be performed manualy. 9 + 10 + .. _dsa-config-showcases: 11 + 12 + Configuration showcases 13 + ----------------------- 14 + 15 + To configure a DSA switch a couple of commands need to be executed. In this 16 + documentation some common configuration scenarios are handled as showcases: 17 + 18 + *single port* 19 + Every switch port acts as a different configurable Ethernet port 20 + 21 + *bridge* 22 + Every switch port is part of one configurable Ethernet bridge 23 + 24 + *gateway* 25 + Every switch port except one upstream port is part of a configurable 26 + Ethernet bridge. 27 + The upstream port acts as different configurable Ethernet port. 28 + 29 + All configurations are performed with tools from iproute2, which is available 30 + at https://www.kernel.org/pub/linux/utils/net/iproute2/ 31 + 32 + Through DSA every port of a switch is handled like a normal linux Ethernet 33 + interface. The CPU port is the switch port connected to an Ethernet MAC chip. 34 + The corresponding linux Ethernet interface is called the master interface. 35 + All other corresponding linux interfaces are called slave interfaces. 36 + 37 + The slave interfaces depend on the master interface. They can only brought up, 38 + when the master interface is up. 39 + 40 + In this documentation the following Ethernet interfaces are used: 41 + 42 + *eth0* 43 + the master interface 44 + 45 + *lan1* 46 + a slave interface 47 + 48 + *lan2* 49 + another slave interface 50 + 51 + *lan3* 52 + a third slave interface 53 + 54 + *wan* 55 + A slave interface dedicated for upstream traffic 56 + 57 + Further Ethernet interfaces can be configured similar. 58 + The configured IPs and networks are: 59 + 60 + *single port* 61 + * lan1: 192.0.2.1/30 (192.0.2.0 - 192.0.2.3) 62 + * lan2: 192.0.2.5/30 (192.0.2.4 - 192.0.2.7) 63 + * lan3: 192.0.2.9/30 (192.0.2.8 - 192.0.2.11) 64 + 65 + *bridge* 66 + * br0: 192.0.2.129/25 (192.0.2.128 - 192.0.2.255) 67 + 68 + *gateway* 69 + * br0: 192.0.2.129/25 (192.0.2.128 - 192.0.2.255) 70 + * wan: 192.0.2.1/30 (192.0.2.0 - 192.0.2.3) 71 + 72 + .. _dsa-tagged-configuration: 73 + 74 + Configuration with tagging support 75 + ---------------------------------- 76 + 77 + The tagging based configuration is desired and supported by the majority of 78 + DSA switches. These switches are capable to tag incoming and outgoing traffic 79 + without using a VLAN based configuration. 80 + 81 + single port 82 + ~~~~~~~~~~~ 83 + 84 + .. code-block:: sh 85 + 86 + # configure each interface 87 + ip addr add 192.0.2.1/30 dev lan1 88 + ip addr add 192.0.2.5/30 dev lan2 89 + ip addr add 192.0.2.9/30 dev lan3 90 + 91 + # The master interface needs to be brought up before the slave ports. 92 + ip link set eth0 up 93 + 94 + # bring up the slave interfaces 95 + ip link set lan1 up 96 + ip link set lan2 up 97 + ip link set lan3 up 98 + 99 + bridge 100 + ~~~~~~ 101 + 102 + .. code-block:: sh 103 + 104 + # The master interface needs to be brought up before the slave ports. 105 + ip link set eth0 up 106 + 107 + # bring up the slave interfaces 108 + ip link set lan1 up 109 + ip link set lan2 up 110 + ip link set lan3 up 111 + 112 + # create bridge 113 + ip link add name br0 type bridge 114 + 115 + # add ports to bridge 116 + ip link set dev lan1 master br0 117 + ip link set dev lan2 master br0 118 + ip link set dev lan3 master br0 119 + 120 + # configure the bridge 121 + ip addr add 192.0.2.129/25 dev br0 122 + 123 + # bring up the bridge 124 + ip link set dev br0 up 125 + 126 + gateway 127 + ~~~~~~~ 128 + 129 + .. code-block:: sh 130 + 131 + # The master interface needs to be brought up before the slave ports. 132 + ip link set eth0 up 133 + 134 + # bring up the slave interfaces 135 + ip link set wan up 136 + ip link set lan1 up 137 + ip link set lan2 up 138 + 139 + # configure the upstream port 140 + ip addr add 192.0.2.1/30 dev wan 141 + 142 + # create bridge 143 + ip link add name br0 type bridge 144 + 145 + # add ports to bridge 146 + ip link set dev lan1 master br0 147 + ip link set dev lan2 master br0 148 + 149 + # configure the bridge 150 + ip addr add 192.0.2.129/25 dev br0 151 + 152 + # bring up the bridge 153 + ip link set dev br0 up 154 + 155 + .. _dsa-vlan-configuration: 156 + 157 + Configuration without tagging support 158 + ------------------------------------- 159 + 160 + A minority of switches are not capable to use a taging protocol 161 + (DSA_TAG_PROTO_NONE). These switches can be configured by a VLAN based 162 + configuration. 163 + 164 + single port 165 + ~~~~~~~~~~~ 166 + The configuration can only be set up via VLAN tagging and bridge setup. 167 + 168 + .. code-block:: sh 169 + 170 + # tag traffic on CPU port 171 + ip link add link eth0 name eth0.1 type vlan id 1 172 + ip link add link eth0 name eth0.2 type vlan id 2 173 + ip link add link eth0 name eth0.3 type vlan id 3 174 + 175 + # The master interface needs to be brought up before the slave ports. 176 + ip link set eth0 up 177 + ip link set eth0.1 up 178 + ip link set eth0.2 up 179 + ip link set eth0.3 up 180 + 181 + # bring up the slave interfaces 182 + ip link set lan1 up 183 + ip link set lan1 up 184 + ip link set lan3 up 185 + 186 + # create bridge 187 + ip link add name br0 type bridge 188 + 189 + # activate VLAN filtering 190 + ip link set dev br0 type bridge vlan_filtering 1 191 + 192 + # add ports to bridges 193 + ip link set dev lan1 master br0 194 + ip link set dev lan2 master br0 195 + ip link set dev lan3 master br0 196 + 197 + # tag traffic on ports 198 + bridge vlan add dev lan1 vid 1 pvid untagged 199 + bridge vlan add dev lan2 vid 2 pvid untagged 200 + bridge vlan add dev lan3 vid 3 pvid untagged 201 + 202 + # configure the VLANs 203 + ip addr add 192.0.2.1/30 dev eth0.1 204 + ip addr add 192.0.2.5/30 dev eth0.2 205 + ip addr add 192.0.2.9/30 dev eth0.3 206 + 207 + # bring up the bridge devices 208 + ip link set br0 up 209 + 210 + 211 + bridge 212 + ~~~~~~ 213 + 214 + .. code-block:: sh 215 + 216 + # tag traffic on CPU port 217 + ip link add link eth0 name eth0.1 type vlan id 1 218 + 219 + # The master interface needs to be brought up before the slave ports. 220 + ip link set eth0 up 221 + ip link set eth0.1 up 222 + 223 + # bring up the slave interfaces 224 + ip link set lan1 up 225 + ip link set lan2 up 226 + ip link set lan3 up 227 + 228 + # create bridge 229 + ip link add name br0 type bridge 230 + 231 + # activate VLAN filtering 232 + ip link set dev br0 type bridge vlan_filtering 1 233 + 234 + # add ports to bridge 235 + ip link set dev lan1 master br0 236 + ip link set dev lan2 master br0 237 + ip link set dev lan3 master br0 238 + ip link set eth0.1 master br0 239 + 240 + # tag traffic on ports 241 + bridge vlan add dev lan1 vid 1 pvid untagged 242 + bridge vlan add dev lan2 vid 1 pvid untagged 243 + bridge vlan add dev lan3 vid 1 pvid untagged 244 + 245 + # configure the bridge 246 + ip addr add 192.0.2.129/25 dev br0 247 + 248 + # bring up the bridge 249 + ip link set dev br0 up 250 + 251 + gateway 252 + ~~~~~~~ 253 + 254 + .. code-block:: sh 255 + 256 + # tag traffic on CPU port 257 + ip link add link eth0 name eth0.1 type vlan id 1 258 + ip link add link eth0 name eth0.2 type vlan id 2 259 + 260 + # The master interface needs to be brought up before the slave ports. 261 + ip link set eth0 up 262 + ip link set eth0.1 up 263 + ip link set eth0.2 up 264 + 265 + # bring up the slave interfaces 266 + ip link set wan up 267 + ip link set lan1 up 268 + ip link set lan2 up 269 + 270 + # create bridge 271 + ip link add name br0 type bridge 272 + 273 + # activate VLAN filtering 274 + ip link set dev br0 type bridge vlan_filtering 1 275 + 276 + # add ports to bridges 277 + ip link set dev wan master br0 278 + ip link set eth0.1 master br0 279 + ip link set dev lan1 master br0 280 + ip link set dev lan2 master br0 281 + 282 + # tag traffic on ports 283 + bridge vlan add dev lan1 vid 1 pvid untagged 284 + bridge vlan add dev lan2 vid 1 pvid untagged 285 + bridge vlan add dev wan vid 2 pvid untagged 286 + 287 + # configure the VLANs 288 + ip addr add 192.0.2.1/30 dev eth0.2 289 + ip addr add 192.0.2.129/25 dev br0 290 + 291 + # bring up the bridge devices 292 + ip link set br0 up
+1
Documentation/networking/dsa/index.rst
··· 9 9 bcm_sf2 10 10 lan9303 11 11 sja1105 12 + configuration