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]"

Reply via email to