summaryrefslogtreecommitdiffstats
path: root/include/net/inet6_hashtables.h
diff options
context:
space:
mode:
authorWANG Cong2014-11-04 19:59:47 +0100
committerDavid S. Miller2014-11-05 22:59:04 +0100
commit25de4668d094f00e44a8f2428dd3c1a4ecfa0053 (patch)
treefeb481e52578e7278538814191777d500cb2ccc1 /include/net/inet6_hashtables.h
parentnet: Add and use skb_copy_datagram_msg() helper. (diff)
downloadkernel-qcow2-linux-25de4668d094f00e44a8f2428dd3c1a4ecfa0053.tar.gz
kernel-qcow2-linux-25de4668d094f00e44a8f2428dd3c1a4ecfa0053.tar.xz
kernel-qcow2-linux-25de4668d094f00e44a8f2428dd3c1a4ecfa0053.zip
ipv6: move INET6_MATCH() to include/net/inet6_hashtables.h
It is only used in net/ipv6/inet6_hashtables.c. Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet6_hashtables.h')
-rw-r--r--include/net/inet6_hashtables.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/inet6_hashtables.h b/include/net/inet6_hashtables.h
index d1d272843b3b..9201afe083fa 100644
--- a/include/net/inet6_hashtables.h
+++ b/include/net/inet6_hashtables.h
@@ -99,4 +99,14 @@ struct sock *inet6_lookup(struct net *net, struct inet_hashinfo *hashinfo,
const struct in6_addr *daddr, const __be16 dport,
const int dif);
#endif /* IS_ENABLED(CONFIG_IPV6) */
+
+#define INET6_MATCH(__sk, __net, __saddr, __daddr, __ports, __dif) \
+ (((__sk)->sk_portpair == (__ports)) && \
+ ((__sk)->sk_family == AF_INET6) && \
+ ipv6_addr_equal(&(__sk)->sk_v6_daddr, (__saddr)) && \
+ ipv6_addr_equal(&(__sk)->sk_v6_rcv_saddr, (__daddr)) && \
+ (!(__sk)->sk_bound_dev_if || \
+ ((__sk)->sk_bound_dev_if == (__dif))) && \
+ net_eq(sock_net(__sk), (__net)))
+
#endif /* _INET6_HASHTABLES_H */