diff options
author | Hans Dedecker <dedeckeh@gmail.com> | 2018-06-04 17:00:32 +0200 |
---|---|---|
committer | Hans Dedecker <dedeckeh@gmail.com> | 2018-06-19 13:25:18 +0200 |
commit | 2369c89b7514501a7381a7594f367f85cd3f47e2 (patch) | |
tree | 732178b2c98272d171e8cf9e7ab5ac46e9fe0a6f | |
parent | a21210fbb7adf1f7bf1c915177fa7f7fd4a29807 (diff) | |
download | mtk-20170518-2369c89b7514501a7381a7594f367f85cd3f47e2.zip mtk-20170518-2369c89b7514501a7381a7594f367f85cd3f47e2.tar.gz mtk-20170518-2369c89b7514501a7381a7594f367f85cd3f47e2.tar.bz2 |
map: make tunnel encapsulation limit support configurable (FS#1501)
Be compatible with ISPs which don't support the destination option header containing
the tunnel encapsulation limit as reported in FS#1501.
Setting the uci parameter encaplimit to ignore; allows to disable the insertion
of the destination option header in the map-e packets.
Otherwise the tunnel encapsulation limit value can be set to a value from 0 till 255
by setting the encaplimit uci parameter accordingly.
If no encaplimit value is specified the default value is 4 as before.
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
-rw-r--r-- | package/network/ipv6/map/Makefile | 2 | ||||
-rwxr-xr-x | package/network/ipv6/map/files/map.sh | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/package/network/ipv6/map/Makefile b/package/network/ipv6/map/Makefile index 7796704..cfb7c4a 100644 --- a/package/network/ipv6/map/Makefile +++ b/package/network/ipv6/map/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=map PKG_VERSION:=4 -PKG_RELEASE:=10 +PKG_RELEASE:=11 PKG_LICENSE:=GPL-2.0 include $(INCLUDE_DIR)/package.mk diff --git a/package/network/ipv6/map/files/map.sh b/package/network/ipv6/map/files/map.sh index 4205018..5f4add3 100755 --- a/package/network/ipv6/map/files/map.sh +++ b/package/network/ipv6/map/files/map.sh @@ -28,9 +28,9 @@ proto_map_setup() { # uncomment for legacy MAP0 mode #export LEGACY=1 - local type mtu ttl tunlink zone + local type mtu ttl tunlink zone encaplimit local rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset - json_get_vars type mtu ttl tunlink zone + json_get_vars type mtu ttl tunlink zone encaplimit json_get_vars rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset [ -z "$zone" ] && zone="wan" @@ -84,9 +84,9 @@ proto_map_setup() { json_add_string local $(eval "echo \$RULE_${k}_IPV6ADDR") json_add_string remote $(eval "echo \$RULE_${k}_BR") json_add_string link $(eval "echo \$RULE_${k}_PD6IFACE") - - if [ "$type" = "map-e" ]; then - json_add_object "data" + json_add_object "data" + json_add_string encaplimit "${encaplimit:-4}" + if [ "$type" = "map-e" ]; then json_add_array "fmrs" for i in $(seq $RULE_COUNT); do [ "$(eval "echo \$RULE_${i}_FMR")" != 1 ] && continue @@ -98,8 +98,9 @@ proto_map_setup() { json_close_object done json_close_array - json_close_object - fi + fi + json_close_object + proto_close_tunnel elif [ "$type" = "map-t" -a -f "/proc/net/nat46/control" ]; then @@ -229,6 +230,7 @@ proto_map_init_config() { proto_config_add_int "mtu" proto_config_add_int "ttl" proto_config_add_string "zone" + proto_config_add_string "encaplimit" } [ -n "$INCLUDE_ONLY" ] || { |