From owner-freebsd-net@FreeBSD.ORG Sun Feb 19 09:45:09 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 10157106564A for ; Sun, 19 Feb 2012 09:45:09 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 77B398FC19 for ; Sun, 19 Feb 2012 09:45:08 +0000 (UTC) Received: by lagz14 with SMTP id z14so7790517lag.13 for ; Sun, 19 Feb 2012 01:45:07 -0800 (PST) Received-SPF: pass (google.com: domain of adrian.chadd@gmail.com designates 10.112.84.233 as permitted sender) client-ip=10.112.84.233; Authentication-Results: mr.google.com; spf=pass (google.com: domain of adrian.chadd@gmail.com designates 10.112.84.233 as permitted sender) smtp.mail=adrian.chadd@gmail.com; dkim=pass header.i=adrian.chadd@gmail.com Received: from mr.google.com ([10.112.84.233]) by 10.112.84.233 with SMTP id c9mr4736165lbz.1.1329644707272 (num_hops = 1); Sun, 19 Feb 2012 01:45:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=Ou3mkE1SoTrW0kn3RrRqjuGRYmCbelY9lKW87v8UD8A=; b=xFpPYVIujG9mrKjdX+z9z9T8UoicjdatooG45dLY0kBd/AY1k+mNxDSWIIH99/v005 xrG0PcRJmiNtd7aed58izkK+zAwF0/jnah0HawDzXCAnxzaUweFULuVY2rhwpO+xcemN sRNpnDEwa8tXMEmDiaFXKWL4QTDVS0+CVhSr4= MIME-Version: 1.0 Received: by 10.112.84.233 with SMTP id c9mr3951376lbz.1.1329644707208; Sun, 19 Feb 2012 01:45:07 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.112.87.35 with HTTP; Sun, 19 Feb 2012 01:45:07 -0800 (PST) In-Reply-To: References: Date: Sun, 19 Feb 2012 01:45:07 -0800 X-Google-Sender-Auth: 45LzzUCLkmQlouUQ6W6569i-sKg Message-ID: From: Adrian Chadd To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: net80211 - how the heck is M_FRAG (mbuf/net80211 fragments) supposed to work? 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: Sun, 19 Feb 2012 09:45:09 -0000 On 17 February 2012 00:53, Adrian Chadd wrote: > Hi, > > So ray@ pointed out that fragment handling in net80211 is broken. Yes, > 802.11 fragments, not IP fragments. This is specific to ath, but any > driver using IFQ_ENQUEUE/IFQ_DEQUEUE is likely broken. After doing some digging, I stumbled across: r190579 | sam | 2009-03-30 14:53:27 -0700 (Mon, 30 Mar 2009) | 25 lines Hoist 802.11 encapsulation up into net80211: o call ieee80211_encap in ieee80211_start so frames passed down to drivers are already encapsulated o remove ieee80211_encap calls in drivers ... So I wonder if fragment encapsulation was broken at this point? The ath driver would've been able to decapsulate that list of fragment frames and feed them one at a time to the fragment/TX side. Adrian