Home
last modified time | relevance | path

Searched +full:dsa +full:- +full:tag +full:- +full:protocol (Results 1 – 25 of 62) sorted by relevance

123

/kernel/linux/linux-6.6/Documentation/networking/dsa/
Ddsa.rst5 This document describes the **Distributed Switch Architecture (DSA)** subsystem
22 An Ethernet switch typically comprises multiple front-panel ports and one
23 or more CPU or management ports. The DSA subsystem currently relies on the
27 gateways, or even top-of-rack switches. This host Ethernet controller will
28 be later referred to as "master" and "cpu" in DSA terminology and code.
30 The D in DSA stands for Distributed, because the subsystem has been designed
33 ports are referred to as "dsa" ports in DSA terminology and code. A collection
36 For each front-panel port, DSA creates specialized network devices which are
37 used as controlling and data-flowing endpoints for use by the Linux networking
39 interfaces in DSA terminology and code.
[all …]
Dconfiguration.rst1 .. SPDX-License-Identifier: GPL-2.0
4 DSA switch configuration from userspace
7 The DSA switch configuration is not integrated into the main userspace
10 .. _dsa-config-showcases:
13 -----------------------
15 To configure a DSA switch a couple of commands need to be executed. In this
32 Through DSA every port of a switch is handled like a normal linux Ethernet
42 - when a DSA slave interface is brought up, the master interface is
44 - when the master interface is brought down, all DSA slave interfaces are
71 * lan1: 192.0.2.1/30 (192.0.2.0 - 192.0.2.3)
[all …]
/kernel/linux/linux-5.10/Documentation/networking/dsa/
Ddsa.rst5 This document describes the **Distributed Switch Architecture (DSA)** subsystem
22 An Ethernet switch is typically comprised of multiple front-panel ports, and one
23 or more CPU or management port. The DSA subsystem currently relies on the
27 gateways, or even top-of-the rack switches. This host Ethernet controller will
28 be later referred to as "master" and "cpu" in DSA terminology and code.
30 The D in DSA stands for Distributed, because the subsystem has been designed
33 ports are referred to as "dsa" ports in DSA terminology and code. A collection
36 For each front-panel port, DSA will create specialized network devices which are
37 used as controlling and data-flowing endpoints for use by the Linux networking
39 interfaces in DSA terminology and code.
[all …]
Dconfiguration.rst1 .. SPDX-License-Identifier: GPL-2.0
4 DSA switch configuration from userspace
7 The DSA switch configuration is not integrated into the main userspace
10 .. _dsa-config-showcases:
13 -----------------------
15 To configure a DSA switch a couple of commands need to be executed. In this
32 Through DSA every port of a switch is handled like a normal linux Ethernet
61 * lan1: 192.0.2.1/30 (192.0.2.0 - 192.0.2.3)
62 * lan2: 192.0.2.5/30 (192.0.2.4 - 192.0.2.7)
63 * lan3: 192.0.2.9/30 (192.0.2.8 - 192.0.2.11)
[all …]
/kernel/linux/linux-6.6/net/dsa/
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
22 tristate "No-op tag driver"
24 Say Y or M if you want to enable support for switches which don't tag
28 tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
31 the Atheros AR9331 SoC with built-in switch.
38 tristate "Tag driver for Broadcom switches using in-frame headers"
42 Broadcom switches which place the tag after the MAC source address.
45 tristate "Tag driver for Broadcom legacy switches using in-frame headers"
49 Broadcom legacy switches which place the tag after the MAC source
53 tristate "Tag driver for Broadcom switches using prepended headers"
[all …]
Dtag_rtl4_a.c1 // SPDX-License-Identifier: GPL-2.0
3 * Handler for Realtek 4 byte DSA switch tags
4 * Currently only supports protocol "A" found in RTL8366RB
7 * This "proprietary tag" header looks like so:
9 * -------------------------------------------------
10 * | MAC DA | MAC SA | 0x8899 | 2 bytes tag | Type |
11 * -------------------------------------------------
13 * The 2 bytes tag form a 16 bit big endian word. The exact
21 #include "tag.h"
29 * 0x1 = Realtek Remote Control protocol (RRCP)
[all …]
Dtag.h1 /* SPDX-License-Identifier: GPL-2.0-or-later */
9 #include <net/dsa.h>
29 return ops->needed_headroom + ops->needed_tailroom; in dsa_tag_protocol_overhead()
35 struct dsa_port *cpu_dp = dev->dsa_ptr; in dsa_master_find_slave()
36 struct dsa_switch_tree *dst = cpu_dp->dst; in dsa_master_find_slave()
39 list_for_each_entry(dp, &dst->ports, list) in dsa_master_find_slave()
40 if (dp->ds->index == device && dp->index == port && in dsa_master_find_slave()
41 dp->type == DSA_PORT_TYPE_USER) in dsa_master_find_slave()
42 return dp->slave; in dsa_master_find_slave()
47 /* If under a bridge with vlan_filtering=0, make sure to send pvid-tagged
[all …]
Ddsa.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * DSA topology and switch handling
5 * Copyright (c) 2008-2009 Marvell Semiconductor
24 #include "dsa.h"
30 #include "tag.h"
54 * dsa_lag_map() - Map LAG structure to a linear LAG array
60 * driver by setting ds->num_lag_ids. It is perfectly legal to leave
62 * no-ops.
68 for (id = 1; id <= dst->lags_len; id++) { in dsa_lag_map()
70 dst->lags[id - 1] = lag; in dsa_lag_map()
[all …]
Dtag_dsa.c1 // SPDX-License-Identifier: GPL-2.0+
3 * Regular and Ethertype DSA tagging
4 * Copyright (c) 2008-2009 Marvell Semiconductor
6 * Regular DSA
7 * -----------
10 * the tag between the SA and the ethertype of the original
11 * packet. Tagged frames will instead have their outermost .1Q tag
12 * converted to a DSA tag. It expects the same layout when receiving
17 * .----.----.----.---------
19 * '----'----'----'---------
[all …]
Dmaster.c1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Copyright (c) 2017 Savoir-faire Linux Inc.
12 #include <net/dsa.h>
14 #include "dsa.h"
17 #include "tag.h"
21 struct dsa_port *cpu_dp = dev->dsa_ptr; in dsa_master_get_regs_len()
22 const struct ethtool_ops *ops = cpu_dp->orig_ethtool_ops; in dsa_master_get_regs_len()
23 struct dsa_switch *ds = cpu_dp->ds; in dsa_master_get_regs_len()
24 int port = cpu_dp->index; in dsa_master_get_regs_len()
28 if (ops->get_regs_len) { in dsa_master_get_regs_len()
[all …]
Dtag.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * DSA tagging protocol handling
5 * Copyright (c) 2008-2009 Marvell Semiconductor
13 #include <net/dsa.h>
17 #include "tag.h"
26 * timestamp when it reads the packet out of the hardware. However in a DSA
27 * switch, the DSA driver owning the interface to which the packet is
33 struct dsa_switch *ds = p->dp->ds; in dsa_skb_defer_rx_timestamp()
36 if (!ds->ops->port_rxtstamp) in dsa_skb_defer_rx_timestamp()
51 return ds->ops->port_rxtstamp(ds, p->dp->index, skb, type); in dsa_skb_defer_rx_timestamp()
[all …]
Dtag_mtk.c1 // SPDX-License-Identifier: GPL-2.0
3 * Mediatek DSA Tag support
11 #include "tag.h"
30 skb_set_queue_mapping(skb, dp->index); in mtk_tag_xmit()
32 /* Build the special tag after the MAC Source Address. If VLAN header in mtk_tag_xmit()
33 * is present, it's required that VLAN header and special tag is in mtk_tag_xmit()
35 * the both special and VLAN tag at the same time and then look up VLAN in mtk_tag_xmit()
38 switch (skb->protocol) { in mtk_tag_xmit()
53 /* Mark tag attribute on special tag insertion to notify hardware in mtk_tag_xmit()
54 * whether that's a combined special tag with 802.1Q header. in mtk_tag_xmit()
[all …]
Dtag_rtl8_4.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2021 Alvin Šipraga <alsi@bang-olufsen.dk>
7 * NOTE: Currently only supports protocol "4" found in the RTL8365MB, hence
10 * This tag has the following format:
13 * |-----------------------------------+-----------------------------------|---
14 * | (16-bit) | ^
16 * |-----------------------------------+-----------------------------------| 8
17 * | (8-bit) | (8-bit) |
18 * | Protocol [0x04] | REASON | b
19 * |-----------------------------------+-----------------------------------| y
[all …]
Dslave.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * net/dsa/slave.c - Slave device handling
4 * Copyright (c) 2008-2009 Marvell Semiconductor
26 #include "dsa.h"
32 #include "tag.h"
70 return ds->ops->port_fdb_add && ds->ops->port_fdb_del && in dsa_switch_supports_uc_filtering()
71 ds->fdb_isolation && !ds->vlan_filtering_is_global && in dsa_switch_supports_uc_filtering()
72 !ds->needs_standalone_vlan_filtering; in dsa_switch_supports_uc_filtering()
77 return ds->ops->port_mdb_add && ds->ops->port_mdb_del && in dsa_switch_supports_mc_filtering()
78 ds->fdb_isolation && !ds->vlan_filtering_is_global && in dsa_switch_supports_mc_filtering()
[all …]
Dtag_sja1105.c1 // SPDX-License-Identifier: GPL-2.0
5 #include <linux/dsa/sja1105.h>
6 #include <linux/dsa/8021q.h>
9 #include "tag.h"
23 /* Trap-to-host format (no trailer present) */
33 /* Meta frame format (for 2-step TX timestamps) */
74 return ds->tagger_data; in sja1105_tagger_private()
77 /* Similar to is_link_local_ether_addr(hdr->h_dest) but also covers PTP */
81 u64 dmac = ether_addr_to_u64(hdr->h_dest); in sja1105_is_link_local()
83 if (ntohs(hdr->h_proto) == ETH_P_SJA1105_META) in sja1105_is_link_local()
[all …]
/kernel/linux/linux-5.10/net/dsa/
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
34 tristate "Tag driver for Atheros AR9331 SoC with built-in switch"
37 the Atheros AR9331 SoC with built-in switch.
44 tristate "Tag driver for Broadcom switches using in-frame headers"
48 Broadcom switches which place the tag after the MAC source address.
52 tristate "Tag driver for Broadcom switches using prepended headers"
56 Broadcom switches which places the tag before the Ethernet header
60 tristate "Tag driver for Lantiq / Intel GSWIP switches"
66 tristate "Tag driver for Marvell switches using DSA headers"
69 Marvell switches which use DSA headers.
[all …]
Dtag_rtl4_a.c1 // SPDX-License-Identifier: GPL-2.0
3 * Handler for Realtek 4 byte DSA switch tags
4 * Currently only supports protocol "A" found in RTL8366RB
7 * This "proprietary tag" header looks like so:
9 * -------------------------------------------------
10 * | MAC DA | MAC SA | 0x8899 | 2 bytes tag | Type |
11 * -------------------------------------------------
13 * The 2 bytes tag form a 16 bit big endian word. The exact
27 * 0x1 = Realtek Remote Control protocol (RRCP)
29 * 0x9 = RTL8306 DSA protocol
[all …]
Dtag_dsa.c1 // SPDX-License-Identifier: GPL-2.0+
3 * net/dsa/tag_dsa.c - (Non-ethertype) DSA tagging
4 * Copyright (c) 2008-2009 Marvell Semiconductor
21 * Convert the outermost 802.1q tag to a DSA tag for tagged in dsa_xmit()
22 * packets, or insert a DSA tag between the addresses and in dsa_xmit()
25 if (skb->protocol == htons(ETH_P_8021Q)) { in dsa_xmit()
27 * Construct tagged FROM_CPU DSA tag from 802.1q tag. in dsa_xmit()
29 dsa_header = skb->data + 2 * ETH_ALEN; in dsa_xmit()
30 dsa_header[0] = 0x60 | dp->ds->index; in dsa_xmit()
31 dsa_header[1] = dp->index << 3; in dsa_xmit()
[all …]
Dtag_edsa.c1 // SPDX-License-Identifier: GPL-2.0+
3 * net/dsa/tag_edsa.c - Ethertype DSA tagging
4 * Copyright (c) 2008-2009 Marvell Semiconductor
32 * Convert the outermost 802.1q tag to a DSA tag and prepend in edsa_xmit()
33 * a DSA ethertype field is the packet is tagged, or insert in edsa_xmit()
34 * a DSA ethertype plus DSA tag between the addresses and the in edsa_xmit()
37 if (skb->protocol == htons(ETH_P_8021Q)) { in edsa_xmit()
40 memmove(skb->data, skb->data + DSA_HLEN, 2 * ETH_ALEN); in edsa_xmit()
43 * Construct tagged FROM_CPU DSA tag from 802.1q tag. in edsa_xmit()
45 edsa_header = skb->data + 2 * ETH_ALEN; in edsa_xmit()
[all …]
Ddsa_priv.h1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * net/dsa/dsa_priv.h - Hardware switch handling
4 * Copyright (c) 2008-2009 Marvell Semiconductor
14 #include <net/dsa.h>
85 /* DSA port data, such as switch, port index, etc. */
96 /* dsa.c */
119 struct dsa_port *cpu_dp = dev->dsa_ptr; in dsa_master_find_slave()
120 struct dsa_switch_tree *dst = cpu_dp->dst; in dsa_master_find_slave()
123 list_for_each_entry(dp, &dst->ports, list) in dsa_master_find_slave()
124 if (dp->ds->index == device && dp->index == port && in dsa_master_find_slave()
[all …]
Dtag_mtk.c1 // SPDX-License-Identifier: GPL-2.0
3 * Mediatek DSA Tag support
27 unsigned char *dest = eth_hdr(skb)->h_dest; in mtk_tag_xmit()
31 /* Build the special tag after the MAC Source Address. If VLAN header in mtk_tag_xmit()
32 * is present, it's required that VLAN header and special tag is in mtk_tag_xmit()
34 * the both special and VLAN tag at the same time and then look up VLAN in mtk_tag_xmit()
37 switch (skb->protocol) { in mtk_tag_xmit()
47 memmove(skb->data, skb->data + MTK_HDR_LEN, 2 * ETH_ALEN); in mtk_tag_xmit()
50 mtk_tag = skb->data + 2 * ETH_ALEN; in mtk_tag_xmit()
52 /* Mark tag attribute on special tag insertion to notify hardware in mtk_tag_xmit()
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/net/dsa/
Ddsa-port.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/net/dsa/dsa-port.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Generic DSA Switch Port
10 - Andrew Lunn <andrew@lunn.ch>
11 - Florian Fainelli <f.fainelli@gmail.com>
12 - Vladimir Oltean <olteanv@gmail.com>
15 A DSA switch port is a component of a switch that manages one MAC, and can
17 DSA-specific functionality.
[all …]
/kernel/linux/linux-6.6/include/uapi/linux/
Dif_ether.h1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
3 * INET An implementation of the TCP/IP protocol suite for the LINUX
44 * These are the defined Ethernet Protocol ID's.
52 #define ETH_P_IP 0x0800 /* Internet Protocol packet */
58 #define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */
76 #define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
77 #define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
78 * defined in draft-wilson-wrec-wccp-v2-00.txt */
85 #define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
97 #define ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */
[all …]
/kernel/linux/linux-5.10/include/uapi/linux/
Dif_ether.h1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
3 * INET An implementation of the TCP/IP protocol suite for the LINUX
44 * These are the defined Ethernet Protocol ID's.
52 #define ETH_P_IP 0x0800 /* Internet Protocol packet */
58 #define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */
76 #define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
77 #define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
78 * defined in draft-wilson-wrec-wccp-v2-00.txt */
85 #define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
94 #define ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */
[all …]
/kernel/linux/linux-6.6/arch/arm64/boot/dts/freescale/
Dfsl-ls1028a-kontron-sl28.dts1 // SPDX-License-Identifier: GPL-2.0+
3 * Device Tree file for the Kontron SMARC-sAL28 board.
9 /dts-v1/;
10 #include "fsl-ls1028a.dtsi"
11 #include <dt-bindings/interrupt-controller/irq.h>
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/input/input.h>
16 model = "Kontron SMARC-sAL28";
33 compatible = "gpio-keys";
35 power-button {
[all …]

123