Files
xen/tools/hotplug/Linux/vif2
T
Steven Haigh 0e7c69bd3c tools/hotplug: Use ip on systems where brctl is not available
Newer distros like CentOS 8 do not have brctl available. As such, we
can't use it to configure networking anymore.

This patch will fall back to 'ip' or 'bridge' commands if brctl is not
available in the working PATH.

This would be a likely backport candidate to any version expected to be
built on CentOS 8 etc.

Signed-off-by: Steven Haigh <netwiz@crc.id.au>
Acked-by: Wei Liu <wl@xen.org>
2019-12-18 11:54:33 +00:00

55 lines
1.0 KiB
Bash

#!/bin/bash
dir=$(dirname "$0")
. "$dir/xen-hotplug-common.sh"
. "$dir/xen-network-common.sh"
bridge=$(xenstore_read_default "$XENBUS_PATH/bridge" "$bridge")
if [ -z "$bridge" ]
then
if which brctl >&/dev/null; then
nr_bridges=$(($(brctl show | cut -f 1 | grep -v "^$" | wc -l) - 1))
else
nr_bridges=$(bridge link | wc -l)
fi
if [ "$nr_bridges" != 1 ]
then
fatal "no bridge specified, and don't know which one to use ($nr_bridges found)"
fi
if which brctl >&/dev/null; then
bridge=$(brctl show | cut -d "
" -f 2 | cut -f 1)
else
bridge=$(bridge link | cut -d" " -f6)
fi
fi
command="$1"
shift
case "$command" in
"online")
if [ "$bridge" != "-" ]
then
setup_virtual_bridge_port "$vif"
add_to_bridge "$bridge" "$vif"
else
# Just let the normal udev rules for interfaces handle it.
true
fi
success
;;
"add")
success
;;
"remove")
;;
*)
echo "Unknown command: $command"
echo 'Valid commands are: add, remove, online'
exit 1
esac