Lines Matching refs:tp
199 struct tcpcb *tp;
206 if ((inp = sotoinpcb(so)) == NULL || (tp = intotcpcb(inp)) == NULL) {
215 *rtp = tp;
226 tcp_fill_info(struct tcpcb *tp, struct socket *so, struct mbuf *m)
243 ti->tcpi_state = tp->t_state;
244 if ((tp->t_flags & TF_REQ_TSTMP) && (tp->t_flags & TF_RCVD_TSTMP))
246 if (tp->t_flags & TF_SACK_PERMIT)
248 if ((tp->t_flags & TF_REQ_SCALE) && (tp->t_flags & TF_RCVD_SCALE)) {
250 ti->tcpi_snd_wscale = tp->snd_scale;
251 ti->tcpi_rcv_wscale = tp->rcv_scale;
254 if (tp->t_flags & TF_ECN_PERMIT)
258 ti->tcpi_rto = tp->t_rxtcur * t;
259 ti->tcpi_snd_mss = tp->t_maxseg;
260 ti->tcpi_rcv_mss = tp->t_peermss;
262 ti->tcpi_last_data_sent = (now - tp->t_sndtime) * t;
263 ti->tcpi_last_ack_sent = (now - tp->t_sndacktime) * t;
264 ti->tcpi_last_data_recv = (now - tp->t_rcvtime) * t;
265 ti->tcpi_last_ack_recv = (now - tp->t_rcvacktime) * t;
267 ti->tcpi_rtt = ((uint64_t)tp->t_srtt * t) >>
269 ti->tcpi_rttvar = ((uint64_t)tp->t_rttvar * t) >>
271 ti->tcpi_snd_ssthresh = tp->snd_ssthresh;
272 ti->tcpi_snd_cwnd = tp->snd_cwnd;
274 ti->tcpi_rcv_space = tp->rcv_wnd;
283 ti->tcpi_snd_wnd = tp->snd_wnd;
284 ti->tcpi_snd_nxt = tp->snd_nxt - tp->iss;
285 ti->tcpi_rcv_nxt = tp->rcv_nxt - tp->irs;
287 ti->tcpi_snd_rexmitpack = tp->t_sndrexmitpack;
288 ti->tcpi_rcv_ooopack = tp->t_rcvoopack;
289 ti->tcpi_snd_zerowin = tp->t_sndzerowin;
292 ti->tcpi_rttmin = tp->t_rttmin * t;
293 ti->tcpi_max_sndwnd = tp->max_sndwnd;
294 ti->tcpi_rcv_adv = tp->rcv_adv - tp->irs;
295 ti->tcpi_rcv_up = tp->rcv_up - tp->irs;
296 ti->tcpi_snd_una = tp->snd_una - tp->iss;
297 ti->tcpi_snd_up = tp->snd_up - tp->iss;
298 ti->tcpi_snd_wl1 = tp->snd_wl1 - tp->iss;
299 ti->tcpi_snd_wl2 = tp->snd_wl2 - tp->iss;
300 ti->tcpi_snd_max = tp->snd_max - tp->iss;
302 ti->tcpi_ts_recent = tp->ts_recent; /* XXX value from the wire */
303 ti->tcpi_ts_recent_age = (now - tp->ts_recent_age) * t;
304 ti->tcpi_rfbuf_cnt = tp->rfbuf_cnt;
305 ti->tcpi_rfbuf_ts = (now - tp->rfbuf_ts) * t;
329 struct tcpcb *tp;
344 tp = intotcpcb(inp);
355 tp->t_flags |= TF_NODELAY;
357 tp->t_flags &= ~TF_NODELAY;
364 tp->t_flags |= TF_NOPUSH;
365 else if (tp->t_flags & TF_NOPUSH) {
366 tp->t_flags &= ~TF_NOPUSH;
367 if (TCPS_HAVEESTABLISHED(tp->t_state))
368 error = tcp_output(tp);
379 if (i > 0 && i <= tp->t_maxseg)
380 tp->t_maxseg = i;
391 if (TCPS_HAVEESTABLISHED(tp->t_state)) {
396 if (tp->t_flags & TF_SIGNATURE) {
402 tp->sack_enable = 1;
404 tp->sack_enable = 0;
413 if (TCPS_HAVEESTABLISHED(tp->t_state)) {
419 tp->t_flags |= TF_SIGNATURE;
420 tp->sack_enable = 0;
422 tp->t_flags &= ~TF_SIGNATURE;
435 *mtod(m, int *) = tp->t_flags & TF_NODELAY;
439 *mtod(m, int *) = tp->t_flags & TF_NOPUSH;
443 *mtod(m, int *) = tp->t_maxseg;
447 *mtod(m, int *) = tp->sack_enable;
450 error = tcp_fill_info(tp, so, m);
455 *mtod(m, int *) = tp->t_flags & TF_SIGNATURE;
476 struct tcpcb *tp;
501 tp = tcp_newtcpcb(inp, wait);
502 if (tp == NULL) {
510 tp->t_state = TCPS_CLOSED;
513 tp->pf = PF_INET6;
516 tp->pf = PF_INET;
521 tcp_trace(TA_USER, TCPS_CLOSED, tp, tp, NULL, PRU_ATTACH, 0);
529 struct tcpcb *otp = NULL, *tp;
535 if ((error = tcp_sogetpcb(so, &inp, &tp)))
539 otp = tp;
540 ostate = tp->t_state;
550 tp = tcp_dodisconnect(tp);
553 tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_DETACH, 0);
564 struct tcpcb *tp;
570 if ((error = tcp_sogetpcb(so, &inp, &tp)))
574 ostate = tp->t_state;
579 tcp_trace(TA_USER, ostate, tp, tp, NULL, PRU_BIND, 0);
590 struct tcpcb *tp, *otp = NULL;
596 if ((error = tcp_sogetpcb(so, &inp, &tp)))
600 otp = tp;
601 ostate = tp->t_state;
609 * If the in_pcbbind() above is called, the tp->pf
612 tp->t_state = TCPS_LISTEN;
616 tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_LISTEN, 0);
631 struct tcpcb *tp, *otp = NULL;
637 if ((error = tcp_sogetpcb(so, &inp, &tp)))
641 otp = tp;
642 ostate = tp->t_state;
675 tp->t_template = tcp_template(tp);
676 if (tp->t_template == 0) {
686 tcp_rscale(tp, sb_max);
690 tp->t_state = TCPS_SYN_SENT;
691 TCP_TIMER_ARM(tp, TCPT_KEEP, atomic_load_int(&tcp_keepinit));
692 tcp_set_iss_tsm(tp);
693 tcp_sendseqinit(tp);
694 tp->snd_last = tp->snd_una;
695 error = tcp_output(tp);
699 tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_CONNECT, 0);
711 struct tcpcb *tp;
716 if ((error = tcp_sogetpcb(so, &inp, &tp)))
722 tcp_trace(TA_USER, tp->t_state, tp, tp, NULL, PRU_ACCEPT, 0);
741 struct tcpcb *tp, *otp = NULL;
747 if ((error = tcp_sogetpcb(so, &inp, &tp)))
751 otp = tp;
752 ostate = tp->t_state;
755 tp = tcp_dodisconnect(tp);
758 tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_DISCONNECT, 0);
769 struct tcpcb *tp, *otp = NULL;
775 if ((error = tcp_sogetpcb(so, &inp, &tp)))
779 otp = tp;
780 ostate = tp->t_state;
787 tp = tcp_usrclosed(tp);
788 if (tp)
789 error = tcp_output(tp);
793 tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_SHUTDOWN, 0);
804 struct tcpcb *tp;
809 if (tcp_sogetpcb(so, &inp, &tp))
813 ostate = tp->t_state;
823 (void) tcp_output(tp);
826 tcp_trace(TA_USER, ostate, tp, tp, NULL, PRU_RCVD, 0);
838 struct tcpcb *tp;
849 if ((error = tcp_sogetpcb(so, &inp, &tp)))
853 ostate = tp->t_state;
860 error = tcp_output(tp);
863 tcp_trace(TA_USER, ostate, tp, tp, NULL, PRU_SEND, 0);
879 struct tcpcb *tp, *otp = NULL;
884 if (tcp_sogetpcb(so, &inp, &tp))
888 otp = tp;
889 ostate = tp->t_state;
892 tp = tcp_drop(tp, ECONNABORTED);
895 tcp_trace(TA_USER, ostate, tp, otp, NULL, PRU_ABORT, 0);
902 struct tcpcb *tp;
907 if ((error = tcp_sogetpcb(so, &inp, &tp)))
915 tcp_trace(TA_USER, tp->t_state, tp, tp, NULL, PRU_SENSE, 0);
923 struct tcpcb *tp;
928 if ((error = tcp_sogetpcb(so, &inp, &tp)))
934 tp->t_oobflags & TCPOOB_HADDATA) {
938 if ((tp->t_oobflags & TCPOOB_HAVEDATA) == 0) {
943 *mtod(m, caddr_t) = tp->t_iobc;
945 tp->t_oobflags ^= (TCPOOB_HAVEDATA | TCPOOB_HADDATA);
948 tcp_trace(TA_USER, tp->t_state, tp, tp, NULL, PRU_RCVOOB, 0);
957 struct tcpcb *tp;
968 if ((error = tcp_sogetpcb(so, &inp, &tp)))
972 ostate = tp->t_state;
991 tp->snd_up = tp->snd_una + so->so_snd.sb_cc;
992 tp->t_force = 1;
993 error = tcp_output(tp);
994 tp->t_force = 0;
998 tcp_trace(TA_USER, ostate, tp, tp, NULL, PRU_SENDOOB, 0);
1011 struct tcpcb *tp;
1016 if ((error = tcp_sogetpcb(so, &inp, &tp)))
1022 tcp_trace(TA_USER, tp->t_state, tp, tp, NULL,
1031 struct tcpcb *tp;
1036 if ((error = tcp_sogetpcb(so, &inp, &tp)))
1042 tcp_trace(TA_USER, tp->t_state, tp, tp, NULL, PRU_PEERADDR, 0);
1055 tcp_dodisconnect(struct tcpcb *tp)
1057 struct socket *so = tp->t_inpcb->inp_socket;
1059 if (TCPS_HAVEESTABLISHED(tp->t_state) == 0)
1060 tp = tcp_close(tp);
1062 tp = tcp_drop(tp, 0);
1068 tp = tcp_usrclosed(tp);
1069 if (tp)
1070 (void) tcp_output(tp);
1072 return (tp);
1086 tcp_usrclosed(struct tcpcb *tp)
1089 switch (tp->t_state) {
1094 tp->t_state = TCPS_CLOSED;
1095 tp = tcp_close(tp);
1100 tp->t_state = TCPS_FIN_WAIT_1;
1104 tp->t_state = TCPS_LAST_ACK;
1107 if (tp && tp->t_state >= TCPS_FIN_WAIT_2) {
1108 soisdisconnected(tp->t_inpcb->inp_socket);
1116 if (tp->t_state == TCPS_FIN_WAIT_2) {
1121 TCP_TIMER_ARM(tp, TCPT_2MSL, maxidle);
1124 return (tp);
1215 struct tcpcb *tp = NULL;
1220 tp = intotcpcb(inp);
1222 if (tp != NULL && !ISSET(so->so_options, SO_ACCEPTCONN))
1223 tp = tcp_drop(tp, ECONNABORTED);
1542 tcp_update_sndspace(struct tcpcb *tp)
1544 struct socket *so = tp->t_inpcb->inp_socket;
1560 nmax = MIN(sb_max, so->so_snd.sb_wat + tp->snd_max -
1561 tp->snd_una);
1574 nmax = roundup(nmax, tp->t_maxseg);
1589 tcp_update_rcvspace(struct tcpcb *tp)
1591 struct socket *so = tp->t_inpcb->inp_socket;
1607 if (tp->rfbuf_cnt > so->so_rcv.sb_hiwat / 8 * 7)
1621 nmax = roundup(nmax, tp->t_maxseg);