refactor(ish): move veth creation into one place

This simplifies the code, but means we do end up invoking ethtool on
the weave container's ethwe, which isn't necessary but harmless.
This commit is contained in:
Matthias Radestock committed 2014-11-27 11:11:29 +00:00
1 parent 29b3db6c05
commit 625df2e7d5
1 file changed
+7 -10
+7 -10
View File
@@ -198,7 +198,12 @@ with_container_netns () {
}
connect_container_to_bridge() {
if ip link set $LOCAL_IFNAME master $BRIDGE &&
if ! ip link add name $LOCAL_IFNAME mtu $MTU type veth peer name $GUEST_IFNAME mtu $MTU ; then
return 1
fi
if check_command_and_run ethtool -K $GUEST_IFNAME tx off >/dev/null &&
ip link set $LOCAL_IFNAME master $BRIDGE &&
ip link set $LOCAL_IFNAME up &&
ip link set $GUEST_IFNAME netns $NETNS ; then
ip netns exec $NETNS ip link set $GUEST_IFNAME name $CONTAINER_IFNAME
@@ -211,9 +216,6 @@ connect_container_to_bridge() {
}
launch() {
if ! ip link add name $LOCAL_IFNAME mtu $MTU type veth peer name $GUEST_IFNAME mtu $MTU ; then
return 1
fi
connect_container_to_bridge &&
check_command_and_run_anything ethtool ip netns exec $NETNS ethtool -K eth0 tx off >/dev/null &&
ip netns exec $NETNS ip link set $CONTAINER_IFNAME up
@@ -235,12 +237,7 @@ attach() {
return 0
fi
if ! ip link add name $LOCAL_IFNAME mtu $MTU type veth peer name $GUEST_IFNAME mtu $MTU ; then
return 1
fi
if ! check_command_and_run ethtool -K $GUEST_IFNAME tx off >/dev/null ||
! connect_container_to_bridge ||
if ! connect_container_to_bridge ||
! ip netns exec $NETNS ip addr add $1 dev $CONTAINER_IFNAME ||
! ip netns exec $NETNS ip link set $CONTAINER_IFNAME up ; then
return 1