Lines Matching refs:skb
62 int gre_parse_header(struct sk_buff *skb, struct tnl_ptk_info *tpi,
69 if (unlikely(!pskb_may_pull(skb, nhs + sizeof(struct gre_base_hdr))))
72 greh = (struct gre_base_hdr *)(skb->data + nhs);
79 if (!pskb_may_pull(skb, nhs + hdr_len))
82 greh = (struct gre_base_hdr *)(skb->data + nhs);
87 if (!skb_checksum_simple_validate(skb)) {
88 skb_checksum_try_convert(skb, IPPROTO_GRE,
117 val = skb_header_pointer(skb, nhs + hdr_len,
135 if (!pskb_may_pull(skb, nhs + hdr_len + sizeof(*ershdr)))
138 ershdr = (struct erspan_base_hdr *)(skb->data + nhs + hdr_len);
146 static int gre_rcv(struct sk_buff *skb)
152 if (!pskb_may_pull(skb, 12))
155 ver = skb->data[1]&0x7f;
163 ret = proto->handler(skb);
170 kfree_skb(skb);
174 static int gre_err(struct sk_buff *skb, u32 info)
177 const struct iphdr *iph = (const struct iphdr *)skb->data;
178 u8 ver = skb->data[(iph->ihl<<2) + 1]&0x7f;
187 proto->err_handler(skb, info);