NAME

  tst_is_addr_sitelocal - Use IN6_IS_ADDR_SITELOCAL to test for special IPv6 addresses


PURPOSE

  To check whether macro IN6_IS_ADDR_SITELOCAL is works correctly.


SYNOPSIS

  ./tst_is_addr_sitelocal [-tooloption ...]
    -tooloption : v6api tool option


TEST PROCEDURE

  1. Test for IPv6 addresses of site-local scope, should return true
  2. Test for IPv6 addresses of link-local scope, should return false
  3. Test for IPv6 multicast addresses of site-local scope, should return false
  4. Test for IPv6 loopback address (::1), should return false


NOTE

  None


REFERENCE

  RFC 3493
  6.4 Address Testing Macros
    The following macros can be used to test for special IPv6 addresses.
    #include <netinet/in.h>
    int  IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *);
    int  IN6_IS_ADDR_LOOPBACK    (const struct in6_addr *);
    int  IN6_IS_ADDR_MULTICAST   (const struct in6_addr *);
    int  IN6_IS_ADDR_LINKLOCAL   (const struct in6_addr *);
    int  IN6_IS_ADDR_SITELOCAL   (const struct in6_addr *);
    int  IN6_IS_ADDR_V4MAPPED    (const struct in6_addr *);
    int  IN6_IS_ADDR_V4COMPAT    (const struct in6_addr *);
    int  IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
    int  IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
    int  IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
    int  IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *);
    int  IN6_IS_ADDR_MC_GLOBAL   (const struct in6_addr *);
    The first seven macros return true if the address is of the specified
    type, or false otherwise.  The last five test the scope of a
    multicast address and return true if the address is a multicast
    address of the specified scope or false if the address is either not
    a multicast address or not of the specified scope.
    Note that IN6_IS_ADDR_LINKLOCAL and IN6_IS_ADDR_SITELOCAL return true
    only for the two types of local-use IPv6 unicast addresses (Link-
    Local and Site-Local) defined in [2], and that by this definition,
    the IN6_IS_ADDR_LINKLOCAL macro returns false for the IPv6 loopback
    address (::1).  These two macros do not return true for IPv6
    multicast addresses of either link-local scope or site-local scope.