Hi all,
If we check the neighbor discovery module of IPv6. we will see there are two functions(nd6_rs_input and rs_input) which processes an incoming RS(router solicitation) message. Both of these are part of two separate tasks.
rs_input sends a RA message(sets the timer etc) corresponding to a RS message
where as nd6_rs_input adds the entry in RS message to the neighbor cache.
Acc. to rfc whenevr a RS msg is recvd, first of all it should be added to neighbor cache and second thing is to send a RA for it.
Q1. Can anyone please explain why this functionality has been divided into two separate tasks??
Q2. For receving the RS message, they have created a socket in each of the two tasks. I am not able to understans how both the sockets gets the data. is it that the kernel is duplicating the data or what?
I am not sure if this is the right lpace to ask this question or not but i think it is.
please help.
Thanks and Regards