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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"