/illumos-gate/usr/src/uts/common/inet/ip/ |
H A D | ip_attr.c | 109 #define IXA_REFRELE(ixa) \ argument 111 if (atomic_dec_32_nv(&(ixa)->ixa_refcnt) == 0) \ 112 ixa_inactive(ixa); \ 115 #define IXA_REFHOLD(ixa) \ argument 117 ASSERT3U((ixa)->ixa_refcnt, !=, 0); \ 118 atomic_inc_32(&(ixa)->ixa_refcnt); \ 236 ip_xmit_attr_to_mblk(ip_xmit_attr_t *ixa) in ip_xmit_attr_to_mblk() argument 240 nce_t *nce = ixa->ixa_nce; in ip_xmit_attr_to_mblk() 253 ixm->ixm_flags = ixa->ixa_flags; in ip_xmit_attr_to_mblk() 254 ixm->ixm_stackid = ixa->ixa_ipst->ips_netstack->netstack_stackid; in ip_xmit_attr_to_mblk() [all …]
|
H A D | ip_output.c | 137 conn_ip_output(mblk_t *mp, ip_xmit_attr_t *ixa) in conn_ip_output() argument 139 iaflags_t ixaflags = ixa->ixa_flags; in conn_ip_output() 144 ip_stack_t *ipst = ixa->ixa_ipst; in conn_ip_output() 149 ASSERT(ixa->ixa_ire != NULL); in conn_ip_output() 151 ASSERT(ixa->ixa_dce != NULL); /* Could be default dce */ in conn_ip_output() 154 ASSERT(ixa->ixa_curthread == NULL); in conn_ip_output() 155 ixa->ixa_curthread = curthread; in conn_ip_output() 163 ire = ixa->ixa_ire; in conn_ip_output() 192 if (ire->ire_generation != ixa->ixa_ire_generation) { in conn_ip_output() 193 error = ip_verify_ire(mp, ixa); in conn_ip_output() [all …]
|
H A D | ip6_output.c | 107 ip_output_simple_v6(mblk_t *mp, ip_xmit_attr_t *ixa) in ip_output_simple_v6() argument 118 iaflags_t ixaflags = ixa->ixa_flags; in ip_output_simple_v6() 119 ip_stack_t *ipst = ixa->ixa_ipst; in ip_output_simple_v6() 129 ASSERT(ixa->ixa_nce == NULL); in ip_output_simple_v6() 131 ixa->ixa_pktlen = ntohs(ip6h->ip6_plen) + IPV6_HDR_LEN; in ip_output_simple_v6() 132 ASSERT(ixa->ixa_pktlen == msgdsize(mp)); in ip_output_simple_v6() 133 if (!ip_hdr_length_nexthdr_v6(mp, ip6h, &ixa->ixa_ip_hdr_length, in ip_output_simple_v6() 142 ixa->ixa_protocol = *nexthdrp; in ip_output_simple_v6() 156 ire = ip_select_route_v6(&firsthop, ip6h->ip6_src, ixa, NULL, &setsrc, in ip_output_simple_v6() 171 ixa->ixa_fragsize = IP_MAXPACKET; in ip_output_simple_v6() [all …]
|
H A D | icmp.c | 132 sin6_t *sin6, cred_t *cr, pid_t pid, ip_xmit_attr_t *ixa); 729 ip_xmit_attr_t *ixa; in rawip_do_connect() local 798 ixa = conn_get_ixa(connp, B_FALSE); in rawip_do_connect() 799 if (ixa == NULL) in rawip_do_connect() 810 ixa_refrele(ixa); in rawip_do_connect() 868 ASSERT(!(ixa->ixa_free_flags & IXA_FREE_CRED)); in rawip_do_connect() 869 ixa->ixa_cred = cr; in rawip_do_connect() 870 ixa->ixa_cpid = pid; in rawip_do_connect() 873 ip_xmit_attr_restore_tsl(ixa, ixa->ixa_cred); in rawip_do_connect() 877 ixa->ixa_flags |= IXAF_SCOPEID_SET; in rawip_do_connect() [all …]
|
H A D | conn_opt.c | 618 ip_xmit_attr_t *ixa = coa->coa_ixa; in conn_opt_get() local 620 ip_stack_t *ipst = ixa->ixa_ipst; in conn_opt_get() 652 *i1 = (ixa->ixa_flags & IXAF_DONTROUTE) ? in conn_opt_get() 750 pktinfo->ipi_ifindex = ixa->ixa_ifindex; in conn_opt_get() 758 *i1 = (ixa->ixa_flags & IXAF_DONTFRAG) != 0; in conn_opt_get() 770 if (ixa->ixa_flags & IXAF_NEXTHOP_SET) { in conn_opt_get() 771 *(ipaddr_t *)ptr = ixa->ixa_nexthop_v4; in conn_opt_get() 779 *(ipaddr_t *)ptr = ixa->ixa_multicast_ifaddr; in conn_opt_get() 782 *(uchar_t *)ptr = ixa->ixa_multicast_ttl; in conn_opt_get() 785 *ptr = (ixa->ixa_flags & IXAF_MULTICAST_LOOP) ? 1 : 0; in conn_opt_get() [all …]
|
H A D | ip_sadb.c | 97 ipsec_getassocbyconn(isaf_t *bucket, ip_xmit_attr_t *ixa, uint32_t *src, in ipsec_getassocbyconn() argument 103 boolean_t tunnel_mode = (ixa->ixa_flags & IXAF_IPSEC_TUNNEL); in ipsec_getassocbyconn() 106 ipsec_policy_t *pp = ixa->ixa_ipsec_policy; in ipsec_getassocbyconn() 107 ipsec_action_t *actlist = ixa->ixa_ipsec_action; in ipsec_getassocbyconn() 109 ipsec_latch_t *ipl = ixa->ixa_ipsec_latch; in ipsec_getassocbyconn() 111 sa_family_t inaf = ixa->ixa_ipsec_inaf; in ipsec_getassocbyconn() 112 uint32_t *insrc = ixa->ixa_ipsec_insrc; in ipsec_getassocbyconn() 113 uint32_t *indst = ixa->ixa_ipsec_indst; in ipsec_getassocbyconn() 114 uint8_t insrcpfx = ixa->ixa_ipsec_insrcpfx; in ipsec_getassocbyconn() 115 uint8_t indstpfx = ixa->ixa_ipsec_indstpfx; in ipsec_getassocbyconn() [all …]
|
H A D | ip_ftable.c | 1063 ip_xmit_attr_t *ixa, uint_t *generationp, in6_addr_t *setsrcp, in ip_select_route() argument 1070 ip_stack_t *ipst = ixa->ixa_ipst; in ip_select_route() 1073 iaflags_t ixaflags = ixa->ixa_flags; in ip_select_route() 1077 boolean_t isv6 = !(ixa->ixa_flags & IXAF_IS_IPV4); in ip_select_route() 1086 (ixa->ixa_flags & IXAF_VERIFY_SOURCE)); in ip_select_route() 1102 if (ixa->ixa_multicast_ifindex != 0) { in ip_select_route() 1103 ill = ill_lookup_on_ifindex(ixa->ixa_multicast_ifindex, in ip_select_route() 1107 ASSERT(ixa->ixa_scopeid != 0); in ip_select_route() 1108 ill = ill_lookup_on_ifindex(ixa->ixa_scopeid, in ip_select_route() 1110 } else if (ixa->ixa_ifindex != 0) { in ip_select_route() [all …]
|
H A D | spd.c | 4024 ipsec_in_to_out(ip_recv_attr_t *ira, ip_xmit_attr_t *ixa, mblk_t *data_mp, in ipsec_in_to_out() argument 4029 netstack_t *ns = ixa->ixa_ipst->ips_netstack; in ipsec_in_to_out() 4050 ixa->ixa_ipsec_action = reflect_action; in ipsec_in_to_out() 4057 ixa->ixa_ipsec_src_port = sel.ips_local_port; in ipsec_in_to_out() 4058 ixa->ixa_ipsec_dst_port = sel.ips_remote_port; in ipsec_in_to_out() 4059 ixa->ixa_ipsec_proto = sel.ips_protocol; in ipsec_in_to_out() 4060 ixa->ixa_ipsec_icmp_type = sel.ips_icmp_type; in ipsec_in_to_out() 4061 ixa->ixa_ipsec_icmp_code = sel.ips_icmp_code; in ipsec_in_to_out() 4070 ixa->ixa_flags |= IXAF_IPSEC_SECURE; in ipsec_in_to_out() 4072 ixa->ixa_flags |= IXAF_NO_IPSEC; in ipsec_in_to_out() [all …]
|
H A D | ipsecesp.c | 1577 esp_do_outbound_ah(mblk_t *data_mp, ip_xmit_attr_t *ixa) in esp_do_outbound_ah() argument 1581 ap = ixa->ixa_ipsec_action; in esp_do_outbound_ah() 1583 ipsec_policy_t *pp = ixa->ixa_ipsec_policy; in esp_do_outbound_ah() 1594 if (ixa->ixa_ipsec_ah_sa == NULL) { in esp_do_outbound_ah() 1595 if (!ipsec_outbound_sa(data_mp, ixa, IPPROTO_AH)) { in esp_do_outbound_ah() 1596 sadb_acquire(data_mp, ixa, B_TRUE, B_FALSE); in esp_do_outbound_ah() 1600 ASSERT(ixa->ixa_ipsec_ah_sa != NULL); in esp_do_outbound_ah() 1602 data_mp = ixa->ixa_ipsec_ah_sa->ipsa_output_func(data_mp, ixa); in esp_do_outbound_ah() 2149 esp_submit_req_outbound(mblk_t *data_mp, ip_xmit_attr_t *ixa, ipsa_t *assoc, in esp_submit_req_outbound() argument 2165 netstack_t *ns = ixa->ixa_ipst->ips_netstack; in esp_submit_req_outbound() [all …]
|
H A D | ip6.c | 1958 const in6_addr_t *firsthop, ip_xmit_attr_t *ixa, iulp_t *uinfo, in ip_set_destination_v6() argument 1964 zoneid_t zoneid = ixa->ixa_zoneid; /* Honors SO_ALLZONES */ in ip_set_destination_v6() 1965 ip_stack_t *ipst = ixa->ixa_ipst; in ip_set_destination_v6() 1976 ASSERT(!(ixa->ixa_flags & IXAF_IS_IPV4)); in ip_set_destination_v6() 1988 error = tsol_check_dest(ixa->ixa_tsl, dst_addr, IPV6_VERSION, in ip_set_destination_v6() 1994 ip_xmit_attr_replace_tsl(ixa, tsl); in ip_set_destination_v6() 2004 ire = ip_select_route_v6(firsthop, *src_addrp, ixa, &generation, in ip_set_destination_v6() 2058 if (ixa->ixa_ire != NULL) in ip_set_destination_v6() 2059 ire_refrele_notr(ixa->ixa_ire); in ip_set_destination_v6() 2064 ixa->ixa_ire = ire; in ip_set_destination_v6() [all …]
|
H A D | ip.c | 3390 ip_xmit_attr_t *ixa, iulp_t *uinfo, uint32_t flags, uint_t mac_mode) in ip_set_destination_v4() argument 3395 zoneid_t zoneid = ixa->ixa_zoneid; /* Honors SO_ALLZONES */ in ip_set_destination_v4() 3396 ip_stack_t *ipst = ixa->ixa_ipst; in ip_set_destination_v4() 3404 ASSERT(ixa->ixa_flags & IXAF_IS_IPV4); in ip_set_destination_v4() 3416 error = tsol_check_dest(ixa->ixa_tsl, &dst_addr, IPV4_VERSION, in ip_set_destination_v4() 3422 ip_xmit_attr_replace_tsl(ixa, tsl); in ip_set_destination_v4() 3432 ire = ip_select_route_v4(firsthop, *src_addrp, ixa, in ip_set_destination_v4() 3486 if (ixa->ixa_ire != NULL) in ip_set_destination_v4() 3487 ire_refrele_notr(ixa->ixa_ire); in ip_set_destination_v4() 3492 ixa->ixa_ire = ire; in ip_set_destination_v4() [all …]
|
H A D | ipsecah.c | 992 ah_outbound_finish(mblk_t *data_mp, ip_xmit_attr_t *ixa) in ah_outbound_finish() argument 994 netstack_t *ns = ixa->ixa_ipst->ips_netstack; in ah_outbound_finish() 997 ill_t *ill = ixa->ixa_nce->nce_ill; in ah_outbound_finish() 999 if (!ipsec_outbound_sa(data_mp, ixa, IPPROTO_AH)) { in ah_outbound_finish() 1008 data_mp = ah_outbound(data_mp, ixa); in ah_outbound_finish() 1012 (void) ip_output_post_ipsec(data_mp, ixa); in ah_outbound_finish() 2809 ah_submit_req_outbound(mblk_t *phdr_mp, ip_xmit_attr_t *ixa, in ah_submit_req_outbound() argument 2818 ill_t *ill = ixa->ixa_nce->nce_ill; in ah_submit_req_outbound() 2828 if ((mp = ip_xmit_attr_to_mblk(ixa)) == NULL || in ah_submit_req_outbound() 2857 ASSERT(ixa->ixa_ipsec_ah_sa != NULL); in ah_submit_req_outbound() [all …]
|
H A D | ip_dce.c | 398 dce_lookup_pkt(mblk_t *mp, ip_xmit_attr_t *ixa, uint_t *generationp) in dce_lookup_pkt() argument 400 if (ixa->ixa_flags & IXAF_IS_IPV4) { in dce_lookup_pkt() 409 return (dce_lookup_v4(final_dst, ixa->ixa_ipst, generationp)); in dce_lookup_pkt() 421 if (IN6_IS_ADDR_LINKSCOPE(&final_dst) && ixa->ixa_nce != NULL) { in dce_lookup_pkt() 422 ifindex = ixa->ixa_nce->nce_common->ncec_ill-> in dce_lookup_pkt() 425 return (dce_lookup_v6(&final_dst, ifindex, ixa->ixa_ipst, in dce_lookup_pkt()
|
H A D | sadb.c | 5442 sadb_acquire(mblk_t *datamp, ip_xmit_attr_t *ixa, boolean_t need_ah, argument 5453 ipsec_policy_t *pp = ixa->ixa_ipsec_policy; 5454 ipsec_action_t *ap = ixa->ixa_ipsec_action; 5459 boolean_t tunnel_mode = (ixa->ixa_flags & IXAF_IPSEC_TUNNEL) != 0; 5461 netstack_t *ns = ixa->ixa_ipst->ips_netstack; 5481 sp = (ixa->ixa_flags & IXAF_IS_IPV4) ? &spp->s_v4 : &spp->s_v6; 5484 tsl = ixa->ixa_tsl; 5493 unique_id = SA_FORM_UNIQUE_ID(ixa); 5510 ASSERT(ixa->ixa_flags & IXAF_IS_IPV4); 5517 ASSERT(!(ixa->ixa_flags & IXAF_IS_IPV4)); [all …]
|
/illumos-gate/usr/src/uts/common/inet/iptun/ |
H A D | iptun.c | 709 ip_xmit_attr_t *ixa; in iptun_bind() local 719 ixa = conn_get_ixa(connp, B_FALSE); in iptun_bind() 720 if (ixa == NULL) in iptun_bind() 724 ixa->ixa_flags |= IXAF_PMTU_DISCOVERY; in iptun_bind() 742 ixa->ixa_flags |= IXAF_IS_IPV4; in iptun_bind() 753 ixa->ixa_flags &= ~IXAF_IS_IPV4; in iptun_bind() 766 ixa->ixa_flags |= IXAF_IS_IPV4; in iptun_bind() 782 ip_attr_newdst(ixa); in iptun_bind() 794 ixa->ixa_flags |= IXAF_DONTFRAG | IXAF_PMTU_IPV4_DF; in iptun_bind() 797 error = ip_attr_connect(connp, ixa, &connp->conn_saddr_v6, in iptun_bind() [all …]
|
/illumos-gate/usr/src/uts/common/inet/sctp/ |
H A D | sctp_conn.c | 147 ip_xmit_attr_t *ixa; in sctp_conn_request() local 242 ip_xmit_attr_t *ixa = econnp->conn_ixa; in sctp_conn_request() local 247 if (ixa->ixa_free_flags & IXA_FREE_TSL) { in sctp_conn_request() 248 ASSERT(ixa->ixa_tsl != NULL); in sctp_conn_request() 249 label_rele(ixa->ixa_tsl); in sctp_conn_request() 250 ixa->ixa_free_flags &= ~IXA_FREE_TSL; in sctp_conn_request() 251 ixa->ixa_tsl = NULL; in sctp_conn_request() 268 ip_xmit_attr_replace_tsl(ixa, ira->ira_tsl); in sctp_conn_request() 270 ixa->ixa_tsl = crgetlabel(econnp->conn_cred); in sctp_conn_request() 283 ixa = eager->sctp_current->sf_ixa; in sctp_conn_request() [all …]
|
H A D | sctp_error.c | 103 ip_xmit_attr_t *ixa = fp->sf_ixa; in sctp_user_abort() local 156 sctp_set_iplen(sctp, mp, ixa); in sctp_user_abort() 157 ASSERT(ixa->ixa_ire != NULL); in sctp_user_abort() 158 ASSERT(ixa->ixa_cred != NULL); in sctp_user_abort() 160 (void) conn_ip_output(mp, ixa); in sctp_user_abort() 188 ip_xmit_attr_t *ixa; in sctp_send_abort() local 266 ixa = conn_get_ixa_exclusive(connp); in sctp_send_abort() 267 if (ixa == NULL) { in sctp_send_abort() 271 ixa->ixa_flags &= ~IXAF_VERIFY_PMTU; in sctp_send_abort() 273 ixa->ixa_pktlen = ahlen + alen; in sctp_send_abort() [all …]
|
H A D | sctp_cookie.c | 502 ip_xmit_attr_t *ixa = NULL; in sctp_send_initack() local 607 ixa = conn_get_ixa_exclusive(connp); in sctp_send_initack() 608 if (ixa == NULL) { in sctp_send_initack() 613 ixa->ixa_flags &= ~IXAF_VERIFY_PMTU; in sctp_send_initack() 616 ixa->ixa_flags |= IXAF_IS_IPV4; in sctp_send_initack() 618 ixa->ixa_flags &= ~IXAF_IS_IPV4; in sctp_send_initack() 635 if (ixa->ixa_free_flags & IXA_FREE_TSL) { in sctp_send_initack() 636 ASSERT(ixa->ixa_tsl != NULL); in sctp_send_initack() 637 label_rele(ixa->ixa_tsl); in sctp_send_initack() 638 ixa->ixa_free_flags &= ~IXA_FREE_TSL; in sctp_send_initack() [all …]
|
H A D | sctp.c | 970 ip_xmit_attr_t *ixa = fp->sf_ixa; in sctp_update_pmtu() local 979 pmtu = ip_get_pmtu(ixa); in sctp_update_pmtu() 987 if (ixa->ixa_flags & IXAF_IS_IPV4) in sctp_update_pmtu() 1013 ixa->ixa_fragsize = ixa->ixa_pmtu = pmtu; in sctp_update_pmtu() 1024 ixa->ixa_flags |= IXAF_PMTU_TOO_SMALL; in sctp_update_pmtu() 1026 if (ixa->ixa_flags & IXAF_PMTU_TOO_SMALL) in sctp_update_pmtu() 1027 ixa->ixa_flags &= ~(IXAF_DONTFRAG | IXAF_PMTU_IPV4_DF); in sctp_update_pmtu() 1034 if (ixa->ixa_flags & IXAF_IS_IPV4) { in sctp_update_pmtu() 1035 if (!(ixa->ixa_flags & IXAF_PMTU_IPV4_DF)) { in sctp_update_pmtu() 1052 sctp_notify(void *arg, ip_xmit_attr_t *ixa, ixa_notify_type_t ntype, in sctp_notify() argument [all …]
|
H A D | sctp_common.c | 390 sctp_set_iplen(sctp_t *sctp, mblk_t *mp, ip_xmit_attr_t *ixa) in sctp_set_iplen() argument 402 ixa->ixa_pktlen = sum; in sctp_set_iplen() 406 ixa->ixa_ip_hdr_length = sctp->sctp_ip_hdr_len; in sctp_set_iplen() 410 ixa->ixa_ip_hdr_length = sctp->sctp_ip_hdr6_len; in sctp_set_iplen() 471 ip_xmit_attr_t *ixa = connp->conn_ixa; in sctp_add_faddr() local 474 ASSERT(ixa->ixa_tsl != NULL); in sctp_add_faddr() 492 err = tsol_check_dest(ixa->ixa_tsl, in sctp_add_faddr() 496 err = tsol_check_dest(ixa->ixa_tsl, in sctp_add_faddr() 504 ip_xmit_attr_replace_tsl(ixa, effective_tsl); in sctp_add_faddr()
|
/illumos-gate/usr/src/uts/common/inet/udp/ |
H A D | udp.c | 169 pid_t pid, ip_xmit_attr_t *ixa); 172 ip_xmit_attr_t *ixa); 1012 ip_xmit_attr_t *ixa; in udp_icmp_input() local 1020 ixa = conn_get_ixa(connp, B_FALSE); in udp_icmp_input() 1021 if (ixa == NULL || ixa->ixa_ire == NULL) { in udp_icmp_input() 1026 if (ixa != NULL) in udp_icmp_input() 1027 ixa_refrele(ixa); in udp_icmp_input() 1030 (void) ip_get_pmtu(ixa); in udp_icmp_input() 1034 if (ixa->ixa_flags & IXAF_PMTU_IPV4_DF) { in udp_icmp_input() 1042 ixa_refrele(ixa); in udp_icmp_input() [all …]
|
/illumos-gate/usr/src/uts/common/inet/tcp/ |
H A D | tcp_output.c | 1116 ip_xmit_attr_t *ixa; in tcp_output() local 1302 ixa = connp->conn_ixa; in tcp_output() 1303 ixa->ixa_pktlen = plen; in tcp_output() 1305 if (ixa->ixa_flags & IXAF_IS_IPV4) { in tcp_output() 1370 tcpha = (tcpha_t *)(rptr + ixa->ixa_ip_hdr_length); in tcp_output() 1775 ip_xmit_attr_t *ixa = econnp->conn_ixa; in tcp_send_synack() local 1789 ixa->ixa_pktlen = msgdsize(mp); in tcp_send_synack() 1790 (void) conn_ip_output(mp, ixa); in tcp_send_synack() 1810 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_send() local 2017 ixa->ixa_pktlen = len; in tcp_send() [all …]
|
H A D | tcp.c | 291 static void tcp_update_lso(tcp_t *tcp, ip_xmit_attr_t *ixa); 2502 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_update_pmtu() local 2515 pmtu = ip_get_pmtu(ixa); in tcp_update_pmtu() 2516 ixaflags = ixa->ixa_flags; in tcp_update_pmtu() 2542 ixa->ixa_fragsize = ixa->ixa_pmtu = pmtu; in tcp_update_pmtu() 2569 ixa->ixa_flags = ixaflags; in tcp_update_pmtu() 3209 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_zcopy_check() local 3215 else if ((do_tcpzcopy == 1) && (ixa->ixa_flags & IXAF_ZCOPY_CAPAB)) in tcp_zcopy_check() 3221 ixa->ixa_flags |= IXAF_VERIFY_ZCOPY; in tcp_zcopy_check() 3226 ixa->ixa_flags &= ~IXAF_VERIFY_ZCOPY; in tcp_zcopy_check() [all …]
|
H A D | tcp_bind.c | 536 ip_xmit_attr_t *ixa = connp->conn_ixa; in tcp_bind_check() local 618 ixa->ixa_flags |= IXAF_SCOPEID_SET; in tcp_bind_check() 619 ixa->ixa_scopeid = scopeid; in tcp_bind_check() 622 ixa->ixa_flags &= ~IXAF_SCOPEID_SET; in tcp_bind_check()
|
/illumos-gate/usr/src/uts/common/inet/ |
H A D | sadb.h | 611 #define SA_FORM_UNIQUE_ID(ixa) \ argument 612 SA_UNIQUE_ID((ixa)->ixa_ipsec_src_port, (ixa)->ixa_ipsec_dst_port, \ 613 (((ixa)->ixa_flags & IXAF_IPSEC_TUNNEL) ? \ 614 ((ixa)->ixa_ipsec_inaf == AF_INET6 ? \ 616 (ixa)->ixa_ipsec_proto), \ 617 (((ixa)->ixa_flags & IXAF_IPSEC_TUNNEL) ? \ 618 (ixa)->ixa_ipsec_proto : 0))
|