Lines Matching refs:tp
130 static int tcp_pru_options_support(struct tcpcb *tp, int flags);
133 tcp_bblog_pru(struct tcpcb *tp, uint32_t pru, int error) in tcp_bblog_pru() argument
137 KASSERT(tp != NULL, ("tcp_bblog_pru: tp == NULL")); in tcp_bblog_pru()
138 INP_WLOCK_ASSERT(tptoinpcb(tp)); in tcp_bblog_pru()
139 if (tcp_bblogging_on(tp)) { in tcp_bblog_pru()
140 lgb = tcp_log_event(tp, NULL, NULL, NULL, TCP_LOG_PRU, error, in tcp_bblog_pru()
161 struct tcpcb *tp = NULL; in tcp_usr_attach() local
177 tp = tcp_newtcpcb(inp, NULL); in tcp_usr_attach()
178 if (tp == NULL) { in tcp_usr_attach()
183 tp->t_state = TCPS_CLOSED; in tcp_usr_attach()
184 tcp_bblog_pru(tp, PRU_ATTACH, error); in tcp_usr_attach()
188 TCP_PROBE2(debug__user, tp, PRU_ATTACH); in tcp_usr_attach()
202 struct tcpcb *tp; in tcp_usr_detach() local
210 tp = intotcpcb(inp); in tcp_usr_detach()
213 tp->t_state < TCPS_SYN_SENT, in tcp_usr_detach()
216 tcp_discardcb(tp); in tcp_usr_detach()
229 struct tcpcb *tp; in tcp_usr_bind() local
239 tp = intotcpcb(inp); in tcp_usr_bind()
270 tcp_bblog_pru(tp, PRU_BIND, error); in tcp_usr_bind()
271 TCP_PROBE2(debug__user, tp, PRU_BIND); in tcp_usr_bind()
284 struct tcpcb *tp; in tcp6_usr_bind() local
295 tp = intotcpcb(inp); in tcp6_usr_bind()
346 tcp_bblog_pru(tp, PRU_BIND, error); in tcp6_usr_bind()
347 TCP_PROBE2(debug__user, tp, PRU_BIND); in tcp6_usr_bind()
362 struct tcpcb *tp; in tcp_usr_listen() local
371 tp = intotcpcb(inp); in tcp_usr_listen()
385 tcp_state_change(tp, TCPS_LISTEN); in tcp_usr_listen()
389 tcp_offload_listen_start(tp); in tcp_usr_listen()
396 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_listen()
397 tp->t_tfo_pending = tcp_fastopen_alloc_counter(); in tcp_usr_listen()
400 tcp_bblog_pru(tp, PRU_LISTEN, error); in tcp_usr_listen()
401 TCP_PROBE2(debug__user, tp, PRU_LISTEN); in tcp_usr_listen()
413 struct tcpcb *tp; in tcp6_usr_listen() local
423 tp = intotcpcb(inp); in tcp6_usr_listen()
442 tcp_state_change(tp, TCPS_LISTEN); in tcp6_usr_listen()
446 tcp_offload_listen_start(tp); in tcp6_usr_listen()
453 if (IS_FASTOPEN(tp->t_flags)) in tcp6_usr_listen()
454 tp->t_tfo_pending = tcp_fastopen_alloc_counter(); in tcp6_usr_listen()
460 tcp_bblog_pru(tp, PRU_LISTEN, error); in tcp6_usr_listen()
461 TCP_PROBE2(debug__user, tp, PRU_LISTEN); in tcp6_usr_listen()
481 struct tcpcb *tp; in tcp_usr_connect() local
491 tp = intotcpcb(inp); in tcp_usr_connect()
520 if ((error = tcp_connect(tp, sinp, td)) != 0) in tcp_usr_connect()
528 tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); in tcp_usr_connect()
529 error = tcp_output(tp); in tcp_usr_connect()
531 ", error code %d", tp->t_fb->tfb_tcp_block_name, tp, -error)); in tcp_usr_connect()
535 tcp_bblog_pru(tp, PRU_CONNECT, error); in tcp_usr_connect()
536 TCP_PROBE2(debug__user, tp, PRU_CONNECT); in tcp_usr_connect()
549 struct tcpcb *tp; in tcp6_usr_connect() local
561 tp = intotcpcb(inp); in tcp6_usr_connect()
619 if ((error = tcp_connect(tp, &sin, td)) != 0) in tcp6_usr_connect()
627 error = tcp_output(tp); in tcp6_usr_connect()
642 if ((error = tcp6_connect(tp, sin6, td)) != 0) in tcp6_usr_connect()
650 tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); in tcp6_usr_connect()
651 error = tcp_output(tp); in tcp6_usr_connect()
656 ", error code %d", tp->t_fb->tfb_tcp_block_name, tp, -error)); in tcp6_usr_connect()
666 tcp_bblog_pru(tp, PRU_CONNECT, error); in tcp6_usr_connect()
667 TCP_PROBE2(debug__user, tp, PRU_CONNECT); in tcp6_usr_connect()
688 struct tcpcb *tp = NULL; in tcp_usr_disconnect() local
701 tp = intotcpcb(inp); in tcp_usr_disconnect()
703 if (tp->t_state == TCPS_TIME_WAIT) in tcp_usr_disconnect()
705 tcp_disconnect(tp); in tcp_usr_disconnect()
707 tcp_bblog_pru(tp, PRU_DISCONNECT, error); in tcp_usr_disconnect()
708 TCP_PROBE2(debug__user, tp, PRU_DISCONNECT); in tcp_usr_disconnect()
724 struct tcpcb *tp; in tcp_usr_accept() local
735 tp = intotcpcb(inp); in tcp_usr_accept()
750 tcp_bblog_pru(tp, PRU_ACCEPT, error); in tcp_usr_accept()
751 TCP_PROBE2(debug__user, tp, PRU_ACCEPT); in tcp_usr_accept()
765 struct tcpcb *tp; in tcp6_usr_accept() local
781 tp = intotcpcb(inp); in tcp6_usr_accept()
802 tcp_bblog_pru(tp, PRU_ACCEPT, error); in tcp6_usr_accept()
803 TCP_PROBE2(debug__user, tp, PRU_ACCEPT); in tcp6_usr_accept()
824 struct tcpcb *tp; in tcp_usr_shutdown() local
834 tp = intotcpcb(inp); in tcp_usr_shutdown()
838 tcp_usrclosed(tp); in tcp_usr_shutdown()
840 error = tcp_output_nodrop(tp); in tcp_usr_shutdown()
841 tcp_bblog_pru(tp, PRU_SHUTDOWN, error); in tcp_usr_shutdown()
842 TCP_PROBE2(debug__user, tp, PRU_SHUTDOWN); in tcp_usr_shutdown()
843 error = tcp_unlock_or_drop(tp, error); in tcp_usr_shutdown()
857 struct tcpcb *tp; in tcp_usr_rcvd() local
867 tp = intotcpcb(inp); in tcp_usr_rcvd()
877 if (IS_FASTOPEN(tp->t_flags) && in tcp_usr_rcvd()
878 (tp->t_state == TCPS_SYN_RECEIVED)) in tcp_usr_rcvd()
881 if (tp->t_flags & TF_TOE) in tcp_usr_rcvd()
882 tcp_offload_rcvd(tp); in tcp_usr_rcvd()
885 outrv = tcp_output_nodrop(tp); in tcp_usr_rcvd()
887 tcp_bblog_pru(tp, PRU_RCVD, error); in tcp_usr_rcvd()
888 TCP_PROBE2(debug__user, tp, PRU_RCVD); in tcp_usr_rcvd()
889 (void) tcp_unlock_or_drop(tp, outrv); in tcp_usr_rcvd()
908 struct tcpcb *tp; in tcp_usr_send() local
932 tp = intotcpcb(inp); in tcp_usr_send()
950 (error = tcp_pru_options_support(tp, PRUS_OOB)) != 0) in tcp_usr_send()
953 if (nam != NULL && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
954 if (tp->t_state == TCPS_LISTEN) { in tcp_usr_send()
1049 if (tp->t_acktime == 0) in tcp_usr_send()
1050 tp->t_acktime = ticks; in tcp_usr_send()
1053 if (nam && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1054 KASSERT(tp->t_state == TCPS_CLOSED, in tcp_usr_send()
1055 ("%s: tp %p is listening", __func__, tp)); in tcp_usr_send()
1064 error = tcp6_connect(tp, sin6, td); in tcp_usr_send()
1070 error = tcp_connect(tp, sinp, td); in tcp_usr_send()
1085 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_send()
1086 tcp_fastopen_connect(tp); in tcp_usr_send()
1088 tp->snd_wnd = TTCP_CLIENT_SND_WND; in tcp_usr_send()
1089 tcp_mss(tp, -1); in tcp_usr_send()
1098 tcp_usrclosed(tp); in tcp_usr_send()
1100 if (TCPS_HAVEESTABLISHED(tp->t_state) && in tcp_usr_send()
1101 ((tp->t_flags2 & TF2_FBYTES_COMPLETE) == 0) && in tcp_usr_send()
1102 (tp->t_fbyte_out == 0) && in tcp_usr_send()
1104 tp->t_fbyte_out = ticks; in tcp_usr_send()
1105 if (tp->t_fbyte_out == 0) in tcp_usr_send()
1106 tp->t_fbyte_out = 1; in tcp_usr_send()
1107 if (tp->t_fbyte_out && tp->t_fbyte_in) in tcp_usr_send()
1108 tp->t_flags2 |= TF2_FBYTES_COMPLETE; in tcp_usr_send()
1113 tp->t_flags |= TF_MORETOCOME; in tcp_usr_send()
1114 error = tcp_output_nodrop(tp); in tcp_usr_send()
1116 tp->t_flags &= ~TF_MORETOCOME; in tcp_usr_send()
1136 if (tp->t_acktime == 0) in tcp_usr_send()
1137 tp->t_acktime = ticks; in tcp_usr_send()
1141 if (nam && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1151 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_send()
1152 tp->t_flags &= ~TF_FASTOPEN; in tcp_usr_send()
1155 error = tcp6_connect(tp, sin6, td); in tcp_usr_send()
1161 error = tcp_connect(tp, sinp, td); in tcp_usr_send()
1176 tp->snd_wnd = TTCP_CLIENT_SND_WND; in tcp_usr_send()
1177 tcp_mss(tp, -1); in tcp_usr_send()
1179 tp->snd_up = tp->snd_una + sbavail(&so->so_snd); in tcp_usr_send()
1181 tp->t_flags |= TF_FORCEDATA; in tcp_usr_send()
1182 error = tcp_output_nodrop(tp); in tcp_usr_send()
1183 tp->t_flags &= ~TF_FORCEDATA; in tcp_usr_send()
1186 TCP_LOG_EVENT(tp, NULL, in tcp_usr_send()
1208 tcp_bblog_pru(tp, (flags & PRUS_OOB) ? PRU_SENDOOB : in tcp_usr_send()
1210 TCP_PROBE2(debug__user, tp, (flags & PRUS_OOB) ? PRU_SENDOOB : in tcp_usr_send()
1212 error = tcp_unlock_or_drop(tp, error); in tcp_usr_send()
1222 struct tcpcb *tp; in tcp_usr_ready() local
1232 tp = intotcpcb(inp); in tcp_usr_ready()
1242 error = tcp_output_unlock(tp); in tcp_usr_ready()
1255 struct tcpcb *tp; in tcp_usr_abort() local
1270 tp = intotcpcb(inp); in tcp_usr_abort()
1271 tp = tcp_drop(tp, ECONNABORTED); in tcp_usr_abort()
1272 if (tp == NULL) in tcp_usr_abort()
1274 tcp_bblog_pru(tp, PRU_ABORT, 0); in tcp_usr_abort()
1275 TCP_PROBE2(debug__user, tp, PRU_ABORT); in tcp_usr_abort()
1293 struct tcpcb *tp; in tcp_usr_close() local
1309 tp = intotcpcb(inp); in tcp_usr_close()
1310 if (tp->t_state != TCPS_TIME_WAIT) { in tcp_usr_close()
1311 tp->t_flags |= TF_CLOSED; in tcp_usr_close()
1312 tcp_disconnect(tp); in tcp_usr_close()
1313 tcp_bblog_pru(tp, PRU_CLOSE, 0); in tcp_usr_close()
1314 TCP_PROBE2(debug__user, tp, PRU_CLOSE); in tcp_usr_close()
1326 tcp_pru_options_support(struct tcpcb *tp, int flags) in tcp_pru_options_support() argument
1337 if (tp->t_fb->tfb_pru_options) { in tcp_pru_options_support()
1338 ret = (*tp->t_fb->tfb_pru_options)(tp, flags); in tcp_pru_options_support()
1351 struct tcpcb *tp; in tcp_usr_rcvoob() local
1360 tp = intotcpcb(inp); in tcp_usr_rcvoob()
1362 error = tcp_pru_options_support(tp, PRUS_OOB); in tcp_usr_rcvoob()
1369 tp->t_oobflags & TCPOOB_HADDATA) { in tcp_usr_rcvoob()
1373 if ((tp->t_oobflags & TCPOOB_HAVEDATA) == 0) { in tcp_usr_rcvoob()
1378 *mtod(m, caddr_t) = tp->t_iobc; in tcp_usr_rcvoob()
1380 tp->t_oobflags ^= (TCPOOB_HAVEDATA | TCPOOB_HADDATA); in tcp_usr_rcvoob()
1383 tcp_bblog_pru(tp, PRU_RCVOOB, error); in tcp_usr_rcvoob()
1384 TCP_PROBE2(debug__user, tp, PRU_RCVOOB); in tcp_usr_rcvoob()
1453 tcp_connect(struct tcpcb *tp, struct sockaddr_in *sin, struct thread *td) in tcp_connect() argument
1455 struct inpcb *inp = tptoinpcb(tp); in tcp_connect()
1456 struct socket *so = tptosocket(tp); in tcp_connect()
1478 while (tp->request_r_scale < TCP_MAX_WINSHIFT && in tcp_connect()
1479 (TCP_MAXWIN << tp->request_r_scale) < sb_max) in tcp_connect()
1480 tp->request_r_scale++; in tcp_connect()
1484 tcp_state_change(tp, TCPS_SYN_SENT); in tcp_connect()
1485 tp->iss = tcp_new_isn(&inp->inp_inc); in tcp_connect()
1486 if (tp->t_flags & TF_REQ_TSTMP) in tcp_connect()
1487 tp->ts_offset = tcp_new_ts_offset(&inp->inp_inc); in tcp_connect()
1488 tcp_sendseqinit(tp); in tcp_connect()
1496 tcp6_connect(struct tcpcb *tp, struct sockaddr_in6 *sin6, struct thread *td) in tcp6_connect() argument
1498 struct inpcb *inp = tptoinpcb(tp); in tcp6_connect()
1499 struct socket *so = tptosocket(tp); in tcp6_connect()
1516 while (tp->request_r_scale < TCP_MAX_WINSHIFT && in tcp6_connect()
1517 (TCP_MAXWIN << tp->request_r_scale) < sb_max) in tcp6_connect()
1518 tp->request_r_scale++; in tcp6_connect()
1522 tcp_state_change(tp, TCPS_SYN_SENT); in tcp6_connect()
1523 tp->iss = tcp_new_isn(&inp->inp_inc); in tcp6_connect()
1524 if (tp->t_flags & TF_REQ_TSTMP) in tcp6_connect()
1525 tp->ts_offset = tcp_new_ts_offset(&inp->inp_inc); in tcp6_connect()
1526 tcp_sendseqinit(tp); in tcp6_connect()
1540 tcp_fill_info(const struct tcpcb *tp, struct tcp_info *ti) in tcp_fill_info() argument
1543 INP_LOCK_ASSERT(tptoinpcb(tp)); in tcp_fill_info()
1546 ti->tcpi_state = tp->t_state; in tcp_fill_info()
1547 if ((tp->t_flags & TF_REQ_TSTMP) && (tp->t_flags & TF_RCVD_TSTMP)) in tcp_fill_info()
1549 if (tp->t_flags & TF_SACK_PERMIT) in tcp_fill_info()
1551 if ((tp->t_flags & TF_REQ_SCALE) && (tp->t_flags & TF_RCVD_SCALE)) { in tcp_fill_info()
1553 ti->tcpi_snd_wscale = tp->snd_scale; in tcp_fill_info()
1554 ti->tcpi_rcv_wscale = tp->rcv_scale; in tcp_fill_info()
1556 switch (tp->t_flags2 & (TF2_ECN_PERMIT | TF2_ACE_PERMIT)) { in tcp_fill_info()
1568 if (IS_FASTOPEN(tp->t_flags)) in tcp_fill_info()
1571 ti->tcpi_rto = tp->t_rxtcur * tick; in tcp_fill_info()
1572 ti->tcpi_last_data_recv = ((uint32_t)ticks - tp->t_rcvtime) * tick; in tcp_fill_info()
1573 ti->tcpi_rtt = ((u_int64_t)tp->t_srtt * tick) >> TCP_RTT_SHIFT; in tcp_fill_info()
1574 ti->tcpi_rttvar = ((u_int64_t)tp->t_rttvar * tick) >> TCP_RTTVAR_SHIFT; in tcp_fill_info()
1576 ti->tcpi_snd_ssthresh = tp->snd_ssthresh; in tcp_fill_info()
1577 ti->tcpi_snd_cwnd = tp->snd_cwnd; in tcp_fill_info()
1582 ti->tcpi_rcv_space = tp->rcv_wnd; in tcp_fill_info()
1583 ti->tcpi_rcv_nxt = tp->rcv_nxt; in tcp_fill_info()
1584 ti->tcpi_snd_wnd = tp->snd_wnd; in tcp_fill_info()
1586 ti->tcpi_snd_nxt = tp->snd_nxt; in tcp_fill_info()
1587 ti->tcpi_snd_mss = tp->t_maxseg; in tcp_fill_info()
1588 ti->tcpi_rcv_mss = tp->t_maxseg; in tcp_fill_info()
1589 ti->tcpi_snd_rexmitpack = tp->t_sndrexmitpack; in tcp_fill_info()
1590 ti->tcpi_rcv_ooopack = tp->t_rcvoopack; in tcp_fill_info()
1591 ti->tcpi_snd_zerowin = tp->t_sndzerowin; in tcp_fill_info()
1592 ti->tcpi_snd_una = tp->snd_una; in tcp_fill_info()
1593 ti->tcpi_snd_max = tp->snd_max; in tcp_fill_info()
1594 ti->tcpi_rcv_numsacks = tp->rcv_numsacks; in tcp_fill_info()
1595 ti->tcpi_rcv_adv = tp->rcv_adv; in tcp_fill_info()
1596 ti->tcpi_dupacks = tp->t_dupacks; in tcp_fill_info()
1598 if (tp->t_flags & TF_TOE) { in tcp_fill_info()
1600 tcp_offload_tcp_info(tp, ti); in tcp_fill_info()
1606 if ((tp->t_flags2 & (TF2_ECN_PERMIT | TF2_ACE_PERMIT)) == in tcp_fill_info()
1612 ti->tcpi_delivered_ce = tp->t_scep - 5; in tcp_fill_info()
1614 ti->tcpi_delivered_ce = tp->t_scep; in tcp_fill_info()
1615 ti->tcpi_received_ce = tp->t_rcep; in tcp_fill_info()
1631 tp = intotcpcb(inp); \
1639 struct tcpcb *tp = intotcpcb(inp); in tcp_ctloutput_set() local
1721 if (tp->t_fb == blk) { in tcp_ctloutput_set()
1732 error = (*blk->tfb_tcp_handoff_ok)(tp); in tcp_ctloutput_set()
1742 if (tp->t_fb->tfb_tcp_timer_stop_all != NULL) in tcp_ctloutput_set()
1743 tp->t_fb->tfb_tcp_timer_stop_all(tp); in tcp_ctloutput_set()
1745 error = (*blk->tfb_tcp_fb_init)(tp, &ptr); in tcp_ctloutput_set()
1760 if (tp->t_fb->tfb_switch_failed) { in tcp_ctloutput_set()
1761 (*tp->t_fb->tfb_switch_failed)(tp); in tcp_ctloutput_set()
1766 if (tp->t_fb->tfb_tcp_fb_fini) { in tcp_ctloutput_set()
1773 (*tp->t_fb->tfb_tcp_fb_fini)(tp, 0); in tcp_ctloutput_set()
1781 refcount_release(&tp->t_fb->tfb_refcnt); in tcp_ctloutput_set()
1785 tp->t_fb = blk; in tcp_ctloutput_set()
1786 tp->t_fb_ptr = ptr; in tcp_ctloutput_set()
1788 if (tp->t_flags & TF_TOE) { in tcp_ctloutput_set()
1789 tcp_offload_ctloutput(tp, sopt->sopt_dir, in tcp_ctloutput_set()
1800 return (tp->t_fb->tfb_tcp_ctloutput(tp, sopt)); in tcp_ctloutput_set()
1807 struct tcpcb *tp = intotcpcb(inp); in tcp_ctloutput_get() local
1836 find_tcp_function_alias(tp->t_fb, &fsn); in tcp_ctloutput_get()
1839 tp->t_fb->tfb_tcp_block_name, in tcp_ctloutput_get()
1843 fsn.pcbcnt = tp->t_fb->tfb_refcnt; in tcp_ctloutput_get()
1850 return (tp->t_fb->tfb_tcp_ctloutput(tp, sopt)); in tcp_ctloutput_get()
1921 struct tcpcb *tp; in tcp_set_cc_mod() local
1981 tp = intotcpcb(inp); in tcp_set_cc_mod()
1984 cc_mem.ccvc.tcp = tp; in tcp_set_cc_mod()
2006 if (CC_ALGO(tp)->cb_destroy != NULL) in tcp_set_cc_mod()
2007 CC_ALGO(tp)->cb_destroy(&tp->t_ccv); in tcp_set_cc_mod()
2009 cc_detach(tp); in tcp_set_cc_mod()
2011 memcpy(&tp->t_ccv, &cc_mem, sizeof(struct cc_var)); in tcp_set_cc_mod()
2013 cc_attach(tp, algo); in tcp_set_cc_mod()
2015 if (TCPS_HAVEESTABLISHED(tp->t_state) && (CC_ALGO(tp)->conn_init != NULL)) { in tcp_set_cc_mod()
2017 CC_ALGO(tp)->conn_init(&tp->t_ccv); in tcp_set_cc_mod()
2030 tcp_default_ctloutput(struct tcpcb *tp, struct sockopt *sopt) in tcp_default_ctloutput() argument
2032 struct inpcb *inp = tptoinpcb(tp); in tcp_default_ctloutput()
2057 tcp6_use_min_mtu(tp); in tcp_default_ctloutput()
2087 if (CC_ALGO(tp)->ctl_output != NULL) in tcp_default_ctloutput()
2088 error = CC_ALGO(tp)->ctl_output(&tp->t_ccv, sopt, pbuf); in tcp_default_ctloutput()
2139 tp->t_flags |= opt; in tcp_default_ctloutput()
2141 tp->t_flags &= ~opt; in tcp_default_ctloutput()
2144 if (tp->t_flags & TF_TOE) { in tcp_default_ctloutput()
2145 tcp_offload_ctloutput(tp, sopt->sopt_dir, in tcp_default_ctloutput()
2161 tp->t_flags |= TF_NOPUSH; in tcp_default_ctloutput()
2162 else if (tp->t_flags & TF_NOPUSH) { in tcp_default_ctloutput()
2163 tp->t_flags &= ~TF_NOPUSH; in tcp_default_ctloutput()
2164 if (TCPS_HAVEESTABLISHED(tp->t_state)) { in tcp_default_ctloutput()
2168 error = tcp_output_nodrop(tp); in tcp_default_ctloutput()
2190 if (tp->t_state != TCPS_CLOSED) { in tcp_default_ctloutput()
2195 tp->t_port = htons(optval); in tcp_default_ctloutput()
2207 if (optval > 0 && optval <= tp->t_maxseg && in tcp_default_ctloutput()
2209 tp->t_maxseg = optval; in tcp_default_ctloutput()
2234 if ((tp->t_stats != NULL && sbp == NULL) || in tcp_default_ctloutput()
2235 (tp->t_stats == NULL && sbp != NULL)) { in tcp_default_ctloutput()
2236 struct statsblob *t = tp->t_stats; in tcp_default_ctloutput()
2237 tp->t_stats = sbp; in tcp_default_ctloutput()
2307 tp->t_maxunacktime = ui; in tcp_default_ctloutput()
2311 tp->t_keepidle = ui; in tcp_default_ctloutput()
2316 if ((tp->t_state > TCPS_LISTEN) && in tcp_default_ctloutput()
2317 (tp->t_state <= TCPS_CLOSING)) in tcp_default_ctloutput()
2318 tcp_timer_activate(tp, TT_KEEP, in tcp_default_ctloutput()
2319 TP_KEEPIDLE(tp)); in tcp_default_ctloutput()
2322 tp->t_keepintvl = ui; in tcp_default_ctloutput()
2323 if ((tp->t_state == TCPS_FIN_WAIT_2) && in tcp_default_ctloutput()
2324 (TP_MAXIDLE(tp) > 0)) in tcp_default_ctloutput()
2325 tcp_timer_activate(tp, TT_2MSL, in tcp_default_ctloutput()
2326 TP_MAXIDLE(tp)); in tcp_default_ctloutput()
2329 tp->t_keepinit = ui; in tcp_default_ctloutput()
2330 if (tp->t_state == TCPS_SYN_RECEIVED || in tcp_default_ctloutput()
2331 tp->t_state == TCPS_SYN_SENT) in tcp_default_ctloutput()
2332 tcp_timer_activate(tp, TT_KEEP, in tcp_default_ctloutput()
2333 TP_KEEPINIT(tp)); in tcp_default_ctloutput()
2345 tp->t_keepcnt = ui; in tcp_default_ctloutput()
2346 if ((tp->t_state == TCPS_FIN_WAIT_2) && in tcp_default_ctloutput()
2347 (TP_MAXIDLE(tp) > 0)) in tcp_default_ctloutput()
2348 tcp_timer_activate(tp, TT_2MSL, in tcp_default_ctloutput()
2349 TP_MAXIDLE(tp)); in tcp_default_ctloutput()
2365 &(tp->t_outpkts) : &(tp->t_inpkts), in tcp_default_ctloutput()
2386 if ((tp->t_state != TCPS_CLOSED) && in tcp_default_ctloutput()
2387 (tp->t_state != TCPS_LISTEN)) { in tcp_default_ctloutput()
2392 if (tp->t_state == TCPS_LISTEN) { in tcp_default_ctloutput()
2398 if (tp->t_tfo_pending == NULL) in tcp_default_ctloutput()
2399 tp->t_tfo_pending = in tcp_default_ctloutput()
2410 memcpy(tp->t_tfo_cookie.client, in tcp_default_ctloutput()
2413 tp->t_tfo_client_cookie_len = in tcp_default_ctloutput()
2417 tp->t_flags |= TF_FASTOPEN; in tcp_default_ctloutput()
2419 tp->t_flags &= ~TF_FASTOPEN; in tcp_default_ctloutput()
2432 error = tcp_log_state_change(tp, optval); in tcp_default_ctloutput()
2447 error = tcp_log_set_id(tp, buf); in tcp_default_ctloutput()
2461 error = tcp_log_dump_tp_logbuf(tp, buf, in tcp_default_ctloutput()
2465 tcp_log_dump_tp_bucket_logbufs(tp, buf); in tcp_default_ctloutput()
2482 tp = intotcpcb(inp); in tcp_default_ctloutput()
2494 optval = tp->t_flags & TF_NODELAY; in tcp_default_ctloutput()
2499 optval = tp->t_maxseg; in tcp_default_ctloutput()
2504 optval = ntohs(tp->t_port); in tcp_default_ctloutput()
2509 optval = tp->t_flags & TF_NOOPT; in tcp_default_ctloutput()
2514 optval = tp->t_flags & TF_NOPUSH; in tcp_default_ctloutput()
2519 tcp_fill_info(tp, &ti); in tcp_default_ctloutput()
2531 if (tp->t_stats == NULL) in tcp_default_ctloutput()
2533 else if (outsbsz >= tp->t_stats->cursz) in tcp_default_ctloutput()
2534 outsbsz = tp->t_stats->cursz; in tcp_default_ctloutput()
2560 error = stats_blob_snapshot(&sbp, outsbsz, tp->t_stats, in tcp_default_ctloutput()
2573 len = strlcpy(buf, CC_ALGO(tp)->name, TCP_CA_NAME_MAX); in tcp_default_ctloutput()
2584 ui = TP_MAXUNACKTIME(tp) / hz; in tcp_default_ctloutput()
2587 ui = TP_KEEPIDLE(tp) / hz; in tcp_default_ctloutput()
2590 ui = TP_KEEPINTVL(tp) / hz; in tcp_default_ctloutput()
2593 ui = TP_KEEPINIT(tp) / hz; in tcp_default_ctloutput()
2596 ui = TP_KEEPCNT(tp); in tcp_default_ctloutput()
2607 &(tp->t_outpkts) : &(tp->t_inpkts)); in tcp_default_ctloutput()
2613 optval = tp->t_flags & TF_FASTOPEN; in tcp_default_ctloutput()
2619 optval = tcp_get_bblog_state(tp); in tcp_default_ctloutput()
2625 error = tcp_log_getlogbuf(sopt, tp); in tcp_default_ctloutput()
2628 len = tcp_log_get_id(tp, buf); in tcp_default_ctloutput()
2655 optval = tp->t_flags & TF_LRD; in tcp_default_ctloutput()
2680 tcp_disconnect(struct tcpcb *tp) in tcp_disconnect() argument
2682 struct inpcb *inp = tptoinpcb(tp); in tcp_disconnect()
2683 struct socket *so = tptosocket(tp); in tcp_disconnect()
2692 if (tp->t_state < TCPS_ESTABLISHED && in tcp_disconnect()
2693 !(tp->t_state > TCPS_LISTEN && IS_FASTOPEN(tp->t_flags))) { in tcp_disconnect()
2694 tp = tcp_close(tp); in tcp_disconnect()
2695 KASSERT(tp != NULL, in tcp_disconnect()
2698 tp = tcp_drop(tp, 0); in tcp_disconnect()
2699 KASSERT(tp != NULL, in tcp_disconnect()
2704 tcp_usrclosed(tp); in tcp_disconnect()
2707 (void)tcp_output_nodrop(tp); in tcp_disconnect()
2722 tcp_usrclosed(struct tcpcb *tp) in tcp_usrclosed() argument
2726 INP_WLOCK_ASSERT(tptoinpcb(tp)); in tcp_usrclosed()
2728 switch (tp->t_state) { in tcp_usrclosed()
2731 tcp_offload_listen_stop(tp); in tcp_usrclosed()
2733 tcp_state_change(tp, TCPS_CLOSED); in tcp_usrclosed()
2736 tp = tcp_close(tp); in tcp_usrclosed()
2741 KASSERT(tp != NULL, in tcp_usrclosed()
2747 tp->t_flags |= TF_NEEDFIN; in tcp_usrclosed()
2751 tcp_state_change(tp, TCPS_FIN_WAIT_1); in tcp_usrclosed()
2755 tcp_state_change(tp, TCPS_LAST_ACK); in tcp_usrclosed()
2758 if (tp->t_acktime == 0) in tcp_usrclosed()
2759 tp->t_acktime = ticks; in tcp_usrclosed()
2760 if (tp->t_state >= TCPS_FIN_WAIT_2) { in tcp_usrclosed()
2761 soisdisconnected(tptosocket(tp)); in tcp_usrclosed()
2763 if (tp->t_state == TCPS_FIN_WAIT_2) { in tcp_usrclosed()
2767 tcp_finwait2_timeout : TP_MAXIDLE(tp); in tcp_usrclosed()
2768 tcp_timer_activate(tp, TT_2MSL, timeout); in tcp_usrclosed()
3083 db_print_tcpcb(struct tcpcb *tp, const char *name, int indent) in db_print_tcpcb() argument
3087 db_printf("%s at %p\n", name, tp); in db_print_tcpcb()
3093 TAILQ_FIRST(&tp->t_segq), tp->t_segqlen, tp->t_dupacks); in db_print_tcpcb()
3097 &tp->t_callout, &tp->t_timers); in db_print_tcpcb()
3100 db_printf("t_state: %d (", tp->t_state); in db_print_tcpcb()
3101 db_print_tstate(tp->t_state); in db_print_tcpcb()
3105 db_printf("t_flags: 0x%x (", tp->t_flags); in db_print_tcpcb()
3106 db_print_tflags(tp->t_flags); in db_print_tcpcb()
3110 db_printf("t_flags2: 0x%x (", tp->t_flags2); in db_print_tcpcb()
3111 db_print_tflags2(tp->t_flags2); in db_print_tcpcb()
3116 tp->snd_una, tp->snd_max, tp->snd_nxt); in db_print_tcpcb()
3120 tp->snd_up, tp->snd_wl1, tp->snd_wl2); in db_print_tcpcb()
3124 tp->iss, tp->irs, tp->rcv_nxt); in db_print_tcpcb()
3128 tp->rcv_adv, tp->rcv_wnd, tp->rcv_up); in db_print_tcpcb()
3132 tp->snd_wnd, tp->snd_cwnd); in db_print_tcpcb()
3136 "0x%08x\n", tp->snd_ssthresh, tp->snd_recover); in db_print_tcpcb()
3140 tp->t_rcvtime, tp->t_starttime); in db_print_tcpcb()
3144 tp->t_rtttime, tp->t_rtseq); in db_print_tcpcb()
3148 tp->t_rxtcur, tp->t_maxseg, tp->t_srtt); in db_print_tcpcb()
3152 tp->t_rttvar, tp->t_rxtshift, tp->t_rttmin); in db_print_tcpcb()
3156 tp->t_rttupdated, tp->max_sndwnd, tp->t_softerror); in db_print_tcpcb()
3159 db_printf("t_oobflags: 0x%x (", tp->t_oobflags); in db_print_tcpcb()
3160 db_print_toobflags(tp->t_oobflags); in db_print_tcpcb()
3161 db_printf(") t_iobc: 0x%02x\n", tp->t_iobc); in db_print_tcpcb()
3165 tp->snd_scale, tp->rcv_scale, tp->request_r_scale); in db_print_tcpcb()
3169 tp->ts_recent, tp->ts_recent_age); in db_print_tcpcb()
3173 "%u\n", tp->ts_offset, tp->last_ack_sent, tp->snd_cwnd_prev); in db_print_tcpcb()
3177 "t_badrxtwin: %u\n", tp->snd_ssthresh_prev, in db_print_tcpcb()
3178 tp->snd_recover_prev, tp->t_badrxtwin); in db_print_tcpcb()
3182 tp->snd_numholes, TAILQ_FIRST(&tp->snd_holes)); in db_print_tcpcb()
3186 tp->snd_fack, tp->rcv_numsacks); in db_print_tcpcb()
3192 tp->t_rttlow, tp->rfbuf_ts, tp->rfbuf_cnt); in db_print_tcpcb()
3197 struct tcpcb *tp; in DB_SHOW_COMMAND() local
3203 tp = (struct tcpcb *)addr; in DB_SHOW_COMMAND()
3205 db_print_tcpcb(tp, "tcpcb", 0); in DB_SHOW_COMMAND()