Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet/tcp_stacks/rack_bbr_common.c
Show First 20 Lines • Show All 542 Lines • ▼ Show 20 Lines | if (todrop > tlen | ||||
TCPSTAT_ADD(tcps_rcvdupbyte, todrop); | TCPSTAT_ADD(tcps_rcvdupbyte, todrop); | ||||
} else { | } else { | ||||
TCPSTAT_INC(tcps_rcvpartduppack); | TCPSTAT_INC(tcps_rcvpartduppack); | ||||
TCPSTAT_ADD(tcps_rcvpartdupbyte, todrop); | TCPSTAT_ADD(tcps_rcvpartdupbyte, todrop); | ||||
} | } | ||||
/* | /* | ||||
* DSACK - add SACK block for dropped range | * DSACK - add SACK block for dropped range | ||||
*/ | */ | ||||
if (tp->t_flags & TF_SACK_PERMIT) { | if ((todrop > 0) && (tp->t_flags & TF_SACK_PERMIT)) { | ||||
tcp_update_sack_list(tp, th->th_seq, | tcp_update_sack_list(tp, th->th_seq, | ||||
th->th_seq + todrop); | th->th_seq + todrop); | ||||
/* | /* | ||||
* ACK now, as the next in-sequence segment | * ACK now, as the next in-sequence segment | ||||
* will clear the DSACK block again | * will clear the DSACK block again | ||||
*/ | */ | ||||
tp->t_flags |= TF_ACKNOW; | tp->t_flags |= TF_ACKNOW; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 354 Lines • Show Last 20 Lines |