Lines Matching refs:iph
260 const struct iphdr *iph; in ip_rcv_options() local
274 iph = ip_hdr(skb); in ip_rcv_options()
276 opt->optlen = iph->ihl*4 - sizeof(struct iphdr); in ip_rcv_options()
290 &iph->saddr, in ip_rcv_options()
291 &iph->daddr); in ip_rcv_options()
305 static bool ip_can_use_hint(const struct sk_buff *skb, const struct iphdr *iph, in ip_can_use_hint() argument
308 return hint && !skb_dst(skb) && ip_hdr(hint)->daddr == iph->daddr && in ip_can_use_hint()
309 ip_hdr(hint)->tos == iph->tos; in ip_can_use_hint()
318 const struct iphdr *iph = ip_hdr(skb); in ip_rcv_finish_core() local
323 if (ip_can_use_hint(skb, iph, hint)) { in ip_rcv_finish_core()
324 err = ip_route_use_hint(skb, iph->daddr, iph->saddr, iph->tos, in ip_rcv_finish_core()
333 !ip_is_fragment(iph)) { in ip_rcv_finish_core()
335 int protocol = iph->protocol; in ip_rcv_finish_core()
344 iph = ip_hdr(skb); in ip_rcv_finish_core()
353 err = ip_route_input_noref(skb, iph->daddr, iph->saddr, in ip_rcv_finish_core()
354 iph->tos, dev); in ip_rcv_finish_core()
370 if (iph->ihl > 5 && ip_rcv_options(skb, dev)) in ip_rcv_finish_core()
437 const struct iphdr *iph; in ip_rcv_core() local
457 iph = ip_hdr(skb); in ip_rcv_core()
470 if (iph->ihl < 5 || iph->version != 4) in ip_rcv_core()
477 IPSTATS_MIB_NOECTPKTS + (iph->tos & INET_ECN_MASK), in ip_rcv_core()
480 if (!pskb_may_pull(skb, iph->ihl*4)) in ip_rcv_core()
483 iph = ip_hdr(skb); in ip_rcv_core()
485 if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl))) in ip_rcv_core()
488 len = ntohs(iph->tot_len); in ip_rcv_core()
492 } else if (len < (iph->ihl*4)) in ip_rcv_core()
504 iph = ip_hdr(skb); in ip_rcv_core()
505 skb->transport_header = skb->network_header + iph->ihl*4; in ip_rcv_core()