Lines Matching refs:connp
106 #define SET_TIME_WAIT(tcps, tcp, connp) \
113 (connp)->conn_exclbind = 0; \
184 conn_t *connp = tcp->tcp_connp;
186 if (connp->conn_ipversion == IPV4_VERSION)
206 if ((mss << 2) > connp->conn_sndbuf)
207 connp->conn_sndbuf = mss << 2;
212 if ((mss << 1) > connp->conn_sndlowat)
213 connp->conn_sndlowat = mss << 1;
411 conn_t *connp = tcp->tcp_connp;
423 if (connp->conn_ipversion == IPV4_VERSION)
428 if (connp->conn_ipversion == IPV4_VERSION)
457 ASSERT(connp->conn_ht_ulp_len == TCP_MIN_HEADER_LENGTH);
460 tmp_tcph += connp->conn_ht_ulp_len;
465 connp->conn_ht_iphc_len += TCPOPT_REAL_TS_LEN;
466 connp->conn_ht_ulp_len += TCPOPT_REAL_TS_LEN;
519 tcp->tcp_mss -= connp->conn_ht_iphc_len;
528 tcpopt.tcp_opt_mss -= connp->conn_ht_iphc_len +
530 ((connp->conn_ipversion == IPV4_VERSION ?
784 tcp_conn_create_v6(conn_t *lconnp, conn_t *connp, mblk_t *mp,
788 tcp_t *tcp = connp->conn_tcp;
799 connp->conn_ipversion = IPV4_VERSION;
800 IN6_IPADDR_TO_V4MAPPED(ipha->ipha_dst, &connp->conn_laddr_v6);
801 IN6_IPADDR_TO_V4MAPPED(ipha->ipha_src, &connp->conn_faddr_v6);
802 connp->conn_saddr_v6 = connp->conn_laddr_v6;
805 sin6.sin6_addr = connp->conn_faddr_v6;
806 sin6.sin6_port = connp->conn_fport;
808 sin6.__sin6_src_id = ip_srcid_find_addr(&connp->conn_laddr_v6,
811 if (connp->conn_recv_ancillary.crb_recvdstaddr) {
815 sin6d.sin6_addr = connp->conn_laddr_v6;
816 sin6d.sin6_port = connp->conn_lport;
833 connp->conn_ipversion = IPV6_VERSION;
834 connp->conn_laddr_v6 = ip6h->ip6_dst;
835 connp->conn_faddr_v6 = ip6h->ip6_src;
836 connp->conn_saddr_v6 = connp->conn_laddr_v6;
839 sin6.sin6_addr = connp->conn_faddr_v6;
840 sin6.sin6_port = connp->conn_fport;
843 sin6.__sin6_src_id = ip_srcid_find_addr(&connp->conn_laddr_v6,
852 if (connp->conn_recv_ancillary.crb_recvdstaddr) {
856 sin6.sin6_addr = connp->conn_laddr_v6;
857 sin6d.sin6_port = connp->conn_lport;
859 if (IN6_IS_ADDR_LINKSCOPE(&connp->conn_laddr_v6))
881 tcp_conn_create_v4(conn_t *lconnp, conn_t *connp, mblk_t *mp,
885 tcp_t *tcp = connp->conn_tcp;
894 connp->conn_ipversion = IPV4_VERSION;
895 IN6_IPADDR_TO_V4MAPPED(ipha->ipha_dst, &connp->conn_laddr_v6);
896 IN6_IPADDR_TO_V4MAPPED(ipha->ipha_src, &connp->conn_faddr_v6);
897 connp->conn_saddr_v6 = connp->conn_laddr_v6;
900 sin.sin_addr.s_addr = connp->conn_faddr_v4;
901 sin.sin_port = connp->conn_fport;
907 sind.sin_addr.s_addr = connp->conn_laddr_v4;
908 sind.sin_port = connp->conn_lport;
1846 conn_t *connp = (conn_t *)arg;
1859 if (connp->conn_fanout == NULL)
1862 if (!(connp->conn_flags & IPCL_FULLY_BOUND)) {
1863 mutex_enter(&connp->conn_fanout->connf_lock);
1864 mutex_enter(&connp->conn_lock);
1883 if (connp->conn_ref != 4 ||
1884 connp->conn_tcp->tcp_state != TCPS_LISTEN) {
1885 mutex_exit(&connp->conn_lock);
1886 mutex_exit(&connp->conn_fanout->connf_lock);
1889 if (connp->conn_sqp != new_sqp) {
1890 while (connp->conn_sqp != new_sqp)
1891 (void) atomic_cas_ptr(&connp->conn_sqp, sqp,
1894 connp->conn_ixa->ixa_sqp = new_sqp;
1898 conn_flags = connp->conn_flags;
1900 (void) atomic_cas_32(&connp->conn_flags,
1901 connp->conn_flags, conn_flags);
1902 } while (!(connp->conn_flags & IPCL_FULLY_BOUND));
1904 mutex_exit(&connp->conn_fanout->connf_lock);
1905 mutex_exit(&connp->conn_lock);
1911 connp->conn_recv = tcp_input_listener;
1915 if (connp->conn_sqp != sqp) {
1916 CONN_INC_REF(connp);
1917 SQUEUE_ENTER_ONE(connp->conn_sqp, mp, connp->conn_recv, connp,
1920 tcp_input_listener(connp, mp, sqp, ira);
2036 conn_t *connp = tcp->tcp_connp;
2078 ip_xmit_attr_t *ixa = connp->conn_ixa;
2089 total_hdr_len = connp->conn_ht_iphc_len + sack_opt_len;
2090 tcp_hdr_len = connp->conn_ht_ulp_len + sack_opt_len;
2092 total_hdr_len = connp->conn_ht_iphc_len;
2093 tcp_hdr_len = connp->conn_ht_ulp_len;
2106 bcopy(connp->conn_ht_iphc, rptr, connp->conn_ht_iphc_len);
2134 connp->conn_ht_ulp_len;
2170 data_length = tcp_hdr_len + connp->conn_sum;
2176 connp->conn_ixa->ixa_flags |= IXAF_REACH_CONF;
2178 connp->conn_ixa->ixa_flags &= ~IXAF_REACH_CONF;
2296 * The first argument is always the connp/tcp to which the mp belongs.
2298 * a reference on this connp/tcp and once tcp_input_data() returns,
2330 conn_t *connp = (conn_t *)arg;
2332 tcp_t *tcp = connp->conn_tcp;
2349 if (connp->conn_recv_ancillary.crb_all != 0) {
2365 ASSERT(connp->conn_family == AF_INET6);
2394 DTRACE_TCP5(receive, mblk_t *, NULL, ip_xmit_attr_t *, connp->conn_ixa,
2460 sockupcalls = connp->conn_upcalls;
2467 if (connp->conn_final_sqp == NULL &&
2469 ASSERT(connp->conn_initial_sqp == connp->conn_sqp);
2470 connp->conn_final_sqp = sqp;
2471 if (connp->conn_final_sqp != connp->conn_sqp) {
2473 conn_t *, connp);
2474 CONN_INC_REF(connp);
2475 SQUEUE_SWITCH(connp, connp->conn_final_sqp);
2476 SQUEUE_ENTER_ONE(connp->conn_sqp, mp,
2477 tcp_input_data, connp, ira, ip_squeue_flag,
2481 DTRACE_PROBE1(conn__final__sqp__same, conn_t *, connp);
2504 ip_xmit_attr_t *, connp->conn_ixa,
2523 (void) tcp_rwnd_set(tcp, MSS_ROUNDUP(connp->conn_rcvbuf,
2544 connp->conn_wroff = connp->conn_ht_iphc_len;
2546 connp->conn_wroff += TCPOPT_MAX_SACK_LEN;
2548 connp->conn_wroff += tcps->tcps_wroff_xtra;
2550 (void) proto_set_tx_wroff(connp->conn_rq, connp,
2551 connp->conn_wroff);
2631 connp->conn_ixa, void, NULL, tcp_t *, tcp,
2665 if (!IPCL_IS_NONSTR(connp)) {
2672 putnext(connp->conn_rq, mp1);
2675 (connp->conn_upper_handle,
2694 if (!IPCL_IS_NONSTR(connp)) {
2699 putnext(connp->conn_rq, mp1);
2702 (connp->conn_upper_handle,
2730 connp->conn_ixa, void_ip_t *, NULL, tcp_t *, tcp,
2965 if (connp->conn_debug) {
3097 if (IPCL_IS_NONSTR(connp)) {
3100 (connp->conn_upper_handle,
3110 !putnextctl1(connp->conn_rq,
3179 if (connp->conn_ipversion == IPV4_VERSION) {
3374 if (IPCL_IS_NONSTR(connp)) {
3377 (connp->conn_upper_handle, urp);
3399 !putnextctl1(connp->conn_rq, M_PCSIG,
3469 tcp_input_data(connp,
3476 tcp_input_data(connp, mp1, NULL, ira);
3505 tcp_input_data(connp,
3511 tcp_input_data(connp, mp1, NULL, ira);
3525 tcp_input_data(connp, mp, NULL, ira);
3532 if (IPCL_IS_NONSTR(connp)) {
3536 (connp->conn_upper_handle, mp, seg_len,
3689 ip_xmit_attr_t *, connp->conn_ixa, void_ip_t *,
3691 } else if (IPCL_IS_NONSTR(connp)) {
3703 CONN_INC_REF(connp);
3716 CONN_DEC_REF(connp);
3724 * connp->conn_upper_handle. Fix things now, in case
3727 if (connp->conn_upcalls != NULL)
3728 sockupcalls = connp->conn_upcalls;
3734 ip_xmit_attr_t *, connp->conn_ixa, void_ip_t *,
3755 CONN_INC_REF(connp);
3765 connp->conn_sqp) {
3794 ip_xmit_attr_t *, connp->conn_ixa, void_ip_t *,
3838 connp->conn_ixa, void, NULL, tcp_t *, tcp, void, NULL,
4494 ip_xmit_attr_t *, connp->conn_ixa,
4528 SET_TIME_WAIT(tcps, tcp, connp);
4530 ip_xmit_attr_t *, connp->conn_ixa, void,
4558 if (!TCP_IS_DETACHED(tcp) && (IPCL_IS_NONSTR(connp) ||
4566 ip_xmit_attr_t *, connp->conn_ixa,
4574 ip_xmit_attr_t *, connp->conn_ixa,
4583 ip_xmit_attr_t *, connp->conn_ixa,
4590 SET_TIME_WAIT(tcps, tcp, connp);
4592 ip_xmit_attr_t *, connp->conn_ixa, void,
4693 if (connp->conn_recv_ancillary.crb_all != 0) {
4699 if (IPCL_IS_NONSTR(connp)) {
4706 if ((*sockupcalls->su_recv)(connp->conn_upper_handle,
4755 putnext(connp->conn_rq, mp);
4756 if (!canputnext(connp->conn_rq))
4759 tcp->tcp_rcv_cnt + seg_len >= connp->conn_rcvbuf >> 3) {
4781 putnext(connp->conn_rq, mp);
4782 if (!canputnext(connp->conn_rq))
4881 ASSERT(!IPCL_IS_NONSTR(connp));
4895 putnext(connp->conn_rq, mp1);
4942 ASSERT(IPCL_IS_NONSTR(connp) || tcp->tcp_listener == NULL);
4945 if (IPCL_IS_NONSTR(connp)) {
4948 (*sockupcalls->su_opctl)(connp->conn_upper_handle,
4964 putnext(connp->conn_rq, mp1);
4988 conn_t *connp = tcp->tcp_connp;
4993 if (connp->conn_recv_ancillary.crb_ip_recvpktinfo &&
5000 if (connp->conn_recv_ancillary.crb_ipv6_recvhoplimit &&
5006 if (connp->conn_recv_ancillary.crb_ipv6_recvtclass &&
5017 if (connp->conn_recv_ancillary.crb_ipv6_recvhopopts &&
5029 if (connp->conn_recv_ancillary.crb_ipv6_recvrthdrdstopts &&
5043 if (connp->conn_recv_ancillary.crb_ipv6_recvrthdr &&
5055 if ((connp->conn_recv_ancillary.crb_ipv6_recvdstopts ||
5056 connp->conn_recv_ancillary.crb_old_ipv6_recvdstopts) &&
5106 pkti->ipi6_addr = connp->conn_laddr_v6;
5323 conn_t *connp = tcp->tcp_connp;
5335 if (connp->conn_rcvbuf - thwin >= tcp->tcp_mss) {
5344 tcp->tcp_rwnd = connp->conn_rcvbuf;
5351 * This function drops the ref on connp that the caller had.
5354 tcp_reinput(conn_t *connp, mblk_t *mp, ip_recv_attr_t *ira, ip_stack_t *ipst)
5358 if (connp->conn_incoming_ifindex != 0 &&
5359 connp->conn_incoming_ifindex != ira->ira_ruifindex) {
5361 CONN_DEC_REF(connp);
5365 if (CONN_INBOUND_POLICY_PRESENT_V6(connp, ipss) ||
5377 mp = ipsec_check_inbound_policy(mp, connp, ipha, ip6h, ira);
5382 CONN_DEC_REF(connp);
5387 if (IPCL_IS_TCP(connp)) {
5392 SQUEUE_ENTER_ONE(connp->conn_sqp, mp,
5393 connp->conn_recv, connp, ira,
5397 (connp->conn_recv)(connp, mp, NULL,
5399 CONN_DEC_REF(connp);
5408 conn_t *connp = (conn_t *)arg;
5409 tcp_t *tcp = connp->conn_tcp;
5410 queue_t *q = connp->conn_rq;
5412 ASSERT(!IPCL_IS_NONSTR(connp));
5428 tcp->tcp_rwnd = connp->conn_rcvbuf;
5454 conn_t *connp = Q_TO_CONN(q);
5455 tcp_t *tcp = connp->conn_tcp;
5473 CONN_INC_REF(connp);
5474 SQUEUE_ENTER_ONE(connp->conn_sqp, mp, tcp_rsrv_input, connp,
5490 conn_t *connp = (conn_t *)arg1;
5496 tcp_t *tcp = connp->conn_tcp;
5747 tcp_verifyicmp(conn_t *connp, void *arg2, icmph_t *icmph, icmp6_t *icmp6,
5752 tcp_t *tcp = connp->conn_tcp;