| From: Ben Hutchings <ben@decadent.org.uk> |
| Date: Fri, 09 Aug 2019 20:09:49 +0100 |
| Subject: Revert "inet: update the IP ID generation algorithm to higher standards." |
| |
| This reverts commit 8b197d3ce585d6777197e0633d71e5af7d98cb35, which |
| was a stable-specific improvement to IP ID selection. I will apply |
| the upstream changes instead. |
| |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| --- a/net/ipv4/route.c |
| +++ b/net/ipv4/route.c |
| @@ -487,15 +487,13 @@ EXPORT_SYMBOL(ip_idents_reserve); |
| void __ip_select_ident(struct iphdr *iph, int segs) |
| { |
| static u32 ip_idents_hashrnd __read_mostly; |
| - static u32 ip_idents_hashrnd_extra __read_mostly; |
| u32 hash, id; |
| |
| net_get_random_once(&ip_idents_hashrnd, sizeof(ip_idents_hashrnd)); |
| - net_get_random_once(&ip_idents_hashrnd_extra, sizeof(ip_idents_hashrnd_extra)); |
| |
| hash = jhash_3words((__force u32)iph->daddr, |
| (__force u32)iph->saddr, |
| - iph->protocol ^ ip_idents_hashrnd_extra, |
| + iph->protocol, |
| ip_idents_hashrnd); |
| id = ip_idents_reserve(hash, segs); |
| iph->id = htons(id); |
| --- a/net/ipv6/ip6_output.c |
| +++ b/net/ipv6/ip6_output.c |
| @@ -541,15 +541,12 @@ static void ip6_copy_metadata(struct sk_ |
| static void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt) |
| { |
| static u32 ip6_idents_hashrnd __read_mostly; |
| - static u32 ip6_idents_hashrnd_extra __read_mostly; |
| u32 hash, id; |
| |
| net_get_random_once(&ip6_idents_hashrnd, sizeof(ip6_idents_hashrnd)); |
| - net_get_random_once(&ip6_idents_hashrnd_extra, sizeof(ip6_idents_hashrnd_extra)); |
| |
| hash = __ipv6_addr_jhash(&rt->rt6i_dst.addr, ip6_idents_hashrnd); |
| hash = __ipv6_addr_jhash(&rt->rt6i_src.addr, hash); |
| - hash = jhash_1word(hash, ip6_idents_hashrnd_extra); |
| |
| id = ip_idents_reserve(hash, 1); |
| fhdr->identification = htonl(id); |