iPXE currently repurposes the retransmission timer to hold the TCP connection in the TIME_WAIT state (i.e. waiting for up to 2*MSL in case we are required to re-ACK our peer's FIN due to a lost ACK). However, the fact that this timer is running will prevent such an ACK from ever being sent, since the logic in tcp_xmit() assumes that a running timer indicates that we ourselves are waiting for an ACK and so blocks the transmission. (We always wait for an ACK before sending our next packet, to keep our transmit data path as simple as possible.) Fix by using an entirely separate timer for the TIME_WAIT state, so that packets can still be sent. Reported-by: Piotr Jaroszyński <p.jaroszynski@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
84 |
|
84 |
|
85 |
|
85 |
|
86 |
|
86 |
|
|
87 |
|
|
|
88 |
|
|
87 |
|
89 |
|
88 |
|
90 |
|
89 |
|
91 |
|
|
|
||
94 |
|
96 |
|
95 |
|
97 |
|
96 |
|
98 |
|
|
99 |
|
|
97 |
|
100 |
|
98 |
|
101 |
|
99 |
|
102 |
|
|
|
||
229 |
|
232 |
|
230 |
|
233 |
|
231 |
|
234 |
|
|
235 |
|
|
232 |
|
236 |
|
233 |
|
237 |
|
234 |
|
238 |
|
|
|
||
514 |
|
518 |
|
515 |
|
519 |
|
516 |
|
520 |
|
517 |
|
|
|
518 |
|
|
|
|
521 |
|
|
|
522 |
|
|
519 |
|
523 |
|
520 |
|
524 |
|
521 |
|
525 |
|
522 |
|
526 |
|
523 |
|
|
|
524 |
|
527 |
|
525 |
|
528 |
|
526 |
|
529 |
|
|
|
||
530 |
|
533 |
|
531 |
|
534 |
|
532 |
|
535 |
|
533 |
|
|
|
534 |
|
536 |
|
535 |
|
537 |
|
536 |
|
538 |
|
537 |
|
|
|
538 |
|
|
|
539 |
|
|
|
540 |
|
|
|
|
539 |
|
|
|
540 |
|
|
|
541 |
|
|
541 |
|
542 |
|
542 |
|
543 |
|
543 |
|
544 |
|
|
|
||
548 |
|
549 |
|
549 |
|
550 |
|
550 |
|
551 |
|
|
552 |
|
|
|
553 |
|
|
|
554 |
|
|
|
555 |
|
|
|
556 |
|
|
|
557 |
|
|
|
558 |
|
|
|
559 |
|
|
|
560 |
|
|
|
561 |
|
|
|
562 |
|
|
|
563 |
|
|
|
564 |
|
|
|
565 |
|
|
|
566 |
|
|
|
567 |
|
|
|
568 |
|
|
|
569 |
|
|
|
570 |
|
|
|
571 |
|
|
|
572 |
|
|
551 |
|
573 |
|
552 |
|
574 |
|
553 |
|
575 |
|
|
|
||
1020 |
|
1042 |
|
1021 |
|
1043 |
|
1022 |
|
1044 |
|
1023 |
|
|
|
|
1045 |
|
|
|
1046 |
|
|
1024 |
|
1047 |
|
1025 |
|
1048 |
|
1026 |
|
1049 |
|