| 1996 | } |
| 1997 | |
| 1998 | static void |
| 1999 | bbr_log_flowend(struct tcp_bbr *bbr) |
| 2000 | { |
| 2001 | if (bbr->rc_tp->t_logstate != TCP_LOG_STATE_OFF) { |
| 2002 | union tcp_log_stackspecific log; |
| 2003 | struct sockbuf *r, *s; |
| 2004 | struct timeval tv; |
| 2005 | |
| 2006 | if (bbr->rc_inp->inp_socket) { |
| 2007 | r = &bbr->rc_inp->inp_socket->so_rcv; |
| 2008 | s = &bbr->rc_inp->inp_socket->so_snd; |
| 2009 | } else { |
| 2010 | r = s = NULL; |
| 2011 | } |
| 2012 | bbr_fill_in_logging_data(bbr, &log.u_bbr, tcp_get_usecs(&tv)); |
| 2013 | TCP_LOG_EVENTP(bbr->rc_tp, NULL, |
| 2014 | r, s, |
| 2015 | TCP_LOG_FLOWEND, 0, |
| 2016 | 0, &log, false, &tv); |
| 2017 | } |
| 2018 | } |
| 2019 | |
| 2020 | static void |
| 2021 | bbr_log_pkt_epoch(struct tcp_bbr *bbr, uint32_t cts, uint32_t line, |
no test coverage detected