16617cf57SGeorge V. Neville-Neil.\" $KAME: inet6_opt_init.3,v 1.7 2004/12/27 05:08:23 itojun Exp $ 26617cf57SGeorge V. Neville-Neil.\" 36617cf57SGeorge V. Neville-Neil.\" Copyright (C) 2004 WIDE Project. 46617cf57SGeorge V. Neville-Neil.\" All rights reserved. 56617cf57SGeorge V. Neville-Neil.\" 66617cf57SGeorge V. Neville-Neil.\" Redistribution and use in source and binary forms, with or without 76617cf57SGeorge V. Neville-Neil.\" modification, are permitted provided that the following conditions 86617cf57SGeorge V. Neville-Neil.\" are met: 96617cf57SGeorge V. Neville-Neil.\" 1. Redistributions of source code must retain the above copyright 106617cf57SGeorge V. Neville-Neil.\" notice, this list of conditions and the following disclaimer. 116617cf57SGeorge V. Neville-Neil.\" 2. Redistributions in binary form must reproduce the above copyright 126617cf57SGeorge V. Neville-Neil.\" notice, this list of conditions and the following disclaimer in the 136617cf57SGeorge V. Neville-Neil.\" documentation and/or other materials provided with the distribution. 146617cf57SGeorge V. Neville-Neil.\" 3. Neither the name of the project nor the names of its contributors 156617cf57SGeorge V. Neville-Neil.\" may be used to endorse or promote products derived from this software 166617cf57SGeorge V. Neville-Neil.\" without specific prior written permission. 176617cf57SGeorge V. Neville-Neil.\" 186617cf57SGeorge V. Neville-Neil.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 196617cf57SGeorge V. Neville-Neil.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 206617cf57SGeorge V. Neville-Neil.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 216617cf57SGeorge V. Neville-Neil.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 226617cf57SGeorge V. Neville-Neil.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 236617cf57SGeorge V. Neville-Neil.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 246617cf57SGeorge V. Neville-Neil.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 256617cf57SGeorge V. Neville-Neil.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 266617cf57SGeorge V. Neville-Neil.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 276617cf57SGeorge V. Neville-Neil.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 286617cf57SGeorge V. Neville-Neil.\" SUCH DAMAGE. 296617cf57SGeorge V. Neville-Neil.\" 30211ceb62SGordon Bergling.Dd February 25, 2023 316617cf57SGeorge V. Neville-Neil.Dt INET6_OPT_INIT 3 326617cf57SGeorge V. Neville-Neil.Os 336617cf57SGeorge V. Neville-Neil.\" 346617cf57SGeorge V. Neville-Neil.Sh NAME 356617cf57SGeorge V. Neville-Neil.Nm inet6_opt_init , 366617cf57SGeorge V. Neville-Neil.Nm inet6_opt_append , 376617cf57SGeorge V. Neville-Neil.Nm inet6_opt_finish , 386617cf57SGeorge V. Neville-Neil.Nm inet6_opt_set_val , 396617cf57SGeorge V. Neville-Neil.Nm inet6_opt_next , 406617cf57SGeorge V. Neville-Neil.Nm inet6_opt_find , 416617cf57SGeorge V. Neville-Neil.Nm inet6_opt_get_val 426617cf57SGeorge V. Neville-Neil.Nd IPv6 Hop-by-Hop and Destination Options manipulation 436617cf57SGeorge V. Neville-Neil.\" 44211ceb62SGordon Bergling.Sh LIBRARY 45211ceb62SGordon Bergling.Lb libc 466617cf57SGeorge V. Neville-Neil.Sh SYNOPSIS 476617cf57SGeorge V. Neville-Neil.In netinet/in.h 486617cf57SGeorge V. Neville-Neil.Ft "int" 496617cf57SGeorge V. Neville-Neil.Fn inet6_opt_init "void *extbuf" "socklen_t extlen" 506617cf57SGeorge V. Neville-Neil.Ft "int" 51211ceb62SGordon Bergling.Fn inet6_opt_append "void *extbuf" "socklen_t extlen" "int offset" "uint8_t type" "socklen_t len" "uint8_t align" "void **databufp" 526617cf57SGeorge V. Neville-Neil.Ft "int" 536617cf57SGeorge V. Neville-Neil.Fn inet6_opt_finish "void *extbuf" "socklen_t extlen" "int offset" 546617cf57SGeorge V. Neville-Neil.Ft "int" 556617cf57SGeorge V. Neville-Neil.Fn inet6_opt_set_val "void *databuf" "int offset" "void *val" "socklen_t vallen" 566617cf57SGeorge V. Neville-Neil.Ft "int" 57211ceb62SGordon Bergling.Fn inet6_opt_next "void *extbuf" "socklen_t extlen" "int offset" "uint8_t *typep" "socklen_t *lenp" "void **databufp" 586617cf57SGeorge V. Neville-Neil.Ft "int" 59211ceb62SGordon Bergling.Fn inet6_opt_find "void *extbuf" "socklen_t extlen" "int offset" "uint8_t type" "socklen_t *lenp" "void **databufp" 606617cf57SGeorge V. Neville-Neil.Ft "int" 6149e5b98fSRuslan Ermilov.Fn inet6_opt_get_val "void *databuf" "int offset" "void *val" "socklen_t vallen" 626617cf57SGeorge V. Neville-Neil.\" 636617cf57SGeorge V. Neville-Neil.Sh DESCRIPTION 646617cf57SGeorge V. Neville-NeilBuilding and parsing the Hop-by-Hop and Destination options is 656617cf57SGeorge V. Neville-Neilcomplicated. 666617cf57SGeorge V. Neville-NeilThe advanced sockets API defines a set of functions to 67f0002294SRuslan Ermilovhelp applications create and manipulate Hop-by-Hop and Destination 686617cf57SGeorge V. Neville-Neiloptions. 69f5796253SGeorge V. Neville-NeilThis man page describes the functions specified in 70f5796253SGeorge V. Neville-NeilIETF Draft RFC 3542. 716617cf57SGeorge V. Neville-NeilThese functions use the 726617cf57SGeorge V. Neville-Neilformatting rules specified in Appendix B in RFC 2460, i.e., that the 736617cf57SGeorge V. Neville-Neillargest field is placed last in the option. 746617cf57SGeorge V. Neville-NeilThe function prototypes 756617cf57SGeorge V. Neville-Neilfor these functions are all contained in the 766617cf57SGeorge V. Neville-Neil.In netinet/in.h 776617cf57SGeorge V. Neville-Neilheader file. 786617cf57SGeorge V. Neville-Neil.\" 796617cf57SGeorge V. Neville-Neil.Ss inet6_opt_init 806617cf57SGeorge V. Neville-NeilThe 816617cf57SGeorge V. Neville-Neil.Fn inet6_opt_init 826617cf57SGeorge V. Neville-Neilfunction 836617cf57SGeorge V. Neville-Neilreturns the number of bytes needed for an empty 846617cf57SGeorge V. Neville-Neilextension header, one without any options. 856617cf57SGeorge V. Neville-NeilIf the 86f0002294SRuslan Ermilov.Fa extbuf 876617cf57SGeorge V. Neville-Neilargument points to a valid section of memory 886617cf57SGeorge V. Neville-Neilthen the 896617cf57SGeorge V. Neville-Neil.Fn inet6_opt_init 906617cf57SGeorge V. Neville-Neilfunction also initializes the extension header's length field. 916617cf57SGeorge V. Neville-NeilWhen attempting to initialize an extension buffer passed in the 92f0002294SRuslan Ermilov.Fa extbuf 93f0002294SRuslan Ermilovargument, 946617cf57SGeorge V. Neville-Neil.Fa extlen 956617cf57SGeorge V. Neville-Neilmust be a positive multiple of 8 or else the function fails and 966617cf57SGeorge V. Neville-Neilreturns \-1 to the caller. 976617cf57SGeorge V. Neville-Neil.\" 986617cf57SGeorge V. Neville-Neil.Ss inet6_opt_append 996617cf57SGeorge V. Neville-NeilThe 1006617cf57SGeorge V. Neville-Neil.Fn inet6_opt_append 101f0002294SRuslan Ermilovfunction can perform two different jobs. 1026617cf57SGeorge V. Neville-NeilWhen a valid 1036617cf57SGeorge V. Neville-Neil.Fa extbuf 1046617cf57SGeorge V. Neville-Neilargument is supplied it appends an option to the extension buffer and 1056617cf57SGeorge V. Neville-Neilreturns the updated total length as well as a pointer to the newly 1066617cf57SGeorge V. Neville-Neilcreated option in 1076617cf57SGeorge V. Neville-Neil.Fa databufp . 1086617cf57SGeorge V. Neville-NeilIf the value 1096617cf57SGeorge V. Neville-Neilof 1106617cf57SGeorge V. Neville-Neil.Fa extbuf 1116617cf57SGeorge V. Neville-Neilis 1126617cf57SGeorge V. Neville-Neil.Dv NULL 1136617cf57SGeorge V. Neville-Neilthen the 114f0002294SRuslan Ermilov.Fn inet6_opt_append 115f0002294SRuslan Ermilovfunction only reports what the total length would 1166617cf57SGeorge V. Neville-Neilbe if the option were actually appended. 1176617cf57SGeorge V. Neville-NeilThe 1186617cf57SGeorge V. Neville-Neil.Fa len 1196617cf57SGeorge V. Neville-Neiland 1206617cf57SGeorge V. Neville-Neil.Fa align 1216617cf57SGeorge V. Neville-Neilarguments specify the length of the option and the required data 1226617cf57SGeorge V. Neville-Neilalignment which must be used when appending the option. 1236617cf57SGeorge V. Neville-NeilThe 1246617cf57SGeorge V. Neville-Neil.Fa offset 1256617cf57SGeorge V. Neville-Neilargument should be the length returned by the 1266617cf57SGeorge V. Neville-Neil.Fn inet6_opt_init 1276617cf57SGeorge V. Neville-Neilfunction or a previous call to 1286617cf57SGeorge V. Neville-Neil.Fn inet6_opt_append . 1296617cf57SGeorge V. Neville-Neil.Pp 1306617cf57SGeorge V. Neville-NeilThe 1316617cf57SGeorge V. Neville-Neil.Fa type 1326617cf57SGeorge V. Neville-Neilargument is the 8-bit option type. 1336617cf57SGeorge V. Neville-Neil.Pp 1346617cf57SGeorge V. Neville-NeilAfter 1356617cf57SGeorge V. Neville-Neil.Fn inet6_opt_append 1366617cf57SGeorge V. Neville-Neilhas been called, the application can use the buffer pointed to by 1376617cf57SGeorge V. Neville-Neil.Fa databufp 1386617cf57SGeorge V. Neville-Neildirectly, or use 1396617cf57SGeorge V. Neville-Neil.Fn inet6_opt_set_val 1406617cf57SGeorge V. Neville-Neilto specify the data to be contained in the option. 1416617cf57SGeorge V. Neville-Neil.Pp 1426617cf57SGeorge V. Neville-NeilOption types of 1436617cf57SGeorge V. Neville-Neil.Li 0 1446617cf57SGeorge V. Neville-Neiland 1456617cf57SGeorge V. Neville-Neil.Li 1 1466617cf57SGeorge V. Neville-Neilare reserved for the 1476617cf57SGeorge V. Neville-Neil.Li Pad1 1486617cf57SGeorge V. Neville-Neiland 1496617cf57SGeorge V. Neville-Neil.Li PadN 1506617cf57SGeorge V. Neville-Neiloptions. 1516617cf57SGeorge V. Neville-NeilAll other values from 2 through 255 may be used by applications. 1526617cf57SGeorge V. Neville-Neil.Pp 1536617cf57SGeorge V. Neville-NeilThe length of the option data is contained in an 8-bit value and so 1546617cf57SGeorge V. Neville-Neilmay contain any value from 0 through 255. 1556617cf57SGeorge V. Neville-Neil.Pp 1566617cf57SGeorge V. Neville-NeilThe 1576617cf57SGeorge V. Neville-Neil.Fa align 1586617cf57SGeorge V. Neville-Neilparameter must have a value of 1, 2, 4, or 8 and cannot exceed the 1596617cf57SGeorge V. Neville-Neilvalue of 1606617cf57SGeorge V. Neville-Neil.Fa len . 1616617cf57SGeorge V. Neville-NeilThe alignment values represent no alignment, 16 bit, 32 bit and 64 bit 162f0002294SRuslan Ermilovalignments, respectively. 1636617cf57SGeorge V. Neville-Neil.\" 1646617cf57SGeorge V. Neville-Neil.Ss inet6_opt_finish 1656617cf57SGeorge V. Neville-NeilThe 1666617cf57SGeorge V. Neville-Neil.Fn inet6_opt_finish 167f0002294SRuslan Ermilovfunction 1686617cf57SGeorge V. Neville-Neilcalculates the final padding necessary to make the extension header a 1696617cf57SGeorge V. Neville-Neilmultiple of 8 bytes, as required by the IPv6 extension header 1706617cf57SGeorge V. Neville-Neilspecification, and returns the extension header's updated total 1716617cf57SGeorge V. Neville-Neillength. 1726617cf57SGeorge V. Neville-NeilThe 1736617cf57SGeorge V. Neville-Neil.Fa offset 1746617cf57SGeorge V. Neville-Neilargument should be the length returned by 1756617cf57SGeorge V. Neville-Neil.Fn inet6_opt_init 1766617cf57SGeorge V. Neville-Neilor 1776617cf57SGeorge V. Neville-Neil.Fn inet6_opt_append . 1786617cf57SGeorge V. Neville-NeilWhen 1796617cf57SGeorge V. Neville-Neil.Fa extbuf 1806617cf57SGeorge V. Neville-Neilis not 1816617cf57SGeorge V. Neville-Neil.Dv NULL 1826617cf57SGeorge V. Neville-Neilthe function also sets up the appropriate padding bytes by inserting a 1836617cf57SGeorge V. Neville-NeilPad1 or PadN option of the proper length. 1846617cf57SGeorge V. Neville-Neil.Pp 1856617cf57SGeorge V. Neville-NeilIf the extension header is too small to contain the proper padding 1866617cf57SGeorge V. Neville-Neilthen an error of \-1 is returned to the caller. 1876617cf57SGeorge V. Neville-Neil.\" 1886617cf57SGeorge V. Neville-Neil.Ss inet6_opt_set_val 1896617cf57SGeorge V. Neville-NeilThe 1906617cf57SGeorge V. Neville-Neil.Fn inet6_opt_set_val 1916617cf57SGeorge V. Neville-Neilfunction inserts data items of various sizes into the data portion of 1926617cf57SGeorge V. Neville-Neilthe option. 1936617cf57SGeorge V. Neville-NeilThe 1946617cf57SGeorge V. Neville-Neil.Fa databuf 1956617cf57SGeorge V. Neville-Neilargument is a pointer to memory that was returned by the 1966617cf57SGeorge V. Neville-Neil.Fn inet6_opt_append 1976617cf57SGeorge V. Neville-Neilcall and the 198f0002294SRuslan Ermilov.Fa offset 199f0002294SRuslan Ermilovargument specifies where the option should be placed in the 2006617cf57SGeorge V. Neville-Neildata buffer. 2016617cf57SGeorge V. Neville-NeilThe 2026617cf57SGeorge V. Neville-Neil.Fa val 2036617cf57SGeorge V. Neville-Neilargument points to an area of memory containing the data to be 2046617cf57SGeorge V. Neville-Neilinserted into the extension header, and the 2056617cf57SGeorge V. Neville-Neil.Fa vallen 2066617cf57SGeorge V. Neville-Neilargument indicates how much data to copy. 2076617cf57SGeorge V. Neville-Neil.Pp 2086617cf57SGeorge V. Neville-NeilThe caller should ensure that each field is aligned on its natural 2096617cf57SGeorge V. Neville-Neilboundaries as described in Appendix B of RFC 2460. 2106617cf57SGeorge V. Neville-Neil.Pp 2116617cf57SGeorge V. Neville-NeilThe function returns the offset for the next field which is calculated as 2126617cf57SGeorge V. Neville-Neil.Fa offset 2136617cf57SGeorge V. Neville-Neil+ 2146617cf57SGeorge V. Neville-Neil.Fa vallen 2156617cf57SGeorge V. Neville-Neiland is used when composing options with multiple fields. 2166617cf57SGeorge V. Neville-Neil.\" 2176617cf57SGeorge V. Neville-Neil.Ss inet6_opt_next 2186617cf57SGeorge V. Neville-NeilThe 2196617cf57SGeorge V. Neville-Neil.Fn inet6_opt_next 2206617cf57SGeorge V. Neville-Neilfunction parses received extension headers. 2216617cf57SGeorge V. Neville-NeilThe 2226617cf57SGeorge V. Neville-Neil.Fa extbuf 2236617cf57SGeorge V. Neville-Neiland 2246617cf57SGeorge V. Neville-Neil.Fa extlen 2256617cf57SGeorge V. Neville-Neilarguments specify the location and length of the extension header 2266617cf57SGeorge V. Neville-Neilbeing parsed. 2276617cf57SGeorge V. Neville-NeilThe 2286617cf57SGeorge V. Neville-Neil.Fa offset 2296617cf57SGeorge V. Neville-Neilargument should either be zero, for the first option, or the length value 2306617cf57SGeorge V. Neville-Neilreturned by a previous call to 2316617cf57SGeorge V. Neville-Neil.Fn inet6_opt_next 2326617cf57SGeorge V. Neville-Neilor 2336617cf57SGeorge V. Neville-Neil.Fn inet6_opt_find . 2346617cf57SGeorge V. Neville-NeilThe return value specifies the position where to continue scanning the 2356617cf57SGeorge V. Neville-Neilextension buffer. 2366617cf57SGeorge V. Neville-NeilThe option is returned in the arguments 2376617cf57SGeorge V. Neville-Neil.Fa typep , lenp , 2386617cf57SGeorge V. Neville-Neiland 239f0002294SRuslan Ermilov.Fa databufp , 240f0002294SRuslan Ermilovwhich 2416617cf57SGeorge V. Neville-Neilpoint to the 8-bit option type, the 8-bit option length and the option 242f0002294SRuslan Ermilovdata, respectively. 2436617cf57SGeorge V. Neville-NeilThis function does not return any PAD1 or PADN options. 244f0002294SRuslan ErmilovWhen an error occurs or there are no more options, the return 2456617cf57SGeorge V. Neville-Neilvalue is \-1. 2466617cf57SGeorge V. Neville-Neil.\" 2476617cf57SGeorge V. Neville-Neil.Ss inet6_opt_find 2486617cf57SGeorge V. Neville-NeilThe 2496617cf57SGeorge V. Neville-Neil.Fn inet6_opt_find 2506617cf57SGeorge V. Neville-Neilfunction searches the extension buffer for a particular option type, 2516617cf57SGeorge V. Neville-Neilpassed in through the 2526617cf57SGeorge V. Neville-Neil.Fa type 2536617cf57SGeorge V. Neville-Neilargument. 2546617cf57SGeorge V. Neville-NeilIf the option is found then the 2556617cf57SGeorge V. Neville-Neil.Fa lenp 2566617cf57SGeorge V. Neville-Neiland 2576617cf57SGeorge V. Neville-Neil.Fa databufp 258f0002294SRuslan Ermilovarguments are updated to point to the option's length and data, 2596617cf57SGeorge V. Neville-Neilrespectively. 260f0002294SRuslan ErmilovThe 2616617cf57SGeorge V. Neville-Neil.Fa extbuf 2626617cf57SGeorge V. Neville-Neiland 2636617cf57SGeorge V. Neville-Neil.Fa extlen 264f0002294SRuslan Ermilovarguments 2656617cf57SGeorge V. Neville-Neilmust point to a valid extension buffer and give its length. 2666617cf57SGeorge V. Neville-NeilThe 2676617cf57SGeorge V. Neville-Neil.Fa offset 2686617cf57SGeorge V. Neville-Neilargument can be used to search from a location anywhere in the 2696617cf57SGeorge V. Neville-Neilextension header. 2706617cf57SGeorge V. Neville-Neil.Ss inet6_opt_get_val 2716617cf57SGeorge V. Neville-NeilThe 2726617cf57SGeorge V. Neville-Neil.Fn inet6_opt_get_val 2736617cf57SGeorge V. Neville-Neilfunction extracts data items of various sizes in the data portion of 2746617cf57SGeorge V. Neville-Neilthe option. 2756617cf57SGeorge V. Neville-NeilThe 2766617cf57SGeorge V. Neville-Neil.Fa databuf 2776617cf57SGeorge V. Neville-Neilis a pointer returned by the 2786617cf57SGeorge V. Neville-Neil.Fn inet6_opt_next 2796617cf57SGeorge V. Neville-Neilor 2806617cf57SGeorge V. Neville-Neil.Fn inet6_opt_find 2816617cf57SGeorge V. Neville-Neilfunctions. 2826617cf57SGeorge V. Neville-NeilThe 2836617cf57SGeorge V. Neville-Neil.Fa val 284211ceb62SGordon Berglingargument points to where the data will be extracted. 2856617cf57SGeorge V. Neville-NeilThe 2866617cf57SGeorge V. Neville-Neil.Fa offset 2876617cf57SGeorge V. Neville-Neilargument specifies from where in the data portion of the option the 2886617cf57SGeorge V. Neville-Neilvalue should be extracted; the first byte of option data is specified 2896617cf57SGeorge V. Neville-Neilby an offset of zero. 2906617cf57SGeorge V. Neville-Neil.Pp 2916617cf57SGeorge V. Neville-NeilIt is expected that each field is aligned on its natural boundaries as 2926617cf57SGeorge V. Neville-Neildescribed in Appendix B of RFC 2460. 2936617cf57SGeorge V. Neville-Neil.Pp 2946617cf57SGeorge V. Neville-NeilThe function returns the offset for the next field 2956617cf57SGeorge V. Neville-Neilby calculating 2966617cf57SGeorge V. Neville-Neil.Fa offset 2976617cf57SGeorge V. Neville-Neil+ 2986617cf57SGeorge V. Neville-Neil.Fa vallen 2996617cf57SGeorge V. Neville-Neilwhich can be used when extracting option content with multiple fields. 3006617cf57SGeorge V. Neville-NeilRobust receivers must verify alignment before calling this function. 3016617cf57SGeorge V. Neville-Neil.\" 302f0002294SRuslan Ermilov.Sh RETURN VALUES 3036617cf57SGeorge V. Neville-NeilAll the functions return 3046617cf57SGeorge V. Neville-Neil\-1 3056617cf57SGeorge V. Neville-Neilon an error. 3066617cf57SGeorge V. Neville-Neil.\" 3076617cf57SGeorge V. Neville-Neil.Sh EXAMPLES 30844752e92STom JonesRFC 3542 gives comprehensive examples in Section 22. 3096617cf57SGeorge V. Neville-Neil.Pp 3106617cf57SGeorge V. Neville-NeilKAME also provides examples in the 3116617cf57SGeorge V. Neville-Neil.Pa advapitest 3126617cf57SGeorge V. Neville-Neildirectory of its kit. 3136617cf57SGeorge V. Neville-Neil.\" 3146617cf57SGeorge V. Neville-Neil.Sh SEE ALSO 3156617cf57SGeorge V. Neville-Neil.Rs 3166617cf57SGeorge V. Neville-Neil.%A W. Stevens 3176617cf57SGeorge V. Neville-Neil.%A M. Thomas 3186617cf57SGeorge V. Neville-Neil.%A E. Nordmark 3196617cf57SGeorge V. Neville-Neil.%A T. Jinmei 3206617cf57SGeorge V. Neville-Neil.%T "Advanced Sockets API for IPv6" 3216617cf57SGeorge V. Neville-Neil.%N RFC 3542 3226617cf57SGeorge V. Neville-Neil.%D October 2002 3236617cf57SGeorge V. Neville-Neil.Re 3246617cf57SGeorge V. Neville-Neil.Rs 3256617cf57SGeorge V. Neville-Neil.%A S. Deering 3266617cf57SGeorge V. Neville-Neil.%A R. Hinden 3276617cf57SGeorge V. Neville-Neil.%T "Internet Protocol, Version 6 (IPv6) Specification" 3286617cf57SGeorge V. Neville-Neil.%N RFC 2460 3296617cf57SGeorge V. Neville-Neil.%D December 1998 3306617cf57SGeorge V. Neville-Neil.Re 3316617cf57SGeorge V. Neville-Neil.Sh STANDARDS 3326617cf57SGeorge V. Neville-NeilThe functions are documented in 3336617cf57SGeorge V. Neville-Neil.Dq Advanced Sockets API for IPv6 3346617cf57SGeorge V. Neville-Neil.Pq RFC 3542 . 3356617cf57SGeorge V. Neville-Neil.\" 336f0002294SRuslan Ermilov.Sh HISTORY 337f0002294SRuslan ErmilovThe implementation first appeared in KAME advanced networking kit. 338