From owner-freebsd-net Mon Mar 25 14:55: 9 2002 Delivered-To: freebsd-net@freebsd.org Received: from iguana.icir.org (iguana.icir.org [192.150.187.36]) by hub.freebsd.org (Postfix) with ESMTP id 4695C37B41F for ; Mon, 25 Mar 2002 14:54:50 -0800 (PST) Received: (from rizzo@localhost) by iguana.icir.org (8.11.6/8.11.3) id g2PMslm03074; Mon, 25 Mar 2002 14:54:47 -0800 (PST) (envelope-from rizzo) Date: Mon, 25 Mar 2002 14:54:47 -0800 From: Luigi Rizzo To: Lars Eggert Cc: Matthew Luckie , freebsd-net@FreeBSD.ORG Subject: Re: ip_output and ENOBUFS Message-ID: <20020325145447.A2986@iguana.icir.org> References: <3C9F9F5B.4090409@isi.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3C9F9F5B.4090409@isi.edu> User-Agent: Mutt/1.3.23i Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Mon, Mar 25, 2002 at 02:06:19PM -0800, Lars Eggert wrote: > Matthew Luckie wrote: > >>>Is there a mechanism to tell when ip_output should be called again? ... > >if you could suggest a few modifications that would be required, i'd like > >to pursue this further. > > Look at tsleep/wakeup on ifnet of if_snd. I am under the impression that implementing this mechanism would not be so trivial. It is not immediate to tell back to the caller on which interface ip_output() failed. Nor there is a common place that i know of where you can be notified that a packet was successfully transmitted -- i suspect you should patch all individual drivers. Finally, there is the question on whether you do a wakeup as soon as you get a free slot in the queue (in which case you most likely end up paying the cost of a tsleep/wakeup pair on each transmission), or you put some histeresys. cheers luigi > Lars > -- > Lars Eggert Information Sciences Institute > http://www.isi.edu/larse/ University of Southern California To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message