GNU Linux-libre 4.19.264-gnu1
[releases.git] / drivers / staging / fsl-dpaa2 / ethsw / README
1 DPAA2 Ethernet Switch driver
2 ============================
3
4 This file provides documentation for the DPAA2 Ethernet Switch driver
5
6
7 Contents
8 ========
9         Supported Platforms
10         Architecture Overview
11         Creating an Ethernet Switch
12         Features
13
14
15         Supported Platforms
16 ===================
17 This driver provides networking support for Freescale LS2085A, LS2088A
18 DPAA2 SoCs.
19
20
21 Architecture Overview
22 =====================
23 The Ethernet Switch in the DPAA2 architecture consists of several hardware
24 resources that provide the functionality. These are allocated and
25 configured via the Management Complex (MC) portals. MC abstracts most of
26 these resources as DPAA2 objects and exposes ABIs through which they can
27 be configured and controlled.
28
29 For a more detailed description of the DPAA2 architecture and its object
30 abstractions see:
31         drivers/staging/fsl-mc/README.txt
32
33 The Ethernet Switch is built on top of a Datapath Switch (DPSW) object.
34
35 Configuration interface:
36
37           ---------------------
38          | DPAA2 Switch driver |
39           ---------------------
40                    .
41                    .
42               ----------
43              | DPSW API |
44               ----------
45                    .           software
46  ================= . ==============
47                    .           hardware
48           ---------------------
49          | MC hardware portals |
50           ---------------------
51                    .
52                    .
53                  ------
54                 | DPSW |
55                  ------
56
57 Driver uses the switch device driver model and exposes each switch port as
58 a network interface, which can be included in a bridge. Traffic switched
59 between ports is offloaded into the hardware. Exposed network interfaces
60 are not used for I/O, they are used just for configuration. This
61 limitation is going to be addressed in the future.
62
63 The DPSW can have ports connected to DPNIs or to PHYs via DPMACs.
64
65
66  [ethA]     [ethB]     [ethC]     [ethD]     [ethE]     [ethF]
67     :          :          :          :          :          :
68     :          :          :          :          :          :
69 [eth drv]  [eth drv]  [                ethsw drv              ]
70     :          :          :          :          :          :        kernel
71 ========================================================================
72     :          :          :          :          :          :        hardware
73  [DPNI]      [DPNI]     [============= DPSW =================]
74     |          |          |          |          |          |
75     |           ----------           |       [DPMAC]    [DPMAC]
76      -------------------------------            |          |
77                                                 |          |
78                                               [PHY]      [PHY]
79
80 For a more detailed description of the Ethernet switch device driver model
81 see:
82         Documentation/networking/switchdev.txt
83
84 Creating an Ethernet Switch
85 ===========================
86 A device is created for the switch objects probed on the MC bus. Each DPSW
87 has a number of properties which determine the configuration options and
88 associated hardware resources.
89
90 A DPSW object (and the other DPAA2 objects needed for a DPAA2 switch) can
91 be added to a container on the MC bus in one of two ways: statically,
92 through a Datapath Layout Binary file (DPL) that is parsed by MC at boot
93 time; or created dynamically at runtime, via the DPAA2 objects APIs.
94
95 Features
96 ========
97 Driver configures DPSW to perform hardware switching offload of
98 unicast/multicast/broadcast (VLAN tagged or untagged) traffic between its
99 ports.
100
101 It allows configuration of hardware learning, flooding, multicast groups,
102 port VLAN configuration and STP state.
103
104 Static entries can be added/removed from the FDB.
105
106 Hardware statistics for each port are provided through ethtool -S option.