Page MenuHomeFreeBSD

D32158.id95784.diff
No OneTemporary

D32158.id95784.diff

Index: sys/netinet/tcp_stacks/rack.c
===================================================================
--- sys/netinet/tcp_stacks/rack.c
+++ sys/netinet/tcp_stacks/rack.c
@@ -9402,11 +9402,12 @@
}
#endif
-static void
+static int
rack_note_dsack(struct tcp_rack *rack, tcp_seq start, tcp_seq end)
{
uint32_t am, l_end;
+ int was_tlp = 0;
if (SEQ_GT(end, start))
am = end - start;
@@ -9422,6 +9423,7 @@
* our previous retransmit TLP.
*/
rack_log_dsack_event(rack, 7, __LINE__, start, end);
+ was_tlp = 1;
goto skip_dsack_round;
}
if (rack->rc_last_sent_tlp_seq_valid) {
@@ -9433,6 +9435,7 @@
* for reordering purposes.
*/
rack_log_dsack_event(rack, 7, __LINE__, start, end);
+ was_tlp = 1;
goto skip_dsack_round;
}
}
@@ -9462,6 +9465,7 @@
rack->r_ctl.retran_during_recovery = 0;
rack->r_ctl.dsack_byte_cnt = 0;
}
+ return (was_tlp);
}
static void
@@ -9614,13 +9618,15 @@
num_sack_blks++;
} else if (SEQ_LEQ(sack.start, th_ack) &&
SEQ_LEQ(sack.end, th_ack)) {
+ int was_tlp;
+
+ was_tlp = rack_note_dsack(rack, sack.start, sack.end);
#ifdef NETFLIX_STATS
/*
* Its a D-SACK block.
*/
- tcp_record_dsack(sack.start, sack.end);
+ tcp_record_dsack(tp, sack.start, sack.end, was_tlp);
#endif
- rack_note_dsack(rack, sack.start, sack.end);
}
}
if (rack->rc_dsack_round_seen) {

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 16, 12:24 PM (8 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31603133
Default Alt Text
D32158.id95784.diff (1 KB)

Event Timeline