Lines Matching refs:guehdr

90 static struct guehdr *gue_remcsum(struct sk_buff *skb, struct guehdr *guehdr,  in gue_remcsum()  argument
101 return guehdr; in gue_remcsum()
105 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_remcsum()
107 skb_remcsum_process(skb, (void *)guehdr + hdrlen, in gue_remcsum()
110 return guehdr; in gue_remcsum()
113 static int gue_control_message(struct sk_buff *skb, struct guehdr *guehdr) in gue_control_message() argument
124 struct guehdr *guehdr; in gue_udp_recv() local
132 len = sizeof(struct udphdr) + sizeof(struct guehdr); in gue_udp_recv()
136 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_udp_recv()
138 switch (guehdr->version) { in gue_udp_recv()
147 switch (((struct iphdr *)guehdr)->version) { in gue_udp_recv()
168 optlen = guehdr->hlen << 2; in gue_udp_recv()
175 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_udp_recv()
177 if (validate_gue_flags(guehdr, optlen)) in gue_udp_recv()
180 hdrlen = sizeof(struct guehdr) + optlen; in gue_udp_recv()
193 data = &guehdr[1]; in gue_udp_recv()
195 if (guehdr->flags & GUE_FLAG_PRIV) { in gue_udp_recv()
201 guehdr = gue_remcsum(skb, guehdr, data + doffset, in gue_udp_recv()
202 hdrlen, guehdr->proto_ctype, in gue_udp_recv()
205 if (!guehdr) in gue_udp_recv()
208 data = &guehdr[1]; in gue_udp_recv()
214 if (unlikely(guehdr->control)) in gue_udp_recv()
215 return gue_control_message(skb, guehdr); in gue_udp_recv()
217 proto_ctype = guehdr->proto_ctype; in gue_udp_recv()
299 static struct guehdr *gue_gro_remcsum(struct sk_buff *skb, unsigned int off, in gue_gro_remcsum()
300 struct guehdr *guehdr, void *data, in gue_gro_remcsum() argument
309 return guehdr; in gue_gro_remcsum()
314 guehdr = skb_gro_remcsum_process(skb, (void *)guehdr, off, hdrlen, in gue_gro_remcsum()
319 return guehdr; in gue_gro_remcsum()
330 struct guehdr *guehdr; in gue_gro_receive() local
345 len = off + sizeof(*guehdr); in gue_gro_receive()
347 guehdr = skb_gro_header(skb, len, off); in gue_gro_receive()
348 if (unlikely(!guehdr)) in gue_gro_receive()
351 switch (guehdr->version) { in gue_gro_receive()
355 switch (((struct iphdr *)guehdr)->version) { in gue_gro_receive()
370 optlen = guehdr->hlen << 2; in gue_gro_receive()
374 guehdr = skb_gro_header_slow(skb, len, off); in gue_gro_receive()
375 if (unlikely(!guehdr)) in gue_gro_receive()
379 if (unlikely(guehdr->control) || guehdr->version != 0 || in gue_gro_receive()
380 validate_gue_flags(guehdr, optlen)) in gue_gro_receive()
383 hdrlen = sizeof(*guehdr) + optlen; in gue_gro_receive()
388 skb_gro_postpull_rcsum(skb, guehdr, hdrlen); in gue_gro_receive()
390 data = &guehdr[1]; in gue_gro_receive()
392 if (guehdr->flags & GUE_FLAG_PRIV) { in gue_gro_receive()
398 guehdr = gue_gro_remcsum(skb, off, guehdr, in gue_gro_receive()
403 if (!guehdr) in gue_gro_receive()
406 data = &guehdr[1]; in gue_gro_receive()
415 const struct guehdr *guehdr2; in gue_gro_receive()
420 guehdr2 = (struct guehdr *)(p->data + off); in gue_gro_receive()
425 if (guehdr->word != guehdr2->word) { in gue_gro_receive()
431 if (guehdr->hlen && memcmp(&guehdr[1], &guehdr2[1], in gue_gro_receive()
432 guehdr->hlen << 2)) { in gue_gro_receive()
438 proto = guehdr->proto_ctype; in gue_gro_receive()
469 struct guehdr *guehdr = (struct guehdr *)(skb->data + nhoff); in gue_gro_complete() local
476 switch (guehdr->version) { in gue_gro_complete()
478 proto = guehdr->proto_ctype; in gue_gro_complete()
479 guehlen = sizeof(*guehdr) + (guehdr->hlen << 2); in gue_gro_complete()
482 switch (((struct iphdr *)guehdr)->version) { in gue_gro_complete()
931 len = sizeof(struct udphdr) + sizeof(struct guehdr); in gue_encap_hlen()
963 struct guehdr *guehdr; in __gue_build_header() local
986 hdrlen = sizeof(struct guehdr) + optlen; in __gue_build_header()
990 guehdr = (struct guehdr *)skb->data; in __gue_build_header()
992 guehdr->control = 0; in __gue_build_header()
993 guehdr->version = 0; in __gue_build_header()
994 guehdr->hlen = optlen >> 2; in __gue_build_header()
995 guehdr->flags = 0; in __gue_build_header()
996 guehdr->proto_ctype = *protocol; in __gue_build_header()
998 data = &guehdr[1]; in __gue_build_header()
1003 guehdr->flags |= GUE_FLAG_PRIV; in __gue_build_header()
1103 struct guehdr *guehdr; in gue_err() local
1107 len = sizeof(struct udphdr) + sizeof(struct guehdr); in gue_err()
1111 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_err()
1113 switch (guehdr->version) { in gue_err()
1120 switch (((struct iphdr *)guehdr)->version) { in gue_err()
1138 if (guehdr->control) in gue_err()
1141 optlen = guehdr->hlen << 2; in gue_err()
1146 guehdr = (struct guehdr *)&udp_hdr(skb)[1]; in gue_err()
1147 if (validate_gue_flags(guehdr, optlen)) in gue_err()
1154 if (guehdr->proto_ctype == IPPROTO_UDP || in gue_err()
1155 guehdr->proto_ctype == IPPROTO_UDPLITE) in gue_err()
1159 ret = gue_err_proto_handler(guehdr->proto_ctype, skb, info); in gue_err()