Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jun 2007 13:50:11 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Andre Oppermann <andre@freebsd.org>
Cc:        pyunyh@gmail.com, cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org, Pyun YongHyeon <yongari@freebsd.org>
Subject:   Re: cvs commit: src/sys/dev/msk if_msk.c
Message-ID:  <20070611134717.D42170@fledge.watson.org>
In-Reply-To: <466CFEC1.6080100@freebsd.org>
References:  <200706110155.l5B1t9d9043150@repoman.freebsd.org> <466CFBE2.1090907@freebsd.org> <20070611074456.GE39661@cdnetworks.co.kr> <466CFEC1.6080100@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mon, 11 Jun 2007, Andre Oppermann wrote:

>> Is there any way to return EMSGSIZE to upper layer? if_start has return 
>> type void. Or just dropping the packet if DF bit was not set is enough?
>
> Dropping the packet is not enough.  I forgot the IF queue which separates 
> the downpath from the encap function...  Don't know how you can pass up the 
> error.  Robert wanted to change the drivers queuing model, that would make 
> it possible.  CC'ed.

For the past few years I have had plans to move to a queueing model in which 
ifqueue (or ifaltq) become library routines invoked by the device driver 
rather than explicit interfaces called above the device driver layer.  This 
would have a number of benefits, including allowing device drivers to use 
alternative queueing models more easily.  Historically, the link layer has 
been the one returning errors, based on mtu, etc, to the protocol, and not the 
device driver, but this would allow that to be changed.  However, each time I 
start working on this project, I get lost in a maze of altq macros, so it 
hasn't happened for 6.0 or 7.0.  I'll try again for 8.0 :-)

Robert N M Watson
Computer Laboratory
University of Cambridge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070611134717.D42170>