#!/bin/bash
#
# Add virtual network interfaces (veth's) in a container to a bridge on CT0

CONFIGFILE=/etc/vz/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
