From: Nils Schneider Date: Tue, 10 Feb 2015 02:00:20 +0000 (+0100) Subject: tayga: allow more flexible routing X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=refs%2Fpull%2F887%2Fhead;p=feed%2Fpackages.git tayga: allow more flexible routing In some scenarios (e.g. 464xlat) it is desirable to not route the mapped prefix to tayga's interface. This adds an option 'noroutes' which, when set to 1, will prevent such routes from being added. Signed-off-by: Nils Schneider --- diff --git a/ipv6/tayga/files/tayga-proto.sh b/ipv6/tayga/files/tayga-proto.sh index 6bec0b60d3..b92c2a6617 100755 --- a/ipv6/tayga/files/tayga-proto.sh +++ b/ipv6/tayga/files/tayga-proto.sh @@ -14,8 +14,8 @@ proto_tayga_setup() { local iface="$2" local link="tayga-$cfg" - local ipv4_addr ipv6_addr prefix dynamic_pool ipaddr ip6addr - json_get_vars ipv4_addr ipv6_addr prefix dynamic_pool ipaddr ip6addr + local ipv4_addr ipv6_addr prefix dynamic_pool ipaddr ip6addr noroutes + json_get_vars ipv4_addr ipv6_addr prefix dynamic_pool ipaddr ip6addr noroutes [ -z "$ipv4_addr" -o -z "$prefix" ] && { proto_notify_error "$cfg" "REQUIRED_PARAMETERS_MISSING" proto_block_restart "$cfg" @@ -49,16 +49,19 @@ proto_tayga_setup() { [ -n "$ipaddr" ] && proto_add_ipv4_address "$ipaddr" "255.255.255.255" [ -n "$ip6addr" ] && proto_add_ipv6_address "$ip6addr" "128" - [ -n "$ipv6_addr" ] && proto_add_ipv6_route "$ipv6_addr" "128" - [ -n "$dynamic_pool" ] && { - local pool="${dynamic_pool%%/*}" - local mask="${dynamic_pool##*/}" - proto_add_ipv4_route "$pool" "$mask" - } - [ -n "$prefix" ] && { - local prefix6="${prefix%%/*}" - local mask6="${prefix##*/}" - proto_add_ipv6_route "$prefix6" "$mask6" + + [ "$noroutes" != 1 ] && { + [ -n "$ipv6_addr" ] && proto_add_ipv6_route "$ipv6_addr" "128" + [ -n "$dynamic_pool" ] && { + local pool="${dynamic_pool%%/*}" + local mask="${dynamic_pool##*/}" + proto_add_ipv4_route "$pool" "$mask" + } + [ -n "$prefix" ] && { + local prefix6="${prefix%%/*}" + local mask6="${prefix##*/}" + proto_add_ipv6_route "$prefix6" "$mask6" + } } proto_send_update "$cfg" @@ -85,6 +88,7 @@ proto_tayga_init_config() { proto_config_add_string "dynamic_pool" proto_config_add_string "ipaddr" proto_config_add_string "ip6addr:ip6addr" + proto_config_add_boolean "noroutes" } [ -n "$INCLUDE_ONLY" ] || {