• Home
  • Raw
  • Download

Lines Matching full:dsa

7 This document describes the Distributed Switch Architecture (DSA) subsystem
25 or more CPU or management port. The DSA subsystem currently relies on the
30 be later referred to as "master" and "cpu" in DSA terminology and code.
32 The D in DSA stands for Distributed, because the subsystem has been designed
35 ports are referred to as "dsa" ports in DSA terminology and code. A collection
38 For each front-panel port, DSA will create specialized network devices which are
41 interfaces in DSA terminology and code.
43 The ideal case for using DSA is when an Ethernet switch supports a "switch tag"
56 Note that DSA does not currently create network interfaces for the "cpu" and
57 "dsa" ports because:
63 - the "dsa" port(s) are just conduits between two or more switches, and as such
70 DSA currently supports 5 different tagging protocols, and a tag-less mode as
73 net/dsa/tag_trailer.c: Marvell's 4 trailer tag mode (legacy)
74 net/dsa/tag_dsa.c: Marvell's original DSA tag
75 net/dsa/tag_edsa.c: Marvell's enhanced DSA tag
76 net/dsa/tag_brcm.c: Broadcom's 4 bytes tag
77 net/dsa/tag_qca.c: Qualcomm's 2 bytes tag
90 know whether DSA is enabled (e.g.: to enable/disable specific offload features),
91 but the DSA subsystem has been proven to work with industry standard drivers:
100 When a master netdev is used with DSA, a small hook is placed in in the
101 networking stack is in order to have the DSA subsystem process the Ethernet
102 switch specific tagging protocol. DSA accomplishes this by registering a
127 net/dsa/dsa.c:
130 net/dsa/tag_*.c
132 net/dsa/tag_*.c:
135 -> invoke eth_type_trans() with the DSA slave network device
138 Past this point, the DSA slave network devices get delivered regular Ethernet
144 Slave network devices created by DSA are stacked on top of their master network
156 pointers which allow DSA to introduce a level of layering between the networking
159 Upon frame transmission from these slave network devices, DSA will look up which
172 Summarized, this is basically how DSA looks like from a network device
194 In order to be able to read to/from a switch PHY built into it, DSA creates a
210 DSA data structures are defined in include/net/dsa.h as well as
211 net/dsa/dsa_priv.h.
239 DSA is a platform device driver
242 DSA is implemented as a DSA platform device driver which is convenient because
243 it will register the entire DSA switch tree attached to a master network device
247 - building DSA and its switch drivers as modules is currently not working
255 DSA currently limits the number of maximum switches within a tree to 4
260 Lack of CPU/DSA network devices
263 DSA does not currently create slave network devices for the CPU or DSA ports, as
275 Common pitfalls using DSA setups
278 Once a master network device is configured to use DSA (dev->dsa_ptr becomes
293 DSA currently leverages the following subsystems:
302 Slave network devices exposed by DSA may or may not be interfacing with PHY
303 devices (struct phy_device as defined in include/linux/phy.h), but the DSA
326 by DSA
332 DSA directly utilizes SWITCHDEV when interfacing with the bridge layer, and
334 of per-port slave network devices. Since DSA primarily deals with
337 checks whether the operation is supported by the DSA switch driver, and a commit
340 As of today, the only SWITCHDEV objects supported by DSA are the FDB and VLAN
346 DSA features a standardized binding which is documented in
347 Documentation/devicetree/bindings/net/dsa/dsa.txt. PHY/MDIO library helper
354 DSA switch drivers need to implement a dsa_switch_ops structure which will
360 Unless requested differently by setting the priv_size member accordingly, DSA
369 - probe: probe routine which will be invoked by the DSA platform device upon
397 - phy_read: Function invoked by the DSA slave MDIO bus when attempting to read
402 - phy_write: Function invoked by the DSA slave MDIO bus when attempting to write
425 return their values. DSA overlays slave network devices general statistics:
465 - suspend: function invoked by the DSA platform device when the system goes to
470 - resume: function invoked by the DSA platform device when the system resumes,
474 - port_enable: function invoked by the DSA slave network device ndo_open
476 fully enabling a given switch port. DSA takes care of marking the port with
480 - port_disable: function invoked by the DSA slave network device ndo_close
482 fully disabling a given switch port. DSA takes care of marking the port with
548 of DSA, would be the its port-based VLAN, used by the associated bridge device.
571 of DSA, would be the its port-based VLAN, used by the associated bridge device.
585 Making SWITCHDEV and DSA converge towards an unified codebase
590 the other DSA enforces a fairly strict device driver model, and deals with most