mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-18 03:06:43 +00:00
docs: bridge: add multicast doc
Add multicast part for bridge document. Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
041a6ac4bf
commit
75ceac88ef
@ -177,6 +177,62 @@ 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 supports 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
|
||||
subscribed 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
|
||||
===
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user