discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] UDP Sink Size Limit - ERROR: send error:send_to:


From: Andy Walls
Subject: Re: [Discuss-gnuradio] UDP Sink Size Limit - ERROR: send error:send_to: Message too long
Date: Fri, 25 Sep 2015 15:23:04 -0400

On Fri, 2015-09-25 at 15:17 -0400, Andy Walls wrote:
> > From:       David Halls
> >Subject:     [Discuss-gnuradio] UDP Sink Size Limit - ERROR: send
> error:send_to: Message too long
> >Date:        Fri, 25 Sep 2015 09:05:56 +0000
> 
> >Dear All,
> >
> >
> >When I increase my packet length in a transmission flow graph to over
> >16,000 bits, I get the following error
> >
> >
> >"ERROR: send error:send_to: Message too long​"
> 
> This looks like the underlying sendto() system call is returning
> EMSGSIZE.  From man sendto:
> 
>      EMSGSIZE
>               The  socket  type  requires that message be sent atomically, and
>               the size of the message to be sent made this impossible.
> 
> 
> 
> 
> >this is from the UDP block which I am using in order to send the
> >transmitted bits to the destination in order to perform BER. I am
> >sending the packets in bursts, one packet every two seconds.
> 
> 
> >I currently have the Payload size set to 147.2k and Send Null Pkt as
> >EOF set to true.
> 
> 
> >Is this some fundamental limit, or can I overcome the issue?
> 
> 16,000 bits is 2000 bytes.  The default MTU is usually 1500 bytes (for
> IP header, UDP header, and payload together).  Try modifying the MTU on
> your machine's network interface to something larger, say 4000.
> 
> The MTU of the receiving machine or other network hardware might still
> be only 1500, so the the UDP packet could get IP fragmented.  I'm not
> sure how well UDP works when fragmented.

A little more Linux specific detail:
http://man7.org/linux/man-pages/man7/udp.7.html

"      By default, Linux UDP does path MTU (Maximum Transmission Unit)
       discovery.  This means the kernel will keep track of the MTU to a
       specific target IP address and return EMSGSIZE when a UDP packet
       write exceeds it.  When this happens, the application should decrease
       the packet size.  Path MTU discovery can be also turned off using the
       IP_MTU_DISCOVER socket option or the
       /proc/sys/net/ipv4/ip_no_pmtu_disc file; see ip(7) for details.  When
       turned off, UDP will fragment outgoing UDP packets that exceed the
       interface MTU.  However, disabling it is not recommended for
       performance and reliability reasons."

-Andy






reply via email to

[Prev in Thread] Current Thread [Next in Thread]