buglwIP - A Lightweight TCP/IP stack - Bugs: bug #37614, Errors from ip_output (ipX_output)...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #37614: Errors from ip_output (ipX_output) are not processed

Submitter:  Oleg Kovalev <r0pegig>
Submitted:  Mon 22 Oct 2012 02:50:15 PM UTC
   
 
Category:  TCP Severity:  3 - Normal
Item Group:  Feature Request Status:  Fixed
Privacy:  Public Assigned to:  goldsimon
Open/Closed:  Closed Planned Release:  None
lwIP version:  CVS Head

Tue 17 Feb 2015 07:03:47 AM UTC, comment #3: 

Done. A netif driver can call tcp_txnow() (from tcpip_thread!) to try to send again if TX buffers are available again.

The netconn code has been fixed, too, like suggested in patch #8572.

Simon Goldschmidt <goldsimon>
Group administrator
Tue 25 Feb 2014 09:03:31 PM UTC, comment #2: 

I.e. TODO:
- when ip_output() reports an out-of-memory error, set a flag in the TCP PCB and stop sending next segments
- add a function that can be called by a netif driver to send more segments once a noticeable amount of buffers in the DMA queue are available again

This is not faulty behaviour but rather a feature request for improvement.

Simon Goldschmidt <goldsimon>
Group administrator
Tue 15 Jan 2013 08:18:37 PM UTC, comment #1: 

This is a known limitation. It is expected that TCP just retransmits the lost segments later.

However, the work (of transmitting more segments after the first failed) is of course not really necessary.

Plus we could retrigger transmissions if the driver notified us of free DMA entries...

... todo... :-)

Simon Goldschmidt <goldsimon>
Group administrator
Mon 22 Oct 2012 02:50:15 PM UTC, original submission:  

I have faced with this error when I was making an attempt to transmit a large buffer through TCP. The Blackfin driver implemented with a fixed number of output DMA descriptors (and this number is limited in any case). So when we try to output more data than the driver can process trailing packets will be lost. Driver returns an error ERR_MEM, ip_output_if_opt returns that error too, but tcp_output_segment (and other output TCP functions too) does not.
I have made patch for my project but my knowledge of LwIP is not enough for participating in development so I decide sent this bug report. I hope this will be helpful.

Oleg Kovalev <r0pegig>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by goldsimon (Posted a comment)
  • -email is unavailable- added by r0pegig (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-02-17 goldsimon StatusNone Fixed
        Assigned toNone goldsimon
        Open/ClosedOpen Closed
    2015-02-17 goldsimon SummaryErrors from ip_output (ipX_output) are not processing Errors from ip_output (ipX_output) are not processed
    2015-02-17 goldsimon PrivacyPrivate Public
    2014-02-25 goldsimon Item GroupFaulty Behaviour Feature Request
        Planned Release 1.5.0

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code