Lines Matching refs:tp

151 extern void tcp_sbrcv_trim(struct tcpcb *tp, struct sockbuf *sb);
155 #define TCPDEBUG1() ostate = tp ? tp->t_state : 0
156 #define TCPDEBUG2(req) if (tp && (so->so_options & SO_DEBUG)) \
157 tcp_trace(TA_USER, ostate, tp, 0, 0, req)
182 struct tcpcb *tp = 0;
197 tp = sototcpcb(so);
215 struct tcpcb *tp;
222 tp = intotcpcb(inp);
224 if (tp == 0)
230 tp = tcp_disconnect(tp);
241 tp = intotcpcb(inp); \
268 struct tcpcb *tp;
301 struct tcpcb *tp;
361 struct tcpcb *tp;
367 tp->t_state = TCPS_LISTEN;
377 struct tcpcb *tp;
387 tp->t_state = TCPS_LISTEN;
404 struct tcpcb *tp;
418 tp = intotcpcb(inp);
438 if ((error = tcp_connect(tp, nam, p)) != 0)
440 error = tcp_output(tp);
450 struct tcpcb *tp;
479 if ((error = tcp_connect(tp, (struct sockaddr *)&sin, p)) != 0)
481 error = tcp_output(tp);
486 if ((error = tcp6_connect(tp, nam, p)) != 0)
488 error = tcp_output(tp);
511 struct tcpcb *tp;
516 if (tp == 0)
518 tp = tcp_disconnect(tp);
532 struct tcpcb *tp = NULL;
544 tp = intotcpcb(inp);
558 struct tcpcb *tp = NULL;
568 tp = intotcpcb(inp);
600 struct tcpcb *tp;
605 if (tp == 0)
607 tp = tcp_usrclosed(tp);
608 if (tp)
609 error = tcp_output(tp);
621 struct tcpcb *tp;
625 if (tp == 0)
627 tcp_sbrcv_trim(tp, &so->so_rcv);
629 tcp_output(tp);
670 struct tcpcb *tp;
687 tp = NULL;
694 tp = intotcpcb(inp);
712 if (nam && tp->t_state < TCPS_SYN_SENT) {
721 error = tcp6_connect(tp, nam, p);
724 error = tcp_connect(tp, nam, p);
727 tp->snd_wnd = TTCP_CLIENT_SND_WND;
728 tcp_mss(tp, -1, IFSCOPE_NONE);
737 tp = tcp_usrclosed(tp);
739 if (tp != NULL) {
741 tp->t_flags |= TF_MORETOCOME;
742 error = tcp_output(tp);
744 tp->t_flags &= ~TF_MORETOCOME;
763 if (nam && tp->t_state < TCPS_SYN_SENT) {
772 error = tcp6_connect(tp, nam, p);
775 error = tcp_connect(tp, nam, p);
778 tp->snd_wnd = TTCP_CLIENT_SND_WND;
779 tcp_mss(tp, -1, IFSCOPE_NONE);
781 tp->snd_up = tp->snd_una + so->so_snd.sb_cc;
782 tp->t_force = 1;
783 error = tcp_output(tp);
784 tp->t_force = 0;
798 struct tcpcb *tp;
802 if (tp == 0)
804 tp = tcp_drop(tp, ECONNABORTED);
822 struct tcpcb *tp;
828 tp->t_oobflags & TCPOOB_HADDATA) {
832 if ((tp->t_oobflags & TCPOOB_HAVEDATA) == 0) {
837 *mtod(m, caddr_t) = tp->t_iobc;
839 tp->t_oobflags ^= (TCPOOB_HAVEDATA | TCPOOB_HADDATA);
887 tcp_connect(tp, nam, p)
888 register struct tcpcb *tp;
892 struct inpcb *inp = tp->t_inpcb, *oinp;
971 tcp_set_max_rwinscale(tp, so);
975 tp->t_state = TCPS_SYN_SENT;
976 tp->t_timer[TCPT_KEEP] = OFFSET_FROM_START(tp,
977 tp->t_keepinit ? tp->t_keepinit : tcp_keepinit);
978 tp->iss = tcp_new_isn(tp);
979 tcp_sendseqinit(tp);
987 if ((taop = tcp_gettaocache(tp->t_inpcb)) == NULL) {
992 tp->cc_send = CC_INC(tcp_ccgen);
994 CC_GEQ(tp->cc_send, taop->tao_ccsent)) {
995 taop->tao_ccsent = tp->cc_send;
998 tp->t_flags |= TF_SENDCCNEW;
1006 tcp6_connect(tp, nam, p)
1007 register struct tcpcb *tp;
1011 struct inpcb *inp = tp->t_inpcb, *oinp;
1078 tcp_set_max_rwinscale(tp, so);
1082 tp->t_state = TCPS_SYN_SENT;
1083 tp->t_timer[TCPT_KEEP] = OFFSET_FROM_START(tp,
1084 tp->t_keepinit ? tp->t_keepinit : tcp_keepinit);
1085 tp->iss = tcp_new_isn(tp);
1086 tcp_sendseqinit(tp);
1094 if ((taop = tcp_gettaocache(tp->t_inpcb)) == NULL) {
1099 tp->cc_send = CC_INC(tcp_ccgen);
1101 CC_GEQ(tp->cc_send, taop->tao_ccsent)) {
1102 taop->tao_ccsent = tp->cc_send;
1105 tp->t_flags |= TF_SENDCCNEW;
1120 tcp_fill_info(struct tcpcb *tp, struct tcp_info *ti)
1122 struct inpcb *inp = tp->t_inpcb;
1126 ti->tcpi_state = tp->t_state;
1128 if (tp->t_state > TCPS_LISTEN) {
1129 if ((tp->t_flags & TF_REQ_TSTMP) && (tp->t_flags & TF_RCVD_TSTMP))
1131 if (tp->t_flags & TF_SACK_PERMIT)
1133 if ((tp->t_flags & TF_REQ_SCALE) && (tp->t_flags & TF_RCVD_SCALE)) {
1135 ti->tcpi_snd_wscale = tp->snd_scale;
1136 ti->tcpi_rcv_wscale = tp->rcv_scale;
1140 if (tp->snd_max != tp->snd_nxt)
1145 ti->tcpi_rto = tp->t_timer[TCPT_REXMT] ? tp->t_rxtcur : 0;
1146 ti->tcpi_snd_mss = tp->t_maxseg;
1147 ti->tcpi_rcv_mss = tp->t_maxseg;
1149 ti->tcpi_rttcur = tp->t_rttcur;
1150 ti->tcpi_srtt = tp->t_srtt >> TCP_RTT_SHIFT;
1151 ti->tcpi_rttvar = tp->t_rttvar >> TCP_RTTVAR_SHIFT;
1153 ti->tcpi_snd_ssthresh = tp->snd_ssthresh;
1154 ti->tcpi_snd_cwnd = tp->snd_cwnd;
1155 ti->tcpi_snd_sbbytes = tp->t_inpcb->inp_socket->so_snd.sb_cc;
1157 ti->tcpi_rcv_space = tp->rcv_wnd;
1159 ti->tcpi_snd_wnd = tp->snd_wnd;
1160 ti->tcpi_snd_nxt = tp->snd_nxt;
1161 ti->tcpi_rcv_nxt = tp->rcv_nxt;
1164 if ((tp->t_flagsext & TF_MEASURESNDBW) != 0 &&
1165 tp->t_bwmeas != NULL) {
1166 ti->tcpi_snd_bw = (tp->t_bwmeas->bw_sndbw * 8000);
1169 ti->tcpi_last_outif = (tp->t_inpcb->inp_last_outifp == NULL) ? 0 :
1170 tp->t_inpcb->inp_last_outifp->if_index;
1174 ti->tcpi_txretransmitbytes = tp->t_stat.txretransmitbytes;
1175 ti->tcpi_txunacked = tp->snd_max - tp->snd_una;
1179 ti->tcpi_rxduplicatebytes = tp->t_stat.rxduplicatebytes;
1189 struct tcpcb *tp;
1233 tp = intotcpcb(inp);
1235 tcp_fill_info(tp, ti);
1320 struct tcpcb *tp;
1338 tp = intotcpcb(inp);
1339 if (tp == NULL) {
1372 tp->t_flags |= opt;
1374 tp->t_flags &= ~opt;
1383 tp->t_flagsext |= opt;
1385 tp->t_flagsext &= ~opt;
1394 if (tp->t_bwmeas == NULL) {
1395 tp->t_bwmeas = tcp_bwmeas_alloc(tp);
1396 if (tp->t_bwmeas == NULL) {
1401 tp->t_flagsext |= opt;
1403 tp->t_flagsext &= ~opt;
1405 tp->t_flagsext &= ~(TF_BWMEAS_INPROGRESS);
1406 if (tp->t_bwmeas != NULL) {
1407 tcp_bwmeas_free(tp);
1420 if ((tp->t_flagsext & TF_MEASURESNDBW) == 0 ||
1421 tp->t_bwmeas == NULL) {
1426 tp->t_bwmeas->bw_minsizepkts;
1428 tp->t_bwmeas->bw_maxsizepkts;
1433 tp->t_bwmeas->bw_minsizepkts = minpkts;
1434 tp->t_bwmeas->bw_maxsizepkts = maxpkts;
1435 tp->t_bwmeas->bw_minsize = (minpkts * tp->t_maxseg);
1436 tp->t_bwmeas->bw_maxsize = (maxpkts * tp->t_maxseg);
1445 if (optval > 0 && optval <= tp->t_maxseg &&
1447 tp->t_maxseg = optval;
1460 tp->t_keepidle = optval * TCP_RETRANSHZ;
1461 tp->t_timer[TCPT_KEEP] = OFFSET_FROM_START(tp,
1462 TCP_KEEPIDLE(tp)); /* reset the timer to new value */
1463 tcp_check_timer_state(tp);
1475 tp->t_keepinit = optval * TCP_RETRANSHZ;
1486 tp->t_persist_timeout = optval * TCP_RETRANSHZ;
1496 tp->rxt_conndroptime = optval * TCP_RETRANSHZ;
1509 tp->t_notsent_lowat = 0;
1512 tp->t_notsent_lowat = optval;
1534 optval = tp->t_flags & TF_NODELAY;
1537 optval = tp->t_maxseg;
1540 optval = tp->t_keepidle / TCP_RETRANSHZ;
1543 optval = tp->t_flags & TF_NOOPT;
1546 optval = tp->t_flags & TF_NOPUSH;
1549 optval = tp->t_keepinit / TCP_RETRANSHZ;
1552 optval = tp->t_persist_timeout / TCP_RETRANSHZ;
1555 optval = tp->rxt_conndroptime / TCP_RETRANSHZ;
1558 optval = tp->t_flagsext & TF_RXTFINDROP;
1561 optval = tp->t_flagsext & TF_MEASURESNDBW;
1566 tcp_fill_info(tp, &ti);
1573 if ((tp->t_flagsext & TF_MEASURESNDBW) == 0 ||
1574 tp->t_bwmeas == NULL) {
1578 out.min_burst_size = tp->t_bwmeas->bw_minsizepkts;
1579 out.max_burst_size = tp->t_bwmeas->bw_maxsizepkts;
1585 optval = tp->t_notsent_lowat;
1673 register struct tcpcb *tp;
1704 tp = tcp_newtcpcb(inp);
1705 if (tp == 0) {
1721 tp->t_state = TCPS_CLOSED;
1734 tcp_disconnect(tp)
1735 register struct tcpcb *tp;
1737 struct socket *so = tp->t_inpcb->inp_socket;
1739 if (tp->t_state < TCPS_ESTABLISHED)
1740 tp = tcp_close(tp);
1742 tp = tcp_drop(tp, 0);
1746 tp = tcp_usrclosed(tp);
1747 if (tp)
1748 (void) tcp_output(tp);
1750 return (tp);
1764 tcp_usrclosed(tp)
1765 register struct tcpcb *tp;
1768 switch (tp->t_state) {
1772 tp->t_state = TCPS_CLOSED;
1773 tp = tcp_close(tp);
1778 tp->t_flags |= TF_NEEDFIN;
1782 tp->t_state = TCPS_FIN_WAIT_1;
1786 tp->t_state = TCPS_LAST_ACK;
1789 if (tp && tp->t_state >= TCPS_FIN_WAIT_2) {
1790 soisdisconnected(tp->t_inpcb->inp_socket);
1792 if (tp->t_state == TCPS_FIN_WAIT_2)
1793 tp->t_timer[TCPT_2MSL] = OFFSET_FROM_START(tp, tcp_maxidle);
1795 return (tp);