lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [bug #50837] TCP: zero window probe doesn't timeout


From: Joel Cunningham
Subject: [lwip-devel] [bug #50837] TCP: zero window probe doesn't timeout
Date: Thu, 4 May 2017 00:56:43 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0

Follow-up Comment #26, bug #50837 (project lwip):

Attached patch adds zero-window probing timeout.  The implementation was
straight-forward, the only exception was that I couldn't easily re-use
pcb->nrtx because when the persist timer started in tcp_receive(), there could
be in-flight data and thus an active RTO timer running.

The current interaction between persist timer and RTO timer is that persist
timer pre-empts any running RTO timer and then when zero-window resolves, the
RTO timer is resumed.

Realistically, this condition could only happen if the remote TCP shrunk the
window by more than the amount of data it received, since our in-flight data
should match the advertised window.  Having this behavior in LwIP seems like
good defensive behavior so I didn't want to change it

The good news is that struct tcp_pcb had an existing u8_t hole being used for
padding, so I just added a new u8_t counter for the probes and the size did
not change

Lastly the patch adds two unit tests to ensure RTO timeout and zero-window
probing timeout reset the connection after maximum transmissions are reach

(file #40576)
    _______________________________________________________

Additional Item Attachment:

File name: 0001-bug-50837-add-zero-window-probe-timeout.patch Size:10 KB


    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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