Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet/tcp_stacks/rack.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 8,487 Lines • ▼ Show 20 Lines | out: | ||||
if (sub_from_prr && (error == 0)) { | if (sub_from_prr && (error == 0)) { | ||||
rack->r_ctl.rc_prr_sndcnt -= len; | rack->r_ctl.rc_prr_sndcnt -= len; | ||||
} | } | ||||
sub_from_prr = 0; | sub_from_prr = 0; | ||||
rack_log_output(tp, &to, len, rack_seq, (uint8_t) flags, error, cts, | rack_log_output(tp, &to, len, rack_seq, (uint8_t) flags, error, cts, | ||||
pass, rsm); | pass, rsm); | ||||
if ((tp->t_flags & TF_FORCEDATA) == 0 || | if ((tp->t_flags & TF_FORCEDATA) == 0 || | ||||
(rack->rc_in_persist == 0)) { | (rack->rc_in_persist == 0)) { | ||||
#ifdef NETFLIX_STATS | |||||
tcp_seq startseq = tp->snd_nxt; | tcp_seq startseq = tp->snd_nxt; | ||||
#endif | |||||
/* | /* | ||||
* Advance snd_nxt over sequence space of this segment. | * Advance snd_nxt over sequence space of this segment. | ||||
*/ | */ | ||||
if (error) | if (error) | ||||
/* We don't log or do anything with errors */ | /* We don't log or do anything with errors */ | ||||
goto timer; | goto timer; | ||||
Show All 15 Lines | if (SEQ_GT(tp->snd_nxt, tp->snd_max)) { | ||||
/* | /* | ||||
* Update the time we just added data since | * Update the time we just added data since | ||||
* none was outstanding. | * none was outstanding. | ||||
*/ | */ | ||||
rack_log_progress_event(rack, tp, ticks, PROGRESS_START, __LINE__); | rack_log_progress_event(rack, tp, ticks, PROGRESS_START, __LINE__); | ||||
tp->t_acktime = ticks; | tp->t_acktime = ticks; | ||||
} | } | ||||
tp->snd_max = tp->snd_nxt; | tp->snd_max = tp->snd_nxt; | ||||
/* | |||||
* Time this transmission if not a retransmission and | |||||
* not currently timing anything. | |||||
* This is only relevant in case of switching back to | |||||
* the base stack. | |||||
*/ | |||||
if (tp->t_rtttime == 0) { | |||||
tp->t_rtttime = ticks; | |||||
tp->t_rtseq = startseq; | |||||
TCPSTAT_INC(tcps_segstimed); | |||||
} | |||||
#ifdef NETFLIX_STATS | #ifdef NETFLIX_STATS | ||||
if (!(tp->t_flags & TF_GPUTINPROG) && len) { | if (!(tp->t_flags & TF_GPUTINPROG) && len) { | ||||
tp->t_flags |= TF_GPUTINPROG; | tp->t_flags |= TF_GPUTINPROG; | ||||
tp->gput_seq = startseq; | tp->gput_seq = startseq; | ||||
tp->gput_ack = startseq + | tp->gput_ack = startseq + | ||||
ulmin(sbavail(sb) - sb_offset, sendwin); | ulmin(sbavail(sb) - sb_offset, sendwin); | ||||
tp->gput_ts = tcp_ts_getticks(); | tp->gput_ts = tcp_ts_getticks(); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 610 Lines • Show Last 20 Lines |