lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] Ping Causing "not enough space for new header size" Ove


From: Greg Smith
Subject: Re: [lwip-users] Ping Causing "not enough space for new header size" Over PPP
Date: Mon, 23 May 2016 19:27:26 +0000

Hi, Simon.

Please see more information commingled below.

 

Before that, though, I want to add that I did just today find the reason for the dropped packets.  I was having buffer overruns on my serial port.  I have corrected that problem.  (The dropped packets themselves have been resolved.)  But I'm still getting the "not enough space" message. 

 

Thanks!

 

From: lwip-users [mailto:lwip-users-bounces+address@hidden
Sent: Monday, 23 May 2016 15:01
To: Mailing list for lwIP users <address@hidden>
Subject: Re: [lwip-users] Ping Causing "not enough space for new header size" Over PPP

 

Greg Smith wrote:

Hello.

Using lwIP 2.0.0 Beta1, I have been able to connect my target via PPP to an embedded Linux control.  After successful connection, I am trying to ping the lwIP target.  It has about 25-33% packet loss over time.  From the debug output, I see that I'm occasionally getting a "(not enough space for new header size)" message from pbuf_header_impl() in pbuf.c.

 

I don't really understand what that's trying to tell me since I'm only receiving about 90 bytes from the ping packet, but I think I have my pbuf size set well above that.  (I've tried setting PBUF_POOL_BUFSIZE to 500, 600, 1500, and 1520).


PBUF_POOL_BUFSIZE has nothing to do with this. This is not a RAM issue but a config issue. Can you tell us the call stack when pbuf_header() fails? Without this info, I can't tell you where the problem is right now...

Yes, the call stack is:

pbuf_header_impl() at pbuf.c:546         

pbuf_header() at pbuf.c:605    

icmp_input() at icmp.c:147       

ip4_input() at ip4.c:671             

ppp_input() at ppp.c:850           

pppos_input() at pppos.c:581  

  taskPppGetBytes() at rs485if.c:329        (This is my application's task to read in bytes from the serial input buffer.)

 

 

I am still unclear as to how the whole pbuf setup is architected.  I've tried reading some wikia information on it, but it wasn't clear to me.  Do you have any other resources I can read about it?  It is something I would like to have a better handle on.


To give you an insight: when rx packets are fed into the various layers, headers are stripped. pbuf_header() is later used to restore the space for more headers at the front of the buffer. Somehow, this fails for your configuration. This is a only problem when having PPP *AND* ethernet, since the two interfaces require different header sizes...

Fortunately, I'll be running PPP only and I have Ethernet disabled.  So whatever we need to make it run, I should be able to do.  Likewise, if I can match the Ethernet settings and still have it work for PPP, that would give me flexibility for the future.

I've attached my lwipopts.h file, if that will also help troubleshoot.  (It is nearly the same as I used for 1.4.1.  If there are glaring misconfiguration, please let me know -- most of the options are a little esoteric to me as to their effects.)

 


Simon




This email has been scanned for email related threats and delivered safely by Mimecast.
For more information please visit http://www.mimecast.com

Attachment: lwipopts.h
Description: lwipopts.h


reply via email to

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