ip.7: grfix

This commit is contained in:
Michael Kerrisk 2008-11-21 21:51:43 -05:00
parent 39a165e08f
commit f971627f8a
1 changed files with 21 additions and 22 deletions

View File

@ -77,7 +77,7 @@ should bind a socket to a local interface address using
Only one IP socket may be bound to any given local (address, port) pair. Only one IP socket may be bound to any given local (address, port) pair.
When When
.B INADDR_ANY .B INADDR_ANY
is specified in the bind call the socket will be bound to is specified in the bind call, the socket will be bound to
.I all .I all
local interfaces. local interfaces.
When When
@ -167,7 +167,7 @@ addresses address all hosts in a multicast group.
Datagrams to broadcast addresses can be only sent or received when the Datagrams to broadcast addresses can be only sent or received when the
.B SO_BROADCAST .B SO_BROADCAST
socket flag is set. socket flag is set.
In the current implementation connection oriented sockets are only allowed In the current implementation, connection-oriented sockets are only allowed
to use unicast addresses. to use unicast addresses.
.\" Leave a loophole for XTP @) .\" Leave a loophole for XTP @)
@ -279,7 +279,7 @@ is not zero, then it is used as the local source address for the routing
table lookup and for setting up IP source route options. table lookup and for setting up IP source route options.
When When
.I ipi_ifindex .I ipi_ifindex
is not zero the primary local address of the interface specified by the is not zero, the primary local address of the interface specified by the
index overwrites index overwrites
.I ipi_spec_dst .I ipi_spec_dst
for the routing table lookup. for the routing table lookup.
@ -314,7 +314,7 @@ sockets.
.TP .TP
.B IP_RETOPTS .B IP_RETOPTS
Identical to Identical to
.B IP_RECVOPTS .BR IP_RECVOPTS ,
but returns raw unprocessed options with timestamp and route record but returns raw unprocessed options with timestamp and route record
options not filled in for this hop. options not filled in for this hop.
.TP .TP
@ -348,11 +348,11 @@ socket option (see
.BR socket (7)). .BR socket (7)).
.TP .TP
.B IP_TTL .B IP_TTL
Set or retrieve the current time to live field that is used in every packet Set or retrieve the current time-to-live field that is used in every packet
sent from this socket. sent from this socket.
.TP .TP
.B IP_HDRINCL .B IP_HDRINCL
If enabled If enabled,
the user supplies an IP header in front of the user data. the user supplies an IP header in front of the user data.
Only valid for Only valid for
.B SOCK_RAW .B SOCK_RAW
@ -369,10 +369,10 @@ are ignored.
.TP .TP
.BR IP_RECVERR " (defined in \fI<linux/errqueue.h>\fP)" .BR IP_RECVERR " (defined in \fI<linux/errqueue.h>\fP)"
Enable extended reliable error message passing. Enable extended reliable error message passing.
When enabled on a datagram socket all When enabled on a datagram socket, all
generated errors will be queued in a per-socket error queue. generated errors will be queued in a per-socket error queue.
When the user When the user
receives an error from a socket operation the errors can receives an error from a socket operation, the errors can
be received by calling be received by calling
.BR recvmsg (2) .BR recvmsg (2)
with the with the
@ -514,7 +514,7 @@ for a socket.
When enabled, Linux will perform Path MTU Discovery When enabled, Linux will perform Path MTU Discovery
as defined in RFC\ 1191 as defined in RFC\ 1191
on this socket. on this socket.
The don't fragment flag is set on all outgoing datagrams. The don't-fragment flag is set on all outgoing datagrams.
The system-wide default is controlled by the The system-wide default is controlled by the
.I /proc/sys/net/ipv4/ip_no_pmtu_disc .I /proc/sys/net/ipv4/ip_no_pmtu_disc
file for file for
@ -522,7 +522,7 @@ file for
sockets, and disabled on all others. sockets, and disabled on all others.
For For
.RB non- SOCK_STREAM .RB non- SOCK_STREAM
sockets it is the user's responsibility to packetize the data sockets, it is the user's responsibility to packetize the data
in MTU sized chunks and to do the retransmits if necessary. in MTU sized chunks and to do the retransmits if necessary.
The kernel will reject packets that are bigger than the known The kernel will reject packets that are bigger than the known
path MTU if this flag is set (with path MTU if this flag is set (with
@ -539,35 +539,35 @@ IP_PMTUDISC_DO:Always do Path MTU Discovery.
IP_PMTUDISC_PROBE:Set DF but ignore Path MTU. IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.
.TE .TE
When PMTU discovery is enabled the kernel automatically keeps track of When PMTU discovery is enabled, the kernel automatically keeps track of
the path MTU per destination host. the path MTU per destination host.
When it is connected to a specific peer with When it is connected to a specific peer with
.BR connect (2) .BR connect (2),
the currently known path MTU can be retrieved conveniently using the the currently known path MTU can be retrieved conveniently using the
.B IP_MTU .B IP_MTU
socket option (e.g., after a socket option (e.g., after a
.B EMSGSIZE .B EMSGSIZE
error occurred). error occurred).
It may change over time. It may change over time.
For connectionless sockets with many destinations For connectionless sockets with many destinations,
the new also MTU for a given destination can also be accessed using the the new MTU for a given destination can also be accessed using the
error queue (see error queue (see
.BR IP_RECVERR ). .BR IP_RECVERR ).
A new error will be queued for every incoming MTU update. A new error will be queued for every incoming MTU update.
While MTU discovery is in progress initial packets from datagram sockets While MTU discovery is in progress, initial packets from datagram sockets
may be dropped. may be dropped.
Applications using UDP should be aware of this and not Applications using UDP should be aware of this and not
take it into account for their packet retransmit strategy. take it into account for their packet retransmit strategy.
To bootstrap the path MTU discovery process on unconnected sockets it To bootstrap the path MTU discovery process on unconnected sockets, it
is possible to start with a big datagram size is possible to start with a big datagram size
(up to 64K-headers bytes long) and let it shrink by updates of the (up to 64K-headers bytes long) and let it shrink by updates of the
path MTU. path MTU.
.\" FIXME this is an ugly hack .\" FIXME this is an ugly hack
To get an initial estimate of the To get an initial estimate of the
path MTU connect a datagram socket to the destination address using path MTU, connect a datagram socket to the destination address using
.BR connect (2) .BR connect (2)
and retrieve the MTU by calling and retrieve the MTU by calling
.BR getsockopt (2) .BR getsockopt (2)
@ -600,17 +600,16 @@ IP Router Alert
option option
set to this socket. set to this socket.
Only valid for raw sockets. Only valid for raw sockets.
This is useful, for instance, for user This is useful, for instance, for user-space RSVP daemons.
space RSVP daemons. The tapped packets are not forwarded by the kernel; it is
The tapped packets are not forwarded by the kernel, it is the user's responsibility to send them out again.
the users responsibility to send them out again.
Socket binding is ignored, Socket binding is ignored,
such packets are only filtered by protocol. such packets are only filtered by protocol.
Expects an integer flag. Expects an integer flag.
.\" .\"
.TP .TP
.B IP_MULTICAST_TTL .B IP_MULTICAST_TTL
Set or reads the time-to-live value of outgoing multicast packets for this Set or read the time-to-live value of outgoing multicast packets for this
socket. socket.
It is very important for multicast packets to set the smallest TTL possible. It is very important for multicast packets to set the smallest TTL possible.
The default is 1 which means that multicast packets don't leave the local The default is 1 which means that multicast packets don't leave the local