Lines Matching defs:ixa

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