Sections of type dhcp (configure DHCP / DHCPv6 / RA / NDP service)
-Option Type Default Description
-interface string <name of UCI section> logical OpenWrt interface
-ifname string <resolved from logical> physical network interface
-networkid string same as ifname compat. alias for ifname
-ignore bool 0 do not serve this interface
- unless overridden by ra, ndp,
- dhcpv4 or dhcpv6 options
-master bool 0 is a master interface
- for relaying
-
-ra string disabled Router Advert service
- [disabled|server|relay|hybrid]
-dhcpv6 string disabled DHCPv6 service
- [disabled|server|relay|hybrid]
-dhcpv4 string disabled DHCPv4 service
- [disabled|server]
-ndp string disabled Neighbor Discovery Proxy
- [disabled|relay|hybrid]
-
-dynamicdhcp bool 1 dynamically create leases
- for DHCPv4 and DHCPv6
-router list <local address> Routers to announce
- accepts IPv4 only
-dns list <local address> DNS servers to announce
- accepts IPv4 and IPv6
-domain list <local search domain> Search domains to announce
-
-leasetime string 12h DHCPv4 address leasetime
-start integer 100 DHCPv4 pool start
-limit integer 150 DHCPv4 pool size
-
-ra_default integer 0 Override default route
- 0: default, 1: ignore no public address, 2: ignore all
-ra_management integer 1 RA management mode
- 0: no M-Flag but A-Flag, 1: both M and A, 2: M but not A
-ra_offlink bool 0 Announce prefixes off-link
-ra_preference string medium Route(r) preference
- [medium|high|low]
-ra_maxinterval integer 600 Maximum time allowed between
- sending unsolicited RA
-ra_mininterval integer 200 Minimum time allowed between
- sending unsolicited RA
-ra_lifetime integer 1800 Value to be placed in Router
- Lifetime field of RA
-ra_useleasetime bool 0 Use configured leasetime as
- limit for the preferred and
- valid lifetime of a prefix
-ndproxy_routing bool 1 Learn routes from NDP
-ndproxy_slave bool 0 NDProxy external slave
+Option Type Default Description
+interface string <name of UCI section> logical OpenWrt interface
+ifname string <resolved from logical> physical network interface
+networkid string same as ifname compat. alias for ifname
+ignore bool 0 do not serve this interface
+ unless overridden by ra, ndp,
+ dhcpv4 or dhcpv6 options
+master bool 0 is a master interface
+ for relaying
+
+ra string disabled Router Advert service
+ [disabled|server|relay|hybrid]
+dhcpv6 string disabled DHCPv6 service
+ [disabled|server|relay|hybrid]
+dhcpv4 string disabled DHCPv4 service
+ [disabled|server]
+ndp string disabled Neighbor Discovery Proxy
+ [disabled|relay|hybrid]
+
+dynamicdhcp bool 1 Dynamically create leases
+ for DHCPv4 and DHCPv6
+dhcpv6_assignall bool 1 Assign all viable DHCPv6 addresses
+ in statefull mode; if disabled
+ only the DHCPv6 address having the
+ longest preferred lifetime is assigned
+router list <local address> Routers to announce
+ accepts IPv4 only
+dns list <local address> DNS servers to announce
+ accepts IPv4 and IPv6
+domain list <local search domain> Search domains to announce
+
+leasetime string 12h DHCPv4 address leasetime
+start integer 100 DHCPv4 pool start
+limit integer 150 DHCPv4 pool size
+
+ra_default integer 0 Override default route
+ 0: default, 1: ignore no public address, 2: ignore all
+ra_management integer 1 RA management mode
+ 0: no M-Flag but A-Flag, 1: both M and A, 2: M but not A
+ra_offlink bool 0 Announce prefixes off-link
+ra_preference string medium Route(r) preference
+ [medium|high|low]
+ra_maxinterval integer 600 Maximum time allowed between
+ sending unsolicited RA
+ra_mininterval integer 200 Minimum time allowed between
+ sending unsolicited RA
+ra_lifetime integer 1800 Value to be placed in Router
+ Lifetime field of RA
+ra_useleasetime bool 0 Use configured leasetime as
+ limit for the preferred and
+ valid lifetime of a prefix
+ndproxy_routing bool 1 Learn routes from NDP
+ndproxy_slave bool 0 NDProxy external slave
Sections of type host (static leases)
IFACE_ATTR_DOMAIN,
IFACE_ATTR_FILTER_CLASS,
IFACE_ATTR_DHCPV6_RAW,
+ IFACE_ATTR_DHCPV6_ASSIGNALL,
IFACE_ATTR_RA_DEFAULT,
IFACE_ATTR_RA_MANAGEMENT,
IFACE_ATTR_RA_OFFLINK,
[IFACE_ATTR_DOMAIN] = { .name = "domain", .type = BLOBMSG_TYPE_ARRAY },
[IFACE_ATTR_FILTER_CLASS] = { .name = "filter_class", .type = BLOBMSG_TYPE_STRING },
[IFACE_ATTR_DHCPV6_RAW] = { .name = "dhcpv6_raw", .type = BLOBMSG_TYPE_STRING },
+ [IFACE_ATTR_DHCPV6_ASSIGNALL] = { .name ="dhcpv6_assignall", .type = BLOBMSG_TYPE_BOOL },
[IFACE_ATTR_PD_MANAGER] = { .name = "pd_manager", .type = BLOBMSG_TYPE_STRING },
[IFACE_ATTR_PD_CER] = { .name = "pd_cer", .type = BLOBMSG_TYPE_STRING },
[IFACE_ATTR_RA_DEFAULT] = { .name = "ra_default", .type = BLOBMSG_TYPE_INT32 },
iface->managed = 1;
iface->learn_routes = 1;
iface->dhcpv4_leasetime = 43200;
+ iface->dhcpv6_assignall = true;
iface->ra_maxinterval = 600;
iface->ra_mininterval = iface->ra_maxinterval/3;
iface->ra_lifetime = -1;
odhcpd_unhexlify(iface->dhcpv6_raw, iface->dhcpv6_raw_len, blobmsg_get_string(c));
}
+ if ((c = tb[IFACE_ATTR_DHCPV6_ASSIGNALL]))
+ iface->dhcpv6_assignall = blobmsg_get_bool(c);
+
if ((c = tb[IFACE_ATTR_RA_DEFAULT]))
iface->default_router = blobmsg_get_u32(c);