Lines Matching refs:ixa

3362     ip_xmit_attr_t *ixa, iulp_t *uinfo, uint32_t flags, uint_t mac_mode)
3367 zoneid_t zoneid = ixa->ixa_zoneid; /* Honors SO_ALLZONES */
3368 ip_stack_t *ipst = ixa->ixa_ipst;
3376 ASSERT(ixa->ixa_flags & IXAF_IS_IPV4);
3388 error = tsol_check_dest(ixa->ixa_tsl, &dst_addr, IPV4_VERSION,
3394 ip_xmit_attr_replace_tsl(ixa, tsl);
3404 ire = ip_select_route_v4(firsthop, *src_addrp, ixa,
3458 if (ixa->ixa_ire != NULL)
3459 ire_refrele_notr(ixa->ixa_ire);
3464 ixa->ixa_ire = ire;
3465 ixa->ixa_ire_generation = generation;
3483 if (ixa->ixa_dce != NULL)
3484 dce_refrele_notr(ixa->ixa_dce);
3489 ixa->ixa_dce = dce;
3490 ixa->ixa_dce_generation = generation;
3500 ixa->ixa_postfragfn = ip_postfrag_multirt_v4;
3501 ixa->ixa_flags |= IXAF_MULTIRT_MULTICAST;
3503 ixa->ixa_postfragfn = ire->ire_postfragfn;
3504 ixa->ixa_flags &= ~IXAF_MULTIRT_MULTICAST;
3511 ixa->ixa_ire_generation = IRE_GENERATION_VERIFY;
3513 if (ixa->ixa_nce != NULL)
3514 nce_refrele(ixa->ixa_nce);
3515 ixa->ixa_nce = nce;
3544 ixa->ixa_flags |= IXAF_SET_SOURCE;
3546 ixa->ixa_flags &= ~IXAF_SET_SOURCE;
3571 ixa->ixa_multicast_ifaddr, zoneid,
3593 ixa->ixa_src_generation = generation;
3601 nce = ixa->ixa_nce;
3604 ixa->ixa_nce = NULL;
3605 ixa->ixa_ire_generation = IRE_GENERATION_VERIFY;
3613 ixa->ixa_flags &= ~IXAF_PMTU_DISCOVERY;
3620 pmtu = ip_get_pmtu(ixa);
3621 ixa->ixa_fragsize = pmtu;
3623 if (ixa->ixa_flags & IXAF_VERIFY_PMTU)
3624 ixa->ixa_pmtu = pmtu;
3666 nce = ixa->ixa_nce;
3669 ixa->ixa_nce = NULL;
3670 ixa->ixa_ire_generation = IRE_GENERATION_VERIFY;
3710 ip_get_pmtu(ip_xmit_attr_t *ixa)
3712 ip_stack_t *ipst = ixa->ixa_ipst;
3718 ire = ixa->ixa_ire;
3719 dce = ixa->ixa_dce;
3720 nce = ixa->ixa_nce;
3727 ixa->ixa_flags &= ~IXAF_PMTU_DISCOVERY;
3734 if (ixa->ixa_flags & IXAF_PMTU_DISCOVERY) {
3735 ixa->ixa_flags |= IXAF_PMTU_IPV4_DF;
3737 ixa->ixa_flags &= ~IXAF_PMTU_IPV4_DF;
3738 if (!(ixa->ixa_flags & IXAF_IS_IPV4))
3766 if (ixa->ixa_flags & IXAF_PMTU_DISCOVERY) {
3772 ixa->ixa_flags |= IXAF_PMTU_TOO_SMALL;
3773 ixa->ixa_flags &= ~IXAF_PMTU_IPV4_DF;
3775 ixa->ixa_flags &= ~IXAF_PMTU_TOO_SMALL;
3776 ixa->ixa_flags |= IXAF_PMTU_IPV4_DF;
3779 ixa->ixa_flags &= ~IXAF_PMTU_TOO_SMALL;
3780 ixa->ixa_flags |= IXAF_PMTU_IPV4_DF;
3837 if (!(ixa->ixa_flags & IXAF_IS_IPV4)) {
3838 if (ixa->ixa_flags & IXAF_USE_MIN_MTU) {
3839 switch (ixa->ixa_use_min_mtu) {
3871 if (!(ixa->ixa_flags & IXAF_IS_IPV4)) {
3874 (ixa->ixa_flags & IXAF_MULTIRT_MULTICAST)) {
3876 ixa->ixa_flags |= IXAF_IPV6_ADD_FRAGHDR;
6029 /* Cache things in ixa without an extra refhold */
6516 ip_fill_mtuinfo(conn_t *connp, ip_xmit_attr_t *ixa, struct ip6_mtuinfo *mtuinfo)
6525 if (ixa->ixa_ire != NULL)
6526 pmtu = ip_get_pmtu(ixa);
6528 if (ixa->ixa_flags & IXAF_SCOPEID_SET)
6529 scopeid = ixa->ixa_scopeid;
11517 ipsec_out_extra_length(ip_xmit_attr_t *ixa)
11521 if (!(ixa->ixa_flags & IXAF_IPSEC_SECURE))
11524 a = ixa->ixa_ipsec_action;
11526 ASSERT(ixa->ixa_ipsec_policy != NULL);
11527 a = ixa->ixa_ipsec_policy->ipsp_act;
12121 ip_output_post_ipsec(mblk_t *mp, ip_xmit_attr_t *ixa)
12123 iaflags_t ixaflags = ixa->ixa_flags;
12147 if (ixa->ixa_ipsec_esp_sa != NULL) {
12148 IPSA_REFRELE(ixa->ixa_ipsec_esp_sa);
12149 ixa->ixa_ipsec_esp_sa = NULL;
12151 if (ixa->ixa_ipsec_ah_sa != NULL) {
12152 IPSA_REFRELE(ixa->ixa_ipsec_ah_sa);
12153 ixa->ixa_ipsec_ah_sa = NULL;
12157 if ((ixa->ixa_flags & IXAF_IPV6_ADD_FRAGHDR) ||
12158 pktlen > ixa->ixa_fragsize) {
12160 ASSERT(!(ixa->ixa_flags & IXAF_IPV6_ADD_FRAGHDR));
12165 return (ip_fragment_v4(mp, ixa->ixa_nce, ixa->ixa_flags,
12166 pktlen, ixa->ixa_fragsize,
12167 ixa->ixa_xmit_hint, ixa->ixa_zoneid,
12168 ixa->ixa_no_loop_zoneid, ixa->ixa_postfragfn,
12169 &ixa->ixa_cookie));
12171 mp = ip_fraghdr_add_v6(mp, ixa->ixa_ident, ixa);
12177 if (pktlen > ixa->ixa_fragsize) {
12178 return (ip_fragment_v6(mp, ixa->ixa_nce,
12179 ixa->ixa_flags, pktlen,
12180 ixa->ixa_fragsize, ixa->ixa_xmit_hint,
12181 ixa->ixa_zoneid, ixa->ixa_no_loop_zoneid,
12182 ixa->ixa_postfragfn, &ixa->ixa_cookie));
12186 return ((ixa->ixa_postfragfn)(mp, ixa->ixa_nce, ixa->ixa_flags,
12187 pktlen, ixa->ixa_xmit_hint, ixa->ixa_zoneid,
12188 ixa->ixa_no_loop_zoneid, NULL));
12246 ipsec_out_select_sa(mblk_t *mp, ip_xmit_attr_t *ixa)
12252 ASSERT(ixa->ixa_flags & IXAF_IPSEC_SECURE);
12253 ASSERT((ixa->ixa_ipsec_policy != NULL) ||
12254 (ixa->ixa_ipsec_action != NULL));
12256 ap = ixa->ixa_ipsec_action;
12258 pp = ixa->ixa_ipsec_policy;
12270 if (ixa->ixa_ipsec_esp_sa == NULL) {
12271 need_esp_acquire = !ipsec_outbound_sa(mp, ixa,
12274 ASSERT(need_esp_acquire || ixa->ixa_ipsec_esp_sa != NULL);
12278 if (ixa->ixa_ipsec_ah_sa == NULL) {
12279 need_ah_acquire = !ipsec_outbound_sa(mp, ixa,
12282 ASSERT(need_ah_acquire || ixa->ixa_ipsec_ah_sa != NULL);
12300 if (ixa->ixa_ipsec_ah_sa != NULL) {
12301 IPSA_REFRELE(ixa->ixa_ipsec_ah_sa);
12302 ixa->ixa_ipsec_ah_sa = NULL;
12304 if (ixa->ixa_ipsec_esp_sa != NULL) {
12305 IPSA_REFRELE(ixa->ixa_ipsec_esp_sa);
12306 ixa->ixa_ipsec_esp_sa = NULL;
12309 sadb_acquire(mp, ixa, need_ah_acquire, need_esp_acquire);
12329 ipsec_out_process(mblk_t *mp, ip_xmit_attr_t *ixa)
12331 ill_t *ill = ixa->ixa_nce->nce_ill;
12332 ip_stack_t *ipst = ixa->ixa_ipst;
12337 ASSERT(ixa->ixa_flags & IXAF_IPSEC_SECURE);
12339 ASSERT((ixa->ixa_ipsec_policy != NULL) ||
12340 (ixa->ixa_ipsec_action != NULL));
12351 ap = ixa->ixa_ipsec_action;
12353 pp = ixa->ixa_ipsec_policy;
12367 return (ip_output_post_ipsec(mp, ixa));
12374 if ((ixa->ixa_flags & IXAF_IS_IPV4) && ap->ipa_want_se) {
12408 ixa->ixa_flags |= IXAF_IPSEC_TUNNEL;
12412 if (((ap->ipa_want_ah && (ixa->ixa_ipsec_ah_sa == NULL)) ||
12413 (ap->ipa_want_esp && (ixa->ixa_ipsec_esp_sa == NULL))) &&
12414 !ipsec_out_select_sa(mp, ixa))
12422 ASSERT(ixa->ixa_ipsec_esp_sa != NULL);
12424 mp = ixa->ixa_ipsec_esp_sa->ipsa_output_func(mp, ixa);
12435 ASSERT(ixa->ixa_ipsec_ah_sa != NULL);
12437 mp = ixa->ixa_ipsec_ah_sa->ipsa_output_func(mp, ixa);
12450 return (ip_output_post_ipsec(mp, ixa));
12940 ip_output_options(mblk_t *mp, ipha_t *ipha, ip_xmit_attr_t *ixa, ill_t *ill)
12949 ip_stack_t *ipst = ixa->ixa_ipst;
12983 ixa->ixa_tsl,