Lines Matching refs: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
70 DSA currently supports 4 different tagging protocols, and a tag-less mode as
74 net/dsa/tag_dsa.c: Marvell's original DSA tag
75 net/dsa/tag_edsa.c: Marvell's enhanced DSA tag
89 know whether DSA is enabled (e.g.: to enable/disable specific offload features),
90 but the DSA subsystem has been proven to work with industry standard drivers:
99 When a master netdev is used with DSA, a small hook is placed in in the
100 networking stack is in order to have the DSA subsystem process the Ethernet
101 switch specific tagging protocol. DSA accomplishes this by registering a
134 -> invoke eth_type_trans() with the DSA slave network device
137 Past this point, the DSA slave network devices get delivered regular Ethernet
143 Slave network devices created by DSA are stacked on top of their master network
155 pointers which allow DSA to introduce a level of layering between the networking
158 Upon frame transmission from these slave network devices, DSA will look up which
171 Summarized, this is basically how DSA looks like from a network device
193 In order to be able to read to/from a switch PHY built into it, DSA creates a
209 DSA data structures are defined in include/net/dsa.h as well as
238 DSA is a platform device driver
241 DSA is implemented as a DSA platform device driver which is convenient because
242 it will register the entire DSA switch tree attached to a master network device
246 - building DSA and its switch drivers as modules is currently not working
254 DSA currently limits the number of maximum switches within a tree to 4
259 Lack of CPU/DSA network devices
262 DSA does not currently create slave network devices for the CPU or DSA ports, as
274 Common pitfalls using DSA setups
277 Once a master network device is configured to use DSA (dev->dsa_ptr becomes
292 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 supporte 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
360 DSA switch drivers need to implement a dsa_switch_driver structure which will
366 Unless requested differently by setting the priv_size member accordingly, DSA
377 - probe: probe routine which will be invoked by the DSA platform device upon
410 - phy_read: Function invoked by the DSA slave MDIO bus when attempting to read
415 - phy_write: Function invoked by the DSA slave MDIO bus when attempting to write
419 - poll_link: Function invoked by DSA to query the link state of the switch
443 return their values. DSA overlays slave network devices general statistics:
483 - suspend: function invoked by the DSA platform device when the system goes to
488 - resume: function invoked by the DSA platform device when the system resumes,
492 - port_enable: function invoked by the DSA slave network device ndo_open
494 fully enabling a given switch port. DSA takes care of marking the port with
498 - port_disable: function invoked by the DSA slave network device ndo_close
500 fully disabling a given switch port. DSA takes care of marking the port with
527 domain for it to ingress/egress traffic with other members of the bridge. DSA
536 this port. DSA calculates the bitmask of ports still members of the bridge
569 of DSA, would be the its port-based VLAN, used by the associated bridge device.
581 DSA is currently implemented as a platform device driver which is far from ideal
599 Making SWITCHDEV and DSA converge towards an unified codebase
604 the other DSA enforces a fairly strict device driver model, and deals with most