From owner-freebsd-net@FreeBSD.ORG Tue Dec 11 21:55:11 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 00A95AFC; Tue, 11 Dec 2012 21:55:10 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by mx1.freebsd.org (Postfix) with ESMTP id 46ED68FC08; Tue, 11 Dec 2012 21:55:09 +0000 (UTC) Received: by mail-wi0-f180.google.com with SMTP id hj13so2347240wib.13 for ; Tue, 11 Dec 2012 13:55:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=hn8SOSKBi/cNj0t+jJWPLIcxKxF0MFjCGcB6KXZV/II=; b=VcFV7Ffo7GnUHsG26cj4iqOHB7QwC7+0GKrIUW0y8dsfxluNWafZ2XdYbhD0u39w3P GmjkulajKqp8UpnUgDqvGfrDfNj6fB79lmH5gl2LZqaN/Xd4VOsLu+COK7B3VW0xEaOU SJlmvWQDKKksc0ABcWb+3CSi6YRVnTbDmDiFpcYvTHlzcpVPHW1MXlloXfc0qkcekbaL Z6iXu3e7cijDc8TCRv2vqnyumKPrLkSw/SBoFpGpAm9YKWFj2VoorUTrTQNvjNhViihi 1dd3kYWNnu9iLxO8f+FVzuQ4zJWfj8iJO/t7DvBme0YOu2R/UmjtStRRd0tbCMDUMXuo JBXw== MIME-Version: 1.0 Received: by 10.194.120.132 with SMTP id lc4mr3027559wjb.59.1355262908949; Tue, 11 Dec 2012 13:55:08 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.217.57.9 with HTTP; Tue, 11 Dec 2012 13:55:08 -0800 (PST) In-Reply-To: <50C7AA58.5050909@networx.ch> References: <20121211075853.GU48639@FreeBSD.org> <1355231140.51621.YahooMailClassic@web121603.mail.ne1.yahoo.com> <50C74990.2090803@gmail.com> <50C79252.5000509@gmail.com> <50C7AA58.5050909@networx.ch> Date: Tue, 11 Dec 2012 13:55:08 -0800 X-Google-Sender-Auth: K8RPBDc5gDAjpXLUnC6UzQ56yCE Message-ID: Subject: Re: igb and ALTQ in 9.1-rc3 From: Adrian Chadd To: Andre Oppermann Content-Type: text/plain; charset=ISO-8859-1 Cc: Karim Fodil-Lemelin , =?ISO-8859-1?Q?Ermal_Lu=E7i?= , "Clement Hermann \(nodens\)" , freebsd-net X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2012 21:55:11 -0000 On 11 December 2012 13:49, Andre Oppermann wrote: >> We -know- we need a much more generic implementation of packet queue >> management. Someone just needs to come up with one. :-) > > > As I've said earlier I'm working and cleaning up of the stack/driver > interface and API. It started out to better integrate the offload > capabilities, reduce code duplication and to audit their usage in the > drivers. While doing that I've noticed, as others have, a couple more > issues including the queuing problem. So work is under way and by > early next year a prototype for further discussion should be ready. Sweet. Hopefully I'll have undone the rest of the if_start stuff in net80211 by then. I'm still stuck trying to figure out the right way to represent 802.11 fragments given how the net80211 stack was left before I inherited it. ieee80211_fragment() creates a chain of mbufs representing the fragment chain; I need to process those as an atomic entity rather than a frame at a time. Neither buf_ring nor if_queue are suitable for this. I can serialise the frames coming into net80211 but until I figure out a queue mechanism that lets me queue mbuf _chains_, I'll be stuck. buf_ring is suitable with this, with some modifications (ie, checking each mbuf is an mbuf list, rather than just calling m_freem() on the single mbuf) but the ALQ bits kill that. Thanks, Adrian