From owner-freebsd-net@freebsd.org Wed Sep 2 06:03:29 2015 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE7CA9C7956 for ; Wed, 2 Sep 2015 06:03:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id A3DE0912 for ; Wed, 2 Sep 2015 06:03:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: by mailman.ysv.freebsd.org (Postfix) id A30779C7955; Wed, 2 Sep 2015 06:03:29 +0000 (UTC) Delivered-To: net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2A5E9C7954 for ; Wed, 2 Sep 2015 06:03:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebius.int.ru", Issuer "cell.glebius.int.ru" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 298FE910; Wed, 2 Sep 2015 06:03:27 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.15.2/8.15.2) with ESMTPS id t8263OTt006925 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 2 Sep 2015 09:03:24 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.15.2/8.15.2/Submit) id t8263ONP006924; Wed, 2 Sep 2015 09:03:24 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Wed, 2 Sep 2015 09:03:24 +0300 From: Gleb Smirnoff To: Adrian Chadd Cc: Andriy Voskoboinyk , Lawrence Stewart , "net@freebsd.org" Subject: Re: mbufq-less iwn(4) Message-ID: <20150902060324.GF1023@glebius.int.ru> References: <20150901112043.GB1023@glebius.int.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Sep 2015 06:03:29 -0000 Adrian, On Tue, Sep 01, 2015 at 12:33:53PM -0700, Adrian Chadd wrote: A> We have to do mbuf queues in drivers for wifi, because of 11n A> aggregation. So on one hand we want to have if_transmit() apply A> backpressure through the stack, but there's also going to be some A> buffering. :P No, that's not because of 11n aggregation. That's a remnant of ifnet ifqueue. Note that I'm speaking about queueing in drivers, not in net80211 stack. Look at the iwn patch, it doesn't remove any functionality except of enqueueing and dequeueing. Look at your own ath(4) - there is no software queue there already :) A> I'd like to see that for ic_transmit(). A> A> Other thing - ic_transmit() also needs to handle fragments, like I do A> with ath. Ie, handing it a list of packets is actually a list of A> 802.11 fragments, rather than separate MPDUs. A> A> Another thing - we're modifying the mbufs (adding 802.11 data to it) A> before we pass them to the driver, and if the driver fails to A> transmit, we can't just pass it back up the net80211 stack to the tcp A> or udp layer.. Sure, stack probably would need to strip the data. Anyway, that's a future task. -- Totus tuus, Glebius.