Lines Matching defs:ira

1231 icmp_frag_needed(mblk_t *mp, int mtu, ip_recv_attr_t *ira)
1234 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
1236 mp = icmp_pkt_err_ok(mp, ira);
1247 icmp_pkt(mp, &icmph, sizeof (icmph_t), ira);
1329 icmp_inbound_v4(mblk_t *mp, ip_recv_attr_t *ira)
1339 ill_t *ill = ira->ira_ill;
1341 zoneid_t zoneid = ira->ira_zoneid;
1349 ip_hdr_length = ira->ira_ip_hdr_length;
1351 if (ira->ira_pktlen < (ip_hdr_length + ICMPH_SIZE)) {
1358 ipha = ip_pullup(mp, ip_hdr_length + ICMPH_SIZE, ira);
1402 if (ira->ira_flags & IRAF_MULTICAST) {
1405 } else if (ira->ira_flags & IRAF_BROADCAST) {
1435 icmp_send_reply_v4(mp, ipha, icmph, ira);
1452 if (ira->ira_flags & IRAF_MULTIBROADCAST)
1469 ipha = ip_pullup(mp, len_needed, ira);
1505 icmp_send_reply_v4(mp, ipha, icmph, ira);
1516 if (ira->ira_flags & IRAF_MULTIBROADCAST) {
1529 ipha = ip_pullup(mp, len_needed, ira);
1575 icmp_send_reply_v4(mp, ipha, icmph, ira);
1614 if (ip_pullup(mp, -1, ira) == NULL) {
1643 if (!icmp_inbound_verify_v4(mp, icmph, ira)) {
1650 icmp_redirect_v4(mp, ipha, icmph, ira);
1655 icmp_inbound_too_big_v4(icmph, ira);
1659 icmp_inbound_error_fanout_v4(mp, icmph, ira);
1673 ip_recv_attr_t *ira)
1675 uint_t ip_hdr_length = ira->ira_ip_hdr_length;
1676 ill_t *ill = ira->ira_ill;
1699 ixas.ixa_zoneid = ira->ira_zoneid;
1702 ixas.ixa_tsl = ira->ira_tsl; /* Behave as a multi-level responder */
1707 if (!(ira->ira_flags & IRAF_IPSEC_SECURE)) {
1715 if (!ipsec_in_to_out(ira, &ixas, mp, ipha, NULL)) {
1721 if (ira->ira_flags & IRAF_MULTIBROADCAST) {
1750 icmp_inbound_verify_v4(mblk_t *mp, icmph_t *icmph, ip_recv_attr_t *ira)
1752 ill_t *ill = ira->ira_ill;
1754 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
1810 !connp->conn_verifyicmp(connp, tcpha, icmph, NULL, ira)) {
1872 icmp_inbound_too_big_v4(icmph_t *icmph, ip_recv_attr_t *ira)
1879 ill_t *ill = ira->ira_ill;
2071 icmp_inbound_error_fanout_v4(mblk_t *mp, icmph_t *icmph, ip_recv_attr_t *ira)
2080 ill_t *ill = ira->ira_ill;
2083 ill_t *rill = ira->ira_rill;
2091 ira->ira_protocol = ipha->ipha_protocol;
2117 ira->ira_flags |= IRAF_ICMP_ERROR;
2118 ip_fanout_udp_multi_v4(mp, &ripha, up[0], up[1], ira);
2119 ira->ira_flags &= ~IRAF_ICMP_ERROR;
2135 (ira->ira_flags & IRAF_IPSEC_SECURE)) {
2137 ipha, NULL, ira);
2147 ira->ira_flags |= IRAF_ICMP_ERROR;
2148 ira->ira_ill = ira->ira_rill = NULL;
2151 connp->conn_recvicmp, connp, ira, SQ_FILL,
2155 (connp->conn_recv)(connp, mp, NULL, ira);
2158 ira->ira_ill = ill;
2159 ira->ira_rill = rill;
2160 ira->ira_flags &= ~IRAF_ICMP_ERROR;
2169 ira->ira_flags |= IRAF_ICMP_ERROR;
2170 ip_fanout_sctp(mp, &ripha, NULL, ports, ira);
2171 ira->ira_flags &= ~IRAF_ICMP_ERROR;
2177 ip_proto_not_sup(mp, ira);
2182 mp = ipsecesp_icmp_error(mp, ira);
2184 mp = ipsecah_icmp_error(mp, ira);
2209 if (!icmp_inbound_verify_v4(mp, icmph, ira)) {
2214 icmp_inbound_error_fanout_v4(mp, icmph, ira);
2268 if (!icmp_inbound_verify_v4(mp, icmph, ira)) {
2281 icmp_inbound_error_fanout_v4(mp, icmph, ira);
2290 ira->ira_flags |= IRAF_ICMP_ERROR;
2291 connp->conn_recvicmp(connp, mp, NULL, ira);
2293 ira->ira_flags &= ~IRAF_ICMP_ERROR;
2302 ira->ira_flags |= IRAF_ICMP_ERROR;
2303 ip_fanout_proto_v4(mp, &ripha, ira);
2304 ira->ira_flags &= ~IRAF_ICMP_ERROR;
2627 icmp_redirect_v4(mblk_t *mp, ipha_t *ipha, icmph_t *icmph, ip_recv_attr_t *ira)
2632 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
2662 ip_drop_input("icmpInBadRedirects - ire", mp, ira->ira_ill);
2687 ip_drop_input("icmpInBadRedirects - code", mp, ira->ira_ill);
2750 icmp_param_problem(mblk_t *mp, uint8_t ptr, ip_recv_attr_t *ira)
2753 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
2755 mp = icmp_pkt_err_ok(mp, ira);
2763 icmp_pkt(mp, &icmph, sizeof (icmph_t), ira);
2776 icmp_pkt(mblk_t *mp, void *stuff, size_t len, ip_recv_attr_t *ira)
2787 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
2793 ixas.ixa_zoneid = ira->ira_zoneid;
2798 ixas.ixa_tsl = ira->ira_tsl; /* Behave as a multi-level responder */
2801 if (ira->ira_flags & IRAF_IPSEC_SECURE) {
2810 if (!ipsec_in_to_out(ira, &ixas, mp, ipha, NULL)) {
2832 (IRE_LOCAL|IRE_LOOPBACK), NULL, ira->ira_zoneid, NULL,
2975 icmp_pkt_err_ok(mblk_t *mp, ip_recv_attr_t *ira)
2977 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
3034 if (is_system_labeled() && !tsol_can_reply_error(mp, ira)) {
3058 ip_recv_attr_t *ira)
3060 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
3122 icmp_send_redirect(mp1, nhop, ira);
3132 icmp_send_redirect(mblk_t *mp, ipaddr_t gateway, ip_recv_attr_t *ira)
3135 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
3137 mp = icmp_pkt_err_ok(mp, ira);
3146 icmp_pkt(mp, &icmph, sizeof (icmph_t), ira);
3153 icmp_time_exceeded(mblk_t *mp, uint8_t code, ip_recv_attr_t *ira)
3156 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
3158 mp = icmp_pkt_err_ok(mp, ira);
3166 icmp_pkt(mp, &icmph, sizeof (icmph_t), ira);
3175 icmp_unreachable(mblk_t *mp, uint8_t code, ip_recv_attr_t *ira)
3178 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
3180 mp = icmp_pkt_err_ok(mp, ira);
3188 icmp_pkt(mp, &icmph, sizeof (icmph_t), ira);
3197 ip_ipsec_policy_inherit(conn_t *connp, conn_t *lconnp, ip_recv_attr_t *ira)
3205 if (ira->ira_ipsec_action != NULL) {
3211 ipsec_latch_inbound(connp, ira);
4285 ip_conn_input(void *arg1, mblk_t *mp, void *arg2, ip_recv_attr_t *ira)
4295 ip_conn_input_icmp(void *arg1, mblk_t *mp, void *arg2, ip_recv_attr_t *ira)
4826 ip_recv_attr_t *ira)
4830 ill_t *ill = ira->ira_ill;
4835 secure = ira->ira_flags & IRAF_IPSEC_SECURE;
4846 mp = ipsec_check_global_policy(mp, NULL, ipha, NULL, ira, ns);
4852 if (ira->ira_protocol == IPPROTO_ICMP ||
4853 ira->ira_protocol == IPPROTO_IGMP) {
4881 icmp_unreachable(mp, icmp_code, ira);
4900 ip_proto_not_sup(mblk_t *mp, ip_recv_attr_t *ira)
4905 if (ira->ira_flags & IRAF_IS_IPV4) {
4908 ICMP_PROTOCOL_UNREACHABLE, ira);
4912 ICMP6_PARAMPROB_NEXTHEADER, ira);
4924 ip_recv_attr_t *ira)
4926 ill_t *ill = ira->ira_ill;
4930 uint_t protocol = ira->ira_protocol;
4931 iaflags_t iraflags = ira->ira_flags;
4960 ip6h, ira);
4970 (connp->conn_recvicmp)(connp, mp, NULL, ira);
4972 ill_t *rill = ira->ira_rill;
4975 ira->ira_ill = ira->ira_rill = NULL;
4977 (connp->conn_recv)(connp, mp, NULL, ira);
4978 ira->ira_ill = ill;
4979 ira->ira_rill = rill;
5013 ip_fanout_proto_v4(mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira)
5019 ill_t *ill = ira->ira_ill;
5024 connfp = &ipst->ips_ipcl_proto_fanout_v4[ira->ira_protocol];
5030 if (IPCL_PROTO_MATCH(connp, ira, ipha) &&
5031 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) ||
5032 tsol_receive_local(mp, &laddr, IPV4_VERSION, ira, connp))) {
5045 ICMP_PROTOCOL_UNREACHABLE, ira);
5058 if (IPCL_PROTO_MATCH(connp, ira, ipha) &&
5059 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) ||
5061 ira, connp)))
5084 ira);
5096 ip_fanout_proto_conn(connp, mp, ipha, NULL, ira);
5116 zero_spi_check(mblk_t *mp, ip_recv_attr_t *ira)
5124 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
5128 iph_len = ira->ira_ip_hdr_length;
5129 plen = ira->ira_pktlen;
5140 ip_drop_packet(mp, B_TRUE, ira->ira_ill,
5148 ip_drop_packet(mp, B_TRUE, ira->ira_ill,
5167 ira->ira_pktlen = (plen - shift);
5168 ipha->ipha_length = htons(ira->ira_pktlen);
5188 ira->ira_flags |= IRAF_ESP_UDP_PORTS;
5189 ira->ira_esp_udp_ports = esp_ports;
5190 ip_fanout_v4(mp, ipha, ira);
5204 ip_recv_attr_t *ira)
5206 ill_t *ill = ira->ira_ill;
5210 iaflags_t iraflags = ira->ira_flags;
5226 ip6h, ira);
5239 if (ira->ira_flags & IRAF_ICMP_ERROR) {
5240 (connp->conn_recvicmp)(connp, mp, NULL, ira);
5242 ill_t *rill = ira->ira_rill;
5245 ira->ira_ill = ira->ira_rill = NULL;
5247 (connp->conn_recv)(connp, mp, NULL, ira);
5248 ira->ira_ill = ill;
5249 ira->ira_rill = rill;
5274 ip_recv_attr_t *ira)
5281 ill_t *ill = ira->ira_ill;
5284 ASSERT(ira->ira_flags & (IRAF_MULTIBROADCAST|IRAF_ICMP_ERROR));
5300 conn_wantpacket(connp, ira, ipha) &&
5301 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) ||
5302 tsol_receive_local(mp, &laddr, IPV4_VERSION, ira, connp)))
5322 conn_wantpacket(connp, ira, ipha) &&
5323 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) ||
5325 ira, connp)))
5347 NULL, ira);
5359 ip_fanout_udp_conn(connp, mp, ipha, NULL, ira);
5388 conn_wantpacket(connp, ira, ipha) &&
5389 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) ||
5390 tsol_receive_local(mp, &laddr, IPV4_VERSION, ira, connp)))
5405 ASSERT(ira->ira_protocol == IPPROTO_UDP);
5406 ip_fanout_proto_v4(mp, ipha, ira);
5437 conn_wantpacket(connp, ira, ipha) &&
5438 (!(ira->ira_flags & IRAF_SYSTEM_LABELED) ||
5440 ira, connp)))
5462 NULL, ira);
5474 ip_fanout_udp_conn(connp, mp, ipha, NULL, ira);
7014 ip_input_fragment(mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira)
7037 ill_t *ill = ira->ira_ill;
7060 ASSERT(ira->ira_rill != NULL);
7062 ILL_HCKSUM_CAPABLE(ira->ira_rill) &&
7451 ira->ira_pktlen = packet_size;
7452 ira->ira_ip_hdr_length = IPH_HDR_LENGTH(ipha);
7457 DB_CKSUMSTART(mp) = ira->ira_ip_hdr_length;
7470 ip_pullup(mblk_t *mp, ssize_t len, ip_recv_attr_t *ira)
7472 ill_t *ill = ira->ira_ill;
7480 if (!(ira->ira_flags & IRAF_L2SRC_SET))
7481 ip_setl2src(mp, ira, ira->ira_rill);
7482 ASSERT(ira->ira_flags & IRAF_L2SRC_SET);
7496 ip_setl2src(mblk_t *mp, ip_recv_attr_t *ira, ill_t *ill)
7501 if (ira->ira_flags & IRAF_L2SRC_SET)
7506 ASSERT(alen <= sizeof (ira->ira_l2src));
7507 if (ira->ira_mhip != NULL &&
7508 (addr = ira->ira_mhip->mhi_saddr) != NULL) {
7509 bcopy(addr, ira->ira_l2src, alen);
7510 } else if ((ira->ira_flags & IRAF_L2SRC_LOOPBACK) &&
7512 bcopy(addr, ira->ira_l2src, alen);
7514 bzero(ira->ira_l2src, alen);
7516 ira->ira_flags |= IRAF_L2SRC_SET;
7523 ip_check_and_align_header(mblk_t *mp, uint_t min_size, ip_recv_attr_t *ira)
7525 ill_t *ill = ira->ira_ill;
7547 if (!(ira->ira_flags & IRAF_L2SRC_SET))
7548 ip_setl2src(mp, ira, ira->ira_rill);
7549 ASSERT(ira->ira_flags & IRAF_L2SRC_SET);
7559 if (ip_pullup(mp, min_size, ira) == NULL) {
7578 uint_t min_size, ip_recv_attr_t *ira)
7580 ill_t *ill = ira->ira_ill;
7635 ip_recv_attr_t *ira)
7637 ill_t *ill = ira->ira_ill;
7667 if (ip_pullup(mp, len, ira) == NULL) {
8038 ip_fix_dbref(mblk_t *mp, ip_recv_attr_t *ira)
8041 ill_t *ill = ira->ira_ill;
8047 if (!(ira->ira_flags & IRAF_L2SRC_SET))
8048 ip_setl2src(mp, ira, ira->ira_rill);
8985 ip_recv_attr_t *ira)
8995 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
9018 ira);
9236 ip_input_local_options(mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira)
9246 ill_t *ill = ira->ira_ill;
9381 icmp_unreachable(mp, ICMP_SOURCE_ROUTE_FAILED, ira);
9395 ip_recv_attr_t *ira, int *errorp)
9397 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
9481 ira->ira_tsl,
9559 ip_drop_input("ICMP_PARAM_PROBLEM", mp, ira->ira_ill);
9560 icmp_param_problem(mp, (uint8_t)code, ira);
9567 ip_drop_input("ICMP_SOURCE_ROUTE_FAILED", mp, ira->ira_ill);
9568 icmp_unreachable(mp, ICMP_SOURCE_ROUTE_FAILED, ira);
12234 ip_input_post_ipsec(mblk_t *mp, ip_recv_attr_t *ira)
12236 iaflags_t iraflags = ira->ira_flags;
12243 ira->ira_pktlen = ntohs(ipha->ipha_length);
12244 ira->ira_ip_hdr_length = IPH_HDR_LENGTH(ipha);
12245 ira->ira_protocol = ipha->ipha_protocol;
12247 ip_fanout_v4(mp, ipha, ira);
12253 ira->ira_pktlen = ntohs(ip6h->ip6_plen) + IPV6_HDR_LEN;
12254 if (!ip_hdr_length_nexthdr_v6(mp, ip6h, &ira->ira_ip_hdr_length,
12257 BUMP_MIB(ira->ira_ill->ill_ip_mib, ipIfStatsInDiscards);
12258 ip_drop_input("ipIfStatsInDiscards", mp, ira->ira_ill);
12262 ira->ira_protocol = *nexthdrp;
12263 ip_fanout_v6(mp, ip6h, ira);
13421 conn_wantpacket(conn_t *connp, ip_recv_attr_t *ira, ipha_t *ipha)
13423 ill_t *ill = ira->ira_rill;
13424 zoneid_t zoneid = ira->ira_zoneid;
13452 if (!(ira->ira_flags & IRAF_MULTICAST))
13464 return (conn_hasmembers_ill_withsrc_v4(connp, dst, src, ira->ira_ill));
14293 ip_recv_attr_t *ira)
14298 ill_t *ill = ira->ira_ill;
14302 iaflags_t iraflags = ira->ira_flags;
14303 ill_t *rill = ira->ira_rill;
14308 ira, ipst);
14319 ira->ira_ill = ira->ira_rill = NULL;
14320 sctp_ootb_input(mp, ira, ipst);
14321 ira->ira_ill = ill;
14322 ira->ira_rill = rill;
14337 ip6h, ira);
14348 (connp->conn_recvicmp)(connp, mp, NULL, ira);
14350 ill_t *rill = ira->ira_rill;
14354 ira->ira_ill = ira->ira_rill = NULL;
14355 (connp->conn_recv)(connp, mp, NULL, ira);
14356 ira->ira_ill = ill;
14357 ira->ira_rill = rill;
15096 ip_get_zoneid_v4(ipaddr_t addr, mblk_t *mp, ip_recv_attr_t *ira,
15099 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
15104 if (is_system_labeled() && !tsol_can_accept_raw(mp, ira, B_FALSE))
15120 ip_recv_attr_t *ira, zoneid_t lookup_zoneid)
15122 ip_stack_t *ipst = ira->ira_ill->ill_ipst;
15127 if (is_system_labeled() && !tsol_can_accept_raw(mp, ira, B_FALSE))