What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc?

Jack Vogel jfvogel at gmail.com
Mon Sep 17 20:29:51 UTC 2012


On Mon, Sep 17, 2012 at 1:22 PM, John Baldwin <jhb at freebsd.org> wrote:

> On Monday, September 17, 2012 4:00:04 pm Jack Vogel wrote:
> > So, you mean having them create their own buf ring I assume? Would be
> easy
> > enough to hack some code and try it if someone is so inclined?
>
> No, that would be backwards (back to giving them a queue).  Adrian's
> suggestion is to provide a mechanism so that the "real" interface
> (e.g. emX) can call back into the psuedo-interfaces on top of it
> (vlanX or bridgeX) when a TX completion interrupt fires so that the
> pseudo-interface would know to restart transmission.  However, I think
> this is generally not ideal.  I don't think we want an additional queue
> of pending packets in things like if_bridge(4) and vlan(4).  If the
> underlying physical interface(s) are full, the packet should just get
> dropped rather than queued.  Using if_transmit directly will do that while
> avoiding overhead.  Also, making the callback work would also be a bit
> ungainly.
>
>
I meant using if_transmit, not the callback, would it not then need a buf
ring?

Jack


More information about the freebsd-net mailing list