mac80211: backport skb_get_hash_perturb() for 4.1 and older

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2016-07-03 17:56:53 +02:00
parent 70afc0bdd1
commit b174832159

View file

@ -0,0 +1,28 @@
--- a/backport-include/linux/skbuff.h
+++ b/backport-include/linux/skbuff.h
@@ -1,6 +1,8 @@
#ifndef __BACKPORT_SKBUFF_H
#define __BACKPORT_SKBUFF_H
#include_next <linux/skbuff.h>
+#include <net/flow_keys.h>
+#include <linux/jhash.h>
#include <linux/version.h>
#include <generated/utsrelease.h>
@@ -305,6 +307,16 @@ static inline void skb_free_frag(void *d
{
put_page(virt_to_head_page(data));
}
+
+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 */