[radvd-devel-l] Questions on radvd codes.

Pekka Savola pekkas at netcore.fi
Thu Sep 24 04:57:32 EDT 2009

These are pretty basic questions but hopefully this gets you started.

On Thu, 24 Sep 2009, Jong-Hyouk Lee wrote:
> 1. Where is codes used to update (modify) the routing information when RA messages arrived? Is it done by Linux kernel?
> So, radvd doesn't have such functions? I couldn't find out.

The RAs received by clients (for address autoconfiguration etc.) is 
handled by the kernel or such.

Radvd also sees these RAs but only checks them for consistency 
in process.c:process_ra()

> 2. Radvd is used to send RA messages periodically even if there is no RS messages sent from neighbors. I just wanted to
> see the codes related to it (i.e., sending unsolicited RA messages periodically to neighbors in a broadcast manner). As
> I know, when radvd starts, it firsts sends RA messages by executing kickof_adverts(). Then, it goes into the loop
> (i.e., for(; ;)). Which places in the codes shall I look? I just want to see the related codes for sending unsolicited
> RA messages periodically to neighbors.

As you say, kickoff_adverts() is the critical piece where a timer is 
scheduled for periodic RA.  When the timers expire, it's 
radvd.c:timer_handler() which gets called and the actual RA is sent 
using send_ra_forall().

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