Lines Matching refs:ixa
3365 ip_xmit_attr_t *ixa, iulp_t *uinfo, uint32_t flags, uint_t mac_mode) in ip_set_destination_v4() argument
3370 zoneid_t zoneid = ixa->ixa_zoneid; /* Honors SO_ALLZONES */ in ip_set_destination_v4()
3371 ip_stack_t *ipst = ixa->ixa_ipst; in ip_set_destination_v4()
3379 ASSERT(ixa->ixa_flags & IXAF_IS_IPV4); in ip_set_destination_v4()
3391 error = tsol_check_dest(ixa->ixa_tsl, &dst_addr, IPV4_VERSION, in ip_set_destination_v4()
3397 ip_xmit_attr_replace_tsl(ixa, tsl); in ip_set_destination_v4()
3407 ire = ip_select_route_v4(firsthop, *src_addrp, ixa, in ip_set_destination_v4()
3461 if (ixa->ixa_ire != NULL) in ip_set_destination_v4()
3462 ire_refrele_notr(ixa->ixa_ire); in ip_set_destination_v4()
3467 ixa->ixa_ire = ire; in ip_set_destination_v4()
3468 ixa->ixa_ire_generation = generation; in ip_set_destination_v4()
3486 if (ixa->ixa_dce != NULL) in ip_set_destination_v4()
3487 dce_refrele_notr(ixa->ixa_dce); in ip_set_destination_v4()
3492 ixa->ixa_dce = dce; in ip_set_destination_v4()
3493 ixa->ixa_dce_generation = generation; in ip_set_destination_v4()
3503 ixa->ixa_postfragfn = ip_postfrag_multirt_v4; in ip_set_destination_v4()
3504 ixa->ixa_flags |= IXAF_MULTIRT_MULTICAST; in ip_set_destination_v4()
3506 ixa->ixa_postfragfn = ire->ire_postfragfn; in ip_set_destination_v4()
3507 ixa->ixa_flags &= ~IXAF_MULTIRT_MULTICAST; in ip_set_destination_v4()
3514 ixa->ixa_ire_generation = IRE_GENERATION_VERIFY; in ip_set_destination_v4()
3516 if (ixa->ixa_nce != NULL) in ip_set_destination_v4()
3517 nce_refrele(ixa->ixa_nce); in ip_set_destination_v4()
3518 ixa->ixa_nce = nce; in ip_set_destination_v4()
3547 ixa->ixa_flags |= IXAF_SET_SOURCE; in ip_set_destination_v4()
3549 ixa->ixa_flags &= ~IXAF_SET_SOURCE; in ip_set_destination_v4()
3574 ixa->ixa_multicast_ifaddr, zoneid, in ip_set_destination_v4()
3596 ixa->ixa_src_generation = generation; in ip_set_destination_v4()
3604 nce = ixa->ixa_nce; in ip_set_destination_v4()
3607 ixa->ixa_nce = NULL; in ip_set_destination_v4()
3608 ixa->ixa_ire_generation = IRE_GENERATION_VERIFY; in ip_set_destination_v4()
3616 ixa->ixa_flags &= ~IXAF_PMTU_DISCOVERY; in ip_set_destination_v4()
3623 pmtu = ip_get_pmtu(ixa); in ip_set_destination_v4()
3624 ixa->ixa_fragsize = pmtu; in ip_set_destination_v4()
3626 if (ixa->ixa_flags & IXAF_VERIFY_PMTU) in ip_set_destination_v4()
3627 ixa->ixa_pmtu = pmtu; in ip_set_destination_v4()
3669 nce = ixa->ixa_nce; in ip_set_destination_v4()
3672 ixa->ixa_nce = NULL; in ip_set_destination_v4()
3673 ixa->ixa_ire_generation = IRE_GENERATION_VERIFY; in ip_set_destination_v4()
3713 ip_get_pmtu(ip_xmit_attr_t *ixa) in ip_get_pmtu() argument
3715 ip_stack_t *ipst = ixa->ixa_ipst; in ip_get_pmtu()
3721 ire = ixa->ixa_ire; in ip_get_pmtu()
3722 dce = ixa->ixa_dce; in ip_get_pmtu()
3723 nce = ixa->ixa_nce; in ip_get_pmtu()
3730 ixa->ixa_flags &= ~IXAF_PMTU_DISCOVERY; in ip_get_pmtu()
3737 if (ixa->ixa_flags & IXAF_PMTU_DISCOVERY) { in ip_get_pmtu()
3738 ixa->ixa_flags |= IXAF_PMTU_IPV4_DF; in ip_get_pmtu()
3740 ixa->ixa_flags &= ~IXAF_PMTU_IPV4_DF; in ip_get_pmtu()
3741 if (!(ixa->ixa_flags & IXAF_IS_IPV4)) in ip_get_pmtu()
3769 if (ixa->ixa_flags & IXAF_PMTU_DISCOVERY) { in ip_get_pmtu()
3775 ixa->ixa_flags |= IXAF_PMTU_TOO_SMALL; in ip_get_pmtu()
3776 ixa->ixa_flags &= ~IXAF_PMTU_IPV4_DF; in ip_get_pmtu()
3778 ixa->ixa_flags &= ~IXAF_PMTU_TOO_SMALL; in ip_get_pmtu()
3779 ixa->ixa_flags |= IXAF_PMTU_IPV4_DF; in ip_get_pmtu()
3782 ixa->ixa_flags &= ~IXAF_PMTU_TOO_SMALL; in ip_get_pmtu()
3783 ixa->ixa_flags |= IXAF_PMTU_IPV4_DF; in ip_get_pmtu()
3840 if (!(ixa->ixa_flags & IXAF_IS_IPV4)) { in ip_get_pmtu()
3841 if (ixa->ixa_flags & IXAF_USE_MIN_MTU) { in ip_get_pmtu()
3842 switch (ixa->ixa_use_min_mtu) { in ip_get_pmtu()
3874 if (!(ixa->ixa_flags & IXAF_IS_IPV4)) { in ip_get_pmtu()
3877 (ixa->ixa_flags & IXAF_MULTIRT_MULTICAST)) { in ip_get_pmtu()
3879 ixa->ixa_flags |= IXAF_IPV6_ADD_FRAGHDR; in ip_get_pmtu()
6551 ip_fill_mtuinfo(conn_t *connp, ip_xmit_attr_t *ixa, struct ip6_mtuinfo *mtuinfo) in ip_fill_mtuinfo() argument
6560 if (ixa->ixa_ire != NULL) in ip_fill_mtuinfo()
6561 pmtu = ip_get_pmtu(ixa); in ip_fill_mtuinfo()
6563 if (ixa->ixa_flags & IXAF_SCOPEID_SET) in ip_fill_mtuinfo()
6564 scopeid = ixa->ixa_scopeid; in ip_fill_mtuinfo()
11552 ipsec_out_extra_length(ip_xmit_attr_t *ixa) in ipsec_out_extra_length() argument
11556 if (!(ixa->ixa_flags & IXAF_IPSEC_SECURE)) in ipsec_out_extra_length()
11559 a = ixa->ixa_ipsec_action; in ipsec_out_extra_length()
11561 ASSERT(ixa->ixa_ipsec_policy != NULL); in ipsec_out_extra_length()
11562 a = ixa->ixa_ipsec_policy->ipsp_act; in ipsec_out_extra_length()
12155 ip_output_post_ipsec(mblk_t *mp, ip_xmit_attr_t *ixa) in ip_output_post_ipsec() argument
12157 iaflags_t ixaflags = ixa->ixa_flags; in ip_output_post_ipsec()
12181 if (ixa->ixa_ipsec_esp_sa != NULL) { in ip_output_post_ipsec()
12182 IPSA_REFRELE(ixa->ixa_ipsec_esp_sa); in ip_output_post_ipsec()
12183 ixa->ixa_ipsec_esp_sa = NULL; in ip_output_post_ipsec()
12185 if (ixa->ixa_ipsec_ah_sa != NULL) { in ip_output_post_ipsec()
12186 IPSA_REFRELE(ixa->ixa_ipsec_ah_sa); in ip_output_post_ipsec()
12187 ixa->ixa_ipsec_ah_sa = NULL; in ip_output_post_ipsec()
12191 if ((ixa->ixa_flags & IXAF_IPV6_ADD_FRAGHDR) || in ip_output_post_ipsec()
12192 pktlen > ixa->ixa_fragsize) { in ip_output_post_ipsec()
12194 ASSERT(!(ixa->ixa_flags & IXAF_IPV6_ADD_FRAGHDR)); in ip_output_post_ipsec()
12199 return (ip_fragment_v4(mp, ixa->ixa_nce, ixa->ixa_flags, in ip_output_post_ipsec()
12200 pktlen, ixa->ixa_fragsize, in ip_output_post_ipsec()
12201 ixa->ixa_xmit_hint, ixa->ixa_zoneid, in ip_output_post_ipsec()
12202 ixa->ixa_no_loop_zoneid, ixa->ixa_postfragfn, in ip_output_post_ipsec()
12203 &ixa->ixa_cookie)); in ip_output_post_ipsec()
12205 mp = ip_fraghdr_add_v6(mp, ixa->ixa_ident, ixa); in ip_output_post_ipsec()
12211 if (pktlen > ixa->ixa_fragsize) { in ip_output_post_ipsec()
12212 return (ip_fragment_v6(mp, ixa->ixa_nce, in ip_output_post_ipsec()
12213 ixa->ixa_flags, pktlen, in ip_output_post_ipsec()
12214 ixa->ixa_fragsize, ixa->ixa_xmit_hint, in ip_output_post_ipsec()
12215 ixa->ixa_zoneid, ixa->ixa_no_loop_zoneid, in ip_output_post_ipsec()
12216 ixa->ixa_postfragfn, &ixa->ixa_cookie)); in ip_output_post_ipsec()
12220 return ((ixa->ixa_postfragfn)(mp, ixa->ixa_nce, ixa->ixa_flags, in ip_output_post_ipsec()
12221 pktlen, ixa->ixa_xmit_hint, ixa->ixa_zoneid, in ip_output_post_ipsec()
12222 ixa->ixa_no_loop_zoneid, NULL)); in ip_output_post_ipsec()
12280 ipsec_out_select_sa(mblk_t *mp, ip_xmit_attr_t *ixa) in ipsec_out_select_sa() argument
12286 ASSERT(ixa->ixa_flags & IXAF_IPSEC_SECURE); in ipsec_out_select_sa()
12287 ASSERT((ixa->ixa_ipsec_policy != NULL) || in ipsec_out_select_sa()
12288 (ixa->ixa_ipsec_action != NULL)); in ipsec_out_select_sa()
12290 ap = ixa->ixa_ipsec_action; in ipsec_out_select_sa()
12292 pp = ixa->ixa_ipsec_policy; in ipsec_out_select_sa()
12304 if (ixa->ixa_ipsec_esp_sa == NULL) { in ipsec_out_select_sa()
12305 need_esp_acquire = !ipsec_outbound_sa(mp, ixa, in ipsec_out_select_sa()
12308 ASSERT(need_esp_acquire || ixa->ixa_ipsec_esp_sa != NULL); in ipsec_out_select_sa()
12312 if (ixa->ixa_ipsec_ah_sa == NULL) { in ipsec_out_select_sa()
12313 need_ah_acquire = !ipsec_outbound_sa(mp, ixa, in ipsec_out_select_sa()
12316 ASSERT(need_ah_acquire || ixa->ixa_ipsec_ah_sa != NULL); in ipsec_out_select_sa()
12334 if (ixa->ixa_ipsec_ah_sa != NULL) { in ipsec_out_select_sa()
12335 IPSA_REFRELE(ixa->ixa_ipsec_ah_sa); in ipsec_out_select_sa()
12336 ixa->ixa_ipsec_ah_sa = NULL; in ipsec_out_select_sa()
12338 if (ixa->ixa_ipsec_esp_sa != NULL) { in ipsec_out_select_sa()
12339 IPSA_REFRELE(ixa->ixa_ipsec_esp_sa); in ipsec_out_select_sa()
12340 ixa->ixa_ipsec_esp_sa = NULL; in ipsec_out_select_sa()
12343 sadb_acquire(mp, ixa, need_ah_acquire, need_esp_acquire); in ipsec_out_select_sa()
12363 ipsec_out_process(mblk_t *mp, ip_xmit_attr_t *ixa) in ipsec_out_process() argument
12365 ill_t *ill = ixa->ixa_nce->nce_ill; in ipsec_out_process()
12366 ip_stack_t *ipst = ixa->ixa_ipst; in ipsec_out_process()
12371 ASSERT(ixa->ixa_flags & IXAF_IPSEC_SECURE); in ipsec_out_process()
12373 ASSERT((ixa->ixa_ipsec_policy != NULL) || in ipsec_out_process()
12374 (ixa->ixa_ipsec_action != NULL)); in ipsec_out_process()
12385 ap = ixa->ixa_ipsec_action; in ipsec_out_process()
12387 pp = ixa->ixa_ipsec_policy; in ipsec_out_process()
12401 return (ip_output_post_ipsec(mp, ixa)); in ipsec_out_process()
12408 if ((ixa->ixa_flags & IXAF_IS_IPV4) && ap->ipa_want_se) { in ipsec_out_process()
12442 ixa->ixa_flags |= IXAF_IPSEC_TUNNEL; in ipsec_out_process()
12446 if (((ap->ipa_want_ah && (ixa->ixa_ipsec_ah_sa == NULL)) || in ipsec_out_process()
12447 (ap->ipa_want_esp && (ixa->ixa_ipsec_esp_sa == NULL))) && in ipsec_out_process()
12448 !ipsec_out_select_sa(mp, ixa)) in ipsec_out_process()
12456 ASSERT(ixa->ixa_ipsec_esp_sa != NULL); in ipsec_out_process()
12458 mp = ixa->ixa_ipsec_esp_sa->ipsa_output_func(mp, ixa); in ipsec_out_process()
12469 ASSERT(ixa->ixa_ipsec_ah_sa != NULL); in ipsec_out_process()
12471 mp = ixa->ixa_ipsec_ah_sa->ipsa_output_func(mp, ixa); in ipsec_out_process()
12484 return (ip_output_post_ipsec(mp, ixa)); in ipsec_out_process()
12974 ip_output_options(mblk_t *mp, ipha_t *ipha, ip_xmit_attr_t *ixa, ill_t *ill) in ip_output_options() argument
12983 ip_stack_t *ipst = ixa->ixa_ipst; in ip_output_options()
13017 ixa->ixa_tsl, in ip_output_options()