]> err.no Git - linux-2.6/blobdiff - include/net/ipv6.h
[IPSEC]: Sync series - core changes
[linux-2.6] / include / net / ipv6.h
index 3b1d963d396caacb46c5be018aac0a89ea82d4a2..c893a1ce4b3941fcfb302b0753cf91bcccb8d9d7 100644 (file)
@@ -282,6 +282,18 @@ static inline int ipv6_addr_cmp(const struct in6_addr *a1, const struct in6_addr
        return memcmp((const void *) a1, (const void *) a2, sizeof(struct in6_addr));
 }
 
+static inline int
+ipv6_masked_addr_cmp(const struct in6_addr *a1, const struct in6_addr *m,
+                    const struct in6_addr *a2)
+{
+       unsigned int i;
+
+       for (i = 0; i < 4; i++)
+               if ((a1->s6_addr32[i] ^ a2->s6_addr32[i]) & m->s6_addr32[i])
+                       return 1;
+       return 0;
+}
+
 static inline void ipv6_addr_copy(struct in6_addr *a1, const struct in6_addr *a2)
 {
        memcpy((void *) a1, (const void *) a2, sizeof(struct in6_addr));