Lines Matching refs:connp
428 conn_t *connp = tcp->tcp_connp; in tcp_set_recv_threshold() local
440 (*connp->conn_upcalls->su_set_proto_props) in tcp_set_recv_threshold()
441 (connp->conn_upper_handle, &sopp); in tcp_set_recv_threshold()
471 conn_t *connp = tcp->tcp_connp; in tcp_ipsec_cleanup() local
473 ASSERT(connp->conn_flags & IPCL_TCPCONN); in tcp_ipsec_cleanup()
475 if (connp->conn_latch != NULL) { in tcp_ipsec_cleanup()
476 IPLATCH_REFRELE(connp->conn_latch); in tcp_ipsec_cleanup()
477 connp->conn_latch = NULL; in tcp_ipsec_cleanup()
479 if (connp->conn_latch_in_policy != NULL) { in tcp_ipsec_cleanup()
480 IPPOL_REFRELE(connp->conn_latch_in_policy); in tcp_ipsec_cleanup()
481 connp->conn_latch_in_policy = NULL; in tcp_ipsec_cleanup()
483 if (connp->conn_latch_in_action != NULL) { in tcp_ipsec_cleanup()
484 IPACT_REFRELE(connp->conn_latch_in_action); in tcp_ipsec_cleanup()
485 connp->conn_latch_in_action = NULL; in tcp_ipsec_cleanup()
487 if (connp->conn_policy != NULL) { in tcp_ipsec_cleanup()
488 IPPH_REFRELE(connp->conn_policy, connp->conn_netstack); in tcp_ipsec_cleanup()
489 connp->conn_policy = NULL; in tcp_ipsec_cleanup()
502 conn_t *connp = tcp->tcp_connp; in tcp_cleanup() local
511 ixa_cleanup(connp->conn_ixa); in tcp_cleanup()
513 if (connp->conn_ht_iphc != NULL) { in tcp_cleanup()
514 kmem_free(connp->conn_ht_iphc, connp->conn_ht_iphc_allocated); in tcp_cleanup()
515 connp->conn_ht_iphc = NULL; in tcp_cleanup()
516 connp->conn_ht_iphc_allocated = 0; in tcp_cleanup()
517 connp->conn_ht_iphc_len = 0; in tcp_cleanup()
518 connp->conn_ht_ulp = NULL; in tcp_cleanup()
519 connp->conn_ht_ulp_len = 0; in tcp_cleanup()
526 ip_pkt_free(&connp->conn_xmit_ipp); in tcp_cleanup()
539 ipcl_globalhash_remove(connp); in tcp_cleanup()
546 if (connp->conn_cred != NULL) { in tcp_cleanup()
547 crfree(connp->conn_cred); in tcp_cleanup()
548 connp->conn_cred = NULL; in tcp_cleanup()
550 ipcl_conn_cleanup(connp); in tcp_cleanup()
551 connp->conn_flags = IPCL_TCPCONN; in tcp_cleanup()
558 connp->conn_netstack = NULL; in tcp_cleanup()
559 connp->conn_ixa->ixa_ipst = NULL; in tcp_cleanup()
571 tcp->tcp_connp = connp; in tcp_cleanup()
573 ASSERT(connp->conn_tcp == tcp); in tcp_cleanup()
574 ASSERT(connp->conn_flags & IPCL_TCPCONN); in tcp_cleanup()
575 connp->conn_state_flags = CONN_INCIPIENT; in tcp_cleanup()
576 ASSERT(connp->conn_proto == IPPROTO_TCP); in tcp_cleanup()
577 ASSERT(connp->conn_ref == 1); in tcp_cleanup()
614 conn_t *connp = tcp->tcp_connp; in tcp_set_destination() local
628 connp->conn_ixa->ixa_flags |= IXAF_PMTU_DISCOVERY; in tcp_set_destination()
631 mutex_enter(&connp->conn_lock); in tcp_set_destination()
632 error = conn_connect(connp, &uinfo, flags); in tcp_set_destination()
633 mutex_exit(&connp->conn_lock); in tcp_set_destination()
653 connp->conn_sndbuf = MIN(uinfo.iulp_spipe, in tcp_set_destination()
656 connp->conn_sndlowat = connp->conn_sndbuf / in tcp_set_destination()
738 if (connp->conn_ipversion == IPV4_VERSION) in tcp_set_destination()
744 tcp->tcp_ipsec_overhead = conn_ipsec_length(connp); in tcp_set_destination()
759 tcp_update_lso(tcp, connp->conn_ixa); in tcp_set_destination()
776 mutex_enter(&connp->conn_lock); in tcp_set_destination()
777 connp->conn_state_flags &= ~CONN_INCIPIENT; in tcp_set_destination()
778 mutex_exit(&connp->conn_lock); in tcp_set_destination()
815 conn_t *connp = tcp->tcp_connp; in tcp_clean_death() local
827 ASSERT((connp->conn_family == AF_INET && in tcp_clean_death()
828 connp->conn_ipversion == IPV4_VERSION) || in tcp_clean_death()
829 (connp->conn_family == AF_INET6 && in tcp_clean_death()
830 (connp->conn_ipversion == IPV4_VERSION || in tcp_clean_death()
831 connp->conn_ipversion == IPV6_VERSION))); in tcp_clean_death()
849 CONN_DEC_REF(connp); in tcp_clean_death()
853 ip_xmit_attr_t *, connp->conn_ixa, in tcp_clean_death()
882 q = connp->conn_rq; in tcp_clean_death()
885 if (!IPCL_IS_NONSTR(connp)) { in tcp_clean_death()
905 if (connp->conn_debug) { in tcp_clean_death()
909 if (IPCL_IS_NONSTR(connp)) { in tcp_clean_death()
911 (*connp->conn_upcalls->su_disconnected)( in tcp_clean_death()
912 connp->conn_upper_handle, tcp->tcp_connid, err); in tcp_clean_death()
918 if (connp->conn_debug) { in tcp_clean_death()
941 if (tcp->tcp_listener != NULL && IPCL_IS_NONSTR(connp)) { in tcp_clean_death()
945 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL, in tcp_clean_death()
951 if (IPCL_IS_NONSTR(connp)) in tcp_clean_death()
952 (void) tcp_do_unbind(connp); in tcp_clean_death()
966 conn_t *connp = tcp->tcp_connp; in tcp_stop_lingering() local
989 connp->conn_rq = NULL; in tcp_stop_lingering()
990 connp->conn_wq = NULL; in tcp_stop_lingering()
1009 CONN_DEC_REF(connp); in tcp_stop_lingering()
1013 connp->conn_rq = NULL; in tcp_stop_lingering()
1014 connp->conn_wq = NULL; in tcp_stop_lingering()
1023 if (IPCL_IS_NONSTR(connp)) { in tcp_stop_lingering()
1024 sock_upcalls_t *upcalls = connp->conn_upcalls; in tcp_stop_lingering()
1025 sock_upper_handle_t handle = connp->conn_upper_handle; in tcp_stop_lingering()
1036 mutex_enter(&connp->conn_lock); in tcp_stop_lingering()
1037 connp->conn_upper_handle = NULL; in tcp_stop_lingering()
1038 connp->conn_upcalls = NULL; in tcp_stop_lingering()
1039 mutex_exit(&connp->conn_lock); in tcp_stop_lingering()
1045 tcp_close_common(conn_t *connp, int flags) in tcp_close_common() argument
1047 tcp_t *tcp = connp->conn_tcp; in tcp_close_common()
1052 ASSERT(connp->conn_ref >= 2); in tcp_close_common()
1059 mutex_enter(&connp->conn_lock); in tcp_close_common()
1060 connp->conn_state_flags |= CONN_CLOSING; in tcp_close_common()
1061 if (connp->conn_oper_pending_ill != NULL) in tcp_close_common()
1063 CONN_INC_REF_LOCKED(connp); in tcp_close_common()
1064 mutex_exit(&connp->conn_lock); in tcp_close_common()
1066 ASSERT(connp->conn_ref >= 3); in tcp_close_common()
1078 "connp %p tcp %p\n", (void *)connp, (void *)tcp); in tcp_close_common()
1087 conn_ioctl_cleanup(connp); in tcp_close_common()
1097 mutex_enter(&connp->conn_lock); in tcp_close_common()
1098 while (connp->conn_ioctlref > 0) in tcp_close_common()
1099 cv_wait(&connp->conn_cv, &connp->conn_lock); in tcp_close_common()
1100 ASSERT(connp->conn_ioctlref == 0); in tcp_close_common()
1101 ASSERT(connp->conn_oper_pending_ill == NULL); in tcp_close_common()
1102 mutex_exit(&connp->conn_lock); in tcp_close_common()
1104 SQUEUE_ENTER_ONE(connp->conn_sqp, mp, tcp_close_output, connp, in tcp_close_common()
1113 if (IPCL_IS_NONSTR(connp) && connp->conn_linger == 0) in tcp_close_common()
1134 if (connp->conn_linger && connp->conn_lingertime > 0) { in tcp_close_common()
1137 CONN_INC_REF(connp); in tcp_close_common()
1139 SQUEUE_ENTER_ONE(connp->conn_sqp, bp, in tcp_close_common()
1140 tcp_linger_interrupted, connp, NULL, in tcp_close_common()
1162 if (tcp->tcp_wait_for_eagers && !IPCL_IS_NONSTR(connp)) { in tcp_close_common()
1163 mutex_enter(&connp->conn_lock); in tcp_close_common()
1164 while (connp->conn_ref != 1) { in tcp_close_common()
1165 cv_wait(&connp->conn_cv, &connp->conn_lock); in tcp_close_common()
1167 mutex_exit(&connp->conn_lock); in tcp_close_common()
1171 connp->conn_cpid = NOPID; in tcp_close_common()
1183 conn_t *connp = (conn_t *)arg; in tcp_linger_interrupted() local
1184 tcp_t *tcp = connp->conn_tcp; in tcp_linger_interrupted()
1243 conn_t *connp = tcp->tcp_connp; in tcp_closei_local() local
1289 connp->conn_rq = NULL; in tcp_closei_local()
1290 connp->conn_wq = NULL; in tcp_closei_local()
1328 CL_INET_DISCONNECT(connp); in tcp_closei_local()
1329 ipcl_hash_remove(connp); in tcp_closei_local()
1334 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL, in tcp_closei_local()
1336 ixa_cleanup(connp->conn_ixa); in tcp_closei_local()
1341 mutex_enter(&connp->conn_lock); in tcp_closei_local()
1342 connp->conn_state_flags |= CONN_CONDEMNED; in tcp_closei_local()
1343 mutex_exit(&connp->conn_lock); in tcp_closei_local()
1360 conn_t *connp = tcp->tcp_connp; in tcp_free() local
1365 connp->conn_rq = NULL; in tcp_free()
1366 connp->conn_wq = NULL; in tcp_free()
1447 if (connp->conn_upper_handle != NULL) { in tcp_free()
1448 sock_upcalls_t *upcalls = connp->conn_upcalls; in tcp_free()
1449 sock_upper_handle_t handle = connp->conn_upper_handle; in tcp_free()
1457 mutex_enter(&connp->conn_lock); in tcp_free()
1458 connp->conn_upper_handle = NULL; in tcp_free()
1459 connp->conn_upcalls = NULL; in tcp_free()
1460 mutex_exit(&connp->conn_lock); in tcp_free()
1461 if (IPCL_IS_NONSTR(connp)) { in tcp_free()
1504 conn_t *connp = NULL; in tcp_get_conn() local
1521 connp = tcp->tcp_connp; in tcp_get_conn()
1522 connp->conn_flags |= IPCL_REUSED; in tcp_get_conn()
1525 ASSERT(connp->conn_netstack == NULL); in tcp_get_conn()
1529 connp->conn_netstack = ns; in tcp_get_conn()
1530 connp->conn_ixa->ixa_ipst = ns->netstack_ip; in tcp_get_conn()
1532 ipcl_globalhash_insert(connp); in tcp_get_conn()
1534 connp->conn_ixa->ixa_notify_cookie = tcp; in tcp_get_conn()
1535 ASSERT(connp->conn_ixa->ixa_notify == tcp_notify); in tcp_get_conn()
1536 connp->conn_recv = tcp_input_data; in tcp_get_conn()
1537 ASSERT(connp->conn_recvicmp == tcp_icmp_input); in tcp_get_conn()
1538 ASSERT(connp->conn_verifyicmp == tcp_verifyicmp); in tcp_get_conn()
1539 return (connp); in tcp_get_conn()
1550 if ((connp = ipcl_conn_create(IPCL_TCPCONN, KM_NOSLEEP, in tcp_get_conn()
1556 tcp = connp->conn_tcp; in tcp_get_conn()
1562 connp->conn_recv = tcp_input_data; in tcp_get_conn()
1563 connp->conn_recvicmp = tcp_icmp_input; in tcp_get_conn()
1564 connp->conn_verifyicmp = tcp_verifyicmp; in tcp_get_conn()
1571 connp->conn_ixa->ixa_notify = tcp_notify; in tcp_get_conn()
1572 connp->conn_ixa->ixa_notify_cookie = tcp; in tcp_get_conn()
1574 return (connp); in tcp_get_conn()
1588 conn_t *connp = tcp->tcp_connp; in tcp_connect_ipv4() local
1592 ASSERT(connp->conn_ipversion == IPV4_VERSION); in tcp_connect_ipv4()
1615 if (srcid != 0 && connp->conn_laddr_v4 == INADDR_ANY) { in tcp_connect_ipv4()
1616 if (!ip_srcid_find_id(srcid, &connp->conn_laddr_v6, in tcp_connect_ipv4()
1617 IPCL_ZONEID(connp), B_TRUE, tcps->tcps_netstack)) { in tcp_connect_ipv4()
1621 connp->conn_saddr_v6 = connp->conn_laddr_v6; in tcp_connect_ipv4()
1624 IN6_IPADDR_TO_V4MAPPED(dstaddr, &connp->conn_faddr_v6); in tcp_connect_ipv4()
1625 connp->conn_fport = dstport; in tcp_connect_ipv4()
1641 lport = tcp_bindi(tcp, lport, &connp->conn_laddr_v6, 0, B_TRUE, in tcp_connect_ipv4()
1658 if (connp->conn_faddr_v4 == connp->conn_laddr_v4 && in tcp_connect_ipv4()
1659 connp->conn_fport == connp->conn_lport) in tcp_connect_ipv4()
1664 return (ipcl_conn_insert_v4(connp)); in tcp_connect_ipv4()
1676 conn_t *connp = tcp->tcp_connp; in tcp_connect_ipv6() local
1680 ASSERT(connp->conn_family == AF_INET6); in tcp_connect_ipv6()
1688 if (connp->conn_ipversion != IPV6_VERSION) in tcp_connect_ipv6()
1700 if (srcid != 0 && IN6_IS_ADDR_UNSPECIFIED(&connp->conn_laddr_v6)) { in tcp_connect_ipv6()
1701 if (!ip_srcid_find_id(srcid, &connp->conn_laddr_v6, in tcp_connect_ipv6()
1702 IPCL_ZONEID(connp), B_FALSE, tcps->tcps_netstack)) { in tcp_connect_ipv6()
1706 connp->conn_saddr_v6 = connp->conn_laddr_v6; in tcp_connect_ipv6()
1713 connp->conn_ixa->ixa_flags |= IXAF_SCOPEID_SET; in tcp_connect_ipv6()
1714 connp->conn_ixa->ixa_scopeid = scope_id; in tcp_connect_ipv6()
1716 connp->conn_ixa->ixa_flags &= ~IXAF_SCOPEID_SET; in tcp_connect_ipv6()
1719 connp->conn_flowinfo = flowinfo; in tcp_connect_ipv6()
1720 connp->conn_faddr_v6 = *dstaddrp; in tcp_connect_ipv6()
1721 connp->conn_fport = dstport; in tcp_connect_ipv6()
1737 lport = tcp_bindi(tcp, lport, &connp->conn_laddr_v6, 0, B_TRUE, in tcp_connect_ipv6()
1754 if (IN6_ARE_ADDR_EQUAL(&connp->conn_faddr_v6, &connp->conn_laddr_v6) && in tcp_connect_ipv6()
1755 connp->conn_fport == connp->conn_lport) in tcp_connect_ipv6()
1760 return (ipcl_conn_insert_v6(connp)); in tcp_connect_ipv6()
1773 conn_t *connp = tcp->tcp_connp; in tcp_disconnect_common() local
1782 if (connp->conn_debug) { in tcp_disconnect_common()
1818 if (connp->conn_ipversion == IPV4_VERSION) { in tcp_disconnect_common()
1819 lconnp = ipcl_lookup_listener_v4(connp->conn_lport, in tcp_disconnect_common()
1820 connp->conn_laddr_v4, IPCL_ZONEID(connp), ipst); in tcp_disconnect_common()
1824 if (connp->conn_ixa->ixa_flags & IXAF_SCOPEID_SET) in tcp_disconnect_common()
1825 ifindex = connp->conn_ixa->ixa_scopeid; in tcp_disconnect_common()
1828 lconnp = ipcl_lookup_listener_v6(connp->conn_lport, in tcp_disconnect_common()
1829 &connp->conn_laddr_v6, ifindex, IPCL_ZONEID(connp), in tcp_disconnect_common()
1835 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, in tcp_disconnect_common()
1841 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, in tcp_disconnect_common()
1899 conn_t *connp = tcp->tcp_connp; in tcp_disconnect() local
1913 (void) putnextctl1(connp->conn_rq, M_FLUSH, FLUSHRW); in tcp_disconnect()
1917 putnext(connp->conn_rq, mp); in tcp_disconnect()
1930 conn_t *connp = tcp->tcp_connp; in tcp_reinit() local
1935 ASSERT((connp->conn_family == AF_INET && in tcp_reinit()
1936 connp->conn_ipversion == IPV4_VERSION) || in tcp_reinit()
1937 (connp->conn_family == AF_INET6 && in tcp_reinit()
1938 (connp->conn_ipversion == IPV4_VERSION || in tcp_reinit()
1939 connp->conn_ipversion == IPV6_VERSION))); in tcp_reinit()
1951 TCP_UNSENT_BYTES(tcp) <= connp->conn_sndlowat) { in tcp_reinit()
1992 CL_INET_DISCONNECT(connp); in tcp_reinit()
2006 ipcl_hash_remove(connp); in tcp_reinit()
2008 ixa_cleanup(connp->conn_ixa); in tcp_reinit()
2011 connp->conn_laddr_v6 = connp->conn_bound_addr_v6; in tcp_reinit()
2012 connp->conn_saddr_v6 = connp->conn_bound_addr_v6; in tcp_reinit()
2043 connp->conn_recv = tcp_input_listener_unbound; in tcp_reinit()
2045 connp->conn_proto = IPPROTO_TCP; in tcp_reinit()
2046 connp->conn_faddr_v6 = ipv6_all_zeros; in tcp_reinit()
2047 connp->conn_fport = 0; in tcp_reinit()
2049 (void) ipcl_bind_insert(connp); in tcp_reinit()
2060 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL, in tcp_reinit()
2064 tcp->tcp_rwnd = connp->conn_rcvbuf; in tcp_reinit()
2065 tcp->tcp_mss = connp->conn_ipversion != IPV4_VERSION ? in tcp_reinit()
2080 conn_t *connp = tcp->tcp_connp; in tcp_reinit_values() local
2096 PRESERVE(connp->conn_rq); in tcp_reinit_values()
2097 PRESERVE(connp->conn_wq); in tcp_reinit_values()
2110 if (connp->conn_ht_iphc != NULL) { in tcp_reinit_values()
2111 kmem_free(connp->conn_ht_iphc, connp->conn_ht_iphc_allocated); in tcp_reinit_values()
2112 connp->conn_ht_iphc = NULL; in tcp_reinit_values()
2113 connp->conn_ht_iphc_allocated = 0; in tcp_reinit_values()
2114 connp->conn_ht_iphc_len = 0; in tcp_reinit_values()
2115 connp->conn_ht_ulp = NULL; in tcp_reinit_values()
2116 connp->conn_ht_ulp_len = 0; in tcp_reinit_values()
2123 ip_pkt_free(&connp->conn_xmit_ipp); in tcp_reinit_values()
2253 DONTCARE(connp->conn_sum); /* Init in tcp_init_values */ in tcp_reinit_values()
2255 connp->conn_faddr_v6 = ipv6_all_zeros; /* Displayed in MIB */ in tcp_reinit_values()
2257 PRESERVE(connp->conn_bound_addr_v6); in tcp_reinit_values()
2261 connp->conn_fport = 0; /* Displayed in MIB */ in tcp_reinit_values()
2262 PRESERVE(connp->conn_lport); in tcp_reinit_values()
2270 PRESERVE(connp->conn_family); in tcp_reinit_values()
2272 if (connp->conn_family == AF_INET6) { in tcp_reinit_values()
2273 connp->conn_ipversion = IPV6_VERSION; in tcp_reinit_values()
2276 connp->conn_ipversion = IPV4_VERSION; in tcp_reinit_values()
2280 connp->conn_bound_if = 0; in tcp_reinit_values()
2281 connp->conn_recv_ancillary.crb_all = 0; in tcp_reinit_values()
2364 conn_t *connp = tcp->tcp_connp; in tcp_init_values() local
2366 ASSERT((connp->conn_family == AF_INET && in tcp_init_values()
2367 connp->conn_ipversion == IPV4_VERSION) || in tcp_init_values()
2368 (connp->conn_family == AF_INET6 && in tcp_init_values()
2369 (connp->conn_ipversion == IPV4_VERSION || in tcp_init_values()
2370 connp->conn_ipversion == IPV6_VERSION))); in tcp_init_values()
2468 connp->conn_mlp_type = mlptSingle; in tcp_init_values()
2475 tcp->tcp_rwnd = connp->conn_rcvbuf; in tcp_init_values()
2485 if (!connp->conn_debug) in tcp_init_values()
2486 connp->conn_debug = tcps->tcps_dbg; in tcp_init_values()
2501 conn_t *connp = tcp->tcp_connp; in tcp_update_pmtu() local
2502 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_update_pmtu()
2523 mss = pmtu - connp->conn_ht_iphc_len - conn_ipsec_length(connp); in tcp_update_pmtu()
2565 if ((connp->conn_ipversion == IPV4_VERSION) && in tcp_update_pmtu()
2575 conn_t *connp = tcp->tcp_connp; in tcp_maxpsz_set() local
2576 queue_t *q = connp->conn_rq; in tcp_maxpsz_set()
2593 maxpsz = MSS_ROUNDUP(connp->conn_sndbuf, mss); in tcp_maxpsz_set()
2603 if (maxpsz > connp->conn_sndbuf / 2) { in tcp_maxpsz_set()
2604 maxpsz = connp->conn_sndbuf / 2; in tcp_maxpsz_set()
2610 (void) proto_set_maxpsz(q, connp, maxpsz); in tcp_maxpsz_set()
2611 if (!(IPCL_IS_NONSTR(connp))) in tcp_maxpsz_set()
2612 connp->conn_wq->q_maxpsz = maxpsz; in tcp_maxpsz_set()
2614 (void) proto_set_tx_maxblk(q, connp, mss); in tcp_maxpsz_set()
2637 conn_t *connp; in tcp_create_common() local
2682 connp = tcp_get_conn(sqp, tcps); in tcp_create_common()
2688 if (connp == NULL) { in tcp_create_common()
2692 ASSERT(connp->conn_ixa->ixa_protocol == connp->conn_proto); in tcp_create_common()
2694 connp->conn_sqp = sqp; in tcp_create_common()
2695 connp->conn_initial_sqp = connp->conn_sqp; in tcp_create_common()
2696 connp->conn_ixa->ixa_sqp = connp->conn_sqp; in tcp_create_common()
2697 tcp = connp->conn_tcp; in tcp_create_common()
2707 connp->conn_ixa->ixa_flags |= IXAF_SET_ULP_CKSUM | IXAF_VERIFY_SOURCE | in tcp_create_common()
2711 connp->conn_ixa->ixa_flags |= IXAF_NO_DEV_FLOW_CTL; in tcp_create_common()
2714 connp->conn_ixa->ixa_src_preferences = IPV6_PREFER_SRC_DEFAULT; in tcp_create_common()
2715 connp->conn_ipversion = IPV6_VERSION; in tcp_create_common()
2716 connp->conn_family = AF_INET6; in tcp_create_common()
2718 connp->conn_default_ttl = tcps->tcps_ipv6_hoplimit; in tcp_create_common()
2720 connp->conn_ipversion = IPV4_VERSION; in tcp_create_common()
2721 connp->conn_family = AF_INET; in tcp_create_common()
2723 connp->conn_default_ttl = tcps->tcps_ipv4_ttl; in tcp_create_common()
2725 connp->conn_xmit_ipp.ipp_unicast_hops = connp->conn_default_ttl; in tcp_create_common()
2728 connp->conn_cred = credp; in tcp_create_common()
2729 connp->conn_cpid = curproc->p_pid; in tcp_create_common()
2730 connp->conn_open_time = ddi_get_lbolt64(); in tcp_create_common()
2733 ASSERT(!(connp->conn_ixa->ixa_free_flags & IXA_FREE_CRED)); in tcp_create_common()
2734 connp->conn_ixa->ixa_cred = credp; in tcp_create_common()
2735 connp->conn_ixa->ixa_cpid = connp->conn_cpid; in tcp_create_common()
2737 connp->conn_zoneid = zoneid; in tcp_create_common()
2739 connp->conn_ixa->ixa_zoneid = zoneid; in tcp_create_common()
2740 connp->conn_mlp_type = mlptSingle; in tcp_create_common()
2741 ASSERT(connp->conn_netstack == tcps->tcps_netstack); in tcp_create_common()
2749 connp->conn_mac_mode = CONN_MAC_AWARE; in tcp_create_common()
2751 connp->conn_zone_is_global = (crgetzoneid(credp) == GLOBAL_ZONEID); in tcp_create_common()
2757 connp->conn_rcvbuf = tcps->tcps_recv_hiwat; in tcp_create_common()
2758 connp->conn_sndbuf = tcps->tcps_xmit_hiwat; in tcp_create_common()
2760 connp->conn_sndlowat = connp->conn_sndbuf / in tcp_create_common()
2763 connp->conn_sndlowat = tcps->tcps_xmit_lowat; in tcp_create_common()
2765 connp->conn_so_type = SOCK_STREAM; in tcp_create_common()
2766 connp->conn_wroff = connp->conn_ht_iphc_allocated + in tcp_create_common()
2773 return (connp); in tcp_create_common()
2781 conn_t *connp = NULL; in tcp_open() local
2836 connp = tcp_create_common(credp, isv6, issocket, &err); in tcp_open()
2838 if (connp == NULL) { in tcp_open()
2844 connp->conn_rq = q; in tcp_open()
2845 connp->conn_wq = WR(q); in tcp_open()
2846 q->q_ptr = WR(q)->q_ptr = connp; in tcp_open()
2848 connp->conn_dev = conn_dev; in tcp_open()
2849 connp->conn_minor_arena = minor_arena; in tcp_open()
2854 tcp = connp->conn_tcp; in tcp_open()
2872 mutex_enter(&connp->conn_lock); in tcp_open()
2873 CONN_INC_REF_LOCKED(connp); in tcp_open()
2874 ASSERT(connp->conn_ref == 2); in tcp_open()
2875 connp->conn_state_flags &= ~CONN_INCIPIENT; in tcp_open()
2876 mutex_exit(&connp->conn_lock); in tcp_open()
2895 conn_t *connp = tcp->tcp_connp; in tcp_build_hdrs() local
2909 buflen = connp->conn_ht_ulp_len; in tcp_build_hdrs()
2911 bcopy(connp->conn_ht_ulp, buf, buflen); in tcp_build_hdrs()
2917 mutex_enter(&connp->conn_lock); in tcp_build_hdrs()
2918 error = conn_build_hdr_template(connp, ulplen, extralen, in tcp_build_hdrs()
2919 &connp->conn_laddr_v6, &connp->conn_faddr_v6, connp->conn_flowinfo); in tcp_build_hdrs()
2920 mutex_exit(&connp->conn_lock); in tcp_build_hdrs()
2928 tcpha = (tcpha_t *)connp->conn_ht_ulp; in tcp_build_hdrs()
2933 bcopy(buf, connp->conn_ht_ulp, buflen); in tcp_build_hdrs()
2939 tcpha->tha_lport = connp->conn_lport; in tcp_build_hdrs()
2940 tcpha->tha_fport = connp->conn_fport; in tcp_build_hdrs()
2949 cksum = sizeof (tcpha_t) + connp->conn_sum; in tcp_build_hdrs()
2954 if (connp->conn_ipversion == IPV4_VERSION) in tcp_build_hdrs()
2955 tcp->tcp_ipha = (ipha_t *)connp->conn_ht_iphc; in tcp_build_hdrs()
2957 tcp->tcp_ip6h = (ip6_t *)connp->conn_ht_iphc; in tcp_build_hdrs()
2959 if (connp->conn_ht_iphc_allocated + tcps->tcps_wroff_xtra > in tcp_build_hdrs()
2960 connp->conn_wroff) { in tcp_build_hdrs()
2961 connp->conn_wroff = connp->conn_ht_iphc_allocated + in tcp_build_hdrs()
2963 (void) proto_set_tx_wroff(connp->conn_rq, connp, in tcp_build_hdrs()
2964 connp->conn_wroff); in tcp_build_hdrs()
2996 conn_t *connp = tcp->tcp_connp; in tcp_rwnd_set() local
3013 (void) proto_set_rx_hiwat(connp->conn_rq, connp, in tcp_rwnd_set()
3039 old_max_rwnd = connp->conn_rcvbuf; in tcp_rwnd_set()
3092 connp->conn_rcvbuf = rwnd; in tcp_rwnd_set()
3108 (void) proto_set_rx_hiwat(connp->conn_rq, connp, rwnd); in tcp_rwnd_set()
3113 tcp_do_unbind(conn_t *connp) in tcp_do_unbind() argument
3115 tcp_t *tcp = connp->conn_tcp; in tcp_do_unbind()
3139 connp->conn_laddr_v6 = ipv6_all_zeros; in tcp_do_unbind()
3140 connp->conn_saddr_v6 = ipv6_all_zeros; in tcp_do_unbind()
3145 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL, in tcp_do_unbind()
3148 ip_unbind(connp); in tcp_do_unbind()
3149 bzero(&connp->conn_ports, sizeof (connp->conn_ports)); in tcp_do_unbind()
3160 conn_t *connp = tcp->tcp_connp; in tcp_get_proto_props() local
3166 tcp_fuse_set_rcv_hiwat(tcp, connp->conn_rcvbuf) : in tcp_get_proto_props()
3167 connp->conn_rcvbuf; in tcp_get_proto_props()
3189 sopp->sopp_wroff = connp->conn_ht_iphc_allocated + in tcp_get_proto_props()
3192 sopp->sopp_wroff = connp->conn_ht_iphc_len + in tcp_get_proto_props()
3208 conn_t *connp = tcp->tcp_connp; in tcp_zcopy_check() local
3209 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_zcopy_check()
3222 (void) proto_set_tx_copyopt(connp->conn_rq, connp, in tcp_zcopy_check()
3227 (void) proto_set_tx_copyopt(connp->conn_rq, connp, in tcp_zcopy_check()
3320 conn_t *connp; in tcp_zcopy_notify() local
3324 connp = tcp->tcp_connp; in tcp_zcopy_notify()
3325 if (IPCL_IS_NONSTR(connp)) { in tcp_zcopy_notify()
3326 (*connp->conn_upcalls->su_zcopy_notify) in tcp_zcopy_notify()
3327 (connp->conn_upper_handle); in tcp_zcopy_notify()
3330 stp = STREAM(connp->conn_rq); in tcp_zcopy_notify()
3405 conn_t *connp = tcp->tcp_connp; in tcp_update_zcopy() local
3411 (void) proto_set_tx_copyopt(connp->conn_rq, connp, in tcp_update_zcopy()
3418 (void) proto_set_tx_copyopt(connp->conn_rq, connp, in tcp_update_zcopy()
3435 conn_t *connp = tcp->tcp_connp; in tcp_notify() local
3439 tcp_update_lso(tcp, connp->conn_ixa); in tcp_notify()
3983 conn_t *connp = tcp->tcp_connp; in tcp_iss_init() local
3992 arg.ports = connp->conn_ports; in tcp_iss_init()
3993 arg.src = connp->conn_laddr_v6; in tcp_iss_init()
3994 arg.dst = connp->conn_faddr_v6; in tcp_iss_init()
4030 conn_t *connp = tcp->tcp_connp; in tcp_setqfull() local
4035 conn_setqfull(connp, &tcp->tcp_flow_stopped); in tcp_setqfull()
4043 conn_t *connp = tcp->tcp_connp; in tcp_clrqfull() local
4047 conn_clrqfull(connp, &tcp->tcp_flow_stopped); in tcp_clrqfull()
4096 tcp_do_bind(conn_t *connp, struct sockaddr *sa, socklen_t len, cred_t *cr, in tcp_do_bind() argument
4100 tcp_t *tcp = connp->conn_tcp; in tcp_do_bind()
4103 if (connp->conn_debug) { in tcp_do_bind()
4110 error = tcp_bind_check(connp, sa, len, cr, bind_to_req_port_only); in tcp_do_bind()
4125 tcp_do_connect(conn_t *connp, const struct sockaddr *sa, socklen_t len, in tcp_do_connect() argument
4128 tcp_t *tcp = connp->conn_tcp; in tcp_do_connect()
4139 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_do_connect()
4155 if (connp->conn_ipv6_v6only) { in tcp_do_connect()
4174 if (connp->conn_family == AF_INET6 && in tcp_do_connect()
4175 connp->conn_ipversion == IPV6_VERSION && in tcp_do_connect()
4177 if (connp->conn_ipv6_v6only) in tcp_do_connect()
4180 connp->conn_ipversion = IPV4_VERSION; in tcp_do_connect()
4188 if (IPCL_IS_NONSTR(connp)) in tcp_do_connect()
4206 if (connp->conn_cred != cr) { in tcp_do_connect()
4208 crfree(connp->conn_cred); in tcp_do_connect()
4209 connp->conn_cred = cr; in tcp_do_connect()
4211 connp->conn_cpid = pid; in tcp_do_connect()
4222 if (connp->conn_family == AF_INET6) { in tcp_do_connect()
4234 &connp->conn_bound_addr_v6) && in tcp_do_connect()
4235 !IN6_IS_ADDR_V4MAPPED(&connp->conn_bound_addr_v6)) { in tcp_do_connect()
4254 CL_INET_CONNECT(connp, B_TRUE, error); in tcp_do_connect()
4265 mss = tcp->tcp_mss - connp->conn_ht_iphc_len; in tcp_do_connect()
4274 tcp->tcp_rwnd = connp->conn_rcvbuf; in tcp_do_connect()
4277 connp->conn_rcvbuf = tcp->tcp_rwnd; in tcp_do_connect()
4318 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL, in tcp_do_connect()
4336 ip_xmit_attr_t *, connp->conn_ixa, in tcp_do_connect()
4339 &syn_mp->b_rptr[connp->conn_ixa->ixa_ip_hdr_length]); in tcp_do_connect()
4348 connp->conn_faddr_v6 = ipv6_all_zeros; in tcp_do_connect()
4349 connp->conn_fport = 0; in tcp_do_connect()
4357 tcp_do_listen(conn_t *connp, struct sockaddr *sa, socklen_t len, in tcp_do_listen() argument
4360 tcp_t *tcp = connp->conn_tcp; in tcp_do_listen()
4380 if (connp->conn_debug) { in tcp_do_listen()
4391 ASSERT(IPCL_IS_NONSTR(connp)); in tcp_do_listen()
4393 if (connp->conn_family == AF_INET) { in tcp_do_listen()
4399 ASSERT(connp->conn_family == AF_INET6); in tcp_do_listen()
4408 error = tcp_bind_check(connp, sa, len, cr, in tcp_do_listen()
4432 connp->conn_ixa, void, NULL, tcp_t *, tcp, in tcp_do_listen()
4453 connp->conn_recv = tcp_input_listener_unbound; in tcp_do_listen()
4456 error = ip_laddr_fanout_insert(connp); in tcp_do_listen()
4462 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL, in tcp_do_listen()
4464 connp->conn_bound_addr_v6 = ipv6_all_zeros; in tcp_do_listen()
4466 connp->conn_laddr_v6 = ipv6_all_zeros; in tcp_do_listen()
4467 connp->conn_saddr_v6 = ipv6_all_zeros; in tcp_do_listen()
4468 connp->conn_ports = 0; in tcp_do_listen()
4470 if (connp->conn_anon_port) { in tcp_do_listen()
4474 connp->conn_anon_port = B_FALSE; in tcp_do_listen()
4475 (void) tsol_mlp_anon(zone, connp->conn_mlp_type, in tcp_do_listen()
4476 connp->conn_proto, connp->conn_lport, B_FALSE); in tcp_do_listen()
4478 connp->conn_mlp_type = mlptSingle; in tcp_do_listen()
4494 ntohs(connp->conn_lport)); in tcp_do_listen()
4509 if ((tot_buf = connp->conn_rcvbuf + in tcp_do_listen()
4510 connp->conn_sndbuf) < MB) { in tcp_do_listen()