Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_sack.c
Show First 20 Lines • Show All 866 Lines • ▼ Show 20 Lines | if ((V_tcp_do_newsack) && | ||||
* Exclude FIN sequence space in | * Exclude FIN sequence space in | ||||
* the hole for the rescue retransmission, | * the hole for the rescue retransmission, | ||||
* and also don't create a hole, if only | * and also don't create a hole, if only | ||||
* the ACK for a FIN is outstanding. | * the ACK for a FIN is outstanding. | ||||
*/ | */ | ||||
tcp_seq highdata = tp->snd_max; | tcp_seq highdata = tp->snd_max; | ||||
if (tp->t_flags & TF_SENTFIN) | if (tp->t_flags & TF_SENTFIN) | ||||
highdata--; | highdata--; | ||||
if (th->th_ack != highdata) | if (th->th_ack != highdata) { | ||||
tp->snd_fack = th->th_ack; | |||||
(void)tcp_sackhole_insert(tp, SEQ_MAX(th->th_ack, | (void)tcp_sackhole_insert(tp, SEQ_MAX(th->th_ack, | ||||
highdata - maxseg), highdata, NULL); | highdata - maxseg), highdata, NULL); | ||||
} | |||||
} | } | ||||
(void) tp->t_fb->tfb_tcp_output(tp); | (void) tp->t_fb->tfb_tcp_output(tp); | ||||
} | } | ||||
#if 0 | #if 0 | ||||
/* | /* | ||||
* Debug version of tcp_sack_output() that walks the scoreboard. Used for | * Debug version of tcp_sack_output() that walks the scoreboard. Used for | ||||
* now to sanity check the hint. | * now to sanity check the hint. | ||||
▲ Show 20 Lines • Show All 93 Lines • Show Last 20 Lines |