mirror of https://github.com/torvalds/linux.git
docs: net: dsa: fix minor grammar and punctuation issues
Fix a few typos and minor grammatical issues. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c21cabb0fd
commit
5a48b7433a
|
|
@ -10,21 +10,21 @@ in joining the effort.
|
||||||
Design principles
|
Design principles
|
||||||
=================
|
=================
|
||||||
|
|
||||||
The Distributed Switch Architecture is a subsystem which was primarily designed
|
The Distributed Switch Architecture subsystem was primarily designed to
|
||||||
to support Marvell Ethernet switches (MV88E6xxx, a.k.a Linkstreet product line)
|
support Marvell Ethernet switches (MV88E6xxx, a.k.a. Link Street product
|
||||||
using Linux, but has since evolved to support other vendors as well.
|
line) using Linux, but has since evolved to support other vendors as well.
|
||||||
|
|
||||||
The original philosophy behind this design was to be able to use unmodified
|
The original philosophy behind this design was to be able to use unmodified
|
||||||
Linux tools such as bridge, iproute2, ifconfig to work transparently whether
|
Linux tools such as bridge, iproute2, ifconfig to work transparently whether
|
||||||
they configured/queried a switch port network device or a regular network
|
they configured/queried a switch port network device or a regular network
|
||||||
device.
|
device.
|
||||||
|
|
||||||
An Ethernet switch is typically comprised of multiple front-panel ports, and one
|
An Ethernet switch typically comprises multiple front-panel ports and one
|
||||||
or more CPU or management port. The DSA subsystem currently relies on the
|
or more CPU or management ports. The DSA subsystem currently relies on the
|
||||||
presence of a management port connected to an Ethernet controller capable of
|
presence of a management port connected to an Ethernet controller capable of
|
||||||
receiving Ethernet frames from the switch. This is a very common setup for all
|
receiving Ethernet frames from the switch. This is a very common setup for all
|
||||||
kinds of Ethernet switches found in Small Home and Office products: routers,
|
kinds of Ethernet switches found in Small Home and Office products: routers,
|
||||||
gateways, or even top-of-the rack switches. This host Ethernet controller will
|
gateways, or even top-of-rack switches. This host Ethernet controller will
|
||||||
be later referred to as "master" and "cpu" in DSA terminology and code.
|
be later referred to as "master" and "cpu" in DSA terminology and code.
|
||||||
|
|
||||||
The D in DSA stands for Distributed, because the subsystem has been designed
|
The D in DSA stands for Distributed, because the subsystem has been designed
|
||||||
|
|
@ -33,14 +33,14 @@ using upstream and downstream Ethernet links between switches. These specific
|
||||||
ports are referred to as "dsa" ports in DSA terminology and code. A collection
|
ports are referred to as "dsa" ports in DSA terminology and code. A collection
|
||||||
of multiple switches connected to each other is called a "switch tree".
|
of multiple switches connected to each other is called a "switch tree".
|
||||||
|
|
||||||
For each front-panel port, DSA will create specialized network devices which are
|
For each front-panel port, DSA creates specialized network devices which are
|
||||||
used as controlling and data-flowing endpoints for use by the Linux networking
|
used as controlling and data-flowing endpoints for use by the Linux networking
|
||||||
stack. These specialized network interfaces are referred to as "slave" network
|
stack. These specialized network interfaces are referred to as "slave" network
|
||||||
interfaces in DSA terminology and code.
|
interfaces in DSA terminology and code.
|
||||||
|
|
||||||
The ideal case for using DSA is when an Ethernet switch supports a "switch tag"
|
The ideal case for using DSA is when an Ethernet switch supports a "switch tag"
|
||||||
which is a hardware feature making the switch insert a specific tag for each
|
which is a hardware feature making the switch insert a specific tag for each
|
||||||
Ethernet frames it received to/from specific ports to help the management
|
Ethernet frame it receives to/from specific ports to help the management
|
||||||
interface figure out:
|
interface figure out:
|
||||||
|
|
||||||
- what port is this frame coming from
|
- what port is this frame coming from
|
||||||
|
|
@ -125,7 +125,7 @@ other switches from the same fabric, and in this case, the outermost switch
|
||||||
ports must decapsulate the packet.
|
ports must decapsulate the packet.
|
||||||
|
|
||||||
Note that in certain cases, it might be the case that the tagging format used
|
Note that in certain cases, it might be the case that the tagging format used
|
||||||
by a leaf switch (not connected directly to the CPU) to not be the same as what
|
by a leaf switch (not connected directly to the CPU) is not the same as what
|
||||||
the network stack sees. This can be seen with Marvell switch trees, where the
|
the network stack sees. This can be seen with Marvell switch trees, where the
|
||||||
CPU port can be configured to use either the DSA or the Ethertype DSA (EDSA)
|
CPU port can be configured to use either the DSA or the Ethertype DSA (EDSA)
|
||||||
format, but the DSA links are configured to use the shorter (without Ethertype)
|
format, but the DSA links are configured to use the shorter (without Ethertype)
|
||||||
|
|
@ -270,21 +270,21 @@ These interfaces are specialized in order to:
|
||||||
to/from specific switch ports
|
to/from specific switch ports
|
||||||
- query the switch for ethtool operations: statistics, link state,
|
- query the switch for ethtool operations: statistics, link state,
|
||||||
Wake-on-LAN, register dumps...
|
Wake-on-LAN, register dumps...
|
||||||
- external/internal PHY management: link, auto-negotiation etc.
|
- manage external/internal PHY: link, auto-negotiation, etc.
|
||||||
|
|
||||||
These slave network devices have custom net_device_ops and ethtool_ops function
|
These slave network devices have custom net_device_ops and ethtool_ops function
|
||||||
pointers which allow DSA to introduce a level of layering between the networking
|
pointers which allow DSA to introduce a level of layering between the networking
|
||||||
stack/ethtool, and the switch driver implementation.
|
stack/ethtool and the switch driver implementation.
|
||||||
|
|
||||||
Upon frame transmission from these slave network devices, DSA will look up which
|
Upon frame transmission from these slave network devices, DSA will look up which
|
||||||
switch tagging protocol is currently registered with these network devices, and
|
switch tagging protocol is currently registered with these network devices and
|
||||||
invoke a specific transmit routine which takes care of adding the relevant
|
invoke a specific transmit routine which takes care of adding the relevant
|
||||||
switch tag in the Ethernet frames.
|
switch tag in the Ethernet frames.
|
||||||
|
|
||||||
These frames are then queued for transmission using the master network device
|
These frames are then queued for transmission using the master network device
|
||||||
``ndo_start_xmit()`` function, since they contain the appropriate switch tag, the
|
``ndo_start_xmit()`` function. Since they contain the appropriate switch tag, the
|
||||||
Ethernet switch will be able to process these incoming frames from the
|
Ethernet switch will be able to process these incoming frames from the
|
||||||
management interface and delivers these frames to the physical switch port.
|
management interface and deliver them to the physical switch port.
|
||||||
|
|
||||||
Graphical representation
|
Graphical representation
|
||||||
------------------------
|
------------------------
|
||||||
|
|
@ -330,9 +330,9 @@ MDIO reads/writes towards specific PHY addresses. In most MDIO-connected
|
||||||
switches, these functions would utilize direct or indirect PHY addressing mode
|
switches, these functions would utilize direct or indirect PHY addressing mode
|
||||||
to return standard MII registers from the switch builtin PHYs, allowing the PHY
|
to return standard MII registers from the switch builtin PHYs, allowing the PHY
|
||||||
library and/or to return link status, link partner pages, auto-negotiation
|
library and/or to return link status, link partner pages, auto-negotiation
|
||||||
results etc..
|
results, etc.
|
||||||
|
|
||||||
For Ethernet switches which have both external and internal MDIO busses, the
|
For Ethernet switches which have both external and internal MDIO buses, the
|
||||||
slave MII bus can be utilized to mux/demux MDIO reads and writes towards either
|
slave MII bus can be utilized to mux/demux MDIO reads and writes towards either
|
||||||
internal or external MDIO devices this switch might be connected to: internal
|
internal or external MDIO devices this switch might be connected to: internal
|
||||||
PHYs, external PHYs, or even external switches.
|
PHYs, external PHYs, or even external switches.
|
||||||
|
|
@ -349,7 +349,7 @@ DSA data structures are defined in ``include/net/dsa.h`` as well as
|
||||||
table indication (when cascading switches)
|
table indication (when cascading switches)
|
||||||
|
|
||||||
- ``dsa_platform_data``: platform device configuration data which can reference
|
- ``dsa_platform_data``: platform device configuration data which can reference
|
||||||
a collection of dsa_chip_data structure if multiples switches are cascaded,
|
a collection of dsa_chip_data structures if multiple switches are cascaded,
|
||||||
the master network device this switch tree is attached to needs to be
|
the master network device this switch tree is attached to needs to be
|
||||||
referenced
|
referenced
|
||||||
|
|
||||||
|
|
@ -426,7 +426,7 @@ logic basically looks like this:
|
||||||
"phy-handle" property, if found, this PHY device is created and registered
|
"phy-handle" property, if found, this PHY device is created and registered
|
||||||
using ``of_phy_connect()``
|
using ``of_phy_connect()``
|
||||||
|
|
||||||
- if Device Tree is used, and the PHY device is "fixed", that is, conforms to
|
- if Device Tree is used and the PHY device is "fixed", that is, conforms to
|
||||||
the definition of a non-MDIO managed PHY as defined in
|
the definition of a non-MDIO managed PHY as defined in
|
||||||
``Documentation/devicetree/bindings/net/fixed-link.txt``, the PHY is registered
|
``Documentation/devicetree/bindings/net/fixed-link.txt``, the PHY is registered
|
||||||
and connected transparently using the special fixed MDIO bus driver
|
and connected transparently using the special fixed MDIO bus driver
|
||||||
|
|
@ -481,7 +481,7 @@ Device Tree
|
||||||
DSA features a standardized binding which is documented in
|
DSA features a standardized binding which is documented in
|
||||||
``Documentation/devicetree/bindings/net/dsa/dsa.txt``. PHY/MDIO library helper
|
``Documentation/devicetree/bindings/net/dsa/dsa.txt``. PHY/MDIO library helper
|
||||||
functions such as ``of_get_phy_mode()``, ``of_phy_connect()`` are also used to query
|
functions such as ``of_get_phy_mode()``, ``of_phy_connect()`` are also used to query
|
||||||
per-port PHY specific details: interface connection, MDIO bus location etc..
|
per-port PHY specific details: interface connection, MDIO bus location, etc.
|
||||||
|
|
||||||
Driver development
|
Driver development
|
||||||
==================
|
==================
|
||||||
|
|
@ -509,7 +509,7 @@ Switch configuration
|
||||||
|
|
||||||
- ``setup``: setup function for the switch, this function is responsible for setting
|
- ``setup``: setup function for the switch, this function is responsible for setting
|
||||||
up the ``dsa_switch_ops`` private structure with all it needs: register maps,
|
up the ``dsa_switch_ops`` private structure with all it needs: register maps,
|
||||||
interrupts, mutexes, locks etc.. This function is also expected to properly
|
interrupts, mutexes, locks, etc. This function is also expected to properly
|
||||||
configure the switch to separate all network interfaces from each other, that
|
configure the switch to separate all network interfaces from each other, that
|
||||||
is, they should be isolated by the switch hardware itself, typically by creating
|
is, they should be isolated by the switch hardware itself, typically by creating
|
||||||
a Port-based VLAN ID for each port and allowing only the CPU port and the
|
a Port-based VLAN ID for each port and allowing only the CPU port and the
|
||||||
|
|
@ -526,13 +526,13 @@ PHY devices and link management
|
||||||
- ``get_phy_flags``: Some switches are interfaced to various kinds of Ethernet PHYs,
|
- ``get_phy_flags``: Some switches are interfaced to various kinds of Ethernet PHYs,
|
||||||
if the PHY library PHY driver needs to know about information it cannot obtain
|
if the PHY library PHY driver needs to know about information it cannot obtain
|
||||||
on its own (e.g.: coming from switch memory mapped registers), this function
|
on its own (e.g.: coming from switch memory mapped registers), this function
|
||||||
should return a 32-bits bitmask of "flags", that is private between the switch
|
should return a 32-bit bitmask of "flags" that is private between the switch
|
||||||
driver and the Ethernet PHY driver in ``drivers/net/phy/\*``.
|
driver and the Ethernet PHY driver in ``drivers/net/phy/\*``.
|
||||||
|
|
||||||
- ``phy_read``: Function invoked by the DSA slave MDIO bus when attempting to read
|
- ``phy_read``: Function invoked by the DSA slave MDIO bus when attempting to read
|
||||||
the switch port MDIO registers. If unavailable, return 0xffff for each read.
|
the switch port MDIO registers. If unavailable, return 0xffff for each read.
|
||||||
For builtin switch Ethernet PHYs, this function should allow reading the link
|
For builtin switch Ethernet PHYs, this function should allow reading the link
|
||||||
status, auto-negotiation results, link partner pages etc..
|
status, auto-negotiation results, link partner pages, etc.
|
||||||
|
|
||||||
- ``phy_write``: Function invoked by the DSA slave MDIO bus when attempting to write
|
- ``phy_write``: Function invoked by the DSA slave MDIO bus when attempting to write
|
||||||
to the switch port MDIO registers. If unavailable return a negative error
|
to the switch port MDIO registers. If unavailable return a negative error
|
||||||
|
|
@ -554,7 +554,7 @@ Ethtool operations
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
- ``get_strings``: ethtool function used to query the driver's strings, will
|
- ``get_strings``: ethtool function used to query the driver's strings, will
|
||||||
typically return statistics strings, private flags strings etc.
|
typically return statistics strings, private flags strings, etc.
|
||||||
|
|
||||||
- ``get_ethtool_stats``: ethtool function used to query per-port statistics and
|
- ``get_ethtool_stats``: ethtool function used to query per-port statistics and
|
||||||
return their values. DSA overlays slave network devices general statistics:
|
return their values. DSA overlays slave network devices general statistics:
|
||||||
|
|
@ -564,7 +564,7 @@ Ethtool operations
|
||||||
- ``get_sset_count``: ethtool function used to query the number of statistics items
|
- ``get_sset_count``: ethtool function used to query the number of statistics items
|
||||||
|
|
||||||
- ``get_wol``: ethtool function used to obtain Wake-on-LAN settings per-port, this
|
- ``get_wol``: ethtool function used to obtain Wake-on-LAN settings per-port, this
|
||||||
function may, for certain implementations also query the master network device
|
function may for certain implementations also query the master network device
|
||||||
Wake-on-LAN settings if this interface needs to participate in Wake-on-LAN
|
Wake-on-LAN settings if this interface needs to participate in Wake-on-LAN
|
||||||
|
|
||||||
- ``set_wol``: ethtool function used to configure Wake-on-LAN settings per-port,
|
- ``set_wol``: ethtool function used to configure Wake-on-LAN settings per-port,
|
||||||
|
|
@ -607,14 +607,14 @@ Power management
|
||||||
in a fully active state
|
in a fully active state
|
||||||
|
|
||||||
- ``port_enable``: function invoked by the DSA slave network device ndo_open
|
- ``port_enable``: function invoked by the DSA slave network device ndo_open
|
||||||
function when a port is administratively brought up, this function should be
|
function when a port is administratively brought up, this function should
|
||||||
fully enabling a given switch port. DSA takes care of marking the port with
|
fully enable a given switch port. DSA takes care of marking the port with
|
||||||
``BR_STATE_BLOCKING`` if the port is a bridge member, or ``BR_STATE_FORWARDING`` if it
|
``BR_STATE_BLOCKING`` if the port is a bridge member, or ``BR_STATE_FORWARDING`` if it
|
||||||
was not, and propagating these changes down to the hardware
|
was not, and propagating these changes down to the hardware
|
||||||
|
|
||||||
- ``port_disable``: function invoked by the DSA slave network device ndo_close
|
- ``port_disable``: function invoked by the DSA slave network device ndo_close
|
||||||
function when a port is administratively brought down, this function should be
|
function when a port is administratively brought down, this function should
|
||||||
fully disabling a given switch port. DSA takes care of marking the port with
|
fully disable a given switch port. DSA takes care of marking the port with
|
||||||
``BR_STATE_DISABLED`` and propagating changes to the hardware if this port is
|
``BR_STATE_DISABLED`` and propagating changes to the hardware if this port is
|
||||||
disabled while being a bridge member
|
disabled while being a bridge member
|
||||||
|
|
||||||
|
|
@ -622,12 +622,12 @@ Bridge layer
|
||||||
------------
|
------------
|
||||||
|
|
||||||
- ``port_bridge_join``: bridge layer function invoked when a given switch port is
|
- ``port_bridge_join``: bridge layer function invoked when a given switch port is
|
||||||
added to a bridge, this function should be doing the necessary at the switch
|
added to a bridge, this function should do what's necessary at the switch
|
||||||
level to permit the joining port from being added to the relevant logical
|
level to permit the joining port to be added to the relevant logical
|
||||||
domain for it to ingress/egress traffic with other members of the bridge.
|
domain for it to ingress/egress traffic with other members of the bridge.
|
||||||
|
|
||||||
- ``port_bridge_leave``: bridge layer function invoked when a given switch port is
|
- ``port_bridge_leave``: bridge layer function invoked when a given switch port is
|
||||||
removed from a bridge, this function should be doing the necessary at the
|
removed from a bridge, this function should do what's necessary at the
|
||||||
switch level to deny the leaving port from ingress/egress traffic from the
|
switch level to deny the leaving port from ingress/egress traffic from the
|
||||||
remaining bridge members. When the port leaves the bridge, it should be aged
|
remaining bridge members. When the port leaves the bridge, it should be aged
|
||||||
out at the switch hardware for the switch to (re) learn MAC addresses behind
|
out at the switch hardware for the switch to (re) learn MAC addresses behind
|
||||||
|
|
@ -663,7 +663,7 @@ Bridge layer
|
||||||
point for drivers that need to configure the hardware for enabling this
|
point for drivers that need to configure the hardware for enabling this
|
||||||
feature.
|
feature.
|
||||||
|
|
||||||
- ``port_bridge_tx_fwd_unoffload``: bridge layer function invoken when a driver
|
- ``port_bridge_tx_fwd_unoffload``: bridge layer function invoked when a driver
|
||||||
leaves a bridge port which had the TX forwarding offload feature enabled.
|
leaves a bridge port which had the TX forwarding offload feature enabled.
|
||||||
|
|
||||||
Bridge VLAN filtering
|
Bridge VLAN filtering
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue