Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F137890314
D26269.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D26269.diff
View Options
Index: head/sys/netinet/tcp_stacks/bbr.c
===================================================================
--- head/sys/netinet/tcp_stacks/bbr.c
+++ head/sys/netinet/tcp_stacks/bbr.c
@@ -10281,6 +10281,8 @@
*/
return (EAGAIN);
}
+ if (tp->t_flags & TF_SENTFIN)
+ return (EINVAL);
if ((tp->t_flags & TF_SACK_PERMIT) || bbr_sack_not_required) {
return (0);
}
Index: head/sys/netinet/tcp_stacks/rack.c
===================================================================
--- head/sys/netinet/tcp_stacks/rack.c
+++ head/sys/netinet/tcp_stacks/rack.c
@@ -10451,7 +10451,12 @@
rsm->r_rtr_cnt = 1;
rsm->r_rtr_bytes = 0;
rsm->r_start = tp->snd_una;
- rsm->r_end = tp->snd_max;
+ if (tp->t_flags & TF_SENTFIN) {
+ rsm->r_end = tp->snd_max - 1;
+ rsm->r_flags |= RACK_HAS_FIN;
+ } else {
+ rsm->r_end = tp->snd_max;
+ }
rsm->usec_orig_send = us_cts;
rsm->r_dupack = 0;
insret = RB_INSERT(rack_rb_tree_head, &rack->r_ctl.rc_mtree, rsm);
@@ -10518,8 +10523,21 @@
if ((tp->t_state == TCPS_SYN_SENT) ||
(tp->t_state == TCPS_SYN_RECEIVED)) {
/*
- * We really don't know you have to get to ESTAB or beyond
- * to tell.
+ * We really don't know if you support sack,
+ * you have to get to ESTAB or beyond to tell.
+ */
+ return (EAGAIN);
+ }
+ if ((tp->t_flags & TF_SENTFIN) && ((tp->snd_max - tp->snd_una) > 1)) {
+ /*
+ * Rack will only send a FIN after all data is acknowledged.
+ * So in this case we have more data outstanding. We can't
+ * switch stacks until either all data and only the FIN
+ * is left (in which case rack_init() now knows how
+ * to deal with that) <or> all is acknowledged and we
+ * are only left with incoming data, though why you
+ * would want to switch to rack after all data is acknowledged
+ * I have no idea (rrs)!
*/
return (EAGAIN);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 27, 10:33 PM (15 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26264750
Default Alt Text
D26269.diff (1 KB)
Attached To
Mode
D26269: Another syzkaller crash
Attached
Detach File
Event Timeline
Log In to Comment