| 2411 | } |
| 2412 | |
| 2413 | static void |
| 2414 | rack_log_timely(struct tcp_rack *rack, |
| 2415 | uint32_t logged, uint64_t cur_bw, uint64_t low_bnd, |
| 2416 | uint64_t up_bnd, int line, uint8_t method) |
| 2417 | { |
| 2418 | if (rack->rc_tp->t_logstate != TCP_LOG_STATE_OFF) { |
| 2419 | union tcp_log_stackspecific log; |
| 2420 | struct timeval tv; |
| 2421 | |
| 2422 | memset(&log, 0, sizeof(log)); |
| 2423 | log.u_bbr.flex1 = logged; |
| 2424 | log.u_bbr.flex2 = rack->rc_gp_timely_inc_cnt; |
| 2425 | log.u_bbr.flex2 <<= 4; |
| 2426 | log.u_bbr.flex2 |= rack->rc_gp_timely_dec_cnt; |
| 2427 | log.u_bbr.flex2 <<= 4; |
| 2428 | log.u_bbr.flex2 |= rack->rc_gp_incr; |
| 2429 | log.u_bbr.flex2 <<= 4; |
| 2430 | log.u_bbr.flex2 |= rack->rc_gp_bwred; |
| 2431 | log.u_bbr.flex3 = rack->rc_gp_incr; |
| 2432 | log.u_bbr.flex4 = rack->r_ctl.rack_per_of_gp_ss; |
| 2433 | log.u_bbr.flex5 = rack->r_ctl.rack_per_of_gp_ca; |
| 2434 | log.u_bbr.flex6 = rack->r_ctl.rack_per_of_gp_rec; |
| 2435 | log.u_bbr.flex7 = rack->rc_gp_bwred; |
| 2436 | log.u_bbr.flex8 = method; |
| 2437 | log.u_bbr.cur_del_rate = cur_bw; |
| 2438 | log.u_bbr.delRate = low_bnd; |
| 2439 | log.u_bbr.bw_inuse = up_bnd; |
| 2440 | log.u_bbr.rttProp = rack_get_bw(rack); |
| 2441 | log.u_bbr.pkt_epoch = line; |
| 2442 | log.u_bbr.pkts_out = rack->r_ctl.rc_rtt_diff; |
| 2443 | log.u_bbr.timeStamp = tcp_get_usecs(&tv); |
| 2444 | log.u_bbr.inflight = ctf_flight_size(rack->rc_tp, rack->r_ctl.rc_sacked); |
| 2445 | log.u_bbr.epoch = rack->r_ctl.rc_gp_srtt; |
| 2446 | log.u_bbr.lt_epoch = rack->r_ctl.rc_prev_gp_srtt; |
| 2447 | log.u_bbr.cwnd_gain = rack->rc_dragged_bottom; |
| 2448 | log.u_bbr.cwnd_gain <<= 1; |
| 2449 | log.u_bbr.cwnd_gain |= rack->rc_gp_saw_rec; |
| 2450 | log.u_bbr.cwnd_gain <<= 1; |
| 2451 | log.u_bbr.cwnd_gain |= rack->rc_gp_saw_ss; |
| 2452 | log.u_bbr.cwnd_gain <<= 1; |
| 2453 | log.u_bbr.cwnd_gain |= rack->rc_gp_saw_ca; |
| 2454 | log.u_bbr.lost = rack->r_ctl.rc_loss_count; |
| 2455 | TCP_LOG_EVENTP(rack->rc_tp, NULL, |
| 2456 | &rack->rc_inp->inp_socket->so_rcv, |
| 2457 | &rack->rc_inp->inp_socket->so_snd, |
| 2458 | TCP_TIMELY_WORK, 0, |
| 2459 | 0, &log, false, &tv); |
| 2460 | } |
| 2461 | } |
| 2462 | |
| 2463 | static int |
| 2464 | rack_bw_can_be_raised(struct tcp_rack *rack, uint64_t cur_bw, uint64_t last_bw_est, uint16_t mult) |
no test coverage detected