odhcp6c: Conditionally request S46 OROs

Request Softwire46 (S46) [RFC 7598] options when the map and/or ds-lite
packages are installed. This is required as the behaviour of odhcp6c has
changed to not include these OROs by default.

See openwrt/odhcp6c#89

Signed-off-by: Richard Patterson <richard@helix.net.nz>
Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
This commit is contained in:
Shengyu Qu 2025-05-15 11:38:46 +08:00 committed by Kevin Darbyshire-Bryant
parent 9c405cb725
commit 4bd7daced1

View file

@ -96,13 +96,23 @@ proto_dhcpv6_setup() {
[ "$verbose" = "1" ] && append opts "-v"
json_for_each_item proto_dhcpv6_add_sendopts sendopts opts
# Dynamically add OROs to support loaded packages.
json_load "$(ubus call network get_proto_handlers)"
json_get_var handler_map map
json_get_var handler_dslite dslite
[ -n "$handler_dslite" ] && append reqopts "64"
[ -n "$handler_map" ] && append reqopts "94"
[ -n "$handler_map" ] && append reqopts "95"
[ -n "$handler_map" ] && append reqopts "96"
local opt
for opt in $reqopts; do
append opts "-r$opt"
done
json_for_each_item proto_dhcpv6_add_sendopts sendopts opts
append opts "-t${soltimeout:-120}"
[ -n "$ip6prefixes" ] && proto_export "USERPREFIX=$ip6prefixes"