#!/bin/sh

DEFIND_RULE_TABLE_PRIO_START=33767
#table id range from 1000 to 1500
MAX_TABLE_COUNT=1500

[ -z "$1" ] && {
	echo -e "usage:\n\t$0 table_name"
	return 1;
}

local table_name="$1"

rt_table_id=`json -f /var/pptp_rt_id get policy_rt.table_map.$table_name`
if [ -z $rt_table_id ]; then
	lock "/var/lock/pptp_route_table_id"
	rt_table_id=`json -f /var/pptp_rt_id get policy_rt.index_ptr_no_fpp`
	[ "$rt_table_id" -gt "$MAX_TABLE_COUNT" ] && {
		return 1
		lock -u "/var/lock/pptp_route_table_id"
	}
	json -f /var/pptp_rt_id set policy_rt index_ptr_no_fpp=`expr $rt_table_id + 1`
	json -f /var/pptp_rt_id set policy_rt.table_map $table_name=$rt_table_id
	lock -u "/var/lock/pptp_route_table_id"
	/usr/sbin/ip rule add prio `expr $DEFIND_RULE_TABLE_PRIO_START + $rt_table_id` fwmark $rt_table_id table $rt_table_id
	/usr/sbin/ip -6 rule add prio `expr $DEFIND_RULE_TABLE_PRIO_START + $rt_table_id` fwmark $rt_table_id table $rt_table_id
fi

echo $rt_table_id
return 0
