Lines Matching defs:guehdr

90 static struct guehdr *gue_remcsum(struct sk_buff *skb, struct guehdr *guehdr,
101 return guehdr;
105 guehdr = (struct guehdr *)&udp_hdr(skb)[1];
107 skb_remcsum_process(skb, (void *)guehdr + hdrlen,
110 return guehdr;
113 static int gue_control_message(struct sk_buff *skb, struct guehdr *guehdr)
124 struct guehdr *guehdr;
132 len = sizeof(struct udphdr) + sizeof(struct guehdr);
136 guehdr = (struct guehdr *)&udp_hdr(skb)[1];
138 switch (guehdr->version) {
147 switch (((struct iphdr *)guehdr)->version) {
168 optlen = guehdr->hlen << 2;
174 /* guehdr may change after pull */
175 guehdr = (struct guehdr *)&udp_hdr(skb)[1];
177 if (validate_gue_flags(guehdr, optlen))
180 hdrlen = sizeof(struct guehdr) + optlen;
188 /* Pull csum through the guehdr now . This can be used if
193 data = &guehdr[1];
195 if (guehdr->flags & GUE_FLAG_PRIV) {
201 guehdr = gue_remcsum(skb, guehdr, data + doffset,
202 hdrlen, guehdr->proto_ctype,
205 if (!guehdr)
208 data = &guehdr[1];
214 if (unlikely(guehdr->control))
215 return gue_control_message(skb, guehdr);
217 proto_ctype = guehdr->proto_ctype;
299 static struct guehdr *gue_gro_remcsum(struct sk_buff *skb, unsigned int off,
300 struct guehdr *guehdr, void *data,
309 return guehdr;
314 guehdr = skb_gro_remcsum_process(skb, (void *)guehdr, off, hdrlen,
319 return guehdr;
329 struct guehdr *guehdr;
344 len = off + sizeof(*guehdr);
346 guehdr = skb_gro_header(skb, len, off);
347 if (unlikely(!guehdr))
350 switch (guehdr->version) {
354 switch (((struct iphdr *)guehdr)->version) {
369 optlen = guehdr->hlen << 2;
373 guehdr = skb_gro_header_slow(skb, len, off);
374 if (unlikely(!guehdr))
378 if (unlikely(guehdr->control) || guehdr->version != 0 ||
379 validate_gue_flags(guehdr, optlen))
382 hdrlen = sizeof(*guehdr) + optlen;
384 /* Adjust NAPI_GRO_CB(skb)->csum to account for guehdr,
387 skb_gro_postpull_rcsum(skb, guehdr, hdrlen);
389 data = &guehdr[1];
391 if (guehdr->flags & GUE_FLAG_PRIV) {
397 guehdr = gue_gro_remcsum(skb, off, guehdr,
402 if (!guehdr)
405 data = &guehdr[1];
414 const struct guehdr *guehdr2;
419 guehdr2 = (struct guehdr *)(p->data + off);
424 if (guehdr->word != guehdr2->word) {
430 if (guehdr->hlen && memcmp(&guehdr[1], &guehdr2[1],
431 guehdr->hlen << 2)) {
437 proto = guehdr->proto_ctype;
467 struct guehdr *guehdr = (struct guehdr *)(skb->data + nhoff);
473 switch (guehdr->version) {
475 proto = guehdr->proto_ctype;
476 guehlen = sizeof(*guehdr) + (guehdr->hlen << 2);
479 switch (((struct iphdr *)guehdr)->version) {
927 len = sizeof(struct udphdr) + sizeof(struct guehdr);
959 struct guehdr *guehdr;
982 hdrlen = sizeof(struct guehdr) + optlen;
986 guehdr = (struct guehdr *)skb->data;
988 guehdr->control = 0;
989 guehdr->version = 0;
990 guehdr->hlen = optlen >> 2;
991 guehdr->flags = 0;
992 guehdr->proto_ctype = *protocol;
994 data = &guehdr[1];
999 guehdr->flags |= GUE_FLAG_PRIV;
1099 struct guehdr *guehdr;
1103 len = sizeof(struct udphdr) + sizeof(struct guehdr);
1107 guehdr = (struct guehdr *)&udp_hdr(skb)[1];
1109 switch (guehdr->version) {
1116 switch (((struct iphdr *)guehdr)->version) {
1134 if (guehdr->control)
1137 optlen = guehdr->hlen << 2;
1142 guehdr = (struct guehdr *)&udp_hdr(skb)[1];
1143 if (validate_gue_flags(guehdr, optlen))
1150 if (guehdr->proto_ctype == IPPROTO_UDP ||
1151 guehdr->proto_ctype == IPPROTO_UDPLITE)
1155 ret = gue_err_proto_handler(guehdr->proto_ctype, skb, info);