lkml.org 
[lkml]   [2010]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: batman-adv: design suggestions
On Sat, Aug 14, 2010 at 16:59 +0200, Marek Lindner wrote:
> On Friday 13 August 2010 20:18:33 Vasiliy Kulikov wrote:
> > d) Why do you send icmp TTL exceeded for the icmp itself? E.g. in case
> > of loop or/and small default TTL you'll probably get a storm of icmps.
> > Exactly in this case IP silently drops TTL exceeded icmps ;)
>
> These layer2 icmp packets are not ordinary icmp packets.

By the way, it's better to name it smth another (bcmp?) as ICMP = _internet_
control message protocol. Batman is not limited to IP however ;)

> We needed to provide
> a mechanism to make the network topology visible to debug tools like ping or
> traceroute which normally "see" no more than one hop as they operate on
> layer3. Hence, batman-adv does not send an icmp packet for each payload TTL
> exceeded but for traceroute only.

Ah, dammit! I didn't see this code:

if (icmp_packet->msg_type != ECHO_REQUEST) {
pr_warning("Warning - can't forward icmp packet from %pM to "
"%pM: ttl exceeded\n", icmp_packet->orig,
icmp_packet->dst);
return NET_RX_DROP;
}
I thought that any expired icmp spawns TTL exceeded icmp that may spawn
another one, etc.

> I recommend reviewing the traceroute code to
> understand how this is supposed to work:
> http://www.open-mesh.org/browser/trunk/batctl/traceroute.c

Thanks, I'll look at it.

>
> I'd be interested to learn about a problematic scenario in which this
> mechanism breaks.

Now I don't know anyone too ;)

>
> Regards,
> Marek


\
 
 \ /
  Last update: 2010-08-14 18:17    [from the cache]
©2003-2011 Jasper Spaans