/linux/Documentation/networking/dsa/ |
H A D | dsa.rst | 5 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 "conduit" 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 …]
|
H A D | configuration.rst | 1 .. 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 user interface is brought up, the conduit interface is 44 - when the conduit interface is brought down, all DSA user interfaces are 71 * lan1: 192.0.2.1/30 (192.0.2.0 - 192.0.2.3) [all …]
|
H A D | sja1105.rst | 8 The NXP SJA1105 is a family of 10 SPI-managed automotive switches: 10 - SJA1105E: First generation, no TTEthernet 11 - SJA1105T: First generation, TTEthernet 12 - SJA1105P: Second generation, no TTEthernet, no SGMII 13 - SJA1105Q: Second generation, TTEthernet, no SGMII 14 - SJA1105R: Second generation, no TTEthernet, SGMII 15 - SJA1105S: Second generation, TTEthernet, SGMII 16 - SJA1110A: Third generation, TTEthernet, SGMII, integrated 100base-T1 and 17 100base-TX PHYs 18 - SJA1110B: Third generation, TTEthernet, SGMII, 100base-T1, 100base-TX [all …]
|
/linux/net/dsa/ |
H A D | tag_rtl4_a.c | 1 // 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" 28 * 0x1 = Realtek Remote Control protocol (RRCP) [all …]
|
H A D | Kconfig | 1 # 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 …]
|
H A D | tag.h | 1 /* 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_conduit_find_user() 36 struct dsa_switch_tree *dst = cpu_dp->dst; in dsa_conduit_find_user() 39 list_for_each_entry(dp, &dst->ports, list) in dsa_conduit_find_user() 40 if (dp->ds->index == device && dp->index == port && in dsa_conduit_find_user() 41 dp->type == DSA_PORT_TYPE_USER) in dsa_conduit_find_user() 42 return dp->user; in dsa_conduit_find_user() 48 * dsa_software_untag_vlan_aware_bridge: Software untagging for VLAN-aware bridge [all …]
|
H A D | tag_dsa.c | 1 // 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 …]
|
H A D | tag_mtk.c | 1 // 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 …]
|
H A D | tag_rtl8_4.c | 1 // 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 …]
|
H A D | conduit.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (c) 2017 Savoir-faire Linux Inc. 12 #include <net/dsa.h> 15 #include "dsa.h" 17 #include "tag.h" 21 struct dsa_port *cpu_dp = dev->dsa_ptr; in dsa_conduit_get_regs_len() 22 const struct ethtool_ops *ops = cpu_dp->orig_ethtool_ops; in dsa_conduit_get_regs_len() 23 struct dsa_switch *ds = cpu_dp->ds; in dsa_conduit_get_regs_len() 24 int port = cpu_dp->index; in dsa_conduit_get_regs_len() 28 if (ops->get_regs_len) { in dsa_conduit_get_regs_len() [all …]
|
H A D | tag.c | 1 // 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> 16 #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 …]
|
H A D | tag_sja1105.c | 1 // 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_dat in sja1105_tagger_private() [all...] |
H A D | switch.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (c) 2017 Savoir-faire Linux Inc. 15 #include "dsa.h" 29 if (dp->ageing_time && dp->ageing_time < ageing_time) in dsa_switch_fastest_ageing_time() 30 ageing_time = dp->ageing_time; in dsa_switch_fastest_ageing_time() 38 unsigned int ageing_time = info->ageing_time; in dsa_switch_ageing_time() 40 if (ds->ageing_time_min && ageing_time < ds->ageing_time_min) in dsa_switch_ageing_time() 41 return -ERANGE; in dsa_switch_ageing_time() 43 if (ds->ageing_time_max && ageing_time > ds->ageing_time_max) in dsa_switch_ageing_time() 44 return -ERANGE; in dsa_switch_ageing_time() [all …]
|
/linux/Documentation/devicetree/bindings/net/dsa/ |
H A D | dsa-port.yaml | 1 # 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 …]
|
/linux/include/uapi/linux/ |
H A D | if_ether.h | 1 /* 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 …]
|
/linux/arch/arm64/boot/dts/freescale/ |
H A D | fsl-ls1028a-kontron-sl28.dts | 1 // 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 …]
|
/linux/Documentation/networking/ |
H A D | nf_flowtable.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 -------- 28 n-tuple selectors: layer 2 protocol encapsulation (VLAN and PPPoE), layer 3 51 _________ __________ --------- _____\/_____ 53 --> ingress ---> prerouting ---> |decision| | postrouting |--> neigh_xmit 54 \_________/ \__________/ ---------- \____________/ ^ 58 __\/___ | | forward |------------ | 59 |-----| | \_________/ | 60 |-----| | 'flow offload' rule | 61 |-----| | adds entry to | [all …]
|
/linux/drivers/net/ethernet/marvell/prestera/ |
H A D | prestera_rxtx.c | 1 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 2 /* Copyright (c) 2019-2020 Marvell International Ltd. All rights reserved */ 28 ((le32_to_cpu((desc)->word2) >> 16) & GENMASK(13, 0)) 31 ((le32_to_cpu((desc)->word1) & BIT(31)) >> 31) 47 ((le32_to_cpu((desc)->word1) & BIT(31)) >> 31) 116 desc = dma_pool_alloc(sdma->desc_pool, GFP_DMA | GFP_KERNEL, &dma); in prestera_sdma_buf_init() 118 return -ENOMEM; in prestera_sdma_buf_init() 120 buf->buf_dma = DMA_MAPPING_ERROR; in prestera_sdma_buf_init() 121 buf->desc_dma = dma; in prestera_sdma_buf_init() 122 buf->desc = desc; in prestera_sdma_buf_init() [all …]
|
/linux/drivers/scsi/sym53c8xx_2/ |
H A D | sym_hipd.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 * of PCI-SCSI IO processors. 6 * Copyright (C) 1999-2001 Gerard Roudier <groudier@free.fr> 7 * Copyright (c) 2003-2005 Matthew Wilcox <matthew@wil.cx> 10 * Copyright (C) 1998-2000 Gerard Roudier 13 * a port of the FreeBSD ncr driver to Linux-1.2.13. 17 * Stefan Esser <se@mi.Uni-Koeln.de> 25 *----------------------------------------------------------------------------- 44 static struct sym_ccb *sym_ccb_from_dsa(struct sym_hcb *np, u32 dsa); 55 while (n-- > 0) in sym_printl_hex() [all …]
|
/linux/Documentation/arch/x86/ |
H A D | sva.rst | 1 .. SPDX-License-Identifier: GPL-2.0 19 application page-faults. For more information please refer to the PCIe 34 Unlike Single Root I/O Virtualization (SR-IOV), Scalable IOV (SIOV) permits 40 ID (PASID), which is a 20-bit number defined by the PCIe SIG. 43 IOMMU to track I/O on a per-PASID granularity in addition to using the PCIe 55 ENQCMD works with non-posted semantics and carries a status back if the 67 A new thread-scoped MSR (IA32_PASID) provides the connection between 69 accesses an SVA-capable device, this MSR is initialized with a newly 70 allocated PASID. The driver for the device calls an IOMMU-specific API 71 that sets up the routing for DMA and page-requests. [all …]
|
/linux/drivers/net/dsa/ |
H A D | mt7530.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Mediatek MT7530 DSA Switch driver 23 #include <net/dsa.h> 81 if (priv->bus) in mt7530_mutex_lock() 82 mutex_lock_nested(&priv->bus->mdio_lock, MDIO_MUTEX_NESTED); in mt7530_mutex_lock() 88 if (priv->bus) in mt7530_mutex_unlock() 89 mutex_unlock(&priv->bus->mdio_lock); in mt7530_mutex_unlock() 95 struct mii_bus *bus = priv->bus; in core_write() 101 ret = bus->write(bus, MT753X_CTRL_PHY_ADDR(priv->mdiodev->addr), in core_write() 107 ret = bus->write(bus, MT753X_CTRL_PHY_ADDR(priv->mdiodev->addr), in core_write() [all …]
|
/linux/drivers/scsi/ |
H A D | ncr53c8xx.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 ** Device driver for the PCI-SCSI NCR538XX controller family. 8 **----------------------------------------------------------------------------- 22 ** Stefan Esser <se@mi.Uni-Koeln.de> 27 **----------------------------------------------------------------------------- 38 ** Support for Fast-20 scsi. 42 ** Support for Fast-40 scsi. 43 ** Support for on-Board RAM. 46 ** Full support for scsi scripts instructions pre-fetching. 57 ** Low PCI traffic for command handling when on-chip RAM is present. [all …]
|
/linux/drivers/net/dsa/realtek/ |
H A D | rtl8366rb.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org> 27 #include "realtek-smi.h" 28 #include "realtek-mdio.h" 47 /* Switch per-port learning disablement register */ 123 /* Disables inserting custom tag length/type 0x8899 */ 160 * VID such as untagged or priority-tagged frames for respective 163 * a C-tag with VID != 0 for respective port. 363 mib->offset; in rtl8366rb_get_mib_counter() 368 ret = regmap_write(priv->map, addr, 0); /* Write whatever */ in rtl8366rb_get_mib_counter() [all …]
|
/linux/drivers/net/ethernet/broadcom/ |
H A D | bcmsysport.c | 1 // SPDX-License-Identifier: GPL-2.0-only 15 #include <linux/dsa/brcm.h> 23 #include <net/dsa.h> 35 if (priv->is_lite && off >= RDMA_STATUS) in rdma_readl() 37 return readl_relaxed(priv->base + SYS_PORT_RDMA_OFFSET + off); in rdma_readl() 42 if (priv->is_lite && off >= RDMA_STATUS) in rdma_writel() 44 writel_relaxed(val, priv->base + SYS_PORT_RDMA_OFFSET + off); in rdma_writel() 49 if (!priv->is_lite) { in tdma_control_bit() 59 /* L2-interrupt masking/unmasking helpers, does automatic saving of the applied 60 * mask in a software copy to avoid CPU_MASK_STATUS reads in hot-paths. [all …]
|
/linux/drivers/net/ethernet/mscc/ |
H A D | ocelot.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 7 #include <linux/dsa/ocelot.h> 30 /* Caller must hold &ocelot->mact_lock */ 36 /* Caller must hold &ocelot->mact_lock */ 48 /* Caller must hold &ocelot->mact_lock */ 90 if (mc_ports & BIT(ocelot->num_phys_ports)) in __ocelot_mact_learn() 109 mutex_lock(&ocelot->mact_lock); in ocelot_mact_learn() 111 mutex_unlock(&ocelot->mact_lock); in ocelot_mact_learn() 122 mutex_lock(&ocelot->mact_lock); in ocelot_mact_forget() 133 mutex_unlock(&ocelot->mact_lock); in ocelot_mact_forget() [all …]
|