Date: Wed, 21 Sep 2005 13:50:46 +0200 From: Andre Oppermann <andre@freebsd.org> To: Robert Watson <rwatson@FreeBSD.org> Cc: freebsd-net@freebsd.org, Sten Daniel =?iso-8859-1?Q?S=F8rsdal?= <lists@wm-access.no>, Milscvaer <millueradfa@yahoo.com> Subject: Re: UDP dont fragment bit Message-ID: <43314916.2451ED6A@freebsd.org> References: <20050918212110.61962.qmail@web54501.mail.yahoo.com> <20050920134408.Y34322@fledge.watson.org> <43313924.9050009@wm-access.no> <20050921114511.D34322@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Robert Watson wrote: > > On Wed, 21 Sep 2005, Sten Daniel Sørsdal wrote: > > >> For whatever reason, it turns out that you and only you have requested > >> this feature. For typicaly network debugging applications, a raw > >> socket is used, which allows the direct frobbing the the IP DF bit. > >> For example, in traceroute(8). > >> > >> Could you tell us a bit more about the application and proposed use? > >> Presumably forcing the DF bit isn't much use unless you can also > >> retrieve useful reporting on the ICMP errors associated with needing > >> the fragment? > > > > I have been looking for such a feature too. My Application; Bandwidth > > tester (also as a support app for an UDP file transfer utility) The > > reason i want DF bit removed? I want to be able to generate my own > > fragments or let the routers generate the fragments. I also want to be > > able to receive bad UDP packets to gather statistics. This would be > > userland applications. > > By default, we don't generate UDP with the IP DF bit set. If you want to > receive the detailed ICMP responses, you currently need to to use a raw > socket, which is what most network exploration tools (such as traceroute) > do. If we want to be able to manage more detailed state information using > unprivileged UDP sockets, then we need to have more complex state > management on UDP sockets when ICMPs are received. Hence my asking for > requirements: what is it that is really being looked for here? Just being > able to set the DF bit isn't very much use for a casual application, as > there's no real reporting of the resulting ICMP MTU messages to UDP > sockets. So presumably, what's being looked for is more than just a > socket option to say "Set or don't set the DF bit", but a way to query > recent ICMP received state on the socket. I can think of a couple of uses to say IP DF on a UDP socket. Will cook up a patch to add such a sysctl in a few hours. -- Andre > So if someone could generate some application pseudo-code that suggests > what specifically is necessary from the socket layer in order for the > application to function, we can talk about socket service extensions that > might support the application. For example, a way to query detailed error > information rather than just the SO_ERROR socket option. Or a longer haul > PMTU data gathering mechanism for UDP sockets. Or ways for UDP > applications to more usefully query the kernel for the TCP PMTU data > already being recorded. > > It sounds like for the bandwidth tester, IP raw sockets already provide > what you need, since you want to be able to do fairly irregular UDP things > (i.e., receive UDP packets with bad checksums, and see fragments). > > Robert N M Watson > > -------------------------------------------------------------------------------- > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43314916.2451ED6A>