Lines Matching refs:ipha

202 	ipha_t		*ipha;  in ip_input_common_v4()  local
305 ipha = (ipha_t *)mp->b_rptr; in ip_input_common_v4()
306 if (!OK_32PTR(ipha) || MBLKL(mp) < IP_SIMPLE_HDR_LENGTH) { in ip_input_common_v4()
314 ipha = (ipha_t *)mp->b_rptr; in ip_input_common_v4()
318 if (IPH_HDR_VERSION(ipha) != IPV4_VERSION) { in ip_input_common_v4()
332 if (ipha->ipha_dst == INADDR_ANY) { in ip_input_common_v4()
365 iras.ira_pktlen = ntohs(ipha->ipha_length); in ip_input_common_v4()
368 iras.ira_ttl = ipha->ipha_ttl; in ip_input_common_v4()
376 (*ill->ill_inputfn)(mp, ipha, &ipha->ipha_dst, &iras, &rtc); in ip_input_common_v4()
430 ipha_t *ipha = (ipha_t *)iph_arg; in ill_input_full_v4() local
458 ipha = (ipha_t *)mp->b_rptr; in ill_input_full_v4()
501 ipha->ipha_version_and_hdr_length == IP_SIMPLE_HDR_VERSION && in ill_input_full_v4()
502 ipha->ipha_protocol == IPPROTO_UDP) { in ill_input_full_v4()
505 ipha = ip_pullup(mp, sizeof (ipha_t) + sizeof (udpha_t), ira); in ill_input_full_v4()
506 if (ipha == NULL) { in ill_input_full_v4()
513 udpha = (udpha_t *)&ipha[1]; in ill_input_full_v4()
537 if (ipha->ipha_protocol == IPPROTO_RSVP && in ill_input_full_v4()
550 ill_input_short_v4(mp, ipha, &nexthop, ira, rtc); in ill_input_full_v4()
567 ipha_t *ipha = (ipha_t *)iph_arg; in ill_input_short_v4() local
571 #define rptr ((uchar_t *)ipha) in ill_input_short_v4()
581 if (((*(uchar_t *)&ipha->ipha_dst) == IN_LOOPBACKNET) || in ill_input_short_v4()
582 ((*(uchar_t *)&ipha->ipha_src) == IN_LOOPBACKNET)) { in ill_input_short_v4()
599 ipha = (ipha_t *)mp->b_rptr; in ill_input_short_v4()
603 ipha, __dtrace_ipsr_ill_t *, ill, ipha_t *, ipha, ip6_t *, NULL, in ill_input_short_v4()
614 ipha_t *, ipha, mblk_t *, mp); in ill_input_short_v4()
619 ipaddr_t orig_dst = ipha->ipha_dst; in ill_input_short_v4()
628 ill, NULL, ipha, mp, mp, ll_multicast, ipst, error); in ill_input_short_v4()
635 ipha = (ipha_t *)mp->b_rptr; in ill_input_short_v4()
636 ira->ira_pktlen = ntohs(ipha->ipha_length); in ill_input_short_v4()
643 if (orig_dst != ipha->ipha_dst) in ill_input_short_v4()
644 nexthop = ipha->ipha_dst; in ill_input_short_v4()
684 if (ilb_has_rules(ilbs) && ILB_SUPP_L4(ipha->ipha_protocol)) { in ill_input_short_v4()
697 ipha = (ipha_t *)mp->b_rptr; in ill_input_short_v4()
704 if (ntohs(ipha->ipha_fragment_offset_and_flags) & in ill_input_short_v4()
717 lb_ret = ilb_check_v4(ilbs, ill, mp, ipha, ipha->ipha_protocol, in ill_input_short_v4()
718 (uint8_t *)ipha + IPH_HDR_LENGTH(ipha), &lb_dst); in ill_input_short_v4()
735 opt_len = ipha->ipha_version_and_hdr_length - IP_SIMPLE_HDR_VERSION; in ill_input_short_v4()
744 mp = ip_check_optlen(mp, ipha, opt_len, pkt_len, ira); in ill_input_short_v4()
749 ipha = (ipha_t *)mp->b_rptr; in ill_input_short_v4()
753 ip_csum_hdr(ipha)) { in ill_input_short_v4()
768 nexthop = ip_input_options(ipha, nexthop, mp, ira, &error); in ill_input_short_v4()
832 (*ire->ire_recvfn)(ire, mp, ipha, ira); in ill_input_short_v4()
842 ipha_t *ipha = (ipha_t *)iph_arg; in ire_recv_forward_v4() local
847 ipaddr_t src = ipha->ipha_src; in ire_recv_forward_v4()
858 if (!(ill->ill_flags & ILLF_ROUTER) && !ip_source_routed(ipha, ipst)) { in ire_recv_forward_v4()
901 nce1 = ire_handle_condemned_nce(nce, ire, ipha, NULL, B_FALSE); in ire_recv_forward_v4()
919 !(ip_source_routed(ipha, ipst) && dst_ill == ill)) { in ire_recv_forward_v4()
920 if (ip_source_routed(ipha, ipst)) { in ire_recv_forward_v4()
934 ipaddr_t dst = ipha->ipha_dst; in ire_recv_forward_v4()
946 dst = ip_input_options(ipha, dst, mp, ira, &error); in ire_recv_forward_v4()
954 (*ire->ire_recvfn)(ire, mp, ipha, ira); in ire_recv_forward_v4()
981 ill_t *, ill, ill_t *, dst_ill, ipha_t *, ipha, mblk_t *, mp); in ire_recv_forward_v4()
988 ill, dst_ill, ipha, mp, mp, 0, ipst, error); in ire_recv_forward_v4()
1003 ipha = (ipha_t *)mp->b_rptr; in ire_recv_forward_v4()
1004 ira->ira_pktlen = ntohs(ipha->ipha_length); in ire_recv_forward_v4()
1058 ip_send_potential_redirect_v4(mp, ipha, ire, ira); in ire_recv_forward_v4()
1068 ip_csum_hdr(ipha)) { in ire_recv_forward_v4()
1093 ipha = (ipha_t *)mp->b_rptr; in ire_recv_forward_v4()
1094 ira->ira_pktlen = ntohs(ipha->ipha_length); in ire_recv_forward_v4()
1095 ira->ira_ip_hdr_length = IPH_HDR_LENGTH(ipha); in ire_recv_forward_v4()
1109 ip_forward_xmit_v4(nce, ill, mp, ipha, ira, mtu, added_tx_len); in ire_recv_forward_v4()
1118 ip_forward_xmit_v4(nce_t *nce, ill_t *ill, mblk_t *mp, ipha_t *ipha, in ip_forward_xmit_v4() argument
1128 if (ipha->ipha_ttl <= 1) { in ip_forward_xmit_v4()
1130 if ((iraflags & IRAF_VERIFY_IP_CKSUM) && ip_csum_hdr(ipha)) { in ip_forward_xmit_v4()
1146 ipha->ipha_ttl--; in ip_forward_xmit_v4()
1147 sum = (int)ipha->ipha_hdr_checksum + IP_HDR_CSUM_TTL_ADJUST; in ip_forward_xmit_v4()
1148 ipha->ipha_hdr_checksum = (uint16_t)(sum + (sum >> 16)); in ip_forward_xmit_v4()
1152 ASSERT(ipha->ipha_version_and_hdr_length != in ip_forward_xmit_v4()
1156 if (!ip_forward_options(mp, ipha, dst_ill, ira)) { in ip_forward_xmit_v4()
1161 ipha->ipha_hdr_checksum = 0; in ip_forward_xmit_v4()
1162 ipha->ipha_hdr_checksum = ip_csum_hdr(ipha); in ip_forward_xmit_v4()
1191 if ((iraflags & IRAF_VERIFY_IP_CKSUM) && ip_csum_hdr(ipha)) { in ip_forward_xmit_v4()
1197 if (ipha->ipha_fragment_offset_and_flags & IPH_DF_HTONS) { in ip_forward_xmit_v4()
1244 ipha_t *ipha = (ipha_t *)iph_arg; in ire_recv_noroute_v4() local
1273 ip_rts_change(RTM_MISS, ipha->ipha_dst, 0, 0, 0, 0, 0, 0, RTA_DST, in ire_recv_noroute_v4()
1282 if (ip_source_routed(ipha, ipst)) { in ire_recv_noroute_v4()
1314 ipha_t *ipha = (ipha_t *)iph_arg; in ire_recv_broadcast_v4() local
1331 if (ipha->ipha_protocol == IPPROTO_TCP) { in ire_recv_broadcast_v4()
1373 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_broadcast_v4()
1381 ipha->ipha_dst); in ire_recv_broadcast_v4()
1419 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_broadcast_v4()
1430 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_broadcast_v4()
1450 if ((ira->ira_flags & IRAF_VERIFY_IP_CKSUM) && ip_csum_hdr(ipha)) { in ire_recv_broadcast_v4()
1466 ipha->ipha_ttl = ipst->ips_ip_broadcast_ttl + 1; in ire_recv_broadcast_v4()
1467 ipha->ipha_hdr_checksum = 0; in ire_recv_broadcast_v4()
1468 ipha->ipha_hdr_checksum = ip_csum_hdr(ipha); in ire_recv_broadcast_v4()
1478 nce = arp_nce_init(dst_ill, ipha->ipha_dst, IRE_BROADCAST); in ire_recv_broadcast_v4()
1486 ip_forward_xmit_v4(nce, ill, mp, ipha, ira, dst_ill->ill_mc_mtu, 0); in ire_recv_broadcast_v4()
1500 ipha_t *ipha = (ipha_t *)iph_arg; in ire_recv_multicast_v4() local
1582 if ((ipha->ipha_protocol == IPPROTO_IGMP) || in ire_recv_multicast_v4()
1583 (ipha->ipha_protocol == IPPROTO_PIM)) { in ire_recv_multicast_v4()
1598 if (ipha->ipha_protocol == IPPROTO_IGMP) { in ire_recv_multicast_v4()
1612 if (!ill_hasmembers_v4(ill, ipha->ipha_dst)) { in ire_recv_multicast_v4()
1626 ntohl(ipha->ipha_dst))); in ire_recv_multicast_v4()
1635 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_multicast_v4()
1668 ipha_t *ipha = (ipha_t *)iph_arg; in ire_recv_loopback_v4() local
1684 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_loopback_v4()
1692 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_loopback_v4()
1701 ipha_t *ipha = (ipha_t *)iph_arg; in ire_recv_local_v4() local
1722 new_ire = ip_check_multihome(&ipha->ipha_dst, ire, ill); in ire_recv_local_v4()
1744 ip_input_local_v4(new_ire, mp, ipha, ira); in ire_recv_local_v4()
1756 ip_input_local_v4(ire, mp, ipha, ira); in ire_recv_local_v4()
1764 ip_input_local_v4(ire_t *ire, mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira) in ip_input_local_v4() argument
1774 if ((iraflags & IRAF_VERIFY_IP_CKSUM) && ip_csum_hdr(ipha)) { in ip_input_local_v4()
1782 if (!ip_input_local_options(mp, ipha, ira)) { in ip_input_local_v4()
1799 if (ipha->ipha_fragment_offset_and_flags & in ip_input_local_v4()
1808 mp = ip_input_fragment(mp, ipha, ira); in ip_input_local_v4()
1812 ipha = (ipha_t *)mp->b_rptr; in ip_input_local_v4()
1822 ip_input_broadcast_v4(ire, mp, ipha, ira); in ip_input_local_v4()
1824 ip_input_multicast_v4(ire, mp, ipha, ira); in ip_input_local_v4()
1827 ip_fanout_v4(mp, ipha, ira); in ip_input_local_v4()
1842 ip_input_broadcast_v4(ire_t *ire, mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira) in ip_input_broadcast_v4() argument
1864 ip_fanout_v4(mp, ipha, ira); in ip_input_broadcast_v4()
1905 ip_fanout_v4(mp, ipha, ira); in ip_input_broadcast_v4()
1922 ip_input_multicast_v4(ire_t *ire, mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira) in ip_input_multicast_v4() argument
1943 !ill_hasmembers_otherzones_v4(ill, ipha->ipha_dst, in ip_input_multicast_v4()
1954 ip_fanout_v4(mp, ipha, ira); in ip_input_multicast_v4()
1966 zoneid = ill_hasmembers_nextzone_v4(ill, ipha->ipha_dst, ALL_ZONES); in ip_input_multicast_v4()
1968 zoneid = ill_hasmembers_nextzone_v4(ill, ipha->ipha_dst, zoneid)) { in ip_input_multicast_v4()
2008 ip_fanout_v4(mp, ipha, ira); in ip_input_multicast_v4()
2018 ip_fanout_tx_v4(mblk_t *mp, ipha_t *ipha, uint8_t protocol, in ip_fanout_tx_v4() argument
2041 up = (uint16_t *)((uchar_t *)ipha + ip_hdr_length); in ip_fanout_tx_v4()
2047 ASSERT(((uchar_t *)ipha) + ip_hdr_length +4 <= mp->b_wptr); in ip_fanout_tx_v4()
2123 ip_input_cksum_pseudo_v4(ipha_t *ipha, ip_recv_attr_t *ira) in ip_input_cksum_pseudo_v4() argument
2130 #define iphs ((uint16_t *)ipha) in ip_input_cksum_pseudo_v4()
2145 udpha = (udpha_t *)((uchar_t *)ipha + ip_hdr_length); in ip_input_cksum_pseudo_v4()
2169 ip_input_sw_cksum_v4(mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira) in ip_input_sw_cksum_v4() argument
2180 cksum = ip_input_cksum_pseudo_v4(ipha, ira); in ip_input_sw_cksum_v4()
2196 ip_input_cksum_v4(iaflags_t iraflags, mblk_t *mp, ipha_t *ipha, in ip_input_cksum_v4() argument
2215 udpha = (udpha_t *)((uchar_t *)ipha + ip_hdr_length); in ip_input_cksum_v4()
2226 sctph = (sctp_hdr_t *)((uchar_t *)ipha + ip_hdr_length); in ip_input_cksum_v4()
2261 return (ip_input_sw_cksum_v4(mp, ipha, ira)); in ip_input_cksum_v4()
2300 cksum = ip_input_cksum_pseudo_v4(ipha, ira); in ip_input_cksum_v4()
2302 cksum_start = ((uchar_t *)ipha + DB_CKSUMSTART(mp)); in ip_input_cksum_v4()
2329 return (ip_input_sw_cksum_v4(mp, ipha, ira)); in ip_input_cksum_v4()
2343 ip_fanout_v4(mblk_t *mp, ipha_t *ipha, ip_recv_attr_t *ira) in ip_fanout_v4() argument
2348 uint8_t protocol = ipha->ipha_protocol; in ip_fanout_v4()
2350 #define rptr ((uchar_t *)ipha) in ip_fanout_v4()
2359 ASSERT(ira->ira_pktlen == ntohs(ipha->ipha_length)); in ip_fanout_v4()
2413 ipha = ip_pullup(mp, ip_hdr_length + min_ulp_header_length, in ip_fanout_v4()
2415 if (ipha == NULL) in ip_fanout_v4()
2426 ip_fanout_tx_v4(mp, ipha, protocol, ip_hdr_length, ira); in ip_fanout_v4()
2433 if (!ip_input_cksum_v4(iraflags, mp, ipha, ira)) { in ip_fanout_v4()
2452 offset = ((uchar_t *)ipha)[ip_hdr_length + 12] >> 4; in ip_fanout_v4()
2474 ipha = ip_pullup(mp, offset, ira); in ip_fanout_v4()
2475 if (ipha == NULL) in ip_fanout_v4()
2516 ipha, NULL, ira); in ip_fanout_v4()
2601 IN6_IPADDR_TO_V4MAPPED(ipha->ipha_dst, &map_dst); in ip_fanout_v4()
2602 IN6_IPADDR_TO_V4MAPPED(ipha->ipha_src, &map_src); in ip_fanout_v4()
2613 ip_fanout_sctp_raw(mp, ipha, NULL, ports, ira); in ip_fanout_v4()
2620 ip_fanout_sctp_raw(mp, ipha, NULL, ports, ira); in ip_fanout_v4()
2627 ip_fanout_sctp_raw(mp, ipha, NULL, ports, ira); in ip_fanout_v4()
2633 sctp_input(connp, ipha, NULL, mp, ira); in ip_fanout_v4()
2645 up = (uint16_t *)((uchar_t *)ipha + ip_hdr_length); in ip_fanout_v4()
2646 ip_fanout_udp_multi_v4(mp, ipha, up[1], up[0], ira); in ip_fanout_v4()
2658 ip_fanout_proto_v4(mp, ipha, ira); in ip_fanout_v4()
2688 ipha, NULL, ira); in ip_fanout_v4()
2721 ipha = (ipha_t *)mp->b_rptr; in ip_fanout_v4()
2722 protocol = ipha->ipha_protocol; in ip_fanout_v4()
2760 ipha, NULL, ira, ns); in ip_fanout_v4()
2803 ipha, NULL, ira, ns); in ip_fanout_v4()
2838 ipha, NULL, ira, ns); in ip_fanout_v4()
2942 if ((uchar_t *)ipha + ip_hdr_length + sizeof (ipha_t) > in ip_fanout_v4()
2953 ipha = ip_pullup(mp, (uchar_t *)ipha + ip_hdr_length + in ip_fanout_v4()
2955 if (ipha == NULL) { in ip_fanout_v4()
2962 inner_ipha = (ipha_t *)((uchar_t *)ipha + ip_hdr_length); in ip_fanout_v4()
2978 if (inner_ipha->ipha_src != ipha->ipha_src || in ip_fanout_v4()
2979 inner_ipha->ipha_dst != ipha->ipha_dst) { in ip_fanout_v4()
2991 ipha = inner_ipha; in ip_fanout_v4()
2992 ip_hdr_length = IPH_HDR_LENGTH(ipha); in ip_fanout_v4()
2993 if ((uchar_t *)ipha + ip_hdr_length > mp->b_wptr) { in ip_fanout_v4()
2995 (uchar_t *)ipha + ip_hdr_length - mp->b_rptr) { in ip_fanout_v4()
3003 ipha = ip_pullup(mp, in ip_fanout_v4()
3004 (uchar_t *)ipha + ip_hdr_length - mp->b_rptr, ira); in ip_fanout_v4()
3005 if (ipha == NULL) { in ip_fanout_v4()
3014 ipaddr_t dst = ipha->ipha_dst; in ip_fanout_v4()
3017 dst = ip_input_options(ipha, dst, mp, ira, &error); in ip_fanout_v4()
3025 if (dst != ipha->ipha_dst) { in ip_fanout_v4()
3049 protocol = ipha->ipha_protocol; in ip_fanout_v4()
3056 ira->ira_pktlen = ntohs(ipha->ipha_length); in ip_fanout_v4()
3111 ipha = (ipha_t *)mp->b_rptr; in ip_fanout_v4()
3112 ira->ira_protocol = protocol = ipha->ipha_protocol; in ip_fanout_v4()
3128 ipha, NULL, ira, ns); in ip_fanout_v4()
3144 ASSERT(ira->ira_protocol == ipha->ipha_protocol); in ip_fanout_v4()
3145 ip_fanout_proto_v4(mp, ipha, ira); in ip_fanout_v4()