Lines Matching refs:ixa

592 	ip_xmit_attr_t	*ixa = coa->coa_ixa;
594 ip_stack_t *ipst = ixa->ixa_ipst;
626 *i1 = (ixa->ixa_flags & IXAF_DONTROUTE) ?
724 pktinfo->ipi_ifindex = ixa->ixa_ifindex;
732 *i1 = (ixa->ixa_flags & IXAF_DONTFRAG) != 0;
744 if (ixa->ixa_flags & IXAF_NEXTHOP_SET) {
745 *(ipaddr_t *)ptr = ixa->ixa_nexthop_v4;
753 *(ipaddr_t *)ptr = ixa->ixa_multicast_ifaddr;
756 *(uchar_t *)ptr = ixa->ixa_multicast_ttl;
759 *ptr = (ixa->ixa_flags & IXAF_MULTICAST_LOOP) ? 1 : 0;
811 if (ixa->ixa_flags & IXAF_BROADCAST_TTL_SET)
812 *(uchar_t *)ptr = ixa->ixa_broadcast_ttl;
829 *i1 = ixa->ixa_multicast_ifindex;
832 *i1 = ixa->ixa_multicast_ttl;
835 *i1 = (ixa->ixa_flags & IXAF_MULTICAST_LOOP) ? 1 : 0;
888 pkti->ipi6_ifindex = ixa->ixa_ifindex;
901 if (ixa->ixa_flags & IXAF_NEXTHOP_SET)
906 sin6->sin6_addr = ixa->ixa_nexthop_v6;
933 return (ip_fill_mtuinfo(connp, ixa,
939 return (ip6_get_src_preferences(ixa, (uint32_t *)ptr));
941 *i1 = (ixa->ixa_flags & IXAF_DONTFRAG) != 0;
944 if (ixa->ixa_flags & IXAF_USE_MIN_MTU)
945 *i1 = ixa->ixa_use_min_mtu;
1048 ip_xmit_attr_t *ixa = coa->coa_ixa;
1105 ixa->ixa_flags |= IXAF_DONTROUTE;
1107 ixa->ixa_flags &= ~IXAF_DONTROUTE;
1143 ixa->ixa_zoneid = ALL_ZONES;
1145 ixa->ixa_zoneid = connp->conn_zoneid;
1178 ip_xmit_attr_t *ixa = coa->coa_ixa;
1283 * set the fields atomically. Not needed for ixa settings since
1284 * the caller has an exclusive copy of the ixa.
1327 ixa->ixa_multicast_ifindex = ifindex;
1328 ixa->ixa_multicast_ifaddr = addr;
1332 ixa->ixa_multicast_ttl = *invalp;
1337 ixa->ixa_flags |= IXAF_MULTICAST_LOOP;
1339 ixa->ixa_flags &= ~IXAF_MULTICAST_LOOP;
1397 ixa->ixa_ifindex = pktinfo->ipi_ifindex;
1404 ixa->ixa_flags |= (IXAF_DONTFRAG | IXAF_PMTU_IPV4_DF);
1405 ixa->ixa_flags &= ~IXAF_PMTU_DISCOVERY;
1407 ixa->ixa_flags &= ~(IXAF_DONTFRAG | IXAF_PMTU_IPV4_DF);
1408 ixa->ixa_flags |= IXAF_PMTU_DISCOVERY;
1442 ixa->ixa_nexthop_v4 = addr;
1444 ixa->ixa_flags |= IXAF_NEXTHOP_SET;
1446 ixa->ixa_flags &= ~IXAF_NEXTHOP_SET;
1451 ixa->ixa_ifindex = ifindex; /* Send */
1462 ixa->ixa_flags &= ~IXAF_VERIFY_SOURCE;
1464 ixa->ixa_flags |= IXAF_VERIFY_SOURCE;
1469 ixa->ixa_broadcast_ttl = *invalp;
1470 ixa->ixa_flags |= IXAF_BROADCAST_TTL_SET;
1500 ip_xmit_attr_t *ixa = coa->coa_ixa;
1594 ixa->ixa_flags |= IXAF_VERIFY_SOURCE;
1597 ixa->ixa_flags &= ~IXAF_VERIFY_SOURCE;
1688 * set the fields atomically. Not needed for ixa settings since
1689 * the caller has an exclusive copy of the ixa.
1695 ixa->ixa_multicast_ifindex = ifindex;
1713 ixa->ixa_multicast_ttl = IP_DEFAULT_MULTICAST_TTL;
1715 ixa->ixa_multicast_ttl = (uint8_t)*i1;
1721 ixa->ixa_flags |= IXAF_MULTICAST_LOOP;
1723 ixa->ixa_flags &= ~IXAF_MULTICAST_LOOP;
1741 ixa->ixa_ifindex = ifindex; /* Send */
1752 ixa->ixa_flags &= ~IXAF_VERIFY_SOURCE;
1754 ixa->ixa_flags |= IXAF_VERIFY_SOURCE;
1810 ixa->ixa_ifindex = 0;
1820 ixa->ixa_ifindex = pkti->ipi6_ifindex;
1832 ixa->ixa_flags &= ~IXAF_NO_TTL_CHANGE;
1837 ixa->ixa_flags |= IXAF_NO_TTL_CHANGE;
1860 ixa->ixa_flags &= ~IXAF_NEXTHOP_SET;
1864 ixa->ixa_nexthop_v6 = sin6->sin6_addr;
1865 if (!IN6_IS_ADDR_UNSPECIFIED(&ixa->ixa_nexthop_v6))
1866 ixa->ixa_flags |= IXAF_NEXTHOP_SET;
1868 ixa->ixa_flags &= ~IXAF_NEXTHOP_SET;
1944 ixa->ixa_flags |= IXAF_DONTFRAG;
1945 ixa->ixa_flags &= ~IXAF_PMTU_DISCOVERY;
1947 ixa->ixa_flags &= ~IXAF_DONTFRAG;
1948 ixa->ixa_flags |= IXAF_PMTU_DISCOVERY;
1955 ixa->ixa_flags |= IXAF_USE_MIN_MTU;
1956 ixa->ixa_use_min_mtu = *i1;
1982 error = ip6_set_src_preferences(ixa, *(uint32_t *)invalp);
2188 ip_xmit_attr_t *ixa = connp->conn_ixa;
2196 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2206 ixa->ixa_ip_hdr_length = ip_hdr_length;
2231 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2238 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF)
2291 conn_prepend_hdr(ip_xmit_attr_t *ixa, const ip_pkt_t *ipp,
2301 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2310 ixa->ixa_ip_hdr_length = ip_hdr_length;
2335 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2343 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF)
2350 ixa->ixa_ipst->ips_netstack);
2364 ip_hdr_length, ixa->ixa_ipst->ips_netstack);
2433 ip_attr_newdst(ip_xmit_attr_t *ixa)
2435 ixa->ixa_flags &= ~(IXAF_LOOPBACK_COPY | IXAF_NO_HW_CKSUM |
2447 ip_attr_nexthop(const ip_pkt_t *ipp, const ip_xmit_attr_t *ixa,
2454 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2496 ip_attr_connect(const conn_t *connp, ip_xmit_attr_t *ixa,
2516 if (ixa->ixa_flags & IXAF_IS_IPV4) {
2529 error = ip_set_destination_v4(&v4src, v4dst, v4nexthop, ixa,
2538 error = ip_set_destination_v6(&laddr, v6dst, v6nexthop, ixa,
2550 * Set any IPsec policy in ixa. Routine also looks at ULP
2553 ipsec_cache_outbound_policy(connp, v6src, v6dst, dstport, ixa);
2564 * conn_t's addresses and the ixa.
2574 ip_xmit_attr_t *ixa = connp->conn_ixa;
2583 ixa->ixa_flags |= IXAF_IS_IPV4;
2585 ixa->ixa_flags &= ~IXAF_IS_IPV4;
2591 ip_attr_newdst(ixa);
2604 error = ip_attr_connect(connp, ixa, &saddr, &faddr, &nexthop, fport,
2621 * TSOL Note: Any concurrent threads would pick a different ixa
2633 error = conn_update_label(connp, ixa,
2687 ixa->ixa_flags &= ~IXAF_LSO_CAPAB;
2689 ASSERT(ixa->ixa_ire != NULL);
2690 if (ixa->ixa_ipst->ips_ip_lso_outbound && (flags & IPDF_LSO) &&
2691 !(ixa->ixa_flags & IXAF_IPSEC_SECURE) &&
2692 !(ixa->ixa_ire->ire_type & (IRE_LOCAL | IRE_LOOPBACK)) &&
2693 !(ixa->ixa_ire->ire_flags & RTF_MULTIRT) &&
2694 (ixa->ixa_nce != NULL) &&
2695 ((ixa->ixa_flags & IXAF_IS_IPV4) ?
2696 ILL_LSO_TCP_IPV4_USABLE(ixa->ixa_nce->nce_ill) :
2697 ILL_LSO_TCP_IPV6_USABLE(ixa->ixa_nce->nce_ill))) {
2698 ixa->ixa_lso_capab = *ixa->ixa_nce->nce_ill->ill_lso_capab;
2699 ixa->ixa_flags |= IXAF_LSO_CAPAB;
2703 ixa->ixa_flags &= ~IXAF_ZCOPY_CAPAB;
2706 !(ixa->ixa_flags & IXAF_IPSEC_SECURE) &&
2707 !(ixa->ixa_ire->ire_type & (IRE_LOCAL | IRE_LOOPBACK)) &&
2708 !(ixa->ixa_ire->ire_flags & RTF_MULTIRT) &&
2709 (ixa->ixa_nce != NULL) &&
2710 ILL_ZCOPY_USABLE(ixa->ixa_nce->nce_ill)) {
2711 ixa->ixa_flags |= IXAF_ZCOPY_CAPAB;
2752 conn_update_label(const conn_t *connp, const ip_xmit_attr_t *ixa,
2763 err = tsol_compute_label_v4(ixa->ixa_tsl, ixa->ixa_zoneid,
2764 v4dst, opt_storage, ixa->ixa_ipst);
2775 "on ixa(3)",
2777 ip_xmit_attr_t *, ixa);
2787 err = tsol_compute_label_v6(ixa->ixa_tsl, ixa->ixa_zoneid,
2788 v6dst, opt_storage, ixa->ixa_ipst);
2808 "on ixa(3)",
2810 ip_xmit_attr_t *, ixa);
2888 * Cache things in the ixa without any refhold.