From owner-freebsd-wireless@freebsd.org Sun Sep 13 19:45:29 2015 Return-Path: Delivered-To: freebsd-wireless@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 74BA5A038FF for ; Sun, 13 Sep 2015 19:45:29 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-io0-x232.google.com (mail-io0-x232.google.com [IPv6:2607:f8b0:4001:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 41E631B15 for ; Sun, 13 Sep 2015 19:45:29 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by iofh134 with SMTP id h134so145937436iof.0 for ; Sun, 13 Sep 2015 12:45:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=NlfdHsyRQZZfE21/Bmurh6m+Q9ao+TJSJMWmf9TQ5U4=; b=iLbnTn7AUgsYNoPT/1F1/v7PMu0EwJ/YeBRrq1Vvr/3mm+OZkYTX161cwh0f73jjrY HWREcaUdDa+nLO5DpL/KOk+H73YC/zksG2E4wBitfQGSr3G4AbHOzZhs6fjzstQTNG8P e717K9xeD0PWYNQK+sz2EkiNy9uNw2eH0upvl3xywA/yVkkNLqISllnCqtf2YE76DGn8 H0jLqdVNAfYqpGCxjTCWbUteFbOcvNc030slzL3t9LyQOULzMr1rU39hS+cMzTuemsMv C2yVbAjm8r/Lwg4aDbIhYzDwAHuUcyMe/MeBYd7b0mbQnDBITK7LwphcETbU0+M9YaeR euAw== MIME-Version: 1.0 X-Received: by 10.107.13.75 with SMTP id 72mr18305248ion.75.1442173528472; Sun, 13 Sep 2015 12:45:28 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.36.28.208 with HTTP; Sun, 13 Sep 2015 12:45:28 -0700 (PDT) Date: Sun, 13 Sep 2015 12:45:28 -0700 X-Google-Sender-Auth: 43so-PjPDvjgSkFZaQ2g4RbzEa0 Message-ID: Subject: looking for if_rsu testers From: Adrian Chadd To: "freebsd-wireless@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Sep 2015 19:45:29 -0000 hi all, I've done some digging into if_rsu (thanks to idwer on #freebsd-wifi on efnet!) and found a few places that needed addressing. I haven't yet enabled 11n on the thing yet, but it now seems a bunch more stable and associating-y than it did before. Here's what I've found thus far: http://urbinek.eu/_soft/RTL819xSU_usb_linux_v2.6.6.0.20120405/rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20120405/document/RTL8712_D0_1_Programming_Guide_20090601.pdf http://www.urbinek.eu/_soft/RTL819xSU_usb_linux_v2.6.6.0.20120405/rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20120405/ReleaseNotes.pdf I also looked at the rtlwifi driver in linux and the fork specifically for this particular chipset for ideas: https://github.com/chunkeey/rtl8192su/tree/master/rtlwifi This is a mostly-smart device. ie, the firmware handles scanning, 802.11 association, transmit rate control, and I /think/ at least something to do with 11n aggregation - but I don't know the full details there yet. * openbsd adds a ENOTSUPP stub method for ic_send_mgmt() - ie, it blocks all software-generated management frames out. The general idea here is that the device handles scan, probe, assoc req, etc itself. I bet freebsd transmitting its own assoc request / probe requests at the same time the device is was confusing things. * it's smart like iwm/iwn/etc - however scan returns a survey message set, not beacons - so we should directly populate the scan cache rather than the current hack of faking a beacon to the stack * handle the STA disassociate message - yes, it's actually legit. * the debug sysctl is now a bitmap, so you can see interesting things without getting spammed. The most interesting one is the /text/ firmware debug messages - sysctl hw.usb.rsu.debug=0x200 - which is actually pretty enlightening. * we don't yet print out the join message response code - it does tell you about failures if they occur. * there's some very large scan-to-scan differences in reported RSSI, which is highly suspicious. That's worth looking into, in case our calibration code is suspect. So, if you're using if_rsu then please update to the latest -head and try it out. I'm very interested in the results. firmware messages via debugging is also good - compile a kernel with USB_DEBUG, and sysctl hw.usb.rsu.debug=0x200 . It'll actually give you text strings as debugging info, which is highly awesome. Thanks! -adrian