summaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/005-backport_skb_get_hash_perturb.patch
blob: 29bccc1e995f910ff6d1aeaf0829e9bdfe4f72d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--- a/backport-include/linux/skbuff.h
+++ b/backport-include/linux/skbuff.h
@@ -305,6 +305,19 @@ static inline void skb_free_frag(void *d
 {
 	put_page(virt_to_head_page(data));
 }
+
+#include <net/flow_keys.h>
+#include <linux/jhash.h>
+
+static inline u32 skb_get_hash_perturb(struct sk_buff *skb, u32 key)
+{
+	struct flow_keys keys;
+
+	skb_flow_dissect(skb, &keys);
+	return jhash_3words((__force u32)keys.dst,
+			    (__force u32)keys.src ^ keys.ip_proto,
+			    (__force u32)keys.ports, key);
+}
 #endif
 
 #endif /* __BACKPORT_SKBUFF_H */