A change in 2.6.28 restored the 2.2 behavior:
https://lkml.org/lkml/2009/6/30/499
Reported-by: lepton <ytht.net@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
In tcp.7, about TCP_MAXSEG, it reads
If this option is set before connection establishment,
it also changes the MSS value announced to the other
end in the initial packet.
It is correct for kernel version 2.2, but it is not
correct for modern kernel such as 2.4 and 2.6.
On a linux box with a modern kernel, the setting for
TCP_MAXSEG won't change the MSS value announced to the
other end.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
As reported by Alexey:
socket(7) says:
SO_BROADCAST
Set or get the broadcast flag. When enabled, datagram sockets
receive packets sent to a broadcast address and they are allowed
to send packets to a broadcast address. This option has no
effect on stream-oriented sockets.
I believe the second sentence is half wrong: when I try it, it
only affects the ability to send broadcast datagrams. You can only
receive broadcast datagrams if you bind to INADDR_ANY and don't
connect. The POSIX standard agrees with my tests and disagrees
with the manpage:
http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_10.html
Reported-by: Alexey Toptygin <alexeyt@freeshell.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This patch adds common but missing SIOC configuration ioctls to
the netdevice.7 manual pages that are not documented anywhere
else. SIOCSIFPFLAGS and SIOCGIFPFLAGS are linux-specific. Flag
values come from Linux 2.6.25 kernel headers for sockios. The
others are standard BSD ioctls that have alwasy been implemented
by Linux and were verified from inspecting netdevice.c kernel
code.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
As noted by reporter:
* The code sample given for the NAME section is incomplete because
the actual content sample is not given.
* Additionally, the description assumes that the item described is
a command, which need not be the case.
* The command makewhatis is not present on my system; the
documented tool to create the whatis database is called mandb.
* The description on .SH NAME in man(7) should either copy the
relevant paragraph of lexgrog(1) or refer to it.
Reported by: Kristof Zelechovski <giecrilj@stegny.2a.pl>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Reported-by: Benjamin Poirier <benjamin.poirier@gmail.com>
Reported-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
I noticed what appears to be a discrepancy between the ip(7)
man page and the kernel code with regards to the IP DF flag
for UDP sockets.
The man page says that "The don't-fragment flag is set on all
outgoing datagrams" and that the ip_no_pmtu_disc sysctl affects
only SOCK_STREAM sockets. This is quickly disproved by doing:
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
firing up netcat and looking at a few outgoing UDP packets in
wireshark (they don't have the DF flag set).
1) in the words of `man 7 ip`:
IP_MTU_DISCOVER (since Linux 2.2)
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 this socket. The don't-fragment flag is set on
all outgoing datagrams. The system-wide default is controlled
by the /proc/sys/net/ipv4/ip_no_pmtu_disc file for SOCK_STREAM
sockets, and disabled on all others.
2) in net/ipv4/af_inet.c:inet_create():
if (ipv4_config.no_pmtu_disc)
inet->pmtudisc = IP_PMTUDISC_DONT;
else
inet->pmtudisc = IP_PMTUDISC_WANT;
and pmtudisc is left alone from there on for UDP sockets.
Reviewed-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>