Question about arp_error_report() (IPV4): clarification

From: Andy Johnson <hidden>
Date: 2008-01-05 08:43:28

Hi,
In neigh_timer_handler( ),  (core/neighbour.c), there is a comment which says:

# It is very thin place. report_unreachable is very complicated
# routine. Particularly, it can hit the same neighbour entry!

#  So that, we try to be accurate and avoid dead loop. --ANK

I tried to figure exactly what this comment mean (when dealing with IPV4).
 Can someone elaborate in 3-4 sentences on it ?


Why  "hit the same neighbour entry" can cause any complications ?
Why is report_unreachable() considered complicated ?
It seems to be simple, or am I missing something?


As far as I understand, eventually  ipv4_link_failure()
(net/ipv4/route.c) is called when  report_unreachable() is invoked.

(The path is: arp_error_report() calls dst_link_failure(skb), which in
case of ipv4, calls ipv4_link_failure().)
So it seems simply a matter of calling eventually ipv4_link_failure(),
which ends up with generating ICMP.

Regards,
Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help