On Tue, 2009-06-09 at 17:12 +0200, Jesper Vestergaard wrote:
> I have found the problem. ip_output_if generates a header for the packet 
> but there's not enough room for it and  pbuf_header(p, IP_HLEN)) fails. 
> To be more precise it is the if ((u8_t *)p->payload < (u8_t *)p + 
> SIZEOF_STRUCT_PBUF) check in pbuf_header which fails.
> 
> What can i do to fix this problem?
> 

That is a very strange problem, the pbuf should have been allocated with
enough space to contain the IP header.  

Unfortunately, this code has changed a lot recently (since 1.3.0) so
it's hard to diagnose using the current CVS head, or even establish if
the problem still exists.

To investigate, look for where the pbuf is allocated (should be in
tcp_enqueue() I think), and see what value is given for the first
argument "pbuf_layer layer".  It is this that should control the
additional space allocated for lower layer headers.

Kieran



_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to