map: add a legacymap option
The legacy map version based on the IPv6 Interface Identifier in draft-ietf-softwire-map-03 was typically used by uncommenting the LEGACY variable in the map.sh file, which is not ideal. A proper configuration option is needed instead. The IPv6 Interface Identifier format described in the draft was eventually changed in RFC7597, but is still used by some major ISPs, including in Japan. Signed-off-by: Remi NGUYEN VAN <remi.nguyenvan+openwrt@gmail.com> Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
This commit is contained in:
parent
763ce13b0b
commit
1e696c6ced
@ -8,7 +8,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=map
|
PKG_NAME:=map
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=6
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
@ -25,12 +25,9 @@ proto_map_setup() {
|
|||||||
local iface="$2"
|
local iface="$2"
|
||||||
local link="map-$cfg"
|
local link="map-$cfg"
|
||||||
|
|
||||||
# uncomment for legacy MAP0 mode
|
local type legacymap mtu ttl tunlink zone encaplimit
|
||||||
#export LEGACY=1
|
|
||||||
|
|
||||||
local type mtu ttl tunlink zone encaplimit
|
|
||||||
local rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset
|
local rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset
|
||||||
json_get_vars type mtu ttl tunlink zone encaplimit
|
json_get_vars type legacymap mtu ttl tunlink zone encaplimit
|
||||||
json_get_vars rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset
|
json_get_vars rule ipaddr ip4prefixlen ip6prefix ip6prefixlen peeraddr ealen psidlen psid offset
|
||||||
|
|
||||||
[ "$zone" = "-" ] && zone=""
|
[ "$zone" = "-" ] && zone=""
|
||||||
@ -56,7 +53,7 @@ proto_map_setup() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "rule=$rule" > /tmp/map-$cfg.rules
|
echo "rule=$rule" > /tmp/map-$cfg.rules
|
||||||
RULE_DATA=$(mapcalc ${tunlink:-\*} $rule)
|
RULE_DATA=$(LEGACY="$legacymap" mapcalc ${tunlink:-\*} $rule)
|
||||||
if [ "$?" != 0 ]; then
|
if [ "$?" != 0 ]; then
|
||||||
proto_notify_error "$cfg" "INVALID_MAP_RULE"
|
proto_notify_error "$cfg" "INVALID_MAP_RULE"
|
||||||
proto_block_restart "$cfg"
|
proto_block_restart "$cfg"
|
||||||
@ -106,7 +103,7 @@ proto_map_setup() {
|
|||||||
elif [ "$type" = "map-t" -a -f "/proc/net/nat46/control" ]; then
|
elif [ "$type" = "map-t" -a -f "/proc/net/nat46/control" ]; then
|
||||||
proto_init_update "$link" 1
|
proto_init_update "$link" 1
|
||||||
local style="MAP"
|
local style="MAP"
|
||||||
[ "$LEGACY" = 1 ] && style="MAP0"
|
[ "$legacymap" = 1 ] && style="MAP0"
|
||||||
|
|
||||||
echo add $link > /proc/net/nat46/control
|
echo add $link > /proc/net/nat46/control
|
||||||
local cfgstr="local.style $style local.v4 $(eval "echo \$RULE_${k}_IPV4PREFIX")/$(eval "echo \$RULE_${k}_PREFIX4LEN")"
|
local cfgstr="local.style $style local.v4 $(eval "echo \$RULE_${k}_IPV4PREFIX")/$(eval "echo \$RULE_${k}_PREFIX4LEN")"
|
||||||
@ -229,6 +226,7 @@ proto_map_init_config() {
|
|||||||
proto_config_add_int "psidlen"
|
proto_config_add_int "psidlen"
|
||||||
proto_config_add_int "psid"
|
proto_config_add_int "psid"
|
||||||
proto_config_add_int "offset"
|
proto_config_add_int "offset"
|
||||||
|
proto_config_add_boolean "legacymap"
|
||||||
|
|
||||||
proto_config_add_string "tunlink"
|
proto_config_add_string "tunlink"
|
||||||
proto_config_add_int "mtu"
|
proto_config_add_int "mtu"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user