MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rack_log_pacing_delay_calc

Function rack_log_pacing_delay_calc

freebsd/netinet/tcp_stacks/rack.c:11285–11341  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11283}
11284
11285static void
11286rack_log_pacing_delay_calc(struct tcp_rack *rack, uint32_t len, uint32_t slot,
11287 uint64_t bw_est, uint64_t bw, uint64_t len_time, int method,
11288 int line, struct rack_sendmap *rsm)
11289{
11290 if (rack->rc_tp->t_logstate != TCP_LOG_STATE_OFF) {
11291 union tcp_log_stackspecific log;
11292 struct timeval tv;
11293
11294 memset(&log, 0, sizeof(log));
11295 log.u_bbr.flex1 = slot;
11296 log.u_bbr.flex2 = len;
11297 log.u_bbr.flex3 = rack->r_ctl.rc_pace_min_segs;
11298 log.u_bbr.flex4 = rack->r_ctl.rc_pace_max_segs;
11299 log.u_bbr.flex5 = rack->r_ctl.rack_per_of_gp_ss;
11300 log.u_bbr.flex6 = rack->r_ctl.rack_per_of_gp_ca;
11301 log.u_bbr.use_lt_bw = rack->app_limited_needs_set;
11302 log.u_bbr.use_lt_bw <<= 1;
11303 log.u_bbr.use_lt_bw = rack->rc_gp_filled;
11304 log.u_bbr.use_lt_bw <<= 1;
11305 log.u_bbr.use_lt_bw |= rack->measure_saw_probe_rtt;
11306 log.u_bbr.use_lt_bw <<= 1;
11307 log.u_bbr.use_lt_bw |= rack->in_probe_rtt;
11308 log.u_bbr.pkt_epoch = line;
11309 log.u_bbr.applimited = rack->r_ctl.rack_per_of_gp_rec;
11310 log.u_bbr.bw_inuse = bw_est;
11311 log.u_bbr.delRate = bw;
11312 if (rack->r_ctl.gp_bw == 0)
11313 log.u_bbr.cur_del_rate = 0;
11314 else
11315 log.u_bbr.cur_del_rate = rack_get_bw(rack);
11316 log.u_bbr.rttProp = len_time;
11317 log.u_bbr.pkts_out = rack->r_ctl.rc_rack_min_rtt;
11318 log.u_bbr.lost = rack->r_ctl.rc_probertt_sndmax_atexit;
11319 log.u_bbr.pacing_gain = rack_get_output_gain(rack, rsm);
11320 if (rack->r_ctl.cwnd_to_use < rack->rc_tp->snd_ssthresh) {
11321 /* We are in slow start */
11322 log.u_bbr.flex7 = 1;
11323 } else {
11324 /* we are on congestion avoidance */
11325 log.u_bbr.flex7 = 0;
11326 }
11327 log.u_bbr.flex8 = method;
11328 log.u_bbr.timeStamp = tcp_get_usecs(&tv);
11329 log.u_bbr.inflight = ctf_flight_size(rack->rc_tp, rack->r_ctl.rc_sacked);
11330 log.u_bbr.cwnd_gain = rack->rc_gp_saw_rec;
11331 log.u_bbr.cwnd_gain <<= 1;
11332 log.u_bbr.cwnd_gain |= rack->rc_gp_saw_ss;
11333 log.u_bbr.cwnd_gain <<= 1;
11334 log.u_bbr.cwnd_gain |= rack->rc_gp_saw_ca;
11335 TCP_LOG_EVENTP(rack->rc_tp, NULL,
11336 &rack->rc_inp->inp_socket->so_rcv,
11337 &rack->rc_inp->inp_socket->so_snd,
11338 BBR_LOG_HPTSI_CALC, 0,
11339 0, &log, false, &tv);
11340 }
11341}
11342

Callers 8

rack_need_set_testFunction · 0.85
pace_to_fill_cwndFunction · 0.85
rack_get_pacing_delayFunction · 0.85
rack.cFile · 0.85
rack_update_segFunction · 0.85
rack_set_sockoptFunction · 0.85

Calls 5

memsetFunction · 0.85
rack_get_bwFunction · 0.85
rack_get_output_gainFunction · 0.85
tcp_get_usecsFunction · 0.85
ctf_flight_sizeFunction · 0.85

Tested by

no test coverage detected