blob: 81975b3275c7e60b229728ec500279b7ffca72d2 [file] [log] [blame] [raw]
#!/bin/bash
#
# Add virtual network interfaces (veth's) in a container to a bridge on CT0
CONFIGFILE=@PKGCONFDIR@/conf/$VEID.conf
. $CONFIGFILE
NETIFLIST=$(echo $NETIF | sed 's/;/\n/g')
if [ ! -n "$NETIFLIST" ]; then
echo "According to $CONFIGFILE, CT$VEID has no veth interface configured."
exit 1
fi
IFACES=$(echo $NETIFLIST | sed 's/;/\n/g')
for tmp in $IFACES; do
CTIFNAME=
CTBRIDGE=
VZHOSTIF=
NETIF_OPTIONS=$(echo $tmp | sed 's/,/\n/g')
for str in $NETIF_OPTIONS; do
# getting 'ifname' parameter value
if [[ "$str" =~ "^ifname=" ]]; then
# remove the parameter name from the string (along with '=')
CTIFNAME=${str#*=}
fi
if [[ "$str" =~ "^bridge=" ]]; then
# remove the parameter name from the string (along with '=')
CTBRIDGE=${str#*=}
fi
# getting 'host_ifname' parameter value
if [[ "$str" =~ "^host_ifname=" ]]; then
# remove the parameter name from the string (along with '=')
VZHOSTIF=${str#*=}
fi
done
if [ "$VZHOSTIF" != "$3" ]; then
continue
fi
if [ ! -n "$CTBRIDGE" ]; then
CTBRIDGE=vmbr0
fi
echo "Adding interface $VZHOSTIF to bridge $CTBRIDGE on CT0 for CT$VEID"
/sbin/ifconfig $VZHOSTIF 0
echo 1 > /proc/sys/net/ipv4/conf/$VZHOSTIF/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/$VZHOSTIF/forwarding
/usr/sbin/brctl addif $CTBRIDGE $VZHOSTIF
break
done
exit 0