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()
211 TCP_PROBE2(debug__user, tp, PRU_ATTACH); in tcp_usr_attach()
225 struct tcpcb *tp; in tcp_usr_detach() local
233 tp = intotcpcb(inp); in tcp_usr_detach()
268 if (__predict_true(tp == NULL)) { in tcp_usr_detach()
302 tp->t_state < TCPS_SYN_SENT) { in tcp_usr_detach()
303 tcp_discardcb(tp); in tcp_usr_detach()
360 struct tcpcb *tp = NULL; in tcp_usr_bind() local
382 tp = intotcpcb(inp); in tcp_usr_bind()
389 TCP_PROBE2(debug__user, tp, PRU_BIND); in tcp_usr_bind()
402 struct tcpcb *tp = NULL; in tcp6_usr_bind() local
426 tp = intotcpcb(inp); in tcp6_usr_bind()
459 TCP_PROBE2(debug__user, tp, PRU_BIND); in tcp6_usr_bind()
474 struct tcpcb *tp = NULL; in tcp_usr_listen() local
484 tp = intotcpcb(inp); in tcp_usr_listen()
493 tcp_state_change(tp, TCPS_LISTEN); in tcp_usr_listen()
497 tcp_offload_listen_start(tp); in tcp_usr_listen()
502 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_listen()
503 tp->t_tfo_pending = tcp_fastopen_alloc_counter(); in tcp_usr_listen()
507 TCP_PROBE2(debug__user, tp, PRU_LISTEN); in tcp_usr_listen()
519 struct tcpcb *tp = NULL; in tcp6_usr_listen() local
531 tp = intotcpcb(inp); in tcp6_usr_listen()
544 tcp_state_change(tp, TCPS_LISTEN); in tcp6_usr_listen()
548 tcp_offload_listen_start(tp); in tcp6_usr_listen()
553 if (IS_FASTOPEN(tp->t_flags)) in tcp6_usr_listen()
554 tp->t_tfo_pending = tcp_fastopen_alloc_counter(); in tcp6_usr_listen()
561 TCP_PROBE2(debug__user, tp, PRU_LISTEN); in tcp6_usr_listen()
581 struct tcpcb *tp = NULL; in tcp_usr_connect() local
611 tp = intotcpcb(inp); in tcp_usr_connect()
614 if ((error = tcp_connect(tp, nam, td)) != 0) in tcp_usr_connect()
622 tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); in tcp_usr_connect()
623 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_connect()
628 TCP_PROBE2(debug__user, tp, PRU_CONNECT); in tcp_usr_connect()
641 struct tcpcb *tp = NULL; in tcp6_usr_connect() local
671 tp = intotcpcb(inp); in tcp6_usr_connect()
706 if ((error = tcp_connect(tp, (struct sockaddr *)&sin, td)) != 0) in tcp6_usr_connect()
714 error = tp->t_fb->tfb_tcp_output(tp); in tcp6_usr_connect()
728 if ((error = tcp6_connect(tp, nam, td)) != 0) in tcp6_usr_connect()
736 tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); in tcp6_usr_connect()
738 error = tp->t_fb->tfb_tcp_output(tp); in tcp6_usr_connect()
754 TCP_PROBE2(debug__user, tp, PRU_CONNECT); in tcp6_usr_connect()
775 struct tcpcb *tp = NULL; in tcp_usr_disconnect() local
790 tp = intotcpcb(inp); in tcp_usr_disconnect()
792 tcp_disconnect(tp); in tcp_usr_disconnect()
795 TCP_PROBE2(debug__user, tp, PRU_DISCONNECT); in tcp_usr_disconnect()
811 struct tcpcb *tp = NULL; in tcp_usr_accept() local
826 tp = intotcpcb(inp); in tcp_usr_accept()
849 TCP_PROBE2(debug__user, tp, PRU_ACCEPT); in tcp_usr_accept()
863 struct tcpcb *tp = NULL; in tcp6_usr_accept() local
882 tp = intotcpcb(inp); in tcp6_usr_accept()
901 TCP_PROBE2(debug__user, tp, PRU_ACCEPT); in tcp6_usr_accept()
922 struct tcpcb *tp = NULL; in tcp_usr_shutdown() local
934 tp = intotcpcb(inp); in tcp_usr_shutdown()
937 tcp_usrclosed(tp); in tcp_usr_shutdown()
939 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_shutdown()
943 TCP_PROBE2(debug__user, tp, PRU_SHUTDOWN); in tcp_usr_shutdown()
958 struct tcpcb *tp = NULL; in tcp_usr_rcvd() local
969 tp = intotcpcb(inp); in tcp_usr_rcvd()
978 if (IS_FASTOPEN(tp->t_flags) && in tcp_usr_rcvd()
979 (tp->t_state == TCPS_SYN_RECEIVED)) in tcp_usr_rcvd()
983 if (tp->t_flags & TF_TOE) in tcp_usr_rcvd()
984 tcp_offload_rcvd(tp); in tcp_usr_rcvd()
987 tp->t_fb->tfb_tcp_output(tp); in tcp_usr_rcvd()
991 TCP_PROBE2(debug__user, tp, PRU_RCVD); in tcp_usr_rcvd()
1010 struct tcpcb *tp = NULL; in tcp_usr_send() local
1048 tp = intotcpcb(inp); in tcp_usr_send()
1050 if ((error = tcp_pru_options_support(tp, PRUS_OOB)) != 0) { in tcp_usr_send()
1059 if (nam != NULL && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1202 if (nam && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1210 error = tcp6_connect(tp, nam, td); in tcp_usr_send()
1216 error = tcp_connect(tp, in tcp_usr_send()
1229 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_send()
1230 tcp_fastopen_connect(tp); in tcp_usr_send()
1232 tp->snd_wnd = TTCP_CLIENT_SND_WND; in tcp_usr_send()
1233 tcp_mss(tp, -1); in tcp_usr_send()
1242 tcp_usrclosed(tp); in tcp_usr_send()
1244 if (TCPS_HAVEESTABLISHED(tp->t_state) && in tcp_usr_send()
1245 ((tp->t_flags2 & TF2_FBYTES_COMPLETE) == 0) && in tcp_usr_send()
1246 (tp->t_fbyte_out == 0) && in tcp_usr_send()
1248 tp->t_fbyte_out = ticks; in tcp_usr_send()
1249 if (tp->t_fbyte_out == 0) in tcp_usr_send()
1250 tp->t_fbyte_out = 1; in tcp_usr_send()
1251 if (tp->t_fbyte_out && tp->t_fbyte_in) in tcp_usr_send()
1252 tp->t_flags2 |= TF2_FBYTES_COMPLETE; in tcp_usr_send()
1257 tp->t_flags |= TF_MORETOCOME; in tcp_usr_send()
1258 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_send()
1260 tp->t_flags &= ~TF_MORETOCOME; in tcp_usr_send()
1283 if (nam && tp->t_state < TCPS_SYN_SENT) { in tcp_usr_send()
1293 if (IS_FASTOPEN(tp->t_flags)) in tcp_usr_send()
1294 tp->t_flags &= ~TF_FASTOPEN; in tcp_usr_send()
1297 error = tcp6_connect(tp, nam, td); in tcp_usr_send()
1303 error = tcp_connect(tp, in tcp_usr_send()
1316 tp->snd_wnd = TTCP_CLIENT_SND_WND; in tcp_usr_send()
1317 tcp_mss(tp, -1); in tcp_usr_send()
1319 tp->snd_up = tp->snd_una + sbavail(&so->so_snd); in tcp_usr_send()
1321 tp->t_flags |= TF_FORCEDATA; in tcp_usr_send()
1322 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_send()
1323 tp->t_flags &= ~TF_FORCEDATA; in tcp_usr_send()
1326 TCP_LOG_EVENT(tp, NULL, in tcp_usr_send()
1342 TCP_PROBE2(debug__user, tp, (flags & PRUS_OOB) ? PRU_SENDOOB : in tcp_usr_send()
1354 struct tcpcb *tp; in tcp_usr_ready() local
1364 tp = intotcpcb(inp); in tcp_usr_ready()
1371 error = tp->t_fb->tfb_tcp_output(tp); in tcp_usr_ready()
1386 struct tcpcb *tp = NULL; in tcp_usr_abort() local
1403 tp = intotcpcb(inp); in tcp_usr_abort()
1405 tp = tcp_drop(tp, ECONNABORTED); in tcp_usr_abort()
1406 if (tp == NULL) in tcp_usr_abort()
1409 TCP_PROBE2(debug__user, tp, PRU_ABORT); in tcp_usr_abort()
1429 struct tcpcb *tp = NULL; in tcp_usr_close() local
1447 tp = intotcpcb(inp); in tcp_usr_close()
1449 tcp_disconnect(tp); in tcp_usr_close()
1451 TCP_PROBE2(debug__user, tp, PRU_CLOSE); in tcp_usr_close()
1464 tcp_pru_options_support(struct tcpcb *tp, int flags) in tcp_pru_options_support() argument
1475 if (tp->t_fb->tfb_pru_options) { in tcp_pru_options_support()
1476 ret = (*tp->t_fb->tfb_pru_options)(tp, flags); in tcp_pru_options_support()
1489 struct tcpcb *tp = NULL; in tcp_usr_rcvoob() local
1499 tp = intotcpcb(inp); in tcp_usr_rcvoob()
1500 error = tcp_pru_options_support(tp, PRUS_OOB); in tcp_usr_rcvoob()
1508 tp->t_oobflags & TCPOOB_HADDATA) { in tcp_usr_rcvoob()
1512 if ((tp->t_oobflags & TCPOOB_HAVEDATA) == 0) { in tcp_usr_rcvoob()
1517 *mtod(m, caddr_t) = tp->t_iobc; in tcp_usr_rcvoob()
1519 tp->t_oobflags ^= (TCPOOB_HAVEDATA | TCPOOB_HADDATA); in tcp_usr_rcvoob()
1523 TCP_PROBE2(debug__user, tp, PRU_RCVOOB); in tcp_usr_rcvoob()
1590 tcp_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td) in tcp_connect() argument
1592 struct inpcb *inp = tp->t_inpcb, *oinp; in tcp_connect()
1690 while (tp->request_r_scale < TCP_MAX_WINSHIFT && in tcp_connect()
1691 (TCP_MAXWIN << tp->request_r_scale) < sb_max) in tcp_connect()
1692 tp->request_r_scale++; in tcp_connect()
1696 tcp_state_change(tp, TCPS_SYN_SENT); in tcp_connect()
1697 tp->iss = tcp_new_isn(&inp->inp_inc); in tcp_connect()
1698 if (tp->t_flags & TF_REQ_TSTMP) in tcp_connect()
1699 tp->ts_offset = tcp_new_ts_offset(&inp->inp_inc); in tcp_connect()
1700 tcp_sendseqinit(tp); in tcp_connect()
1712 tcp6_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td) in tcp6_connect() argument
1714 struct inpcb *inp = tp->t_inpcb; in tcp6_connect()
1731 while (tp->request_r_scale < TCP_MAX_WINSHIFT && in tcp6_connect()
1732 (TCP_MAXWIN << tp->request_r_scale) < sb_max) in tcp6_connect()
1733 tp->request_r_scale++; in tcp6_connect()
1737 tcp_state_change(tp, TCPS_SYN_SENT); in tcp6_connect()
1738 tp->iss = tcp_new_isn(&inp->inp_inc); in tcp6_connect()
1739 if (tp->t_flags & TF_REQ_TSTMP) in tcp6_connect()
1740 tp->ts_offset = tcp_new_ts_offset(&inp->inp_inc); in tcp6_connect()
1741 tcp_sendseqinit(tp); in tcp6_connect()
1759 tcp_fill_info(struct tcpcb *tp, struct tcp_info *ti) in tcp_fill_info() argument
1762 INP_WLOCK_ASSERT(tp->t_inpcb); in tcp_fill_info()
1765 ti->tcpi_state = tp->t_state; in tcp_fill_info()
1766 if ((tp->t_flags & TF_REQ_TSTMP) && (tp->t_flags & TF_RCVD_TSTMP)) in tcp_fill_info()
1768 if (tp->t_flags & TF_SACK_PERMIT) in tcp_fill_info()
1770 if ((tp->t_flags & TF_REQ_SCALE) && (tp->t_flags & TF_RCVD_SCALE)) { in tcp_fill_info()
1772 ti->tcpi_snd_wscale = tp->snd_scale; in tcp_fill_info()
1773 ti->tcpi_rcv_wscale = tp->rcv_scale; in tcp_fill_info()
1775 if (tp->t_flags2 & TF2_ECN_PERMIT) in tcp_fill_info()
1778 ti->tcpi_rto = tp->t_rxtcur * tick; in tcp_fill_info()
1779 ti->tcpi_last_data_recv = ((uint32_t)ticks - tp->t_rcvtime) * tick; in tcp_fill_info()
1780 ti->tcpi_rtt = ((u_int64_t)tp->t_srtt * tick) >> TCP_RTT_SHIFT; in tcp_fill_info()
1781 ti->tcpi_rttvar = ((u_int64_t)tp->t_rttvar * tick) >> TCP_RTTVAR_SHIFT; in tcp_fill_info()
1783 ti->tcpi_snd_ssthresh = tp->snd_ssthresh; in tcp_fill_info()
1784 ti->tcpi_snd_cwnd = tp->snd_cwnd; in tcp_fill_info()
1789 ti->tcpi_rcv_space = tp->rcv_wnd; in tcp_fill_info()
1790 ti->tcpi_rcv_nxt = tp->rcv_nxt; in tcp_fill_info()
1791 ti->tcpi_snd_wnd = tp->snd_wnd; in tcp_fill_info()
1793 ti->tcpi_snd_nxt = tp->snd_nxt; in tcp_fill_info()
1794 ti->tcpi_snd_mss = tp->t_maxseg; in tcp_fill_info()
1795 ti->tcpi_rcv_mss = tp->t_maxseg; in tcp_fill_info()
1796 ti->tcpi_snd_rexmitpack = tp->t_sndrexmitpack; in tcp_fill_info()
1797 ti->tcpi_rcv_ooopack = tp->t_rcvoopack; in tcp_fill_info()
1798 ti->tcpi_snd_zerowin = tp->t_sndzerowin; in tcp_fill_info()
1800 if (tp->t_flags & TF_TOE) { in tcp_fill_info()
1802 tcp_offload_tcp_info(tp, ti); in tcp_fill_info()
1820 tp = intotcpcb(inp); \
1829 struct tcpcb *tp; in tcp_ctloutput() local
1860 tp = intotcpcb(inp); in tcp_ctloutput()
1861 if ((tp->t_state >= TCPS_SYN_SENT) && in tcp_ctloutput()
1869 if (tp->t_maxseg > TCP6_MSS) { in tcp_ctloutput()
1870 tp->t_maxseg = TCP6_MSS; in tcp_ctloutput()
1893 tp = intotcpcb(inp); in tcp_ctloutput()
1911 if (tp->t_fb == blk) { in tcp_ctloutput()
1917 if (tp->t_state != TCPS_CLOSED) { in tcp_ctloutput()
1929 error = (*blk->tfb_tcp_handoff_ok)(tp); in tcp_ctloutput()
1948 if (tp->t_fb->tfb_tcp_fb_fini) { in tcp_ctloutput()
1953 (*tp->t_fb->tfb_tcp_fb_fini)(tp, 0); in tcp_ctloutput()
1957 tcp_hpts_remove(tp->t_inpcb, HPTS_REMOVE_ALL); in tcp_ctloutput()
1960 error = (*blk->tfb_tcp_fb_init)(tp); in tcp_ctloutput()
1963 if (tp->t_fb->tfb_tcp_fb_init) { in tcp_ctloutput()
1964 if((*tp->t_fb->tfb_tcp_fb_init)(tp) != 0) { in tcp_ctloutput()
1974 refcount_release(&tp->t_fb->tfb_refcnt); in tcp_ctloutput()
1975 tp->t_fb = blk; in tcp_ctloutput()
1977 if (tp->t_flags & TF_TOE) { in tcp_ctloutput()
1978 tcp_offload_ctloutput(tp, sopt->sopt_dir, in tcp_ctloutput()
1987 strncpy(fsn.function_set_name, tp->t_fb->tfb_tcp_block_name, in tcp_ctloutput()
1990 fsn.pcbcnt = tp->t_fb->tfb_refcnt; in tcp_ctloutput()
1996 return (tp->t_fb->tfb_tcp_ctloutput(so, sopt, inp, tp)); in tcp_ctloutput()
2040 tcp_default_ctloutput(struct socket *so, struct sockopt *sopt, struct inpcb *inp, struct tcpcb *tp) in tcp_default_ctloutput() argument
2072 if (CC_ALGO(tp)->ctl_output != NULL) in tcp_default_ctloutput()
2073 error = CC_ALGO(tp)->ctl_output(tp->ccv, sopt, pbuf); in tcp_default_ctloutput()
2120 tp->t_flags |= opt; in tcp_default_ctloutput()
2122 tp->t_flags &= ~opt; in tcp_default_ctloutput()
2125 if (tp->t_flags & TF_TOE) { in tcp_default_ctloutput()
2126 tcp_offload_ctloutput(tp, sopt->sopt_dir, in tcp_default_ctloutput()
2142 tp->t_flags |= TF_NOPUSH; in tcp_default_ctloutput()
2143 else if (tp->t_flags & TF_NOPUSH) { in tcp_default_ctloutput()
2144 tp->t_flags &= ~TF_NOPUSH; in tcp_default_ctloutput()
2145 if (TCPS_HAVEESTABLISHED(tp->t_state)) { in tcp_default_ctloutput()
2149 error = tp->t_fb->tfb_tcp_output(tp); in tcp_default_ctloutput()
2163 if (optval > 0 && optval <= tp->t_maxseg && in tcp_default_ctloutput()
2165 tp->t_maxseg = optval; in tcp_default_ctloutput()
2190 if ((tp->t_stats != NULL && sbp == NULL) || in tcp_default_ctloutput()
2191 (tp->t_stats == NULL && sbp != NULL)) { in tcp_default_ctloutput()
2192 struct statsblob *t = tp->t_stats; in tcp_default_ctloutput()
2193 tp->t_stats = sbp; in tcp_default_ctloutput()
2226 if (CC_ALGO(tp)->cb_destroy != NULL) in tcp_default_ctloutput()
2227 CC_ALGO(tp)->cb_destroy(tp->ccv); in tcp_default_ctloutput()
2228 CC_DATA(tp) = NULL; in tcp_default_ctloutput()
2229 CC_ALGO(tp) = algo; in tcp_default_ctloutput()
2236 algo->cb_init(tp->ccv) != 0) { in tcp_default_ctloutput()
2237 CC_ALGO(tp) = &newreno_cc_algo; in tcp_default_ctloutput()
2302 tp->t_keepidle = ui; in tcp_default_ctloutput()
2307 if ((tp->t_state > TCPS_LISTEN) && in tcp_default_ctloutput()
2308 (tp->t_state <= TCPS_CLOSING)) in tcp_default_ctloutput()
2309 tcp_timer_activate(tp, TT_KEEP, in tcp_default_ctloutput()
2310 TP_KEEPIDLE(tp)); in tcp_default_ctloutput()
2313 tp->t_keepintvl = ui; in tcp_default_ctloutput()
2314 if ((tp->t_state == TCPS_FIN_WAIT_2) && in tcp_default_ctloutput()
2315 (TP_MAXIDLE(tp) > 0)) in tcp_default_ctloutput()
2316 tcp_timer_activate(tp, TT_2MSL, in tcp_default_ctloutput()
2317 TP_MAXIDLE(tp)); in tcp_default_ctloutput()
2320 tp->t_keepinit = ui; in tcp_default_ctloutput()
2321 if (tp->t_state == TCPS_SYN_RECEIVED || in tcp_default_ctloutput()
2322 tp->t_state == TCPS_SYN_SENT) in tcp_default_ctloutput()
2323 tcp_timer_activate(tp, TT_KEEP, in tcp_default_ctloutput()
2324 TP_KEEPINIT(tp)); in tcp_default_ctloutput()
2336 tp->t_keepcnt = ui; in tcp_default_ctloutput()
2337 if ((tp->t_state == TCPS_FIN_WAIT_2) && in tcp_default_ctloutput()
2338 (TP_MAXIDLE(tp) > 0)) in tcp_default_ctloutput()
2339 tcp_timer_activate(tp, TT_2MSL, in tcp_default_ctloutput()
2340 TP_MAXIDLE(tp)); in tcp_default_ctloutput()
2355 &(tp->t_outpkts) : &(tp->t_inpkts), in tcp_default_ctloutput()
2376 if ((tp->t_state != TCPS_CLOSED) && in tcp_default_ctloutput()
2377 (tp->t_state != TCPS_LISTEN)) { in tcp_default_ctloutput()
2382 if (tp->t_state == TCPS_LISTEN) { in tcp_default_ctloutput()
2388 if (tp->t_tfo_pending == NULL) in tcp_default_ctloutput()
2389 tp->t_tfo_pending = in tcp_default_ctloutput()
2400 memcpy(tp->t_tfo_cookie.client, in tcp_default_ctloutput()
2403 tp->t_tfo_client_cookie_len = in tcp_default_ctloutput()
2407 tp->t_flags |= TF_FASTOPEN; in tcp_default_ctloutput()
2409 tp->t_flags &= ~TF_FASTOPEN; in tcp_default_ctloutput()
2422 error = tcp_log_state_change(tp, optval); in tcp_default_ctloutput()
2437 error = tcp_log_set_id(tp, buf); in tcp_default_ctloutput()
2451 error = tcp_log_dump_tp_logbuf(tp, buf, in tcp_default_ctloutput()
2455 tcp_log_dump_tp_bucket_logbufs(tp, buf); in tcp_default_ctloutput()
2472 tp = intotcpcb(inp); in tcp_default_ctloutput()
2485 optval = tp->t_flags & TF_NODELAY; in tcp_default_ctloutput()
2490 optval = tp->t_maxseg; in tcp_default_ctloutput()
2495 optval = tp->t_flags & TF_NOOPT; in tcp_default_ctloutput()
2500 optval = tp->t_flags & TF_NOPUSH; in tcp_default_ctloutput()
2505 tcp_fill_info(tp, &ti); in tcp_default_ctloutput()
2517 if (tp->t_stats == NULL) in tcp_default_ctloutput()
2519 else if (outsbsz >= tp->t_stats->cursz) in tcp_default_ctloutput()
2520 outsbsz = tp->t_stats->cursz; in tcp_default_ctloutput()
2546 error = stats_blob_snapshot(&sbp, outsbsz, tp->t_stats, in tcp_default_ctloutput()
2559 len = strlcpy(buf, CC_ALGO(tp)->name, TCP_CA_NAME_MAX); in tcp_default_ctloutput()
2569 ui = TP_KEEPIDLE(tp) / hz; in tcp_default_ctloutput()
2572 ui = TP_KEEPINTVL(tp) / hz; in tcp_default_ctloutput()
2575 ui = TP_KEEPINIT(tp) / hz; in tcp_default_ctloutput()
2578 ui = TP_KEEPCNT(tp); in tcp_default_ctloutput()
2588 &(tp->t_outpkts) : &(tp->t_inpkts)); in tcp_default_ctloutput()
2594 optval = tp->t_flags & TF_FASTOPEN; in tcp_default_ctloutput()
2600 optval = tp->t_logstate; in tcp_default_ctloutput()
2606 error = tcp_log_getlogbuf(sopt, tp); in tcp_default_ctloutput()
2609 len = tcp_log_get_id(tp, buf); in tcp_default_ctloutput()
2652 tcp_disconnect(struct tcpcb *tp) in tcp_disconnect() argument
2654 struct inpcb *inp = tp->t_inpcb; in tcp_disconnect()
2664 if (tp->t_state < TCPS_ESTABLISHED && in tcp_disconnect()
2665 !(tp->t_state > TCPS_LISTEN && IS_FASTOPEN(tp->t_flags))) { in tcp_disconnect()
2666 tp = tcp_close(tp); in tcp_disconnect()
2667 KASSERT(tp != NULL, in tcp_disconnect()
2670 tp = tcp_drop(tp, 0); in tcp_disconnect()
2671 KASSERT(tp != NULL, in tcp_disconnect()
2676 tcp_usrclosed(tp); in tcp_disconnect()
2678 tp->t_fb->tfb_tcp_output(tp); in tcp_disconnect()
2693 tcp_usrclosed(struct tcpcb *tp) in tcp_usrclosed() argument
2697 INP_WLOCK_ASSERT(tp->t_inpcb); in tcp_usrclosed()
2699 switch (tp->t_state) { in tcp_usrclosed()
2702 tcp_offload_listen_stop(tp); in tcp_usrclosed()
2704 tcp_state_change(tp, TCPS_CLOSED); in tcp_usrclosed()
2707 tp = tcp_close(tp); in tcp_usrclosed()
2712 KASSERT(tp != NULL, in tcp_usrclosed()
2718 tp->t_flags |= TF_NEEDFIN; in tcp_usrclosed()
2722 tcp_state_change(tp, TCPS_FIN_WAIT_1); in tcp_usrclosed()
2726 tcp_state_change(tp, TCPS_LAST_ACK); in tcp_usrclosed()
2729 if (tp->t_state >= TCPS_FIN_WAIT_2) { in tcp_usrclosed()
2730 soisdisconnected(tp->t_inpcb->inp_socket); in tcp_usrclosed()
2732 if (tp->t_state == TCPS_FIN_WAIT_2) { in tcp_usrclosed()
2736 tcp_finwait2_timeout : TP_MAXIDLE(tp); in tcp_usrclosed()
2737 tcp_timer_activate(tp, TT_2MSL, timeout); in tcp_usrclosed()
2940 db_print_tcpcb(struct tcpcb *tp, const char *name, int indent) in db_print_tcpcb() argument
2944 db_printf("%s at %p\n", name, tp); in db_print_tcpcb()
2950 TAILQ_FIRST(&tp->t_segq), tp->t_segqlen, tp->t_dupacks); in db_print_tcpcb()
2954 &tp->t_timers->tt_rexmt, &tp->t_timers->tt_persist, &tp->t_timers->tt_keep); in db_print_tcpcb()
2957 db_printf("tt_2msl: %p tt_delack: %p t_inpcb: %p\n", &tp->t_timers->tt_2msl, in db_print_tcpcb()
2958 &tp->t_timers->tt_delack, tp->t_inpcb); in db_print_tcpcb()
2961 db_printf("t_state: %d (", tp->t_state); in db_print_tcpcb()
2962 db_print_tstate(tp->t_state); in db_print_tcpcb()
2966 db_printf("t_flags: 0x%x (", tp->t_flags); in db_print_tcpcb()
2967 db_print_tflags(tp->t_flags); in db_print_tcpcb()
2971 db_printf("t_flags2: 0x%x (", tp->t_flags2); in db_print_tcpcb()
2972 db_print_tflags2(tp->t_flags2); in db_print_tcpcb()
2977 tp->snd_una, tp->snd_max, tp->snd_nxt); in db_print_tcpcb()
2981 tp->snd_up, tp->snd_wl1, tp->snd_wl2); in db_print_tcpcb()
2985 tp->iss, tp->irs, tp->rcv_nxt); in db_print_tcpcb()
2989 tp->rcv_adv, tp->rcv_wnd, tp->rcv_up); in db_print_tcpcb()
2993 tp->snd_wnd, tp->snd_cwnd); in db_print_tcpcb()
2997 "0x%08x\n", tp->snd_ssthresh, tp->snd_recover); in db_print_tcpcb()
3001 tp->t_rcvtime, tp->t_starttime); in db_print_tcpcb()
3005 tp->t_rtttime, tp->t_rtseq); in db_print_tcpcb()
3009 tp->t_rxtcur, tp->t_maxseg, tp->t_srtt); in db_print_tcpcb()
3013 "t_rttbest: %u\n", tp->t_rttvar, tp->t_rxtshift, tp->t_rttmin, in db_print_tcpcb()
3014 tp->t_rttbest); in db_print_tcpcb()
3018 tp->t_rttupdated, tp->max_sndwnd, tp->t_softerror); in db_print_tcpcb()
3021 db_printf("t_oobflags: 0x%x (", tp->t_oobflags); in db_print_tcpcb()
3022 db_print_toobflags(tp->t_oobflags); in db_print_tcpcb()
3023 db_printf(") t_iobc: 0x%02x\n", tp->t_iobc); in db_print_tcpcb()
3027 tp->snd_scale, tp->rcv_scale, tp->request_r_scale); in db_print_tcpcb()
3031 tp->ts_recent, tp->ts_recent_age); in db_print_tcpcb()
3035 "%u\n", tp->ts_offset, tp->last_ack_sent, tp->snd_cwnd_prev); in db_print_tcpcb()
3039 "t_badrxtwin: %u\n", tp->snd_ssthresh_prev, in db_print_tcpcb()
3040 tp->snd_recover_prev, tp->t_badrxtwin); in db_print_tcpcb()
3044 tp->snd_numholes, TAILQ_FIRST(&tp->snd_holes)); in db_print_tcpcb()
3048 tp->snd_fack, tp->rcv_numsacks); in db_print_tcpcb()
3054 tp->t_rttlow, tp->rfbuf_ts, tp->rfbuf_cnt); in db_print_tcpcb()
3059 struct tcpcb *tp; in DB_SHOW_COMMAND() local
3065 tp = (struct tcpcb *)addr; in DB_SHOW_COMMAND()
3067 db_print_tcpcb(tp, "tcpcb", 0); in DB_SHOW_COMMAND()