ip link set ${netdev} name ${pdev}
ip link set ${tdev} name ${bridge}
- setup_bridge_port ${pdev}
+ setup_physical_bridge_port ${pdev}
# Restore slaves
if [ -n "${slaves}" ]; then
case "$command" in
online)
- setup_bridge_port "$dev"
+ setup_virtual_bridge_port "$dev"
add_to_bridge "$bridge" "$dev"
;;
;;
add)
- setup_bridge_port "$dev"
+ setup_virtual_bridge_port "$dev"
add_to_bridge "$bridge" "$dev"
;;
esac
"online")
if [ "$bridge" != "-" ]
then
- setup_bridge_port "$vif"
+ setup_virtual_bridge_port "$vif"
add_to_bridge "$bridge" "$vif"
else
# Just let the normal udev rules for interfaces handle it.
}
# configure interfaces which act as pure bridge ports:
-setup_bridge_port() {
+_setup_bridge_port() {
local dev="$1"
+ local virtual="$2"
# take interface down ...
ip link set ${dev} down
- # Initialise a dummy MAC address. We choose the numerically
- # largest non-broadcast address to prevent the address getting
- # stolen by an Ethernet bridge for STP purposes.
- # (FE:FF:FF:FF:FF:FF)
- ip link set ${dev} address fe:ff:ff:ff:ff:ff || true
+ if [ $virtual -ne 0 ] ; then
+ # Initialise a dummy MAC address. We choose the numerically
+ # largest non-broadcast address to prevent the address getting
+ # stolen by an Ethernet bridge for STP purposes.
+ # (FE:FF:FF:FF:FF:FF)
+ ip link set ${dev} address fe:ff:ff:ff:ff:ff || true
+ fi
# ... and configure it
ip addr flush ${dev}
}
+setup_physical_bridge_port() {
+ _setup_bridge_port $1 0
+}
+setup_virtual_bridge_port() {
+ _setup_bridge_port $1 1
+}
+
# Usage: create_bridge bridge
create_bridge () {
local bridge=$1