Lines Matching refs:uh
181 struct udphdr *uh = udp_hdr(skb); in __skb_udp_tunnel_segment() local
199 partial = (__force __wsum)uh->len; in __skb_udp_tunnel_segment()
202 partial = csum_sub(csum_unfold(uh->check), partial); in __skb_udp_tunnel_segment()
275 uh = udp_hdr(skb); in __skb_udp_tunnel_segment()
282 uh->len = htons(skb_shinfo(skb)->gso_size + in __skb_udp_tunnel_segment()
284 skb->head - (unsigned char *)uh); in __skb_udp_tunnel_segment()
286 uh->len = htons(len); in __skb_udp_tunnel_segment()
292 uh->check = ~csum_fold(csum_add(partial, in __skb_udp_tunnel_segment()
296 uh->check = gso_make_checksum(skb, ~uh->check); in __skb_udp_tunnel_segment()
297 if (uh->check == 0) in __skb_udp_tunnel_segment()
298 uh->check = CSUM_MANGLED_0; in __skb_udp_tunnel_segment()
352 struct udphdr *uh; in __udpv4_gso_segment_csum() local
358 uh = udp_hdr(seg); in __udpv4_gso_segment_csum()
361 if (uh->check) { in __udpv4_gso_segment_csum()
362 inet_proto_csum_replace4(&uh->check, seg, *oldip, *newip, in __udpv4_gso_segment_csum()
364 inet_proto_csum_replace2(&uh->check, seg, *oldport, *newport, in __udpv4_gso_segment_csum()
366 if (!uh->check) in __udpv4_gso_segment_csum()
367 uh->check = CSUM_MANGLED_0; in __udpv4_gso_segment_csum()
378 struct udphdr *uh, *uh2; in __udpv4_gso_segment_list_csum() local
382 uh = udp_hdr(seg); in __udpv4_gso_segment_list_csum()
397 &uh2->source, &uh->source); in __udpv4_gso_segment_list_csum()
400 &uh2->dest, &uh->dest); in __udpv4_gso_segment_list_csum()
411 struct udphdr *uh = udp_hdr(seg); in __udpv6_gso_segment_csum() local
416 if (uh->check) { in __udpv6_gso_segment_csum()
417 inet_proto_csum_replace16(&uh->check, seg, oldip->s6_addr32, in __udpv6_gso_segment_csum()
420 inet_proto_csum_replace2(&uh->check, seg, *oldport, newport, in __udpv6_gso_segment_csum()
422 if (!uh->check) in __udpv6_gso_segment_csum()
423 uh->check = CSUM_MANGLED_0; in __udpv6_gso_segment_csum()
433 const struct udphdr *uh; in __udpv6_gso_segment_list_csum() local
439 uh = udp_hdr(seg); in __udpv6_gso_segment_list_csum()
444 if (!(*(const u32 *)&uh->source ^ *(const u32 *)&uh2->source) && in __udpv6_gso_segment_list_csum()
454 &uh2->source, uh->source); in __udpv6_gso_segment_list_csum()
456 &uh2->dest, uh->dest); in __udpv6_gso_segment_list_csum()
486 struct udphdr *uh; in __udp_gso_segment() local
494 if (gso_skb->len <= sizeof(*uh) + mss) in __udp_gso_segment()
510 skb_shinfo(gso_skb)->gso_segs = DIV_ROUND_UP(gso_skb->len - sizeof(*uh), in __udp_gso_segment()
517 if (skb_pagelen(gso_skb) - sizeof(*uh) == skb_shinfo(gso_skb)->gso_size) in __udp_gso_segment()
529 uh = udp_hdr(gso_skb); in __udp_gso_segment()
531 uh->check = ~udp_v6_check(gso_skb->len, in __udp_gso_segment()
535 uh->check = ~udp_v4_check(gso_skb->len, in __udp_gso_segment()
540 skb_pull(gso_skb, sizeof(*uh)); in __udp_gso_segment()
566 uh = udp_hdr(seg); in __udp_gso_segment()
574 newlen = htons(sizeof(*uh) + mss); in __udp_gso_segment()
575 check = csum16_add(csum16_sub(uh->check, uh->len), newlen); in __udp_gso_segment()
587 uh->len = newlen; in __udp_gso_segment()
588 uh->check = check; in __udp_gso_segment()
593 uh->check = gso_make_checksum(seg, ~check) ? : in __udp_gso_segment()
597 uh = udp_hdr(seg); in __udp_gso_segment()
603 check = csum16_add(csum16_sub(uh->check, uh->len), newlen); in __udp_gso_segment()
605 uh->len = newlen; in __udp_gso_segment()
606 uh->check = check; in __udp_gso_segment()
611 uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0; in __udp_gso_segment()
643 struct udphdr *uh; in udp4_ufo_fragment() local
671 uh = udp_hdr(skb); in udp4_ufo_fragment()
674 uh->check = 0; in udp4_ufo_fragment()
676 uh->check = udp_v4_check(skb->len, iph->saddr, iph->daddr, csum); in udp4_ufo_fragment()
677 if (uh->check == 0) in udp4_ufo_fragment()
678 uh->check = CSUM_MANGLED_0; in udp4_ufo_fragment()
702 struct udphdr *uh = udp_gro_udphdr(skb); in udp_gro_receive_segment() local
711 if (!uh->check) { in udp_gro_receive_segment()
717 ulen = ntohs(uh->len); in udp_gro_receive_segment()
718 if (ulen <= sizeof(*uh) || ulen != skb_gro_len(skb)) { in udp_gro_receive_segment()
732 if ((*(u32 *)&uh->source != *(u32 *)&uh2->source)) { in udp_gro_receive_segment()
742 flush = gro_receive_network_flush(uh, uh2, p); in udp_gro_receive_segment()
766 skb_gro_postpull_rcsum(skb, uh, in udp_gro_receive_segment()
785 struct udphdr *uh, struct sock *sk) in udp_gro_receive() argument
818 (uh->check && skb->ip_summed != CHECKSUM_PARTIAL && in udp_gro_receive()
837 if ((*(u32 *)&uh->source != *(u32 *)&uh2->source) || in udp_gro_receive()
838 (!uh->check ^ !uh2->check)) { in udp_gro_receive()
845 skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); in udp_gro_receive()
876 struct udphdr *uh = udp_gro_udphdr(skb); in udp4_gro_receive() local
880 if (unlikely(!uh)) in udp4_gro_receive()
887 if (skb_gro_checksum_validate_zero_check(skb, IPPROTO_UDP, uh->check, in udp4_gro_receive()
890 else if (uh->check) in udp4_gro_receive()
897 sk = udp4_gro_lookup_skb(skb, uh->source, uh->dest); in udp4_gro_receive()
899 pp = udp_gro_receive(head, skb, uh, sk); in udp4_gro_receive()
909 struct udphdr *uh = udp_hdr(skb); in udp_gro_complete_segment() local
911 skb->csum_start = (unsigned char *)uh - skb->head; in udp_gro_complete_segment()
928 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp_gro_complete() local
932 uh->len = newlen; in udp_gro_complete()
935 udp4_lib_lookup_skb, skb, uh->source, uh->dest); in udp_gro_complete()
937 skb_shinfo(skb)->gso_type = uh->check ? SKB_GSO_UDP_TUNNEL_CSUM in udp_gro_complete()
966 struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); in udp4_gro_complete() local
970 uh->len = htons(skb->len - nhoff); in udp4_gro_complete()
980 if (uh->check) in udp4_gro_complete()
981 uh->check = ~udp_v4_check(skb->len - nhoff, iph->saddr, in udp4_gro_complete()