#ifdef __KERNEL__
#include <net/inet_sock.h>
#include <linux/skbuff.h>
+#include <net/netns/hash.h>
static inline struct udphdr *udp_hdr(const struct sk_buff *skb)
{
#define UDP_HTABLE_SIZE 128
-static inline int udp_hashfn(const unsigned num)
+static inline int udp_hashfn(struct net *net, const unsigned num)
{
- return num & (UDP_HTABLE_SIZE - 1);
+ return (num + net_hash_mix(net)) & (UDP_HTABLE_SIZE - 1);
}
struct udp_sock {