diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2016-04-08 05:18:13 +0100 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2016-04-09 23:36:44 +0000 |
commit | 320726b83e2096d9431f28208437a738b31d8ad9 (patch) | |
tree | a115f574dcefddb80f81de55efd8b59c539ec283 /wsutil | |
parent | bf302d23c957e674f421cad627d1a3034a25e9f8 (diff) |
Move IPv6 address utility functions to wsutil
Change-Id: Ica8babbf4760b02e4840557fc61241152b2763c5
Reviewed-on: https://code.wireshark.org/review/13025
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: João Valverde <j@v6e.pt>
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 |