2000-12-01 19:01:51

by JP Navarro

[permalink] [raw]
Subject: IP fragmentation (DF) and ip_no_pmtu_disc in 2.2 vs 2.4

In 2.2.17 when /proc/sys/net/ipv4/ip_no_pmtu_disc is 0/false we're
seeing outbound udp packets with the IP DF (don't fragment) bit clear.
With 2.4.0-test11, when ip_no_pmtu_disc is still 0/false we're seeing
outbound udp packets with the IP DF bit set. Is this change in default
behavior a fix or a break?

[start non expert thinking]
ip_no_pmtu_disc = 0/false means that we DO want MTU discovery.
ip_no_pmtu_disc = 1/true means that we DON't want MTU discovery.
to do MTU discovery you want DF set, so if fragmenting is necessary to
reach your target you get an unreachable error and can try smaller MTUs.

So, it appears that 2.4 fixed a problem with 2.2, correct?
[stop non expert thinking]

The problem that led us to notice this behavior was:

Intel PXE uses tftp to download boot images and discards IP packets with
the DF bit set; so a tftpd server on 2.4 with the default
ip_no_pmtu_disc set to 0/false can't serve tftp to PXE. Changing
ip_no_pmtu_disc to 1/true "fixes it". One problem is that we'd rather
have our tftpd server w/ 2.4 configured for mtu discovery.

We've tried to setsockopt(sock, SOL_IP, IP_MTU_DISCOVER, ...) with the
IP_PMTUDISC_DONT option but can't make it work. How does one change MTU
discovery and/or the don't fragment bit on a single socket?


JP Navarro
--
John-Paul Navarro (630) 252-1233
Mathematics & Computer Science Division
Argonne National Laboratory [email protected]
Argonne, IL 60439 http://www.mcs.anl.gov/~navarro


2000-12-01 19:07:43

by Alan

[permalink] [raw]
Subject: Re: IP fragmentation (DF) and ip_no_pmtu_disc in 2.2 vs 2.4

> With 2.4.0-test11, when ip_no_pmtu_disc is still 0/false we're seeing
> outbound udp packets with the IP DF bit set. Is this change in default
> behavior a fix or a break?

Its a change in behaviour

> So, it appears that 2.4 fixed a problem with 2.2, correct?
> [stop non expert thinking]

2.2 only supports it for TCP

> Intel PXE uses tftp to download boot images and discards IP packets with
> the DF bit set; so a tftpd server on 2.4 with the default

Then Intel PXE is buggy and you should go spank whoever provided it as well
as doing the workarounds. Supporting received frames with DF set is mandatory.

2000-12-01 19:44:18

by Paul Jakma

[permalink] [raw]
Subject: Re: IP fragmentation (DF) and ip_no_pmtu_disc in 2.2 vs 2.4

On Fri, 1 Dec 2000, Alan Cox wrote:

> > Intel PXE uses tftp to download boot images and discards IP packets with
> > the DF bit set; so a tftpd server on 2.4 with the default
>
> Then Intel PXE is buggy and you should go spank whoever provided
> it as well as doing the workarounds. Supporting received frames
> with DF set is mandatory.
>

SGI Indy PROM also has this behaviour (for bootp).

Could we perhaps make ip_no_pmtu_disc a per interface option? the
machine i use as bootp/tftp/nfs server is also a dial-up internet
gateway, and it's a shame to have to lose pmtu discovery across the
board.

regards,

--paulj



2000-12-02 00:18:57

by H. Peter Anvin

[permalink] [raw]
Subject: Re: IP fragmentation (DF) and ip_no_pmtu_disc in 2.2 vs 2.4

Followup to: <[email protected]>
By author: Paul Jakma <[email protected]>
In newsgroup: linux.dev.kernel
>
> On Fri, 1 Dec 2000, Alan Cox wrote:
>
> > > Intel PXE uses tftp to download boot images and discards IP packets with
> > > the DF bit set; so a tftpd server on 2.4 with the default
> >
> > Then Intel PXE is buggy and you should go spank whoever provided
> > it as well as doing the workarounds. Supporting received frames
> > with DF set is mandatory.
> >
>

Intel PXE is buggier than hell. Don't even get me started.

-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt