Loading include/net/checksum.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,4 +92,5 @@ static inline __wsum csum_unfold(__sum16 n) return (__force __wsum)n; } #define CSUM_MANGLED_0 ((__force __sum16)0xffff) #endif net/ipv4/ipvs/ip_vs_proto_udp.c +3 −3 Original line number Diff line number Diff line Loading @@ -125,7 +125,7 @@ udp_fast_csum_update(struct udphdr *uhdr, __be32 oldip, __be32 newip, ip_vs_check_diff(oldport ^ htons(0xFFFF), newport, uhdr->check)); if (!uhdr->check) uhdr->check = -1; uhdr->check = CSUM_MANGLED_0; } static int Loading Loading @@ -173,7 +173,7 @@ udp_snat_handler(struct sk_buff **pskb, cp->protocol, (*pskb)->csum); if (udph->check == 0) udph->check = -1; udph->check = CSUM_MANGLED_0; IP_VS_DBG(11, "O-pkt: %s O-csum=%d (+%zd)\n", pp->name, udph->check, (char*)&(udph->check) - (char*)udph); Loading Loading @@ -228,7 +228,7 @@ udp_dnat_handler(struct sk_buff **pskb, cp->protocol, (*pskb)->csum); if (udph->check == 0) udph->check = -1; udph->check = CSUM_MANGLED_0; (*pskb)->ip_summed = CHECKSUM_UNNECESSARY; } return 1; Loading net/ipv4/netfilter/ip_nat_helper.c +1 −1 Original line number Diff line number Diff line Loading @@ -264,7 +264,7 @@ ip_nat_mangle_udp_packet(struct sk_buff **pskb, csum_partial((char *)udph, datalen, 0)); if (!udph->check) udph->check = -1; udph->check = CSUM_MANGLED_0; } else udph->check = nf_proto_csum_update(*pskb, htons(oldlen) ^ htons(0xFFFF), Loading net/ipv4/netfilter/ip_nat_proto_udp.c +1 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ udp_manip_pkt(struct sk_buff **pskb, *portptr ^ htons(0xFFFF), newport, hdr->check, 0); if (!hdr->check) hdr->check = -1; hdr->check = CSUM_MANGLED_0; } *portptr = newport; return 1; Loading net/ipv4/udp.c +2 −2 Original line number Diff line number Diff line Loading @@ -441,7 +441,7 @@ static void udp4_hwcsum_outgoing(struct sock *sk, struct sk_buff *skb, uh->check = csum_tcpudp_magic(src, dst, len, IPPROTO_UDP, csum); if (uh->check == 0) uh->check = -1; uh->check = CSUM_MANGLED_0; } } Loading Loading @@ -490,7 +490,7 @@ int udp_push_pending_frames(struct sock *sk, struct udp_sock *up) uh->check = csum_tcpudp_magic(fl->fl4_src, fl->fl4_dst, up->len, sk->sk_protocol, csum ); if (uh->check == 0) uh->check = -1; uh->check = CSUM_MANGLED_0; send: err = ip_push_pending_frames(sk); Loading Loading
include/net/checksum.h +1 −0 Original line number Diff line number Diff line Loading @@ -92,4 +92,5 @@ static inline __wsum csum_unfold(__sum16 n) return (__force __wsum)n; } #define CSUM_MANGLED_0 ((__force __sum16)0xffff) #endif
net/ipv4/ipvs/ip_vs_proto_udp.c +3 −3 Original line number Diff line number Diff line Loading @@ -125,7 +125,7 @@ udp_fast_csum_update(struct udphdr *uhdr, __be32 oldip, __be32 newip, ip_vs_check_diff(oldport ^ htons(0xFFFF), newport, uhdr->check)); if (!uhdr->check) uhdr->check = -1; uhdr->check = CSUM_MANGLED_0; } static int Loading Loading @@ -173,7 +173,7 @@ udp_snat_handler(struct sk_buff **pskb, cp->protocol, (*pskb)->csum); if (udph->check == 0) udph->check = -1; udph->check = CSUM_MANGLED_0; IP_VS_DBG(11, "O-pkt: %s O-csum=%d (+%zd)\n", pp->name, udph->check, (char*)&(udph->check) - (char*)udph); Loading Loading @@ -228,7 +228,7 @@ udp_dnat_handler(struct sk_buff **pskb, cp->protocol, (*pskb)->csum); if (udph->check == 0) udph->check = -1; udph->check = CSUM_MANGLED_0; (*pskb)->ip_summed = CHECKSUM_UNNECESSARY; } return 1; Loading
net/ipv4/netfilter/ip_nat_helper.c +1 −1 Original line number Diff line number Diff line Loading @@ -264,7 +264,7 @@ ip_nat_mangle_udp_packet(struct sk_buff **pskb, csum_partial((char *)udph, datalen, 0)); if (!udph->check) udph->check = -1; udph->check = CSUM_MANGLED_0; } else udph->check = nf_proto_csum_update(*pskb, htons(oldlen) ^ htons(0xFFFF), Loading
net/ipv4/netfilter/ip_nat_proto_udp.c +1 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ udp_manip_pkt(struct sk_buff **pskb, *portptr ^ htons(0xFFFF), newport, hdr->check, 0); if (!hdr->check) hdr->check = -1; hdr->check = CSUM_MANGLED_0; } *portptr = newport; return 1; Loading
net/ipv4/udp.c +2 −2 Original line number Diff line number Diff line Loading @@ -441,7 +441,7 @@ static void udp4_hwcsum_outgoing(struct sock *sk, struct sk_buff *skb, uh->check = csum_tcpudp_magic(src, dst, len, IPPROTO_UDP, csum); if (uh->check == 0) uh->check = -1; uh->check = CSUM_MANGLED_0; } } Loading Loading @@ -490,7 +490,7 @@ int udp_push_pending_frames(struct sock *sk, struct udp_sock *up) uh->check = csum_tcpudp_magic(fl->fl4_src, fl->fl4_dst, up->len, sk->sk_protocol, csum ); if (uh->check == 0) uh->check = -1; uh->check = CSUM_MANGLED_0; send: err = ip_push_pending_frames(sk); Loading