[bug #27904] TCP sends too many ACKs

View: New views
4 Messages — Rating Filter:   Alert me  

[bug #27904] TCP sends too many ACKs

by Sylvain Beucler-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


URL:
  <http://savannah.nongnu.org/bugs/?27904>

                 Summary: TCP sends too many ACKs
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: goldsimon
            Submitted on: So 01 Nov 2009 17:17:39 GMT
                Category: None
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release:
            lwIP version: CVS Head

    _______________________________________________________

Details:

Due to our changes regarding tcp_recved/TCP_WND_UPDATE_THRESHOLD in 1.3.1, it
can happen that, when in recv callback, first calling tcp_recved and then
enqueueing new data, that 2 segments are sent: first a pure ACK, then the data
segment.

This can be avoided by moving "tcp_input_pcb = NULL;" in tcp_input from
directly after the call to tcp_process() to after the lines where
TCP_EVENT_SENT/TCP_EVENT_RECV is called. Since tcp_output() is called
thereafter, anyway, this makes sure segments are combined and it should have
no negative side effect.

The only thing is we should consider to always call tcp_output after calling
the callbacks (not only if err == ERR_OK).

Patch attached.



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: So 01 Nov 2009 17:17:39 GMT  Name: tcp_in.c.patch  Size: 997B   By:
goldsimon

<http://savannah.nongnu.org/bugs/download.php?file_id=18971>

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?27904>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/



_______________________________________________
lwip-devel mailing list
lwip-devel@...
http://lists.nongnu.org/mailman/listinfo/lwip-devel

[bug #27904] TCP sends too many ACKs

by Sylvain Beucler-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Update of bug #27904 (project lwip):

                Category:                    None => TCP                    
              Item Group:                    None => Faulty Behaviour      


    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?27904>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/



_______________________________________________
lwip-devel mailing list
lwip-devel@...
http://lists.nongnu.org/mailman/listinfo/lwip-devel

[bug #27904] TCP sends too many ACKs

by Sylvain Beucler-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Follow-up Comment #1, bug #27904 (project lwip):

I have tried this patch with the latest CVS (Nov 13, 2009) and it breaks my
TCP client connections using the netconn api.  After 1 or 2 connections, the
netconn_connect fails to make a connection and either times out or sits
indifinately in the tcpip_apimsg() function for the sys_arch_sem_wait() to
occur.

I use freeRTOS, lwIP, PPP and the netconn api.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?27904>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/



_______________________________________________
lwip-devel mailing list
lwip-devel@...
http://lists.nongnu.org/mailman/listinfo/lwip-devel

[bug #27904] TCP sends too many ACKs

by Sylvain Beucler-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Follow-up Comment #2, bug #27904 (project lwip):

Disregard my comment.  I went back through the patch and my source and I was
missing a piece of the patch.  Chalk this up to user error.  After making sure
all of the patch was placed in the correct locations, everything works
correctly.

Dustin

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?27904>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/



_______________________________________________
lwip-devel mailing list
lwip-devel@...
http://lists.nongnu.org/mailman/listinfo/lwip-devel