From: Benjamin Poirier <benjamin.poirier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Michael Kerrisk <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>,
linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: discrepancy in ip(7) wrt. IP DF flag for UDP sockets
Date: Thu, 22 Sep 2011 08:44:48 -0400 [thread overview]
Message-ID: <20110922124448.GA19801@synalogic.ca> (raw)
In-Reply-To: <CAKgNAkiSrGdXd2e1dpcC0fPmARRwkMrUvB8vCJ7eQ8SYsCuuUw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On 11-09-22 06:15, Michael Kerrisk wrote:
> Ben, Neil,
>
[snip]
>
> Ben, thanks for writing this, and Neil, thanks for reviewing it. I've
> applied that change for man-pages-3.34.
>
> Ben, I added one small piece ti the description of
> /proc/sys/net/ipv4/ip_no_pmtu_disc. For completeness, I've reproduced
> the entire text below. Perhaps you could take a quick scan, to make
> sure that the changed text is consistent with the whole piece.
>
> Thanks,
>
> Michael
>
> 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 Dis-
> covery as defined in RFC 1191 on SOCK_STREAM sockets.
Oops, seems like there's a repetition that crept in here. I'd keep only
the first of those two sentences:
> For non-SOCK_STREAM sockets, IP_PMTUDISC_DO forces the
> don't-fragment flag to be set on all outgoing packets.
> The don't-fragment flag is set on all outgoing data-
> grams. 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 EMSGSIZE) data-
> grams that are bigger than the known path MTU.
> IP_PMTUDISC_WANT will fragment a datagram if needed
> according to the path MTU, or will set the don't-frag-
> ment flag otherwise.
>
> The system-wide default can be toggled between IP_PMTUD-
> ISC_WANT and IP_PMTUDISC_DONT by writing (respectively,
> zero and nonzero values) to the
> /proc/sys/net/ipv4/ip_no_pmtu_disc file.
I think it's a welcome clarification. Is is normal that IP_PMTUDISC_WANT
gets hyphenated?
>
> Path MTU discovery flags Meaning
I agree with what Neil said about "flags" here. setsockopt(2) calls
these "option values".
Other than that, LGTM
Acked-by: Benjamin Poirier <benjamin.poirier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Thanks Michael,
-Ben
> IP_PMTUDISC_WANT Use per-route settings.
> IP_PMTUDISC_DONT Never do Path MTU Discovery.
> IP_PMTUDISC_DO Always do Path MTU Discovery.
> IP_PMTUDISC_PROBE Set DF but ignore Path MTU.
>
> 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 connect(2), the
> currently known path MTU can be retrieved conveniently
> using the IP_MTU socket option (e.g., after an EMSGSIZE
> 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 IP_RECVERR). A new error
> will be queued for every incoming MTU update.
>
> 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.
>
> To bootstrap the path MTU discovery process on uncon-
> nected sockets, it is possible to start with a big data-
> gram size (up to 64K-headers bytes long) and let it
> shrink by updates of the path MTU.
>
> To get an initial estimate of the path MTU, connect a
> datagram socket to the destination address using con-
> nect(2) and retrieve the MTU by calling getsockopt(2)
> with the IP_MTU option.
>
> It is possible to implement RFC 4821 MTU probing with
> SOCK_DGRAM or SOCK_RAW sockets by setting a value of
> IP_PMTUDISC_PROBE (available since Linux 2.6.22). This
> is also particularly useful for diagnostic tools such as
> tracepath(8) that wish to deliberately send probe pack-
> ets larger than the observed Path MTU.
>
>
> --
> Michael Kerrisk
> Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
> Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-09-22 12:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-19 12:19 discrepancy in ip(7) wrt. IP DF flag for UDP sockets Benjamin Poirier
[not found] ` <20110919121940.GA19942-k/PPzeaMb74v2OKnPYDugg@public.gmane.org>
2011-09-19 13:03 ` Neil Horman
[not found] ` <20110919130313.GA27819-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2011-09-20 6:14 ` Michael Kerrisk
[not found] ` <CAKgNAkgWRdkxgTXNnMi4PVGGsOd-8EHF1siBrk-Bj=rnYenVmQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-20 13:29 ` Benjamin Poirier
[not found] ` <20110920132954.GA23041-k/PPzeaMb74v2OKnPYDugg@public.gmane.org>
2011-09-20 13:38 ` Neil Horman
[not found] ` <20110920133837.GA16323-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2011-09-20 14:12 ` Benjamin Poirier
[not found] ` <20110920141234.GA23164-k/PPzeaMb74v2OKnPYDugg@public.gmane.org>
2011-09-20 14:31 ` Neil Horman
[not found] ` <20110920143109.GB16323-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2011-09-22 4:15 ` Michael Kerrisk
[not found] ` <CAKgNAkiSrGdXd2e1dpcC0fPmARRwkMrUvB8vCJ7eQ8SYsCuuUw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-22 10:48 ` Neil Horman
2011-09-22 12:44 ` Benjamin Poirier [this message]
2011-09-23 5:27 ` Michael Kerrisk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110922124448.GA19801@synalogic.ca \
--to=benjamin.poirier-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).