Lines Matching refs:tp
136 static int tcp_pru_options_support(struct tcpcb *tp, int flags);
140 #define TCPDEBUG1() ostate = tp ? tp->t_state : 0
141 #define TCPDEBUG2(req) if (tp && (so->so_options & SO_DEBUG)) \
142 tcp_trace(TA_USER, ostate, tp, 0, 0, req)
167 struct tcpcb *tp = NULL; in tcp_usr_attach() local
197 tp = tcp_newtcpcb(inp); in tcp_usr_attach()
198 if (tp == NULL) { in tcp_usr_attach()
204 tp->t_state = TCPS_CLOSED; in tcp_usr_attach()
209 TCP_PROBE2(debug__user, tp, PRU_ATTACH); in tcp_usr_attach()
223 struct tcpcb *tp; in tcp_usr_detach() local
231 tp = intotcpcb(inp); in tcp_usr_detach()
266 if (__predict_true(tp == NULL)) { in tcp_usr_detach()
300 tp->t_state < TCPS_SYN_SENT) { in tcp_usr_detach()
301 tcp_discardcb(tp); in tcp_usr_detach()
320 struct tcpcb *tp = NULL; in tcp_usr_bind() local
352 tp = intotcpcb(inp); in tcp_usr_bind()
359 TCP_PROBE2(debug__user, tp, PRU_BIND); in tcp_usr_bind()
372 struct tcpcb *tp = NULL; in tcp6_usr_bind() local
398 tp = intotcpcb(inp); in tcp6_usr_bind()
431 TCP_PROBE2(debug__user, tp, PRU_BIND); in tcp6_usr_bind()
446 struct tcpcb *tp = NULL; in tcp_usr_listen() local
456 tp = intotcpcb(inp); in tcp_usr_listen()
465 tcp_state_change(tp, TCPS_LISTEN); in tcp_usr_listen()
469 tcp_offload_listen_start(tp); in tcp_usr_listen()
474 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_listen()
475 tp->t_tfo_pending = tcp_fastopen_alloc_counter(); in tcp_usr_listen()
479 TCP_PROBE2(debug__user, tp, PRU_LISTEN); in tcp_usr_listen()
491 struct tcpcb *tp = NULL; in tcp6_usr_listen() local
503 tp = intotcpcb(inp); in tcp6_usr_listen()
516 tcp_state_change(tp, TCPS_LISTEN); in tcp6_usr_listen()
520 tcp_offload_listen_start(tp); in tcp6_usr_listen()
525 if (IS_FASTOPEN(tp->t_flags)) in tcp6_usr_listen()
526 tp->t_tfo_pending = tcp_fastopen_alloc_counter(); in tcp6_usr_listen()
533 TCP_PROBE2(debug__user, tp, PRU_LISTEN); in tcp6_usr_listen()
553 struct tcpcb *tp = NULL; in tcp_usr_connect() local
584 tp = intotcpcb(inp); in tcp_usr_connect()
587 if ((error = tcp_connect(tp, nam, td)) != 0) in tcp_usr_connect()
595 tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); in tcp_usr_connect()
596 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_connect()
601 TCP_PROBE2(debug__user, tp, PRU_CONNECT); in tcp_usr_connect()
614 struct tcpcb *tp = NULL; in tcp6_usr_connect() local
646 tp = intotcpcb(inp); in tcp6_usr_connect()
681 if ((error = tcp_connect(tp, (struct sockaddr *)&sin, td)) != 0) in tcp6_usr_connect()
689 error = tp->t_fb->tfb_tcp_output(tp); in tcp6_usr_connect()
703 if ((error = tcp6_connect(tp, nam, td)) != 0) in tcp6_usr_connect()
711 tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); in tcp6_usr_connect()
713 error = tp->t_fb->tfb_tcp_output(tp); in tcp6_usr_connect()
729 TCP_PROBE2(debug__user, tp, PRU_CONNECT); in tcp6_usr_connect()
750 struct tcpcb *tp = NULL; in tcp_usr_disconnect() local
765 tp = intotcpcb(inp); in tcp_usr_disconnect()
767 tcp_disconnect(tp); in tcp_usr_disconnect()
770 TCP_PROBE2(debug__user, tp, PRU_DISCONNECT); in tcp_usr_disconnect()
786 struct tcpcb *tp = NULL; in tcp_usr_accept() local
801 tp = intotcpcb(inp); in tcp_usr_accept()
814 TCP_PROBE2(debug__user, tp, PRU_ACCEPT); in tcp_usr_accept()
828 struct tcpcb *tp = NULL; in tcp6_usr_accept() local
847 tp = intotcpcb(inp); in tcp6_usr_accept()
866 TCP_PROBE2(debug__user, tp, PRU_ACCEPT); in tcp6_usr_accept()
887 struct tcpcb *tp = NULL; in tcp_usr_shutdown() local
899 tp = intotcpcb(inp); in tcp_usr_shutdown()
902 tcp_usrclosed(tp); in tcp_usr_shutdown()
904 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_shutdown()
908 TCP_PROBE2(debug__user, tp, PRU_SHUTDOWN); in tcp_usr_shutdown()
923 struct tcpcb *tp = NULL; in tcp_usr_rcvd() local
934 tp = intotcpcb(inp); in tcp_usr_rcvd()
943 if (IS_FASTOPEN(tp->t_flags) && in tcp_usr_rcvd()
944 (tp->t_state == TCPS_SYN_RECEIVED)) in tcp_usr_rcvd()
948 if (tp->t_flags & TF_TOE) in tcp_usr_rcvd()
949 tcp_offload_rcvd(tp); in tcp_usr_rcvd()
952 tp->t_fb->tfb_tcp_output(tp); in tcp_usr_rcvd()
956 TCP_PROBE2(debug__user, tp, PRU_RCVD); in tcp_usr_rcvd()
975 struct tcpcb *tp = NULL; in tcp_usr_send() local
1017 tp = intotcpcb(inp); in tcp_usr_send()
1019 (error = tcp_pru_options_support(tp, PRUS_OOB)) != 0) in tcp_usr_send()
1023 if (nam != NULL && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1121 if (nam && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1129 error = tcp6_connect(tp, nam, td); in tcp_usr_send()
1135 error = tcp_connect(tp, in tcp_usr_send()
1151 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_send()
1152 tcp_fastopen_connect(tp); in tcp_usr_send()
1154 tp->snd_wnd = TTCP_CLIENT_SND_WND; in tcp_usr_send()
1155 tcp_mss(tp, -1); in tcp_usr_send()
1164 tcp_usrclosed(tp); in tcp_usr_send()
1166 if (TCPS_HAVEESTABLISHED(tp->t_state) && in tcp_usr_send()
1167 ((tp->t_flags2 & TF2_FBYTES_COMPLETE) == 0) && in tcp_usr_send()
1168 (tp->t_fbyte_out == 0) && in tcp_usr_send()
1170 tp->t_fbyte_out = ticks; in tcp_usr_send()
1171 if (tp->t_fbyte_out == 0) in tcp_usr_send()
1172 tp->t_fbyte_out = 1; in tcp_usr_send()
1173 if (tp->t_fbyte_out && tp->t_fbyte_in) in tcp_usr_send()
1174 tp->t_flags2 |= TF2_FBYTES_COMPLETE; in tcp_usr_send()
1179 tp->t_flags |= TF_MORETOCOME; in tcp_usr_send()
1180 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_send()
1182 tp->t_flags &= ~TF_MORETOCOME; in tcp_usr_send()
1205 if (nam && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1215 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_send()
1216 tp->t_flags &= ~TF_FASTOPEN; in tcp_usr_send()
1219 error = tcp6_connect(tp, nam, td); in tcp_usr_send()
1225 error = tcp_connect(tp, in tcp_usr_send()
1241 tp->snd_wnd = TTCP_CLIENT_SND_WND; in tcp_usr_send()
1242 tcp_mss(tp, -1); in tcp_usr_send()
1244 tp->snd_up = tp->snd_una + sbavail(&so->so_snd); in tcp_usr_send()
1246 tp->t_flags |= TF_FORCEDATA; in tcp_usr_send()
1247 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_send()
1248 tp->t_flags &= ~TF_FORCEDATA; in tcp_usr_send()
1251 TCP_LOG_EVENT(tp, NULL, in tcp_usr_send()
1275 TCP_PROBE2(debug__user, tp, (flags & PRUS_OOB) ? PRU_SENDOOB : in tcp_usr_send()
1287 struct tcpcb *tp; in tcp_usr_ready() local
1297 tp = intotcpcb(inp); in tcp_usr_ready()
1304 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_ready()
1319 struct tcpcb *tp = NULL; in tcp_usr_abort() local
1336 tp = intotcpcb(inp); in tcp_usr_abort()
1338 tp = tcp_drop(tp, ECONNABORTED); in tcp_usr_abort()
1339 if (tp == NULL) in tcp_usr_abort()
1342 TCP_PROBE2(debug__user, tp, PRU_ABORT); in tcp_usr_abort()
1362 struct tcpcb *tp = NULL; in tcp_usr_close() local
1380 tp = intotcpcb(inp); in tcp_usr_close()
1382 tcp_disconnect(tp); in tcp_usr_close()
1384 TCP_PROBE2(debug__user, tp, PRU_CLOSE); in tcp_usr_close()
1397 tcp_pru_options_support(struct tcpcb *tp, int flags) in tcp_pru_options_support() argument
1408 if (tp->t_fb->tfb_pru_options) { in tcp_pru_options_support()
1409 ret = (*tp->t_fb->tfb_pru_options)(tp, flags); in tcp_pru_options_support()
1422 struct tcpcb *tp = NULL; in tcp_usr_rcvoob() local
1432 tp = intotcpcb(inp); in tcp_usr_rcvoob()
1433 error = tcp_pru_options_support(tp, PRUS_OOB); in tcp_usr_rcvoob()
1441 tp->t_oobflags & TCPOOB_HADDATA) { in tcp_usr_rcvoob()
1445 if ((tp->t_oobflags & TCPOOB_HAVEDATA) == 0) { in tcp_usr_rcvoob()
1450 *mtod(m, caddr_t) = tp->t_iobc; in tcp_usr_rcvoob()
1452 tp->t_oobflags ^= (TCPOOB_HAVEDATA | TCPOOB_HADDATA); in tcp_usr_rcvoob()
1456 TCP_PROBE2(debug__user, tp, PRU_RCVOOB); in tcp_usr_rcvoob()
1519 tcp_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td) in tcp_connect() argument
1521 struct inpcb *inp = tp->t_inpcb, *oinp; in tcp_connect()
1570 while (tp->request_r_scale < TCP_MAX_WINSHIFT && in tcp_connect()
1571 (TCP_MAXWIN << tp->request_r_scale) < sb_max) in tcp_connect()
1572 tp->request_r_scale++; in tcp_connect()
1576 tcp_state_change(tp, TCPS_SYN_SENT); in tcp_connect()
1577 tp->iss = tcp_new_isn(&inp->inp_inc); in tcp_connect()
1578 if (tp->t_flags & TF_REQ_TSTMP) in tcp_connect()
1579 tp->ts_offset = tcp_new_ts_offset(&inp->inp_inc); in tcp_connect()
1580 tcp_sendseqinit(tp); in tcp_connect()
1592 tcp6_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td) in tcp6_connect() argument
1594 struct inpcb *inp = tp->t_inpcb; in tcp6_connect()
1611 while (tp->request_r_scale < TCP_MAX_WINSHIFT && in tcp6_connect()
1612 (TCP_MAXWIN << tp->request_r_scale) < sb_max) in tcp6_connect()
1613 tp->request_r_scale++; in tcp6_connect()
1617 tcp_state_change(tp, TCPS_SYN_SENT); in tcp6_connect()
1618 tp->iss = tcp_new_isn(&inp->inp_inc); in tcp6_connect()
1619 if (tp->t_flags & TF_REQ_TSTMP) in tcp6_connect()
1620 tp->ts_offset = tcp_new_ts_offset(&inp->inp_inc); in tcp6_connect()
1621 tcp_sendseqinit(tp); in tcp6_connect()
1639 tcp_fill_info(struct tcpcb *tp, struct tcp_info *ti) in tcp_fill_info() argument
1642 INP_WLOCK_ASSERT(tp->t_inpcb); in tcp_fill_info()
1645 ti->tcpi_state = tp->t_state; in tcp_fill_info()
1646 if ((tp->t_flags & TF_REQ_TSTMP) && (tp->t_flags & TF_RCVD_TSTMP)) in tcp_fill_info()
1648 if (tp->t_flags & TF_SACK_PERMIT) in tcp_fill_info()
1650 if ((tp->t_flags & TF_REQ_SCALE) && (tp->t_flags & TF_RCVD_SCALE)) { in tcp_fill_info()
1652 ti->tcpi_snd_wscale = tp->snd_scale; in tcp_fill_info()
1653 ti->tcpi_rcv_wscale = tp->rcv_scale; in tcp_fill_info()
1655 if (tp->t_flags2 & TF2_ECN_PERMIT) in tcp_fill_info()
1658 ti->tcpi_rto = tp->t_rxtcur * tick; in tcp_fill_info()
1659 ti->tcpi_last_data_recv = ((uint32_t)ticks - tp->t_rcvtime) * tick; in tcp_fill_info()
1660 ti->tcpi_rtt = ((u_int64_t)tp->t_srtt * tick) >> TCP_RTT_SHIFT; in tcp_fill_info()
1661 ti->tcpi_rttvar = ((u_int64_t)tp->t_rttvar * tick) >> TCP_RTTVAR_SHIFT; in tcp_fill_info()
1663 ti->tcpi_snd_ssthresh = tp->snd_ssthresh; in tcp_fill_info()
1664 ti->tcpi_snd_cwnd = tp->snd_cwnd; in tcp_fill_info()
1669 ti->tcpi_rcv_space = tp->rcv_wnd; in tcp_fill_info()
1670 ti->tcpi_rcv_nxt = tp->rcv_nxt; in tcp_fill_info()
1671 ti->tcpi_snd_wnd = tp->snd_wnd; in tcp_fill_info()
1673 ti->tcpi_snd_nxt = tp->snd_nxt; in tcp_fill_info()
1674 ti->tcpi_snd_mss = tp->t_maxseg; in tcp_fill_info()
1675 ti->tcpi_rcv_mss = tp->t_maxseg; in tcp_fill_info()
1676 ti->tcpi_snd_rexmitpack = tp->t_sndrexmitpack; in tcp_fill_info()
1677 ti->tcpi_rcv_ooopack = tp->t_rcvoopack; in tcp_fill_info()
1678 ti->tcpi_snd_zerowin = tp->t_sndzerowin; in tcp_fill_info()
1680 if (tp->t_flags & TF_TOE) { in tcp_fill_info()
1682 tcp_offload_tcp_info(tp, ti); in tcp_fill_info()
1700 tp = intotcpcb(inp); \
1709 struct tcpcb *tp; in tcp_ctloutput() local
1740 tp = intotcpcb(inp); in tcp_ctloutput()
1741 if ((tp->t_state >= TCPS_SYN_SENT) && in tcp_ctloutput()
1749 if (tp->t_maxseg > TCP6_MSS) { in tcp_ctloutput()
1750 tp->t_maxseg = TCP6_MSS; in tcp_ctloutput()
1773 tp = intotcpcb(inp); in tcp_ctloutput()
1791 if (tp->t_fb == blk) { in tcp_ctloutput()
1797 if (tp->t_state != TCPS_CLOSED) { in tcp_ctloutput()
1809 error = (*blk->tfb_tcp_handoff_ok)(tp); in tcp_ctloutput()
1828 if (tp->t_fb->tfb_tcp_fb_fini) { in tcp_ctloutput()
1835 (*tp->t_fb->tfb_tcp_fb_fini)(tp, 0); in tcp_ctloutput()
1840 tcp_hpts_remove(tp->t_inpcb, HPTS_REMOVE_ALL); in tcp_ctloutput()
1843 error = (*blk->tfb_tcp_fb_init)(tp); in tcp_ctloutput()
1846 if (tp->t_fb->tfb_tcp_fb_init) { in tcp_ctloutput()
1847 if((*tp->t_fb->tfb_tcp_fb_init)(tp) != 0) { in tcp_ctloutput()
1857 refcount_release(&tp->t_fb->tfb_refcnt); in tcp_ctloutput()
1858 tp->t_fb = blk; in tcp_ctloutput()
1860 if (tp->t_flags & TF_TOE) { in tcp_ctloutput()
1861 tcp_offload_ctloutput(tp, sopt->sopt_dir, in tcp_ctloutput()
1870 strncpy(fsn.function_set_name, tp->t_fb->tfb_tcp_block_name, in tcp_ctloutput()
1873 fsn.pcbcnt = tp->t_fb->tfb_refcnt; in tcp_ctloutput()
1879 return (tp->t_fb->tfb_tcp_ctloutput(so, sopt, inp, tp)); in tcp_ctloutput()
1923 tcp_default_ctloutput(struct socket *so, struct sockopt *sopt, struct inpcb *inp, struct tcpcb *tp) in tcp_default_ctloutput() argument
1955 if (CC_ALGO(tp)->ctl_output != NULL) in tcp_default_ctloutput()
1956 error = CC_ALGO(tp)->ctl_output(tp->ccv, sopt, pbuf); in tcp_default_ctloutput()
2003 tp->t_flags |= opt; in tcp_default_ctloutput()
2005 tp->t_flags &= ~opt; in tcp_default_ctloutput()
2008 if (tp->t_flags & TF_TOE) { in tcp_default_ctloutput()
2009 tcp_offload_ctloutput(tp, sopt->sopt_dir, in tcp_default_ctloutput()
2025 tp->t_flags |= TF_NOPUSH; in tcp_default_ctloutput()
2026 else if (tp->t_flags & TF_NOPUSH) { in tcp_default_ctloutput()
2027 tp->t_flags &= ~TF_NOPUSH; in tcp_default_ctloutput()
2028 if (TCPS_HAVEESTABLISHED(tp->t_state)) { in tcp_default_ctloutput()
2032 error = tp->t_fb->tfb_tcp_output(tp); in tcp_default_ctloutput()
2054 if (tp->t_state != TCPS_CLOSED) { in tcp_default_ctloutput()
2059 tp->t_port = htons(optval); in tcp_default_ctloutput()
2071 if (optval > 0 && optval <= tp->t_maxseg && in tcp_default_ctloutput()
2073 tp->t_maxseg = optval; in tcp_default_ctloutput()
2098 if ((tp->t_stats != NULL && sbp == NULL) || in tcp_default_ctloutput()
2099 (tp->t_stats == NULL && sbp != NULL)) { in tcp_default_ctloutput()
2100 struct statsblob *t = tp->t_stats; in tcp_default_ctloutput()
2101 tp->t_stats = sbp; in tcp_default_ctloutput()
2134 if (CC_ALGO(tp)->cb_destroy != NULL) in tcp_default_ctloutput()
2135 CC_ALGO(tp)->cb_destroy(tp->ccv); in tcp_default_ctloutput()
2136 CC_DATA(tp) = NULL; in tcp_default_ctloutput()
2137 CC_ALGO(tp) = algo; in tcp_default_ctloutput()
2144 algo->cb_init(tp->ccv) != 0) { in tcp_default_ctloutput()
2145 CC_ALGO(tp) = &newreno_cc_algo; in tcp_default_ctloutput()
2210 tp->t_keepidle = ui; in tcp_default_ctloutput()
2215 if ((tp->t_state > TCPS_LISTEN) && in tcp_default_ctloutput()
2216 (tp->t_state <= TCPS_CLOSING)) in tcp_default_ctloutput()
2217 tcp_timer_activate(tp, TT_KEEP, in tcp_default_ctloutput()
2218 TP_KEEPIDLE(tp)); in tcp_default_ctloutput()
2221 tp->t_keepintvl = ui; in tcp_default_ctloutput()
2222 if ((tp->t_state == TCPS_FIN_WAIT_2) && in tcp_default_ctloutput()
2223 (TP_MAXIDLE(tp) > 0)) in tcp_default_ctloutput()
2224 tcp_timer_activate(tp, TT_2MSL, in tcp_default_ctloutput()
2225 TP_MAXIDLE(tp)); in tcp_default_ctloutput()
2228 tp->t_keepinit = ui; in tcp_default_ctloutput()
2229 if (tp->t_state == TCPS_SYN_RECEIVED || in tcp_default_ctloutput()
2230 tp->t_state == TCPS_SYN_SENT) in tcp_default_ctloutput()
2231 tcp_timer_activate(tp, TT_KEEP, in tcp_default_ctloutput()
2232 TP_KEEPINIT(tp)); in tcp_default_ctloutput()
2244 tp->t_keepcnt = ui; in tcp_default_ctloutput()
2245 if ((tp->t_state == TCPS_FIN_WAIT_2) && in tcp_default_ctloutput()
2246 (TP_MAXIDLE(tp) > 0)) in tcp_default_ctloutput()
2247 tcp_timer_activate(tp, TT_2MSL, in tcp_default_ctloutput()
2248 TP_MAXIDLE(tp)); in tcp_default_ctloutput()
2263 &(tp->t_outpkts) : &(tp->t_inpkts), in tcp_default_ctloutput()
2284 if ((tp->t_state != TCPS_CLOSED) && in tcp_default_ctloutput()
2285 (tp->t_state != TCPS_LISTEN)) { in tcp_default_ctloutput()
2290 if (tp->t_state == TCPS_LISTEN) { in tcp_default_ctloutput()
2296 if (tp->t_tfo_pending == NULL) in tcp_default_ctloutput()
2297 tp->t_tfo_pending = in tcp_default_ctloutput()
2308 memcpy(tp->t_tfo_cookie.client, in tcp_default_ctloutput()
2311 tp->t_tfo_client_cookie_len = in tcp_default_ctloutput()
2315 tp->t_flags |= TF_FASTOPEN; in tcp_default_ctloutput()
2317 tp->t_flags &= ~TF_FASTOPEN; in tcp_default_ctloutput()
2330 error = tcp_log_state_change(tp, optval); in tcp_default_ctloutput()
2345 error = tcp_log_set_id(tp, buf); in tcp_default_ctloutput()
2359 error = tcp_log_dump_tp_logbuf(tp, buf, in tcp_default_ctloutput()
2363 tcp_log_dump_tp_bucket_logbufs(tp, buf); in tcp_default_ctloutput()
2380 tp = intotcpcb(inp); in tcp_default_ctloutput()
2393 optval = tp->t_flags & TF_NODELAY; in tcp_default_ctloutput()
2398 optval = tp->t_maxseg; in tcp_default_ctloutput()
2403 optval = ntohs(tp->t_port); in tcp_default_ctloutput()
2408 optval = tp->t_flags & TF_NOOPT; in tcp_default_ctloutput()
2413 optval = tp->t_flags & TF_NOPUSH; in tcp_default_ctloutput()
2418 tcp_fill_info(tp, &ti); in tcp_default_ctloutput()
2430 if (tp->t_stats == NULL) in tcp_default_ctloutput()
2432 else if (outsbsz >= tp->t_stats->cursz) in tcp_default_ctloutput()
2433 outsbsz = tp->t_stats->cursz; in tcp_default_ctloutput()
2459 error = stats_blob_snapshot(&sbp, outsbsz, tp->t_stats, in tcp_default_ctloutput()
2472 len = strlcpy(buf, CC_ALGO(tp)->name, TCP_CA_NAME_MAX); in tcp_default_ctloutput()
2482 ui = TP_KEEPIDLE(tp) / hz; in tcp_default_ctloutput()
2485 ui = TP_KEEPINTVL(tp) / hz; in tcp_default_ctloutput()
2488 ui = TP_KEEPINIT(tp) / hz; in tcp_default_ctloutput()
2491 ui = TP_KEEPCNT(tp); in tcp_default_ctloutput()
2501 &(tp->t_outpkts) : &(tp->t_inpkts)); in tcp_default_ctloutput()
2507 optval = tp->t_flags & TF_FASTOPEN; in tcp_default_ctloutput()
2513 optval = tp->t_logstate; in tcp_default_ctloutput()
2519 error = tcp_log_getlogbuf(sopt, tp); in tcp_default_ctloutput()
2522 len = tcp_log_get_id(tp, buf); in tcp_default_ctloutput()
2565 tcp_disconnect(struct tcpcb *tp) in tcp_disconnect() argument
2567 struct inpcb *inp = tp->t_inpcb; in tcp_disconnect()
2577 if (tp->t_state < TCPS_ESTABLISHED && in tcp_disconnect()
2578 !(tp->t_state > TCPS_LISTEN && IS_FASTOPEN(tp->t_flags))) { in tcp_disconnect()
2579 tp = tcp_close(tp); in tcp_disconnect()
2580 KASSERT(tp != NULL, in tcp_disconnect()
2583 tp = tcp_drop(tp, 0); in tcp_disconnect()
2584 KASSERT(tp != NULL, in tcp_disconnect()
2589 tcp_usrclosed(tp); in tcp_disconnect()
2591 tp->t_fb->tfb_tcp_output(tp); in tcp_disconnect()
2606 tcp_usrclosed(struct tcpcb *tp) in tcp_usrclosed() argument
2610 INP_WLOCK_ASSERT(tp->t_inpcb); in tcp_usrclosed()
2612 switch (tp->t_state) { in tcp_usrclosed()
2615 tcp_offload_listen_stop(tp); in tcp_usrclosed()
2617 tcp_state_change(tp, TCPS_CLOSED); in tcp_usrclosed()
2620 tp = tcp_close(tp); in tcp_usrclosed()
2625 KASSERT(tp != NULL, in tcp_usrclosed()
2631 tp->t_flags |= TF_NEEDFIN; in tcp_usrclosed()
2635 tcp_state_change(tp, TCPS_FIN_WAIT_1); in tcp_usrclosed()
2639 tcp_state_change(tp, TCPS_LAST_ACK); in tcp_usrclosed()
2642 if (tp->t_state >= TCPS_FIN_WAIT_2) { in tcp_usrclosed()
2643 soisdisconnected(tp->t_inpcb->inp_socket); in tcp_usrclosed()
2645 if (tp->t_state == TCPS_FIN_WAIT_2) { in tcp_usrclosed()
2649 tcp_finwait2_timeout : TP_MAXIDLE(tp); in tcp_usrclosed()
2650 tcp_timer_activate(tp, TT_2MSL, timeout); in tcp_usrclosed()
2853 db_print_tcpcb(struct tcpcb *tp, const char *name, int indent) in db_print_tcpcb() argument
2857 db_printf("%s at %p\n", name, tp); in db_print_tcpcb()
2863 TAILQ_FIRST(&tp->t_segq), tp->t_segqlen, tp->t_dupacks); in db_print_tcpcb()
2867 &tp->t_timers->tt_rexmt, &tp->t_timers->tt_persist, &tp->t_timers->tt_keep); in db_print_tcpcb()
2870 db_printf("tt_2msl: %p tt_delack: %p t_inpcb: %p\n", &tp->t_timers->tt_2msl, in db_print_tcpcb()
2871 &tp->t_timers->tt_delack, tp->t_inpcb); in db_print_tcpcb()
2874 db_printf("t_state: %d (", tp->t_state); in db_print_tcpcb()
2875 db_print_tstate(tp->t_state); in db_print_tcpcb()
2879 db_printf("t_flags: 0x%x (", tp->t_flags); in db_print_tcpcb()
2880 db_print_tflags(tp->t_flags); in db_print_tcpcb()
2884 db_printf("t_flags2: 0x%x (", tp->t_flags2); in db_print_tcpcb()
2885 db_print_tflags2(tp->t_flags2); in db_print_tcpcb()
2890 tp->snd_una, tp->snd_max, tp->snd_nxt); in db_print_tcpcb()
2894 tp->snd_up, tp->snd_wl1, tp->snd_wl2); in db_print_tcpcb()
2898 tp->iss, tp->irs, tp->rcv_nxt); in db_print_tcpcb()
2902 tp->rcv_adv, tp->rcv_wnd, tp->rcv_up); in db_print_tcpcb()
2906 tp->snd_wnd, tp->snd_cwnd); in db_print_tcpcb()
2910 "0x%08x\n", tp->snd_ssthresh, tp->snd_recover); in db_print_tcpcb()
2914 tp->t_rcvtime, tp->t_starttime); in db_print_tcpcb()
2918 tp->t_rtttime, tp->t_rtseq); in db_print_tcpcb()
2922 tp->t_rxtcur, tp->t_maxseg, tp->t_srtt); in db_print_tcpcb()
2926 "t_rttbest: %u\n", tp->t_rttvar, tp->t_rxtshift, tp->t_rttmin, in db_print_tcpcb()
2927 tp->t_rttbest); in db_print_tcpcb()
2931 tp->t_rttupdated, tp->max_sndwnd, tp->t_softerror); in db_print_tcpcb()
2934 db_printf("t_oobflags: 0x%x (", tp->t_oobflags); in db_print_tcpcb()
2935 db_print_toobflags(tp->t_oobflags); in db_print_tcpcb()
2936 db_printf(") t_iobc: 0x%02x\n", tp->t_iobc); in db_print_tcpcb()
2940 tp->snd_scale, tp->rcv_scale, tp->request_r_scale); in db_print_tcpcb()
2944 tp->ts_recent, tp->ts_recent_age); in db_print_tcpcb()
2948 "%u\n", tp->ts_offset, tp->last_ack_sent, tp->snd_cwnd_prev); in db_print_tcpcb()
2952 "t_badrxtwin: %u\n", tp->snd_ssthresh_prev, in db_print_tcpcb()
2953 tp->snd_recover_prev, tp->t_badrxtwin); in db_print_tcpcb()
2957 tp->snd_numholes, TAILQ_FIRST(&tp->snd_holes)); in db_print_tcpcb()
2961 tp->snd_fack, tp->rcv_numsacks); in db_print_tcpcb()
2967 tp->t_rttlow, tp->rfbuf_ts, tp->rfbuf_cnt); in db_print_tcpcb()
2972 struct tcpcb *tp; in DB_SHOW_COMMAND() local
2978 tp = (struct tcpcb *)addr; in DB_SHOW_COMMAND()
2980 db_print_tcpcb(tp, "tcpcb", 0); in DB_SHOW_COMMAND()