Page MenuHomeFreeBSD

D28634.id86323.diff
No OneTemporary

D28634.id86323.diff

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2564,6 +2564,7 @@
*/
if (th->th_ack != tp->snd_una ||
((tp->t_flags & TF_SACK_PERMIT) &&
+ (to.to_flags & TOF_SACK) &&
!sack_changed))
break;
else if (!tcp_timer_active(tp, TT_REXMT))
@@ -2617,6 +2618,7 @@
tp->snd_cwnd = imax(maxseg, tp->snd_nxt - tp->snd_recover +
tp->sackhint.sack_bytes_rexmit + (snd_cnt * maxseg));
} else if ((tp->t_flags & TF_SACK_PERMIT) &&
+ (to.to_flags & TOF_SACK) &&
IN_FASTRECOVERY(tp->t_flags)) {
int awnd;
@@ -2694,7 +2696,8 @@
tp->sackhint.recover_fs = max(1,
tp->snd_nxt - tp->snd_una);
}
- if (tp->t_flags & TF_SACK_PERMIT) {
+ if ((tp->t_flags & TF_SACK_PERMIT) &&
+ (to.to_flags & TOF_SACK)) {
TCPSTAT_INC(
tcps_sack_recovery_episode);
tp->snd_recover = tp->snd_nxt;

File Metadata

Mime Type
text/plain
Expires
Wed, Jun 24, 5:16 AM (12 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34274807
Default Alt Text
D28634.id86323.diff (994 B)

Event Timeline