Lines Matching refs:sock_id
312 static void tcp_rcv_drain(int sock_id, tcp_t *);
325 uint32_t, int, tcph_t *, int sock_id);
468 tcp_drain_input(tcp_t *tcp, int sock_id, int timeout) in tcp_drain_input() argument
476 dprintf("tcp_drain_input(%d): %s\n", sock_id, in tcp_drain_input()
484 old_timeout = sockets[sock_id].in_timeout; in tcp_drain_input()
485 sockets[sock_id].in_timeout = timeout; in tcp_drain_input()
491 old_in_gram = sockets[sock_id].inq; in tcp_drain_input()
492 sockets[sock_id].inq = NULL; in tcp_drain_input()
496 if (sockets[sock_id].input[i] != NULL) { in tcp_drain_input()
497 if (sockets[sock_id].input[i](sock_id) < 0) { in tcp_drain_input()
498 sockets[sock_id].in_timeout = old_timeout; in tcp_drain_input()
499 if (sockets[sock_id].inq != NULL) in tcp_drain_input()
500 nuke_grams(&sockets[sock_id].inq); in tcp_drain_input()
501 sockets[sock_id].inq = old_in_gram; in tcp_drain_input()
509 while ((in_gram = sockets[sock_id].inq) != NULL) { in tcp_drain_input()
516 del_gram(&sockets[sock_id].inq, in_gram, B_TRUE); in tcp_drain_input()
520 del_gram(&sockets[sock_id].inq, in_gram, B_FALSE); in tcp_drain_input()
522 tcp_rput_data(tcp, mp, sock_id); in tcp_drain_input()
523 sockets[sock_id].in_timeout = old_timeout; in tcp_drain_input()
531 if (sockets[sock_id].pcb == NULL) in tcp_drain_input()
535 if (tcp == NULL || sockets[sock_id].pcb == NULL) { in tcp_drain_input()
536 if (sockets[sock_id].so_error != 0) in tcp_drain_input()
544 sockets[sock_id].in_timeout = old_timeout; in tcp_drain_input()
545 sockets[sock_id].inq = old_in_gram; in tcp_drain_input()
550 tcp_drain_needed(sock_id, tcp); in tcp_drain_input()
561 tcp_input(int sock_id) in tcp_input() argument
569 if ((tcp = sockets[sock_id].pcb) == NULL) in tcp_input()
572 while ((in_gram = sockets[sock_id].inq) != NULL) { in tcp_input()
579 del_gram(&sockets[sock_id].inq, in_gram, B_TRUE); in tcp_input()
583 del_gram(&sockets[sock_id].inq, in_gram, B_FALSE); in tcp_input()
585 tcp_rput_data(tcp, mp, sock_id); in tcp_input()
587 if (sockets[sock_id].pcb == NULL) in tcp_input()
593 tcp_rcv_drain(sock_id, tcp); in tcp_input()
597 sockets[sock_id].so_state |= SS_CANTRCVMORE; in tcp_input()
610 tcp_send(int sock_id, tcp_t *tcp, const void *msg, int len) in tcp_send() argument
677 if (tcp_drain_input(tcp, sock_id, 5) < 0) in tcp_send()
680 tcp_wput_data(tcp, head, sock_id); in tcp_send()
796 tcp_eager_cleanup(tcp_t *listener, boolean_t q0_only, int sock_id) in tcp_eager_cleanup() argument
806 sock_id); in tcp_eager_cleanup()
814 eager, NULL, eager->tcp_snxt, 0, TH_RST, 0, sock_id); in tcp_eager_cleanup()
823 tcp_shutdown(int sock_id) in tcp_shutdown() argument
827 DEBUG_1("tcp_shutdown: sock_id %x\n", sock_id); in tcp_shutdown()
829 if ((tcp = sockets[sock_id].pcb) == NULL) { in tcp_shutdown()
838 if (tcp_drain_input(tcp, sock_id, 5) < 0) { in tcp_shutdown()
843 if (sockets[sock_id].pcb != NULL) in tcp_shutdown()
844 tcp_clean_death(sock_id, tcp, 0); in tcp_shutdown()
862 if (tcp_xmit_end(tcp, sock_id) == 0 && in tcp_shutdown()
863 tcp_state_wait(sock_id, tcp, TCPS_FIN_WAIT_2) < 0) { in tcp_shutdown()
865 if (sockets[sock_id].pcb == NULL) in tcp_shutdown()
880 tcp_close(int sock_id) in tcp_close() argument
886 if ((tcp = sockets[sock_id].pcb) == NULL) { in tcp_close()
897 if (tcp_drain_input(tcp, sock_id, 5) < 0) { in tcp_close()
902 if (sockets[sock_id].pcb != NULL) in tcp_close()
903 tcp_clean_death(sock_id, tcp, 0); in tcp_close()
909 tcp_eager_cleanup(tcp, 0, sock_id); in tcp_close()
958 (void) tcp_xmit_end(tcp, sock_id); in tcp_close()
959 if (sockets[sock_id].pcb == NULL) in tcp_close()
978 if (tcp_drain_input(tcp, sock_id, 5) < 0) { in tcp_close()
979 if (sockets[sock_id].pcb != NULL) { in tcp_close()
980 tcp_clean_death(sock_id, in tcp_close()
988 if (tcp_state_wait(sock_id, tcp, TCPS_TIME_WAIT) < 0) { in tcp_close()
990 if (sockets[sock_id].pcb == NULL) in tcp_close()
1008 sock_id); in tcp_close()
1013 sockets[sock_id].pcb = NULL; in tcp_close()
1019 tcp_listen(int sock_id, int backlog) in tcp_listen() argument
1023 if ((tcp = (tcp_t *)(sockets[sock_id].pcb)) == NULL) { in tcp_listen()
1050 tcp_accept(int sock_id, struct sockaddr *addr, socklen_t *addr_len) in tcp_accept() argument
1059 if ((listener = (tcp_t *)(sockets[sock_id].pcb)) == NULL || in tcp_accept()
1067 if (sockets[sock_id].in_timeout > tcp_accept_timeout) in tcp_accept()
1068 timeout = prom_gettime() + sockets[sock_id].in_timeout; in tcp_accept()
1076 if (tcp_drain_input(listener, sock_id, 5) < 0) { in tcp_accept()
1179 tcp_bind(int sock_id) in tcp_bind() argument
1186 if ((tcp = (tcp_t *)sockets[sock_id].pcb) == NULL) { in tcp_bind()
1197 requested_port = ntohs(sockets[sock_id].bind.sin_port); in tcp_bind()
1200 tcp->tcp_bound_source = sockets[sock_id].bind.sin_addr.s_addr; in tcp_bind()
1213 reuseaddr = sockets[sock_id].so_opt & SO_REUSEADDR; in tcp_bind()
1223 sockets[sock_id].bind.sin_port = tcp->tcp_lport; in tcp_bind()
1260 tcp_connect(int sock_id) in tcp_connect() argument
1269 if ((tcp = (tcp_t *)(sockets[sock_id].pcb)) == NULL) { in tcp_connect()
1276 dstaddr = sockets[sock_id].remote.sin_addr.s_addr; in tcp_connect()
1277 dstport = sockets[sock_id].remote.sin_port; in tcp_connect()
1308 ipv4_getipaddr(&(sockets[sock_id].bind.sin_addr)); in tcp_connect()
1310 if (ntohl(sockets[sock_id].bind.sin_addr.s_addr) == in tcp_connect()
1315 tcp->tcp_bound_source = sockets[sock_id].bind.sin_addr.s_addr; in tcp_connect()
1409 ret = ipv4_tcp_output(sock_id, syn_mp); in tcp_connect()
1421 return (tcp_state_wait(sock_id, tcp, TCPS_ESTABLISHED)); in tcp_connect()
1603 tcp_conn_request(tcp_t *tcp, mblk_t *mp, uint_t sock_id, uint_t ip_hdr_len) in tcp_conn_request() argument
1700 tcp_state_wait(int sock_id, tcp_t *tcp, int state) in tcp_state_wait() argument
1714 timeout = sockets[sock_id].in_timeout; in tcp_state_wait()
1716 sockets[sock_id].in_timeout = tcp->tcp_rto; in tcp_state_wait()
1720 if (sockets[sock_id].inq == NULL) { in tcp_state_wait()
1723 if (sockets[sock_id].input[i] != NULL) { in tcp_state_wait()
1724 if (sockets[sock_id].input[i](sock_id) < 0) { in tcp_state_wait()
1726 sockets[sock_id].in_timeout = in tcp_state_wait()
1735 while ((in_gram = sockets[sock_id].inq) != NULL) { in tcp_state_wait()
1746 del_gram(&sockets[sock_id].inq, in_gram, B_TRUE); in tcp_state_wait()
1750 del_gram(&sockets[sock_id].inq, in_gram, B_FALSE); in tcp_state_wait()
1752 tcp_rput_data(tcp, mp, sock_id); in tcp_state_wait()
1760 if (sockets[sock_id].pcb == NULL) { in tcp_state_wait()
1766 if (tcp == NULL || sockets[sock_id].pcb == NULL) { in tcp_state_wait()
1769 "error %d\n", state, sockets[sock_id].so_error); in tcp_state_wait()
1771 if (sockets[sock_id].so_error != 0) in tcp_state_wait()
1786 tcp_timer(tcp, sock_id); in tcp_state_wait()
1791 sockets[sock_id].in_timeout = timeout; in tcp_state_wait()
1793 tcp_drain_needed(sock_id, tcp); in tcp_state_wait()
1829 tcp_lookup_ipv4(struct ip *iph, tcpha_t *tcph, int min_state, int *sock_id) in tcp_lookup_ipv4() argument
1842 *sock_id = i; in tcp_lookup_ipv4()
1855 *sock_id = -1; in tcp_lookup_ipv4()
1864 tcp_lookup_listener_ipv4(in_addr_t addr, in_port_t port, int *sock_id) in tcp_lookup_listener_ipv4() argument
1875 *sock_id = i; in tcp_lookup_listener_ipv4()
1920 tcp_clean_death(int sock_id, tcp_t *tcp, int err) in tcp_clean_death() argument
1926 if (sock_id >= 0) { in tcp_clean_death()
1927 sockets[sock_id].pcb = NULL; in tcp_clean_death()
1929 sockets[sock_id].so_error = err; in tcp_clean_death()
2491 tcp_sack_rxmit(tcp_t *tcp, int sock_id) in tcp_sack_rxmit() argument
2585 (void) ipv4_tcp_output(sock_id, xmit_mp); in tcp_sack_rxmit()
2612 tcp_rput_data(tcp_t *tcp, mblk_t *mp, int sock_id) in tcp_rput_data() argument
2637 sock_id, mp, mp->b_datap); in tcp_rput_data()
2699 &sock_id)) != NULL || in tcp_rput_data()
2701 tcph->tha_fport, &sock_id)) != NULL) { in tcp_rput_data()
2734 tcp_xmit_listeners_reset(sock_id, mp, ip_hdr_len); in tcp_rput_data()
2743 seg_len, (tcph_t *)tcph, sock_id); in tcp_rput_data()
2763 "pointer\n", sock_id); in tcp_rput_data()
2777 sock_id, mp, seg_ack, 0, TH_RST, in tcp_rput_data()
2789 tcp = tcp_conn_request(tcp, mp, sock_id, ip_hdr_len); in tcp_rput_data()
2820 ip_hdr_len, sock_id); in tcp_rput_data()
2828 tcp_clean_death(sock_id, tcp, ECONNREFUSED); in tcp_rput_data()
2928 (void) ipv4_tcp_output(sock_id, mp1); in tcp_rput_data()
2935 if (tcp_state_wait(sock_id, tcp, TCPS_ALL_ACKED) < 0) { in tcp_rput_data()
3123 tcp_rcv_drain(sock_id, tcp); in tcp_rput_data()
3261 (void) tcp_clean_death(sock_id, tcp, ECONNREFUSED); in tcp_rput_data()
3267 (void) tcp_clean_death(sock_id, tcp, ECONNRESET); in tcp_rput_data()
3271 (void) tcp_clean_death(sock_id, tcp, 0); in tcp_rput_data()
3275 (void) tcp_clean_death(sock_id, tcp, ENXIO); in tcp_rput_data()
3300 seg_seq + 1, TH_RST|TH_ACK, 0, sock_id); in tcp_rput_data()
3302 (void) tcp_clean_death(sock_id, tcp, ECONNRESET); in tcp_rput_data()
3329 tcp, NULL, seg_ack, 0, TH_RST, 0, sock_id); in tcp_rput_data()
3692 (void) ipv4_tcp_output(sock_id, mp); in tcp_rput_data()
3938 tcp->tcp_rnxt, TH_RST|TH_ACK, 0, sock_id); in tcp_rput_data()
4018 (void) tcp_clean_death(sock_id, tcp, 0); in tcp_rput_data()
4092 if (++tcp->tcp_rack_cnt == 2 || sockets[sock_id].inq == NULL) { in tcp_rput_data()
4150 (void) ipv4_tcp_output(sock_id, mp1); in tcp_rput_data()
4155 if (tcp_sack_rxmit(tcp, sock_id) != 0) { in tcp_rput_data()
4166 tcp_wput_data(tcp, NULL, sock_id); in tcp_rput_data()
4168 tcp_ss_rexmit(tcp, sock_id); in tcp_rput_data()
4175 if (sockets[sock_id].pcb == NULL) in tcp_rput_data()
4197 (void) ipv4_tcp_output(sock_id, mp1); in tcp_rput_data()
4212 tcp_ss_rexmit(tcp_t *tcp, int sock_id) in tcp_ss_rexmit() argument
4255 (void) ipv4_tcp_output(sock_id, xmit_mp); in tcp_ss_rexmit()
4286 tcp_wput_data(tcp, NULL, sock_id); in tcp_ss_rexmit()
4296 tcp_timer(tcp_t *tcp, int sock_id) in tcp_timer() argument
4350 DEBUG_1("tcp_timer (%d): zero win", sock_id); in tcp_timer()
4437 tcp_wput_data(tcp, NULL, sock_id); in tcp_timer()
4455 (void) tcp_clean_death(sock_id, tcp, 0); in tcp_timer()
4458 DEBUG_3("tcp_timer (%d): strange state (%d) %s", sock_id, in tcp_timer()
4482 tcp->tcp_rnxt, TH_RST | TH_ACK, 0, sock_id); in tcp_timer()
4484 (void) tcp_clean_death(sock_id, tcp, in tcp_timer()
4574 (void) ipv4_tcp_output(sock_id, mp); in tcp_timer()
4609 tcp_wput_data(tcp_t *tcp, mblk_t *mp, int sock_id) in tcp_wput_data() argument
4628 printf("tcp_wput_data(%d) ##############################\n", sock_id); in tcp_wput_data()
4906 (void) ipv4_tcp_output(sock_id, mp); in tcp_wput_data()
5133 (void) ipv4_tcp_output(sock_id, mp); in tcp_wput_data()
5185 (void) tcp_state_wait(sock_id, tcp, TCPS_ALL_ACKED); in tcp_wput_data()
5204 int sock_id) in tcp_time_wait_processing() argument
5218 if ((sockets[sock_id].pcb == NULL) || (sockets[sock_id].pcb != tcp)) in tcp_time_wait_processing()
5219 sock_id = -1; in tcp_time_wait_processing()
5304 tcp_clean_death(sock_id, tcp, 0); in tcp_time_wait_processing()
5355 (void) tcp_clean_death(sock_id, tcp, 0); in tcp_time_wait_processing()
5516 uint32_t ack, int ctl, uint_t ip_hdr_len, int sock_id) in tcp_xmit_ctl() argument
5544 "ctl 0x%x\n", sock_id, str, seq, ack, ctl); in tcp_xmit_ctl()
5548 dprintf("tcp_xmit_ctl(%d): Cannot allocate memory\n", sock_id); in tcp_xmit_ctl()
5595 (void) ipv4_tcp_output(sock_id, mp); in tcp_xmit_ctl()
6072 tcp_xmit_listeners_reset(int sock_id, mblk_t *mp, uint_t ip_hdr_len) in tcp_xmit_listeners_reset() argument
6093 sock_id, mp, seg_ack, 0, TH_RST, ip_hdr_len); in tcp_xmit_listeners_reset()
6097 tcp_xmit_early_reset("no tcp, reset/ack", sock_id, in tcp_xmit_listeners_reset()
6121 tcp_xmit_early_reset(char *str, int sock_id, mblk_t *mp, uint32_t seq, in tcp_xmit_early_reset() argument
6206 (void) ipv4_tcp_output(sock_id, mp); in tcp_xmit_early_reset()
6739 tcp_rcv_drain(int sock_id, tcp_t *tcp) in tcp_rcv_drain() argument
6747 if (sockets[sock_id].so_rcvbuf <= 0) in tcp_rcv_drain()
6776 add_grams(&sockets[sock_id].inq, in_gram); in tcp_rcv_drain()
6779 sockets[sock_id].so_rcvbuf -= in_mp->b_wptr - in_mp->b_rptr; in tcp_rcv_drain()
6786 if (sockets[sock_id].so_rcvbuf > 0 && in tcp_rcv_drain()
6798 tcp_rcv_drain_sock(int sock_id) in tcp_rcv_drain_sock() argument
6801 if ((tcp = sockets[sock_id].pcb) == NULL) in tcp_rcv_drain_sock()
6803 tcp_rcv_drain(sock_id, tcp); in tcp_rcv_drain_sock()
6812 tcp_drain_needed(int sock_id, tcp_t *tcp) in tcp_drain_needed() argument
6817 sockets[sock_id].inq, tcp->tcp_rcv_list); in tcp_drain_needed()
6819 if ((sockets[sock_id].inq != NULL) || in tcp_drain_needed()
6831 add_grams(&sockets[sock_id].inq, in_gram); in tcp_drain_needed()
6967 tcp_xmit_end(tcp_t *tcp, int sock_id) in tcp_xmit_end() argument
6993 (void) ipv4_tcp_output(sock_id, mp); in tcp_xmit_end()