Page MenuHomeFreeBSD

D29376.diff
No OneTemporary

D29376.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
@@ -3179,7 +3179,9 @@
thflags = tcp_reass(tp, th, &temp, &tlen, m);
tp->t_flags |= TF_ACKNOW;
}
- if ((tp->t_flags & TF_SACK_PERMIT) && (save_tlen > 0)) {
+ if ((tp->t_flags & TF_SACK_PERMIT) &&
+ (save_tlen > 0) &&
+ TCPS_HAVEESTABLISHED(tp->t_state)) {
if ((tlen == 0) && (SEQ_LT(save_start, save_rnxt))) {
/*
* DSACK actually handled in the fastpath
diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c
--- a/sys/netinet/tcp_stacks/bbr.c
+++ b/sys/netinet/tcp_stacks/bbr.c
@@ -8371,7 +8371,9 @@
thflags = tcp_reass(tp, th, &temp, &tlen, m);
tp->t_flags |= TF_ACKNOW;
}
- if ((tp->t_flags & TF_SACK_PERMIT) && (save_tlen > 0)) {
+ if ((tp->t_flags & TF_SACK_PERMIT) &&
+ (save_tlen > 0) &&
+ TCPS_HAVEESTABLISHED(tp->t_state)) {
if ((tlen == 0) && (SEQ_LT(save_start, save_rnxt))) {
/*
* DSACK actually handled in the fastpath
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
@@ -8683,7 +8683,9 @@
thflags = tcp_reass(tp, th, &temp, &tlen, m);
tp->t_flags |= TF_ACKNOW;
}
- if ((tp->t_flags & TF_SACK_PERMIT) && (save_tlen > 0)) {
+ if ((tp->t_flags & TF_SACK_PERMIT) &&
+ (save_tlen > 0) &&
+ TCPS_HAVEESTABLISHED(tp->t_state)) {
if ((tlen == 0) && (SEQ_LT(save_start, save_rnxt))) {
/*
* DSACK actually handled in the fastpath

File Metadata

Mime Type
text/plain
Expires
Wed, Feb 5, 8:32 AM (20 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16470912
Default Alt Text
D29376.diff (1 KB)

Event Timeline