summaryrefslogtreecommitdiffstats
path: root/man7/ipv6.7
diff options
context:
space:
mode:
Diffstat (limited to 'man7/ipv6.7')
-rw-r--r--man7/ipv6.7416
1 files changed, 0 insertions, 416 deletions
diff --git a/man7/ipv6.7 b/man7/ipv6.7
deleted file mode 100644
index 18acdc9..0000000
--- a/man7/ipv6.7
+++ /dev/null
@@ -1,416 +0,0 @@
-.\" SPDX-License-Identifier: Linux-man-pages-1-para
-.\"
-.\" This man page is Copyright (C) 2000 Andi Kleen <ak@muc.de>.
-.\"
-.\" $Id: ipv6.7,v 1.3 2000/12/20 18:10:31 ak Exp $
-.\"
-.\" The following socket options are undocumented
-.\" All of the following are from:
-.\" commit 333fad5364d6b457c8d837f7d05802d2aaf8a961
-.\" Author: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
-.\" Support several new sockopt / ancillary data in Advanced API (RFC3542).
-.\" IPV6_2292PKTINFO (2.6.14)
-.\" Formerly IPV6_PKTINFO
-.\" IPV6_2292HOPOPTS (2.6.14)
-.\" Formerly IPV6_HOPOPTS, which is documented
-.\" IPV6_2292DSTOPTS (2.6.14)
-.\" Formerly IPV6_DSTOPTS, which is documented
-.\" IPV6_2292RTHDR (2.6.14)
-.\" Formerly IPV6_RTHDR, which is documented
-.\" IPV6_2292PKTOPTIONS (2.6.14)
-.\" Formerly IPV6_PKTOPTIONS
-.\" IPV6_2292HOPLIMIT (2.6.14)
-.\" Formerly IPV6_HOPLIMIT, which is documented
-.\"
-.\" IPV6_RECVHOPLIMIT (2.6.14)
-.\" IPV6_RECVHOPOPTS (2.6.14)
-.\" IPV6_RTHDRDSTOPTS (2.6.14)
-.\" IPV6_RECVRTHDR (2.6.14)
-.\" IPV6_RECVDSTOPTS (2.6.14)
-.\"
-.\" IPV6_RECVPATHMTU (Linux 2.6.35, flag value added in Linux 2.6.14)
-.\" commit 793b14731686595a741d9f47726ad8b9a235385a
-.\" Author: Brian Haley <brian.haley@hp.com>
-.\" IPV6_PATHMTU (Linux 2.6.35, flag value added in Linux 2.6.14)
-.\" commit 793b14731686595a741d9f47726ad8b9a235385a
-.\" Author: Brian Haley <brian.haley@hp.com>
-.\" IPV6_DONTFRAG (Linux 2.6.35, flag value added in Linux 2.6.14)
-.\" commit 793b14731686595a741d9f47726ad8b9a235385a
-.\" Author: Brian Haley <brian.haley@hp.com>
-.\" commit 4b340ae20d0e2366792abe70f46629e576adaf5e
-.\" Author: Brian Haley <brian.haley@hp.com>
-.\"
-.\" IPV6_RECVTCLASS (Linux 2.6.14)
-.\" commit 41a1f8ea4fbfcdc4232f023732584aae2220de31
-.\" Author: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
-.\" Based on patch from David L Stevens <dlstevens@us.ibm.com>
-.\"
-.\" IPV6_CHECKSUM (Linux 2.2)
-.\" IPV6_NEXTHOP (Linux 2.2)
-.\" IPV6_JOIN_ANYCAST (Linux 2.4.21 / Linux 2.6)
-.\" IPV6_LEAVE_ANYCAST (Linux 2.4.21 / Linux 2.6)
-.\" IPV6_FLOWLABEL_MGR (Linux 2.2.7 / Linux 2.4)
-.\" IPV6_FLOWINFO_SEND (Linux 2.2.7 / Linux 2.4)
-.\" IPV6_IPSEC_POLICY (Linux 2.6)
-.\" IPV6_XFRM_POLICY (Linux 2.6)
-.\" IPV6_TCLASS (Linux 2.6)
-.\"
-.\" IPV6_ADDR_PREFERENCES (Linux 2.6.26)
-.\" commit 7cbca67c073263c179f605bdbbdc565ab29d801d
-.\" Author: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
-.\" IPV6_MINHOPCOUNT (Linux 2.6.35)
-.\" commit e802af9cabb011f09b9c19a82faef3dd315f27eb
-.\" Author: Stephen Hemminger <shemminger@vyatta.com>
-.\" IPV6_ORIGDSTADDR (Linux 2.6.37)
-.\" Actually a CMSG rather than a sockopt?
-.\" In header file, we have IPV6_RECVORIGDSTADDR == IPV6_ORIGDSTADDR
-.\" commit 6c46862280c5f55eda7750391bc65cd7e08c7535
-.\" Author: Balazs Scheidler <bazsi@balabit.hu>
-.\" IPV6_RECVORIGDSTADDR (Linux 2.6.37)
-.\" commit 6c46862280c5f55eda7750391bc65cd7e08c7535
-.\" Author: Balazs Scheidler <bazsi@balabit.hu>
-.\" Support for IPV6_RECVORIGDSTADDR sockopt for UDP sockets
-.\" were contributed by Harry Mason.
-.\" IPV6_TRANSPARENT (Linux 2.6.37)
-.\" commit 6c46862280c5f55eda7750391bc65cd7e08c7535
-.\" Author: Balazs Scheidler <bazsi@balabit.hu>
-.\" IPV6_UNICAST_IF (Linux 3.4)
-.\" commit c4062dfc425e94290ac427a98d6b4721dd2bc91f
-.\" Author: Erich E. Hoover <ehoover@mines.edu>
-.\"
-.TH ipv6 7 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-ipv6 \- Linux IPv6 protocol implementation
-.SH SYNOPSIS
-.nf
-.B #include <sys/socket.h>
-.B #include <netinet/in.h>
-.P
-.IB tcp6_socket " = socket(AF_INET6, SOCK_STREAM, 0);"
-.IB raw6_socket " = socket(AF_INET6, SOCK_RAW, " protocol ");"
-.IB udp6_socket " = socket(AF_INET6, SOCK_DGRAM, " protocol ");"
-.fi
-.SH DESCRIPTION
-Linux 2.2 optionally implements the Internet Protocol, version 6.
-This man page contains a description of the IPv6 basic API as
-implemented by the Linux kernel and glibc 2.1.
-The interface
-is based on the BSD sockets interface; see
-.BR socket (7).
-.P
-The IPv6 API aims to be mostly compatible with the
-IPv4 API (see
-.BR ip (7)).
-Only differences are described in this man page.
-.P
-To bind an
-.B AF_INET6
-socket to any process, the local address should be copied from the
-.I in6addr_any
-variable which has
-.I in6_addr
-type.
-In static initializations,
-.B IN6ADDR_ANY_INIT
-may also be used, which expands to a constant expression.
-Both of them are in network byte order.
-.P
-The IPv6 loopback address (::1) is available in the global
-.I in6addr_loopback
-variable.
-For initializations,
-.B IN6ADDR_LOOPBACK_INIT
-should be used.
-.P
-IPv4 connections can be handled with the v6 API by using the
-v4-mapped-on-v6 address type;
-thus a program needs to support only this API type to
-support both protocols.
-This is handled transparently by the address
-handling functions in the C library.
-.P
-IPv4 and IPv6 share the local port space.
-When you get an IPv4 connection
-or packet to an IPv6 socket,
-its source address will be mapped to v6.
-.SS Address format
-.in +4n
-.EX
-struct sockaddr_in6 {
- sa_family_t sin6_family; /* AF_INET6 */
- in_port_t sin6_port; /* port number */
- uint32_t sin6_flowinfo; /* IPv6 flow information */
- struct in6_addr sin6_addr; /* IPv6 address */
- uint32_t sin6_scope_id; /* Scope ID (new in Linux 2.4) */
-};
-\&
-struct in6_addr {
- unsigned char s6_addr[16]; /* IPv6 address */
-};
-.EE
-.in
-.P
-.I sin6_family
-is always set to
-.BR AF_INET6 ;
-.I sin6_port
-is the protocol port (see
-.I sin_port
-in
-.BR ip (7));
-.I sin6_flowinfo
-is the IPv6 flow identifier;
-.I sin6_addr
-is the 128-bit IPv6 address.
-.I sin6_scope_id
-is an ID depending on the scope of the address.
-It is new in Linux 2.4.
-Linux supports it only for link-local addresses, in that case
-.I sin6_scope_id
-contains the interface index (see
-.BR netdevice (7))
-.P
-IPv6 supports several address types: unicast to address a single
-host, multicast to address a group of hosts,
-anycast to address the nearest member of a group of hosts
-(not implemented in Linux), IPv4-on-IPv6 to
-address an IPv4 host, and other reserved address types.
-.P
-The address notation for IPv6 is a group of 8 4-digit hexadecimal
-numbers, separated with a \[aq]:\[aq].
-\&"::" stands for a string of 0 bits.
-Special addresses are ::1 for loopback and ::FFFF:<IPv4 address>
-for IPv4-mapped-on-IPv6.
-.P
-The port space of IPv6 is shared with IPv4.
-.SS Socket options
-IPv6 supports some protocol-specific socket options that can be set with
-.BR setsockopt (2)
-and read with
-.BR getsockopt (2).
-The socket option level for IPv6 is
-.BR IPPROTO_IPV6 .
-A boolean integer flag is zero when it is false, otherwise true.
-.TP
-.B IPV6_ADDRFORM
-Turn an
-.B AF_INET6
-socket into a socket of a different address family.
-Only
-.B AF_INET
-is currently supported for that.
-It is allowed only for IPv6 sockets
-that are connected and bound to a v4-mapped-on-v6 address.
-The argument is a pointer to an integer containing
-.BR AF_INET .
-This is useful to pass v4-mapped sockets as file descriptors to
-programs that don't know how to deal with the IPv6 API.
-.TP
-.B IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP
-Control membership in multicast groups.
-Argument is a pointer to a
-.IR "struct ipv6_mreq" .
-.TP
-.B IPV6_MTU
-.BR getsockopt ():
-Retrieve the current known path MTU of the current socket.
-Valid only when the socket has been connected.
-Returns an integer.
-.IP
-.BR setsockopt ():
-Set the MTU to be used for the socket.
-The MTU is limited by the device
-MTU or the path MTU when path MTU discovery is enabled.
-Argument is a pointer to integer.
-.TP
-.B IPV6_MTU_DISCOVER
-Control path-MTU discovery on the socket.
-See
-.B IP_MTU_DISCOVER
-in
-.BR ip (7)
-for details.
-.TP
-.B IPV6_MULTICAST_HOPS
-Set the multicast hop limit for the socket.
-Argument is a pointer to an
-integer.
-\-1 in the value means use the route default, otherwise it should be
-between 0 and 255.
-.TP
-.B IPV6_MULTICAST_IF
-Set the device for outgoing multicast packets on the socket.
-This is allowed only for
-.B SOCK_DGRAM
-and
-.B SOCK_RAW
-socket.
-The argument is a pointer to an interface index (see
-.BR netdevice (7))
-in an integer.
-.TP
-.B IPV6_MULTICAST_LOOP
-Control whether the socket sees multicast packets that it has send itself.
-Argument is a pointer to boolean.
-.TP
-.BR IPV6_RECVPKTINFO " (since Linux 2.6.14)"
-Set delivery of the
-.B IPV6_PKTINFO
-control message on incoming datagrams.
-Such control messages contain a
-.IR "struct in6_pktinfo" ,
-as per RFC 3542.
-Allowed only for
-.B SOCK_DGRAM
-or
-.B SOCK_RAW
-sockets.
-Argument is a pointer to a boolean value in an integer.
-.TP
-.B \%IPV6_RTHDR, \%IPV6_AUTHHDR, \%IPV6_DSTOPTS, \%IPV6_HOPOPTS, \
-\%IPV6_FLOWINFO, \%IPV6_HOPLIMIT
-Set delivery of control messages for incoming datagrams containing
-extension headers from the received packet.
-.B IPV6_RTHDR
-delivers the routing header,
-.B IPV6_AUTHHDR
-delivers the authentication header,
-.B IPV6_DSTOPTS
-delivers the destination options,
-.B IPV6_HOPOPTS
-delivers the hop options,
-.B IPV6_FLOWINFO
-delivers an integer containing the flow ID,
-.B IPV6_HOPLIMIT
-delivers an integer containing the hop count of the packet.
-The control messages have the same type as the socket option.
-All these header options can also be set for outgoing packets
-by putting the appropriate control message into the control buffer of
-.BR sendmsg (2).
-Allowed only for
-.B SOCK_DGRAM
-or
-.B SOCK_RAW
-sockets.
-Argument is a pointer to a boolean value.
-.TP
-.B IPV6_RECVERR
-Control receiving of asynchronous error options.
-See
-.B IP_RECVERR
-in
-.BR ip (7)
-for details.
-Argument is a pointer to boolean.
-.TP
-.B IPV6_ROUTER_ALERT
-Pass forwarded packets containing a router alert hop-by-hop option to
-this socket.
-Allowed only for
-.B SOCK_RAW
-sockets.
-The tapped packets are not forwarded by the kernel, it is the
-user's responsibility to send them out again.
-Argument is a pointer to an integer.
-A positive integer indicates a router alert option value to intercept.
-Packets carrying a router alert option with a value field containing
-this integer will be delivered to the socket.
-A negative integer disables delivery of packets with router alert options
-to this socket.
-.TP
-.B IPV6_UNICAST_HOPS
-Set the unicast hop limit for the socket.
-Argument is a pointer to an integer.
-\-1 in the value means use the route default,
-otherwise it should be between 0 and 255.
-.TP
-.BR IPV6_V6ONLY " (since Linux 2.4.21 and 2.6)"
-.\" See RFC 3493
-If this flag is set to true (nonzero), then the socket is restricted
-to sending and receiving IPv6 packets only.
-In this case, an IPv4 and an IPv6 application can bind
-to a single port at the same time.
-.IP
-If this flag is set to false (zero),
-then the socket can be used to send and receive packets
-to and from an IPv6 address or an IPv4-mapped IPv6 address.
-.IP
-The argument is a pointer to a boolean value in an integer.
-.IP
-The default value for this flag is defined by the contents of the file
-.IR /proc/sys/net/ipv6/bindv6only .
-The default value for that file is 0 (false).
-.\" FLOWLABEL_MGR, FLOWINFO_SEND
-.SH ERRORS
-.TP
-.B ENODEV
-The user tried to
-.BR bind (2)
-to a link-local IPv6 address, but the
-.I sin6_scope_id
-in the supplied
-.I sockaddr_in6
-structure is not a valid
-interface index.
-.SH VERSIONS
-Linux 2.4 will break binary compatibility for the
-.I sockaddr_in6
-for 64-bit
-hosts by changing the alignment of
-.I in6_addr
-and adding an additional
-.I sin6_scope_id
-field.
-The kernel interfaces stay compatible, but a program including
-.I sockaddr_in6
-or
-.I in6_addr
-into other structures may not be.
-This is not
-a problem for 32-bit hosts like i386.
-.P
-The
-.I sin6_flowinfo
-field is new in Linux 2.4.
-It is transparently passed/read by the kernel
-when the passed address length contains it.
-Some programs that pass a longer address buffer and then
-check the outgoing address length may break.
-.SH NOTES
-The
-.I sockaddr_in6
-structure is bigger than the generic
-.IR sockaddr .
-Programs that assume that all address types can be stored safely in a
-.I struct sockaddr
-need to be changed to use
-.I struct sockaddr_storage
-for that instead.
-.P
-.BR SOL_IP ,
-.BR SOL_IPV6 ,
-.BR SOL_ICMPV6 ,
-and other
-.B SOL_*
-socket options are nonportable variants of
-.BR IPPROTO_* .
-See also
-.BR ip (7).
-.SH BUGS
-The IPv6 extended API as in RFC\ 2292 is currently only partly
-implemented;
-although the 2.2 kernel has near complete support for receiving options,
-the macros for generating IPv6 options are missing in glibc 2.1.
-.P
-IPSec support for EH and AH headers is missing.
-.P
-Flow label management is not complete and not documented here.
-.P
-This man page is not complete.
-.SH SEE ALSO
-.BR cmsg (3),
-.BR ip (7)
-.P
-RFC\ 2553: IPv6 BASIC API;
-Linux tries to be compliant to this.
-RFC\ 2460: IPv6 specification.