Lines Matching refs:guehdr

76 static struct guehdr *gue_remcsum(struct sk_buff *skb, struct guehdr *guehdr,  in gue_remcsum()  argument
87 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_remcsum()
89 skb_remcsum_process(skb, (void *)guehdr + hdrlen, in gue_remcsum()
92 return guehdr; in gue_remcsum()
95 static int gue_control_message(struct sk_buff *skb, struct guehdr *guehdr) in gue_control_message() argument
106 struct guehdr *guehdr; in gue_udp_recv() local
113 len = sizeof(struct udphdr) + sizeof(struct guehdr); in gue_udp_recv()
117 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_udp_recv()
119 optlen = guehdr->hlen << 2; in gue_udp_recv()
126 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_udp_recv()
128 hdrlen = sizeof(struct guehdr) + optlen; in gue_udp_recv()
130 if (guehdr->version != 0 || validate_gue_flags(guehdr, optlen)) in gue_udp_recv()
133 hdrlen = sizeof(struct guehdr) + optlen; in gue_udp_recv()
142 data = &guehdr[1]; in gue_udp_recv()
144 if (guehdr->flags & GUE_FLAG_PRIV) { in gue_udp_recv()
150 guehdr = gue_remcsum(skb, guehdr, data + doffset, in gue_udp_recv()
151 hdrlen, guehdr->proto_ctype, in gue_udp_recv()
154 if (!guehdr) in gue_udp_recv()
157 data = &guehdr[1]; in gue_udp_recv()
163 if (unlikely(guehdr->control)) in gue_udp_recv()
164 return gue_control_message(skb, guehdr); in gue_udp_recv()
169 return -guehdr->proto_ctype; in gue_udp_recv()
223 static struct guehdr *gue_gro_remcsum(struct sk_buff *skb, unsigned int off, in gue_gro_remcsum()
224 struct guehdr *guehdr, void *data, in gue_gro_remcsum() argument
241 guehdr = skb_gro_header_slow(skb, off + plen, off); in gue_gro_remcsum()
242 if (!guehdr) in gue_gro_remcsum()
246 skb_gro_remcsum_process(skb, (void *)guehdr + hdrlen, in gue_gro_remcsum()
251 return guehdr; in gue_gro_remcsum()
262 struct guehdr *guehdr; in gue_gro_receive() local
273 len = off + sizeof(*guehdr); in gue_gro_receive()
275 guehdr = skb_gro_header_fast(skb, off); in gue_gro_receive()
277 guehdr = skb_gro_header_slow(skb, len, off); in gue_gro_receive()
278 if (unlikely(!guehdr)) in gue_gro_receive()
282 optlen = guehdr->hlen << 2; in gue_gro_receive()
286 guehdr = skb_gro_header_slow(skb, len, off); in gue_gro_receive()
287 if (unlikely(!guehdr)) in gue_gro_receive()
291 if (unlikely(guehdr->control) || guehdr->version != 0 || in gue_gro_receive()
292 validate_gue_flags(guehdr, optlen)) in gue_gro_receive()
295 hdrlen = sizeof(*guehdr) + optlen; in gue_gro_receive()
300 skb_gro_postpull_rcsum(skb, guehdr, hdrlen); in gue_gro_receive()
302 data = &guehdr[1]; in gue_gro_receive()
304 if (guehdr->flags & GUE_FLAG_PRIV) { in gue_gro_receive()
310 guehdr = gue_gro_remcsum(skb, off, guehdr, in gue_gro_receive()
312 guehdr->proto_ctype, &grc, in gue_gro_receive()
315 if (!guehdr) in gue_gro_receive()
318 data = &guehdr[1]; in gue_gro_receive()
329 const struct guehdr *guehdr2; in gue_gro_receive()
334 guehdr2 = (struct guehdr *)(p->data + off); in gue_gro_receive()
339 if (guehdr->word != guehdr2->word) { in gue_gro_receive()
345 if (guehdr->hlen && memcmp(&guehdr[1], &guehdr2[1], in gue_gro_receive()
346 guehdr->hlen << 2)) { in gue_gro_receive()
354 ops = rcu_dereference(offloads[guehdr->proto_ctype]); in gue_gro_receive()
373 struct guehdr *guehdr = (struct guehdr *)(skb->data + nhoff); in gue_gro_complete() local
379 proto = guehdr->proto_ctype; in gue_gro_complete()
381 guehlen = sizeof(*guehdr) + (guehdr->hlen << 2); in gue_gro_complete()
755 len = sizeof(struct udphdr) + sizeof(struct guehdr); in gue_encap_hlen()
813 struct guehdr *guehdr; in gue_build_header() local
838 hdrlen = sizeof(struct guehdr) + optlen; in gue_build_header()
842 guehdr = (struct guehdr *)skb->data; in gue_build_header()
844 guehdr->control = 0; in gue_build_header()
845 guehdr->version = 0; in gue_build_header()
846 guehdr->hlen = optlen >> 2; in gue_build_header()
847 guehdr->flags = 0; in gue_build_header()
848 guehdr->proto_ctype = *protocol; in gue_build_header()
850 data = &guehdr[1]; in gue_build_header()
855 guehdr->flags |= GUE_FLAG_PRIV; in gue_build_header()