mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Fix two TCP RACK issues:
* Convert the TCP delayed ACK timer from ms to ticks as required. This fixes the timer on platforms with hz != 1000. * Don't delay acknowledgements which report duplicate data using DSACKs. Reviewed by: rrs@ MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D21512
This commit is contained in:
parent
59e50df3cd
commit
191ae5bfa9
1 changed files with 6 additions and 1 deletions
|
|
@ -1790,6 +1790,11 @@ rack_drop_checks(struct tcpopt *to, struct mbuf *m, struct tcphdr *th, struct tc
|
|||
*/
|
||||
tcp_update_sack_list(tp, th->th_seq,
|
||||
th->th_seq + todrop);
|
||||
/*
|
||||
* ACK now, as the next in-sequence segment
|
||||
* will clear the DSACK block again
|
||||
*/
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
}
|
||||
*drop_hdrlen += todrop; /* drop from the top afterwards */
|
||||
th->th_seq += todrop;
|
||||
|
|
@ -2338,7 +2343,7 @@ rack_start_hpts_timer(struct tcp_rack *rack, struct tcpcb *tp, uint32_t cts, int
|
|||
}
|
||||
hpts_timeout = rack_timer_start(tp, rack, cts);
|
||||
if (tp->t_flags & TF_DELACK) {
|
||||
delayed_ack = tcp_delacktime;
|
||||
delayed_ack = TICKS_2_MSEC(tcp_delacktime);
|
||||
rack->r_ctl.rc_hpts_flags |= PACE_TMR_DELACK;
|
||||
}
|
||||
if (delayed_ack && ((hpts_timeout == 0) ||
|
||||
|
|
|
|||
Loading…
Reference in a new issue