sphinx.addnodesdocument)}( rawsource children](translations
LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba
attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget%/translations/zh_CN/networking/bridgemodnameN classnameNrefexplicitutagnamehhhubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/zh_TW/networking/bridgemodnameN classnameNrefexplicituh1hhhubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/it_IT/networking/bridgemodnameN classnameNrefexplicituh1hhhubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ja_JP/networking/bridgemodnameN classnameNrefexplicituh1hhhubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ko_KR/networking/bridgemodnameN classnameNrefexplicituh1hhhubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/pt_BR/networking/bridgemodnameN classnameNrefexplicituh1hhhubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/sp_SP/networking/bridgemodnameN classnameNrefexplicituh1hhhubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h
hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh?/var/lib/git/docbuild/linux/Documentation/networking/bridge.rsthKubhsection)}(hhh](htitle)}(hEthernet Bridgingh]hEthernet Bridging}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hIntroductionh]hIntroduction}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hX The IEEE 802.1Q-2022 (Bridges and Bridged Networks) standard defines the
operation of bridges in computer networks. A bridge, in the context of this
standard, is a device that connects two or more network segments and operates
at the data link layer (Layer 2) of the OSI (Open Systems Interconnection)
model. The purpose of a bridge is to filter and forward frames between
different segments based on the destination MAC (Media Access Control) address.h]hX The IEEE 802.1Q-2022 (Bridges and Bridged Networks) standard defines the
operation of bridges in computer networks. A bridge, in the context of this
standard, is a device that connects two or more network segments and operates
at the data link layer (Layer 2) of the OSI (Open Systems Interconnection)
model. The purpose of a bridge is to filter and forward frames between
different segments based on the destination MAC (Media Access Control) address.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK
hhhhubeh}(h]introductionah ]h"]introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hBridge kAPIh]hBridge kAPI}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hoHere are some core structures of bridge code. Note that the kAPI is *unstable*,
and can be changed at any time.h](hDHere are some core structures of bridge code. Note that the kAPI is }(hj hhhNhNubhemphasis)}(h
*unstable*h]hunstable}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh!,
and can be changed at any time.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh index)}(hhh]h}(h]h ]h"]h$]h&]entries](singlenet_bridge_vlan (C struct)c.net_bridge_vlanhNtauh1j9 hj hhhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhNubh desc)}(hhh](h desc_signature)}(hnet_bridge_vlanh]h desc_signature_line)}(hstruct net_bridge_vlanh](h desc_sig_keyword)}(hstructh]hstruct}(hj^ hhhNhNubah}(h]h ]kah"]h$]h&]uh1j\ hjX hhhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKubh desc_sig_space)}(h h]h }(hjp hhhNhNubah}(h]h ]wah"]h$]h&]uh1jn hjX hhhjm hKubh desc_name)}(hnet_bridge_vlanh]h
desc_sig_name)}(hjT h]hnet_bridge_vlan}(hj hhhNhNubah}(h]h ]nah"]h$]h&]uh1j hj ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j hjX hhhjm hKubeh}(h]h ]h"]h$]h&]hhƌ
add_permalinkuh1jV sphinx_line_type
declaratorhjR hhhjm hKubah}(h]jH ah ](sig
sig-objecteh"]h$]h&]is_multiline
_toc_parts) _toc_namehuh1jP hjm hKhjM hhubh desc_content)}(hhh]h)}(hper-vlan entryh]hper-vlan entry}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj hhubah}(h]h ]h"]h$]h&]uh1j hjM hhhjm hKubeh}(h]h ](cstructeh"]h$]h&]domainj objtypej desctypej noindexnoindexentrynocontentsentryuh1jK hhhj hjJ hNubh container)}(hX **Definition**::
struct net_bridge_vlan {
struct rhash_head vnode;
struct rhash_head tnode;
u16 vid;
u16 flags;
u16 priv_flags;
u8 state;
struct pcpu_sw_netstats __percpu *stats;
union {
struct net_bridge *br;
struct net_bridge_port *port;
};
union {
refcount_t refcnt;
struct net_bridge_vlan *brvlan;
};
struct br_tunnel_info tinfo;
union {
struct net_bridge_mcast br_mcast_ctx;
struct net_bridge_mcast_port port_mcast_ctx;
};
u16 msti;
struct list_head vlist;
struct rcu_head rcu;
};
**Members**
``vnode``
rhashtable member
``tnode``
rhashtable member
``vid``
VLAN id
``flags``
bridge vlan flags
``priv_flags``
private (in-kernel) bridge vlan flags
``state``
STP state (e.g. blocking, learning, forwarding)
``stats``
per-cpu VLAN statistics
``{unnamed_union}``
anonymous
``br``
if MASTER flag set, this points to a bridge struct
``port``
if MASTER flag unset, this points to a port struct
``{unnamed_union}``
anonymous
``refcnt``
if MASTER flag set, this is bumped for each port referencing it
``brvlan``
if MASTER flag unset, this points to the global per-VLAN context
for this VLAN entry
``tinfo``
bridge tunnel info
``{unnamed_union}``
anonymous
``br_mcast_ctx``
if MASTER flag set, this is the global vlan multicast context
``port_mcast_ctx``
if MASTER flag unset, this is the per-port/vlan multicast
context
``msti``
if MASTER flag set, this holds the VLANs MST instance
``vlist``
sorted list of VLAN entries
``rcu``
used for entry destructionh](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h
Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubh
literal_block)}(hX struct net_bridge_vlan {
struct rhash_head vnode;
struct rhash_head tnode;
u16 vid;
u16 flags;
u16 priv_flags;
u8 state;
struct pcpu_sw_netstats __percpu *stats;
union {
struct net_bridge *br;
struct net_bridge_port *port;
};
union {
refcount_t refcnt;
struct net_bridge_vlan *brvlan;
};
struct br_tunnel_info tinfo;
union {
struct net_bridge_mcast br_mcast_ctx;
struct net_bridge_mcast_port port_mcast_ctx;
};
u16 msti;
struct list_head vlist;
struct rcu_head rcu;
};h]hX struct net_bridge_vlan {
struct rhash_head vnode;
struct rhash_head tnode;
u16 vid;
u16 flags;
u16 priv_flags;
u8 state;
struct pcpu_sw_netstats __percpu *stats;
union {
struct net_bridge *br;
struct net_bridge_port *port;
};
union {
refcount_t refcnt;
struct net_bridge_vlan *brvlan;
};
struct br_tunnel_info tinfo;
union {
struct net_bridge_mcast br_mcast_ctx;
struct net_bridge_mcast_port port_mcast_ctx;
};
u16 msti;
struct list_head vlist;
struct rcu_head rcu;
};}hj sbah}(h]h ]h"]h$]h&]hhuh1j hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubh)}(h**Members**h]j )}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``vnode``
rhashtable member
h](hterm)}(h ``vnode``h]hliteral)}(hj6 h]hvnode}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj4 ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj. ubh
definition)}(hhh]h)}(hrhashtable memberh]hrhashtable member}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hKhjP ubah}(h]h ]h"]h$]h&]uh1jN hj. ubeh}(h]h ]h"]h$]h&]uh1j, hjM hKhj) ubj- )}(h``tnode``
rhashtable member
h](j3 )}(h ``tnode``h]j9 )}(hjs h]htnode}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hjq ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhjm ubjO )}(hhh]h)}(hrhashtable memberh]hrhashtable member}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hjm ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h``vid``
VLAN id
h](j3 )}(h``vid``h]j9 )}(hj h]hvid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(hVLAN idh]hVLAN id}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h``flags``
bridge vlan flags
h](j3 )}(h ``flags``h]j9 )}(hj h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(hbridge vlan flagsh]hbridge vlan flags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h5``priv_flags``
private (in-kernel) bridge vlan flags
h](j3 )}(h``priv_flags``h]j9 )}(hj h]h
priv_flags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(h%private (in-kernel) bridge vlan flagsh]h%private (in-kernel) bridge vlan flags}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3 hKhj4 ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj3 hKhj) ubj- )}(h:``state``
STP state (e.g. blocking, learning, forwarding)
h](j3 )}(h ``state``h]j9 )}(hjW h]hstate}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hjU ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhjQ ubjO )}(hhh]h)}(h/STP state (e.g. blocking, learning, forwarding)h]h/STP state (e.g. blocking, learning, forwarding)}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl hKhjm ubah}(h]h ]h"]h$]h&]uh1jN hjQ ubeh}(h]h ]h"]h$]h&]uh1j, hjl hKhj) ubj- )}(h"``stats``
per-cpu VLAN statistics
h](j3 )}(h ``stats``h]j9 )}(hj h]hstats}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(hper-cpu VLAN statisticsh]hper-cpu VLAN statistics}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h``{unnamed_union}``
anonymous
h](j3 )}(h``{unnamed_union}``h]j9 )}(hj h]h{unnamed_union}}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(h anonymoush]h anonymous}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h:``br``
if MASTER flag set, this points to a bridge struct
h](j3 )}(h``br``h]j9 )}(hj h]hbr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(h2if MASTER flag set, this points to a bridge structh]h2if MASTER flag set, this points to a bridge struct}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h<``port``
if MASTER flag unset, this points to a port struct
h](j3 )}(h``port``h]j9 )}(hj; h]hport}(hj= hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj9 ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj5 ubjO )}(hhh]h)}(h2if MASTER flag unset, this points to a port structh]h2if MASTER flag unset, this points to a port struct}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP hKhjQ ubah}(h]h ]h"]h$]h&]uh1jN hj5 ubeh}(h]h ]h"]h$]h&]uh1j, hjP hKhj) ubj- )}(h``{unnamed_union}``
anonymous
h](j3 )}(h``{unnamed_union}``h]j9 )}(hjt h]h{unnamed_union}}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hjr ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhjn ubjO )}(hhh]h)}(h anonymoush]h anonymous}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hjn ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(hK``refcnt``
if MASTER flag set, this is bumped for each port referencing it
h](j3 )}(h
``refcnt``h]j9 )}(hj h]hrefcnt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(h?if MASTER flag set, this is bumped for each port referencing ith]h?if MASTER flag set, this is bumped for each port referencing it}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h```brvlan``
if MASTER flag unset, this points to the global per-VLAN context
for this VLAN entry
h](j3 )}(h
``brvlan``h]j9 )}(hj h]hbrvlan}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(hTif MASTER flag unset, this points to the global per-VLAN context
for this VLAN entryh]hTif MASTER flag unset, this points to the global per-VLAN context
for this VLAN entry}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h``tinfo``
bridge tunnel info
h](j3 )}(h ``tinfo``h]j9 )}(hj h]htinfo}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(hbridge tunnel infoh]hbridge tunnel info}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5 hKhj6 ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj5 hKhj) ubj- )}(h``{unnamed_union}``
anonymous
h](j3 )}(h``{unnamed_union}``h]j9 )}(hjY h]h{unnamed_union}}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hjW ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhjS ubjO )}(hhh]h)}(h anonymoush]h anonymous}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjn hKhjo ubah}(h]h ]h"]h$]h&]uh1jN hjS ubeh}(h]h ]h"]h$]h&]uh1j, hjn hKhj) ubj- )}(hO``br_mcast_ctx``
if MASTER flag set, this is the global vlan multicast context
h](j3 )}(h``br_mcast_ctx``h]j9 )}(hj h]hbr_mcast_ctx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(h=if MASTER flag set, this is the global vlan multicast contexth]h=if MASTER flag set, this is the global vlan multicast context}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(hU``port_mcast_ctx``
if MASTER flag unset, this is the per-port/vlan multicast
context
h](j3 )}(h``port_mcast_ctx``h]j9 )}(hj h]hport_mcast_ctx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(hAif MASTER flag unset, this is the per-port/vlan multicast
contexth]hAif MASTER flag unset, this is the per-port/vlan multicast
context}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h?``msti``
if MASTER flag set, this holds the VLANs MST instance
h](j3 )}(h``msti``h]j9 )}(hj h]hmsti}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubjO )}(hhh]h)}(h5if MASTER flag set, this holds the VLANs MST instanceh]h5if MASTER flag set, this holds the VLANs MST instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubj- )}(h&``vlist``
sorted list of VLAN entries
h](j3 )}(h ``vlist``h]j9 )}(hj> h]hvlist}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj< ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj8 ubjO )}(hhh]h)}(hsorted list of VLAN entriesh]hsorted list of VLAN entries}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS hKhjT ubah}(h]h ]h"]h$]h&]uh1jN hj8 ubeh}(h]h ]h"]h$]h&]uh1j, hjS hKhj) ubj- )}(h"``rcu``
used for entry destructionh](j3 )}(h``rcu``h]j9 )}(hjw h]hrcu}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hju ubah}(h]h ]h"]h$]h&]uh1j2 hY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhjq ubjO )}(hhh]h)}(hused for entry destructionh]hused for entry destruction}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj ubah}(h]h ]h"]h$]h&]uh1jN hjq ubeh}(h]h ]h"]h$]h&]uh1j, hj hKhj) ubeh}(h]h ]h"]h$]h&]uh1j' hj ubeh}(h]h ]kernelindentah"]h$]h&]uh1j hj hhhjJ hNubh)}(h**Description**h]j )}(hj h]hDescription}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj hhubh)}(hThis structure is shared between the global per-VLAN entries contained in
the bridge rhashtable and the local per-port per-VLAN entries contained in
the port's rhashtable. The union entries should be interpreted depending on
the entry flags that are set.h]hX This structure is shared between the global per-VLAN entries contained in
the bridge rhashtable and the local per-port per-VLAN entries contained in
the port’s rhashtable. The union entries should be interpreted depending on
the entry flags that are set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhY/var/lib/git/docbuild/linux/Documentation/networking/bridge:23: ./net/bridge/br_private.hhKhj hhubeh}(h]bridge-kapiah ]h"]bridge kapiah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hBridge uAPIh]hBridge uAPI}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hModern Linux bridge uAPI is accessed via Netlink interface. You can find
below files where the bridge and bridge port netlink attributes are defined.h]hModern Linux bridge uAPI is accessed via Netlink interface. You can find
below files where the bridge and bridge port netlink attributes are defined.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hhh](h)}(hBridge netlink attributesh]hBridge netlink attributes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK!ubh)}(hPlease *note* that the timer values in the following section are expected
in clock_t format, which is seconds multiplied by USER_HZ (generally
defined as 100).h](hPlease }(hj hhhNhNubj )}(h*note*h]hnote}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh that the timer values in the following section are expected
in clock_t format, which is seconds multiplied by USER_HZ (generally
defined as 100).}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj hhubj( )}(hhh](j- )}(hX2 **IFLA_BR_FORWARD_DELAY**
The bridge forwarding delay is the time spent in LISTENING state
(before moving to LEARNING) and in LEARNING state (before moving
to FORWARDING). Only relevant if STP is enabled.
The valid values are between (2 * USER_HZ) and (30 * USER_HZ).
The default value is (15 * USER_HZ).
h](j3 )}(h**IFLA_BR_FORWARD_DELAY**h]j )}(hjA h]hIFLA_BR_FORWARD_DELAY}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj? ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj; ubjO )}(hhh](h)}(hThe bridge forwarding delay is the time spent in LISTENING state
(before moving to LEARNING) and in LEARNING state (before moving
to FORWARDING). Only relevant if STP is enabled.h]hThe bridge forwarding delay is the time spent in LISTENING state
(before moving to LEARNING) and in LEARNING state (before moving
to FORWARDING). Only relevant if STP is enabled.}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjW ubh)}(hcThe valid values are between (2 * USER_HZ) and (30 * USER_HZ).
The default value is (15 * USER_HZ).h]hcThe valid values are between (2 * USER_HZ) and (30 * USER_HZ).
The default value is (15 * USER_HZ).}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjW ubeh}(h]h ]h"]h$]h&]uh1jN hj; ubeh}(h]h ]h"]h$]h&]uh1j, hjV hMhj8 ubj- )}(hX **IFLA_BR_HELLO_TIME**
The time between hello packets sent by the bridge, when it is a root
bridge or a designated bridge. Only relevant if STP is enabled.
The valid values are between (1 * USER_HZ) and (10 * USER_HZ).
The default value is (2 * USER_HZ).
h](j3 )}(h**IFLA_BR_HELLO_TIME**h]j )}(hj h]hIFLA_BR_HELLO_TIME}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hThe time between hello packets sent by the bridge, when it is a root
bridge or a designated bridge. Only relevant if STP is enabled.h]hThe time between hello packets sent by the bridge, when it is a root
bridge or a designated bridge. Only relevant if STP is enabled.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(hbThe valid values are between (1 * USER_HZ) and (10 * USER_HZ).
The default value is (2 * USER_HZ).h]hbThe valid values are between (1 * USER_HZ) and (10 * USER_HZ).
The default value is (2 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hX+ **IFLA_BR_MAX_AGE**
The hello packet timeout is the time until another bridge in the
spanning tree is assumed to be dead, after reception of its last hello
message. Only relevant if STP is enabled.
The valid values are between (6 * USER_HZ) and (40 * USER_HZ).
The default value is (20 * USER_HZ).
h](j3 )}(h**IFLA_BR_MAX_AGE**h]j )}(hj h]hIFLA_BR_MAX_AGE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hThe hello packet timeout is the time until another bridge in the
spanning tree is assumed to be dead, after reception of its last hello
message. Only relevant if STP is enabled.h]hThe hello packet timeout is the time until another bridge in the
spanning tree is assumed to be dead, after reception of its last hello
message. Only relevant if STP is enabled.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(hcThe valid values are between (6 * USER_HZ) and (40 * USER_HZ).
The default value is (20 * USER_HZ).h]hcThe valid values are between (6 * USER_HZ) and (40 * USER_HZ).
The default value is (20 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hX **IFLA_BR_AGEING_TIME**
Configure the bridge's FDB entries aging time. It is the time a MAC
address will be kept in the FDB after a packet has been received from
that address. After this time has passed, entries are cleaned up.
Allow values outside the 802.1 standard specification for special cases:
* 0 - entry never ages (all permanent)
* 1 - entry disappears (no persistence)
The default value is (300 * USER_HZ).
h](j3 )}(h**IFLA_BR_AGEING_TIME**h]j )}(hj h]hIFLA_BR_AGEING_TIME}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hX Configure the bridge's FDB entries aging time. It is the time a MAC
address will be kept in the FDB after a packet has been received from
that address. After this time has passed, entries are cleaned up.
Allow values outside the 802.1 standard specification for special cases:h]hX Configure the bridge’s FDB entries aging time. It is the time a MAC
address will be kept in the FDB after a packet has been received from
that address. After this time has passed, entries are cleaned up.
Allow values outside the 802.1 standard specification for special cases:}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj2 ubhblock_quote)}(hO* 0 - entry never ages (all permanent)
* 1 - entry disappears (no persistence)
h]hbullet_list)}(hhh](h list_item)}(h$0 - entry never ages (all permanent)h]h)}(hjS h]h$0 - entry never ages (all permanent)}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjQ ubah}(h]h ]h"]h$]h&]uh1jO hjL ubjP )}(h&1 - entry disappears (no persistence)
h]h)}(h%1 - entry disappears (no persistence)h]h%1 - entry disappears (no persistence)}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhji ubah}(h]h ]h"]h$]h&]uh1jO hjL ubeh}(h]h ]h"]h$]h&]bullet*uh1jJ hjb hMhjF ubah}(h]h ]h"]h$]h&]uh1jD hjb hMhj2 ubh)}(h%The default value is (300 * USER_HZ).h]h%The default value is (300 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1 hMhj2 ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj1 hMhj8 ubj- )}(h**IFLA_BR_STP_STATE**
Turn spanning tree protocol on (*IFLA_BR_STP_STATE* > 0) or off
(*IFLA_BR_STP_STATE* == 0) for this bridge.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_STP_STATE**h]j )}(hj h]hIFLA_BR_STP_STATE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hkTurn spanning tree protocol on (*IFLA_BR_STP_STATE* > 0) or off
(*IFLA_BR_STP_STATE* == 0) for this bridge.h](h Turn spanning tree protocol on (}(hj hhhNhNubj )}(h*IFLA_BR_STP_STATE*h]hIFLA_BR_STP_STATE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh > 0) or off
(}(hj hhhNhNubj )}(h*IFLA_BR_STP_STATE*h]hIFLA_BR_STP_STATE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh == 0) for this bridge.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(h**IFLA_BR_PRIORITY**
Set this bridge's spanning tree priority, used during STP root bridge
election.
The valid values are between 0 and 65535.
h](j3 )}(h**IFLA_BR_PRIORITY**h]j )}(hj h]hIFLA_BR_PRIORITY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hOSet this bridge's spanning tree priority, used during STP root bridge
election.h]hQSet this bridge’s spanning tree priority, used during STP root bridge
election.}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj2 ubh)}(h)The valid values are between 0 and 65535.h]h)The valid values are between 0 and 65535.}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1 hMhj2 ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj1 hMhj8 ubj- )}(h**IFLA_BR_VLAN_FILTERING**
Turn VLAN filtering on (*IFLA_BR_VLAN_FILTERING* > 0) or off
(*IFLA_BR_VLAN_FILTERING* == 0). When disabled, the bridge will not
consider the VLAN tag when handling packets.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_VLAN_FILTERING**h]j )}(hjd h]hIFLA_BR_VLAN_FILTERING}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjb ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj^ ubjO )}(hhh](h)}(hTurn VLAN filtering on (*IFLA_BR_VLAN_FILTERING* > 0) or off
(*IFLA_BR_VLAN_FILTERING* == 0). When disabled, the bridge will not
consider the VLAN tag when handling packets.h](hTurn VLAN filtering on (}(hj} hhhNhNubj )}(h*IFLA_BR_VLAN_FILTERING*h]hIFLA_BR_VLAN_FILTERING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj} ubh > 0) or off
(}(hj} hhhNhNubj )}(h*IFLA_BR_VLAN_FILTERING*h]hIFLA_BR_VLAN_FILTERING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj} ubhW == 0). When disabled, the bridge will not
consider the VLAN tag when handling packets.}(hj} hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjz ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjy hMhjz ubeh}(h]h ]h"]h$]h&]uh1jN hj^ ubeh}(h]h ]h"]h$]h&]uh1j, hjy hMhj8 ubj- )}(h**IFLA_BR_VLAN_PROTOCOL**
Set the protocol used for VLAN filtering.
The valid values are 0x8100(802.1Q) or 0x88A8(802.1AD). The default value
is 0x8100(802.1Q).
h](j3 )}(h**IFLA_BR_VLAN_PROTOCOL**h]j )}(hj h]hIFLA_BR_VLAN_PROTOCOL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(h)Set the protocol used for VLAN filtering.h]h)Set the protocol used for VLAN filtering.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h\The valid values are 0x8100(802.1Q) or 0x88A8(802.1AD). The default value
is 0x8100(802.1Q).h]h\The valid values are 0x8100(802.1Q) or 0x88A8(802.1AD). The default value
is 0x8100(802.1Q).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hX5 **IFLA_BR_GROUP_FWD_MASK**
The group forwarding mask. This is the bitmask that is applied to
decide whether to forward incoming frames destined to link-local
addresses (of the form 01:80:C2:00:00:0X).
The default value is 0, which means the bridge does not forward any
link-local frames coming on this port.
h](j3 )}(h**IFLA_BR_GROUP_FWD_MASK**h]j )}(hj
h]hIFLA_BR_GROUP_FWD_MASK}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj
ubjO )}(hhh](h)}(hThe group forwarding mask. This is the bitmask that is applied to
decide whether to forward incoming frames destined to link-local
addresses (of the form 01:80:C2:00:00:0X).h]hThe group forwarding mask. This is the bitmask that is applied to
decide whether to forward incoming frames destined to link-local
addresses (of the form 01:80:C2:00:00:0X).}(hj2
hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj/
ubh)}(hjThe default value is 0, which means the bridge does not forward any
link-local frames coming on this port.h]hjThe default value is 0, which means the bridge does not forward any
link-local frames coming on this port.}(hjA
hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj/
ubeh}(h]h ]h"]h$]h&]uh1jN hj
ubeh}(h]h ]h"]h$]h&]uh1j, hj.
hMhj8 ubj- )}(h3**IFLA_BR_ROOT_ID**
The bridge root id, read only.
h](j3 )}(h**IFLA_BR_ROOT_ID**h]j )}(hjb
h]hIFLA_BR_ROOT_ID}(hjd
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj\
ubjO )}(hhh]h)}(hThe bridge root id, read only.h]hThe bridge root id, read only.}(hj{
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw
hMhjx
ubah}(h]h ]h"]h$]h&]uh1jN hj\
ubeh}(h]h ]h"]h$]h&]uh1j, hjw
hMhj8 ubj- )}(h0**IFLA_BR_BRIDGE_ID**
The bridge id, read only.
h](j3 )}(h**IFLA_BR_BRIDGE_ID**h]j )}(hj
h]hIFLA_BR_BRIDGE_ID}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM hj
ubjO )}(hhh]h)}(hThe bridge id, read only.h]hThe bridge id, read only.}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj
hM hj
ubah}(h]h ]h"]h$]h&]uh1jN hj
ubeh}(h]h ]h"]h$]h&]uh1j, hj
hM hj8 ubj- )}(h7**IFLA_BR_ROOT_PORT**
The bridge root port, read only.
h](j3 )}(h**IFLA_BR_ROOT_PORT**h]j )}(hj
h]hIFLA_BR_ROOT_PORT}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM#hj
ubjO )}(hhh]h)}(h The bridge root port, read only.h]h The bridge root port, read only.}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj
hM#hj
ubah}(h]h ]h"]h$]h&]uh1jN hj
ubeh}(h]h ]h"]h$]h&]uh1j, hj
hM#hj8 ubj- )}(hA**IFLA_BR_ROOT_PATH_COST**
The bridge root path cost, read only.
h](j3 )}(h**IFLA_BR_ROOT_PATH_COST**h]j )}(hj
h]hIFLA_BR_ROOT_PATH_COST}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM&hj ubjO )}(hhh]h)}(h%The bridge root path cost, read only.h]h%The bridge root path cost, read only.}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj" hM&hj# ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj" hM&hj8 ubj- )}(hC**IFLA_BR_TOPOLOGY_CHANGE**
The bridge topology change, read only.
h](j3 )}(h**IFLA_BR_TOPOLOGY_CHANGE**h]j )}(hjF h]hIFLA_BR_TOPOLOGY_CHANGE}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjD ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM)hj@ ubjO )}(hhh]h)}(h&The bridge topology change, read only.h]h&The bridge topology change, read only.}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ hM)hj\ ubah}(h]h ]h"]h$]h&]uh1jN hj@ ubeh}(h]h ]h"]h$]h&]uh1j, hj[ hM)hj8 ubj- )}(hU**IFLA_BR_TOPOLOGY_CHANGE_DETECTED**
The bridge topology change detected, read only.
h](j3 )}(h$**IFLA_BR_TOPOLOGY_CHANGE_DETECTED**h]j )}(hj h]h IFLA_BR_TOPOLOGY_CHANGE_DETECTED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj} ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM,hjy ubjO )}(hhh]h)}(h/The bridge topology change detected, read only.h]h/The bridge topology change detected, read only.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM,hj ubah}(h]h ]h"]h$]h&]uh1jN hjy ubeh}(h]h ]h"]h$]h&]uh1j, hj hM,hj8 ubj- )}(h;**IFLA_BR_HELLO_TIMER**
The bridge hello timer, read only.
h](j3 )}(h**IFLA_BR_HELLO_TIMER**h]j )}(hj h]hIFLA_BR_HELLO_TIMER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM/hj ubjO )}(hhh]h)}(h"The bridge hello timer, read only.h]h"The bridge hello timer, read only.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM/hj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hM/hj8 ubj- )}(h7**IFLA_BR_TCN_TIMER**
The bridge tcn timer, read only.
h](j3 )}(h**IFLA_BR_TCN_TIMER**h]j )}(hj h]hIFLA_BR_TCN_TIMER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM2hj ubjO )}(hhh]h)}(h The bridge tcn timer, read only.h]h The bridge tcn timer, read only.}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM2hj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hM2hj8 ubj- )}(hO**IFLA_BR_TOPOLOGY_CHANGE_TIMER**
The bridge topology change timer, read only.
h](j3 )}(h!**IFLA_BR_TOPOLOGY_CHANGE_TIMER**h]j )}(hj* h]hIFLA_BR_TOPOLOGY_CHANGE_TIMER}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj( ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM5hj$ ubjO )}(hhh]h)}(h,The bridge topology change timer, read only.h]h,The bridge topology change timer, read only.}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj? hM5hj@ ubah}(h]h ]h"]h$]h&]uh1jN hj$ ubeh}(h]h ]h"]h$]h&]uh1j, hj? hM5hj8 ubj- )}(h5**IFLA_BR_GC_TIMER**
The bridge gc timer, read only.
h](j3 )}(h**IFLA_BR_GC_TIMER**h]j )}(hjc h]hIFLA_BR_GC_TIMER}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1j hja ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM8hj] ubjO )}(hhh]h)}(hThe bridge gc timer, read only.h]hThe bridge gc timer, read only.}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx hM8hjy ubah}(h]h ]h"]h$]h&]uh1jN hj] ubeh}(h]h ]h"]h$]h&]uh1j, hjx hM8hj8 ubj- )}(hX **IFLA_BR_GROUP_ADDR**
Set the MAC address of the multicast group this bridge uses for STP.
The address must be a link-local address in standard Ethernet MAC address
format. It is an address of the form 01:80:C2:00:00:0X, with X in [0, 4..f].
The default value is 0.
h](j3 )}(h**IFLA_BR_GROUP_ADDR**h]j )}(hj h]hIFLA_BR_GROUP_ADDR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM?hj ubjO )}(hhh](h)}(hSet the MAC address of the multicast group this bridge uses for STP.
The address must be a link-local address in standard Ethernet MAC address
format. It is an address of the form 01:80:C2:00:00:0X, with X in [0, 4..f].h]hSet the MAC address of the multicast group this bridge uses for STP.
The address must be a link-local address in standard Ethernet MAC address
format. It is an address of the form 01:80:C2:00:00:0X, with X in [0, 4..f].}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM;hj ubh)}(hThe default value is 0.h]hThe default value is 0.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM?hj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hM?hj8 ubj- )}(h:**IFLA_BR_FDB_FLUSH**
Flush bridge's fdb dynamic entries.
h](j3 )}(h**IFLA_BR_FDB_FLUSH**h]j )}(hj h]hIFLA_BR_FDB_FLUSH}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMBhj ubjO )}(hhh]h)}(h#Flush bridge's fdb dynamic entries.h]h%Flush bridge’s fdb dynamic entries.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMBhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMBhj8 ubj- )}(h**IFLA_BR_MCAST_ROUTER**
Set bridge's multicast router if IGMP snooping is enabled.
The valid values are:
* 0 - disabled.
* 1 - automatic (queried).
* 2 - permanently enabled.
The default value is 1.
h](j3 )}(h**IFLA_BR_MCAST_ROUTER**h]j )}(hj
h]hIFLA_BR_MCAST_ROUTER}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMLhj
ubjO )}(hhh](h)}(hPSet bridge's multicast router if IGMP snooping is enabled.
The valid values are:h]hRSet bridge’s multicast router if IGMP snooping is enabled.
The valid values are:}(hj6
hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMEhj3
ubjE )}(hF* 0 - disabled.
* 1 - automatic (queried).
* 2 - permanently enabled.
h]jK )}(hhh](jP )}(h
0 - disabled.h]h)}(hjN
h]h
0 - disabled.}(hjP
hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMHhjL
ubah}(h]h ]h"]h$]h&]uh1jO hjI
ubjP )}(h1 - automatic (queried).h]h)}(hjf
h]h1 - automatic (queried).}(hjh
hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMIhjd
ubah}(h]h ]h"]h$]h&]uh1jO hjI
ubjP )}(h2 - permanently enabled.
h]h)}(h2 - permanently enabled.h]h2 - permanently enabled.}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMJhj|
ubah}(h]h ]h"]h$]h&]uh1jO hjI
ubeh}(h]h ]h"]h$]h&]j j uh1jJ hj]
hMHhjE
ubah}(h]h ]h"]h$]h&]uh1jD hj]
hMHhj3
ubh)}(hThe default value is 1.h]hThe default value is 1.}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2
hMLhj3
ubeh}(h]h ]h"]h$]h&]uh1jN hj
ubeh}(h]h ]h"]h$]h&]uh1j, hj2
hMLhj8 ubj- )}(h**IFLA_BR_MCAST_SNOOPING**
Turn multicast snooping on (*IFLA_BR_MCAST_SNOOPING* > 0) or off
(*IFLA_BR_MCAST_SNOOPING* == 0).
The default value is 1.
h](j3 )}(h**IFLA_BR_MCAST_SNOOPING**h]j )}(hj
h]hIFLA_BR_MCAST_SNOOPING}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMRhj
ubjO )}(hhh](h)}(haTurn multicast snooping on (*IFLA_BR_MCAST_SNOOPING* > 0) or off
(*IFLA_BR_MCAST_SNOOPING* == 0).h](hTurn multicast snooping on (}(hj
hhhNhNubj )}(h*IFLA_BR_MCAST_SNOOPING*h]hIFLA_BR_MCAST_SNOOPING}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubh > 0) or off
(}(hj
hhhNhNubj )}(h*IFLA_BR_MCAST_SNOOPING*h]hIFLA_BR_MCAST_SNOOPING}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubh == 0).}(hj
hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMOhj
ubh)}(hThe default value is 1.h]hThe default value is 1.}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj
hMRhj
ubeh}(h]h ]h"]h$]h&]uh1jN hj
ubeh}(h]h ]h"]h$]h&]uh1j, hj
hMRhj8 ubj- )}(h**IFLA_BR_MCAST_QUERY_USE_IFADDR**
If enabled use the bridge's own IP address as source address for IGMP
queries (*IFLA_BR_MCAST_QUERY_USE_IFADDR* > 0) or the default of 0.0.0.0
(*IFLA_BR_MCAST_QUERY_USE_IFADDR* == 0).
The default value is 0 (disabled).
h](j3 )}(h"**IFLA_BR_MCAST_QUERY_USE_IFADDR**h]j )}(hj- h]hIFLA_BR_MCAST_QUERY_USE_IFADDR}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+ ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMYhj' ubjO )}(hhh](h)}(hIf enabled use the bridge's own IP address as source address for IGMP
queries (*IFLA_BR_MCAST_QUERY_USE_IFADDR* > 0) or the default of 0.0.0.0
(*IFLA_BR_MCAST_QUERY_USE_IFADDR* == 0).h](hQIf enabled use the bridge’s own IP address as source address for IGMP
queries (}(hjF hhhNhNubj )}(h *IFLA_BR_MCAST_QUERY_USE_IFADDR*h]hIFLA_BR_MCAST_QUERY_USE_IFADDR}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjF ubh! > 0) or the default of 0.0.0.0
(}(hjF hhhNhNubj )}(h *IFLA_BR_MCAST_QUERY_USE_IFADDR*h]hIFLA_BR_MCAST_QUERY_USE_IFADDR}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjF ubh == 0).}(hjF hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMUhjC ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hMYhjC ubeh}(h]h ]h"]h$]h&]uh1jN hj' ubeh}(h]h ]h"]h$]h&]uh1j, hjB hMYhj8 ubj- )}(h**IFLA_BR_MCAST_QUERIER**
Enable (*IFLA_BR_MULTICAST_QUERIER* > 0) or disable
(*IFLA_BR_MULTICAST_QUERIER* == 0) IGMP querier, ie sending of multicast
queries by the bridge.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_MCAST_QUERIER**h]j )}(hj h]hIFLA_BR_MCAST_QUERIER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM`hj ubjO )}(hhh](h)}(hEnable (*IFLA_BR_MULTICAST_QUERIER* > 0) or disable
(*IFLA_BR_MULTICAST_QUERIER* == 0) IGMP querier, ie sending of multicast
queries by the bridge.h](hEnable (}(hj hhhNhNubj )}(h*IFLA_BR_MULTICAST_QUERIER*h]hIFLA_BR_MULTICAST_QUERIER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh > 0) or disable
(}(hj hhhNhNubj )}(h*IFLA_BR_MULTICAST_QUERIER*h]hIFLA_BR_MULTICAST_QUERIER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubhC == 0) IGMP querier, ie sending of multicast
queries by the bridge.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM\hj ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM`hj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hM`hj8 ubj- )}(h**IFLA_BR_MCAST_HASH_ELASTICITY**
Set multicast database hash elasticity, It is the maximum chain length in
the multicast hash table. This attribute is *deprecated* and the value
is always 16.
h](j3 )}(h!**IFLA_BR_MCAST_HASH_ELASTICITY**h]j )}(hj h]hIFLA_BR_MCAST_HASH_ELASTICITY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMehj ubjO )}(hhh]h)}(hSet multicast database hash elasticity, It is the maximum chain length in
the multicast hash table. This attribute is *deprecated* and the value
is always 16.h](hvSet multicast database hash elasticity, It is the maximum chain length in
the multicast hash table. This attribute is }(hj hhhNhNubj )}(h*deprecated*h]h
deprecated}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh and the value
is always 16.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMchj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMehj8 ubj- )}(h**IFLA_BR_MCAST_HASH_MAX**
Set maximum size of the multicast hash table
The default value is 4096, the value must be a power of 2.
h](j3 )}(h**IFLA_BR_MCAST_HASH_MAX**h]j )}(hjQ h]hIFLA_BR_MCAST_HASH_MAX}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjO ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMjhjK ubjO )}(hhh](h)}(h,Set maximum size of the multicast hash tableh]h,Set maximum size of the multicast hash table}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhhjg ubh)}(h:The default value is 4096, the value must be a power of 2.h]h:The default value is 4096, the value must be a power of 2.}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf hMjhjg ubeh}(h]h ]h"]h$]h&]uh1jN hjK ubeh}(h]h ]h"]h$]h&]uh1j, hjf hMjhj8 ubj- )}(hX] **IFLA_BR_MCAST_LAST_MEMBER_CNT**
The Last Member Query Count is the number of Group-Specific Queries
sent before the router assumes there are no local members. The Last
Member Query Count is also the number of Group-and-Source-Specific
Queries sent before the router assumes there are no listeners for a
particular source.
The default value is 2.
h](j3 )}(h!**IFLA_BR_MCAST_LAST_MEMBER_CNT**h]j )}(hj h]hIFLA_BR_MCAST_LAST_MEMBER_CNT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMshj ubjO )}(hhh](h)}(hX! The Last Member Query Count is the number of Group-Specific Queries
sent before the router assumes there are no local members. The Last
Member Query Count is also the number of Group-and-Source-Specific
Queries sent before the router assumes there are no listeners for a
particular source.h]hX! The Last Member Query Count is the number of Group-Specific Queries
sent before the router assumes there are no local members. The Last
Member Query Count is also the number of Group-and-Source-Specific
Queries sent before the router assumes there are no listeners for a
particular source.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMmhj ubh)}(hThe default value is 2.h]hThe default value is 2.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMshj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMshj8 ubj- )}(h**IFLA_BR_MCAST_STARTUP_QUERY_CNT**
The Startup Query Count is the number of Queries sent out on startup,
separated by the Startup Query Interval.
The default value is 2.
h](j3 )}(h#**IFLA_BR_MCAST_STARTUP_QUERY_CNT**h]j )}(hj h]hIFLA_BR_MCAST_STARTUP_QUERY_CNT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMyhj ubjO )}(hhh](h)}(hnThe Startup Query Count is the number of Queries sent out on startup,
separated by the Startup Query Interval.h]hnThe Startup Query Count is the number of Queries sent out on startup,
separated by the Startup Query Interval.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMvhj ubh)}(hThe default value is 2.h]hThe default value is 2.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMyhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMyhj8 ubj- )}(hX **IFLA_BR_MCAST_LAST_MEMBER_INTVL**
The Last Member Query Interval is the Max Response Time inserted into
Group-Specific Queries sent in response to Leave Group messages, and
is also the amount of time between Group-Specific Query messages.
The default value is (1 * USER_HZ).
h](j3 )}(h#**IFLA_BR_MCAST_LAST_MEMBER_INTVL**h]j )}(hj) h]hIFLA_BR_MCAST_LAST_MEMBER_INTVL}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj' ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj# ubjO )}(hhh](h)}(hThe Last Member Query Interval is the Max Response Time inserted into
Group-Specific Queries sent in response to Leave Group messages, and
is also the amount of time between Group-Specific Query messages.h]hThe Last Member Query Interval is the Max Response Time inserted into
Group-Specific Queries sent in response to Leave Group messages, and
is also the amount of time between Group-Specific Query messages.}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhM|hj? ubh)}(h#The default value is (1 * USER_HZ).h]h#The default value is (1 * USER_HZ).}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj> hMhj? ubeh}(h]h ]h"]h$]h&]uh1jN hj# ubeh}(h]h ]h"]h$]h&]uh1j, hj> hMhj8 ubj- )}(h**IFLA_BR_MCAST_MEMBERSHIP_INTVL**
The interval after which the bridge will leave a group, if no membership
reports for this group are received.
The default value is (260 * USER_HZ).
h](j3 )}(h"**IFLA_BR_MCAST_MEMBERSHIP_INTVL**h]j )}(hjq h]hIFLA_BR_MCAST_MEMBERSHIP_INTVL}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjo ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjk ubjO )}(hhh](h)}(hmThe interval after which the bridge will leave a group, if no membership
reports for this group are received.h]hmThe interval after which the bridge will leave a group, if no membership
reports for this group are received.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h%The default value is (260 * USER_HZ).h]h%The default value is (260 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hjk ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hX **IFLA_BR_MCAST_QUERIER_INTVL**
The interval between queries sent by other routers. if no queries are
seen after this delay has passed, the bridge will start to send its own
queries (as if *IFLA_BR_MCAST_QUERIER_INTVL* was enabled).
The default value is (255 * USER_HZ).
h](j3 )}(h**IFLA_BR_MCAST_QUERIER_INTVL**h]j )}(hj h]hIFLA_BR_MCAST_QUERIER_INTVL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hThe interval between queries sent by other routers. if no queries are
seen after this delay has passed, the bridge will start to send its own
queries (as if *IFLA_BR_MCAST_QUERIER_INTVL* was enabled).h](hThe interval between queries sent by other routers. if no queries are
seen after this delay has passed, the bridge will start to send its own
queries (as if }(hj hhhNhNubj )}(h*IFLA_BR_MCAST_QUERIER_INTVL*h]hIFLA_BR_MCAST_QUERIER_INTVL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh was enabled).}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h%The default value is (255 * USER_HZ). h]h%The default value is (255 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(h**IFLA_BR_MCAST_QUERY_INTVL**
The Query Interval is the interval between General Queries sent by
the Querier.
The default value is (125 * USER_HZ). The minimum value is (1 * USER_HZ).
h](j3 )}(h**IFLA_BR_MCAST_QUERY_INTVL**h]j )}(hj h]hIFLA_BR_MCAST_QUERY_INTVL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj
ubjO )}(hhh](h)}(hOThe Query Interval is the interval between General Queries sent by
the Querier.h]hOThe Query Interval is the interval between General Queries sent by
the Querier.}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj) ubh)}(hIThe default value is (125 * USER_HZ). The minimum value is (1 * USER_HZ).h]hIThe default value is (125 * USER_HZ). The minimum value is (1 * USER_HZ).}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj( hMhj) ubeh}(h]h ]h"]h$]h&]uh1jN hj
ubeh}(h]h ]h"]h$]h&]uh1j, hj( hMhj8 ubj- )}(h**IFLA_BR_MCAST_QUERY_RESPONSE_INTVL**
The Max Response Time used to calculate the Max Resp Code inserted
into the periodic General Queries.
The default value is (10 * USER_HZ).
h](j3 )}(h&**IFLA_BR_MCAST_QUERY_RESPONSE_INTVL**h]j )}(hj[ h]h"IFLA_BR_MCAST_QUERY_RESPONSE_INTVL}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjY ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjU ubjO )}(hhh](h)}(heThe Max Response Time used to calculate the Max Resp Code inserted
into the periodic General Queries.h]heThe Max Response Time used to calculate the Max Resp Code inserted
into the periodic General Queries.}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjq ubh)}(h$The default value is (10 * USER_HZ).h]h$The default value is (10 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp hMhjq ubeh}(h]h ]h"]h$]h&]uh1jN hjU ubeh}(h]h ]h"]h$]h&]uh1j, hjp hMhj8 ubj- )}(h**IFLA_BR_MCAST_STARTUP_QUERY_INTVL**
The interval between queries in the startup phase.
The default value is (125 * USER_HZ) / 4. The minimum value is (1 * USER_HZ).
h](j3 )}(h%**IFLA_BR_MCAST_STARTUP_QUERY_INTVL**h]j )}(hj h]h!IFLA_BR_MCAST_STARTUP_QUERY_INTVL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(h2The interval between queries in the startup phase.h]h2The interval between queries in the startup phase.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(hMThe default value is (125 * USER_HZ) / 4. The minimum value is (1 * USER_HZ).h]hMThe default value is (125 * USER_HZ) / 4. The minimum value is (1 * USER_HZ).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(h**IFLA_BR_NF_CALL_IPTABLES**
Enable (*NF_CALL_IPTABLES* > 0) or disable (*NF_CALL_IPTABLES* == 0)
iptables hooks on the bridge.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_NF_CALL_IPTABLES**h]j )}(hj h]hIFLA_BR_NF_CALL_IPTABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hbEnable (*NF_CALL_IPTABLES* > 0) or disable (*NF_CALL_IPTABLES* == 0)
iptables hooks on the bridge.h](hEnable (}(hj hhhNhNubj )}(h*NF_CALL_IPTABLES*h]hNF_CALL_IPTABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh > 0) or disable (}(hj hhhNhNubj )}(h*NF_CALL_IPTABLES*h]hNF_CALL_IPTABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh$ == 0)
iptables hooks on the bridge.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(h**IFLA_BR_NF_CALL_IP6TABLES**
Enable (*NF_CALL_IP6TABLES* > 0) or disable (*NF_CALL_IP6TABLES* == 0)
ip6tables hooks on the bridge.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_NF_CALL_IP6TABLES**h]j )}(hjW h]hIFLA_BR_NF_CALL_IP6TABLES}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjU ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjQ ubjO )}(hhh](h)}(heEnable (*NF_CALL_IP6TABLES* > 0) or disable (*NF_CALL_IP6TABLES* == 0)
ip6tables hooks on the bridge.h](hEnable (}(hjp hhhNhNubj )}(h*NF_CALL_IP6TABLES*h]hNF_CALL_IP6TABLES}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjp ubh > 0) or disable (}(hjp hhhNhNubj )}(h*NF_CALL_IP6TABLES*h]hNF_CALL_IP6TABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjp ubh% == 0)
ip6tables hooks on the bridge.}(hjp hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjm ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl hMhjm ubeh}(h]h ]h"]h$]h&]uh1jN hjQ ubeh}(h]h ]h"]h$]h&]uh1j, hjl hMhj8 ubj- )}(h**IFLA_BR_NF_CALL_ARPTABLES**
Enable (*NF_CALL_ARPTABLES* > 0) or disable (*NF_CALL_ARPTABLES* == 0)
arptables hooks on the bridge.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_NF_CALL_ARPTABLES**h]j )}(hj h]hIFLA_BR_NF_CALL_ARPTABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(heEnable (*NF_CALL_ARPTABLES* > 0) or disable (*NF_CALL_ARPTABLES* == 0)
arptables hooks on the bridge.h](hEnable (}(hj hhhNhNubj )}(h*NF_CALL_ARPTABLES*h]hNF_CALL_ARPTABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh > 0) or disable (}(hj hhhNhNubj )}(h*NF_CALL_ARPTABLES*h]hNF_CALL_ARPTABLES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh% == 0)
arptables hooks on the bridge.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hX **IFLA_BR_VLAN_DEFAULT_PVID**
VLAN ID applied to untagged and priority-tagged incoming packets.
The default value is 1. Setting to the special value 0 makes all ports of
this bridge not have a PVID by default, which means that they will
not accept VLAN-untagged traffic.
h](j3 )}(h**IFLA_BR_VLAN_DEFAULT_PVID**h]j )}(hj/ h]hIFLA_BR_VLAN_DEFAULT_PVID}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj- ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj) ubjO )}(hhh](h)}(hAVLAN ID applied to untagged and priority-tagged incoming packets.h]hAVLAN ID applied to untagged and priority-tagged incoming packets.}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjE ubh)}(hThe default value is 1. Setting to the special value 0 makes all ports of
this bridge not have a PVID by default, which means that they will
not accept VLAN-untagged traffic.h]hThe default value is 1. Setting to the special value 0 makes all ports of
this bridge not have a PVID by default, which means that they will
not accept VLAN-untagged traffic.}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjE ubeh}(h]h ]h"]h$]h&]uh1jN hj) ubeh}(h]h ]h"]h$]h&]uh1j, hjD hMhj8 ubj- )}(hC**IFLA_BR_PAD**
Bridge attribute padding type for netlink message.
h](j3 )}(h**IFLA_BR_PAD**h]j )}(hjx h]hIFLA_BR_PAD}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjv ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjr ubjO )}(hhh]h)}(h2Bridge attribute padding type for netlink message.h]h2Bridge attribute padding type for netlink message.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jN hjr ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(h**IFLA_BR_VLAN_STATS_ENABLED**
Enable (*IFLA_BR_VLAN_STATS_ENABLED* == 1) or disable
(*IFLA_BR_VLAN_STATS_ENABLED* == 0) per-VLAN stats accounting.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_VLAN_STATS_ENABLED**h]j )}(hj h]hIFLA_BR_VLAN_STATS_ENABLED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(htEnable (*IFLA_BR_VLAN_STATS_ENABLED* == 1) or disable
(*IFLA_BR_VLAN_STATS_ENABLED* == 0) per-VLAN stats accounting.h](hEnable (}(hj hhhNhNubj )}(h*IFLA_BR_VLAN_STATS_ENABLED*h]hIFLA_BR_VLAN_STATS_ENABLED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh == 1) or disable
(}(hj hhhNhNubj )}(h*IFLA_BR_VLAN_STATS_ENABLED*h]hIFLA_BR_VLAN_STATS_ENABLED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh! == 0) per-VLAN stats accounting.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(h**IFLA_BR_MCAST_STATS_ENABLED**
Enable (*IFLA_BR_MCAST_STATS_ENABLED* > 0) or disable
(*IFLA_BR_MCAST_STATS_ENABLED* == 0) multicast (IGMP/MLD) stats
accounting.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_MCAST_STATS_ENABLED**h]j )}(hj h]hIFLA_BR_MCAST_STATS_ENABLED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hEnable (*IFLA_BR_MCAST_STATS_ENABLED* > 0) or disable
(*IFLA_BR_MCAST_STATS_ENABLED* == 0) multicast (IGMP/MLD) stats
accounting.h](hEnable (}(hj6 hhhNhNubj )}(h*IFLA_BR_MCAST_STATS_ENABLED*h]hIFLA_BR_MCAST_STATS_ENABLED}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6 ubh > 0) or disable
(}(hj6 hhhNhNubj )}(h*IFLA_BR_MCAST_STATS_ENABLED*h]hIFLA_BR_MCAST_STATS_ENABLED}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6 ubh- == 0) multicast (IGMP/MLD) stats
accounting.}(hj6 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj3 ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2 hMhj3 ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj2 hMhj8 ubj- )}(hl**IFLA_BR_MCAST_IGMP_VERSION**
Set the IGMP version.
The valid values are 2 and 3. The default value is 2.
h](j3 )}(h**IFLA_BR_MCAST_IGMP_VERSION**h]j )}(hj h]hIFLA_BR_MCAST_IGMP_VERSION}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hSet the IGMP version.h]hSet the IGMP version.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h5The valid values are 2 and 3. The default value is 2.h]h5The valid values are 2 and 3. The default value is 2.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hj**IFLA_BR_MCAST_MLD_VERSION**
Set the MLD version.
The valid values are 1 and 2. The default value is 1.
h](j3 )}(h**IFLA_BR_MCAST_MLD_VERSION**h]j )}(hj h]hIFLA_BR_MCAST_MLD_VERSION}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hSet the MLD version.h]hSet the MLD version.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubh)}(h5The valid values are 1 and 2. The default value is 1.h]h5The valid values are 1 and 2. The default value is 1.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hX **IFLA_BR_VLAN_STATS_PER_PORT**
Enable (*IFLA_BR_VLAN_STATS_PER_PORT* == 1) or disable
(*IFLA_BR_VLAN_STATS_PER_PORT* == 0) per-VLAN per-port stats accounting.
Can be changed only when there are no port VLANs configured.
The default value is 0 (disabled).
h](j3 )}(h**IFLA_BR_VLAN_STATS_PER_PORT**h]j )}(hj h]hIFLA_BR_VLAN_STATS_PER_PORT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hEnable (*IFLA_BR_VLAN_STATS_PER_PORT* == 1) or disable
(*IFLA_BR_VLAN_STATS_PER_PORT* == 0) per-VLAN per-port stats accounting.
Can be changed only when there are no port VLANs configured.h](hEnable (}(hj2 hhhNhNubj )}(h*IFLA_BR_VLAN_STATS_PER_PORT*h]hIFLA_BR_VLAN_STATS_PER_PORT}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2 ubh == 1) or disable
(}(hj2 hhhNhNubj )}(h*IFLA_BR_VLAN_STATS_PER_PORT*h]hIFLA_BR_VLAN_STATS_PER_PORT}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2 ubhg == 0) per-VLAN per-port stats accounting.
Can be changed only when there are no port VLANs configured.}(hj2 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj/ ubh)}(h"The default value is 0 (disabled).h]h"The default value is 0 (disabled).}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hMhj/ ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj. hMhj8 ubj- )}(h**IFLA_BR_MULTI_BOOLOPT**
The multi_boolopt is used to control new boolean options to avoid adding
new netlink attributes. You can look at ``enum br_boolopt_id`` for those
options.
h](j3 )}(h**IFLA_BR_MULTI_BOOLOPT**h]j )}(hj h]hIFLA_BR_MULTI_BOOLOPT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hThe multi_boolopt is used to control new boolean options to avoid adding
new netlink attributes. You can look at ``enum br_boolopt_id`` for those
options.h](hqThe multi_boolopt is used to control new boolean options to avoid adding
new netlink attributes. You can look at }(hj hhhNhNubj9 )}(h``enum br_boolopt_id``h]henum br_boolopt_id}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubh for those
options.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hH**IFLA_BR_MCAST_QUERIER_STATE**
Bridge mcast querier states, read only.
h](j3 )}(h**IFLA_BR_MCAST_QUERIER_STATE**h]j )}(hj h]hIFLA_BR_MCAST_QUERIER_STATE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(h'Bridge mcast querier states, read only.h]h'Bridge mcast querier states, read only.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hk**IFLA_BR_FDB_N_LEARNED**
The number of dynamically learned FDB entries for the current bridge,
read only.
h](j3 )}(h**IFLA_BR_FDB_N_LEARNED**h]j )}(hj
h]hIFLA_BR_FDB_N_LEARNED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hPThe number of dynamically learned FDB entries for the current bridge,
read only.h]hPThe number of dynamically learned FDB entries for the current bridge,
read only.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubj- )}(hj**IFLA_BR_FDB_MAX_LEARNED**
Set the number of max dynamically learned FDB entries for the current
bridge.
h](j3 )}(h**IFLA_BR_FDB_MAX_LEARNED**h]j )}(hjD h]hIFLA_BR_FDB_MAX_LEARNED}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjB ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj> ubjO )}(hhh]h)}(hMSet the number of max dynamically learned FDB entries for the current
bridge.h]hMSet the number of max dynamically learned FDB entries for the current
bridge.}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjZ ubah}(h]h ]h"]h$]h&]uh1jN hj> ubeh}(h]h ]h"]h$]h&]uh1j, hjY hMhj8 ubj- )}(h**IFLA_BR_STP_MODE**
Set the STP mode for the bridge, which controls how the bridge
selects between userspace and kernel STP. The valid values are
documented below in the ``BR_STP_MODE_*`` constants.
h](j3 )}(h**IFLA_BR_STP_MODE**h]j )}(hj~ h]hIFLA_BR_STP_MODE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj| ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhjx ubjO )}(hhh]h)}(hSet the STP mode for the bridge, which controls how the bridge
selects between userspace and kernel STP. The valid values are
documented below in the ``BR_STP_MODE_*`` constants.h](hSet the STP mode for the bridge, which controls how the bridge
selects between userspace and kernel STP. The valid values are
documented below in the }(hj hhhNhNubj9 )}(h``BR_STP_MODE_*``h]h
BR_STP_MODE_*}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj ubh constants.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:35: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hjx ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj8 ubeh}(h]h ]h"]h$]h&]uh1j' hj hhhNhNubeh}(h]bridge-netlink-attributesah ]h"]bridge netlink attributesah$]h&]uh1hhj hhhhhK!ubh)}(hhh](h)}(hBridge port netlink attributesh]hBridge port netlink attributes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK'ubj( )}(hhh](j- )}(hX **IFLA_BRPORT_STATE**
The operation state of the port. Here are the valid values.
* 0 - port is in STP *DISABLED* state. Make this port completely
inactive for STP. This is also called BPDU filter and could be used
to disable STP on an untrusted port, like a leaf virtual device.
The traffic forwarding is also stopped on this port.
* 1 - port is in STP *LISTENING* state. Only valid if STP is enabled
on the bridge. In this state the port listens for STP BPDUs and
drops all other traffic frames.
* 2 - port is in STP *LEARNING* state. Only valid if STP is enabled on
the bridge. In this state the port will accept traffic only for the
purpose of updating MAC address tables.
* 3 - port is in STP *FORWARDING* state. Port is fully active.
* 4 - port is in STP *BLOCKING* state. Only valid if STP is enabled on
the bridge. This state is used during the STP election process.
In this state, port will only process STP BPDUs.
h](j3 )}(h**IFLA_BRPORT_STATE**h]j )}(hj h]hIFLA_BRPORT_STATE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMphj ubjO )}(hhh](h)}(h;The operation state of the port. Here are the valid values.h]h;The operation state of the port. Here are the valid values.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMahj ubjE )}(hX\ * 0 - port is in STP *DISABLED* state. Make this port completely
inactive for STP. This is also called BPDU filter and could be used
to disable STP on an untrusted port, like a leaf virtual device.
The traffic forwarding is also stopped on this port.
* 1 - port is in STP *LISTENING* state. Only valid if STP is enabled
on the bridge. In this state the port listens for STP BPDUs and
drops all other traffic frames.
* 2 - port is in STP *LEARNING* state. Only valid if STP is enabled on
the bridge. In this state the port will accept traffic only for the
purpose of updating MAC address tables.
* 3 - port is in STP *FORWARDING* state. Port is fully active.
* 4 - port is in STP *BLOCKING* state. Only valid if STP is enabled on
the bridge. This state is used during the STP election process.
In this state, port will only process STP BPDUs.
h]jK )}(hhh](jP )}(h0 - port is in STP *DISABLED* state. Make this port completely
inactive for STP. This is also called BPDU filter and could be used
to disable STP on an untrusted port, like a leaf virtual device.
The traffic forwarding is also stopped on this port.h]h)}(h0 - port is in STP *DISABLED* state. Make this port completely
inactive for STP. This is also called BPDU filter and could be used
to disable STP on an untrusted port, like a leaf virtual device.
The traffic forwarding is also stopped on this port.h](h0 - port is in STP }(hj hhhNhNubj )}(h
*DISABLED*h]hDISABLED}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh state. Make this port completely
inactive for STP. This is also called BPDU filter and could be used
to disable STP on an untrusted port, like a leaf virtual device.
The traffic forwarding is also stopped on this port.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMchj ubah}(h]h ]h"]h$]h&]uh1jO hj ubjP )}(h1 - port is in STP *LISTENING* state. Only valid if STP is enabled
on the bridge. In this state the port listens for STP BPDUs and
drops all other traffic frames.h]h)}(h1 - port is in STP *LISTENING* state. Only valid if STP is enabled
on the bridge. In this state the port listens for STP BPDUs and
drops all other traffic frames.h](h1 - port is in STP }(hjJ hhhNhNubj )}(h*LISTENING*h]h LISTENING}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJ ubh state. Only valid if STP is enabled
on the bridge. In this state the port listens for STP BPDUs and
drops all other traffic frames.}(hjJ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMghjF ubah}(h]h ]h"]h$]h&]uh1jO hj ubjP )}(h2 - port is in STP *LEARNING* state. Only valid if STP is enabled on
the bridge. In this state the port will accept traffic only for the
purpose of updating MAC address tables.h]h)}(h2 - port is in STP *LEARNING* state. Only valid if STP is enabled on
the bridge. In this state the port will accept traffic only for the
purpose of updating MAC address tables.h](h2 - port is in STP }(hju hhhNhNubj )}(h
*LEARNING*h]hLEARNING}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1j hju ubh state. Only valid if STP is enabled on
the bridge. In this state the port will accept traffic only for the
purpose of updating MAC address tables.}(hju hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMjhjq ubah}(h]h ]h"]h$]h&]uh1jO hj ubjP )}(h<3 - port is in STP *FORWARDING* state. Port is fully active.h]h)}(hj h](h3 - port is in STP }(hj hhhNhNubj )}(h*FORWARDING*h]h
FORWARDING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh state. Port is fully active.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMmhj ubah}(h]h ]h"]h$]h&]uh1jO hj ubjP )}(h4 - port is in STP *BLOCKING* state. Only valid if STP is enabled on
the bridge. This state is used during the STP election process.
In this state, port will only process STP BPDUs.
h]h)}(h4 - port is in STP *BLOCKING* state. Only valid if STP is enabled on
the bridge. This state is used during the STP election process.
In this state, port will only process STP BPDUs.h](h4 - port is in STP }(hj hhhNhNubj )}(h
*BLOCKING*h]hBLOCKING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh state. Only valid if STP is enabled on
the bridge. This state is used during the STP election process.
In this state, port will only process STP BPDUs.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMnhj ubah}(h]h ]h"]h$]h&]uh1jO hj ubeh}(h]h ]h"]h$]h&]j j uh1jJ hj? hMchj ubah}(h]h ]h"]h$]h&]uh1jD hj? hMchj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMphj ubj- )}(hX**IFLA_BRPORT_PRIORITY**
The STP port priority. The valid values are between 0 and 255.
h](j3 )}(h**IFLA_BRPORT_PRIORITY**h]j )}(hj h]hIFLA_BRPORT_PRIORITY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMshj ubjO )}(hhh]h)}(h>The STP port priority. The valid values are between 0 and 255.h]h>The STP port priority. The valid values are between 0 and 255.}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ hMshj% ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj$ hMshj ubj- )}(h^**IFLA_BRPORT_COST**
The STP path cost of the port. The valid values are between 1 and 65535.
h](j3 )}(h**IFLA_BRPORT_COST**h]j )}(hjH h]hIFLA_BRPORT_COST}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjF ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMvhjB ubjO )}(hhh]h)}(hHThe STP path cost of the port. The valid values are between 1 and 65535.h]hHThe STP path cost of the port. The valid values are between 1 and 65535.}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj] hMvhj^ ubah}(h]h ]h"]h$]h&]uh1jN hjB ubeh}(h]h ]h"]h$]h&]uh1j, hj] hMvhj ubj- )}(h[**IFLA_BRPORT_MODE**
Set the bridge port mode. See *BRIDGE_MODE_HAIRPIN* for more details.
h](j3 )}(h**IFLA_BRPORT_MODE**h]j )}(hj h]hIFLA_BRPORT_MODE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMyhj{ ubjO )}(hhh]h)}(hESet the bridge port mode. See *BRIDGE_MODE_HAIRPIN* for more details.h](hSet the bridge port mode. See }(hj hhhNhNubj )}(h*BRIDGE_MODE_HAIRPIN*h]hBRIDGE_MODE_HAIRPIN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh for more details.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMyhj ubah}(h]h ]h"]h$]h&]uh1jN hj{ ubeh}(h]h ]h"]h$]h&]uh1j, hj hMyhj ubj- )}(hX **IFLA_BRPORT_GUARD**
Controls whether STP BPDUs will be processed by the bridge port. By
default, the flag is turned off to allow BPDU processing. Turning this
flag on will disable the bridge port if a STP BPDU packet is received.
If the bridge has Spanning Tree enabled, hostile devices on the network
may send BPDU on a port and cause network failure. Setting *guard on*
will detect and stop this by disabling the port. The port will be
restarted if the link is brought down, or removed and reattached.
h](j3 )}(h**IFLA_BRPORT_GUARD**h]j )}(hj h]hIFLA_BRPORT_GUARD}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hControls whether STP BPDUs will be processed by the bridge port. By
default, the flag is turned off to allow BPDU processing. Turning this
flag on will disable the bridge port if a STP BPDU packet is received.h]hControls whether STP BPDUs will be processed by the bridge port. By
default, the flag is turned off to allow BPDU processing. Turning this
flag on will disable the bridge port if a STP BPDU packet is received.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM|hj ubh)}(hX If the bridge has Spanning Tree enabled, hostile devices on the network
may send BPDU on a port and cause network failure. Setting *guard on*
will detect and stop this by disabling the port. The port will be
restarted if the link is brought down, or removed and reattached.h](hIf the bridge has Spanning Tree enabled, hostile devices on the network
may send BPDU on a port and cause network failure. Setting }(hj hhhNhNubj )}(h
*guard on*h]hguard on}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh
will detect and stop this by disabling the port. The port will be
restarted if the link is brought down, or removed and reattached.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hX **IFLA_BRPORT_PROTECT**
Controls whether a given port is allowed to become a root port or not.
Only used when STP is enabled on the bridge. By default the flag is off.
This feature is also called root port guard. If BPDU is received from a
leaf (edge) port, it should not be elected as root port. This could
be used if using STP on a bridge and the downstream bridges are not fully
trusted; this prevents a hostile guest from rerouting traffic.
h](j3 )}(h**IFLA_BRPORT_PROTECT**h]j )}(hj' h]hIFLA_BRPORT_PROTECT}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj% ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj! ubjO )}(hhh](h)}(hControls whether a given port is allowed to become a root port or not.
Only used when STP is enabled on the bridge. By default the flag is off.h]hControls whether a given port is allowed to become a root port or not.
Only used when STP is enabled on the bridge. By default the flag is off.}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj= ubh)}(hX This feature is also called root port guard. If BPDU is received from a
leaf (edge) port, it should not be elected as root port. This could
be used if using STP on a bridge and the downstream bridges are not fully
trusted; this prevents a hostile guest from rerouting traffic.h]hX This feature is also called root port guard. If BPDU is received from a
leaf (edge) port, it should not be elected as root port. This could
be used if using STP on a bridge and the downstream bridges are not fully
trusted; this prevents a hostile guest from rerouting traffic.}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj= ubeh}(h]h ]h"]h$]h&]uh1jN hj! ubeh}(h]h ]h"]h$]h&]uh1j, hj< hMhj ubj- )}(h**IFLA_BRPORT_FAST_LEAVE**
This flag allows the bridge to immediately stop multicast traffic
forwarding on a port that receives an IGMP Leave message. It is only used
when IGMP snooping is enabled on the bridge. By default the flag is off.
h](j3 )}(h**IFLA_BRPORT_FAST_LEAVE**h]j )}(hjp h]hIFLA_BRPORT_FAST_LEAVE}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjn ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjj ubjO )}(hhh]h)}(hThis flag allows the bridge to immediately stop multicast traffic
forwarding on a port that receives an IGMP Leave message. It is only used
when IGMP snooping is enabled on the bridge. By default the flag is off.h]hThis flag allows the bridge to immediately stop multicast traffic
forwarding on a port that receives an IGMP Leave message. It is only used
when IGMP snooping is enabled on the bridge. By default the flag is off.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hjj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hX
**IFLA_BRPORT_LEARNING**
Controls whether a given port will learn *source* MAC addresses from
received traffic or not. Also controls whether dynamic FDB entries
(which can also be added by software) will be refreshed by incoming
traffic. By default this flag is on.
h](j3 )}(h**IFLA_BRPORT_LEARNING**h]j )}(hj h]hIFLA_BRPORT_LEARNING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hControls whether a given port will learn *source* MAC addresses from
received traffic or not. Also controls whether dynamic FDB entries
(which can also be added by software) will be refreshed by incoming
traffic. By default this flag is on.h](h)Controls whether a given port will learn }(hj hhhNhNubj )}(h*source*h]hsource}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh MAC addresses from
received traffic or not. Also controls whether dynamic FDB entries
(which can also be added by software) will be refreshed by incoming
traffic. By default this flag is on.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(h**IFLA_BRPORT_UNICAST_FLOOD**
Controls whether unicast traffic for which there is no FDB entry will
be flooded towards this port. By default this flag is on.
h](j3 )}(h**IFLA_BRPORT_UNICAST_FLOOD**h]j )}(hj h]hIFLA_BRPORT_UNICAST_FLOOD}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hControls whether unicast traffic for which there is no FDB entry will
be flooded towards this port. By default this flag is on.h]hControls whether unicast traffic for which there is no FDB entry will
be flooded towards this port. By default this flag is on.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(h8**IFLA_BRPORT_PROXYARP**
Enable proxy ARP on this port.
h](j3 )}(h**IFLA_BRPORT_PROXYARP**h]j )}(hj0 h]hIFLA_BRPORT_PROXYARP}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj. ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj* ubjO )}(hhh]h)}(hEnable proxy ARP on this port.h]hEnable proxy ARP on this port.}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE hMhjF ubah}(h]h ]h"]h$]h&]uh1jN hj* ubeh}(h]h ]h"]h$]h&]uh1j, hjE hMhj ubj- )}(hz**IFLA_BRPORT_LEARNING_SYNC**
Controls whether a given port will sync MAC addresses learned on device
port to bridge FDB.
h](j3 )}(h**IFLA_BRPORT_LEARNING_SYNC**h]j )}(hji h]hIFLA_BRPORT_LEARNING_SYNC}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjg ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjc ubjO )}(hhh]h)}(h[Controls whether a given port will sync MAC addresses learned on device
port to bridge FDB.h]h[Controls whether a given port will sync MAC addresses learned on device
port to bridge FDB.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hjc ubeh}(h]h ]h"]h$]h&]uh1j, hj~ hMhj ubj- )}(h**IFLA_BRPORT_PROXYARP_WIFI**
Enable proxy ARP on this port which meets extended requirements by
IEEE 802.11 and Hotspot 2.0 specifications.
h](j3 )}(h**IFLA_BRPORT_PROXYARP_WIFI**h]j )}(hj h]hIFLA_BRPORT_PROXYARP_WIFI}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hnEnable proxy ARP on this port which meets extended requirements by
IEEE 802.11 and Hotspot 2.0 specifications.h]hnEnable proxy ARP on this port which meets extended requirements by
IEEE 802.11 and Hotspot 2.0 specifications.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubeh}(h]h ]h"]h$]h&]uh1j' hj hhhNhNubh)}(h**IFLA_BRPORT_ROOT_ID**h]j )}(hj h]hIFLA_BRPORT_ROOT_ID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_BRIDGE_ID**h]j )}(hj h]hIFLA_BRPORT_BRIDGE_ID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_DESIGNATED_PORT**h]j )}(hj h]hIFLA_BRPORT_DESIGNATED_PORT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj
ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_DESIGNATED_COST**h]j )}(hj' h]hIFLA_BRPORT_DESIGNATED_COST}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj% ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_ID**h]j )}(hj? h]hIFLA_BRPORT_ID}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj= ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_NO**h]j )}(hjW h]hIFLA_BRPORT_NO}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjU ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h#**IFLA_BRPORT_TOPOLOGY_CHANGE_ACK**h]j )}(hjo h]hIFLA_BRPORT_TOPOLOGY_CHANGE_ACK}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjm ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_CONFIG_PENDING**h]j )}(hj h]hIFLA_BRPORT_CONFIG_PENDING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h!**IFLA_BRPORT_MESSAGE_AGE_TIMER**h]j )}(hj h]hIFLA_BRPORT_MESSAGE_AGE_TIMER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h#**IFLA_BRPORT_FORWARD_DELAY_TIMER**h]j )}(hj h]hIFLA_BRPORT_FORWARD_DELAY_TIMER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubh)}(h**IFLA_BRPORT_HOLD_TIMER**h]j )}(hj h]hIFLA_BRPORT_HOLD_TIMER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubj( )}(hhh](j- )}(h?**IFLA_BRPORT_FLUSH**
Flush bridge ports' fdb dynamic entries.
h](j3 )}(h**IFLA_BRPORT_FLUSH**h]j )}(hj h]hIFLA_BRPORT_FLUSH}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(h(Flush bridge ports' fdb dynamic entries.h]h*Flush bridge ports’ fdb dynamic entries.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hX **IFLA_BRPORT_MULTICAST_ROUTER**
Configure the port's multicast router presence. A port with
a multicast router will receive all multicast traffic.
The valid values are:
* 0 disable multicast routers on this port
* 1 let the system detect the presence of routers (default)
* 2 permanently enable multicast traffic forwarding on this port
* 3 enable multicast routers temporarily on this port, not depending
on incoming queries.
h](j3 )}(h **IFLA_BRPORT_MULTICAST_ROUTER**h]j )}(hj' h]hIFLA_BRPORT_MULTICAST_ROUTER}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj% ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj! ubjO )}(hhh](h)}(hConfigure the port's multicast router presence. A port with
a multicast router will receive all multicast traffic.
The valid values are:h]hConfigure the port’s multicast router presence. A port with
a multicast router will receive all multicast traffic.
The valid values are:}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj= ubjE )}(hX * 0 disable multicast routers on this port
* 1 let the system detect the presence of routers (default)
* 2 permanently enable multicast traffic forwarding on this port
* 3 enable multicast routers temporarily on this port, not depending
on incoming queries.
h]jK )}(hhh](jP )}(h(0 disable multicast routers on this porth]h)}(hjX h]h(0 disable multicast routers on this port}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjV ubah}(h]h ]h"]h$]h&]uh1jO hjS ubjP )}(h91 let the system detect the presence of routers (default)h]h)}(hjp h]h91 let the system detect the presence of routers (default)}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjn ubah}(h]h ]h"]h$]h&]uh1jO hjS ubjP )}(h>2 permanently enable multicast traffic forwarding on this porth]h)}(hj h]h>2 permanently enable multicast traffic forwarding on this port}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jO hjS ubjP )}(hZ3 enable multicast routers temporarily on this port, not depending
on incoming queries.
h]j( )}(hhh]j- )}(hX3 enable multicast routers temporarily on this port, not depending
on incoming queries.
h](j3 )}(hB3 enable multicast routers temporarily on this port, not dependingh]hB3 enable multicast routers temporarily on this port, not depending}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2 hj< hMhj ubjO )}(hhh]h)}(hon incoming queries.h]hon incoming queries.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj< hMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj< hMhj ubah}(h]h ]h"]h$]h&]uh1j' hj ubah}(h]h ]h"]h$]h&]uh1jO hjS ubeh}(h]h ]h"]h$]h&]j j uh1jJ hjg hMhjO ubah}(h]h ]h"]h$]h&]uh1jD hjg hMhj= ubeh}(h]h ]h"]h$]h&]uh1jN hj! ubeh}(h]h ]h"]h$]h&]uh1j, hj< hMhj ubeh}(h]h ]h"]h$]h&]uh1j' hj hhhNhNubh)}(h**IFLA_BRPORT_PAD**h]j )}(hj h]hIFLA_BRPORT_PAD}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubj( )}(hhh](j- )}(h**IFLA_BRPORT_MCAST_FLOOD**
Controls whether a given port will flood multicast traffic for which
there is no MDB entry. By default this flag is on.
h](j3 )}(h**IFLA_BRPORT_MCAST_FLOOD**h]j )}(hj h]hIFLA_BRPORT_MCAST_FLOOD}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hwControls whether a given port will flood multicast traffic for which
there is no MDB entry. By default this flag is on.h]hwControls whether a given port will flood multicast traffic for which
there is no MDB entry. By default this flag is on.}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj5 ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj4 hMhj ubj- )}(hX **IFLA_BRPORT_MCAST_TO_UCAST**
Controls whether a given port will replicate packets using unicast
instead of multicast. By default this flag is off.
This is done by copying the packet per host and changing the multicast
destination MAC to a unicast one accordingly.
*mcast_to_unicast* works on top of the multicast snooping feature of the
bridge. Which means unicast copies are only delivered to hosts which
are interested in unicast and signaled this via IGMP/MLD reports previously.
This feature is intended for interface types which have a more reliable
and/or efficient way to deliver unicast packets than broadcast ones
(e.g. WiFi).
However, it should only be enabled on interfaces where no IGMPv2/MLDv1
report suppression takes place. IGMP/MLD report suppression issue is
usually overcome by the network daemon (supplicant) enabling AP isolation
and by that separating all STAs.
Delivery of STA-to-STA IP multicast is made possible again by enabling
and utilizing the bridge hairpin mode, which considers the incoming port
as a potential outgoing port, too (see *BRIDGE_MODE_HAIRPIN* option).
Hairpin mode is performed after multicast snooping, therefore leading
to only deliver reports to STAs running a multicast router.
h](j3 )}(h**IFLA_BRPORT_MCAST_TO_UCAST**h]j )}(hjY h]hIFLA_BRPORT_MCAST_TO_UCAST}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjW ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjS ubjO )}(hhh](h)}(huControls whether a given port will replicate packets using unicast
instead of multicast. By default this flag is off.h]huControls whether a given port will replicate packets using unicast
instead of multicast. By default this flag is off.}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjo ubh)}(htThis is done by copying the packet per host and changing the multicast
destination MAC to a unicast one accordingly.h]htThis is done by copying the packet per host and changing the multicast
destination MAC to a unicast one accordingly.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjo ubh)}(h*mcast_to_unicast* works on top of the multicast snooping feature of the
bridge. Which means unicast copies are only delivered to hosts which
are interested in unicast and signaled this via IGMP/MLD reports previously.h](j )}(h*mcast_to_unicast*h]hmcast_to_unicast}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh works on top of the multicast snooping feature of the
bridge. Which means unicast copies are only delivered to hosts which
are interested in unicast and signaled this via IGMP/MLD reports previously.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjo ubh)}(hThis feature is intended for interface types which have a more reliable
and/or efficient way to deliver unicast packets than broadcast ones
(e.g. WiFi).h]hThis feature is intended for interface types which have a more reliable
and/or efficient way to deliver unicast packets than broadcast ones
(e.g. WiFi).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjo ubh)}(hHowever, it should only be enabled on interfaces where no IGMPv2/MLDv1
report suppression takes place. IGMP/MLD report suppression issue is
usually overcome by the network daemon (supplicant) enabling AP isolation
and by that separating all STAs.h]hHowever, it should only be enabled on interfaces where no IGMPv2/MLDv1
report suppression takes place. IGMP/MLD report suppression issue is
usually overcome by the network daemon (supplicant) enabling AP isolation
and by that separating all STAs.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjo ubh)}(hXW Delivery of STA-to-STA IP multicast is made possible again by enabling
and utilizing the bridge hairpin mode, which considers the incoming port
as a potential outgoing port, too (see *BRIDGE_MODE_HAIRPIN* option).
Hairpin mode is performed after multicast snooping, therefore leading
to only deliver reports to STAs running a multicast router.h](hDelivery of STA-to-STA IP multicast is made possible again by enabling
and utilizing the bridge hairpin mode, which considers the incoming port
as a potential outgoing port, too (see }(hj hhhNhNubj )}(h*BRIDGE_MODE_HAIRPIN*h]hBRIDGE_MODE_HAIRPIN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh option).
Hairpin mode is performed after multicast snooping, therefore leading
to only deliver reports to STAs running a multicast router.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjo ubeh}(h]h ]h"]h$]h&]uh1jN hjS ubeh}(h]h ]h"]h$]h&]uh1j, hjn hMhj ubj- )}(hy**IFLA_BRPORT_VLAN_TUNNEL**
Controls whether vlan to tunnel mapping is enabled on the port.
By default this flag is off.
h](j3 )}(h**IFLA_BRPORT_VLAN_TUNNEL**h]j )}(hj h]hIFLA_BRPORT_VLAN_TUNNEL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(h\Controls whether vlan to tunnel mapping is enabled on the port.
By default this flag is off.h]h\Controls whether vlan to tunnel mapping is enabled on the port.
By default this flag is off.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hr**IFLA_BRPORT_BCAST_FLOOD**
Controls flooding of broadcast traffic on the given port. By default
this flag is on.
h](j3 )}(h**IFLA_BRPORT_BCAST_FLOOD**h]j )}(hj8 h]hIFLA_BRPORT_BCAST_FLOOD}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6 ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj2 ubjO )}(hhh]h)}(hUControls flooding of broadcast traffic on the given port. By default
this flag is on.h]hUControls flooding of broadcast traffic on the given port. By default
this flag is on.}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjN ubah}(h]h ]h"]h$]h&]uh1jN hj2 ubeh}(h]h ]h"]h$]h&]uh1j, hjM hMhj ubj- )}(hX@ **IFLA_BRPORT_GROUP_FWD_MASK**
Set the group forward mask. This is a bitmask that is applied to
decide whether to forward incoming frames destined to link-local
addresses. The addresses of the form are 01:80:C2:00:00:0X (defaults
to 0, which means the bridge does not forward any link-local frames
coming on this port).
h](j3 )}(h**IFLA_BRPORT_GROUP_FWD_MASK**h]j )}(hjr h]hIFLA_BRPORT_GROUP_FWD_MASK}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjp ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhjl ubjO )}(hhh]h)}(hX Set the group forward mask. This is a bitmask that is applied to
decide whether to forward incoming frames destined to link-local
addresses. The addresses of the form are 01:80:C2:00:00:0X (defaults
to 0, which means the bridge does not forward any link-local frames
coming on this port).h]hX Set the group forward mask. This is a bitmask that is applied to
decide whether to forward incoming frames destined to link-local
addresses. The addresses of the form are 01:80:C2:00:00:0X (defaults
to 0, which means the bridge does not forward any link-local frames
coming on this port).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hjl ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(h**IFLA_BRPORT_NEIGH_SUPPRESS**
Controls whether neighbor discovery (arp and nd) proxy and suppression
is enabled on the port. By default this flag is off.
h](j3 )}(h**IFLA_BRPORT_NEIGH_SUPPRESS**h]j )}(hj h]hIFLA_BRPORT_NEIGH_SUPPRESS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(h{Controls whether neighbor discovery (arp and nd) proxy and suppression
is enabled on the port. By default this flag is off.h]h{Controls whether neighbor discovery (arp and nd) proxy and suppression
is enabled on the port. By default this flag is off.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(h**IFLA_BRPORT_ISOLATED**
Controls whether a given port will be isolated, which means it will be
able to communicate with non-isolated ports only. By default this
flag is off.
h](j3 )}(h**IFLA_BRPORT_ISOLATED**h]j )}(hj h]hIFLA_BRPORT_ISOLATED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hControls whether a given port will be isolated, which means it will be
able to communicate with non-isolated ports only. By default this
flag is off.h]hControls whether a given port will be isolated, which means it will be
able to communicate with non-isolated ports only. By default this
flag is off.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM hj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(h**IFLA_BRPORT_BACKUP_PORT**
Set a backup port. If the port loses carrier all traffic will be
redirected to the configured backup port. Set the value to 0 to disable
it.
h](j3 )}(h**IFLA_BRPORT_BACKUP_PORT**h]j )}(hj h]hIFLA_BRPORT_BACKUP_PORT}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(hSet a backup port. If the port loses carrier all traffic will be
redirected to the configured backup port. Set the value to 0 to disable
it.h]hSet a backup port. If the port loses carrier all traffic will be
redirected to the configured backup port. Set the value to 0 to disable
it.}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj6 ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj5 hMhj ubeh}(h]h ]h"]h$]h&]uh1j' hj hhhNhNubh)}(h**IFLA_BRPORT_MRP_RING_OPEN**h]j )}(hj\ h]hIFLA_BRPORT_MRP_RING_OPEN}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZ ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM hj hhubh)}(h**IFLA_BRPORT_MRP_IN_OPEN**h]j )}(hjt h]hIFLA_BRPORT_MRP_IN_OPEN}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjr ubah}(} h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj hhubj( )}(hhh](j- )}(h**IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT**
The number of per-port EHT hosts limit. The default value is 512.
Setting to 0 is not allowed.
h](j3 )}(h%**IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT**h]j )}(hj h]h!IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(h^The number of per-port EHT hosts limit. The default value is 512.
Setting to 0 is not allowed.h]h^The number of per-port EHT hosts limit. The default value is 512.
Setting to 0 is not allowed.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hT**IFLA_BRPORT_MCAST_EHT_HOSTS_CNT**
The current number of tracked hosts, read only.
h](j3 )}(h#**IFLA_BRPORT_MCAST_EHT_HOSTS_CNT**h]j )}(hj h]hIFLA_BRPORT_MCAST_EHT_HOSTS_CNT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh]h)}(h/The current number of tracked hosts, read only.h]h/The current number of tracked hosts, read only.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hX9 **IFLA_BRPORT_LOCKED**
Controls whether a port will be locked, meaning that hosts behind the
port will not be able to communicate through the port unless an FDB
entry with the unit's MAC address is in the FDB. The common use case is
that hosts are allowed access through authentication with the IEEE 802.1X
protocol or based on whitelists. By default this flag is off.
Please note that secure 802.1X deployments should always use the
*BR_BOOLOPT_NO_LL_LEARN* flag, to not permit the bridge to populate its
FDB based on link-local (EAPOL) traffic received on the port.
h](j3 )}(h**IFLA_BRPORT_LOCKED**h]j )}(hj h]hIFLA_BRPORT_LOCKED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubjO )}(hhh](h)}(hXY Controls whether a port will be locked, meaning that hosts behind the
port will not be able to communicate through the port unless an FDB
entry with the unit's MAC address is in the FDB. The common use case is
that hosts are allowed access through authentication with the IEEE 802.1X
protocol or based on whitelists. By default this flag is off.h]hX[ Controls whether a port will be locked, meaning that hosts behind the
port will not be able to communicate through the port unless an FDB
entry with the unit’s MAC address is in the FDB. The common use case is
that hosts are allowed access through authentication with the IEEE 802.1X
protocol or based on whitelists. By default this flag is off.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubh)}(hPlease note that secure 802.1X deployments should always use the
*BR_BOOLOPT_NO_LL_LEARN* flag, to not permit the bridge to populate its
FDB based on link-local (EAPOL) traffic received on the port.h](hAPlease note that secure 802.1X deployments should always use the
}(hj. hhhNhNubj )}(h*BR_BOOLOPT_NO_LL_LEARN*h]hBR_BOOLOPT_NO_LL_LEARN}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj. ubhm flag, to not permit the bridge to populate its
FDB based on link-local (EAPOL) traffic received on the port.}(hj. hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMhj ubeh}(h]h ]h"]h$]h&]uh1jN hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hMhj ubj- )}(hX5 **IFLA_BRPORT_MAB**
Controls whether a port will use MAC Authentication Bypass (MAB), a
technique through which select MAC addresses may be allowed on a locked
port, without using 802.1X authentication. Packets with an unknown source
MAC address generates a "locked" FDB entry on the incoming bridge port.
The common use case is for user space to react to these bridge FDB
notifications and optionally replace the locked FDB entry with a normal
one, allowing traffic to pass for whitelisted MAC addresses.
Setting this flag also requires *IFLA_BRPORT_LOCKED* and
*IFLA_BRPORT_LEARNING*. *IFLA_BRPORT_LOCKED* ensures that unauthorized
data packets are dropped, and *IFLA_BRPORT_LEARNING* allows the dynamic
FDB entries installed by user space (as replacements for the locked FDB
entries) to be refreshed and/or aged out.
h](j3 )}(h**IFLA_BRPORT_MAB**h]j )}(hja h]hIFLA_BRPORT_MAB}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj_ ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM,hj[ ubjO )}(hhh](h)}(hX Controls whether a port will use MAC Authentication Bypass (MAB), a
technique through which select MAC addresses may be allowed on a locked
port, without using 802.1X authentication. Packets with an unknown source
MAC address generates a "locked" FDB entry on the incoming bridge port.
The common use case is for user space to react to these bridge FDB
notifications and optionally replace the locked FDB entry with a normal
one, allowing traffic to pass for whitelisted MAC addresses.h]hX Controls whether a port will use MAC Authentication Bypass (MAB), a
technique through which select MAC addresses may be allowed on a locked
port, without using 802.1X authentication. Packets with an unknown source
MAC address generates a “locked” FDB entry on the incoming bridge port.
The common use case is for user space to react to these bridge FDB
notifications and optionally replace the locked FDB entry with a normal
one, allowing traffic to pass for whitelisted MAC addresses.}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM hjw ubh)}(hX9 Setting this flag also requires *IFLA_BRPORT_LOCKED* and
*IFLA_BRPORT_LEARNING*. *IFLA_BRPORT_LOCKED* ensures that unauthorized
data packets are dropped, and *IFLA_BRPORT_LEARNING* allows the dynamic
FDB entries installed by user space (as replacements for the locked FDB
entries) to be refreshed and/or aged out.h](h Setting this flag also requires }(hj hhhNhNubj )}(h*IFLA_BRPORT_LOCKED*h]hIFLA_BRPORT_LOCKED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh and
}(hj hhhNhNubj )}(h*IFLA_BRPORT_LEARNING*h]hIFLA_BRPORT_LEARNING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh. }(hj hhhNhNubj )}(h*IFLA_BRPORT_LOCKED*h]hIFLA_BRPORT_LOCKED}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh9 ensures that unauthorized
data packets are dropped, and }(hj hhhNhNubj )}(h*IFLA_BRPORT_LEARNING*h]hIFLA_BRPORT_LEARNING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh allows the dynamic
FDB entries installed by user space (as replacements for the locked FDB
entries) to be refreshed and/or aged out.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM(hjw ubeh}(h]h ]h"]h$]h&]uh1jN hj[ ubeh}(h]h ]h"]h$]h&]uh1j, hjv hM,hj ubeh}(h]h ]h"]h$]h&]uh1j' hj hhhNhNubh)}(h**IFLA_BRPORT_MCAST_N_GROUPS**h]j )}(hj h]hIFLA_BRPORT_MCAST_N_GROUPS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM.hj hhubj( )}(hhh](j- )}(hXn **IFLA_BRPORT_MCAST_MAX_GROUPS**
Sets the maximum number of MDB entries that can be registered for a
given port. Attempts to register more MDB entries at the port than this
limit allows will be rejected, whether they are done through netlink
(e.g. the bridge tool), or IGMP or MLD membership reports. Setting a
limit of 0 disables the limit. The default value is 0.
h](j3 )}(h **IFLA_BRPORT_MCAST_MAX_GROUPS**h]j )}(hj! h]hIFLA_BRPORT_MCAST_MAX_GROUPS}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj! ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM5hj
! ubjO )}(hhh]h)}(hXL Sets the maximum number of MDB entries that can be registered for a
given port. Attempts to register more MDB entries at the port than this
limit allows will be rejected, whether they are done through netlink
(e.g. the bridge tool), or IGMP or MLD membership reports. Setting a
limit of 0 disables the limit. The default value is 0.h]hXL Sets the maximum number of MDB entries that can be registered for a
given port. Attempts to register more MDB entries at the port than this
limit allows will be rejected, whether they are done through netlink
(e.g. the bridge tool), or IGMP or MLD membership reports. Setting a
limit of 0 disables the limit. The default value is 0.}(hj,! hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM1hj)! ubah}(h]h ]h"]h$]h&]uh1jN hj
! ubeh}(h]h ]h"]h$]h&]uh1j, hj(! hM5hj
! ubj- )}(hX
**IFLA_BRPORT_NEIGH_VLAN_SUPPRESS**
Controls whether neighbor discovery (arp and nd) proxy and suppression is
enabled for a given port. By default this flag is off.
Note that this option only takes effect when *IFLA_BRPORT_NEIGH_SUPPRESS*
is enabled for a given port.
h](j3 )}(h#**IFLA_BRPORT_NEIGH_VLAN_SUPPRESS**h]j )}(hjM! h]hIFLA_BRPORT_NEIGH_VLAN_SUPPRESS}(hjO! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjK! ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM<hjG! ubjO )}(hhh](h)}(hControls whether neighbor discovery (arp and nd) proxy and suppression is
enabled for a given port. By default this flag is off.h]hControls whether neighbor discovery (arp and nd) proxy and suppression is
enabled for a given port. By default this flag is off.}(hjf! hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM8hjc! ubh)}(hfNote that this option only takes effect when *IFLA_BRPORT_NEIGH_SUPPRESS*
is enabled for a given port.h](h-Note that this option only takes effect when }(hju! hhhNhNubj )}(h*IFLA_BRPORT_NEIGH_SUPPRESS*h]hIFLA_BRPORT_NEIGH_SUPPRESS}(hj}! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hju! ubh
is enabled for a given port.}(hju! hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM;hjc! ubeh}(h]h ]h"]h$]h&]uh1jN hjG! ubeh}(h]h ]h"]h$]h&]uh1j, hjb! hM<hj
! ubj- )}(hX **IFLA_BRPORT_BACKUP_NHID**
The FDB nexthop object ID to attach to packets being redirected to a
backup port that has VLAN tunnel mapping enabled (via the
*IFLA_BRPORT_VLAN_TUNNEL* option). Setting a value of 0 (default) has
the effect of not attaching any ID.
h](j3 )}(h**IFLA_BRPORT_BACKUP_NHID**h]j )}(hj! h]hIFLA_BRPORT_BACKUP_NHID}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj! ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhMChj! ubjO )}(hhh]h)}(hThe FDB nexthop object ID to attach to packets being redirected to a
backup port that has VLAN tunnel mapping enabled (via the
*IFLA_BRPORT_VLAN_TUNNEL* option). Setting a value of 0 (default) has
the effect of not attaching any ID.h](hThe FDB nexthop object ID to attach to packets being redirected to a
backup port that has VLAN tunnel mapping enabled (via the
}(hj! hhhNhNubj )}(h*IFLA_BRPORT_VLAN_TUNNEL*h]hIFLA_BRPORT_VLAN_TUNNEL}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj! ubhP option). Setting a value of 0 (default) has
the effect of not attaching any ID.}(hj! hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/networking/bridge:41: ./include/uapi/linux/if_link.hhM?hj! ubah}(h]h ]h"]h$]h&]uh1jN hj! ubeh}(h]h ]h"]h$]h&]uh1j, hj! hMChj
! ubeh}(h]h ]h"]h$]h&]uh1j' hj hhhNhNubeh}(h]bridge-port-netlink-attributesah ]h"]bridge port netlink attributesah$]h&]uh1hhj hhhhhK'ubh)}(hhh](h)}(hBridge sysfsh]hBridge sysfs}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj! hhhhhK-ubh)}(hVThe sysfs interface is deprecated and should not be extended if new
options are added.h]hVThe sysfs interface is deprecated and should not be extended if new
options are added.}(hj
" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj! hhubeh}(h]bridge-sysfsah ]h"]bridge sysfsah$]h&]uh1hhj hhhhhK-ubeh}(h]bridge-uapiah ]h"]bridge uapiah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSTPh]hSTP}(hj." hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+" hhhhhK3ubh)}(hX# The STP (Spanning Tree Protocol) implementation in the Linux bridge driver
is a critical feature that helps prevent loops and broadcast storms in
Ethernet networks by identifying and disabling redundant links. In a Linux
bridge context, STP is crucial for network stability and availability.h]hX# The STP (Spanning Tree Protocol) implementation in the Linux bridge driver
is a critical feature that helps prevent loops and broadcast storms in
Ethernet networks by identifying and disabling redundant links. In a Linux
bridge context, STP is crucial for network stability and availability.}(hj<" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hj+" hhubh)}(hXW STP is a Layer 2 protocol that operates at the Data Link Layer of the OSI
model. It was originally developed as IEEE 802.1D and has since evolved into
multiple versions, including Rapid Spanning Tree Protocol (RSTP) and
`Multiple Spanning Tree Protocol (MSTP)
`_.h](hSTP is a Layer 2 protocol that operates at the Data Link Layer of the OSI
model. It was originally developed as IEEE 802.1D and has since evolved into
multiple versions, including Rapid Spanning Tree Protocol (RSTP) and
}(hjJ" hhhNhNubh reference)}(hz`Multiple Spanning Tree Protocol (MSTP)
`_h]h&Multiple Spanning Tree Protocol (MSTP)}(hjT" hhhNhNubah}(h]h ]h"]h$]h&]name&Multiple Spanning Tree Protocol (MSTP)refuriNhttps://lore.kernel.org/netdev/20220316150857.2442916-1-tobias@waldekranz.com/uh1jR" hjJ" ubhtarget)}(hQ
h]h}(h]$multiple-spanning-tree-protocol-mstpah ]h"]&multiple spanning tree protocol (mstp)ah$]h&]refurije" uh1jf"
referencedKhjJ" ubh.}(hjJ" hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hj+" hhubh)}(hXV The 802.1D-2004 removed the original Spanning Tree Protocol, instead
incorporating the Rapid Spanning Tree Protocol (RSTP). By 2014, all the
functionality defined by IEEE 802.1D has been incorporated into either
IEEE 802.1Q (Bridges and Bridged Networks) or IEEE 802.1AC (MAC Service
Definition). 802.1D has been officially withdrawn in 2022.h]hXV The 802.1D-2004 removed the original Spanning Tree Protocol, instead
incorporating the Rapid Spanning Tree Protocol (RSTP). By 2014, all the
functionality defined by IEEE 802.1D has been incorporated into either
IEEE 802.1Q (Bridges and Bridged Networks) or IEEE 802.1AC (MAC Service
Definition). 802.1D has been officially withdrawn in 2022.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj+" hhubh)}(hhh](h)}(hBridge Ports and STP Statesh]hBridge Ports and STP States}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj" hhhhhKGubj( )}(hhh]j- )}(hX In the context of STP, bridge ports can be in one of the following states:
* Blocking: The port is disabled for data traffic and only listens for
BPDUs (Bridge Protocol Data Units) from other devices to determine the
network topology.
* Listening: The port begins to participate in the STP process and listens
for BPDUs.
* Learning: The port continues to listen for BPDUs and begins to learn MAC
addresses from incoming frames but does not forward data frames.
* Forwarding: The port is fully operational and forwards both BPDUs and
data frames.
* Disabled: The port is administratively disabled and does not participate
in the STP process. The data frames forwarding are also disabled.
h](j3 )}(hJIn the context of STP, bridge ports can be in one of the following states:h]hJIn the context of STP, bridge ports can be in one of the following states:}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1j2 hhhKThj" ubjO )}(hhh]jK )}(hhh](jP )}(hBlocking: The port is disabled for data traffic and only listens for
BPDUs (Bridge Protocol Data Units) from other devices to determine the
network topology.h]h)}(hBlocking: The port is disabled for data traffic and only listens for
BPDUs (Bridge Protocol Data Units) from other devices to determine the
network topology.h]hBlocking: The port is disabled for data traffic and only listens for
BPDUs (Bridge Protocol Data Units) from other devices to determine the
network topology.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj" ubah}(h]h ]h"]h$]h&]uh1jO hj" ubjP )}(hSListening: The port begins to participate in the STP process and listens
for BPDUs.h]h)}(hSListening: The port begins to participate in the STP process and listens
for BPDUs.h]hSListening: The port begins to participate in the STP process and listens
for BPDUs.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhj" ubah}(h]h ]h"]h$]h&]uh1jO hj" ubjP )}(hLearning: The port continues to listen for BPDUs and begins to learn MAC
addresses from incoming frames but does not forward data frames.h]h)}(hLearning: The port continues to listen for BPDUs and begins to learn MAC
addresses from incoming frames but does not forward data frames.h]hLearning: The port continues to listen for BPDUs and begins to learn MAC
addresses from incoming frames but does not forward data frames.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhj" ubah}(h]h ]h"]h$]h&]uh1jO hj" ubjP )}(hRForwarding: The port is fully operational and forwards both BPDUs and
data frames.h]h)}(hRForwarding: The port is fully operational and forwards both BPDUs and
data frames.h]hRForwarding: The port is fully operational and forwards both BPDUs and
data frames.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhj# ubah}(h]h ]h"]h$]h&]uh1jO hj" ubjP )}(hDisabled: The port is administratively disabled and does not participate
in the STP process. The data frames forwarding are also disabled.
h]h)}(hDisabled: The port is administratively disabled and does not participate
in the STP process. The data frames forwarding are also disabled.h]hDisabled: The port is administratively disabled and does not participate
in the STP process. The data frames forwarding are also disabled.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj# ubah}(h]h ]h"]h$]h&]uh1jO hj" ubeh}(h]h ]h"]h$]h&]j j uh1jJ hhhKJhj" ubah}(h]h ]h"]h$]h&]uh1jN hj" ubeh}(h]h ]h"]h$]h&]uh1j, hhhKThj" ubah}(h]h ]h"]h$]h&]uh1j' hj" hhhNhNubeh}(h]bridge-ports-and-stp-statesah ]h"]bridge ports and stp statesah$]h&]uh1hhj+" hhhhhKGubh)}(hhh](h)}(hRoot Bridge and Convergenceh]hRoot Bridge and Convergence}(hjU# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR# hhhhhKWubh)}(hIn the context of networking and Ethernet bridging in Linux, the root bridge
is a designated switch in a bridged network that serves as a reference point
for the spanning tree algorithm to create a loop-free topology.h]hIn the context of networking and Ethernet bridging in Linux, the root bridge
is a designated switch in a bridged network that serves as a reference point
for the spanning tree algorithm to create a loop-free topology.}(hjc# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjR# hhubj( )}(hhh]j- )}(hX Here's how the STP works and root bridge is chosen:
1. Bridge Priority: Each bridge running a spanning tree protocol, has a
configurable Bridge Priority value. The lower the value, the higher the
priority. By default, the Bridge Priority is set to a standard value
(e.g., 32768).
2. Bridge ID: The Bridge ID is composed of two components: Bridge Priority
and the MAC address of the bridge. It uniquely identifies each bridge
in the network. The Bridge ID is used to compare the priorities of
different bridges.
3. Bridge Election: When the network starts, all bridges initially assume
that they are the root bridge. They start advertising Bridge Protocol
Data Units (BPDU) to their neighbors, containing their Bridge ID and
other information.
4. BPDU Comparison: Bridges exchange BPDUs to determine the root bridge.
Each bridge examines the received BPDUs, including the Bridge Priority
and Bridge ID, to determine if it should adjust its own priorities.
The bridge with the lowest Bridge ID will become the root bridge.
5. Root Bridge Announcement: Once the root bridge is determined, it sends
BPDUs with information about the root bridge to all other bridges in the
network. This information is used by other bridges to calculate the
shortest path to the root bridge and, in doing so, create a loop-free
topology.
6. Forwarding Ports: After the root bridge is selected and the spanning tree
topology is established, each bridge determines which of its ports should
be in the forwarding state (used for data traffic) and which should be in
the blocking state (used to prevent loops). The root bridge's ports are
all in the forwarding state. while other bridges have some ports in the
blocking state to avoid loops.
7. Root Ports: After the root bridge is selected and the spanning tree
topology is established, each non-root bridge processes incoming
BPDUs and determines which of its ports provides the shortest path to the
root bridge based on the information in the received BPDUs. This port is
designated as the root port. And it is in the Forwarding state, allowing
it to actively forward network traffic.
8. Designated ports: A designated port is the port through which the non-root
bridge will forward traffic towards the designated segment. Designated ports
are placed in the Forwarding state. All other ports on the non-root
bridge that are not designated for specific segments are placed in the
Blocking state to prevent network loops.
h](j3 )}(h3Here's how the STP works and root bridge is chosen:h]h5Here’s how the STP works and root bridge is chosen:}(hjx# hhhNhNubah}(h]h ]h"]h$]h&]uh1j2 hhhKhjt# ubjO )}(hhh]henumerated_list)}(hhh](jP )}(hBridge Priority: Each bridge running a spanning tree protocol, has a
configurable Bridge Priority value. The lower the value, the higher the
priority. By default, the Bridge Priority is set to a standard value
(e.g., 32768).h]h)}(hBridge Priority: Each bridge running a spanning tree protocol, has a
configurable Bridge Priority value. The lower the value, the higher the
priority. By default, the Bridge Priority is set to a standard value
(e.g., 32768).h]hBridge Priority: Each bridge running a spanning tree protocol, has a
configurable Bridge Priority value. The lower the value, the higher the
priority. By default, the Bridge Priority is set to a standard value
(e.g., 32768).}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hj# ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hBridge ID: The Bridge ID is composed of two components: Bridge Priority
and the MAC address of the bridge. It uniquely identifies each bridge
in the network. The Bridge ID is used to compare the priorities of
different bridges.h]h)}(hBridge ID: The Bridge ID is composed of two components: Bridge Priority
and the MAC address of the bridge. It uniquely identifies each bridge
in the network. The Bridge ID is used to compare the priorities of
different bridges.h]hBridge ID: The Bridge ID is composed of two components: Bridge Priority
and the MAC address of the bridge. It uniquely identifies each bridge
in the network. The Bridge ID is used to compare the priorities of
different bridges.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhj# ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hBridge Election: When the network starts, all bridges initially assume
that they are the root bridge. They start advertising Bridge Protocol
Data Units (BPDU) to their neighbors, containing their Bridge ID and
other information.h]h)}(hBridge Election: When the network starts, all bridges initially assume
that they are the root bridge. They start advertising Bridge Protocol
Data Units (BPDU) to their neighbors, containing their Bridge ID and
other information.h]hBridge Election: When the network starts, all bridges initially assume
that they are the root bridge. They start advertising Bridge Protocol
Data Units (BPDU) to their neighbors, containing their Bridge ID and
other information.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj# ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hX BPDU Comparison: Bridges exchange BPDUs to determine the root bridge.
Each bridge examines the received BPDUs, including the Bridge Priority
and Bridge ID, to determine if it should adjust its own priorities.
The bridge with the lowest Bridge ID will become the root bridge.h]h)}(hX BPDU Comparison: Bridges exchange BPDUs to determine the root bridge.
Each bridge examines the received BPDUs, including the Bridge Priority
and Bridge ID, to determine if it should adjust its own priorities.
The bridge with the lowest Bridge ID will become the root bridge.h]hX BPDU Comparison: Bridges exchange BPDUs to determine the root bridge.
Each bridge examines the received BPDUs, including the Bridge Priority
and Bridge ID, to determine if it should adjust its own priorities.
The bridge with the lowest Bridge ID will become the root bridge.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhj# ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hX# Root Bridge Announcement: Once the root bridge is determined, it sends
BPDUs with information about the root bridge to all other bridges in the
network. This information is used by other bridges to calculate the
shortest path to the root bridge and, in doing so, create a loop-free
topology.h]h)}(hX# Root Bridge Announcement: Once the root bridge is determined, it sends
BPDUs with information about the root bridge to all other bridges in the
network. This information is used by other bridges to calculate the
shortest path to the root bridge and, in doing so, create a loop-free
topology.h]hX# Root Bridge Announcement: Once the root bridge is determined, it sends
BPDUs with information about the root bridge to all other bridges in the
network. This information is used by other bridges to calculate the
shortest path to the root bridge and, in doing so, create a loop-free
topology.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhj# ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hX Forwarding Ports: After the root bridge is selected and the spanning tree
topology is established, each bridge determines which of its ports should
be in the forwarding state (used for data traffic) and which should be in
the blocking state (used to prevent loops). The root bridge's ports are
all in the forwarding state. while other bridges have some ports in the
blocking state to avoid loops.h]h)}(hX Forwarding Ports: After the root bridge is selected and the spanning tree
topology is established, each bridge determines which of its ports should
be in the forwarding state (used for data traffic) and which should be in
the blocking state (used to prevent loops). The root bridge's ports are
all in the forwarding state. while other bridges have some ports in the
blocking state to avoid loops.h]hX Forwarding Ports: After the root bridge is selected and the spanning tree
topology is established, each bridge determines which of its ports should
be in the forwarding state (used for data traffic) and which should be in
the blocking state (used to prevent loops). The root bridge’s ports are
all in the forwarding state. while other bridges have some ports in the
blocking state to avoid loops.}(hj
$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshj$ ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hX Root Ports: After the root bridge is selected and the spanning tree
topology is established, each non-root bridge processes incoming
BPDUs and determines which of its ports provides the shortest path to the
root bridge based on the information in the received BPDUs. This port is
designated as the root port. And it is in the Forwarding state, allowing
it to actively forward network traffic.h]h)}(hX Root Ports: After the root bridge is selected and the spanning tree
topology is established, each non-root bridge processes incoming
BPDUs and determines which of its ports provides the shortest path to the
root bridge based on the information in the received BPDUs. This port is
designated as the root port. And it is in the Forwarding state, allowing
it to actively forward network traffic.h]hX Root Ports: After the root bridge is selected and the spanning tree
topology is established, each non-root bridge processes incoming
BPDUs and determines which of its ports provides the shortest path to the
root bridge based on the information in the received BPDUs. This port is
designated as the root port. And it is in the Forwarding state, allowing
it to actively forward network traffic.}(hj"$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhj$ ubah}(h]h ]h"]h$]h&]uh1jO hj# ubjP )}(hXL Designated ports: A designated port is the port through which the non-root
bridge will forward traffic towards the designated segment. Designated ports
are placed in the Forwarding state. All other ports on the non-root
bridge that are not designated for specific segments are placed in the
Blocking state to prevent network loops.
h]h)}(hXK Designated ports: A designated port is the port through which the non-root
bridge will forward traffic towards the designated segment. Designated ports
are placed in the Forwarding state. All other ports on the non-root
bridge that are not designated for specific segments are placed in the
Blocking state to prevent network loops.h]hXK Designated ports: A designated port is the port through which the non-root
bridge will forward traffic towards the designated segment. Designated ports
are placed in the Forwarding state. All other ports on the non-root
bridge that are not designated for specific segments are placed in the
Blocking state to prevent network loops.}(hj:$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj6$ ubah}(h]h ]h"]h$]h&]uh1jO hj# ubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1j# hj# ubah}(h]h ]h"]h$]h&]uh1jN hjt# ubeh}(h]h ]h"]h$]h&]uh1j, hhhKhjq# ubah}(h]h ]h"]h$]h&]uh1j' hjR# hhhNhNubh)}(hSTP ensures network convergence by calculating the shortest path and disabling
redundant links. When network topology changes occur (e.g., a link failure),
STP recalculates the network topology to restore connectivity while avoiding loops.h]hSTP ensures network convergence by calculating the shortest path and disabling
redundant links. When network topology changes occur (e.g., a link failure),
STP recalculates the network topology to restore connectivity while avoiding loops.}(hjk$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjR# hhubh)}(hProper configuration of STP parameters, such as the bridge priority, can
influence network performance, path selection and which bridge becomes the
Root Bridge.h]hProper configuration of STP parameters, such as the bridge priority, can
influence network performance, path selection and which bridge becomes the
Root Bridge.}(hjy$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjR# hhubeh}(h]root-bridge-and-convergenceah ]h"]root bridge and convergenceah$]h&]uh1hhj+" hhhhhKWubh)}(hhh](h)}(hUser space STP helperh]hUser space STP helper}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ hhhhhKubh)}(hX The user space STP helper *bridge-stp* is a program to control whether to use
user mode spanning tree. The ``/sbin/bridge-stp `` is
called by the kernel when STP is enabled/disabled on a bridge
(via ``brctl stp `` or ``ip link set type bridge
stp_state <0|1>``). The kernel enables user_stp mode if that command returns
0, or enables kernel_stp mode if that command returns any other value.h](hThe user space STP helper }(hj$ hhhNhNubj )}(h*bridge-stp*h]h
bridge-stp}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj$ ubhE is a program to control whether to use
user mode spanning tree. The }(hj$ hhhNhNubj9 )}(h*``/sbin/bridge-stp ``h]h&/sbin/bridge-stp }(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj$ ubhG is
called by the kernel when STP is enabled/disabled on a bridge
(via }(hj$ hhhNhNubj9 )}(h``brctl stp ``h]hbrctl stp }(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj$ ubh or }(hj$ hhhNhNubj9 )}(h4``ip link set type bridge
stp_state <0|1>``h]h0ip link set type bridge
stp_state <0|1>}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj$ ubh). The kernel enables user_stp mode if that command returns
0, or enables kernel_stp mode if that command returns any other value.}(hj$ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj$ hhubeh}(h]user-space-stp-helperah ]h"]user space stp helperah$]h&]uh1hhj+" hhhhhKubh)}(hhh](h)}(hSTP mode selectionh]hSTP mode selection}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ hhhhhKubh)}(hThe ``IFLA_BR_STP_MODE`` bridge attribute allows explicit control over how
STP operates when enabled, bypassing the ``/sbin/bridge-stp`` helper
entirely for the ``user`` and ``kernel`` modes.h](hThe }(hj% hhhNhNubj9 )}(h``IFLA_BR_STP_MODE``h]hIFLA_BR_STP_MODE}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubh\ bridge attribute allows explicit control over how
STP operates when enabled, bypassing the }(hj% hhhNhNubj9 )}(h``/sbin/bridge-stp``h]h/sbin/bridge-stp}(hj)% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubh helper
entirely for the }(hj% hhhNhNubj9 )}(h``user``h]huser}(hj;% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubh and }(hj% hhhNhNubj9 )}(h
``kernel``h]hkernel}(hjM% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubh modes.}(hj% hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj$ hhubj( )}(hhh](j- )}(h**BR_STP_MODE_AUTO**
Default. The kernel invokes the ``/sbin/bridge-stp`` helper to hand
the bridge to a userspace STP daemon (e.g. mstpd). Only attempted in
the initial network namespace; in other namespaces this falls back to
kernel STP.
h](j3 )}(h**BR_STP_MODE_AUTO**h]j )}(hjn% h]hBR_STP_MODE_AUTO}(hjp% hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjl% ubah}(h]h ]h"]h$]h&]uh1j2 h_/var/lib/git/docbuild/linux/Documentation/networking/bridge:158: ./include/uapi/linux/if_link.hhM/hjh% ubjO )}(hhh]h)}(hDefault. The kernel invokes the ``/sbin/bridge-stp`` helper to hand
the bridge to a userspace STP daemon (e.g. mstpd). Only attempted in
the initial network namespace; in other namespaces this falls back to
kernel STP.h](h Default. The kernel invokes the }(hj% hhhNhNubj9 )}(h``/sbin/bridge-stp``h]h/sbin/bridge-stp}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubh helper to hand
the bridge to a userspace STP daemon (e.g. mstpd). Only attempted in
the initial network namespace; in other namespaces this falls back to
kernel STP.}(hj% hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/networking/bridge:158: ./include/uapi/linux/if_link.hhM,hj% ubah}(h]h ]h"]h$]h&]uh1jN hjh% ubeh}(h]h ]h"]h$]h&]uh1j, hj% hM/hje% ubj- )}(h**BR_STP_MODE_USER**
Directly enable userspace STP (``BR_USER_STP``) without invoking the
``/sbin/bridge-stp`` helper. Works in any network namespace.
Userspace is responsible for ensuring an STP daemon manages the
bridge.
h](j3 )}(h**BR_STP_MODE_USER**h]j )}(hj% h]hBR_STP_MODE_USER}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj% ubah}(h]h ]h"]h$]h&]uh1j2 h_/var/lib/git/docbuild/linux/Documentation/networking/bridge:158: ./include/uapi/linux/if_link.hhM5hj% ubjO )}(hhh]h)}(hDirectly enable userspace STP (``BR_USER_STP``) without invoking the
``/sbin/bridge-stp`` helper. Works in any network namespace.
Userspace is responsible for ensuring an STP daemon manages the
bridge.h](hDirectly enable userspace STP (}(hj% hhhNhNubj9 )}(h``BR_USER_STP``h]hBR_USER_STP}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubh) without invoking the
}(hj% hhhNhNubj9 )}(h``/sbin/bridge-stp``h]h/sbin/bridge-stp}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1j8 hj% ubhp helper. Works in any network namespace.
Userspace is responsible for ensuring an STP daemon manages the
bridge.}(hj% hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/networking/bridge:158: ./include/uapi/linux/if_link.hhM2hj% ubah}(h]h ]h"]h$]h&]uh1jN hj% ubeh}(h]h ]h"]h$]h&]uh1j, hj% hM5hje% ubj- )}(hc**BR_STP_MODE_KERNEL**
Directly enable kernel STP (``BR_KERNEL_STP``) without invoking the
helper.
h](j3 )}(h**BR_STP_MODE_KERNEL**h]j )}(hj&