[radvd-devel-l] RADVD gets confused when interfaces appear and disappear, sends RA into wrong interfaces

Reuben Hawkins reubenhwk at gmail.com
Fri Feb 24 03:04:50 EST 2012


On Thu, Feb 23, 2012 at 11:28 PM, Reuben Hawkins <reubenhwk at gmail.com> wrote:
> On Thu, Feb 23, 2012 at 8:00 PM, Roman Mamedov <rm at romanrm.ru> wrote:
>> On Wed, 22 Feb 2012 09:45:48 -0800
>> Reuben Hawkins <reubenhwk at gmail.com> wrote:
>>
>>> Can you send more debug info?  Run radvd like so and send in the output...
>>>
>>> $ sudo radvd -m stderr -d 5 --nodaemon
>>
>> Hello,
>>
>> I will try to reproduce this and get the debug output.
>>
>> Meanwhile, I have found that the same bug has been reported at:
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650047
>>
>> --
>> With respect,
>> Roman
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> "Stallman had a printer,
>> with code he could not see.
>> So he began to tinker,
>> and set the software free."
>
> Hi Roman,
>
> I've reproduced the problem.  I'm working on tracking down the problem.
>
> Thanks,
> Reuben

Hi Roman,

It's very strange.  It seems to me that radvd is doing the right
thing.  I modified the logging to output which if_index a packet it
sent on and to also log which prefixes are sent.  This is my output.

[Feb 23 23:55:54] radvd: sending RA on eth0
[Feb 23 23:55:54] radvd: adding prefix 2002:43bc:aef0:: to advert for eth0
[Feb 23 23:55:54] radvd: using if_index 2 for interface eth0
...
[Feb 23 23:56:32] radvd: sending RA on lo
[Feb 23 23:56:32] radvd: adding prefix 2001:db8:bad:: to advert for lo
[Feb 23 23:56:32] radvd: using if_index 0 for interface lo

But, as you also noticed, I get both 2002:43bc:aef0:: and
2001:db8:bad:: on eth0 in the radvdump output.

I also went way back (to v1.6) in the history of radvd and the problem
is there too.  I'm wondering if this bug could be caused by something
other than the code in radvd.  It looks to me as if the bug happens
sometime during the call to sendmsg.



More information about the radvd-devel-l mailing list