Page MenuHomeFreeBSD

D30413.diff
No OneTemporary

D30413.diff

diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -6058,8 +6058,12 @@
if (nrsm->r_flags & RACK_HAS_SYN)
nrsm->r_flags &= ~RACK_HAS_SYN;
/* Now if we have a FIN flag we keep it on the right edge */
- if (nrsm->r_flags & RACK_HAS_FIN)
- nrsm->r_flags &= ~RACK_HAS_FIN;
+ if (rsm->r_flags & RACK_HAS_FIN)
+ rsm->r_flags &= ~RACK_HAS_FIN;
+ /* Push bit must go to the right edge as well */
+ if (rsm->r_flags & RACK_HAD_PUSH)
+ rsm->r_flags &= ~RACK_HAD_PUSH;
+
/*
* Now we need to find nrsm's new location in the mbuf chain
* we basically calculate a new offset, which is soff +
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -3407,6 +3407,15 @@
tp->snd_recover = tp->snd_max;
if (tp->t_flags & TF_SACK_PERMIT)
EXIT_FASTRECOVERY(tp->t_flags);
+ if (tp->t_fb->tfb_tcp_mtu_chg != NULL) {
+ /*
+ * Conceptually the snd_nxt setting
+ * and freeing sack holes should
+ * be done by the default stacks
+ * own tfb_tcp_mtu_chg().
+ */
+ tp->t_fb->tfb_tcp_mtu_chg(tp);
+ }
tp->t_fb->tfb_tcp_output(tp);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Dec 26, 12:03 PM (11 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15604521
Default Alt Text
D30413.diff (1 KB)

Event Timeline