• Home
  • Raw
  • Download

Lines Matching refs:skb

153 bool ip_call_ra_chain(struct sk_buff *skb)  in ip_call_ra_chain()  argument
156 u8 protocol = ip_hdr(skb)->protocol; in ip_call_ra_chain()
158 struct net_device *dev = skb->dev; in ip_call_ra_chain()
170 if (ip_is_fragment(ip_hdr(skb))) { in ip_call_ra_chain()
171 if (ip_defrag(skb, IP_DEFRAG_CALL_RA_CHAIN)) in ip_call_ra_chain()
175 struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); in ip_call_ra_chain()
184 raw_rcv(last, skb); in ip_call_ra_chain()
190 static int ip_local_deliver_finish(struct sk_buff *skb) in ip_local_deliver_finish() argument
192 struct net *net = dev_net(skb->dev); in ip_local_deliver_finish()
194 __skb_pull(skb, skb_network_header_len(skb)); in ip_local_deliver_finish()
198 int protocol = ip_hdr(skb)->protocol; in ip_local_deliver_finish()
203 raw = raw_local_deliver(skb, protocol); in ip_local_deliver_finish()
210 if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) { in ip_local_deliver_finish()
211 kfree_skb(skb); in ip_local_deliver_finish()
214 nf_reset(skb); in ip_local_deliver_finish()
216 ret = ipprot->handler(skb); in ip_local_deliver_finish()
224 if (xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) { in ip_local_deliver_finish()
226 icmp_send(skb, ICMP_DEST_UNREACH, in ip_local_deliver_finish()
229 kfree_skb(skb); in ip_local_deliver_finish()
232 consume_skb(skb); in ip_local_deliver_finish()
245 int ip_local_deliver(struct sk_buff *skb) in ip_local_deliver() argument
251 if (ip_is_fragment(ip_hdr(skb))) { in ip_local_deliver()
252 if (ip_defrag(skb, IP_DEFRAG_LOCAL_DELIVER)) in ip_local_deliver()
256 return NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_IN, skb, skb->dev, NULL, in ip_local_deliver()
260 static inline bool ip_rcv_options(struct sk_buff *skb) in ip_rcv_options() argument
264 struct net_device *dev = skb->dev; in ip_rcv_options()
273 if (skb_cow(skb, skb_headroom(skb))) { in ip_rcv_options()
278 iph = ip_hdr(skb); in ip_rcv_options()
279 opt = &(IPCB(skb)->opt); in ip_rcv_options()
282 if (ip_options_compile(dev_net(dev), opt, skb)) { in ip_rcv_options()
300 if (ip_options_rcv_srr(skb)) in ip_rcv_options()
312 static int ip_rcv_finish(struct sk_buff *skb) in ip_rcv_finish() argument
314 const struct iphdr *iph = ip_hdr(skb); in ip_rcv_finish()
317 if (sysctl_ip_early_demux && !skb_dst(skb) && skb->sk == NULL) { in ip_rcv_finish()
323 ipprot->early_demux(skb); in ip_rcv_finish()
325 iph = ip_hdr(skb); in ip_rcv_finish()
333 if (!skb_dst(skb)) { in ip_rcv_finish()
334 int err = ip_route_input_noref(skb, iph->daddr, iph->saddr, in ip_rcv_finish()
335 iph->tos, skb->dev); in ip_rcv_finish()
338 NET_INC_STATS_BH(dev_net(skb->dev), in ip_rcv_finish()
345 if (unlikely(skb_dst(skb)->tclassid)) { in ip_rcv_finish()
347 u32 idx = skb_dst(skb)->tclassid; in ip_rcv_finish()
349 st[idx&0xFF].o_bytes += skb->len; in ip_rcv_finish()
351 st[(idx>>16)&0xFF].i_bytes += skb->len; in ip_rcv_finish()
355 if (iph->ihl > 5 && ip_rcv_options(skb)) in ip_rcv_finish()
358 rt = skb_rtable(skb); in ip_rcv_finish()
361 skb->len); in ip_rcv_finish()
364 skb->len); in ip_rcv_finish()
366 return dst_input(skb); in ip_rcv_finish()
369 kfree_skb(skb); in ip_rcv_finish()
376 int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *… in ip_rcv() argument
384 if (skb->pkt_type == PACKET_OTHERHOST) in ip_rcv()
388 IP_UPD_PO_STATS_BH(dev_net(dev), IPSTATS_MIB_IN, skb->len); in ip_rcv()
390 if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) { in ip_rcv()
395 if (!pskb_may_pull(skb, sizeof(struct iphdr))) in ip_rcv()
398 iph = ip_hdr(skb); in ip_rcv()
419 max_t(unsigned short, 1, skb_shinfo(skb)->gso_segs)); in ip_rcv()
421 if (!pskb_may_pull(skb, iph->ihl*4)) in ip_rcv()
424 iph = ip_hdr(skb); in ip_rcv()
430 if (skb->len < len) { in ip_rcv()
440 if (pskb_trim_rcsum(skb, len)) { in ip_rcv()
445 skb->transport_header = skb->network_header + iph->ihl*4; in ip_rcv()
448 memset(IPCB(skb), 0, sizeof(struct inet_skb_parm)); in ip_rcv()
451 skb_orphan(skb); in ip_rcv()
453 return NF_HOOK(NFPROTO_IPV4, NF_INET_PRE_ROUTING, skb, dev, NULL, in ip_rcv()
461 kfree_skb(skb); in ip_rcv()