#, fuzzy msgid "" msgstr "" "Project-Id-Version: man-pages-l10n VERSION\n" "POT-Creation-Date: 2014-07-17 17:57+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: man-pages/man7/ip.7:36 #, no-wrap msgid "IP" msgstr "" #. type: TH #: man-pages/man7/ip.7:36 #, no-wrap msgid "2014-05-10" msgstr "" #. type: TH #: man-pages/man7/ip.7:36 #, no-wrap msgid "Linux" msgstr "" #. type: TH #: man-pages/man7/ip.7:36 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: man-pages/man7/ip.7:37 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:39 msgid "ip - Linux IPv4 protocol implementation" msgstr "" #. type: SH #: man-pages/man7/ip.7:39 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:41 msgid "B<#include Esys/socket.hE>" msgstr "" #. .B #include -- does not exist anymore #. .B #include -- never include #. type: Plain text #: man-pages/man7/ip.7:45 msgid "B<#include Enetinet/in.hE>" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:47 msgid "B<#include Enetinet/ip.hE >/* superset of previous */" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:49 msgid "IB< = socket(AF_INET, SOCK_STREAM, 0);>" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:51 msgid "IB< = socket(AF_INET, SOCK_DGRAM, 0);>" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:53 msgid "IB< = socket(AF_INET, SOCK_RAW, >IB<);>" msgstr "" #. type: SH #: man-pages/man7/ip.7:53 #, no-wrap msgid "DESCRIPTION" msgstr "" #. FIXME has someone verified that 2.1 is really 1812 compliant? #. type: Plain text #: man-pages/man7/ip.7:60 msgid "" "Linux implements the Internet Protocol, version 4, described in RFC\\ 791 " "and RFC\\ 1122. B contains a level 2 multicasting implementation " "conforming to RFC\\ 1112. It also contains an IP router including a packet " "filter." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:64 msgid "" "The programming interface is BSD-sockets compatible. For more information " "on sockets, see B(7)." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:95 msgid "" "An IP socket is created by calling the B(2) function as " "BIB<, >IB<)>. Valid socket types " "are B to open a B(7) socket, B to open a " "B(7) socket, or B to open a B(7) socket to access the " "IP protocol directly. I is the IP protocol in the IP header to be " "received or sent. The only valid values for I are 0 and " "B for TCP sockets, and 0 and B for UDP sockets. " "For B you may specify a valid IANA IP protocol defined in RFC\\ " "1700 assigned numbers." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:117 msgid "" "When a process wants to receive new incoming packets or connections, it " "should bind a socket to a local interface address using B(2). In this " "case, only one IP socket may be bound to any given local (address, port) " "pair. When B is specified in the bind call, the socket will be " "bound to I local interfaces. When B(2) is called on an " "unbound socket, the socket is automatically bound to a random free port with " "the local address set to B. When B(2) is called on an " "unbound socket, the socket is automatically bound to a random free port or " "to a usable shared port with the local address set to B." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:123 msgid "" "A TCP local socket address that has been bound is unavailable for some time " "after closing, unless the B flag has been set. Care should be " "taken when using this flag as it makes TCP less reliable." msgstr "" #. type: SS #: man-pages/man7/ip.7:123 #, no-wrap msgid "Address format" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:134 msgid "" "An IP socket address is defined as a combination of an IP interface address " "and a 16-bit port number. The basic IP protocol does not supply port " "numbers, they are implemented by higher level protocols like B(7) and " "B(7). On raw sockets I is set to the IP protocol." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:142 #, no-wrap msgid "" "struct sockaddr_in {\n" " sa_family_t sin_family; /* address family: AF_INET */\n" " in_port_t sin_port; /* port in network byte order */\n" " struct in_addr sin_addr; /* internet address */\n" "};\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:147 #, no-wrap msgid "" "/* Internet address. */\n" "struct in_addr {\n" " uint32_t s_addr; /* address in network byte order */\n" "};\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:172 msgid "" "I is always set to B. This is required; in Linux 2.2 " "most networking functions return B when this setting is missing. " "I contains the port in network byte order. The port numbers below " "1024 are called I (or sometimes: I). Only " "privileged processes (i.e., those having the B " "capability) may B(2) to these sockets. Note that the raw IPv4 " "protocol as such has no concept of a port, they are implemented only by " "higher protocols like B(7) and B(7)." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:191 msgid "" "I is the IP host address. The I member of I contains the host interface address in network byte order. " "I should be assigned one of the B values (e.g., " "B) or set using the B(3), B(3), " "B(3) library functions or directly with the name resolver " "(see B(3))." msgstr "" #. Leave a loophole for XTP @) #. type: Plain text #: man-pages/man7/ip.7:203 msgid "" "IPv4 addresses are divided into unicast, broadcast and multicast addresses. " "Unicast addresses specify a single interface of a host, broadcast addresses " "specify all hosts on a network and multicast addresses address all hosts in " "a multicast group. Datagrams to broadcast addresses can be sent or received " "only when the B socket flag is set. In the current " "implementation, connection-oriented sockets are allowed to use only unicast " "addresses." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:211 msgid "" "Note that the address and the port are always stored in network byte order. " "In particular, this means that you need to call B(3) on the number " "that is assigned to a port. All address/port manipulation functions in the " "standard library work in network byte order." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:224 msgid "" "There are several special addresses: B (127.0.0.1) always " "refers to the local host via the loopback device; B (0.0.0.0) " "means any address for binding; B (255.255.255.255) means " "any host and has the same effect on bind as B for historical " "reasons." msgstr "" #. type: SS #: man-pages/man7/ip.7:224 #, no-wrap msgid "Socket options" msgstr "" #. or SOL_IP on Linux #. type: Plain text #: man-pages/man7/ip.7:233 msgid "" "IP supports some protocol-specific socket options that can be set with " "B(2) and read with B(2). The socket option level " "for IP is B. A boolean integer flag is zero when it is false, " "otherwise true." msgstr "" #. type: TP #: man-pages/man7/ip.7:233 #, no-wrap msgid "B (since Linux 1.2)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:239 msgid "Join a multicast group. Argument is an I structure." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:249 #, no-wrap msgid "" "struct ip_mreqn {\n" " struct in_addr imr_multiaddr; /* IP multicast group\n" " address */\n" " struct in_addr imr_address; /* IP address of local\n" " interface */\n" " int imr_ifindex; /* interface index */\n" "};\n" msgstr "" #. (i.e., within the 224.0.0.0-239.255.255.255 range) #. type: Plain text #: man-pages/man7/ip.7:270 msgid "" "I contains the address of the multicast group the application " "wants to join or leave. It must be a valid multicast address (or " "B(2) fails with the error B). I is the " "address of the local interface with which the system should join the " "multicast group; if it is equal to B, an appropriate interface " "is chosen by the system. I is the interface index of the " "interface that should join/leave the I group, or 0 to " "indicate any interface." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:285 msgid "" "The I structure is available only since Linux 2.2. For " "compatibility, the old I structure (present since Linux 1.2) is " "still supported; it differs from I only by not including the " "I field. Only valid as a B(2)." msgstr "" #. type: TP #: man-pages/man7/ip.7:285 #, no-wrap msgid "B (since Linux 2.4.22 / 2.5.68)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:292 msgid "" "Join a multicast group and allow receiving data only from a specified source." " Argument is an I structure." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:303 #, no-wrap msgid "" "struct ip_mreq_source {\n" " struct in_addr imr_multiaddr; /* IP multicast group\n" " address */\n" " struct in_addr imr_interface; /* IP address of local\n" " interface */\n" " struct in_addr imr_sourceaddr; /* IP address of\n" " multicast source */\n" "};\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:324 msgid "" "The I structure is similar to I described under " "B. The I field contains the address of the " "multicast group the application wants to join or leave. The " "I field is the address of the local interface with which the " "system should join the multicast group. Finally, the I " "field contains the address of the source the application wants to receive " "data from." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:327 msgid "" "This option can be used multiple times to allow receiving data from more " "than one source." msgstr "" #. type: TP #: man-pages/man7/ip.7:327 #, no-wrap msgid "B (since Linux 2.4.22 / 2.5.68)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:335 msgid "" "Stop receiving multicast data from a specific source in a given group. This " "is valid only after the application has subscribed to the multicast group " "using either B or B." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:340 man-pages/man7/ip.7:362 man-pages/man7/ip.7:926 msgid "" "Argument is an I structure as described under " "B." msgstr "" #. type: TP #: man-pages/man7/ip.7:340 #, no-wrap msgid "B (since Linux 1.2)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:349 msgid "" "Leave a multicast group. Argument is an I or I structure " "similar to B." msgstr "" #. type: TP #: man-pages/man7/ip.7:349 #, no-wrap msgid "B (since Linux 2.4.22 / 2.5.68)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:357 msgid "" "Leave a source-specific group\\(emthat is, stop receiving data from a given " "multicast group that come from a given source. If the application has " "subscribed to multiple sources within the same group, data from the " "remaining sources will still be delivered. To stop receiving data from all " "sources at once, use B." msgstr "" #. type: TP #: man-pages/man7/ip.7:362 #, no-wrap msgid "B (since Linux 2.4)" msgstr "" #. Precisely: 2.4.0-test10 #. type: Plain text #: man-pages/man7/ip.7:375 msgid "" "If enabled, this boolean option allows binding to an IP address that is " "nonlocal or does not (yet) exist. This permits listening on a socket, " "without requiring the underlying network interface or the specified dynamic " "IP address to be up at the time that the application is trying to bind to it." " This option is the per-socket equivalent of the I I interface described below." msgstr "" #. type: TP #: man-pages/man7/ip.7:375 #, no-wrap msgid "B (since Linux 2.0)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:391 msgid "" "If enabled, the user supplies an IP header in front of the user data. Only " "valid for B sockets. See B(7) for more information. When " "this flag is enabled the values set by B, B and " "B are ignored." msgstr "" #. type: TP #: man-pages/man7/ip.7:391 #, no-wrap msgid "B (since Linux 2.4.22 / 2.5.68)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:397 msgid "" "This option provides access to the advanced full-state filtering API. " "Argument is an I structure." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:406 #, no-wrap msgid "" "struct ip_msfilter {\n" " struct in_addr imsf_multiaddr; /* IP multicast group\n" " address */\n" " struct in_addr imsf_interface; /* IP address of local\n" " interface */\n" " uint32_t imsf_fmode; /* Filter-mode */\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:412 #, no-wrap msgid "" " uint32_t imsf_numsrc; /* Number of sources in\n" " the following array */\n" " struct in_addr imsf_slist[1]; /* Array of source\n" " addresses */\n" "};\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:427 msgid "" "There are two macros, B and B, which can be " "used to specify the filtering mode. Additionally, the " "B(n) macro exists to determine how much memory is needed " "to store I structure with I sources in the source list." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:430 msgid "" "For the full description of multicast source filtering refer to RFC 3376." msgstr "" #. type: TP #: man-pages/man7/ip.7:430 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.124 #. type: Plain text #: man-pages/man7/ip.7:438 msgid "" "Retrieve the current known path MTU of the current socket. Valid only when " "the socket has been connected. Returns an integer. Only valid as a " "B(2)." msgstr "" #. type: TP #: man-pages/man7/ip.7:438 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.124 #. type: Plain text #: man-pages/man7/ip.7:459 msgid "" "Set or receive the Path MTU Discovery setting for a socket. When enabled, " "Linux will perform Path MTU Discovery as defined in RFC\\ 1191 on " "B sockets. For non-B sockets, B " "forces the don't-fragment flag to be set on all outgoing packets. It is the " "user's responsibility to packetize the data in MTU-sized chunks and to do " "the retransmits if necessary. The kernel will reject (with B) " "datagrams that are bigger than the known path MTU. B will " "fragment a datagram if needed according to the path MTU, or will set the " "don't-fragment flag otherwise." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:467 msgid "" "The system-wide default can be toggled between B and " "B by writing (respectively, zero and nonzero values) to " "the I file." msgstr "" #. type: tbl table #: man-pages/man7/ip.7:471 #, no-wrap msgid "Path MTU discovery value:Meaning\n" msgstr "" #. type: tbl table #: man-pages/man7/ip.7:472 #, no-wrap msgid "IP_PMTUDISC_WANT:Use per-route settings.\n" msgstr "" #. type: tbl table #: man-pages/man7/ip.7:473 #, no-wrap msgid "IP_PMTUDISC_DONT:Never do Path MTU Discovery.\n" msgstr "" #. type: tbl table #: man-pages/man7/ip.7:474 #, no-wrap msgid "IP_PMTUDISC_DO:Always do Path MTU Discovery.\n" msgstr "" #. type: tbl table #: man-pages/man7/ip.7:475 #, no-wrap msgid "IP_PMTUDISC_PROBE:Set DF but ignore Path MTU.\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:493 msgid "" "When PMTU discovery is enabled, the kernel automatically keeps track of the " "path MTU per destination host. When it is connected to a specific peer with " "B(2), the currently known path MTU can be retrieved conveniently " "using the B socket option (e.g., after an B error " "occurred). The path MTU may change over time. For connectionless sockets " "with many destinations, the new MTU for a given destination can also be " "accessed using the error queue (see B). A new error will be " "queued for every incoming MTU update." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:498 msgid "" "While MTU discovery is in progress, initial packets from datagram sockets " "may be dropped. Applications using UDP should be aware of this and not take " "it into account for their packet retransmit strategy." msgstr "" #. FIXME this is an ugly hack #. type: Plain text #: man-pages/man7/ip.7:503 msgid "" "To bootstrap the path MTU discovery process on unconnected sockets, it is " "possible to start with a big datagram size (up to 64K-headers bytes long) " "and let it shrink by updates of the path MTU." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:512 msgid "" "To get an initial estimate of the path MTU, connect a datagram socket to the " "destination address using B(2) and retrieve the MTU by calling " "B(2) with the B option." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:524 msgid "" "It is possible to implement RFC 4821 MTU probing with B or " "B sockets by setting a value of B (available " "since Linux 2.6.22). This is also particularly useful for diagnostic tools " "such as B(8) that wish to deliberately send probe packets larger " "than the observed Path MTU." msgstr "" #. type: TP #: man-pages/man7/ip.7:524 #, no-wrap msgid "B (since Linux 2.6.31)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:538 msgid "" "This option can be used to modify the delivery policy of multicast messages " "to sockets bound to the wildcard B address. The argument is a " "boolean integer (defaults to 1). If set to 1, the socket will receive " "messages from all the groups that have been joined globally on the whole " "system. Otherwise, it will deliver messages only from the groups that have " "been explicitly joined (for example via the B option) on " "this particular socket." msgstr "" #. type: TP #: man-pages/man7/ip.7:538 #, no-wrap msgid "B (since Linux 1.2)" msgstr "" #. net: IP_MULTICAST_IF setsockopt now recognizes struct mreq #. Commit: 3a084ddb4bf299a6e898a9a07c89f3917f0713f7 #. type: Plain text #: man-pages/man7/ip.7:550 msgid "" "Set the local device for a multicast socket. Argument is an I or " "I (since Linux 3.5) structure similar to B." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:554 msgid "When an invalid socket option is passed, B is returned." msgstr "" #. type: TP #: man-pages/man7/ip.7:554 #, no-wrap msgid "B (since Linux 1.2)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:558 msgid "" "Set or read a boolean integer argument that determines whether sent " "multicast packets should be looped back to the local sockets." msgstr "" #. type: TP #: man-pages/man7/ip.7:558 #, no-wrap msgid "B (since Linux 1.2)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:566 msgid "" "Set or read the time-to-live value of outgoing multicast packets for this " "socket. 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 network unless the user program explicitly requests it. Argument " "is an integer." msgstr "" #. type: TP #: man-pages/man7/ip.7:566 #, no-wrap msgid "B (since Linux 2.6.36)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:574 msgid "" "If enabled (argument is nonzero), the reassembly of outgoing packets is " "disabled in the netfilter layer. This option is valid only for B " "sockets. The argument is an integer." msgstr "" #. type: TP #: man-pages/man7/ip.7:574 #, no-wrap msgid "B (since Linux 2.0)" msgstr "" #. Precisely: 1.3.30 #. type: Plain text #: man-pages/man7/ip.7:603 msgid "" "Set or get the IP options to be sent with every packet from this socket. " "The arguments are a pointer to a memory buffer containing the options and " "the option length. The B(2) call sets the IP options " "associated with a socket. The maximum option size for IPv4 is 40 bytes. " "See RFC\\ 791 for the allowed options. When the initial connection request " "packet for a B socket contains IP options, the IP options will " "be set automatically to the options from the initial packet with routing " "headers reversed. Incoming packets are not allowed to change options after " "the connection is established. The processing of all incoming source " "routing options is disabled by default and can be enabled by using the " "I I interface. Other options like timestamps " "are still handled. For datagram sockets, IP options can be only set by the " "local user. Calling B(2) with B puts the current " "IP options used for sending into the supplied buffer." msgstr "" #. type: TP #: man-pages/man7/ip.7:603 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.68 #. type: Plain text #: man-pages/man7/ip.7:620 msgid "" "Pass an B ancillary message that contains a I structure " "that supplies some information about the incoming packet. This only works " "for datagram oriented sockets. The argument is a flag that tells the socket " "whether the B message should be passed or not. The message " "itself can only be sent/retrieved as control message with a packet using " "B(2) or B(2)." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:629 #, no-wrap msgid "" "struct in_pktinfo {\n" " unsigned int ipi_ifindex; /* Interface index */\n" " struct in_addr ipi_spec_dst; /* Local address */\n" " struct in_addr ipi_addr; /* Header Destination\n" " address */\n" "};\n" msgstr "" #. FIXME elaborate on that. #. This field is grossly misnamed #. type: Plain text #: man-pages/man7/ip.7:654 msgid "" "I is the unique index of the interface the packet was received " "on. I is the local address of the packet and I is " "the destination address in the packet header. If B is passed to " "B(2) and I 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. When I is not zero, the primary local address " "of the interface specified by the index overwrites I for the " "routing table lookup." msgstr "" #. type: TP #: man-pages/man7/ip.7:654 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.15 #. or SOL_IP on Linux #. type: Plain text #: man-pages/man7/ip.7:676 msgid "" "Enable extended reliable error message passing. When enabled on a datagram " "socket, all generated errors will be queued in a per-socket error queue. " "When the user receives an error from a socket operation, the errors can be " "received by calling B(2) with the B flag set. The " "I structure describing the error will be passed in an " "ancillary message with the type B and the level B. " "This is useful for reliable error handling on unconnected sockets. The " "received data portion of the error queue contains the error packet." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:682 msgid "" "The B control message contains a I structure:" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:690 #, no-wrap msgid "" "#define SO_EE_ORIGIN_NONE 0\n" "#define SO_EE_ORIGIN_LOCAL 1\n" "#define SO_EE_ORIGIN_ICMP 2\n" "#define SO_EE_ORIGIN_ICMP6 3\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:701 #, no-wrap msgid "" "struct sock_extended_err {\n" " uint32_t ee_errno; /* error number */\n" " uint8_t ee_origin; /* where the error originated */\n" " uint8_t ee_type; /* type */\n" " uint8_t ee_code; /* code */\n" " uint8_t ee_pad;\n" " uint32_t ee_info; /* additional information */\n" " uint32_t ee_data; /* other data */\n" " /* More data may follow */\n" "};\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:703 #, no-wrap msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:726 msgid "" "I contains the I number of the queued error. I " "is the origin code of where the error originated. The other fields are " "protocol-specific. The macro B returns a pointer to the " "address of the network object where the error originated from given a " "pointer to the ancillary message. If this address is not known, the " "I member of the I contains B and the other " "fields of the I are undefined." msgstr "" #. FIXME . Is it a good idea to document that? It is a dubious feature. #. On #. .B SOCK_STREAM #. sockets, #. .B IP_RECVERR #. has slightly different semantics. Instead of #. saving the errors for the next timeout, it passes all incoming #. errors immediately to the user. #. This might be useful for very short-lived TCP connections which #. need fast error handling. Use this option with care: #. it makes TCP unreliable #. by not allowing it to recover properly from routing #. shifts and other normal #. conditions and breaks the protocol specification. #. type: Plain text #: man-pages/man7/ip.7:785 msgid "" "IP uses the I structure as follows: I is set " "to B for errors received as an ICMP packet, or " "B for locally generated errors. Unknown values should " "be ignored. I and I are set from the type and code fields " "of the ICMP header. I contains the discovered MTU for B " "errors. The message also contains the I caused the " "error, which can be accessed with the B macro. The " "I field of the B address is B when " "the source was unknown. When the error originated from the network, all IP " "options (B, B, etc.) enabled on the socket and contained " "in the error packet are passed as control messages. The payload of the " "packet causing the error is returned as normal payload. Note that TCP has " "no error queue; B is not permitted on B sockets. " "B is valid for TCP, but all errors are returned by socket " "function return or B only." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:790 msgid "" "For raw sockets, B enables passing of all received ICMP errors " "to the application, otherwise errors are only reported on connected sockets" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:794 msgid "" "It sets or retrieves an integer boolean flag. B defaults to off." "" msgstr "" #. type: TP #: man-pages/man7/ip.7:794 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.15 #. type: Plain text #: man-pages/man7/ip.7:805 msgid "" "Pass all incoming IP options to the user in a B control message. " " The routing header and other options are already filled in for the local " "host. Not supported for B sockets." msgstr "" #. type: TP #: man-pages/man7/ip.7:805 #, no-wrap msgid "B (since Linux 2.6.29)" msgstr "" #. commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69 #. type: Plain text #: man-pages/man7/ip.7:816 msgid "" "This boolean option enables the B ancillary message in " "B(2), in which the kernel returns the original destination address " "of the datagram being received. The ancillary message contains a I." msgstr "" #. type: TP #: man-pages/man7/ip.7:816 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.68 #. type: Plain text #: man-pages/man7/ip.7:825 msgid "" "If enabled, the B ancillary message is passed with incoming packets. " " It contains a byte which specifies the Type of Service/Precedence field of " "the packet header. Expects a boolean integer flag." msgstr "" #. type: TP #: man-pages/man7/ip.7:825 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.68 #. type: Plain text #: man-pages/man7/ip.7:835 msgid "" "When this flag is set, pass a B control message with the time to " "live field of the received packet as a byte. Not supported for " "B sockets." msgstr "" #. type: TP #: man-pages/man7/ip.7:835 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.15 #. type: Plain text #: man-pages/man7/ip.7:842 msgid "" "Identical to B, but returns raw unprocessed options with " "timestamp and route record options not filled in for this hop." msgstr "" #. type: TP #: man-pages/man7/ip.7:842 #, no-wrap msgid "B (since Linux 2.2)" msgstr "" #. Precisely: 2.1.68 #. type: Plain text #: man-pages/man7/ip.7:854 msgid "" "Pass all to-be forwarded packets with the IP Router Alert option set to this " "socket. Only valid for raw sockets. This is useful, for instance, for user-" "space RSVP daemons. The tapped packets are not forwarded by the kernel; it " "is the user's responsibility to send them out again. Socket binding is " "ignored, such packets are only filtered by protocol. Expects an integer " "flag." msgstr "" #. type: TP #: man-pages/man7/ip.7:854 #, no-wrap msgid "B (since Linux 1.0)" msgstr "" #. FIXME elaborate on this #. Needs CAP_NET_ADMIN #. Boolean #. Since Linux 2.6.27 #. Author: KOVACS Krisztian #. http://lwn.net/Articles/252545/ #. type: Plain text #: man-pages/man7/ip.7:888 msgid "" "Set or receive the Type-Of-Service (TOS) field that is sent with every IP " "packet originating from this socket. It is used to prioritize packets on " "the network. TOS is a byte. There are some standard TOS flags defined: " "B to minimize delays for interactive traffic, " "B to optimize throughput, B to optimize " "for reliability, B should be used for \"filler data\" where " "slow transmission doesn't matter. At most one of these TOS values can be " "specified. Other bits are invalid and shall be cleared. Linux sends " "B datagrams first by default, but the exact behavior depends " "on the configured queueing discipline. Some high priority levels may " "require superuser privileges (the B capability). The " "priority can also be set in a protocol independent way by the " "(B, B) socket option (see B(7))." msgstr "" #. type: TP #: man-pages/man7/ip.7:888 #, no-wrap msgid "B (since Linux 2.6.24)" msgstr "" #. commit f5715aea4564f233767ea1d944b2637a5fd7cd2e #. This patch introduces the IP_TRANSPARENT socket option: enabling that #. will make the IPv4 routing omit the non-local source address check on #. output. Setting IP_TRANSPARENT requires NET_ADMIN capability. #. http://lwn.net/Articles/252545/ #. type: Plain text #: man-pages/man7/ip.7:908 msgid "" "Setting this boolean option enables transparent proxying on this socket. " "This socket option allows the calling application to bind to a nonlocal IP " "address and operate both as a client and a server with the foreign address " "as the local endpoint. NOTE: this requires that routing be set up in a way " "that packets going to the foreign address are routed through the TProxy box " "(i.e., the system hosting the application that employs the B " "socket option). Enabling this socket option requires superuser privileges " "(the B capability)." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:911 msgid "" "TProxy redirection with the iptables TPROXY target also requires that this " "option be set on the redirected socket." msgstr "" #. type: TP #: man-pages/man7/ip.7:911 #, no-wrap msgid "B (since Linux 1.0)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:915 msgid "" "Set or retrieve the current time-to-live field that is used in every packet " "sent from this socket." msgstr "" #. type: TP #: man-pages/man7/ip.7:915 #, no-wrap msgid "B (since Linux 2.4.22 / 2.5.68)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:921 msgid "" "Unblock previously blocked multicast source. Returns B when " "given source is not being blocked." msgstr "" #. type: SS #: man-pages/man7/ip.7:926 #, no-wrap msgid "/proc interfaces" msgstr "" #. FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented: #. ip_queue_maxlen #. ip_conntrack_max #. type: Plain text #: man-pages/man7/ip.7:942 msgid "" "The IP protocol supports a set of I interfaces to configure some " "global parameters. The parameters can be accessed by reading or writing " "files in the directory I. Interfaces described as " "I take an integer value, with a nonzero value (\"true\") meaning " "that the corresponding option is enabled, and a zero value (\"false\") " "meaning that the option is disabled." msgstr "" #. type: TP #: man-pages/man7/ip.7:942 #, no-wrap msgid "I (Boolean; since Linux 2.2.13)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:948 msgid "" "[New with kernel 2.2.13; in earlier kernel versions this feature was " "controlled at compile time by the B option; this " "option is not present in 2.4.x and later]" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:955 msgid "" "When this boolean flag is enabled (not equal 0), incoming fragments (parts " "of IP packets that arose when some host between origin and destination " "decided that the packets were too large and cut them into pieces) will be " "reassembled (defragmented) before being processed, even if they are about to " "be forwarded." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:962 msgid "" "Only enable if running either a firewall that is the sole link to your " "network or a transparent proxy; never ever use it for a normal router or " "host. Otherwise, fragmented communication can be disturbed if the fragments " "travel over different links. Defragmentation also has a large memory and " "CPU time cost." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:966 msgid "" "This is automagically turned on when masquerading or transparent proxying " "are configured." msgstr "" #. type: TP #: man-pages/man7/ip.7:966 #, no-wrap msgid "I (since Linux 2.2 to 2.6.17)" msgstr "" #. Precisely: since 2.1.68 #. FIXME document ip_autoconfig #. type: Plain text #: man-pages/man7/ip.7:972 msgid "Not documented." msgstr "" #. type: TP #: man-pages/man7/ip.7:972 #, no-wrap msgid "I (integer; default: 64; since Linux 2.2)" msgstr "" #. Precisely: 2.1.15 #. type: Plain text #: man-pages/man7/ip.7:980 msgid "" "Set the default time-to-live value of outgoing packets. This can be changed " "per socket with the B option." msgstr "" #. type: TP #: man-pages/man7/ip.7:980 #, no-wrap msgid "I (Boolean; default: disabled; since Linux 2.0.31)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:987 msgid "" "Enable dynamic socket address and masquerading entry rewriting on interface " "address change. This is useful for dialup interface with changing IP " "addresses. 0 means no rewriting, 1 turns it on and 2 enables verbose mode." msgstr "" #. type: TP #: man-pages/man7/ip.7:987 #, no-wrap msgid "I (Boolean; default: disabled; since Linux 1.2)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:992 msgid "" "Enable IP forwarding with a boolean flag. IP forwarding can be also set on " "a per-interface basis." msgstr "" #. type: TP #: man-pages/man7/ip.7:992 #, no-wrap msgid "I (since Linux 2.2)" msgstr "" #. Precisely: since 2.1.68 #. type: Plain text #: man-pages/man7/ip.7:1000 msgid "" "This file contains two integers that define the default local port range " "allocated to sockets that are not explicitly bound to a port number\\(emthat " "is, the range used for I. An ephemeral port is allocated " "to a socket in the following circumstances:" msgstr "" #. type: IP #: man-pages/man7/ip.7:1001 man-pages/man7/ip.7:1004 man-pages/man7/ip.7:1007 man-pages/man7/ip.7:1010 #, no-wrap msgid "*" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1004 msgid "" "the port number in a socket address is specified as 0 when calling " "B(2);" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1007 msgid "" "B(2) is called on a stream socket that was not previously bound;" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1010 msgid "" "B(2) was called on a socket that was not not previously bound;" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1013 msgid "" "B(2) is called on a datagram socket that was not not previously " "bound." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1020 msgid "" "Allocation of ephemeral ports starts with the first number in " "I and ends with the second number. If the range of " "ephemeral ports is exhausted, then the relevant system call returns an error " "(but see BUGS)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1031 msgid "" "Note that the port range in I should not conflict with " "the ports used by masquerading (although the case is handled). Also, " "arbitrary choices may cause problems with some firewall packet filters that " "make assumptions about the local ports in use. The first number should be " "at least greater than 1024, or better, greater than 4096, to avoid clashes " "with well known ports and to minimize firewall problems." msgstr "" #. type: TP #: man-pages/man7/ip.7:1031 #, no-wrap msgid "I (Boolean; default: disabled; since Linux 2.2)" msgstr "" #. Precisely: 2.1.15 #. The following is from 2.6.12: Documentation/networking/ip-sysctl.txt #. type: Plain text #: man-pages/man7/ip.7:1043 msgid "" "If enabled, don't do Path MTU Discovery for TCP sockets by default. Path " "MTU discovery may fail if misconfigured firewalls (that drop all ICMP " "packets) or misconfigured interfaces (e.g., a point-to-point link where the " "both ends don't agree on the MTU) are on the path. It is better to fix the " "broken routers on the path than to turn off Path MTU Discovery globally, " "because not doing it incurs a high cost to the network." msgstr "" #. type: TP #: man-pages/man7/ip.7:1043 #, no-wrap msgid "I (Boolean; default: disabled; since Linux 2.4)" msgstr "" #. Precisely: patch-2.4.0-test10 #. The following is from 2.6.12: Documentation/networking/ip-sysctl.txt #. type: Plain text #: man-pages/man7/ip.7:1052 msgid "" "If set, allows processes to B(2) to nonlocal IP addresses, which can " "be quite useful, but may break some applications." msgstr "" #. type: TP #: man-pages/man7/ip.7:1052 #, no-wrap msgid "I (integer; default: 30)" msgstr "" #. The following is from 2.6.12: Documentation/networking/ip-sysctl.txt #. type: Plain text #: man-pages/man7/ip.7:1057 msgid "Time in seconds to keep an IPv6 fragment in memory." msgstr "" #. type: TP #: man-pages/man7/ip.7:1057 #, no-wrap msgid "I (integer; default: 600)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1061 msgid "" "Regeneration interval (in seconds) of the hash secret (or lifetime for the " "hash secret) for IPv6 fragments." msgstr "" #. type: TP #: man-pages/man7/ip.7:1061 #, no-wrap msgid "I (integer), I (integer)" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1068 msgid "" "If the amount of queued IP fragments reaches I, the " "queue is pruned down to I. Contains an integer with the " "number of bytes." msgstr "" #. type: TP #: man-pages/man7/ip.7:1068 #, no-wrap msgid "I" msgstr "" #. FIXME Document the conf/*/* interfaces #. FIXME Document the route/* interfaces #. FIXME document them all #. type: Plain text #: man-pages/man7/ip.7:1075 msgid "See B(7)." msgstr "" #. type: SS #: man-pages/man7/ip.7:1075 #, no-wrap msgid "Ioctls" msgstr "" #. 2006-04-02, mtk #. commented out the following because ipchains is obsolete #. .PP #. The ioctls to configure firewalling are documented in #. .BR ipfw (4) #. from the #. .B ipchains #. package. #. type: Plain text #: man-pages/man7/ip.7:1088 msgid "All ioctls described in B(7) apply to B." msgstr "" #. FIXME Add a discussion of multicasting #. type: Plain text #: man-pages/man7/ip.7:1092 msgid "" "Ioctls to configure generic device parameters are described in " "B(7)." msgstr "" #. type: SH #: man-pages/man7/ip.7:1092 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: man-pages/man7/ip.7:1096 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1112 msgid "" "The user tried to execute an operation without the necessary permissions. " "These include: sending a packet to a broadcast address without having the " "B flag set; sending a packet via a I route; " "modifying firewall settings without superuser privileges (the " "B capability); binding to a privileged port without superuser " "privileges (the B capability)." msgstr "" #. type: TP #: man-pages/man7/ip.7:1112 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1115 msgid "Tried to bind to an address already in use." msgstr "" #. type: TP #: man-pages/man7/ip.7:1115 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1119 msgid "" "A nonexistent interface was requested or the requested source address was " "not local." msgstr "" #. type: TP #: man-pages/man7/ip.7:1119 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1122 msgid "Operation on a nonblocking socket would block." msgstr "" #. type: TP #: man-pages/man7/ip.7:1122 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1125 msgid "" "An connection operation on a nonblocking socket is already in progress." msgstr "" #. type: TP #: man-pages/man7/ip.7:1125 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1129 msgid "A connection was closed during an B(2)." msgstr "" #. type: TP #: man-pages/man7/ip.7:1129 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1134 msgid "" "No valid routing table entry matches the destination address. This error " "can be caused by a ICMP message from a remote router or for the local " "routing table." msgstr "" #. type: TP #: man-pages/man7/ip.7:1134 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1140 msgid "" "Invalid argument passed. For send operations this can be caused by sending " "to a I route." msgstr "" #. type: TP #: man-pages/man7/ip.7:1140 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1144 msgid "B(2) was called on an already connected socket." msgstr "" #. type: TP #: man-pages/man7/ip.7:1144 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1147 msgid "" "Datagram is bigger than an MTU on the path and it cannot be fragmented." msgstr "" #. type: TP #: man-pages/man7/ip.7:1147 #, no-wrap msgid "B, B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1152 msgid "" "Not enough free memory. This often means that the memory allocation is " "limited by the socket buffer limits, not by the system memory, but this is " "not 100% consistent." msgstr "" #. type: TP #: man-pages/man7/ip.7:1152 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1156 msgid "B was called on a socket where no packet arrived." msgstr "" #. type: TP #: man-pages/man7/ip.7:1156 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1159 msgid "A kernel subsystem was not configured." msgstr "" #. type: TP #: man-pages/man7/ip.7:1159 #, no-wrap msgid "B and B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1162 msgid "Invalid socket option passed." msgstr "" #. type: TP #: man-pages/man7/ip.7:1162 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1166 msgid "" "The operation is defined only on a connected socket, but the socket wasn't " "connected." msgstr "" #. type: TP #: man-pages/man7/ip.7:1166 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1170 msgid "" "User doesn't have permission to set high priority, change configuration, or " "send signals to the requested process or group." msgstr "" #. type: TP #: man-pages/man7/ip.7:1170 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1173 msgid "The connection was unexpectedly closed or shut down by the other end." msgstr "" #. type: TP #: man-pages/man7/ip.7:1173 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1176 msgid "The socket is not configured or an unknown socket type was requested." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1183 msgid "" "Other errors may be generated by the overlaying protocols; see B(7), " "B(7), B(7) and B(7)." msgstr "" #. type: SH #: man-pages/man7/ip.7:1183 #, no-wrap msgid "NOTES" msgstr "" #. IP_PASSSEC is Linux-specific #. IP_XFRM_POLICY is Linux-specific #. IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs #. type: Plain text #: man-pages/man7/ip.7:1198 msgid "" "B, B, B, B, " "B, B, B, B, and " "B are Linux-specific." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1207 msgid "" "Be very careful with the B option - it is not privileged in " "Linux. It is easy to overload the network with careless broadcasts. For " "new application protocols it is better to use a multicast group instead of " "broadcasting. Broadcasting is discouraged." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1217 msgid "" "Some other BSD sockets implementations provide B and " "B socket options to get the destination address and the interface " "of received datagrams. Linux has the more general B for the " "same task." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1226 msgid "" "Some BSD sockets implementations also provide an B option, but " "an ancillary message with type B is passed with the incoming " "packet. This is different from the B option used in Linux." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1232 msgid "" "Using B socket options level isn't portable, BSD-based stacks use " "B level." msgstr "" #. type: SS #: man-pages/man7/ip.7:1232 #, no-wrap msgid "Compatibility" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1245 msgid "" "For compatibility with Linux 2.0, the obsolete BIB<)> syntax is still supported to open a " "B(7) socket. This is deprecated and should be replaced by " "BIB<)> instead. The main difference " "is the new I address structure for generic link layer " "information instead of the old B." msgstr "" #. type: SH #: man-pages/man7/ip.7:1245 #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1247 msgid "There are too many inconsistent error values." msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1255 msgid "" "The error used to diagnose exhaustion of the ephemeral port range differs " "across the various system calls (B(2), B(2), B(2), " "B(2)) that can assign ephemeral ports." msgstr "" #. .PP #. Some versions of glibc forget to declare #. .IR in_pktinfo . #. Workaround currently is to copy it into your program from this man page. #. type: Plain text #: man-pages/man7/ip.7:1262 msgid "" "The ioctls to configure IP-specific interface options and ARP tables are not " "described." msgstr "" #. .SH AUTHORS #. This man page was written by Andi Kleen. #. type: Plain text #: man-pages/man7/ip.7:1272 msgid "" "Receiving the original destination address with B in " "I by B(2) does not work in some 2.2 kernels." msgstr "" #. type: SH #: man-pages/man7/ip.7:1272 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1285 msgid "" "B(2), B(2), B(3), B(4), " "B(7), B(7), B(7), B(7), B(7), " "B(7), B(7), B(7)" msgstr "" #. FIXME autobind INADDR REUSEADDR #. type: Plain text #: man-pages/man7/ip.7:1290 msgid "" "RFC\\ 791 for the original IP specification. RFC\\ 1122 for the IPv4 host " "requirements. RFC\\ 1812 for the IPv4 router requirements." msgstr "" #. type: SH #: man-pages/man7/ip.7:1290 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: man-pages/man7/ip.7:1298 msgid "" "This page is part of release 3.70 of the Linux I project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/" "." msgstr ""