Lines Matching refs:uh
23 struct udphdr *uh = udp_hdr(skb); in __skb_udp_tunnel_segment() local
41 partial = (__force __wsum)uh->len; in __skb_udp_tunnel_segment()
44 partial = csum_sub(csum_unfold(uh->check), partial); in __skb_udp_tunnel_segment()
114 uh = udp_hdr(skb); in __skb_udp_tunnel_segment()
121 uh->len = htons(skb_shinfo(skb)->gso_size + in __skb_udp_tunnel_segment()
123 skb->head - (unsigned char *)uh); in __skb_udp_tunnel_segment()
125 uh->len = htons(len); in __skb_udp_tunnel_segment()
131 uh->check = ~csum_fold(csum_add(partial, in __skb_udp_tunnel_segment()
135 uh->check = gso_make_checksum(skb, ~uh->check); in __skb_udp_tunnel_segment()
136 if (uh->check == 0) in __skb_udp_tunnel_segment()
137 uh->check = CSUM_MANGLED_0; in __skb_udp_tunnel_segment()
193 struct udphdr *uh; in __udp_gso_segment() local
200 if (gso_skb->len <= sizeof(*uh) + mss) in __udp_gso_segment()
203 skb_pull(gso_skb, sizeof(*uh)); in __udp_gso_segment()
225 uh = udp_hdr(seg); in __udp_gso_segment()
233 newlen = htons(sizeof(*uh) + mss); in __udp_gso_segment()
234 check = csum16_add(csum16_sub(uh->check, uh->len), newlen); in __udp_gso_segment()
246 uh->len = newlen; in __udp_gso_segment()
247 uh->check = check; in __udp_gso_segment()
252 uh->check = gso_make_checksum(seg, ~check) ? : in __udp_gso_segment()
256 uh = udp_hdr(seg); in __udp_gso_segment()
262 check = csum16_add(csum16_sub(uh->check, uh->len), newlen); in __udp_gso_segment()
264 uh->len = newlen; in __udp_gso_segment()
265 uh->check = check; in __udp_gso_segment()
270 uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0; in __udp_gso_segment()
294 struct udphdr *uh; in udp4_ufo_fragment() local
322 uh = udp_hdr(skb); in udp4_ufo_fragment()
325 uh->check = 0; in udp4_ufo_fragment()
327 uh->check = udp_v4_check(skb->len, iph->saddr, iph->daddr, csum); in udp4_ufo_fragment()
328 if (uh->check == 0) in udp4_ufo_fragment()
329 uh->check = CSUM_MANGLED_0; in udp4_ufo_fragment()
352 struct udphdr *uh = udp_hdr(skb); in udp_gro_receive_segment() local
359 if (!uh->check) { in udp_gro_receive_segment()
365 ulen = ntohs(uh->len); in udp_gro_receive_segment()
366 if (ulen <= sizeof(*uh) || ulen != skb_gro_len(skb)) { in udp_gro_receive_segment()
372 skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); in udp_gro_receive_segment()
381 if ((*(u32 *)&uh->source != *(u32 *)&uh2->source)) { in udp_gro_receive_segment()
407 struct udphdr *uh, udp_lookup_t lookup) in udp_gro_receive() argument
418 udp4_lib_lookup_skb, skb, uh->source, uh->dest); in udp_gro_receive()
449 if ((*(u32 *)&uh->source != *(u32 *)&uh2->source) || in udp_gro_receive()
450 (!uh->check ^ !uh2->check)) { in udp_gro_receive()
457 skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); in udp_gro_receive()
470 struct udphdr *uh = udp_gro_udphdr(skb); in udp4_gro_receive() local
472 if (unlikely(!uh) || !static_branch_unlikely(&udp_encap_needed_key)) in udp4_gro_receive()
479 if (skb_gro_checksum_validate_zero_check(skb, IPPROTO_UDP, uh->check, in udp4_gro_receive()
482 else if (uh->check) in udp4_gro_receive()
483 skb_gro_checksum_try_convert(skb, IPPROTO_UDP, uh->check, in udp4_gro_receive()
487 return udp_gro_receive(head, skb, uh, udp4_lib_lookup_skb); in udp4_gro_receive()
496 struct udphdr *uh = udp_hdr(skb); in udp_gro_complete_segment() local
498 skb->csum_start = (unsigned char *)uh - skb->head; in udp_gro_complete_segment()
511 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp_gro_complete() local
515 uh->len = newlen; in udp_gro_complete()
519 udp4_lib_lookup_skb, skb, uh->source, uh->dest); in udp_gro_complete()
523 skb_shinfo(skb)->gso_type = uh->check ? SKB_GSO_UDP_TUNNEL_CSUM in udp_gro_complete()
545 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp4_gro_complete() local
547 if (uh->check) in udp4_gro_complete()
548 uh->check = ~udp_v4_check(skb->len - nhoff, iph->saddr, in udp4_gro_complete()