mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 12:24:34 +08:00
Merge branch 'dsa-doc-fixups'
Vladimir Oltean says: ==================== DSA/switchdev documentation fixups These are some small fixups after the recently merged documentation update. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
6ef4f40993
@ -34,8 +34,15 @@ interface. The CPU port is the switch port connected to an Ethernet MAC chip.
|
||||
The corresponding linux Ethernet interface is called the master interface.
|
||||
All other corresponding linux interfaces are called slave interfaces.
|
||||
|
||||
The slave interfaces depend on the master interface. They can only brought up,
|
||||
when the master interface is up.
|
||||
The slave interfaces depend on the master interface being up in order for them
|
||||
to send or receive traffic. Prior to kernel v5.12, the state of the master
|
||||
interface had to be managed explicitly by the user. Starting with kernel v5.12,
|
||||
the behavior is as follows:
|
||||
|
||||
- when a DSA slave interface is brought up, the master interface is
|
||||
automatically brought up.
|
||||
- when the master interface is brought down, all DSA slave interfaces are
|
||||
automatically brought down.
|
||||
|
||||
In this documentation the following Ethernet interfaces are used:
|
||||
|
||||
@ -78,79 +85,76 @@ The tagging based configuration is desired and supported by the majority of
|
||||
DSA switches. These switches are capable to tag incoming and outgoing traffic
|
||||
without using a VLAN based configuration.
|
||||
|
||||
single port
|
||||
~~~~~~~~~~~
|
||||
*single port*
|
||||
.. code-block:: sh
|
||||
|
||||
.. code-block:: sh
|
||||
# configure each interface
|
||||
ip addr add 192.0.2.1/30 dev lan1
|
||||
ip addr add 192.0.2.5/30 dev lan2
|
||||
ip addr add 192.0.2.9/30 dev lan3
|
||||
|
||||
# configure each interface
|
||||
ip addr add 192.0.2.1/30 dev lan1
|
||||
ip addr add 192.0.2.5/30 dev lan2
|
||||
ip addr add 192.0.2.9/30 dev lan3
|
||||
# For kernels earlier than v5.12, the master interface needs to be
|
||||
# brought up manually before the slave ports.
|
||||
ip link set eth0 up
|
||||
|
||||
# The master interface needs to be brought up before the slave ports.
|
||||
ip link set eth0 up
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
*bridge*
|
||||
.. code-block:: sh
|
||||
|
||||
bridge
|
||||
~~~~~~
|
||||
# For kernels earlier than v5.12, the master interface needs to be
|
||||
# brought up manually before the slave ports.
|
||||
ip link set eth0 up
|
||||
|
||||
.. code-block:: sh
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
|
||||
# The master interface needs to be brought up before the slave ports.
|
||||
ip link set eth0 up
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
# add ports to bridge
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
ip link set dev lan3 master br0
|
||||
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
# configure the bridge
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
|
||||
# add ports to bridge
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
ip link set dev lan3 master br0
|
||||
# bring up the bridge
|
||||
ip link set dev br0 up
|
||||
|
||||
# configure the bridge
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
*gateway*
|
||||
.. code-block:: sh
|
||||
|
||||
# bring up the bridge
|
||||
ip link set dev br0 up
|
||||
# For kernels earlier than v5.12, the master interface needs to be
|
||||
# brought up manually before the slave ports.
|
||||
ip link set eth0 up
|
||||
|
||||
gateway
|
||||
~~~~~~~
|
||||
# bring up the slave interfaces
|
||||
ip link set wan up
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
|
||||
.. code-block:: sh
|
||||
# configure the upstream port
|
||||
ip addr add 192.0.2.1/30 dev wan
|
||||
|
||||
# The master interface needs to be brought up before the slave ports.
|
||||
ip link set eth0 up
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
|
||||
# bring up the slave interfaces
|
||||
ip link set wan up
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
# add ports to bridge
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
|
||||
# configure the upstream port
|
||||
ip addr add 192.0.2.1/30 dev wan
|
||||
# configure the bridge
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
|
||||
# add ports to bridge
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
|
||||
# configure the bridge
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
|
||||
# bring up the bridge
|
||||
ip link set dev br0 up
|
||||
# bring up the bridge
|
||||
ip link set dev br0 up
|
||||
|
||||
.. _dsa-vlan-configuration:
|
||||
|
||||
@ -161,132 +165,130 @@ A minority of switches are not capable to use a taging protocol
|
||||
(DSA_TAG_PROTO_NONE). These switches can be configured by a VLAN based
|
||||
configuration.
|
||||
|
||||
single port
|
||||
~~~~~~~~~~~
|
||||
The configuration can only be set up via VLAN tagging and bridge setup.
|
||||
*single port*
|
||||
The configuration can only be set up via VLAN tagging and bridge setup.
|
||||
|
||||
.. code-block:: sh
|
||||
.. code-block:: sh
|
||||
|
||||
# tag traffic on CPU port
|
||||
ip link add link eth0 name eth0.1 type vlan id 1
|
||||
ip link add link eth0 name eth0.2 type vlan id 2
|
||||
ip link add link eth0 name eth0.3 type vlan id 3
|
||||
# tag traffic on CPU port
|
||||
ip link add link eth0 name eth0.1 type vlan id 1
|
||||
ip link add link eth0 name eth0.2 type vlan id 2
|
||||
ip link add link eth0 name eth0.3 type vlan id 3
|
||||
|
||||
# The master interface needs to be brought up before the slave ports.
|
||||
ip link set eth0 up
|
||||
ip link set eth0.1 up
|
||||
ip link set eth0.2 up
|
||||
ip link set eth0.3 up
|
||||
# For kernels earlier than v5.12, the master interface needs to be
|
||||
# brought up manually before the slave ports.
|
||||
ip link set eth0 up
|
||||
ip link set eth0.1 up
|
||||
ip link set eth0.2 up
|
||||
ip link set eth0.3 up
|
||||
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
|
||||
# activate VLAN filtering
|
||||
ip link set dev br0 type bridge vlan_filtering 1
|
||||
# activate VLAN filtering
|
||||
ip link set dev br0 type bridge vlan_filtering 1
|
||||
|
||||
# add ports to bridges
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
ip link set dev lan3 master br0
|
||||
# add ports to bridges
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
ip link set dev lan3 master br0
|
||||
|
||||
# tag traffic on ports
|
||||
bridge vlan add dev lan1 vid 1 pvid untagged
|
||||
bridge vlan add dev lan2 vid 2 pvid untagged
|
||||
bridge vlan add dev lan3 vid 3 pvid untagged
|
||||
# tag traffic on ports
|
||||
bridge vlan add dev lan1 vid 1 pvid untagged
|
||||
bridge vlan add dev lan2 vid 2 pvid untagged
|
||||
bridge vlan add dev lan3 vid 3 pvid untagged
|
||||
|
||||
# configure the VLANs
|
||||
ip addr add 192.0.2.1/30 dev eth0.1
|
||||
ip addr add 192.0.2.5/30 dev eth0.2
|
||||
ip addr add 192.0.2.9/30 dev eth0.3
|
||||
# configure the VLANs
|
||||
ip addr add 192.0.2.1/30 dev eth0.1
|
||||
ip addr add 192.0.2.5/30 dev eth0.2
|
||||
ip addr add 192.0.2.9/30 dev eth0.3
|
||||
|
||||
# bring up the bridge devices
|
||||
ip link set br0 up
|
||||
# bring up the bridge devices
|
||||
ip link set br0 up
|
||||
|
||||
|
||||
bridge
|
||||
~~~~~~
|
||||
*bridge*
|
||||
.. code-block:: sh
|
||||
|
||||
.. code-block:: sh
|
||||
# tag traffic on CPU port
|
||||
ip link add link eth0 name eth0.1 type vlan id 1
|
||||
|
||||
# tag traffic on CPU port
|
||||
ip link add link eth0 name eth0.1 type vlan id 1
|
||||
# For kernels earlier than v5.12, the master interface needs to be
|
||||
# brought up manually before the slave ports.
|
||||
ip link set eth0 up
|
||||
ip link set eth0.1 up
|
||||
|
||||
# The master interface needs to be brought up before the slave ports.
|
||||
ip link set eth0 up
|
||||
ip link set eth0.1 up
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
|
||||
# bring up the slave interfaces
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
ip link set lan3 up
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
# activate VLAN filtering
|
||||
ip link set dev br0 type bridge vlan_filtering 1
|
||||
|
||||
# activate VLAN filtering
|
||||
ip link set dev br0 type bridge vlan_filtering 1
|
||||
# add ports to bridge
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
ip link set dev lan3 master br0
|
||||
ip link set eth0.1 master br0
|
||||
|
||||
# add ports to bridge
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
ip link set dev lan3 master br0
|
||||
ip link set eth0.1 master br0
|
||||
# tag traffic on ports
|
||||
bridge vlan add dev lan1 vid 1 pvid untagged
|
||||
bridge vlan add dev lan2 vid 1 pvid untagged
|
||||
bridge vlan add dev lan3 vid 1 pvid untagged
|
||||
|
||||
# tag traffic on ports
|
||||
bridge vlan add dev lan1 vid 1 pvid untagged
|
||||
bridge vlan add dev lan2 vid 1 pvid untagged
|
||||
bridge vlan add dev lan3 vid 1 pvid untagged
|
||||
# configure the bridge
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
|
||||
# configure the bridge
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
# bring up the bridge
|
||||
ip link set dev br0 up
|
||||
|
||||
# bring up the bridge
|
||||
ip link set dev br0 up
|
||||
*gateway*
|
||||
.. code-block:: sh
|
||||
|
||||
gateway
|
||||
~~~~~~~
|
||||
# tag traffic on CPU port
|
||||
ip link add link eth0 name eth0.1 type vlan id 1
|
||||
ip link add link eth0 name eth0.2 type vlan id 2
|
||||
|
||||
.. code-block:: sh
|
||||
# For kernels earlier than v5.12, the master interface needs to be
|
||||
# brought up manually before the slave ports.
|
||||
ip link set eth0 up
|
||||
ip link set eth0.1 up
|
||||
ip link set eth0.2 up
|
||||
|
||||
# tag traffic on CPU port
|
||||
ip link add link eth0 name eth0.1 type vlan id 1
|
||||
ip link add link eth0 name eth0.2 type vlan id 2
|
||||
# bring up the slave interfaces
|
||||
ip link set wan up
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
|
||||
# The master interface needs to be brought up before the slave ports.
|
||||
ip link set eth0 up
|
||||
ip link set eth0.1 up
|
||||
ip link set eth0.2 up
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
|
||||
# bring up the slave interfaces
|
||||
ip link set wan up
|
||||
ip link set lan1 up
|
||||
ip link set lan2 up
|
||||
# activate VLAN filtering
|
||||
ip link set dev br0 type bridge vlan_filtering 1
|
||||
|
||||
# create bridge
|
||||
ip link add name br0 type bridge
|
||||
# add ports to bridges
|
||||
ip link set dev wan master br0
|
||||
ip link set eth0.1 master br0
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
|
||||
# activate VLAN filtering
|
||||
ip link set dev br0 type bridge vlan_filtering 1
|
||||
# tag traffic on ports
|
||||
bridge vlan add dev lan1 vid 1 pvid untagged
|
||||
bridge vlan add dev lan2 vid 1 pvid untagged
|
||||
bridge vlan add dev wan vid 2 pvid untagged
|
||||
|
||||
# add ports to bridges
|
||||
ip link set dev wan master br0
|
||||
ip link set eth0.1 master br0
|
||||
ip link set dev lan1 master br0
|
||||
ip link set dev lan2 master br0
|
||||
# configure the VLANs
|
||||
ip addr add 192.0.2.1/30 dev eth0.2
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
|
||||
# tag traffic on ports
|
||||
bridge vlan add dev lan1 vid 1 pvid untagged
|
||||
bridge vlan add dev lan2 vid 1 pvid untagged
|
||||
bridge vlan add dev wan vid 2 pvid untagged
|
||||
|
||||
# configure the VLANs
|
||||
ip addr add 192.0.2.1/30 dev eth0.2
|
||||
ip addr add 192.0.2.129/25 dev br0
|
||||
|
||||
# bring up the bridge devices
|
||||
ip link set br0 up
|
||||
# bring up the bridge devices
|
||||
ip link set br0 up
|
||||
|
@ -464,6 +464,7 @@ For each devlink device, every physical port (i.e. user ports, CPU ports, DSA
|
||||
links or unused ports) is exposed as a devlink port.
|
||||
|
||||
DSA drivers can make use of the following devlink features:
|
||||
|
||||
- Regions: debugging feature which allows user space to dump driver-defined
|
||||
areas of hardware information in a low-level, binary format. Both global
|
||||
regions as well as per-port regions are supported. It is possible to export
|
||||
|
@ -479,6 +479,7 @@ is not possible.
|
||||
be added to a second bridge, which includes other switch ports or software
|
||||
interfaces. Some approaches to ensure that the forwarding domain for traffic
|
||||
belonging to the VLAN upper interfaces are managed properly:
|
||||
|
||||
* If forwarding destinations can be managed per VLAN, the hardware could be
|
||||
configured to map all traffic, except the packets tagged with a VID
|
||||
belonging to a VLAN upper interface, to an internal VID corresponding to
|
||||
@ -522,7 +523,7 @@ as untagged packets, since the bridge device does not allow the manipulation of
|
||||
VID 0 in its database.
|
||||
|
||||
When the bridge has VLAN filtering enabled and a PVID is not configured on the
|
||||
ingress port, untagged 802.1p tagged packets must be dropped. When the bridge
|
||||
ingress port, untagged and 802.1p tagged packets must be dropped. When the bridge
|
||||
has VLAN filtering enabled and a PVID exists on the ingress port, untagged and
|
||||
priority-tagged packets must be accepted and forwarded according to the
|
||||
bridge's port membership of the PVID VLAN. When the bridge has VLAN filtering
|
||||
|
Loading…
Reference in New Issue
Block a user