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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel