--- 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 +#include + +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 */