From owner-freebsd-current Fri Apr 24 15:27:46 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id PAA15196 for freebsd-current-outgoing; Fri, 24 Apr 1998 15:27:46 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from alpo.whistle.com (alpo.whistle.com [207.76.204.38]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id PAA15189 for ; Fri, 24 Apr 1998 15:27:44 -0700 (PDT) (envelope-from julian@whistle.com) Received: (from daemon@localhost) by alpo.whistle.com (8.8.5/8.8.5) id PAA02818; Fri, 24 Apr 1998 15:26:54 -0700 (PDT) Received: from current1.whistle.com(207.76.205.22) via SMTP by alpo.whistle.com, id smtpd002811; Fri Apr 24 22:26:44 1998 Message-ID: <35411060.102F11D5@whistle.com> Date: Fri, 24 Apr 1998 15:21:21 -0700 From: Julian Elischer Organization: Whistle Communications X-Mailer: Mozilla 3.0Gold (X11; I; FreeBSD 2.2.5-RELEASE i386) MIME-Version: 1.0 To: "Justin T. Gibbs" CC: Garrett Wollman , current@FreeBSD.ORG Subject: Re: Bandwidth throttling etc. References: <199804242209.QAA03142@narnia.plutotech.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Justin T. Gibbs wrote: > > > What you Really Want is for each interface to manage its own > > allocations. When you want to send a packet, you ask the interface > > for a buffer, and it gives you one of an appropriate size and shape > > that it knows how to transmit efficiently. > > How do deal with a route change between the time you determine the > target interface, ask it to allocate space for you, and construct > the packet? The race window becomes much larger if the application > asks to pre-allocate space that it will reuse repeatedly to achieve > zero copy. Whatever the interface is, it must also handle external > memory allocations such as dmaing the payload out of the memory on > another device. of course.. each driver has to be able to handle the case where the mbuf is not one of it's own. That's inevitable in a routing situation unless you want to copy the data from an interface A mbuf into an interface B mbuf. On the whole however it's best to allow the interface to do that at the last minute as it may have no problems with leaving it where it is.. As I mentioned in another mail, we've been doing this for 10 years at TFS. it works fine. > > -- > Justin > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-current" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message