• Glenn Wurster's avatar
    IPv6: Temp addresses are immediately deleted. · 7a876b0e
    Glenn Wurster authored
    There is a bug in the interaction between ipv6_create_tempaddr and
    addrconf_verify.  Because ipv6_create_tempaddr uses the cstamp and tstamp
    from the public address in creating a private address, if we have not
    received a router advertisement in a while, tstamp + temp_valid_lft might be
    < now.  If this happens, the new address is created inside
    ipv6_create_tempaddr, then the loop within addrconf_verify starts again and
    the address is immediately deleted.  We are left with no temporary addresses
    on the interface, and no more will be created until the public IP address is
    updated.  To avoid this, set the expiry time to be the minimum of the time
    left on the public address or the config option PLUS the current age of the
    public interface.
    Signed-off-by: default avatarGlenn Wurster <gwurster@scs.carleton.ca>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7a876b0e
addrconf.c 113 KB