Page MenuHomeFreeBSD

D26446.id.diff
No OneTemporary

D26446.id.diff

Index: head/sys/netinet/tcp_output.c
===================================================================
--- head/sys/netinet/tcp_output.c
+++ head/sys/netinet/tcp_output.c
@@ -336,7 +336,7 @@
sendalot = 1;
TCPSTAT_INC(tcps_sack_rexmits);
TCPSTAT_ADD(tcps_sack_rexmit_bytes,
- min(len, tp->t_maxseg));
+ min(len, tcp_maxseg(tp)));
}
}
after_sack_rexmit:
@@ -858,7 +858,6 @@
if (flags & TH_SYN)
to.to_flags |= TOF_SACKPERM;
else if (TCPS_HAVEESTABLISHED(tp->t_state) &&
- (tp->t_flags & TF_SACK_PERMIT) &&
tp->rcv_numsacks > 0) {
to.to_flags |= TOF_SACK;
to.to_nsacks = tp->rcv_numsacks;
Index: head/sys/netinet/tcp_sack.c
===================================================================
--- head/sys/netinet/tcp_sack.c
+++ head/sys/netinet/tcp_sack.c
@@ -787,15 +787,16 @@
tcp_sack_partialack(struct tcpcb *tp, struct tcphdr *th)
{
int num_segs = 1;
+ u_int maxseg = tcp_maxseg(tp);
INP_WLOCK_ASSERT(tp->t_inpcb);
tcp_timer_activate(tp, TT_REXMT, 0);
tp->t_rtttime = 0;
/* Send one or 2 segments based on how much new data was acked. */
- if ((BYTES_THIS_ACK(tp, th) / tp->t_maxseg) >= 2)
+ if ((BYTES_THIS_ACK(tp, th) / maxseg) >= 2)
num_segs = 2;
tp->snd_cwnd = (tp->sackhint.sack_bytes_rexmit +
- (tp->snd_nxt - tp->snd_recover) + num_segs * tp->t_maxseg);
+ (tp->snd_nxt - tp->snd_recover) + num_segs * maxseg);
if (tp->snd_cwnd > tp->snd_ssthresh)
tp->snd_cwnd = tp->snd_ssthresh;
tp->t_flags |= TF_ACKNOW;

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 31, 8:35 AM (11 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30600273
Default Alt Text
D26446.id.diff (1 KB)

Event Timeline