summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBrian Haley <brian.haley@hp.com>2007-08-25 06:16:08 (GMT)
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 23:48:32 (GMT)
commite773e4faa19c54c2f32ddd16add2919588488bd9 (patch)
tree316395a9c687155362913ec1c588c0217233f67e /include
parent6f4fc423b96c8fdf6f5c8b8ad79b75b7fb5a5c59 (diff)
downloadlinux-e773e4faa19c54c2f32ddd16add2919588488bd9.tar.xz
[IPV6]: Add v4mapped address inline
Add v4mapped address inline to avoid calls to ipv6_addr_type(). Signed-off-by: Brian Haley <brian.haley@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/ipv6.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 9059e0e..9573c8d 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -377,6 +377,12 @@ static inline int ipv6_addr_any(const struct in6_addr *a)
a->s6_addr32[2] | a->s6_addr32[3] ) == 0);
}
+static inline int ipv6_addr_v4mapped(const struct in6_addr *a)
+{
+ return ((a->s6_addr32[0] | a->s6_addr32[1]) == 0 &&
+ a->s6_addr32[2] == htonl(0x0000ffff));
+}
+
/*
* find the first different bit between two addresses
* length of address must be a multiple of 32bits