mirror of
https://github.com/vdsm/virtual-dsm.git
synced 2025-10-12 05:34:53 +08:00
feat: Network mode detection (#1036)
This commit is contained in:
parent
fefe1af9e6
commit
f18663d840
@ -393,11 +393,30 @@ getInfo() {
|
||||
error "$ADD_ERR -e \"VM_NET_DEV=NAME\" to specify another interface name." && exit 26
|
||||
fi
|
||||
|
||||
NIC=$(ethtool -i "$VM_NET_DEV" | grep -m 1 -i 'driver:' | awk '{print $(2)}')
|
||||
local result nic bus
|
||||
result=$(ethtool -i "$VM_NET_DEV")
|
||||
nic=$(grep -m 1 -i 'driver:' <<< "$result" | awk '{print $(2)}')
|
||||
bus=$(grep -m 1 -i 'bus-info:' <<< "$result" | awk '{print $(2)}')
|
||||
|
||||
if [[ "${bus,,}" != "" && "${bus,,}" != "n/a" ]]; then
|
||||
[[ "$DEBUG" == [Yy1]* ]] && info "Detected BUS: $bus"
|
||||
error "This container does not support host mode networking!"
|
||||
exit 29
|
||||
fi
|
||||
|
||||
if [[ "$DHCP" == [Yy1]* ]]; then
|
||||
|
||||
if [[ "${nic,,}" == "ipvlan" ]]; then
|
||||
error "This container does not support IPVLAN networking when DHCP=Y."
|
||||
exit 29
|
||||
fi
|
||||
|
||||
if [[ "${nic,,}" != "macvlan" ]]; then
|
||||
[[ "$DEBUG" == [Yy1]* ]] && info "Detected NIC: $nic"
|
||||
error "The container needs to be in a MACVLAN network when DHCP=Y."
|
||||
exit 29
|
||||
fi
|
||||
|
||||
if [[ "${NIC,,}" != "veth" && "${NIC,,}" != "macvlan" ]]; then
|
||||
[[ "$DEBUG" == [Yy1]* ]] && info "Detected NIC: $NIC"
|
||||
error "This container does not support host mode networking!" && exit 29
|
||||
fi
|
||||
|
||||
BASE_IP="${VM_NET_IP%.*}."
|
||||
@ -496,10 +515,6 @@ if [[ "$DHCP" == [Yy1]* ]]; then
|
||||
|
||||
checkOS
|
||||
|
||||
if [[ "$IP" == "172."* ]]; then
|
||||
warn "container IP starts with 172.* which is often a sign that you are not on a macvlan network (required for DHCP)!"
|
||||
fi
|
||||
|
||||
# Configure for macvtap interface
|
||||
configureDHCP || exit 20
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user