From owner-freebsd-net@FreeBSD.ORG Mon Sep 17 20:22:34 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 749461065677; Mon, 17 Sep 2012 20:22:34 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 471D38FC17; Mon, 17 Sep 2012 20:22:34 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A174AB941; Mon, 17 Sep 2012 16:22:33 -0400 (EDT) From: John Baldwin To: Jack Vogel Date: Mon, 17 Sep 2012 16:22:11 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p17; KDE/4.5.5; amd64; ; ) References: <201209171503.12517.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201209171622.11157.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 17 Sep 2012 16:22:33 -0400 (EDT) Cc: freebsd-net@freebsd.org, Adrian Chadd , Ryan Stone Subject: Re: What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Sep 2012 20:22:34 -0000 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