]> git.ipfire.org Git - people/stevee/network.git/commitdiff
Use "ip link set X master" where ever we can
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 6 Aug 2017 12:18:20 +0000 (12:18 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 6 Aug 2017 12:18:20 +0000 (12:18 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/functions/functions.batman-adv
src/functions/functions.bonding
src/functions/functions.bridge
src/functions/functions.device

index 21a079afef49b4278e8ff6aaa1127250eac77e59..23e88578a73c55c33818ad870167fdef9ffc72d5 100644 (file)
@@ -58,7 +58,7 @@ batman_adv_attach() {
        # 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() {
index f81a8371744457208ee0e945d4f358529bde8a98..3375bdc7ab71739382c7e170e865151dd910971e 100644 (file)
@@ -143,16 +143,12 @@ bonding_enslave_device() {
        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}
 }
 
index de1ec226b6e8a465119564eb792e45f6e393e140..5b817fbb355ad1639befe0bfb907c4cc769a767c 100644 (file)
@@ -113,16 +113,13 @@ bridge_attach_device() {
        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() {
index 6f79a7f689e3760113305b0336340f9382923153..897f812d7d7bb8a827bc19be43e3663bef434d58 100644 (file)
@@ -580,6 +580,33 @@ device_set_name() {
        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 ]