lwIP - A Lightweight TCP/IP stack - Bugs: bug #27445, PCB hangs in Fast Retransmit due...
You are not allowed to post comments on this tracker with your current authentication level.
bug #27445: PCB hangs in Fast Retransmit due to unchanging cwnd
Submitter: | Sean Malloy <smalloy> | ||
Submitted: | Mon 14 Sep 2009 04:25:02 PM UTC | ||
Category: | TCP | Severity: | 3 - Normal |
Item Group: | Faulty Behaviour | Status: | Fixed |
Privacy: | Public | Assigned to: | kieranm |
Open/Closed: | Closed | Planned Release: | None |
lwIP version: | Other |
Jump to the original submission
Wed 25 Nov 2009 06:13:17 PM UTC, comment #14: |
Oleg Tyshev <olegreen> |
Fri 30 Oct 2009 12:00:32 PM UTC, comment #13: Stevens - I forgot about this Bible-book!!! |
Oleg Tyshev <olegreen> |
Thu 29 Oct 2009 03:37:21 PM UTC, comment #12: OK, diff makes a bad job of displaying my changes, so here's what the code block that deals with dupacks now looks like:
|
Kieran Mansley <kieranm> |
Thu 29 Oct 2009 02:16:04 PM UTC, comment #11: I didn't want to change the behavior of inflating the congestion window, which is dependent on the value of dupacks. I therefore opted to increase dupacks, then do all the other things, then reset dupack if necessary. If I reset dupacks it at the start of that code block some of the other things might not happen.
|
Kieran Mansley <kieranm> |
Thu 29 Oct 2009 10:32:51 AM UTC, comment #10: Kieran, patch works fine.
|
Oleg Tyshev <olegreen> |
Wed 28 Oct 2009 03:19:47 PM UTC, comment #9: Fix checked in as described. |
Kieran Mansley <kieranm> |
Fri 23 Oct 2009 09:18:51 PM UTC, comment #8: Then you want:
|
Bill Auerbach <billauerbach> |
Fri 23 Oct 2009 09:09:58 PM UTC, comment #7:
|
Simon Goldschmidt <goldsimon> |
Fri 23 Oct 2009 07:12:18 PM UTC, comment #6: After looking at Alain's email, isn't:
|
Bill Auerbach <billauerbach> |
Fri 23 Oct 2009 04:21:37 PM UTC, comment #5: Sorry, if you do cast to u32_t, it's:
|
Bill Auerbach <billauerbach> |
Fri 23 Oct 2009 04:16:52 PM UTC, comment #4: if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) { ... }
|
Bill Auerbach <billauerbach> |
Fri 23 Oct 2009 03:51:53 PM UTC, comment #3: OK, combining the fix for this and bug #27329 was not as trivial as I hoped. I've ended up with that bit of code reading as follows:
|
Kieran Mansley <kieranm> |
Fri 16 Oct 2009 02:56:15 PM UTC, comment #2: Kieran, I just noticed these are the same lines of code I changed to fix bug #27329 (dupacks by unidirectional data transmit).
|
Simon Goldschmidt <goldsimon> |
Tue 15 Sep 2009 07:32:17 AM UTC, comment #1: Thank you for such a good bug report.
|
Kieran Mansley <kieranm> |
Mon 14 Sep 2009 04:25:02 PM UTC, original submission:
I'm running 1.3.1, modified to simulate remote-end packet drops. (There's a 1/1000 chance that I'll drop 3 packets in a row every time *if_output() is called).
|
Sean Malloy <smalloy> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
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 5 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2009-10-28 | kieranm | Status | None | Fixed | |
Open/Closed | Open | Closed | |||
2009-10-15 | kieranm | Planned Release | 1.4.0 | 1.3.2 | |
2009-09-15 | kieranm | Assigned to | None | kieranm | |
Planned Release | 1.4.0 |
Powered by Savane 3.13-758e.
Corresponding source code
Ok, now we have Clause 2
"length of received packet is zero (i.e. no payload)"
It means that we should our self generate zero length ACK for each new segment in out of sequence queue.
But now we call tcp_ack_now(pcb).
If unsent queue has something, we send non zero length ACK.
Actually in RFCs I didn't found mentioning about zero length ACK,
only Stevens.