NAME

  tst_is_addr_loopback - Use IN6_IS_ADDR_LOOPBACK to test for special IPv6 addresses


PURPOSE

  To check whether macro IN6_IS_ADDR_LOOPBACK is works correctly.


SYNOPSIS

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


TEST PROCEDURE

  1. Test for IPv6 loopback address, should return true
  2. Test for IPv6 unspecified address, 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.