[Olsr-users] OLSR routing issue with highly connected node

Henning Rogge (spam-protected)
Fri Dec 26 15:16:56 CET 2014


On Fri, Dec 26, 2014 at 3:04 PM, Jernej Kos <(spam-protected)> wrote:
> Hello!
>
> On 26. 12. 2014 14:44, Henning Rogge wrote:
>> The problem is that the sendto() call does not report an error when we
>> send a too-large UDP packet, otherwise there would have been a message
>> both in the error log and the syslog.
>
> Yes, sendto() only reports an error when the packet is longer than the
> MTU of the local outgoing interface (but this will never be the case as
> you already take this into account). It does not report errors when
> remote hosts on the path to destination report Frag-Needed errors via
> ICMP messages (as sendto() returns immediately when the packet has been
> queued on the local outgoing interface by the kernel).

Which should only happen with some crazy bridged interface stuff...
because OLSR packets are never forwarded on IP layer. I am not even
sure how a "cannot fragment" problem between two bridged interfaces
(which might have no IP address!) is handled.

> Olsrd probably already performs recvmsg() to listen for OLSR packets
> from neighbours. Frag-Needed error detection would need to be done there
> and not when sending.

It uses recvfrom() on Linux/Windows and some strange recvmsg() wrapper
function for BSD... I am not sure I want to change this core code.

Would it be enough on Linux to set IP_MTU_DISCOVER to IP_PMTUDISC_DONT
(which deactivate PMTUD and should also disable to DF flag)?

Henning Rogge




More information about the Olsr-users mailing list