]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/net/ipv6.h
pkt_sched: Move gso_skb into Qdisc.
[karo-tx-linux.git] / include / net / ipv6.h
index 49c48983019f89aac0f9732b83db492291515095..c2222ee74d66281e04119bcde109a645a49e0ef8 100644 (file)
@@ -4,8 +4,6 @@
  *     Authors:
  *     Pedro Roque             <roque@di.fc.ul.pt>
  *
- *     $Id: ipv6.h,v 1.1 2002/05/20 15:13:07 jgrimm Exp $
- *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
  *      as published by the Free Software Foundation; either version
@@ -367,6 +365,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_loopback(const struct in6_addr *a)
+{
+       return ((a->s6_addr32[0] | a->s6_addr32[1] |
+                a->s6_addr32[2] | (a->s6_addr32[3] ^ htonl(1))) == 0);
+}
+
 static inline int ipv6_addr_v4mapped(const struct in6_addr *a)
 {
        return ((a->s6_addr32[0] | a->s6_addr32[1] |
@@ -383,6 +387,15 @@ static inline int ipv6_addr_orchid(const struct in6_addr *a)
                == htonl(0x20010010));
 }
 
+static inline void ipv6_addr_set_v4mapped(const __be32 addr,
+                                         struct in6_addr *v4mapped)
+{
+       ipv6_addr_set(v4mapped,
+                       0, 0,
+                       htonl(0x0000FFFF),
+                       addr);
+}
+
 /*
  * find the first different bit between two addresses
  * length of address must be a multiple of 32bits