[LEDE-DEV] [PATCH netifd] Revert: set prefix indicator flag when IPv6 prefix lifetime, changes

Hans Dedecker dedeckeh at gmail.com
Sun Apr 23 23:52:40 PDT 2017


On Mon, Apr 24, 2017 at 4:24 AM, Eric Luehrsen <ericluehrsen at hotmail.com> wrote:
> This reverts commit a03216660797173fbe67866f75564e3fec9c1e8d. The previous
> change causes IFUP events to occur from 30 seconds to 30 minutes depending
> on various conditions at the WAN6 (typ.) interface. If a DHCPv6 lease is
> 24 hours and the connection is stable, then in other linux distro we would
> expect IFUP every 24 hours. This is therefore a significant inconsistency
> for LEDE. Add on package maintainers are going to be surprised by the
> behavior. Use of the interface triggers in procd will experience further
> thrashing. For example, procd managed DNS servers like dnsmasq and Unbound
> will dump their DNS cache every 30sec to 30min due to reload triggers.
Hi

As explained in FS#713 reverting this patch will lead to complaints
from people homenet is
broken (https://github.com/openwrt/openwrt/issues/346[1]); a more
fundamentel fix is
required possible in procd to fix the issue.
Remark the commit message makes a misleading assumption as an IFUP is
fired by netifd
when interface parameters change like IP addresses, routes, etc ...
and this is dependant
on the renew time of a DHCPv4/6 lease and not the leasetime.
Therefore for netifd hotplug events extra flags were introduced in the
past allowing to
start a hotplug script upon a specific change like an IP address
change which is currently
missing in procd.

Hans
> ---
>  interface-ip.c | 4 ----
>  1 file changed, 4 deletions(-)
>
> diff --git a/interface-ip.c b/interface-ip.c
> index 140ef34..dc246f0 100644
> --- a/interface-ip.c
> +++ b/interface-ip.c
> @@ -1047,10 +1047,6 @@ interface_update_prefix(struct vlist_tree *tree,
>                 list_for_each_entry(c, &prefix_new->assignments, head)
>                         if ((iface = vlist_find(&interfaces, c->name, iface, node)))
>                                 interface_set_prefix_address(c, prefix_new, iface, true);
> -
> -               if (prefix_new->preferred_until != prefix_old->preferred_until ||
> -                               prefix_new->valid_until != prefix_old->valid_until)
> -                       ip->iface->updated |= IUF_PREFIX;
>         } else if (node_new) {
>                 // Set null-route to avoid routing loops
>                 system_add_route(NULL, &route);
> --
> 2.11.0
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev



More information about the Lede-dev mailing list