Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Sep 2012 16:22:11 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Jack Vogel <jfvogel@gmail.com>
Cc:        freebsd-net@freebsd.org, Adrian Chadd <adrian@freebsd.org>, Ryan Stone <rysto32@gmail.com>
Subject:   Re: What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc?
Message-ID:  <201209171622.11157.jhb@freebsd.org>
In-Reply-To: <CAFOYbcmt93px4poAmLgv6F288CDP_mPcejU8Mw5-h3h-A7bKUA@mail.gmail.com>
References:  <CAFMmRNzkwbQpUZ3OOoMKVdrz=dePc5fkeX3m-5vXtiWJ7qXwVA@mail.gmail.com> <201209171503.12517.jhb@freebsd.org> <CAFOYbcmt93px4poAmLgv6F288CDP_mPcejU8Mw5-h3h-A7bKUA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

-- 
John Baldwin



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