diff options
Diffstat (limited to 'wsutil')
-rw-r--r-- | wsutil/inet_ipv6.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/wsutil/inet_ipv6.h b/wsutil/inet_ipv6.h index 85a09e7105..21543253c4 100644 --- a/wsutil/inet_ipv6.h +++ b/wsutil/inet_ipv6.h @@ -26,4 +26,34 @@ struct e_in6_addr { guint8 bytes[16]; /**< 128 bit IP6 address */ }; +/** + * Unicast Scope + * Note that we must check topmost 10 bits only, not 16 bits (see RFC2373). + */ +#if 0 /* XXX Currently unused */ +static inline gboolean in6_is_addr_link_local(struct e_in6_addr *a) { + if ((a->bytes[0] == 0xfe) && ((a->bytes[1] & 0xc0) == 0x80)) { + return TRUE; + } + return FALSE; +} + +static inline gboolean in6_is_addr_sitelocal(struct e_in6_addr *a) { + if ((a->bytes[0] == 0xfe) && ((a->bytes[1] & 0xc0) == 0xc0)) { + return TRUE; + } + return FALSE; +} +#endif + +/** + * Multicast + */ +static inline gboolean in6_is_addr_multicast(struct e_in6_addr *a) { + if (a->bytes[0] == 0xff) { + return TRUE; + } + return FALSE; +} + #endif |