Lines Matching refs:ixa
165 pid_t pid, ip_xmit_attr_t *ixa);
168 ip_xmit_attr_t *ixa);
928 ip_xmit_attr_t *ixa;
936 ixa = conn_get_ixa(connp, B_FALSE);
937 if (ixa == NULL || ixa->ixa_ire == NULL) {
942 if (ixa != NULL)
943 ixa_refrele(ixa);
946 (void) ip_get_pmtu(ixa);
950 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF) {
958 ixa_refrele(ixa);
1616 ip_xmit_attr_t *ixa = coa->coa_ixa;
1679 ip_xmit_attr_replace_tsl(ixa, newcr->cr_label);
1680 ixa->ixa_flags |= IXAF_UCRED_TSL;
1993 udp_prepend_hdr(conn_t *connp, ip_xmit_attr_t *ixa, const ip_pkt_t *ipp,
2011 mp = conn_prepend_hdr(ixa, ipp, v6src, v6dst, IPPROTO_UDP, flowinfo,
2019 ixa->ixa_pktlen = data_len + ixa->ixa_ip_hdr_length;
2021 udpha = (udpha_t *)(mp->b_rptr + ixa->ixa_ip_hdr_length);
2043 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2046 ASSERT(ntohs(ipha->ipha_length) == ixa->ixa_pktlen);
2060 ASSERT(ntohs(ip6h->ip6_plen) + IPV6_HDR_LEN == ixa->ixa_pktlen);
2607 ip_xmit_attr_t *ixa;
2621 * Get ixa before checking state to handle a disconnect race.
2627 ixa = conn_get_ixa_exclusive(connp);
2628 if (ixa == NULL) {
2634 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2635 ixa->ixa_cred = cr;
2636 ixa->ixa_cpid = pid;
2639 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred);
2643 ip_attr_newdst(ixa);
2648 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2649 ixa->ixa_cred = connp->conn_cred; /* Restore */
2650 ixa->ixa_cpid = connp->conn_cpid;
2651 ixa_refrele(ixa);
2666 * Parse the options and update ixa and ipp as a result.
2673 coa->coa_ixa = ixa;
2716 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
2717 ixa->ixa_flags |= IXAF_IS_IPV4;
2726 ixa->ixa_scopeid = sin6->sin6_scope_id;
2727 ixa->ixa_flags |= IXAF_SCOPEID_SET;
2729 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
2733 ixa->ixa_flags |= IXAF_IS_IPV4;
2735 ixa->ixa_flags &= ~IXAF_IS_IPV4;
2755 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2764 ip_attr_nexthop(ipp, ixa, &v6dst, &v6nexthop);
2765 error = ip_attr_connect(connp, ixa, &v6src, &v6dst, &v6nexthop, dstport,
2788 if (ixa->ixa_ire != NULL) {
2809 * TSOL Note: We have an exclusive ipp and ixa for this thread so we
2815 !((ixa->ixa_flags & IXAF_UCRED_TSL))) {
2833 error = conn_update_label(connp, ixa, &v6dst, ipp);
2840 mp = udp_prepend_hdr(connp, ixa, ipp, &v6src, &v6dst, dstport,
2847 if (ixa->ixa_pktlen > IP_MAXPACKET) {
2856 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
2858 &mp->b_rptr[ixa->ixa_ip_hdr_length]);
2860 error = conn_ip_output(mp, ixa);
2866 (void) ixa_check_drain_insert(connp, ixa);
2891 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2892 ixa->ixa_cred = connp->conn_cred; /* Restore */
2893 ixa->ixa_cpid = connp->conn_cpid;
2894 ixa_refrele(ixa);
2910 ip_xmit_attr_t *ixa;
2916 ixa = conn_get_ixa(connp, B_FALSE);
2917 if (ixa == NULL) {
2924 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2925 ixa->ixa_cred = cr;
2926 ixa->ixa_cpid = pid;
2929 mp = udp_prepend_header_template(connp, ixa, mp, &connp->conn_saddr_v6,
2935 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2936 ixa->ixa_cred = connp->conn_cred; /* Restore */
2937 ixa->ixa_cpid = connp->conn_cpid;
2938 ixa_refrele(ixa);
2948 if (ixa->ixa_ire == NULL) {
2956 ip_attr_nexthop(&connp->conn_xmit_ipp, ixa, &faddr, &nexthop);
2959 error = ip_attr_connect(connp, ixa, &saddr, &faddr, &nexthop,
2982 if (ixa->ixa_ire != NULL) {
2993 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
2994 ixa->ixa_cred = connp->conn_cred; /* Restore */
2995 ixa->ixa_cpid = connp->conn_cpid;
2996 ixa_refrele(ixa);
3005 ASSERT(ixa->ixa_ire != NULL);
3010 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
3012 &mp->b_rptr[ixa->ixa_ip_hdr_length]);
3014 error = conn_ip_output(mp, ixa);
3020 (void) ixa_check_drain_insert(connp, ixa);
3031 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3032 ixa->ixa_cred = connp->conn_cred; /* Restore */
3033 ixa->ixa_cpid = connp->conn_cpid;
3034 ixa_refrele(ixa);
3046 ip_xmit_attr_t *ixa)
3053 ASSERT(ixa != NULL);
3056 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3057 ixa->ixa_cred = cr;
3058 ixa->ixa_cpid = pid;
3060 mp = udp_prepend_header_template(connp, ixa, mp, &connp->conn_v6lastsrc,
3066 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3067 ixa->ixa_cred = connp->conn_cred; /* Restore */
3068 ixa->ixa_cpid = connp->conn_cpid;
3069 ixa_refrele(ixa);
3079 if (ixa->ixa_ire == NULL) {
3087 ip_attr_nexthop(&connp->conn_xmit_ipp, ixa, &lastdst, &nexthop);
3090 error = ip_attr_connect(connp, ixa, &lastsrc, &lastdst,
3113 if (ixa->ixa_ire != NULL) {
3124 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3125 ixa->ixa_cred = connp->conn_cred; /* Restore */
3126 ixa->ixa_cpid = connp->conn_cpid;
3127 ixa_refrele(ixa);
3140 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
3142 &mp->b_rptr[ixa->ixa_ip_hdr_length]);
3144 error = conn_ip_output(mp, ixa);
3150 (void) ixa_check_drain_insert(connp, ixa);
3174 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3175 ixa->ixa_cred = connp->conn_cred; /* Restore */
3176 ixa->ixa_cpid = connp->conn_cpid;
3177 ixa_refrele(ixa);
3191 udp_prepend_header_template(conn_t *connp, ip_xmit_attr_t *ixa, mblk_t *mp,
3219 ixa->ixa_pktlen = pktlen;
3241 ixa->ixa_ip_hdr_length = ip_hdr_length;
3260 if (ixa->ixa_flags & IXAF_IS_IPV4) {
3556 ip_xmit_attr_t *ixa;
3564 ixa = conn_get_ixa(connp, B_FALSE);
3565 if (ixa == NULL) {
3573 ipsec_outbound_policy_current(ixa)) {
3577 pid, ixa);
3582 sin6, ipversion, cr, pid, ixa);
3619 ip_xmit_attr_t *ixa;
3627 ixa = conn_get_ixa(connp, B_FALSE);
3628 if (ixa == NULL) {
3635 ipsec_outbound_policy_current(ixa)) {
3639 pid, ixa);
3644 NULL, ipversion, cr, pid, ixa);
3677 ushort_t ipversion, cred_t *cr, pid_t pid, ip_xmit_attr_t *ixa)
3691 ASSERT(ixa != NULL);
3699 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3700 ixa->ixa_cred = cr;
3701 ixa->ixa_cpid = pid;
3704 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred);
3719 ip_attr_newdst(ixa);
3737 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
3738 ixa->ixa_flags |= IXAF_IS_IPV4;
3747 ixa->ixa_scopeid = sin6->sin6_scope_id;
3748 ixa->ixa_flags |= IXAF_SCOPEID_SET;
3750 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
3754 ixa->ixa_flags |= IXAF_IS_IPV4;
3756 ixa->ixa_flags &= ~IXAF_IS_IPV4;
3771 if (ixa->ixa_flags & IXAF_IS_IPV4) {
3780 ip_attr_nexthop(&connp->conn_xmit_ipp, ixa, &v6dst, &v6nexthop);
3783 error = ip_attr_connect(connp, ixa, &v6src, &v6dst, &v6nexthop, dstport,
3805 if (ixa->ixa_ire != NULL) {
3877 error = conn_update_label(connp, ixa, &v6dst,
3903 if (ixa->ixa_flags & IXAF_IS_IPV4) {
3907 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF) {
3924 oldixa = conn_replace_ixa(connp, ixa);
3929 connp->conn_lastscopeid = ixa->ixa_scopeid;
3934 data_mp = udp_prepend_header_template(connp, ixa, data_mp, &v6src,
3949 DTRACE_UDP5(send, mblk_t *, NULL, ip_xmit_attr_t *, ixa,
3951 &data_mp->b_rptr[ixa->ixa_ip_hdr_length]);
3953 error = conn_ip_output(data_mp, ixa);
3959 (void) ixa_check_drain_insert(connp, ixa);
3983 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3984 ixa->ixa_cred = connp->conn_cred; /* Restore */
3985 ixa->ixa_cpid = connp->conn_cpid;
3986 ixa_refrele(ixa);
3990 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
3991 ixa->ixa_cred = connp->conn_cred; /* Restore */
3992 ixa->ixa_cpid = connp->conn_cpid;
3993 ixa_refrele(ixa);
4639 /* Cache things in ixa without an extra refhold */
5539 ip_xmit_attr_t *ixa;
5619 ixa = conn_get_ixa(connp, B_FALSE);
5620 if (ixa == NULL)
5633 ixa_refrele(ixa);
5698 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED));
5699 ixa->ixa_cred = cr;
5700 ixa->ixa_cpid = pid;
5703 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred);
5707 ixa->ixa_flags |= IXAF_SCOPEID_SET;
5708 ixa->ixa_scopeid = scopeid;
5711 ixa->ixa_flags &= ~IXAF_SCOPEID_SET;
5755 oldixa = conn_replace_ixa(connp, ixa);
5796 ixa_refrele(ixa);
5800 if (ixa != NULL)
5801 ixa_refrele(ixa);
5912 ip_xmit_attr_t *ixa;
6019 ixa = conn_get_ixa(connp, B_FALSE);
6020 if (ixa == NULL) {
6025 ixa = NULL;
6042 if (ixa != NULL)
6043 ixa_refrele(ixa);
6050 ASSERT(ixa == NULL);
6055 ipsec_outbound_policy_current(ixa)) {
6057 error = udp_output_lastdst(connp, mp, cr, pid, ixa);
6061 ipversion, cr, pid, ixa);
6082 ixa = conn_get_ixa(connp, B_FALSE);
6083 if (ixa == NULL) {
6088 ixa = NULL;
6103 if (ixa != NULL)
6104 ixa_refrele(ixa);
6110 ASSERT(ixa == NULL);
6114 ipsec_outbound_policy_current(ixa)) {
6116 error = udp_output_lastdst(connp, mp, cr, pid, ixa);
6120 ipversion, cr, pid, ixa);