Lines Matching defs:ixa
165 pid_t pid, ip_xmit_attr_t *ixa);
168 ip_xmit_attr_t *ixa);
996 ip_xmit_attr_t *ixa;
1004 ixa = conn_get_ixa(connp, B_FALSE);
1005 if (ixa == NULL || ixa->ixa_ire == NULL) {
1010 if (ixa != NULL)
1011 ixa_refrele(ixa);
1014 (void) ip_get_pmtu(ixa);
1018 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF) {
1026 ixa_refrele(ixa);
1684 ip_xmit_attr_t *ixa = coa->coa_ixa;
1747 ip_xmit_attr_replace_tsl(ixa, newcr->cr_label);
1748 ixa->ixa_flags |= IXAF_UCRED_TSL;
2061 udp_prepend_hdr(conn_t *connp, ip_xmit_attr_t *ixa, const ip_pkt_t *ipp,
2079 mp = conn_prepend_hdr(ixa, ipp, v6src, v6dst, IPPROTO_UDP, flowinfo,
2087 ixa->ixa_pktlen = data_len + ixa->ixa_ip_hdr_length;
2089 udpha = (udpha_t *)(mp->b_rptr + ixa->ixa_ip_hdr_length);
2111 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2114 ASSERT(ntohs(ipha->ipha_length) == ixa->ixa_pktlen);
2128 ASSERT(ntohs(ip6h->ip6_plen) + IPV6_HDR_LEN == ixa->ixa_pktlen);
2702 ip_xmit_attr_t *ixa;
2716 * Get ixa before checking state to handle a disconnect race.
2722 ixa = conn_get_ixa_exclusive(connp);
2723 if (ixa == NULL) {
2729 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2730 ixa->ixa_cred = cr;
2731 ixa->ixa_cpid = pid;
2734 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred);
2738 ip_attr_newdst(ixa);
2743 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2744 ixa->ixa_cred = connp->conn_cred; /* Restore */
2745 ixa->ixa_cpid = connp->conn_cpid;
2746 ixa_refrele(ixa);
2761 * Parse the options and update ixa and ipp as a result.
2768 coa->coa_ixa = ixa;
2811 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
2812 ixa->ixa_flags |= IXAF_IS_IPV4;
2821 ixa->ixa_scopeid = sin6->sin6_scope_id;
2822 ixa->ixa_flags |= IXAF_SCOPEID_SET;
2824 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
2828 ixa->ixa_flags |= IXAF_IS_IPV4;
2830 ixa->ixa_flags &= ~IXAF_IS_IPV4;
2850 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2859 ip_attr_nexthop(ipp, ixa, &v6dst, &v6nexthop);
2860 error = ip_attr_connect(connp, ixa, &v6src, &v6dst, &v6nexthop, dstport,
2883 if (ixa->ixa_ire != NULL) {
2904 * TSOL Note: We have an exclusive ipp and ixa for this thread so we
2910 !((ixa->ixa_flags & IXAF_UCRED_TSL))) {
2928 error = conn_update_label(connp, ixa, &v6dst, ipp);
2935 mp = udp_prepend_hdr(connp, ixa, ipp, &v6src, &v6dst, dstport,
2942 if (ixa->ixa_pktlen > IP_MAXPACKET) {
2951 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
2953 &mp->b_rptr[ixa->ixa_ip_hdr_length]);
2955 error = conn_ip_output(mp, ixa);
2961 (void) ixa_check_drain_insert(connp, ixa);
2986 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2987 ixa->ixa_cred = connp->conn_cred; /* Restore */
2988 ixa->ixa_cpid = connp->conn_cpid;
2989 ixa_refrele(ixa);
3005 ip_xmit_attr_t *ixa;
3011 ixa = conn_get_ixa(connp, B_FALSE);
3012 if (ixa == NULL) {
3019 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3020 ixa->ixa_cred = cr;
3021 ixa->ixa_cpid = pid;
3024 mp = udp_prepend_header_template(connp, ixa, mp, &connp->conn_saddr_v6,
3030 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3031 ixa->ixa_cred = connp->conn_cred; /* Restore */
3032 ixa->ixa_cpid = connp->conn_cpid;
3033 ixa_refrele(ixa);
3043 if (ixa->ixa_ire == NULL) {
3051 ip_attr_nexthop(&connp->conn_xmit_ipp, ixa, &faddr, &nexthop);
3054 error = ip_attr_connect(connp, ixa, &saddr, &faddr, &nexthop,
3077 if (ixa->ixa_ire != NULL) {
3088 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3089 ixa->ixa_cred = connp->conn_cred; /* Restore */
3090 ixa->ixa_cpid = connp->conn_cpid;
3091 ixa_refrele(ixa);
3100 ASSERT(ixa->ixa_ire != NULL);
3105 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
3107 &mp->b_rptr[ixa->ixa_ip_hdr_length]);
3109 error = conn_ip_output(mp, ixa);
3115 (void) ixa_check_drain_insert(connp, ixa);
3126 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3127 ixa->ixa_cred = connp->conn_cred; /* Restore */
3128 ixa->ixa_cpid = connp->conn_cpid;
3129 ixa_refrele(ixa);
3141 ip_xmit_attr_t *ixa)
3148 ASSERT(ixa != NULL);
3151 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3152 ixa->ixa_cred = cr;
3153 ixa->ixa_cpid = pid;
3155 mp = udp_prepend_header_template(connp, ixa, mp, &connp->conn_v6lastsrc,
3161 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3162 ixa->ixa_cred = connp->conn_cred; /* Restore */
3163 ixa->ixa_cpid = connp->conn_cpid;
3164 ixa_refrele(ixa);
3174 if (ixa->ixa_ire == NULL) {
3182 ip_attr_nexthop(&connp->conn_xmit_ipp, ixa, &lastdst, &nexthop);
3185 error = ip_attr_connect(connp, ixa, &lastsrc, &lastdst,
3208 if (ixa->ixa_ire != NULL) {
3219 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3220 ixa->ixa_cred = connp->conn_cred; /* Restore */
3221 ixa->ixa_cpid = connp->conn_cpid;
3222 ixa_refrele(ixa);
3235 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
3237 &mp->b_rptr[ixa->ixa_ip_hdr_length]);
3239 error = conn_ip_output(mp, ixa);
3245 (void) ixa_check_drain_insert(connp, ixa);
3269 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3270 ixa->ixa_cred = connp->conn_cred; /* Restore */
3271 ixa->ixa_cpid = connp->conn_cpid;
3272 ixa_refrele(ixa);
3286 udp_prepend_header_template(conn_t *connp, ip_xmit_attr_t *ixa, mblk_t *mp,
3314 ixa->ixa_pktlen = pktlen;
3336 ixa->ixa_ip_hdr_length = ip_hdr_length;
3355 if (ixa->ixa_flags & IXAF_IS_IPV4) {
3651 ip_xmit_attr_t *ixa;
3659 ixa = conn_get_ixa(connp, B_FALSE);
3660 if (ixa == NULL) {
3668 ipsec_outbound_policy_current(ixa)) {
3672 pid, ixa);
3677 sin6, ipversion, cr, pid, ixa);
3714 ip_xmit_attr_t *ixa;
3722 ixa = conn_get_ixa(connp, B_FALSE);
3723 if (ixa == NULL) {
3730 ipsec_outbound_policy_current(ixa)) {
3734 pid, ixa);
3739 NULL, ipversion, cr, pid, ixa);
3772 ushort_t ipversion, cred_t *cr, pid_t pid, ip_xmit_attr_t *ixa)
3786 ASSERT(ixa != NULL);
3794 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3795 ixa->ixa_cred = cr;
3796 ixa->ixa_cpid = pid;
3799 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred);
3814 ip_attr_newdst(ixa);
3832 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
3833 ixa->ixa_flags |= IXAF_IS_IPV4;
3842 ixa->ixa_scopeid = sin6->sin6_scope_id;
3843 ixa->ixa_flags |= IXAF_SCOPEID_SET;
3845 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
3849 ixa->ixa_flags |= IXAF_IS_IPV4;
3851 ixa->ixa_flags &= ~IXAF_IS_IPV4;
3866 if (ixa->ixa_flags & IXAF_IS_IPV4) {
3875 ip_attr_nexthop(&connp->conn_xmit_ipp, ixa, &v6dst, &v6nexthop);
3878 error = ip_attr_connect(connp, ixa, &v6src, &v6dst, &v6nexthop, dstport,
3900 if (ixa->ixa_ire != NULL) {
3972 error = conn_update_label(connp, ixa, &v6dst,
3998 if (ixa->ixa_flags & IXAF_IS_IPV4) {
4002 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF) {
4019 oldixa = conn_replace_ixa(connp, ixa);
4024 connp->conn_lastscopeid = ixa->ixa_scopeid;
4029 data_mp = udp_prepend_header_template(connp, ixa, data_mp, &v6src,
4044 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
4046 &data_mp->b_rptr[ixa->ixa_ip_hdr_length]);
4048 error = conn_ip_output(data_mp, ixa);
4054 (void) ixa_check_drain_insert(connp, ixa);
4078 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
4079 ixa->ixa_cred = connp->conn_cred; /* Restore */
4080 ixa->ixa_cpid = connp->conn_cpid;
4081 ixa_refrele(ixa);
4085 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
4086 ixa->ixa_cred = connp->conn_cred; /* Restore */
4087 ixa->ixa_cpid = connp->conn_cpid;
4088 ixa_refrele(ixa);
4734 /* Cache things in ixa without an extra refhold */
5732 ip_xmit_attr_t *ixa;
5812 ixa = conn_get_ixa(connp, B_FALSE);
5813 if (ixa == NULL)
5826 ixa_refrele(ixa);
5891 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
5892 ixa->ixa_cred = cr;
5893 ixa->ixa_cpid = pid;
5896 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred);
5900 ixa->ixa_flags |= IXAF_SCOPEID_SET;
5901 ixa->ixa_scopeid = scopeid;
5904 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
5948 oldixa = conn_replace_ixa(connp, ixa);
5989 ixa_refrele(ixa);
5993 if (ixa != NULL)
5994 ixa_refrele(ixa);
6105 ip_xmit_attr_t *ixa;
6212 ixa = conn_get_ixa(connp, B_FALSE);
6213 if (ixa == NULL) {
6218 ixa = NULL;
6235 if (ixa != NULL)
6236 ixa_refrele(ixa);
6243 ASSERT(ixa == NULL);
6248 ipsec_outbound_policy_current(ixa)) {
6250 error = udp_output_lastdst(connp, mp, cr, pid, ixa);
6254 ipversion, cr, pid, ixa);
6275 ixa = conn_get_ixa(connp, B_FALSE);
6276 if (ixa == NULL) {
6281 ixa = NULL;
6296 if (ixa != NULL)
6297 ixa_refrele(ixa);
6303 ASSERT(ixa == NULL);
6307 ipsec_outbound_policy_current(ixa)) {
6309 error = udp_output_lastdst(connp, mp, cr, pid, ixa);
6313 ipversion, cr, pid, ixa);