Changeset View
Changeset View
Standalone View
Standalone View
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 11,572 Lines • ▼ Show 20 Lines | if (cur != NULL) { | ||||
log.u_bbr.cur_del_rate = cur->cspr; | log.u_bbr.cur_del_rate = cur->cspr; | ||||
log.u_bbr.bw_inuse = cur->start; | log.u_bbr.bw_inuse = cur->start; | ||||
log.u_bbr.applimited = (uint32_t)(cur->end & 0x00000000ffffffff); | log.u_bbr.applimited = (uint32_t)(cur->end & 0x00000000ffffffff); | ||||
log.u_bbr.delivered = (uint32_t)((cur->end >> 32) & 0x00000000ffffffff) ; | log.u_bbr.delivered = (uint32_t)((cur->end >> 32) & 0x00000000ffffffff) ; | ||||
log.u_bbr.epoch = (uint32_t)(cur->deadline & 0x00000000ffffffff); | log.u_bbr.epoch = (uint32_t)(cur->deadline & 0x00000000ffffffff); | ||||
log.u_bbr.lt_epoch = (uint32_t)((cur->deadline >> 32) & 0x00000000ffffffff) ; | log.u_bbr.lt_epoch = (uint32_t)((cur->deadline >> 32) & 0x00000000ffffffff) ; | ||||
log.u_bbr.bbr_state = 1; | log.u_bbr.bbr_state = 1; | ||||
off = (uint64_t)(cur) - (uint64_t)(&rack->rc_tp->t_http_info[0]); | off = (uint64_t)(cur) - (uint64_t)(&rack->rc_tp->t_http_info[0]); | ||||
log.u_bbr.bbr_substate = (uint8_t)(off / sizeof(struct http_sendfile_track)); | log.u_bbr.use_lt_bw = (uint8_t)(off / sizeof(struct http_sendfile_track)); | ||||
} else { | } else { | ||||
log.u_bbr.flex2 = err; | log.u_bbr.flex2 = err; | ||||
} | } | ||||
/* | /* | ||||
* Fill in flex7 to be CHD (catchup|hybrid|DGP) | * Fill in flex7 to be CHD (catchup|hybrid|DGP) | ||||
*/ | */ | ||||
log.u_bbr.flex7 = rack->rc_catch_up; | log.u_bbr.flex7 = rack->rc_catch_up; | ||||
log.u_bbr.flex7 <<= 1; | log.u_bbr.flex7 <<= 1; | ||||
▲ Show 20 Lines • Show All 4,898 Lines • ▼ Show 20 Lines | #endif | ||||
/* | /* | ||||
* Check to see if we need to skip any output plans. This | * Check to see if we need to skip any output plans. This | ||||
* can happen in the non-LRO path where we are pacing and | * can happen in the non-LRO path where we are pacing and | ||||
* must process the ack coming in but need to defer sending | * must process the ack coming in but need to defer sending | ||||
* anything becase a pacing timer is running. | * anything becase a pacing timer is running. | ||||
*/ | */ | ||||
us_cts = tcp_tv_to_usectick(tv); | us_cts = tcp_tv_to_usectick(tv); | ||||
if ((rack->rc_always_pace == 1) && | if ((rack->rc_always_pace == 1) && | ||||
(rack->rc_ack_can_sendout_data == 0) && | |||||
(rack->r_ctl.rc_hpts_flags & PACE_PKT_OUTPUT) && | (rack->r_ctl.rc_hpts_flags & PACE_PKT_OUTPUT) && | ||||
(TSTMP_LT(us_cts, rack->r_ctl.rc_last_output_to))) { | (TSTMP_LT(us_cts, rack->r_ctl.rc_last_output_to))) { | ||||
/* | /* | ||||
* Ok conditions are right for queuing the packets | * Ok conditions are right for queuing the packets | ||||
* but we do have to check the flags in the inp, it | * but we do have to check the flags in the inp, it | ||||
* could be, if a sack is present, we want to be awoken and | * could be, if a sack is present, we want to be awoken and | ||||
* so should process the packets. | * so should process the packets. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 7,585 Lines • Show Last 20 Lines |