Date: Mon, 1 Feb 1999 10:56:42 UTC-0800 From: Mark McCutcheon <mjmccut@cs.ubc.ca> To: freebsd-net@FreeBSD.ORG Cc: yu.shi@research.nokia.com Subject: Re: drop packets? Message-ID: <"14826*mjmccut@cs.ubc.ca"@MHS> In-Reply-To: <199902010642.WAA25830@bubba.whistle.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Archie Cobbs <archie@whistle.com> writes: > Shi Yu writes: >> When the IF output queue is full, the if_output simply drop >> the packet!?? > > What else are you going to do with it? :-) Well, that's simple tail-drop queuing in a FIFO buffer. It's certainly the BSD kernel default, but there are arguably more efficient queuing disciplines for some environments, such as RED (random early detection) for TCP. Kenjiro Cho (Sony Computer Science Lab) has developed an ALTQ (Alternate Queuing) package for FreeBSD which implements RED, CQB, WFQ, etc., as well as a template for developing your own queuing schemes. See: http://www.csl.sony.co.jp/person/kjc/programs.html >> If the IF output queue is often full, why ip stack does not >> get feedback from the driver and buffer the packets so that >> less packets are dropped? > > I think ip_output() will return ENOBUFS, if anybody's > listening. > > Anyway, the flow control problem was explicitly left *out* of > the specification of IP packet delivery. IP packet delivery > is only "best effort".. and that's exactly what you get. I think that the intserv and diffserv people would be disappointed to learn that ;-> > Higher layer protocols are supposed to deal with flow control > themselves. For example, TCP. But many believe that routers need to help with this - hence RED, RED with ECN, etc. Also, FRED (fair random early drop) and similar schemes have been designed to control queue utilization even by greedy and ill-behaved UDP streams. So it's not just tail-drop FIFO anymore - heck, even Cisco's IOS implements a number of these alternatives.... Mark To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?"14826*mjmccut>