| 2801 | } |
| 2802 | |
| 2803 | static void |
| 2804 | bbr_log_exit_gain(struct tcp_bbr *bbr, uint32_t cts, int32_t entry_method) |
| 2805 | { |
| 2806 | if (bbr->rc_tp->t_logstate != TCP_LOG_STATE_OFF) { |
| 2807 | union tcp_log_stackspecific log; |
| 2808 | |
| 2809 | bbr_fill_in_logging_data(bbr, &log.u_bbr, cts); |
| 2810 | log.u_bbr.flex1 = bbr->r_ctl.rc_target_at_state; |
| 2811 | log.u_bbr.flex2 = (bbr->rc_tp->t_maxseg - bbr->rc_last_options); |
| 2812 | log.u_bbr.flex3 = bbr->r_ctl.gain_epoch; |
| 2813 | log.u_bbr.flex4 = bbr->r_ctl.rc_pace_max_segs; |
| 2814 | log.u_bbr.flex5 = bbr->r_ctl.rc_pace_min_segs; |
| 2815 | log.u_bbr.flex6 = bbr->r_ctl.rc_bbr_state_atflight; |
| 2816 | log.u_bbr.flex7 = 0; |
| 2817 | log.u_bbr.flex8 = entry_method; |
| 2818 | TCP_LOG_EVENTP(bbr->rc_tp, NULL, |
| 2819 | &bbr->rc_inp->inp_socket->so_rcv, |
| 2820 | &bbr->rc_inp->inp_socket->so_snd, |
| 2821 | BBR_LOG_EXIT_GAIN, 0, |
| 2822 | 0, &log, false, &bbr->rc_tv); |
| 2823 | } |
| 2824 | } |
| 2825 | |
| 2826 | static void |
| 2827 | bbr_log_settings_change(struct tcp_bbr *bbr, int settings_desired) |
no test coverage detected