Lines Matching refs:ira

197 icmp_inbound_v6(mblk_t *mp, ip_recv_attr_t *ira)  in icmp_inbound_v6()  argument
203 ill_t *ill = ira->ira_ill; in icmp_inbound_v6()
220 if (!(ira->ira_flags & IRAF_L2SRC_SET)) in icmp_inbound_v6()
221 ip_setl2src(mp, ira, ira->ira_rill); in icmp_inbound_v6()
223 ip_hdr_length = ira->ira_ip_hdr_length; in icmp_inbound_v6()
225 if (ira->ira_pktlen < (ip_hdr_length + ICMP6_MINLEN)) { in icmp_inbound_v6()
231 ip6h = ip_pullup(mp, ip_hdr_length + ICMP6_MINLEN, ira); in icmp_inbound_v6()
298 icmp_send_reply_v6(mp, ip6h, icmp6, ira); in icmp_inbound_v6()
315 ndp_input(mp, ira); in icmp_inbound_v6()
321 ndp_input(mp, ira); in icmp_inbound_v6()
342 mp = mld_input(mp, ira); in icmp_inbound_v6()
375 if (ip_pullup(mp, -1, ira) == NULL) { in icmp_inbound_v6()
404 if (!icmp_inbound_verify_v6(mp, icmp6, ira)) { in icmp_inbound_v6()
411 icmp_redirect_v6(mp, ip6h, (nd_redirect_t *)icmp6, ira); in icmp_inbound_v6()
415 icmp_inbound_too_big_v6(icmp6, ira); in icmp_inbound_v6()
418 icmp_inbound_error_fanout_v6(mp, icmp6, ira); in icmp_inbound_v6()
433 ip_recv_attr_t *ira) in icmp_send_reply_v6() argument
435 uint_t ip_hdr_length = ira->ira_ip_hdr_length; in icmp_send_reply_v6()
436 ill_t *ill = ira->ira_ill; in icmp_send_reply_v6()
479 ixas.ixa_zoneid = ira->ira_zoneid; in icmp_send_reply_v6()
482 ixas.ixa_tsl = ira->ira_tsl; /* Behave as a multi-level responder */ in icmp_send_reply_v6()
487 if (!(ira->ira_flags & IRAF_IPSEC_SECURE)) { in icmp_send_reply_v6()
495 if (!ipsec_in_to_out(ira, &ixas, mp, NULL, ip6h)) { in icmp_send_reply_v6()
511 if (ira->ira_flags & IRAF_MULTIBROADCAST) { in icmp_send_reply_v6()
538 icmp_inbound_verify_v6(mblk_t *mp, icmp6_t *icmp6, ip_recv_attr_t *ira) in icmp_inbound_verify_v6() argument
540 ill_t *ill = ira->ira_ill; in icmp_inbound_verify_v6()
609 !connp->conn_verifyicmp(connp, tcpha, NULL, icmp6, ira)) { in icmp_inbound_verify_v6()
671 icmp_inbound_too_big_v6(icmp6_t *icmp6, ip_recv_attr_t *ira) in icmp_inbound_too_big_v6() argument
675 ill_t *ill = ira->ira_ill; /* Upper ill if IPMP */ in icmp_inbound_too_big_v6()
765 icmp_inbound_error_fanout_v6(mblk_t *mp, icmp6_t *icmp6, ip_recv_attr_t *ira) in icmp_inbound_error_fanout_v6() argument
776 ill_t *ill = ira->ira_ill; /* Upper in the case of IPMP */ in icmp_inbound_error_fanout_v6()
788 ira->ira_protocol = nexthdr; in icmp_inbound_error_fanout_v6()
806 ira->ira_flags |= IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
807 ip_fanout_udp_multi_v6(mp, &rip6h, up[0], up[1], ira); in icmp_inbound_error_fanout_v6()
808 ira->ira_flags &= ~IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
829 (ira->ira_flags & IRAF_IPSEC_SECURE)) { in icmp_inbound_error_fanout_v6()
831 NULL, ip6h, ira); in icmp_inbound_error_fanout_v6()
841 ira->ira_flags |= IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
844 connp->conn_recvicmp, connp, ira, SQ_FILL, in icmp_inbound_error_fanout_v6()
848 ill_t *rill = ira->ira_rill; in icmp_inbound_error_fanout_v6()
850 ira->ira_ill = ira->ira_rill = NULL; in icmp_inbound_error_fanout_v6()
851 (connp->conn_recv)(connp, mp, NULL, ira); in icmp_inbound_error_fanout_v6()
853 ira->ira_ill = ill; in icmp_inbound_error_fanout_v6()
854 ira->ira_rill = rill; in icmp_inbound_error_fanout_v6()
856 ira->ira_flags &= ~IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
866 ira->ira_flags |= IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
867 ip_fanout_sctp(mp, NULL, &rip6h, ports, ira); in icmp_inbound_error_fanout_v6()
868 ira->ira_flags &= ~IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
874 ip_proto_not_sup(mp, ira); in icmp_inbound_error_fanout_v6()
879 mp = ipsecesp_icmp_error(mp, ira); in icmp_inbound_error_fanout_v6()
881 mp = ipsecah_icmp_error(mp, ira); in icmp_inbound_error_fanout_v6()
908 if (!icmp_inbound_verify_v6(mp, icmp6, ira)) { in icmp_inbound_error_fanout_v6()
913 icmp_inbound_error_fanout_v6(mp, icmp6, ira); in icmp_inbound_error_fanout_v6()
964 if (!icmp_inbound_verify_v6(mp, icmp6, ira)) { in icmp_inbound_error_fanout_v6()
973 icmp_inbound_error_fanout_v6(mp, icmp6, ira); in icmp_inbound_error_fanout_v6()
981 ira->ira_flags |= IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
982 connp->conn_recvicmp(connp, mp, NULL, ira); in icmp_inbound_error_fanout_v6()
984 ira->ira_flags &= ~IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
993 ira->ira_flags |= IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
994 ASSERT(ira->ira_protocol == nexthdr); in icmp_inbound_error_fanout_v6()
995 ip_fanout_proto_v6(mp, &rip6h, ira); in icmp_inbound_error_fanout_v6()
996 ira->ira_flags &= ~IRAF_ICMP_ERROR; in icmp_inbound_error_fanout_v6()
1014 ip_recv_attr_t *ira) in icmp_redirect_v6() argument
1027 ill_t *ill = ira->ira_rill; in icmp_redirect_v6()
1028 ill_t *rill = ira->ira_rill; in icmp_redirect_v6()
1045 ASSERT(rill != ira->ira_rill); in icmp_redirect_v6()
1246 if (rill != ira->ira_rill) in icmp_redirect_v6()
1262 const in6_addr_t *v6src_ptr, ip_recv_attr_t *ira) in icmp_pkt_v6() argument
1271 ill_t *ill = ira->ira_ill; in icmp_pkt_v6()
1279 ixas.ixa_zoneid = ira->ira_zoneid; in icmp_pkt_v6()
1284 ixas.ixa_tsl = ira->ira_tsl; /* Behave as a multi-level responder */ in icmp_pkt_v6()
1299 if (ira->ira_flags & IRAF_IPSEC_SECURE) { in icmp_pkt_v6()
1308 if (!ipsec_in_to_out(ira, &ixas, mp, NULL, ip6h)) { in icmp_pkt_v6()
1338 (IRE_LOCAL|IRE_LOOPBACK), ill, ira->ira_zoneid, NULL, in icmp_pkt_v6()
1484 icmp_pkt_err_ok_v6(mblk_t *mp, boolean_t mcast_ok, ip_recv_attr_t *ira) in icmp_pkt_err_ok_v6() argument
1486 ill_t *ill = ira->ira_ill; in icmp_pkt_err_ok_v6()
1495 llbcast = (ira->ira_flags & in icmp_pkt_err_ok_v6()
1543 if (is_system_labeled() && !tsol_can_reply_error(mp, ira)) { in icmp_pkt_err_ok_v6()
1567 ip_recv_attr_t *ira) in ip_send_potential_redirect_v6() argument
1569 ill_t *ill = ira->ira_ill; in ip_send_potential_redirect_v6()
1620 icmp_send_redirect_v6(mp1, v6targ, &ip6h->ip6_dst, ira); in ip_send_potential_redirect_v6()
1634 ip_recv_attr_t *ira) in icmp_send_redirect_v6() argument
1648 ip_stack_t *ipst = ira->ira_ill->ill_ipst; in icmp_send_redirect_v6()
1650 mp = icmp_pkt_err_ok_v6(mp, B_FALSE, ira); in icmp_send_redirect_v6()
1654 if (IS_UNDER_IPMP(ira->ira_ill)) { in icmp_send_redirect_v6()
1655 ill = ipmp_ill_hold_ipmp_ill(ira->ira_ill); in icmp_send_redirect_v6()
1657 ill = ira->ira_ill; in icmp_send_redirect_v6()
1666 ill = ira->ira_ill; in icmp_send_redirect_v6()
1725 ASSERT(ira->ira_zoneid == ALL_ZONES); in icmp_send_redirect_v6()
1726 ira->ira_zoneid = GLOBAL_ZONEID; in icmp_send_redirect_v6()
1727 icmp_pkt_v6(mp, buf, len, srcp, ira); in icmp_send_redirect_v6()
1737 ip_recv_attr_t *ira) in icmp_time_exceeded_v6() argument
1741 mp = icmp_pkt_err_ok_v6(mp, mcast_ok, ira); in icmp_time_exceeded_v6()
1748 icmp_pkt_v6(mp, &icmp6, sizeof (icmp6_t), NULL, ira); in icmp_time_exceeded_v6()
1758 ip_recv_attr_t *ira) in icmp_unreachable_v6() argument
1762 mp = icmp_pkt_err_ok_v6(mp, mcast_ok, ira); in icmp_unreachable_v6()
1769 icmp_pkt_v6(mp, &icmp6, sizeof (icmp6_t), NULL, ira); in icmp_unreachable_v6()
1779 ip_recv_attr_t *ira) in icmp_pkt2big_v6() argument
1783 mp = icmp_pkt_err_ok_v6(mp, mcast_ok, ira); in icmp_pkt2big_v6()
1792 icmp_pkt_v6(mp, &icmp6, sizeof (icmp6_t), NULL, ira); in icmp_pkt2big_v6()
1803 boolean_t mcast_ok, ip_recv_attr_t *ira) in icmp_param_problem_v6() argument
1807 mp = icmp_pkt_err_ok_v6(mp, mcast_ok, ira); in icmp_param_problem_v6()
1815 icmp_pkt_v6(mp, &icmp6, sizeof (icmp6_t), NULL, ira); in icmp_param_problem_v6()
1820 ip_recv_attr_t *ira) in icmp_param_problem_nexthdr_v6() argument
1826 ill_t *ill = ira->ira_ill; in icmp_param_problem_nexthdr_v6()
1839 mcast_ok, ira); in icmp_param_problem_nexthdr_v6()
2298 ip_fanout_proto_v6(mblk_t *mp, ip6_t *ip6h, ip_recv_attr_t *ira) in ip_fanout_proto_v6() argument
2304 ill_t *ill = ira->ira_ill; in ip_fanout_proto_v6()
2307 connfp = &ipst->ips_ipcl_proto_fanout_v6[ira->ira_protocol]; in ip_fanout_proto_v6()
2313 if (IPCL_PROTO_MATCH_V6(connp, ira, ip6h) && in ip_fanout_proto_v6()
2314 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) || in ip_fanout_proto_v6()
2315 tsol_receive_local(mp, &laddr, IPV6_VERSION, ira, connp))) in ip_fanout_proto_v6()
2327 ICMP6_PARAMPROB_NEXTHEADER, ira); in ip_fanout_proto_v6()
2344 if (IPCL_PROTO_MATCH_V6(connp, ira, ip6h) && in ip_fanout_proto_v6()
2345 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) || in ip_fanout_proto_v6()
2347 ira, connp))) in ip_fanout_proto_v6()
2370 ira); in ip_fanout_proto_v6()
2382 ip_fanout_proto_conn(connp, mp, NULL, ip6h, ira); in ip_fanout_proto_v6()
2398 ip_recv_attr_t *ira) in ip_fanout_send_icmp_v6() argument
2402 ill_t *ill = ira->ira_ill; in ip_fanout_send_icmp_v6()
2407 secure = ira->ira_flags & IRAF_IPSEC_SECURE; in ip_fanout_send_icmp_v6()
2418 mp = ipsec_check_global_policy(mp, NULL, NULL, ip6h, ira, ns); in ip_fanout_send_icmp_v6()
2424 if (ira->ira_protocol == IPPROTO_ICMPV6) { in ip_fanout_send_icmp_v6()
2438 icmp_unreachable_v6(mp, icmp_code, B_FALSE, ira); in ip_fanout_send_icmp_v6()
2447 icmp_param_problem_nexthdr_v6(mp, B_FALSE, ira); in ip_fanout_send_icmp_v6()
2482 ip_recv_attr_t *ira) in ip_fanout_udp_multi_v6() argument
2488 ill_t *ill = ira->ira_ill; in ip_fanout_udp_multi_v6()
2491 ASSERT(ira->ira_flags & (IRAF_MULTIBROADCAST|IRAF_ICMP_ERROR)); in ip_fanout_udp_multi_v6()
2502 conn_wantpacket_v6(connp, ira, ip6h) && in ip_fanout_udp_multi_v6()
2503 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) || in ip_fanout_udp_multi_v6()
2504 tsol_receive_local(mp, &laddr, IPV6_VERSION, ira, connp))) in ip_fanout_udp_multi_v6()
2524 conn_wantpacket_v6(connp, ira, ip6h) && in ip_fanout_udp_multi_v6()
2525 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) || in ip_fanout_udp_multi_v6()
2527 ira, connp))) in ip_fanout_udp_multi_v6()
2550 (ip6_t *)mp1->b_rptr, ira); in ip_fanout_udp_multi_v6()
2565 ip_fanout_udp_conn(connp, mp, NULL, ip6h, ira); in ip_fanout_udp_multi_v6()
2577 ASSERT(ira->ira_protocol == IPPROTO_UDP); in ip_fanout_udp_multi_v6()
2578 ip_fanout_proto_v6(mp, ip6h, ira); in ip_fanout_udp_multi_v6()
2581 ICMP6_DST_UNREACH_NOPORT, ira); in ip_fanout_udp_multi_v6()
2869 uint8_t *optptr, uint_t optlen, uint8_t hdr_type, ip_recv_attr_t *ira) in ip_process_options_v6() argument
2875 ill_t *ill = ira->ira_ill; in ip_process_options_v6()
2971 if ((ira->ira_flags & IRAF_IPSEC_SECURE) && in ip_process_options_v6()
2972 ira->ira_ipsec_ah_sa != NULL) in ip_process_options_v6()
3034 B_FALSE, ira); in ip_process_options_v6()
3045 B_TRUE, ira); in ip_process_options_v6()
3062 B_FALSE, ira); in ip_process_options_v6()
3072 ip_recv_attr_t *ira) in ip_process_rthdr() argument
3074 ill_t *ill = ira->ira_ill; in ip_process_rthdr()
3091 B_FALSE, ira); in ip_process_rthdr()
3239 ipsec_early_ah_v6(mblk_t *mp, ip_recv_attr_t *ira) in ipsec_early_ah_v6() argument
3243 ill_t *ill = ira->ira_ill; in ipsec_early_ah_v6()
3261 ip_proto_not_sup(mp, ira); in ipsec_early_ah_v6()
3265 mp = ipsec_inbound_ah_sa(mp, ira, &ah); in ipsec_early_ah_v6()
3269 ASSERT(ira->ira_flags & IRAF_IPSEC_SECURE); in ipsec_early_ah_v6()
3270 ASSERT(ira->ira_ipsec_ah_sa != NULL); in ipsec_early_ah_v6()
3271 ASSERT(ira->ira_ipsec_ah_sa->ipsa_input_func != NULL); in ipsec_early_ah_v6()
3272 mp = ira->ira_ipsec_ah_sa->ipsa_input_func(mp, ah, ira); in ipsec_early_ah_v6()
3283 ip_input_post_ipsec(mp, ira); in ipsec_early_ah_v6()
3295 ip6_frag_t *fraghdr, uint_t remlen, ip_recv_attr_t *ira) in ip_input_fragment_v6() argument
3317 ill_t *ill = ira->ira_ill; in ip_input_fragment_v6()
3330 ASSERT(ira->ira_rill != NULL); in ip_input_fragment_v6()
3332 ILL_HCKSUM_CAPABLE(ira->ira_rill) && in ip_input_fragment_v6()
3442 (char *)ip6h), B_FALSE, ira); in ip_input_fragment_v6()
3462 (char *)ip6h), B_FALSE, ira); in ip_input_fragment_v6()
3875 ira->ira_pktlen = packet_size; in ip_input_fragment_v6()
3876 ira->ira_ip_hdr_length = hdr_length - sizeof (ip6_frag_t); in ip_input_fragment_v6()
3877 ira->ira_protocol = nexthdr; in ip_input_fragment_v6()
3882 DB_CKSUMSTART(mp) = ira->ira_ip_hdr_length; in ip_input_fragment_v6()
4424 conn_wantpacket_v6(conn_t *connp, ip_recv_attr_t *ira, ip6_t *ip6h) in conn_wantpacket_v6() argument
4426 ill_t *ill = ira->ira_rill; in conn_wantpacket_v6()
4427 zoneid_t zoneid = ira->ira_zoneid; in conn_wantpacket_v6()
4453 if (!(ira->ira_flags & IRAF_MULTICAST)) in conn_wantpacket_v6()
4459 if (ira->ira_protocol == IPPROTO_RSVP) in conn_wantpacket_v6()
4463 ira->ira_ill)); in conn_wantpacket_v6()