#
345635 |
|
28-Mar-2019 |
avos |
MFC r306049: net80211: remove IEEE80211_RADIOTAP_TSFT field from transmit definitions.
This field may be used for received frames only.
|
#
343976 |
|
10-Feb-2019 |
avos |
MFC r343474: Remove 2GHz channel list copies from wireless drivers.
Wrap ieee80211_add_channel_list_2ghz into another function which supplies default (1-14) channel list to it and drop its copies from drivers.
|
#
343760 |
|
05-Feb-2019 |
avos |
MFC r343541: Drop some unneeded includes from wireless USB drivers.
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
298895 |
|
01-May-2016 |
avos |
rum: switch to ieee80211_add_channel_list_*()
- Use device's channel list instead of default one (from ieee80211_init_channels()). - Add ic_getradiocaps() method.
Added channels: 2GHz band: 12, 13 and 14. 5Ghz band: 34, 38, 42, 46 and 165.
Tested with WUSB54GC, STA / MONITOR modes.
Differential Revision: https://reviews.freebsd.org/D6125
|
#
298818 |
|
29-Apr-2016 |
avos |
net80211 + drivers: hide size of 'bands' array behind a macro.
Auto-replace 'howmany(IEEE80211_MODE_MAX, 8)' with 'IEEE80211_MODE_BYTES'. No functional changes.
|
#
298646 |
|
26-Apr-2016 |
pfg |
sys/dev: extend use of the howmany() macro when available.
We have a howmany() macro in the <sys/param.h> header that is convenient to re-use as it makes things easier to read.
|
#
297171 |
|
21-Mar-2016 |
avos |
rum: add legacy power saving support (STA mode).
Tested with WUSB54GC, STA mode + WRT54GC / RTL8188EU in HOSTAP mode.
Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D5546
|
#
297169 |
|
21-Mar-2016 |
avos |
rum: simplify error handling in rum_newstate().
Tested with WUSB54GC, STA mode.
Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D5544
|
#
297166 |
|
21-Mar-2016 |
avos |
rum: do not try to restore bssid/TSF synchronization when device is not associated.
Tested with WUSB54GC, STA mode.
Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D5543
|
#
297165 |
|
21-Mar-2016 |
avos |
rum: separate some microcontroller vendor-specific requests into rum_do_mcu_request()
This change should be no-op.
Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D5542
|
#
295607 |
|
14-Feb-2016 |
hselasky |
Reduce the number of supported WLAN keys in the rum driver, else we risk bit shifting overflows. Found by D5245 / PVS.
MFC after: 1 week
|
#
293339 |
|
07-Jan-2016 |
avos |
net80211 drivers: fix ieee80211_init_channels() usage
Fix out-of-bounds read (all) / write (11n capable) for drivers that are using ieee80211_init_channels() to initialize channel list.
Tested with: * RTL8188EU, STA mode. * RTL8188CUS, STA mode. * WUSB54GC, HOSTAP mode.
Approved by: adrian (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D4818
|
#
292176 |
|
13-Dec-2015 |
avos |
wpi, rum and urtwn: update copyright headers
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D4489
|
#
292165 |
|
13-Dec-2015 |
avos |
net80211: remove hardcoded slot time durations from drivers
- Add IEEE80211_GET_SLOTTIME(ic) macro. - Use predefined macroses to set slot time.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D4044
|
#
292080 |
|
11-Dec-2015 |
imp |
Create a USB_PNP_INFO and use it to export the existing PNP tables. Some drivers needed some slight re-arrangement of declarations to accommodate this. Change the USB pnp tables slightly to allow better compatibility with the system by moving linux driver info from start of each entry to the end. All other PNP tables in the system have the per-device flags and such at the end of the elements rather that at the beginning.
Differential Review: https://reviews.freebsd.org/D3458
|
#
290407 |
|
05-Nov-2015 |
avos |
net80211: WME callback cleanup in various drivers
Since r288350, ic_wme_task() is called via ieee80211_runtask(), so, any additional deferring from the driver side is not needed.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D4072
|
#
289165 |
|
12-Oct-2015 |
adrian |
net80211: move ieee80211_free_node() call on error from ic_raw_xmit() to ieee80211_raw_output().
This doesn't free the mbuf upon error; the driver ic_raw_xmit method is still doing that.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3774
|
#
288647 |
|
04-Oct-2015 |
adrian |
Fix to make compile on gcc-4.2.1 (eg mips, sparc64.)
|
#
288642 |
|
03-Oct-2015 |
adrian |
rum(4): add WME support.
Tested:
* WUSB54GC, HOSTAP and STA modes. * Me: rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3700
|
#
288639 |
|
03-Oct-2015 |
adrian |
rum(4): fix stats interpretation in rum_ratectl_task()
Testing:
* WUSB54GC, STA mode
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3690
|
#
288638 |
|
03-Oct-2015 |
adrian |
rum(4): set short/long retry limits
Now device will use retry limit, which is set via 'ifconfig <interface> maxretry <number>'.
Tested:
* Tested on WUSB54GC, STA mode.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3689
|
#
288637 |
|
03-Oct-2015 |
adrian |
rum(4): fix sequence number generation.
* drop erroneous RT2573_TX_MORE_FRAG flag; * provide RT2573_TX_HWSEQ where needed.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3672
|
#
288636 |
|
03-Oct-2015 |
adrian |
net80211: drop ieee80211_beacon_offsets parameter from ieee80211_beacon_alloc() and ieee80211_beacon_update()
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3659
|
#
288635 |
|
03-Oct-2015 |
adrian |
net80211: drop redundant 3rd parameter from iv_key_set().
The MAC can be fetched from the key struct.
I added the ndis updates to make it compile.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3657
|
#
288634 |
|
03-Oct-2015 |
adrian |
rum(4): drop unused 'node id' parameter.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3655
|
#
288633 |
|
03-Oct-2015 |
adrian |
rum(4): add support for hardware encryption (WEP, TKIP and CCMP).
This diff includes:
* Transmitter Addresses, Keys and TKIP MIC addition to the Security Key Table. * Proper SEC Control Registers initialization and maintenance. * Additional flags and values in TX descriptor, which are required for encryption support. * Error checking in RX path.
Tested:
* Tested on WUSB54GC, STA (WEP, TKIP, CCMP), HOSTAP (CCMP) and IBSS (CCMP, WPA-None) modes. * rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, STA mode (CCMP+TKIP)
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3640
|
#
288632 |
|
03-Oct-2015 |
adrian |
rum(4): implement iv_update_beacon call (fixes client power save support).
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3632
|
#
288631 |
|
03-Oct-2015 |
adrian |
rum(4): attach rum_update_slot to ic_updateslot.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3631
|
#
288623 |
|
03-Oct-2015 |
adrian |
rum(4): split rum_prepare_beacon() into 'alloc' and 'set' stages
Note: I manually had to merge this; I merged in the "put beacon_offsets into vap" commit before this.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3628
|
#
288622 |
|
03-Oct-2015 |
adrian |
rum(4): add support for AHDEMO mode.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3627
|
#
288621 |
|
03-Oct-2015 |
adrian |
rum(4): simplify rum_set_bssid(), rum_set_macaddr() and rum_update_promisc()
Tested:
* rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, STA mode
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3626
|
#
288619 |
|
03-Oct-2015 |
adrian |
rum(4): do not corrupt MAC address
Don't override the NIC MAC address with an overridden MAC address for a VAP.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3625
|
#
288618 |
|
03-Oct-2015 |
adrian |
rum(4): add error handling for rum_enable_tsf_sync() and rum_prepare_beacon()
Tested:
* rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, STA mode Note: haven't tested AP mode yet; will do once the rest of the AP mode / power save commits are in.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3624
|
#
288616 |
|
03-Oct-2015 |
adrian |
rum(4): move some code from rum_init() into separate function.
Tested:
* rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, STA mode
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3623
|
#
288609 |
|
03-Oct-2015 |
adrian |
rum(4): add error handling in initialization path
Tested:
* Tested on WUSB54GC, STA mode. * rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, STA mode
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3622
|
#
288606 |
|
03-Oct-2015 |
adrian |
rum(4): simplify error handling rum_raw_xmit()
Move the mbuf free responsibility to the caller of the hardware xmit function, not the hardware xmit function itself.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3621
|
#
288605 |
|
03-Oct-2015 |
adrian |
rum(4): check mbuf size before accessing its contents
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3610
|
#
288604 |
|
03-Oct-2015 |
adrian |
rum(4): add TSF field into radiotap headers
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3607
|
#
288535 |
|
03-Oct-2015 |
adrian |
Remove beacon offsets usage from if_rum.
Differential Revision: https://reviews.freebsd.org/D3658
|
#
288532 |
|
03-Oct-2015 |
adrian |
rum(4): add command queue for running sleepable tasks in non-sleepable contexts
Tested:
* Tested on WUSB54GC, STA mode. * rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3629
|
#
288531 |
|
03-Oct-2015 |
adrian |
rum(4): some non-functional changes / cleanup
* Remove unused sc_txtap_len/sc_rxtap_len fields. * Remove unused ackrate variable. * Remove unneded warning in rum_update_mcast(). * Use nitems(). * Replace some hardcoded values for RT2573_MAC_CSR1 register. * Remove second argument for RUM_LOCK_ASSERT() - it is always the same.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3605
|
#
288504 |
|
02-Oct-2015 |
adrian |
rum(4): sync rum_enable_tsf(_sync) with run(4).
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3611
|
#
288503 |
|
02-Oct-2015 |
adrian |
rum(4): create few wrappers.
Tested:
rum0: <Belkin Belkin 54g USB Network Adapter, class 0/0, rev 2.00/0.01, addr 22> on usbus0 rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3609
|
#
288502 |
|
02-Oct-2015 |
adrian |
rum(4): move common part of rum_bbp_write() and rum_bbp_read() into rum_bbp_busy().
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3608
|
#
288501 |
|
02-Oct-2015 |
adrian |
rum(4): reduce code duplication.
Tested:
rum0: <Belkin Belkin 54g USB Network Adapter, class 0/0, rev 2.00/0.01, addr 21> on usbus0 rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3606
|
#
287197 |
|
27-Aug-2015 |
glebius |
Replay r286410. Change KPI of how device drivers that provide wireless connectivity interact with the net80211 stack.
Historical background: originally wireless devices created an interface, just like Ethernet devices do. Name of an interface matched the name of the driver that created. Later, wlan(4) layer was introduced, and the wlanX interfaces become the actual interface, leaving original ones as "a parent interface" of wlanX. Kernelwise, the KPI between net80211 layer and a driver became a mix of methods that pass a pointer to struct ifnet as identifier and methods that pass pointer to struct ieee80211com. From user point of view, the parent interface just hangs on in the ifconfig list, and user can't do anything useful with it.
Now, the struct ifnet goes away. The struct ieee80211com is the only KPI between a device driver and net80211. Details:
- The struct ieee80211com is embedded into drivers softc. - Packets are sent via new ic_transmit method, which is very much like the previous if_transmit. - Bringing parent up/down is done via new ic_parent method, which notifies driver about any changes: number of wlan(4) interfaces, number of them in promisc or allmulti state. - Device specific ioctls (if any) are received on new ic_ioctl method. - Packets/errors accounting are done by the stack. In certain cases, when driver experiences errors and can not attribute them to any specific interface, driver updates ic_oerrors or ic_ierrors counters.
Details on interface configuration with new world order: - A sequence of commands needed to bring up wireless DOESN"T change. - /etc/rc.conf parameters DON'T change. - List of devices that can be used to create wlan(4) interfaces is now provided by net.wlan.devices sysctl.
Most drivers in this change were converted by me, except of wpi(4), that was done by Andriy Voskoboinyk. Big thanks to Kevin Lo for testing changes to at least 8 drivers. Thanks to pluknet@, Oliver Hartmann, Olivier Cochard, gjb@, mmoll@, op@ and lev@, who also participated in testing.
Reviewed by: adrian Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
286950 |
|
20-Aug-2015 |
adrian |
Further conversions from ifp->if_softc -> ic_softc.
|
#
286437 |
|
07-Aug-2015 |
adrian |
Revert the wifi ifnet changes until things are more baked and tested.
* 286410 * 286413 * 286416
The initial commit broke a variety of debug and features that aren't in the GENERIC kernels but are enabled in other platforms.
|
#
286410 |
|
07-Aug-2015 |
glebius |
Change KPI of how device drivers that provide wireless connectivity interact with the net80211 stack.
Historical background: originally wireless devices created an interface, just like Ethernet devices do. Name of an interface matched the name of the driver that created. Later, wlan(4) layer was introduced, and the wlanX interfaces become the actual interface, leaving original ones as "a parent interface" of wlanX. Kernelwise, the KPI between net80211 layer and a driver became a mix of methods that pass a pointer to struct ifnet as identifier and methods that pass pointer to struct ieee80211com. From user point of view, the parent interface just hangs on in the ifconfig list, and user can't do anything useful with it.
Now, the struct ifnet goes away. The struct ieee80211com is the only KPI between a device driver and net80211. Details:
- The struct ieee80211com is embedded into drivers softc. - Packets are sent via new ic_transmit method, which is very much like the previous if_transmit. - Bringing parent up/down is done via new ic_parent method, which notifies driver about any changes: number of wlan(4) interfaces, number of them in promisc or allmulti state. - Device specific ioctls (if any) are received on new ic_ioctl method. - Packets/errors accounting are done by the stack. In certain cases, when driver experiences errors and can not attribute them to any specific interface, driver updates ic_oerrors or ic_ierrors counters.
Details on interface configuration with new world order: - A sequence of commands needed to bring up wireless DOESN"T change. - /etc/rc.conf parameters DON'T change. - List of devices that can be used to create wlan(4) interfaces is now provided by net.wlan.devices sysctl.
Most drivers in this change were converted by me, except of wpi(4), that was done by Andriy Voskoboinyk. Big thanks to Kevin Lo for testing changes to at least 8 drivers. Thanks to Olivier Cochard, gjb@, mmoll@, op@ and lev@, who also participated in testing. Details here:
https://wiki.freebsd.org/projects/ifnet/net80211
Still, drivers: ndis, wtap, mwl, ipw, bwn, wi, upgt, uath were not tested. Changes to mwl, ipw, bwn, wi, upgt are trivial and chances of problems are low. The wtap wasn't compilable even before this change. But the ndis driver is complex, and it is likely to be broken with this commit. Help with testing and debugging it is appreciated.
Differential Revision: D2655, D2740 Sponsored by: Nginx, Inc. Sponsored by: Netflix
|
#
283540 |
|
25-May-2015 |
glebius |
Change three methods in struct ieee80211com, namely ic_updateslot, ic_update_mcast and ic_update_promisc, to pass pointer to the ieee80211com, not to the ifnet.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
283537 |
|
25-May-2015 |
glebius |
Set ic_softc in all 802.11 drivers. Not required right now, but will be used quite soon.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
283527 |
|
25-May-2015 |
glebius |
Make net80211 drivers supply their device name to the net80211 layer, so that the latter doesn't need to go through struct ifnet to get their name.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
276701 |
|
05-Jan-2015 |
hselasky |
Make a bunch of USB debug SYSCTLs tunable, so that their value(s) can be set before the USB device(s) are probed.
|
#
271866 |
|
19-Sep-2014 |
glebius |
Mechanically convert to if_inc_counter().
|
#
269127 |
|
26-Jul-2014 |
hselasky |
Fix for division by zero.
MFC after: 3 days
|
#
260444 |
|
08-Jan-2014 |
kevlo |
Rename definition of IEEE80211_FC1_WEP to IEEE80211_FC1_PROTECTED.
The origin of WEP comes from IEEE Std 802.11-1997 where it defines whether the frame body of MAC frame has been encrypted using WEP algorithm or not. IEEE Std. 802.11-2007 changes WEP to Protected Frame, indicates whether the frame is protected by a cryptographic encapsulation algorithm.
Reviewed by: adrian, rpaulo
|
#
258919 |
|
04-Dec-2013 |
hselasky |
Fix external compiler warning(s). Avoid pointer dereferencing.
|
#
257743 |
|
06-Nov-2013 |
hselasky |
Check for "ieee80211_vap_setup()" failure in all USB WLAN drivers.
MFC after: 1 week
|
#
257176 |
|
26-Oct-2013 |
glebius |
The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare to this event, adding if_var.h to files that do need it. Also, include all includes that now are included due to implicit pollution via if_var.h
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
253340 |
|
14-Jul-2013 |
rpaulo |
Revert r252725 as it breaks WPA.
We need to fix wpa_supplicant because it checks whether the card has ic_cryptocaps set. Since net80211 can do software encryption this check in wpa_supplicant is wrong.
|
#
252725 |
|
04-Jul-2013 |
rpaulo |
Set ic_cryptocaps to make sure wpa_supplicant works with WEP.
|
#
248566 |
|
21-Mar-2013 |
hselasky |
Add new USB ID.
PR: usb/177173 MFC after: 1 week
|
#
246614 |
|
10-Feb-2013 |
hselasky |
- Streamline detach logic in wlan drivers, so that freed memory cannot be used during detach. - Remove all panic() calls from the urtw driver because panic() is not appropriate here. - Remove redundant checks for device detached in device detach callbacks. - Use DEVMETHOD_END to mark end of device methods.
MFC after: 2 weeks
|
#
243857 |
|
04-Dec-2012 |
glebius |
Mechanically substitute flags from historic mbuf allocator with malloc(9) flags in sys/dev.
|
#
236439 |
|
02-Jun-2012 |
hselasky |
Add appropriate checks for ic_bsschan being set to IEEE80211_CHAN_ANYC in some of the USB WLAN drivers. This fixes a panic when using monitor mode.
MFC after: 1 week Submitted by: PseudoCylon
|
#
233774 |
|
02-Apr-2012 |
hselasky |
Fix compiler warnings, mostly signed issues, when USB modules are compiled with WARNS=9.
MFC after: 1 weeks
|
#
228621 |
|
17-Dec-2011 |
bschmidt |
Fix some net80211 enum nits: - ic_vap_create() uses an ieee80211_opmode argument - ieee80211_rate2media() takes an ieee80211_phymode argument - ieee80211_plcp2rate() takes an ieee80211_phytype argument - cast to enum ieee80211_protmode and ieee80211_roamingmode to silence compiler warnings
Submitted by: arundel@
|
#
227309 |
|
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
#
226467 |
|
17-Oct-2011 |
bz |
Fix build after r226465. Cast void * to char * for arithmetics and make function return "no error".
MFC after: 3 days
|
#
226465 |
|
17-Oct-2011 |
adrian |
Fix an issue with 11g beacon frames which looks to be a limitation on the largest multi-write size.
From the submitter:
== I looked further into the magic 88-byte threshold after which the bug occurs. It turns out that figure included the 24-byte tx_desc, and up to 64 bytes of beacon frame (header+data).
rum_write_multi doesn't seem happy with writing >64 bytes at a time to the MAC register. If I break it up into separate calls (e.g. bytes 0-63, then bytes 64-65, written at the appropriate offset) I see the proper beacon frames being transmitted now. ==
Submitted by: Steven Chamberlain <steven@pyro.eu.org> MFC after: 3 days
|
#
223486 |
|
24-Jun-2011 |
hselasky |
- Move all USB device ID arrays into so-called sections, sorted according to the mode which they support: host, device or dual mode - Add generic tool to extract these data: tools/bus_autoconf
Discussed with: imp Suggested by: Robert Millan <rmh@debian.org> PR: misc/157903 MFC after: 14 days
|
#
221199 |
|
29-Apr-2011 |
kevlo |
Guard against default ni_chan
PR: kern/144642 Submitted by: Arthur Hartwig <a_hartwig at fastmaildot fm>
|
#
217511 |
|
17-Jan-2011 |
bschmidt |
Pull ieee80211_ratectl_node_init() calls from drivers into net80211. This fixes hostap mode for at least ral(4) and run(4), because there is no sufficient call into drivers which could be used initialize the node related ratectl variables.
MFC after: 3 days
|
#
216057 |
|
29-Nov-2010 |
sanpei |
Add new device ids. Buffalo (Melco Inc.) WLI-UC-G
PR: 141777
|
#
214894 |
|
06-Nov-2010 |
bschmidt |
Instead of using the AMRR ratectl algo as default for drivers which have the IEEE80211_C_RATECTL flag set, default to NONE for all drivers. Only if a driver calls ieee80211_ratectl_init() check if the NONE algo is still selected and try to use AMRR in that case. Drivers are still free to use any other algo by calling ieee80211_ratectl_set() prior to the ieee80211_ratectl_init() call.
After this change it is now safe to assume that a ratectl algo is always available and selected, which renders the IEEE80211_C_RATECTL flag pretty much useless. Therefore revert r211314 and 211546.
Reviewed by: rpaulo MFC after: 2 weeks
|
#
213880 |
|
14-Oct-2010 |
hselasky |
Add new USB device IDs to the list of supported devices.
PR: usb/151043 Approved by: thompsa (mentor)
|
#
213537 |
|
07-Oct-2010 |
emaste |
In r207768 I silenced a console warning from rum(4). There was legitimate opposition to the change, since really we need to implement missing functionality in drivers or the 802.3 layer.
For now, restore a reminder message for a missing rum_update_mcast, but print it only once.
|
#
212127 |
|
02-Sep-2010 |
thompsa |
We need to grab a node reference count to vap->iv_bss before using it as it is possible for the node to be replaced and freed at any time by ieee80211_sta_join1().
|
#
212122 |
|
01-Sep-2010 |
thompsa |
Add missing MODULE_VERSION() definitions, this resolves problems around duplicate module loads.
PR: usb/125736 Submitted by: danger, mm Reviewed by: hselasky
|
#
211314 |
|
14-Aug-2010 |
bschmidt |
Introduce IEEE80211_C_RATECTL, drivers which use the ratectl framework should set this capability.
MFC after: 2 weeks
|
#
209189 |
|
14-Jun-2010 |
jkim |
Fix typos that broke duration calculations on protection frames. A similar fix was done for ral(4) long ago and it must be copy-and-paste bugs.
Found by: clang
|
#
207768 |
|
08-May-2010 |
emaste |
Add dummy function for ic_update_mcast (a la if_urtw) to avoid console spam.
|
#
207554 |
|
03-May-2010 |
sobomax |
Add new tunable 'net.link.ifqmaxlen' to set default send interface queue length. The default value for this parameter is 50, which is quite low for many of today's uses and the only way to modify this parameter right now is to edit if_var.h file. Also add read-only sysctl with the same name, so that it's possible to retrieve the current value.
MFC after: 1 month
|
#
207077 |
|
22-Apr-2010 |
thompsa |
Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had the illusion of a tunable setting but was always turned on regardless.
MFC after: 1 week
|
#
206358 |
|
07-Apr-2010 |
rpaulo |
net80211 rate control framework (net80211 ratectl).
This framework allows drivers to abstract the rate control algorithm and just feed the framework with the usable parameters. The rate control framework will now deal with passing the parameters to the selected algorithm. Right now we have AMRR (the default) and RSSADAPT but there's no way to select one with ifconfig, yet. The objective is to have more rate control algorithms in the net80211 stack so all drivers[0] can use it. Ideally, we'll have the well-known sample rate control algorithm in the net80211 at some point so all drivers can use it (not just ath).
[0] all drivers that do rate control in software, that is.
Reviewed by: bschmidt, thompsa, weyongo MFC after: 1 months
|
#
203141 |
|
29-Jan-2010 |
thompsa |
Attempt to recover on a TX error rather than stopping all transfers.
Submitted by: Hans Petter Selesky
|
#
203139 |
|
28-Jan-2010 |
thompsa |
Add device ID.
PR: usb/142427
|
#
201028 |
|
26-Dec-2009 |
thompsa |
Use macros to strip off USB_VENDOR_ and USB_PRODUCT_ from some id tables to make them more compact and readable.
|
#
198098 |
|
14-Oct-2009 |
weongyo |
fixes a TX hang bug that it could happen when if_start callback didn't be restarted by full of the output queue.
MFC after: 3 days Tested by: bsduser <bsd at acd.homelinux.org>
|
#
196970 |
|
08-Sep-2009 |
phk |
Revert previous commit and add myself to the list of people who should know better than to commit with a cat in the area.
|
#
196969 |
|
08-Sep-2009 |
phk |
Add necessary include.
|
#
196219 |
|
14-Aug-2009 |
jhb |
Purge mergeinfo from files that were temporarily renamed while USB2 was imported into the tree alongside USB.
Approved by: re (mergeinfo blanket)
|
#
194677 |
|
23-Jun-2009 |
thompsa |
- Make struct usb_xfer opaque so that drivers can not access the internals - Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h
|
#
194228 |
|
14-Jun-2009 |
thompsa |
s/usb2_/usb_|usbd_/ on all function names for the USB stack.
|
#
193073 |
|
29-May-2009 |
sam |
validate tx rate(s) in the raw xmit path
Tested by: "Paul B. Mahol" <onemda@gmail.com> (rum, bwi)
|
#
193045 |
|
29-May-2009 |
thompsa |
s/usb2_/usb_/ on all typedefs for the USB stack.
|
#
192984 |
|
28-May-2009 |
thompsa |
s/usb2_/usb_/ on all C structs for the USB stack.
|
#
192502 |
|
20-May-2009 |
thompsa |
Rename the usb sysctl tree from hw.usb2.* back to hw.usb.*.
Submitted by: Hans Petter Selasky
|
#
192499 |
|
20-May-2009 |
thompsa |
- rename usb2_mode to usb_mode [1] - change variable types to use the enum
Submitted by: Hans Petter Selasky [1]
|
#
192468 |
|
20-May-2009 |
sam |
Overhaul monitor mode handling: o replace DLT_IEEE802_11 support in net80211 with DLT_IEEE802_11_RADIO and remove explicit bpf support from wireless drivers; drivers now use ieee80211_radiotap_attach to setup shared data structures that hold the radiotap header for each packet tx/rx o remove rx timestamp from the rx path; it was used only by the tdma support for debugging and was mostly useless due to it being 32-bits and mostly unavailable o track DLT_IEEE80211_RADIO bpf attachments and maintain per-vap and per-com state when there are active taps o track the number of monitor mode vaps o use bpf tap and monitor mode vap state to decide when to collect radiotap state and dispatch frames; drivers no longer explicitly directly check bpf state or use bpf calls to tap frames o handle radiotap state updates on channel change in net80211; drivers should not do this (unless they bypass net80211 which is almost always a mistake) o update various drivers to be more consistent/correct in handling radiotap o update ral to include TSF in radiotap'd frames o add promisc mode callback to wi
Reviewed by: cbzimmer, rpaulo, thompsa
|
#
191746 |
|
02-May-2009 |
thompsa |
Create a taskqueue for each wireless interface which provides a serialised sleepable context for net80211 driver callbacks. This removes the need for USB and firmware based drivers to roll their own code to defer the chip programming for state changes, scan requests, channel changes and mcast/promisc updates. When a driver callback completes the hardware state is now guaranteed to have been updated and is in sync with net80211 layer.
This nukes around 1300 lines of code from the wireless device drivers making them more readable and less race prone.
The net80211 layer has been updated as follows - all state/channel changes are serialised on the taskqueue. - ieee80211_new_state() always queues and can now be called from any context - scanning runs from a single taskq function and executes to completion. driver callbacks are synchronous so the channel, phy mode and rx filters are guaranteed to be set in hardware before probe request frames are transmitted.
Help and contributions from Sam Leffler.
Reviewed by: sam
|
#
190749 |
|
05-Apr-2009 |
piso |
Remove pointeless mergeinfo that crept in from r190633.
|
#
190734 |
|
05-Apr-2009 |
thompsa |
MFp4 //depot/projects/usb@159909
- make usb2_power_mask_t 16-bit - remove "usb2_config_sub" structure from "usb2_config". To compensate for this "usb2_config" has a new field called "usb_mode" which select for which mode the current xfer entry is active. Options are: a) Device mode only b) Host mode only (default-by-zero) c) Both modes. This change was scripted using the following sed script: "s/\.mh\././g". - the standard packet size table in "usb_transfer.c" is now a function, hence the code for the function uses less memory than the table itself.
Submitted by: Hans Petter Selasky
|
#
190633 |
|
01-Apr-2009 |
piso |
Implement an ipfw action to reassemble ip packets: reass.
|
#
190588 |
|
31-Mar-2009 |
kevlo |
Add another rum(4) device found in http://www.fit-pc.com/new/whats-new.html
|
#
190581 |
|
30-Mar-2009 |
mav |
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP.
Hardware sponsored by: Vitsch Electronics / VEHosting.nl
|
#
190579 |
|
30-Mar-2009 |
sam |
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 o fixup wi so it recreates the 802.3 head it requires from the 802.11 header contents o move fast-frame aggregation from ath to net80211 (conditional on IEEE80211_SUPPORT_SUPERG): - aggregation is now done in ieee80211_start; it is enabled when the packets/sec exceeds ieee80211_ffppsmin (net.wlan.ffppsmin) and frames are held on a staging queue according to ieee80211_ffagemax (net.wlan.ffagemax) to wait for a frame to combine with - drivers must call back to age/flush the staging queue (ath does this on tx done, at swba, and on rx according to the state of the tx queues and/or the contents of the staging queue) - remove fast-frame-related data structures from ath - add ieee80211_ff_node_init and ieee80211_ff_node_cleanup to handle per-node fast-frames state (we reuse 11n tx ampdu state) o change ieee80211_encap calling convention to include an explicit vap so frames coming through a WDS vap are recognized w/o setting M_WDS
With these changes any device able to tx/rx 3Kbyte+ frames can use fast-frames.
Reviewed by: thompsa, rpaulo, avatar, imp, sephe
|
#
190532 |
|
29-Mar-2009 |
sam |
o add ic_rt to track the rate table for the current channel; this enables calculation of packet transmit times to do things like check txop limits o remove equivalent driver code and convert to use net80211 state
|
#
190526 |
|
29-Mar-2009 |
sam |
Eliminate ic_myaddr so changing the mac address of a device works correctly: o remove ic_myaddr from ieee80211com o change ieee80211_ifattach to take the mac address of the physical device and use that to setup the lladdr. o replace all references to ic_myaddr in drivers by IF_LLADDR o related cleanups (e.g. kill dead code)
PR: kern/133178 Reviewed by: thompsa, rpaulo
|
#
189275 |
|
02-Mar-2009 |
thompsa |
Rename the ushub device class back to uhub as it was in the old usb stack, moused(8) looks for "uhub/ums" to decide if needs to load the module.
Reported by: Garrett Cooper
|
#
189124 |
|
27-Feb-2009 |
thompsa |
Remove ic_update_mcast calls that are not implemented.
Spotted by: sam Pointy hat: me
|
#
189123 |
|
27-Feb-2009 |
thompsa |
Partial sync to //depot/projects/usb
- Reissue the ctrl request on failure - Ensure Tx and ctrl requests are not interleaved - Add promisc callbacks
Obtained from: Hans Petter Selasky
|
#
189002 |
|
24-Feb-2009 |
ed |
Also use proper capitalisation of FreeBSD in other source files.
Approved by: thompsa
|
#
188969 |
|
23-Feb-2009 |
thompsa |
Make sure at least two tx slots are free before sending the mbuf since an additional frame may be sent for 80211 protection.
|
#
188942 |
|
23-Feb-2009 |
thompsa |
Move the new USB stack into its new home.
|
#
188746 |
|
18-Feb-2009 |
thompsa |
Switch over to usbdevs.h generated at compile time.
|
#
188619 |
|
14-Feb-2009 |
thompsa |
- ieee80211_chan2ieee returns an int - avoid null deref in detach - update pause timings
Obtained from: //depot/projects/usb
|
#
188419 |
|
09-Feb-2009 |
thompsa |
MFp4 //depot/projects/usb; 157429, 157433, 157443
Various changes wrt. usb procs and tasks.
Submitted by: Hans Petter Selasky
|
#
188418 |
|
09-Feb-2009 |
thompsa |
Correct sources for r188417
MFp4 //depot/projects/usb; 157412
Sync from svn.freebsd.org/base/user/thompsa/usb which is a minimal changeset from oldUSB (no config_td).
This excludes the taskqueue changes (for the moment) as requested.
|
#
188417 |
|
09-Feb-2009 |
thompsa |
MFp4 //depot/projects/usb; 157412
Sync from svn.freebsd.org/base/user/thompsa/usb which is a minimal changeset from oldUSB (no config_td).
This excludes the taskqueue changes (for the moment) as requested.
|
#
188234 |
|
06-Feb-2009 |
kevlo |
Add the Buffalo WLI-U2-SG54HG
|
#
187970 |
|
31-Jan-2009 |
thompsa |
Remove check for null softc in attach, it can never happen.
|
#
187378 |
|
18-Jan-2009 |
thompsa |
Just put the ifnet pointer first in the softc like it needs to be rather than adding another deliciously evil pointer.
|
#
187259 |
|
15-Jan-2009 |
thompsa |
Name the items in the xfer arrays so they can be identified throughout the code.
|
#
187192 |
|
13-Jan-2009 |
thompsa |
Restore the if_*var.h and if_*reg.h to their original names, they dont need to be different.
|
#
186454 |
|
23-Dec-2008 |
thompsa |
Remove CALLOUT_RETURNUNLOCKED from the callouts, there is no reason for them to drop the lock for us.
|
#
185950 |
|
11-Dec-2008 |
thompsa |
Remove superfluous return statements from the end of void functions.
|
#
185948 |
|
11-Dec-2008 |
thompsa |
Format and wrap function declarations.
|
#
184610 |
|
04-Nov-2008 |
alfred |
Bring in USB4BSD, Hans Petter Selasky rework of the USB stack that includes significant features and SMP safety.
This commit includes a more or less complete rewrite of the *BSD USB stack, including Host Controller and Device Controller drivers and updating all existing USB drivers to use the new USB API:
1) A brief feature list:
- A new and mutex enabled USB API.
- Many USB drivers are now running Giant free.
- Linux USB kernel compatibility layer.
- New UGEN backend and libusb library, finally solves the "driver unloading" problem. The new BSD licensed libusb20 library is fully compatible with libusb-0.1.12 from sourceforge.
- New "usbconfig" utility, for easy configuration of USB.
- Full support for Split transactions, which means you can use your full speed USB audio device on a high speed USB HUB.
- Full support for HS ISOC transactions, which makes writing drivers for various HS webcams possible, for example.
- Full support for USB on embedded platforms, mostly cache flushing and buffer invalidating stuff.
- Safer parsing of USB descriptors.
- Autodetect of annoying USB install disks.
- Support for USB device side mode, also called USB gadget mode, using the same API like the USB host side. In other words the new USB stack is symmetric with regard to host and device side.
- Support for USB transfers like I/O vectors, means more throughput and less interrupts.
- ... see the FreeBSD quarterly status reports under "USB project"
2) To enable the driver in the default kernel build:
2.a) Remove all existing USB device options from your kernel config file.
2.b) Add the following USB device options to your kernel configuration file:
# USB core support device usb2_core
# USB controller support device usb2_controller device usb2_controller_ehci device usb2_controller_ohci device usb2_controller_uhci
# USB mass storage support device usb2_storage device usb2_storage_mass
# USB ethernet support, requires miibus device usb2_ethernet device usb2_ethernet_aue device usb2_ethernet_axe device usb2_ethernet_cdce device usb2_ethernet_cue device usb2_ethernet_kue device usb2_ethernet_rue device usb2_ethernet_dav
# USB wireless LAN support device usb2_wlan device usb2_wlan_rum device usb2_wlan_ral device usb2_wlan_zyd
# USB serial device support device usb2_serial device usb2_serial_ark device usb2_serial_bsa device usb2_serial_bser device usb2_serial_chcom device usb2_serial_cycom device usb2_serial_foma device usb2_serial_ftdi device usb2_serial_gensa device usb2_serial_ipaq device usb2_serial_lpt device usb2_serial_mct device usb2_serial_modem device usb2_serial_moscom device usb2_serial_plcom device usb2_serial_visor device usb2_serial_vscom
# USB bluetooth support device usb2_bluetooth device usb2_bluetooth_ng
# USB input device support device usb2_input device usb2_input_hid device usb2_input_kbd device usb2_input_ms
# USB sound and MIDI device support device usb2_sound
2) To enable the driver at runtime:
2.a) Unload all existing USB modules. If USB is compiled into the kernel then you might have to build a new kernel.
2.b) Load the "usb2_xxx.ko" modules under /boot/kernel having the same base name like the kernel device option.
Submitted by: Hans Petter Selasky hselasky at c2i dot net Reviewed by: imp, alfred
|