| 11283 | } |
| 11284 | |
| 11285 | static void |
| 11286 | rack_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 |
no test coverage detected