RFC 3542 (rfc3542) - Page 2 of 77


Advanced Sockets Application Program Interface (API) for IPv6



Alternative Format: Original Text Document



RFC 3542             Advanced Sockets API for IPv6              May 2003


Table of Contents

   1.   Introduction ..............................................  3
   2.   Common Structures and Definitions .........................  5
        2.1  The ip6_hdr Structure ................................  6
             2.1.1  IPv6 Next Header Values .......................  6
             2.1.2  IPv6 Extension Headers ........................  7
             2.1.3  IPv6 Options ..................................  8
        2.2  The icmp6_hdr Structure .............................. 10
             2.2.1  ICMPv6 Type and Code Values ................... 10
             2.2.2  ICMPv6 Neighbor Discovery Definitions ......... 11
             2.2.3  Multicast Listener Discovery Definitions ...... 14
             2.2.4  ICMPv6 Router Renumbering Definitions ......... 14
        2.3  Address Testing Macros ............................... 16
        2.4  Protocols File ....................................... 16
   3.   IPv6 Raw Sockets .......................................... 17
        3.1  Checksums ............................................ 18
        3.2  ICMPv6 Type Filtering ................................ 19
        3.3  ICMPv6 Verification of Received Packets .............. 22
   4.   Access to IPv6 and Extension Headers ...................... 22
        4.1  TCP Implications ..................................... 24
        4.2  UDP and Raw Socket Implications ...................... 25
   5.   Extensions to Socket Ancillary Data ....................... 26
        5.1  CMSG_NXTHDR .......................................... 26
        5.2  CMSG_SPACE ........................................... 26
        5.3  CMSG_LEN ............................................. 27
   6.   Packet Information ........................................ 27
        6.1  Specifying/Receiving the Interface ................... 28
        6.2  Specifying/Receiving Source/Destination Address ...... 29
        6.3  Specifying/Receiving the Hop Limit ................... 29
        6.4  Specifying the Next Hop Address ...................... 30
        6.5  Specifying/Receiving the Traffic Class value ......... 31
        6.6  Additional Errors with sendmsg() and setsockopt() .... 32
        6.7  Summary of Outgoing Interface Selection .............. 32
   7.   Routing Header Option ..................................... 33
        7.1  inet6_rth_space ...................................... 35
        7.2  inet6_rth_init ....................................... 35
        7.3  inet6_rth_add ........................................ 36
        7.4  inet6_rth_reverse .................................... 36
        7.5  inet6_rth_segments ................................... 36
        7.6  inet6_rth_getaddr .................................... 36
   8.   Hop-By-Hop Options ........................................ 37
        8.1  Receiving Hop-by-Hop Options ......................... 38
        8.2  Sending Hop-by-Hop Options ........................... 38
   9.   Destination Options ....................................... 39
        9.1  Receiving Destination Options ........................ 39
        9.2  Sending Destination Options .......................... 39
   10.  Hop-by-Hop and Destination Options Processing ............. 40



Stevens, et al.              Informational