mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
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>
55 lines
1.0 KiB
Bash
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
|