xref: /linux/Documentation/networking/bridge.rst (revision 27103ddd)
16b335f82STobin C. Harding.. SPDX-License-Identifier: GPL-2.0
26b335f82STobin C. Harding
36b335f82STobin C. Harding=================
46b335f82STobin C. HardingEthernet Bridging
56b335f82STobin C. Harding=================
66b335f82STobin C. Harding
7e8a4195dSHangbin LiuIntroduction
8e8a4195dSHangbin Liu============
96b335f82STobin C. Harding
10e8a4195dSHangbin LiuThe IEEE 802.1Q-2022 (Bridges and Bridged Networks) standard defines the
11e8a4195dSHangbin Liuoperation of bridges in computer networks. A bridge, in the context of this
12e8a4195dSHangbin Liustandard, is a device that connects two or more network segments and operates
13e8a4195dSHangbin Liuat the data link layer (Layer 2) of the OSI (Open Systems Interconnection)
14e8a4195dSHangbin Liumodel. The purpose of a bridge is to filter and forward frames between
15e8a4195dSHangbin Liudifferent segments based on the destination MAC (Media Access Control) address.
16e8a4195dSHangbin Liu
17bcc1f84eSHangbin LiuBridge kAPI
18bcc1f84eSHangbin Liu===========
19bcc1f84eSHangbin Liu
20bcc1f84eSHangbin LiuHere are some core structures of bridge code. Note that the kAPI is *unstable*,
21bcc1f84eSHangbin Liuand can be changed at any time.
22bcc1f84eSHangbin Liu
23bcc1f84eSHangbin Liu.. kernel-doc:: net/bridge/br_private.h
24bcc1f84eSHangbin Liu   :identifiers: net_bridge_vlan
25bcc1f84eSHangbin Liu
26bcc1f84eSHangbin LiuBridge uAPI
27bcc1f84eSHangbin Liu===========
28bcc1f84eSHangbin Liu
29bcc1f84eSHangbin LiuModern Linux bridge uAPI is accessed via Netlink interface. You can find
30bcc1f84eSHangbin Liubelow files where the bridge and bridge port netlink attributes are defined.
31bcc1f84eSHangbin Liu
32bcc1f84eSHangbin LiuBridge netlink attributes
33bcc1f84eSHangbin Liu-------------------------
34bcc1f84eSHangbin Liu
35bcc1f84eSHangbin Liu.. kernel-doc:: include/uapi/linux/if_link.h
36bcc1f84eSHangbin Liu   :doc: Bridge enum definition
37bcc1f84eSHangbin Liu
38bcc1f84eSHangbin LiuBridge port netlink attributes
39bcc1f84eSHangbin Liu------------------------------
40bcc1f84eSHangbin Liu
41bcc1f84eSHangbin Liu.. kernel-doc:: include/uapi/linux/if_link.h
42bcc1f84eSHangbin Liu   :doc: Bridge port enum definition
43bcc1f84eSHangbin Liu
44bcc1f84eSHangbin LiuBridge sysfs
45bcc1f84eSHangbin Liu------------
46bcc1f84eSHangbin Liu
47bcc1f84eSHangbin LiuThe sysfs interface is deprecated and should not be extended if new
48bcc1f84eSHangbin Liuoptions are added.
49bcc1f84eSHangbin Liu
50567d2608SHangbin LiuSTP
51567d2608SHangbin Liu===
52567d2608SHangbin Liu
53567d2608SHangbin LiuThe STP (Spanning Tree Protocol) implementation in the Linux bridge driver
54567d2608SHangbin Liuis a critical feature that helps prevent loops and broadcast storms in
55567d2608SHangbin LiuEthernet networks by identifying and disabling redundant links. In a Linux
56567d2608SHangbin Liubridge context, STP is crucial for network stability and availability.
57567d2608SHangbin Liu
58567d2608SHangbin LiuSTP is a Layer 2 protocol that operates at the Data Link Layer of the OSI
59567d2608SHangbin Liumodel. It was originally developed as IEEE 802.1D and has since evolved into
60567d2608SHangbin Liumultiple versions, including Rapid Spanning Tree Protocol (RSTP) and
61567d2608SHangbin Liu`Multiple Spanning Tree Protocol (MSTP)
62567d2608SHangbin Liu<https://lore.kernel.org/netdev/20220316150857.2442916-1-tobias@waldekranz.com/>`_.
63567d2608SHangbin Liu
64567d2608SHangbin LiuThe 802.1D-2004 removed the original Spanning Tree Protocol, instead
65567d2608SHangbin Liuincorporating the Rapid Spanning Tree Protocol (RSTP). By 2014, all the
66567d2608SHangbin Liufunctionality defined by IEEE 802.1D has been incorporated into either
67567d2608SHangbin LiuIEEE 802.1Q (Bridges and Bridged Networks) or IEEE 802.1AC (MAC Service
68567d2608SHangbin LiuDefinition). 802.1D has been officially withdrawn in 2022.
69567d2608SHangbin Liu
70567d2608SHangbin LiuBridge Ports and STP States
71567d2608SHangbin Liu---------------------------
72567d2608SHangbin Liu
73567d2608SHangbin LiuIn the context of STP, bridge ports can be in one of the following states:
74567d2608SHangbin Liu  * Blocking: The port is disabled for data traffic and only listens for
75567d2608SHangbin Liu    BPDUs (Bridge Protocol Data Units) from other devices to determine the
76567d2608SHangbin Liu    network topology.
77567d2608SHangbin Liu  * Listening: The port begins to participate in the STP process and listens
78567d2608SHangbin Liu    for BPDUs.
79567d2608SHangbin Liu  * Learning: The port continues to listen for BPDUs and begins to learn MAC
80567d2608SHangbin Liu    addresses from incoming frames but does not forward data frames.
81567d2608SHangbin Liu  * Forwarding: The port is fully operational and forwards both BPDUs and
82567d2608SHangbin Liu    data frames.
83567d2608SHangbin Liu  * Disabled: The port is administratively disabled and does not participate
84567d2608SHangbin Liu    in the STP process. The data frames forwarding are also disabled.
85567d2608SHangbin Liu
86567d2608SHangbin LiuRoot Bridge and Convergence
87567d2608SHangbin Liu---------------------------
88567d2608SHangbin Liu
89567d2608SHangbin LiuIn the context of networking and Ethernet bridging in Linux, the root bridge
90567d2608SHangbin Liuis a designated switch in a bridged network that serves as a reference point
91567d2608SHangbin Liufor the spanning tree algorithm to create a loop-free topology.
92567d2608SHangbin Liu
93567d2608SHangbin LiuHere's how the STP works and root bridge is chosen:
94567d2608SHangbin Liu  1. Bridge Priority: Each bridge running a spanning tree protocol, has a
95567d2608SHangbin Liu     configurable Bridge Priority value. The lower the value, the higher the
96567d2608SHangbin Liu     priority. By default, the Bridge Priority is set to a standard value
97567d2608SHangbin Liu     (e.g., 32768).
98567d2608SHangbin Liu  2. Bridge ID: The Bridge ID is composed of two components: Bridge Priority
99567d2608SHangbin Liu     and the MAC address of the bridge. It uniquely identifies each bridge
100567d2608SHangbin Liu     in the network. The Bridge ID is used to compare the priorities of
101567d2608SHangbin Liu     different bridges.
102567d2608SHangbin Liu  3. Bridge Election: When the network starts, all bridges initially assume
103567d2608SHangbin Liu     that they are the root bridge. They start advertising Bridge Protocol
104567d2608SHangbin Liu     Data Units (BPDU) to their neighbors, containing their Bridge ID and
105567d2608SHangbin Liu     other information.
106567d2608SHangbin Liu  4. BPDU Comparison: Bridges exchange BPDUs to determine the root bridge.
107567d2608SHangbin Liu     Each bridge examines the received BPDUs, including the Bridge Priority
108567d2608SHangbin Liu     and Bridge ID, to determine if it should adjust its own priorities.
109567d2608SHangbin Liu     The bridge with the lowest Bridge ID will become the root bridge.
110567d2608SHangbin Liu  5. Root Bridge Announcement: Once the root bridge is determined, it sends
111567d2608SHangbin Liu     BPDUs with information about the root bridge to all other bridges in the
112567d2608SHangbin Liu     network. This information is used by other bridges to calculate the
113567d2608SHangbin Liu     shortest path to the root bridge and, in doing so, create a loop-free
114567d2608SHangbin Liu     topology.
115567d2608SHangbin Liu  6. Forwarding Ports: After the root bridge is selected and the spanning tree
116567d2608SHangbin Liu     topology is established, each bridge determines which of its ports should
117567d2608SHangbin Liu     be in the forwarding state (used for data traffic) and which should be in
118567d2608SHangbin Liu     the blocking state (used to prevent loops). The root bridge's ports are
119567d2608SHangbin Liu     all in the forwarding state. while other bridges have some ports in the
120567d2608SHangbin Liu     blocking state to avoid loops.
121567d2608SHangbin Liu  7. Root Ports: After the root bridge is selected and the spanning tree
122567d2608SHangbin Liu     topology is established, each non-root bridge processes incoming
123567d2608SHangbin Liu     BPDUs and determines which of its ports provides the shortest path to the
124567d2608SHangbin Liu     root bridge based on the information in the received BPDUs. This port is
125567d2608SHangbin Liu     designated as the root port. And it is in the Forwarding state, allowing
126567d2608SHangbin Liu     it to actively forward network traffic.
127567d2608SHangbin Liu  8. Designated ports: A designated port is the port through which the non-root
128567d2608SHangbin Liu     bridge will forward traffic towards the designated segment. Designated ports
129567d2608SHangbin Liu     are placed in the Forwarding state. All other ports on the non-root
130567d2608SHangbin Liu     bridge that are not designated for specific segments are placed in the
131567d2608SHangbin Liu     Blocking state to prevent network loops.
132567d2608SHangbin Liu
133567d2608SHangbin LiuSTP ensures network convergence by calculating the shortest path and disabling
134567d2608SHangbin Liuredundant links. When network topology changes occur (e.g., a link failure),
135567d2608SHangbin LiuSTP recalculates the network topology to restore connectivity while avoiding loops.
136567d2608SHangbin Liu
137567d2608SHangbin LiuProper configuration of STP parameters, such as the bridge priority, can
138567d2608SHangbin Liuinfluence network performance, path selection and which bridge becomes the
139567d2608SHangbin LiuRoot Bridge.
140567d2608SHangbin Liu
141567d2608SHangbin LiuUser space STP helper
142567d2608SHangbin Liu---------------------
143567d2608SHangbin Liu
144567d2608SHangbin LiuThe user space STP helper *bridge-stp* is a program to control whether to use
145567d2608SHangbin Liuuser mode spanning tree. The ``/sbin/bridge-stp <bridge> <start|stop>`` is
146567d2608SHangbin Liucalled by the kernel when STP is enabled/disabled on a bridge
147567d2608SHangbin Liu(via ``brctl stp <bridge> <on|off>`` or ``ip link set <bridge> type bridge
148567d2608SHangbin Liustp_state <0|1>``).  The kernel enables user_stp mode if that command returns
149567d2608SHangbin Liu0, or enables kernel_stp mode if that command returns any other value.
150567d2608SHangbin Liu
151041a6ac4SHangbin LiuVLAN
152041a6ac4SHangbin Liu====
153041a6ac4SHangbin Liu
154041a6ac4SHangbin LiuA LAN (Local Area Network) is a network that covers a small geographic area,
155041a6ac4SHangbin Liutypically within a single building or a campus. LANs are used to connect
156041a6ac4SHangbin Liucomputers, servers, printers, and other networked devices within a localized
157041a6ac4SHangbin Liuarea. LANs can be wired (using Ethernet cables) or wireless (using Wi-Fi).
158041a6ac4SHangbin Liu
159041a6ac4SHangbin LiuA VLAN (Virtual Local Area Network) is a logical segmentation of a physical
160041a6ac4SHangbin Liunetwork into multiple isolated broadcast domains. VLANs are used to divide
161041a6ac4SHangbin Liua single physical LAN into multiple virtual LANs, allowing different groups of
162041a6ac4SHangbin Liudevices to communicate as if they were on separate physical networks.
163041a6ac4SHangbin Liu
164041a6ac4SHangbin LiuTypically there are two VLAN implementations, IEEE 802.1Q and IEEE 802.1ad
165041a6ac4SHangbin Liu(also known as QinQ). IEEE 802.1Q is a standard for VLAN tagging in Ethernet
166041a6ac4SHangbin Liunetworks. It allows network administrators to create logical VLANs on a
167041a6ac4SHangbin Liuphysical network and tag Ethernet frames with VLAN information, which is
168041a6ac4SHangbin Liucalled *VLAN-tagged frames*. IEEE 802.1ad, commonly known as QinQ or Double
169041a6ac4SHangbin LiuVLAN, is an extension of the IEEE 802.1Q standard. QinQ allows for the
170041a6ac4SHangbin Liustacking of multiple VLAN tags within a single Ethernet frame. The Linux
171041a6ac4SHangbin Liubridge supports both the IEEE 802.1Q and `802.1AD
172041a6ac4SHangbin Liu<https://lore.kernel.org/netdev/1402401565-15423-1-git-send-email-makita.toshiaki@lab.ntt.co.jp/>`_
173041a6ac4SHangbin Liuprotocol for VLAN tagging.
174041a6ac4SHangbin Liu
175041a6ac4SHangbin Liu`VLAN filtering <https://lore.kernel.org/netdev/1360792820-14116-1-git-send-email-vyasevic@redhat.com/>`_
176041a6ac4SHangbin Liuon a bridge is disabled by default. After enabling VLAN filtering on a bridge,
177041a6ac4SHangbin Liuit will start forwarding frames to appropriate destinations based on their
178041a6ac4SHangbin Liudestination MAC address and VLAN tag (both must match).
179041a6ac4SHangbin Liu
18075ceac88SHangbin LiuMulticast
18175ceac88SHangbin Liu=========
18275ceac88SHangbin Liu
18375ceac88SHangbin LiuThe Linux bridge driver has multicast support allowing it to process Internet
18475ceac88SHangbin LiuGroup Management Protocol (IGMP) or Multicast Listener Discovery (MLD)
18575ceac88SHangbin Liumessages, and to efficiently forward multicast data packets. The bridge
18675ceac88SHangbin Liudriver supports IGMPv2/IGMPv3 and MLDv1/MLDv2.
18775ceac88SHangbin Liu
18875ceac88SHangbin LiuMulticast snooping
18975ceac88SHangbin Liu------------------
19075ceac88SHangbin Liu
19175ceac88SHangbin LiuMulticast snooping is a networking technology that allows network switches
19275ceac88SHangbin Liuto intelligently manage multicast traffic within a local area network (LAN).
19375ceac88SHangbin Liu
19475ceac88SHangbin LiuThe switch maintains a multicast group table, which records the association
19575ceac88SHangbin Liubetween multicast group addresses and the ports where hosts have joined these
19675ceac88SHangbin Liugroups. The group table is dynamically updated based on the IGMP/MLD messages
19775ceac88SHangbin Liureceived. With the multicast group information gathered through snooping, the
19875ceac88SHangbin Liuswitch optimizes the forwarding of multicast traffic. Instead of blindly
19975ceac88SHangbin Liubroadcasting the multicast traffic to all ports, it sends the multicast
20075ceac88SHangbin Liutraffic based on the destination MAC address only to ports which have
20175ceac88SHangbin Liusubscribed the respective destination multicast group.
20275ceac88SHangbin Liu
20375ceac88SHangbin LiuWhen created, the Linux bridge devices have multicast snooping enabled by
20475ceac88SHangbin Liudefault. It maintains a Multicast forwarding database (MDB) which keeps track
20575ceac88SHangbin Liuof port and group relationships.
20675ceac88SHangbin Liu
20775ceac88SHangbin LiuIGMPv3/MLDv2 EHT support
20875ceac88SHangbin Liu------------------------
20975ceac88SHangbin Liu
21075ceac88SHangbin LiuThe Linux bridge supports IGMPv3/MLDv2 EHT (Explicit Host Tracking), which
21175ceac88SHangbin Liuwas added by `474ddb37fa3a ("net: bridge: multicast: add EHT allow/block handling")
21275ceac88SHangbin Liu<https://lore.kernel.org/netdev/20210120145203.1109140-1-razor@blackwall.org/>`_
21375ceac88SHangbin Liu
21475ceac88SHangbin LiuThe explicit host tracking enables the device to keep track of each
21575ceac88SHangbin Liuindividual host that is joined to a particular group or channel. The main
21675ceac88SHangbin Liubenefit of the explicit host tracking in IGMP is to allow minimal leave
21775ceac88SHangbin Liulatencies when a host leaves a multicast group or channel.
21875ceac88SHangbin Liu
21975ceac88SHangbin LiuThe length of time between a host wanting to leave and a device stopping
22075ceac88SHangbin Liutraffic forwarding is called the IGMP leave latency. A device configured
22175ceac88SHangbin Liuwith IGMPv3 or MLDv2 and explicit tracking can immediately stop forwarding
22275ceac88SHangbin Liutraffic if the last host to request to receive traffic from the device
22375ceac88SHangbin Liuindicates that it no longer wants to receive traffic. The leave latency
22475ceac88SHangbin Liuis thus bound only by the packet transmission latencies in the multiaccess
22575ceac88SHangbin Liunetwork and the processing time in the device.
22675ceac88SHangbin Liu
22775ceac88SHangbin LiuOther multicast features
22875ceac88SHangbin Liu------------------------
22975ceac88SHangbin Liu
23075ceac88SHangbin LiuThe Linux bridge also supports `per-VLAN multicast snooping
23175ceac88SHangbin Liu<https://lore.kernel.org/netdev/20210719170637.435541-1-razor@blackwall.org/>`_,
23275ceac88SHangbin Liuwhich is disabled by default but can be enabled. And `Multicast Router Discovery
23375ceac88SHangbin Liu<https://lore.kernel.org/netdev/20190121062628.2710-1-linus.luessing@c0d3.blue/>`_,
23475ceac88SHangbin Liuwhich help identify the location of multicast routers.
23575ceac88SHangbin Liu
2363c37f17dSHangbin LiuSwitchdev
2373c37f17dSHangbin Liu=========
2383c37f17dSHangbin Liu
2393c37f17dSHangbin LiuLinux Bridge Switchdev is a feature in the Linux kernel that extends the
2403c37f17dSHangbin Liucapabilities of the traditional Linux bridge to work more efficiently with
2413c37f17dSHangbin Liuhardware switches that support switchdev. With Linux Bridge Switchdev, certain
2423c37f17dSHangbin Liunetworking functions like forwarding, filtering, and learning of Ethernet
2433c37f17dSHangbin Liuframes can be offloaded to a hardware switch. This offloading reduces the
2443c37f17dSHangbin Liuburden on the Linux kernel and CPU, leading to improved network performance
2453c37f17dSHangbin Liuand lower latency.
2463c37f17dSHangbin Liu
2473c37f17dSHangbin LiuTo use Linux Bridge Switchdev, you need hardware switches that support the
2483c37f17dSHangbin Liuswitchdev interface. This means that the switch hardware needs to have the
2493c37f17dSHangbin Liunecessary drivers and functionality to work in conjunction with the Linux
2503c37f17dSHangbin Liukernel.
2513c37f17dSHangbin Liu
2523c37f17dSHangbin LiuPlease see the :ref:`switchdev` document for more details.
2533c37f17dSHangbin Liu
2541b1a4c7eSHangbin LiuNetfilter
2551b1a4c7eSHangbin Liu=========
2561b1a4c7eSHangbin Liu
2571b1a4c7eSHangbin LiuThe bridge netfilter module is a legacy feature that allows to filter bridged
2581b1a4c7eSHangbin Liupackets with iptables and ip6tables. Its use is discouraged. Users should
2591b1a4c7eSHangbin Liuconsider using nftables for packet filtering.
2601b1a4c7eSHangbin Liu
2611b1a4c7eSHangbin LiuThe older ebtables tool is more feature-limited compared to nftables, but
2621b1a4c7eSHangbin Liujust like nftables it doesn't need this module either to function.
2631b1a4c7eSHangbin Liu
2641b1a4c7eSHangbin LiuThe br_netfilter module intercepts packets entering the bridge, performs
2651b1a4c7eSHangbin Liuminimal sanity tests on ipv4 and ipv6 packets and then pretends that
2661b1a4c7eSHangbin Liuthese packets are being routed, not bridged. br_netfilter then calls
2671b1a4c7eSHangbin Liuthe ip and ipv6 netfilter hooks from the bridge layer, i.e. ip(6)tables
2681b1a4c7eSHangbin Liurulesets will also see these packets.
2691b1a4c7eSHangbin Liu
2701b1a4c7eSHangbin Liubr_netfilter is also the reason for the iptables *physdev* match:
2711b1a4c7eSHangbin LiuThis match is the only way to reliably tell routed and bridged packets
2721b1a4c7eSHangbin Liuapart in an iptables ruleset.
2731b1a4c7eSHangbin Liu
2741b1a4c7eSHangbin LiuNote that ebtables and nftables will work fine without the br_netfilter module.
2751b1a4c7eSHangbin Liuiptables/ip6tables/arptables do not work for bridged traffic because they
2761b1a4c7eSHangbin Liuplug in the routing stack. nftables rules in ip/ip6/inet/arp families won't
2771b1a4c7eSHangbin Liusee traffic that is forwarded by a bridge either, but that's very much how it
2781b1a4c7eSHangbin Liushould be.
2791b1a4c7eSHangbin Liu
2801b1a4c7eSHangbin LiuHistorically the feature set of ebtables was very limited (it still is),
2811b1a4c7eSHangbin Liuthis module was added to pretend packets are routed and invoke the ipv4/ipv6
2821b1a4c7eSHangbin Liunetfilter hooks from the bridge so users had access to the more feature-rich
2831b1a4c7eSHangbin Liuiptables matching capabilities (including conntrack). nftables doesn't have
2841b1a4c7eSHangbin Liuthis limitation, pretty much all features work regardless of the protocol family.
2851b1a4c7eSHangbin Liu
2861b1a4c7eSHangbin LiuSo, br_netfilter is only needed if users, for some reason, need to use
2871b1a4c7eSHangbin Liuip(6)tables to filter packets forwarded by the bridge, or NAT bridged
2881b1a4c7eSHangbin Liutraffic. For pure link layer filtering, this module isn't needed.
2891b1a4c7eSHangbin Liu
290d2afc2cdSHangbin LiuOther Features
291d2afc2cdSHangbin Liu==============
292d2afc2cdSHangbin Liu
293d2afc2cdSHangbin LiuThe Linux bridge also supports `IEEE 802.11 Proxy ARP
294d2afc2cdSHangbin Liu<https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=958501163ddd6ea22a98f94fa0e7ce6d4734e5c4>`_,
295d2afc2cdSHangbin Liu`Media Redundancy Protocol (MRP)
296d2afc2cdSHangbin Liu<https://lore.kernel.org/netdev/20200426132208.3232-1-horatiu.vultur@microchip.com/>`_,
297d2afc2cdSHangbin Liu`Media Redundancy Protocol (MRP) LC mode
298d2afc2cdSHangbin Liu<https://lore.kernel.org/r/20201124082525.273820-1-horatiu.vultur@microchip.com>`_,
299d2afc2cdSHangbin Liu`IEEE 802.1X port authentication
300d2afc2cdSHangbin Liu<https://lore.kernel.org/netdev/20220218155148.2329797-1-schultz.hans+netdev@gmail.com/>`_,
301d2afc2cdSHangbin Liuand `MAC Authentication Bypass (MAB)
302d2afc2cdSHangbin Liu<https://lore.kernel.org/netdev/20221101193922.2125323-2-idosch@nvidia.com/>`_.
303d2afc2cdSHangbin Liu
304e8a4195dSHangbin LiuFAQ
305e8a4195dSHangbin Liu===
306e8a4195dSHangbin Liu
307e8a4195dSHangbin LiuWhat does a bridge do?
308e8a4195dSHangbin Liu----------------------
309e8a4195dSHangbin Liu
310e8a4195dSHangbin LiuA bridge transparently forwards traffic between multiple network interfaces.
311e8a4195dSHangbin LiuIn plain English this means that a bridge connects two or more physical
312e8a4195dSHangbin LiuEthernet networks, to form one larger (logical) Ethernet network.
313e8a4195dSHangbin Liu
314e8a4195dSHangbin LiuIs it L3 protocol independent?
315e8a4195dSHangbin Liu------------------------------
316e8a4195dSHangbin Liu
317e8a4195dSHangbin LiuYes. The bridge sees all frames, but it *uses* only L2 headers/information.
318e8a4195dSHangbin LiuAs such, the bridging functionality is protocol independent, and there should
319e8a4195dSHangbin Liube no trouble forwarding IPX, NetBEUI, IP, IPv6, etc.
320e8a4195dSHangbin Liu
321e8a4195dSHangbin LiuContact Info
322e8a4195dSHangbin Liu============
323e8a4195dSHangbin Liu
324e8a4195dSHangbin LiuThe code is currently maintained by Roopa Prabhu <roopa@nvidia.com> and
325e8a4195dSHangbin LiuNikolay Aleksandrov <razor@blackwall.org>. Bridge bugs and enhancements
326e8a4195dSHangbin Liuare discussed on the linux-netdev mailing list netdev@vger.kernel.org and
327*27103dddSKonstantin Ryabitsevbridge@lists.linux.dev.
328e8a4195dSHangbin Liu
329e8a4195dSHangbin LiuThe list is open to anyone interested: http://vger.kernel.org/vger-lists.html#netdev
330e8a4195dSHangbin Liu
331e8a4195dSHangbin LiuExternal Links
332e8a4195dSHangbin Liu==============
333e8a4195dSHangbin Liu
334e8a4195dSHangbin LiuThe old Documentation for Linux bridging is on:
335aee2770dSIvan Vecerahttps://wiki.linuxfoundation.org/networking/bridge
336