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

Function rack_log_rtt_upd

freebsd/netinet/tcp_stacks/rack.c:1737–1801  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1735}
1736
1737static void
1738rack_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;

Callers 2

tcp_rack_xmit_timerFunction · 0.85
rack_do_segment_nounlockFunction · 0.85

Calls 3

memsetFunction · 0.85
tcp_get_usecsFunction · 0.85
ctf_flight_sizeFunction · 0.85

Tested by

no test coverage detected