X-Git-Url: https://git.archive.openwrt.org/?p=openwrt.git;a=blobdiff_plain;f=package%2Fnetwork%2Fipv6%2Fodhcp6c%2Ffiles%2Fdhcpv6.sh;h=0638d28f5f8532cd079d2ba1e29cf2c74bb1e4bc;hp=14b6fb63b44588ea4707ec8bf1c641761d48e6c9;hb=0d14ac85bbfece03a693ac54245983ba5fe8a8cc;hpb=a2382b895d717b2c218daa566f214627b8debe4e diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh index 14b6fb63b4..0638d28f5f 100755 --- a/package/network/ipv6/odhcp6c/files/dhcpv6.sh +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh @@ -9,14 +9,21 @@ proto_dhcpv6_init_config() { proto_config_add_string "reqprefix" proto_config_add_string "clientid" proto_config_add_string "reqopts" + proto_config_add_string "noslaaconly" + proto_config_add_string "forceprefix" + proto_config_add_string "norelease" + proto_config_add_string "ip6prefix" + proto_config_add_string "iface_dslite" + proto_config_add_string "ifaceid" + proto_config_add_string "sourcerouting" } proto_dhcpv6_setup() { local config="$1" local iface="$2" - local reqaddress reqprefix clientid reqopts - json_get_vars reqaddress reqprefix clientid reqopts + local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite ifaceid sourcerouting + json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite ifaceid sourcerouting # Configure @@ -28,10 +35,21 @@ proto_dhcpv6_setup() { [ -n "$clientid" ] && append opts "-c$clientid" + [ "$noslaaconly" = "1" ] && append opts "-S" + + [ "$forceprefix" = "1" ] && append opts "-F" + + [ "$norelease" = "1" ] && append opts "-k" + + [ -n "$ifaceid" ] && append opts "-i$ifaceid" + for opt in $reqopts; do append opts "-r$opt" done + [ -n "$ip6prefix" ] && proto_export "USERPREFIX=$ip6prefix" + [ -n "$iface_dslite" ] && proto_export "IFACE_DSLITE=$iface_dslite" + [ "$sourcerouting" = "1" ] && proto_export "SOURCE_ROUTING=1" proto_export "INTERFACE=$config" proto_run_command "$config" odhcp6c \