#!/bin/bash

ue_id="$1"           # UE ID
pdn_id="$2"          # PDN unique id (start from 0)
ifname="$3"          # Interface name
ipv4_addr="$4"       # IPv4 address

shift; shift; shift; shift; shift; shift; shift; shift; shift;
while [ "$1" != "" ] ; do
    case "$1" in
    --mtu)
        mtu="$2"
        shift
        ;;
    --cid)
        true
        ;;
    *)
        echo "Bad parameter: $1" >&2
        exit 1
        ;;
    esac
    shift
done

if [ "$pdn_id" != "0" ] ; then
    echo "We should have only PDN 0, exiting..."
    exit 1
fi

echo "Configure $ue_id on pdn $pdn_id, tun=$ifname, ip=$ipv4_addr"

echo '1' > /proc/sys/net/ipv6/conf/$ifname/disable_ipv6

ip l set dev $ifname up
if [ "$ipv4_addr" != "" ] ; then
    ip a add dev $ifname $ipv4_addr/24
    ip r add default via $ipv4_addr dev $ifname src $ipv4_addr metric 1
    if [ "$mtu" != "" ] ; then
        ip l set dev $ifname mtu $mtu
    fi
fi

if [ "$ipv4_addr" != "" -a "$ipv6_local_addr" != "" ] ; then
    echo "MAC_ADDR="$(ip link show dev $ifname | grep -oP "ether \K[\d:a-f]+")
fi
