Page MenuHomeFreeBSD

D55460.diff
No OneTemporary

D55460.diff

Index: sys/netinet/tcp_ecn.c
===================================================================
--- sys/netinet/tcp_ecn.c
+++ sys/netinet/tcp_ecn.c
@@ -353,7 +353,10 @@
}
if (thflags & TH_CWR) {
tp->t_flags2 &= ~TF2_ECN_SND_ECE;
- tp->t_flags |= TF_ACKNOW;
+ if ((tp->t_state == TCPS_ESTABLISHED) ||
+ (tp->t_state == TCPS_FIN_WAIT_1) ||
+ (tp->t_state == TCPS_FIN_WAIT_2))
+ tp->t_flags |= TF_ACKNOW;
}
if ((iptos & IPTOS_ECN_MASK) == IPTOS_ECN_CE)
tp->t_flags2 |= TF2_ECN_SND_ECE;
Index: sys/netinet/tcp_input.c
===================================================================
--- sys/netinet/tcp_input.c
+++ sys/netinet/tcp_input.c
@@ -539,9 +539,12 @@
CC_ALGO(tp)->ecnpkt_handler(&tp->t_ccv);
- if (tp->t_ccv.flags & CCF_ACKNOW) {
- tcp_timer_activate(tp, TT_DELACK, tcp_delacktime);
+ if (((tp->t_state == TCPS_ESTABLISHED) ||
+ (tp->t_state == TCPS_FIN_WAIT_1) ||
+ (tp->t_state == TCPS_FIN_WAIT_2)) &&
+ (tp->t_ccv.flags & CCF_ACKNOW)) {
tp->t_flags |= TF_ACKNOW;
+ tp->t_ccv.flags &= ~CCF_ACKNOW;
}
}
}
Index: sys/netinet/tcp_stacks/rack.c
===================================================================
--- sys/netinet/tcp_stacks/rack.c
+++ sys/netinet/tcp_stacks/rack.c
@@ -15709,6 +15709,8 @@
tcp_packets_this_ack(tp, ae->ack),
ae->codepoint))
rack_cong_signal(tp, CC_ECN, ae->ack, __LINE__);
+ if (tp->t_flags & TF_ACKNOW)
+ rack->r_wanted_output = 1;
#ifdef TCP_ACCOUNTING
/* Count for the specific type of ack in */
if (tp->t_flags2 & TF2_TCP_ACCOUNTING) {
@@ -16566,7 +16568,8 @@
tcp_packets_this_ack(tp, th->th_ack),
iptos))
rack_cong_signal(tp, CC_ECN, th->th_ack, __LINE__);
-
+ if (tp->t_flags & TF_ACKNOW)
+ rack->r_wanted_output = 1;
/*
* If echoed timestamp is later than the current time, fall back to
* non RFC1323 RTT calculation. Normalize timestamp if syncookies

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 18, 10:09 AM (5 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31712751
Default Alt Text
D55460.diff (1 KB)

Event Timeline