All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <liuhangbin@gmail.com>
To: netdev@vger.kernel.org
Cc: "David S . Miller" <davem@davemloft.net>,
	David Ahern <dsahern@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Ido Schimmel <idosch@idosch.org>,
	Nikolay Aleksandrov <razor@blackwall.org>,
	Roopa Prabhu <roopa@nvidia.com>,
	Stephen Hemminger <stephen@networkplumber.org>,
	Florian Westphal <fw@strlen.de>, Andrew Lunn <andrew@lunn.ch>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	Jiri Pirko <jiri@resnulli.us>,
	Marc Muehlfeld <mmuehlfe@redhat.com>,
	Hangbin Liu <liuhangbin@gmail.com>
Subject: [PATCHv3 net-next 07/10] docs: bridge: add multicast doc
Date: Tue, 28 Nov 2023 16:49:40 +0800	[thread overview]
Message-ID: <20231128084943.637091-8-liuhangbin@gmail.com> (raw)
In-Reply-To: <20231128084943.637091-1-liuhangbin@gmail.com>

Add multicast part for bridge document.

Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 Documentation/networking/bridge.rst | 55 +++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/Documentation/networking/bridge.rst b/Documentation/networking/bridge.rst
index 764d44c93c65..956583d2a184 100644
--- a/Documentation/networking/bridge.rst
+++ b/Documentation/networking/bridge.rst
@@ -161,6 +161,61 @@ on a bridge is disabled by default. After enabling VLAN filtering on a bridge,
 it will start forwarding frames to appropriate destinations based on their
 destination MAC address and VLAN tag (both must match).
 
+Multicast
+=========
+
+The Linux bridge driver has multicast support allowing it to process Internet
+Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD)
+messages, and to efficiently forward multicast data packets. The bridge
+driver support IGMPv2/IGMPv3 and MLDv1/MLDv2.
+
+Multicast snooping
+------------------
+
+Multicast snooping is a networking technology that allows network switches
+to intelligently manage multicast traffic within a local area network (LAN).
+
+The switch maintains a multicast group table, which records the association
+between multicast group addresses and the ports where hosts have joined these
+groups. The group table is dynamically updated based on the IGMP/MLD messages
+received. With the multicast group information gathered through snooping, the
+switch optimizes the forwarding of multicast traffic. Instead of blindly
+broadcasting the multicast traffic to all ports, it sends the multicast
+traffic based on the destination MAC address only to ports which have joined
+the respective destination multicast group.
+
+When created, the Linux bridge devices have multicast snooping enabled by
+default. It maintains a Multicast forwarding database (MDB) which keeps track
+of port and group relationships.
+
+IGMPv3/MLDv2 EHT support
+------------------------
+
+The Linux bridge supports IGMPv3/MLDv2 EHT (Explicit Host Tracking), which
+was added by `474ddb37fa3a ("net: bridge: multicast: add EHT allow/block handling")
+<https://lore.kernel.org/netdev/20210120145203.1109140-1-razor@blackwall.org/>`_
+
+The explicit host tracking enables the device to keep track of each
+individual host that is joined to a particular group or channel. The main
+benefit of the explicit host tracking in IGMP is to allow minimal leave
+latencies when a host leaves a multicast group or channel.
+
+The length of time between a host wanting to leave and a device stopping
+traffic forwarding is called the IGMP leave latency. A device configured
+with IGMPv3 or MLDv2 and explicit tracking can immediately stop forwarding
+traffic if the last host to request to receive traffic from the device
+indicates that it no longer wants to receive traffic. The leave latency
+is thus bound only by the packet transmission latencies in the multiaccess
+network and the processing time in the device.
+
+Other multicast features
+------------------------
+The Linux bridge also supports `per-VLAN multicast snooping
+<https://lore.kernel.org/netdev/20210719170637.435541-1-razor@blackwall.org/>`_,
+which is disabled by default but can be enabled. And `Multicast Router Discovery
+<https://lore.kernel.org/netdev/20190121062628.2710-1-linus.luessing@c0d3.blue/>`_,
+which help identify the location of multicast routers.
+
 FAQ
 ===
 
-- 
2.41.0


  parent reply	other threads:[~2023-11-28  8:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-28  8:49 [PATCHv3 net-next 00/10] Doc: update bridge doc Hangbin Liu
2023-11-28  8:49 ` [PATCHv3 net-next 01/10] docs: bridge: update doc format to rst Hangbin Liu
2023-11-28 22:46   ` Stephen Hemminger
2023-11-29  7:34     ` Hangbin Liu
2023-11-29  4:16   ` Florian Fainelli
2023-11-28  8:49 ` [PATCHv3 net-next 02/10] net: bridge: add document for IFLA_BR enum Hangbin Liu
2023-11-29 18:37   ` Vladimir Oltean
2023-11-28  8:49 ` [PATCHv3 net-next 03/10] net: bridge: add document for IFLA_BRPORT enum Hangbin Liu
2023-11-28  8:49 ` [PATCHv3 net-next 04/10] docs: bridge: Add kAPI/uAPI fields Hangbin Liu
2023-11-28 22:47   ` Stephen Hemminger
2023-11-29  4:11   ` Florian Fainelli
2023-11-28  8:49 ` [PATCHv3 net-next 05/10] docs: bridge: add STP doc Hangbin Liu
2023-11-28 22:48   ` Stephen Hemminger
2023-11-29  7:43     ` Hangbin Liu
2023-11-29 15:10       ` Stephen Hemminger
2023-11-29 18:46       ` Vladimir Oltean
2023-11-29  4:21   ` Florian Fainelli
2023-11-29 18:48   ` Vladimir Oltean
2023-11-28  8:49 ` [PATCHv3 net-next 06/10] docs: bridge: add VLAN doc Hangbin Liu
2023-11-29  4:12   ` Florian Fainelli
2023-11-29 18:40   ` Vladimir Oltean
2023-11-28  8:49 ` Hangbin Liu [this message]
2023-11-29  4:15   ` [PATCHv3 net-next 07/10] docs: bridge: add multicast doc Florian Fainelli
2023-11-28  8:49 ` [PATCHv3 net-next 08/10] docs: bridge: add switchdev doc Hangbin Liu
2023-11-29  4:16   ` Florian Fainelli
2023-11-28  8:49 ` [PATCHv3 net-next 09/10] docs: bridge: add netfilter doc Hangbin Liu
2023-11-29  4:18   ` Florian Fainelli
2023-11-28  8:49 ` [PATCHv3 net-next 10/10] docs: bridge: add other features Hangbin Liu
2023-11-29  4:09   ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231128084943.637091-8-liuhangbin@gmail.com \
    --to=liuhangbin@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=fw@strlen.de \
    --cc=idosch@idosch.org \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=mmuehlfe@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=razor@blackwall.org \
    --cc=roopa@nvidia.com \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.