Hello all,

>>>>> On Fri, 28 Oct 2005 16:14:16 -0500
>>>>> [EMAIL PROTECTED](Craig Boston)  said:

> Knowing that, I can cause it to happen on command by manually
> re-configuring an interface with an address it already has:
> # ifconfig em1 inet6 2002:abcd:ef01:5555::20
> (routes are all normal)
> # ifconfig em1 inet6 2002:abcd:ef01:5555::20
> (prefix route disappears)

I could reproduce your problem, and found out the reason: it's a bug,
not a feature.


In this case, the second ifconfig command removes the old address and
then installs the new one (actually the same one again).  Within
kernel, however, the prefix route is completely removed after 1[s] by
nd6_timer() (this 1[s] timer is set in in6.c in6_control() l.710).

This route-removing timer is invoked after the addition of new
address, and removes the prefix route.  (prefix lifetime is not
properly managed in case of a statically configured address)


Here's the list of possible solutions.  I'm now working on the second
one.  But if you need an immediately solution for 6.0-RELEASE, please
consider the first one.

- in ifconfig, wait for 1[s] between the removal of the old address
  and addition of the new address
        it immediately works, but people has to wait 1[s] for each
        address assignment...

- in kernel, properly manages the reference count of nd_prefix and
  remove the nd_prefix only when the reference count becomes 0.
        There's a KAME code implementing this.
        I'm now porting it, but it'll take some time to check its
        behavior (a day or two)...

Thanks,
----
SUZUKI, Shinsuke @ KAME Project
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to