NAME brctl - ethernet bridge administration

SYNOPSIS brctl [command]

DESCRIPTION brctl is used to set up, maintain, and inspect the ethernet bridge con- figuration in the linux kernel.

An ethernet bridge is a device commonly used to connect different net- works of ethernets together, so that these ethernets will appear as one ethernet to the participants.

Each of the ethernets being connected corresponds to one physical interface in the bridge. These individual ethernets are bundled into one bigger ( logical ) ethernet, this bigger ethernet corresponds to the bridge network interface.

INSTANCES The command brctl addbr <name> creates a new instance of the ethernet bridge. The network interface corresponding to the bridge will be called <name>.

The command brctl delbr <name> deletes the instance <name> of the eth- ernet bridge. The network interface corresponding to the bridge must be down before it can be deleted!

The command brctl show shows all current instances of the ethernet bridge.

PORTS Each bridge has a number of ports attached to it. Network traffic com- ing in on any of these ports will be forwarded to the other ports transparently, so that the bridge is invisible to the rest of the net- work (i.e. it will not show up in traceroute(8) ).

The command brctl addif <brname> <ifname> will make the interface <ifname> a port of the bridge <brname>. This means that all frames received on <ifname> will be processed as if destined for the bridge. Also, when sending frames on <brname>, <ifname> will be considered as a potential output interface.

The command brctl delif <brname> <ifname> will detach the interface <ifname> from the bridge <brname>.

The command brctl show <brname> will show some information on the bridge and its attached ports.

AGEING The bridge keeps track of ethernet addresses seen on each port. When it needs to forward a frame, and it happens to know on which port the des- tination ethernet address (specified in the frame) is located, it can cheat by forwarding the frame to that port only, thus saving a lot of redundant copies and transmits.

However, the ethernet address location data is not static data. Machines can move to other ports, network cards can be replaced (which changes the machines ethernet address), etc.

brctl showmacs <brname> shows a list of learned MAC addresses for this bridge.

brctl setageingtime <brname> <time> sets the ethernet (MAC) address ageing time, in seconds. After <time> seconds of not having seen a frame coming from a certain address, the bridge will time out (delete) that address from the Forwarding DataBase (fdb).

brctl setgcint <brname> <time> sets the garbage collection interval for the bridge <brname> to <time> seconds. This means that the bridge will check the forwarding database for timed out entries every <time> sec- onds.

SPANNING TREE PROTOCOL Multiple ethernet bridges can work together to create even larger net- works of ethernets using the IEEE 802.1d spanning tree protocol. This protocol is used for finding the shortest path between two ethernets, and for eliminating loops from the topology. As this protocol is a standard, linux bridges will interwork properly with other third party bridge products. Bridges communicate with eachother by sending and receiving BPDUs (Bridge Protocol Data Units). These BPDUs can be recog- nised by an ethernet destination address of 01:80:c2:00:00:00.

The spanning tree protocol can also be turned off (for those situations where it just doesnt make sense, for example when this linux box is the only bridge on the LAN, or when you know that there are no loops in the topology.)

brctl(8) can be used for configuring certain spanning tree protocol parameters. For an explanation of these parameters, see the IEEE 802.1d specification (or send me an email). The default values should be just fine. If you dont know what these parameters mean, you probably wont feel the desire to tweak them.

brctl stp <bridge> <state> controls this bridge instances participa- tion in the spanning tree protocol. If <state> is "on" or "yes" the STP will be turned on, otherwise it will be turned off. When turned off, the bridge will not send or receive BPDUs, and will thus not partici- pate in the spanning tree protocol. If your bridge isn t the only bridge on the LAN, or if there are loops in the LANs topology, DO NOT turn this option off. If you turn this option off, please know what you are doing.

brctl setbridgeprio <bridge> <priority> sets the bridges priority to <priority>. The priority value is an unsigned 16-bit quantity (a number between 0 and 65535), and has no dimension. Lower priority values are better. The bridge with the lowest priority will be elected root bridge.

brctl setfd <bridge> <time> sets the bridge s bridge forward delay to <time> seconds.

brctl sethello <bridge> <time> sets the bridge s bridge hello time to <time> seconds.

brctl setmaxage <bridge> <time> sets the bridges maximum message age to <time> seconds.

brctl setpathcost <bridge> <port> <cost> sets the port cost of the port <port> to <cost>. This is a dimensionless metric.

brctl setportprio <bridge> <port> <priority> sets the port <port>s priority to <priority>. The priority value is an unsigned 8-bit quan- tity (a number between 0 and 255), and has no dimension. This metric is used in the designated port and root port selection algorithms.

brctl sethashel <bridge> <int> sets the hash elasticity to <int>.

brctl sethashmax <bridge> <int> sets hash max to <int>.

brctl setmclmc <bridge> <int> sets the multicast last member count to <int>.

brctl setmcrouter <bridge> <int> sets multicast router to <int>.

brctl setmcsnoop <bridge> <int> sets multicast snooping to <int>.

brctl setmcsqc <bridge> <int> sets the multicast startup query count to <int>.

brctl setmclmi <bridge> <time> sets the multicast last member inter- val to <time> seconds.

brctl setmcmi <bridge> <time> sets the multicast membership interval to <time> seconds.

brctl setmcqpi <bridge> <time> sets the multicast querier interval to <time> seconds.

brctl setmcqi <bridge> <time> sets the multicast query interval to <time> seconds.

brctl setmcqri <bridge> <time> sets the multicast query response interval to <time> seconds.

brctl setmcqri <bridge> <time> sets the multicast startup query inter- val to <time> seconds.

brctl setportmcrouter <bridge> <port> <int> sets port <port> for multi- cast router <int>.

NOTES brctl(8) replaces the older brcfg tool.

SEE ALSO ipchains(8), iptables(8)

AUTHOR Lennert Buytenhek <>

November 7, 2001 BRCTL(8)