NAME

  tst_with_v4_nod - Compatibility with IPv4 Nodes


PURPOSE

  Test Compatibility with IPv4 Nodes


SYNOPSIS

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


TEST PROCEDURE

  1. Check getaddrinfo can generate IPv4-mapped addresses automatically
  2. Applications can use AF_INET6 sockets to open TCP connections to IPv4 nodes, or send UDP packets to IPv4 nodes
  3. Applications can use AF_INET6 sockets to accept TCP connections from IPv4 nodes, or receive UDP packets from IPv4 nodes
  4. Check if we have N6_IS_ADDR_V4MAPPED() macro


NOTE

  None


REFERENCE

  RFC 3493
  3.7 Compatibility with IPv4 Nodes
     The API also provides a different type of compatibility: the ability
     for IPv6 applications to interoperate with IPv4 applications.  This
     feature uses the IPv4-mapped IPv6 address format defined in the IPv6
     addressing architecture specification [2].  This address format
     allows the IPv4 address of an IPv4 node to be represented as an IPv6
     address.  The IPv4 address is encoded into the low-order 32 bits of
     the IPv6 address, and the high-order 96 bits hold the fixed prefix
     0:0:0:0:0:FFFF.  IPv4-mapped addresses are written as follows:
  
        ::FFFF:<IPv4-address>
  
     These addresses can be generated automatically by the getaddrinfo()
     function, as described in Section 6.1.
  
     Applications may use AF_INET6 sockets to open TCP connections to IPv4
     nodes, or send UDP packets to IPv4 nodes, by simply encoding the
     destination's IPv4 address as an IPv4-mapped IPv6 address, and
     passing that address, within a sockaddr_in6 structure, in the
     connect() or sendto() call.  When applications use AF_INET6 sockets
     to accept TCP connections from IPv4 nodes, or receive UDP packets
     from IPv4 nodes, the system returns the peer's address to the
     application in the accept(), recvfrom(), or getpeername() call using
     a sockaddr_in6 structure encoded this way.
  
     Few applications will likely need to know which type of node they are
     interoperating with.  However, for those applications that do need to
     know, the IN6_IS_ADDR_V4MAPPED() macro, defined in Section 6.4, is
     provided.