odhcp6c: make ds-lite/map 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 for dynamic created ds-lite/map interfaces. Setting the uci parameter encaplimit_dslite/map to ignore; allows to disable the insertion of the destination option header for the dynamic created ds-lite/map interface. Otherwise the tunnel encapsulation limit value can be set to a value from 0 till 255 by setting the encaplimit_dslite/map uci parameter accordingly. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
parent
a3372953e9
commit
327c711da4
3 changed files with 9 additions and 3 deletions
|
@ -8,7 +8,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=odhcp6c
|
PKG_NAME:=odhcp6c
|
||||||
PKG_RELEASE:=11
|
PKG_RELEASE:=12
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
|
||||||
|
|
|
@ -170,6 +170,7 @@ setup_interface () {
|
||||||
json_add_string tunlink "$INTERFACE"
|
json_add_string tunlink "$INTERFACE"
|
||||||
[ -n "$ZONE_MAP" ] || ZONE_MAP=$ZONE
|
[ -n "$ZONE_MAP" ] || ZONE_MAP=$ZONE
|
||||||
[ -n "$ZONE_MAP" ] && json_add_string zone "$ZONE_MAP"
|
[ -n "$ZONE_MAP" ] && json_add_string zone "$ZONE_MAP"
|
||||||
|
[ -n "$ENCAPLIMIT_MAP" ] && json_add_string encaplimit "$ENCAPLIMIT_MAP"
|
||||||
[ -n "$IFACE_MAP_DELEGATE" ] && json_add_boolean delegate "$IFACE_MAP_DELEGATE"
|
[ -n "$IFACE_MAP_DELEGATE" ] && json_add_boolean delegate "$IFACE_MAP_DELEGATE"
|
||||||
json_close_object
|
json_close_object
|
||||||
ubus call network add_dynamic "$(json_dump)"
|
ubus call network add_dynamic "$(json_dump)"
|
||||||
|
@ -183,6 +184,7 @@ setup_interface () {
|
||||||
json_add_string tunlink "$INTERFACE"
|
json_add_string tunlink "$INTERFACE"
|
||||||
[ -n "$ZONE_DSLITE" ] || ZONE_DSLITE=$ZONE
|
[ -n "$ZONE_DSLITE" ] || ZONE_DSLITE=$ZONE
|
||||||
[ -n "$ZONE_DSLITE" ] && json_add_string zone "$ZONE_DSLITE"
|
[ -n "$ZONE_DSLITE" ] && json_add_string zone "$ZONE_DSLITE"
|
||||||
|
[ -n "$ENCAPLIMIT_DSLITE" ] && json_add_string encaplimit "$ENCAPLIMIT_DSLITE"
|
||||||
[ -n "$IFACE_DSLITE_DELEGATE" ] && json_add_boolean delegate "$IFACE_DSLITE_DELEGATE"
|
[ -n "$IFACE_DSLITE_DELEGATE" ] && json_add_boolean delegate "$IFACE_DSLITE_DELEGATE"
|
||||||
json_close_object
|
json_close_object
|
||||||
ubus call network add_dynamic "$(json_dump)"
|
ubus call network add_dynamic "$(json_dump)"
|
||||||
|
|
|
@ -19,8 +19,10 @@ proto_dhcpv6_init_config() {
|
||||||
proto_config_add_array 'ip6prefix:list(ip6addr)'
|
proto_config_add_array 'ip6prefix:list(ip6addr)'
|
||||||
proto_config_add_string iface_dslite
|
proto_config_add_string iface_dslite
|
||||||
proto_config_add_string zone_dslite
|
proto_config_add_string zone_dslite
|
||||||
|
proto_config_add_string encaplimit_dslite
|
||||||
proto_config_add_string iface_map
|
proto_config_add_string iface_map
|
||||||
proto_config_add_string zone_map
|
proto_config_add_string zone_map
|
||||||
|
proto_config_add_string encaplimit_map
|
||||||
proto_config_add_string iface_464xlat
|
proto_config_add_string iface_464xlat
|
||||||
proto_config_add_string zone_464xlat
|
proto_config_add_string zone_464xlat
|
||||||
proto_config_add_string zone
|
proto_config_add_string zone
|
||||||
|
@ -48,8 +50,8 @@ proto_dhcpv6_setup() {
|
||||||
local config="$1"
|
local config="$1"
|
||||||
local iface="$2"
|
local iface="$2"
|
||||||
|
|
||||||
local reqaddress reqprefix clientid reqopts defaultreqopts noslaaconly forceprefix extendprefix norelease ip6prefix ip6prefixes iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass sendopts delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter keep_ra_dnslifetime ra_holdoff
|
local reqaddress reqprefix clientid reqopts defaultreqopts noslaaconly forceprefix extendprefix norelease ip6prefix ip6prefixes iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass sendopts delegate zone_dslite zone_map zone_464xlat zone encaplimit_dslite encaplimit_map soltimeout fakeroutes sourcefilter keep_ra_dnslifetime ra_holdoff
|
||||||
json_get_vars reqaddress reqprefix clientid reqopts defaultreqopts noslaaconly forceprefix extendprefix norelease iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter keep_ra_dnslifetime ra_holdoff
|
json_get_vars reqaddress reqprefix clientid reqopts defaultreqopts noslaaconly forceprefix extendprefix norelease iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone encaplimit_dslite encaplimit_map soltimeout fakeroutes sourcefilter keep_ra_dnslifetime ra_holdoff
|
||||||
json_for_each_item proto_dhcpv6_add_prefix ip6prefix ip6prefixes
|
json_for_each_item proto_dhcpv6_add_prefix ip6prefix ip6prefixes
|
||||||
|
|
||||||
# Configure
|
# Configure
|
||||||
|
@ -98,6 +100,8 @@ proto_dhcpv6_setup() {
|
||||||
[ -n "$zone_map" ] && proto_export "ZONE_MAP=$zone_map"
|
[ -n "$zone_map" ] && proto_export "ZONE_MAP=$zone_map"
|
||||||
[ -n "$zone_464xlat" ] && proto_export "ZONE_464XLAT=$zone_464xlat"
|
[ -n "$zone_464xlat" ] && proto_export "ZONE_464XLAT=$zone_464xlat"
|
||||||
[ -n "$zone" ] && proto_export "ZONE=$zone"
|
[ -n "$zone" ] && proto_export "ZONE=$zone"
|
||||||
|
[ -n "$encaplimit_dslite" ] && proto_export "ENCAPLIMIT_DSLITE=$encaplimit_dslite"
|
||||||
|
[ -n "$encaplimit_map" ] && proto_export "ENCAPLIMIT_MAP=$encaplimit_map"
|
||||||
[ "$fakeroutes" != "0" ] && proto_export "FAKE_ROUTES=1"
|
[ "$fakeroutes" != "0" ] && proto_export "FAKE_ROUTES=1"
|
||||||
[ "$sourcefilter" = "0" ] && proto_export "NOSOURCEFILTER=1"
|
[ "$sourcefilter" = "0" ] && proto_export "NOSOURCEFILTER=1"
|
||||||
[ "$extendprefix" = "1" ] && proto_export "EXTENDPREFIX=1"
|
[ "$extendprefix" = "1" ] && proto_export "EXTENDPREFIX=1"
|
||||||
|
|
Loading…
Reference in a new issue