# Cannot proceed if we could not find a zone
if [ -z "${ZONE}" ]; then
+ logger "Could not find a bridged zone for ${INTERFACE}"
exit 0
fi
# The name of the virtual bridge
BRIDGE="$(get_value "${ZONE}_DEV")"
+STP="$(get_value "${ZONE}_STP")"
+STP_PRIORITY="$(get_value "${ZONE}_STP_PRIORITY")"
case "${MODE}" in
bridge)
+ # We need to check if $STP_PRIORITY has a valid value if not set it
+ if [ -z "${STP_PRIORITY}" ]; then
+ STP_PRIORITY=16384
+ fi
+
ADDRESS="$(get_value "${ZONE}_MACADDR")"
[ -n "${ADDRESS}" ] || ADDRESS="$(random_mac_address)"
# We need to create the bridge if it doesn't exist, yet
if [ ! -d "/sys/class/net/${BRIDGE}" ]; then
- ip link add "${BRIDGE}" address "${ADDRESS}" type bridge
+ ip link add "${BRIDGE}" address "${ADDRESS}" type bridge \
+ $([ "${STP}" = "on" ] && echo "stp_state 1 priority ${STP_PRIORITY}" )
#ip link set "${BRIDGE}" up
fi
+ # Try setting wireless interfaces into master mode
+ if [ -d "/sys/class/net/${INTERFACE}/phy80211" ]; then
+ iw dev "${INTERFACE}" set type __ap
+ fi
+
# Attach the physical device
+ logger "Attach ${INTERFACE} to ${BRIDGE}"
ip link set dev "${INTERFACE}" master "${BRIDGE}"
ip link set dev "${INTERFACE}" up
;;