#!/bin/bash

[ -e /etc/sysconfig/rx3-net ] && . /etc/sysconfig/rx3-net 


   id=$1
table=$2
shift
shift
  cmd="$(printf " %q" "$@")"

   prefix=10.2

  eth_dev="v-eth${id}"
 peer_dev="v-peer${id}"
peer_addr="${prefix}.${id}.1"
 eth_addr="${prefix}.${id}.254"
 eth_mask="255.255.255.0"
peer_mask="${eth_mask}"
  ns_name="darkstar${id}"

export PATH=$PATH:/usr/local/sbin:/usr/local/bin



# Create Net-NS

ip netns del ${ns_name} 2>/dev/null
sleep 3

ip netns add ${ns_name}



# Create v-eth / v-peer

ip link del ${eth_dev} 2>/dev/null
ip link add ${eth_dev} type veth peer name ${peer_dev}



# Add v-peer to Net-NS

ip link set ${peer_dev} netns ${ns_name}



# Configure v-eth

#ip link set ${eth_dev}  up
#ip link set ${peer_dev} up
ifconfig ${eth_dev} ${eth_addr} netmask ${eth_mask} up



# Configure lo, v-peer & default route

ip netns exec ${ns_name} ip link set lo up
ip netns exec ${ns_name} ifconfig ${peer_dev} ${peer_addr} netmask ${peer_mask} up
ip netns exec ${ns_name} route add default gw ${eth_addr} dev ${peer_dev}



# Add rule to table

ip rule del from ${peer_addr} 2>/dev/null
ip rule add from ${peer_addr} table ${table}



# Add new route in vpn tables

route="$(ip route list table main | grep -e ${eth_dev} | grep -e ${eth_addr} | sed 's/ proto.*//')" 
for tab in ${TABLE_LIST} 
do
  ip route del ${route} table ${tab} 2>/dev/null
  ip route add ${route} table ${tab}
done





# Run the cmd

ip netns exec ${ns_name} "$@"
