Lines Matching defs:ira

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