| 1735 | } |
| 1736 | |
| 1737 | static void |
| 1738 | rack_log_rtt_upd(struct tcpcb *tp, struct tcp_rack *rack, uint32_t t, uint32_t len, |
| 1739 | struct rack_sendmap *rsm, int conf) |
| 1740 | { |
| 1741 | if (tp->t_logstate != TCP_LOG_STATE_OFF) { |
| 1742 | union tcp_log_stackspecific log; |
| 1743 | struct timeval tv; |
| 1744 | memset(&log.u_bbr, 0, sizeof(log.u_bbr)); |
| 1745 | log.u_bbr.inhpts = rack->rc_inp->inp_in_hpts; |
| 1746 | log.u_bbr.ininput = rack->rc_inp->inp_in_input; |
| 1747 | log.u_bbr.flex1 = t; |
| 1748 | log.u_bbr.flex2 = len; |
| 1749 | log.u_bbr.flex3 = rack->r_ctl.rc_rack_min_rtt * HPTS_USEC_IN_MSEC; |
| 1750 | log.u_bbr.flex4 = rack->r_ctl.rack_rs.rs_rtt_lowest * HPTS_USEC_IN_MSEC; |
| 1751 | log.u_bbr.flex5 = rack->r_ctl.rack_rs.rs_rtt_highest * HPTS_USEC_IN_MSEC; |
| 1752 | log.u_bbr.flex6 = rack->r_ctl.rack_rs.rs_rtt_cnt; |
| 1753 | log.u_bbr.flex7 = conf; |
| 1754 | log.u_bbr.rttProp = (uint64_t)rack->r_ctl.rack_rs.rs_rtt_tot * (uint64_t)HPTS_USEC_IN_MSEC; |
| 1755 | log.u_bbr.flex8 = rack->r_ctl.rc_rate_sample_method; |
| 1756 | if (rack->rack_no_prr) |
| 1757 | log.u_bbr.pkts_out = 0; |
| 1758 | else |
| 1759 | log.u_bbr.pkts_out = rack->r_ctl.rc_prr_sndcnt; |
| 1760 | log.u_bbr.timeStamp = tcp_get_usecs(&tv); |
| 1761 | log.u_bbr.delivered = rack->r_ctl.rack_rs.rs_us_rtt; |
| 1762 | log.u_bbr.pkts_out = rack->r_ctl.rack_rs.rs_flags; |
| 1763 | log.u_bbr.inflight = ctf_flight_size(rack->rc_tp, rack->r_ctl.rc_sacked); |
| 1764 | if (rsm) { |
| 1765 | log.u_bbr.pkt_epoch = rsm->r_start; |
| 1766 | log.u_bbr.lost = rsm->r_end; |
| 1767 | log.u_bbr.cwnd_gain = rsm->r_rtr_cnt; |
| 1768 | } else { |
| 1769 | /* Its a SYN */ |
| 1770 | log.u_bbr.pkt_epoch = rack->rc_tp->iss; |
| 1771 | log.u_bbr.lost = 0; |
| 1772 | log.u_bbr.cwnd_gain = 0; |
| 1773 | } |
| 1774 | /* Write out general bits of interest rrs here */ |
| 1775 | log.u_bbr.use_lt_bw = rack->rc_highly_buffered; |
| 1776 | log.u_bbr.use_lt_bw <<= 1; |
| 1777 | log.u_bbr.use_lt_bw |= rack->forced_ack; |
| 1778 | log.u_bbr.use_lt_bw <<= 1; |
| 1779 | log.u_bbr.use_lt_bw |= rack->rc_gp_dyn_mul; |
| 1780 | log.u_bbr.use_lt_bw <<= 1; |
| 1781 | log.u_bbr.use_lt_bw |= rack->in_probe_rtt; |
| 1782 | log.u_bbr.use_lt_bw <<= 1; |
| 1783 | log.u_bbr.use_lt_bw |= rack->measure_saw_probe_rtt; |
| 1784 | log.u_bbr.use_lt_bw <<= 1; |
| 1785 | log.u_bbr.use_lt_bw |= rack->app_limited_needs_set; |
| 1786 | log.u_bbr.use_lt_bw <<= 1; |
| 1787 | log.u_bbr.use_lt_bw |= rack->rc_gp_filled; |
| 1788 | log.u_bbr.use_lt_bw <<= 1; |
| 1789 | log.u_bbr.use_lt_bw |= rack->rc_dragged_bottom; |
| 1790 | log.u_bbr.applimited = rack->r_ctl.rc_target_probertt_flight; |
| 1791 | log.u_bbr.epoch = rack->r_ctl.rc_time_probertt_starts; |
| 1792 | log.u_bbr.lt_epoch = rack->r_ctl.rc_time_probertt_entered; |
| 1793 | log.u_bbr.cur_del_rate = rack->r_ctl.rc_lower_rtt_us_cts; |
| 1794 | log.u_bbr.delRate = rack->r_ctl.rc_gp_srtt; |
no test coverage detected