[radvd-devel-l] Solicited Router Advertisements not coming when the test asks for them.

Ninad ninad.adi at elitecore.com
Thu Jul 30 08:33:09 EDT 2009


Hi,

Thanks for taking out time for so much communication & support from your
side.

Yes, I think, radvd should also incorporate sending solicited router 
Advertisements to multicast destinations i.e ff02::1.(All Hosts address).

	 	  This line of code should get executed while sending
solicited 
              Multicast router advertisements.

In send.c:send_ra() routine
		  "dest = (struct in6_addr *)all_hosts_addr;"
		  Should get set if the source address of the solicitation
is 
		  Unspecified ( :: ) according to the RFC Standards.

In the versions(1.3,1.2,1.1) Router Advertisement daemon entertains only the

solicitations which are from unicast destinations which is not sufficient
while testing ipv6ready test suite in Neighbourhood discovery tests.

Plz verify the same.

Thanks
Ninad
Cyberoam UTM
Elitecore technologies
India.  


-----Original Message-----
From: radvd-devel-l-bounces at litech.org
[mailto:radvd-devel-l-bounces at litech.org] On Behalf Of Pekka Savola
Sent: Thursday, July 30, 2009 5:19 PM
To: radvd Development Discussion
Subject: Re: [radvd-devel-l] Solicited Router Advertisements not coming when
the test asks for them.

Hello,

Looking at this in detail, it appears from your description that 
you're expecting the destination address of a solicited RA to be 
ff02::1. RFC 4861 Section 6.2.6 allows to send the response to the 
soliciting node directly, which is what happens when dest argument is 
NULL.  So the implementation is compliant in letter though not 
necessarily in spirit.

I note that there *was* an unintentional change with this regard 
between radvd 1.2 and 1.3.  Depending on the timers, unless multicast 
RA has been sent recently, the code now sends immediate reply via 
unicast instead of multicast (the latter change), I suppose this was 
due to a search/replace or similar error and not intentional:

http://cvs.litech.org/viewcvs/radvd/process.c?r1=1.16&r2=1.17

I suppose I'll need to correct the latter change and release radvd 
1.4.  Comments, anyone?

On Thu, 30 Jul 2009, Pekka Savola wrote:
> Could you clarify which radvd version you're testing?  There were changes
to 
> this behaviour in 1.3; if you tested this, do you see the same behaviour
with 
> 1.2?
>
> On Thu, 30 Jul 2009, Ninad wrote:
>>  I am running radvd daemon for ipv6 ready tests,
>>
>>  but I am not getting radvd solicited router advertisements.
>>
>>   
>>
>>  I debugged the code in gdb and found that the problem was
>>
>>  the destination address was not getting set to à all nodes/hosts
multicast
>>  address i.e
>>  ff02::1.
>>
>>   
>>
>>  The problem I faced is à
>>
>>  In the file send.c  , in the routine send_ra() Line 114/115
>>
>>   
>>
>>  There is one condition
>>
>>   
>>
>>  if ( dest == NULL )
>>
>>      115         {
>>
>>      116                 struct timeval tv;
>>
>>      117
>>
>>      118                 dest = (struct in6_addr *)all_hosts_addr;
>>
>>      119                 gettimeofday(&tv, NULL);
>>
>>      120
>>
>>      121                 iface->last_multicast_sec = tv.tv_sec;
>>
>>      122                 iface->last_multicast_usec = tv.tv_usec;
>>
>>      123         }
>>
>>   
>>
>>  Even if my dest. is NULL and source address is unspecified( :: )  
>>
>>  This condition is not fulfilled and so solicited router advertisements
are
>>  not sent.
>>
>>   
>>
>>  I changed the condition to
>>
>>  if ( dest == NULL || dest != NULL )
>>
>>  for specific tests which were depending on solicited router
advertisements
>>
>>  and the things started working fine. My Tests are passing.
>>
>>   
>>
>>   
>>
>>  But the question is First of all why I need to change the code and get
>>  solicited router
>>  advertisements.
>>
>>   
>>
>>  Why the original condition was not getting satisfied ?
>>
>>   
>>
>>  Thanks
>>
>>  Ninad.
>>
>>   
>>
>>   
>>
>>   
>>
>>   
>>
>>   
>>
>>   
>>
>>   
>>
>>   
>>
>>   
>>
>> 
>> 
>
>

-- 
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings




More information about the radvd-devel-l mailing list