# Make sure, batman is running.
batman_adv_start
- __device_set_file "${port}" "batman_adv/mesh_iface" "${device}"
+ device_set_master "${port}" "${device}"
}
batman_adv_detach() {
fi
# Add it
- cmd ip link set "${slave}" master "${device}"
- local ret=$?
-
- if [ ${ret} -eq ${EXIT_OK} ]; then
- log DEBUG "Successfully enslaved '${slave}' to '${device}'"
- else
+ if ! device_set_master "${slave}" "${device}"; then
log ERROR "Could not enslave '${slave}' to '${device}'"
return ${EXIT_ERROR}
fi
+ log DEBUG "Successfully enslaved '${slave}' to '${device}'"
return ${EXIT_OK}
}
device_adjust_mtu "${device}" "${bridge}"
# Actually connect bridge and device.
- cmd ip link set ${device} master ${bridge}
- local ret=$?
-
- if [ ${ret} -eq ${EXIT_OK} ]; then
- log DEBUG "bridge: device '${device}' has been attached to bridge '${bridge}'"
- else
- log ERROR "bridge: could not attach device '${device}' to bridge '${bridge}': ${ret}"
+ if ! device_set_master "${device}" "${bridge}"; then
+ log ERROR "Could not attach ${device} to bridge ${bridge}"
+ return ${EXIT_ERROR}
fi
- return ${ret}
+ log DEBUG "${device} has been attached to bridge ${bridge}"
+ return ${EXIT_OK}
}
bridge_detach_device() {
fi
}
+device_set_master() {
+ local device="${1}"
+ assert isset device
+
+ local master="${2}"
+ assert isset master
+
+ if ! cmd ip link set "${device}" master "${master}"; then
+ log ERROR "Could not set master ${master} for device ${device}"
+ return ${EXIT_ERROR}
+ fi
+
+ return ${EXIT_OK}
+}
+
+device_remove_master() {
+ local device="${1}"
+ assert isset device
+
+ if ! cmd ip link set "${device}" nomaster; then
+ log ERROR "Could not remove master for device ${device}"
+ return ${EXIT_ERROR}
+ fi
+
+ return ${EXIT_OK}
+}
+
# Set device up
device_set_up() {
assert [ $# -eq 1 ]