NAME

  tst_addr_and_pro_family - IPv6 Address Family and Protocol Family


PURPOSE

  Check IPv6 Address' size and structure


SYNOPSIS

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


TEST PROCEDURE

  1. Check IPv6 Address' size
  2. Check IPv6 Address' structure


NOTE

  None


REFERENCE

  RFC 3493
  3.2 IPv6 Address Structure
     A new in6_addr structure holds a single IPv6 address and is defined
     as a result of including <netinet/in.h>:
        struct in6_addr {
            uint8_t  s6_addr[16];      \* IPv6 address *\
        };
     This data structure contains an array of sixteen 8-bit elements,
     which make up one 128-bit IPv6 address.  The IPv6 address is stored
     in network byte order.
     The structure in6_addr above is usually implemented with an embedded
     union with extra fields that force the desired alignment level in a
     manner similar to BSD implementations of "struct in_addr".  Those
     additional implementation details are omitted here for simplicity.
     An example is as follows:
     struct in6_addr {
          union {
              uint8_t  _S6_u8[16];
              uint32_t _S6_u32[4];
              uint64_t _S6_u64[2];
          } _S6_un;
     };
     #define s6_addr _S6_un._S6_u8