#
345636 |
|
28-Mar-2019 |
avos |
MFC r344990: Fix ieee80211_radiotap(9) usage in wireless drivers:
- Alignment issues: * Add missing __packed attributes + padding across all drivers; in most places there was an assumption that padding will be always minimally suitable; in few places - e.g., in urtw(4) / rtwn(4) - padding was just missing. * Add __aligned(8) attribute for all Rx radiotap headers since they can contain 64-bit TSF timestamp; it cannot appear in Tx radiotap headers, so just drop the attribute here. Refresh ieee80211_radiotap(9) man page accordingly.
- Since net80211 automatically updates channel frequency / flags in ieee80211_radiotap_chan_change() drop duplicate setup for these fields in drivers.
|
#
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.
|
#
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 |
#
296356 |
|
03-Mar-2016 |
avos |
zyd, run, ural: do not corrupt MAC address
Do not use ic_macaddr as a storage for current BSSID; it may be reused in vap creation procedure; similar to r288619.
Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D5513
|
#
289168 |
|
12-Oct-2015 |
adrian |
net80211 drivers: eliminate any references to sc_rxtap_len/sc_txtap_len (never used here)
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3776
|
#
288603 |
|
03-Oct-2015 |
adrian |
run(4): Add initial support for IBSS merge.
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3592
|
#
288095 |
|
22-Sep-2015 |
adrian |
net80211: include one copy of struct ieee80211_beacon_offsets into ieee80211vap
Submitted by: Andriy Voskoboinyk <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3658
|
#
287554 |
|
08-Sep-2015 |
kevlo |
Add TSF field into TX/RX radiotap headers
Tested on RT5370, sta mode. Submitted by: Andriy Voskoboinyk <s3erios at gmail com> Differential Revision: https://reviews.freebsd.org/D3590
|
#
287552 |
|
08-Sep-2015 |
kevlo |
- Remove empty key_update_* functions. - Hide "struct ieee80211_node *" -> "struct run_node *" casting behind RUN_NODE() macro. - Simplify IEEE80211_HAS_ADDR4 macro definition - Fix a comment (desn't -> doesn't)
Submitted by: Andriy Voskoboinyk <s3erios at gmail com> Differential Revision: https://reviews.freebsd.org/D3588
|
#
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.
|
#
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
|
#
262465 |
|
24-Feb-2014 |
kevlo |
Add a flag to run's device list which uses a standard scsi eject. The flag indicates that the mcu doesn't need to load firmware.
Tested by: Alex Deiter <alex dot deiter at gmail.com>, myself Tested on: ASUS USB-N66
|
#
261076 |
|
23-Jan-2014 |
hselasky |
Revert r261014. Let Kevin fix it.
MFC after: 1 week
|
#
261014 |
|
22-Jan-2014 |
hselasky |
- Fix some non-portable code with regard to endianness. Don't use memmove(). - Fix a range check for maximum transmit length. - Fix read from missing field when transmitting data.
MFC after: 2 weeks
|
#
260219 |
|
03-Jan-2014 |
kevlo |
Add support for the MediaTek/Ralink RT3593 chipset. Committed over the ZyXEL NWD2705 on amd64 with WPA.
|
#
259546 |
|
18-Dec-2013 |
kevlo |
Fix style: add tab after #define.
|
#
259032 |
|
06-Dec-2013 |
kevlo |
Add support for the MediaTek/Ralink RT5572 chipset. Committed over the TP-LINK TL-WDN3200 (RT5572) on amd64 with WPA.
While here, add my copyright.
|
#
258840 |
|
02-Dec-2013 |
kevlo |
The RUN_MAX_TXSZ constat is defined as Tx desc + Tx wireless info + MCLBYTES + max padding. We were lucky in that run(4) working fine since both rt2860_rxwi and rt2860_txwi structure sizes are the same.
|
#
257955 |
|
11-Nov-2013 |
kevlo |
Add support for the MediaTek/Ralink RT5370/RT5372 chipset.
Tested with the TP-Link TL-WN727N (RT5370) and the D-Link DWA-140 (RT5372) on i386/amd64/arm with WPA.
|
#
253757 |
|
29-Jul-2013 |
hselasky |
Fix alignment of USB WLAN radiotap headers. This makes USB WLAN adapters work on ARM, MIPS and similar platforms, where alignment matters.
MFC after: 1 week Reported by: XiaoQI Ge <ghw@7axu.com>
|
#
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
|
#
218676 |
|
14-Feb-2011 |
hselasky |
* Fix page fault caused by referring freed node.
While updating Tx stats, already freed node could be referred and cause page fault. To avoid such panic, spool Tx stats in driver's softc. Then, on every ratectl interval, grab node though ieee80211_iterate_nodes() and update ratectl stats.
* Simplify some code in run_iter_func().
* Fix typo
* Use memset instead of bzero (hselasky @)
PR: kern/153938 Submitted by: PseudoCylon <moonlightakkiy@yahoo.ca> Approved by: thompsa (mentor)
|
#
218492 |
|
09-Feb-2011 |
bschmidt |
Rework beacon handling re-enable run_updateslot().
Drivers which rely on net80211 to create the beacon need to call ieee80211_beacon_update() on iv_update_beacon() calls. This is required that certain bits, e.g. TIM, get updated. A call to ieee80211_beacon_alloc() is not enough because it does not care about flags which can only change during runtime. By design a beacon is supposed to be allocated only once while moving into RUN state.
To handle all possible calls to iv_update_beacon() the run_updateslot() function has been revived and run_updateprot() has been added. run_updateslot() handles slot time changes and run_updateprot() changes to protection, both can change while nodes associate/leave.
Submitted by: Alexander Zagrebin <alex at zagrebin.ru>, PseudoCylon <moonlightakkiy atyahoo.ca> MFC after: 3 weeks
|
#
209144 |
|
13-Jun-2010 |
thompsa |
- Because hostapd calls iv_key_set() before if_init(), make sure key_set callback function will be executed, and that the key won't be deleted during the init process. - txmic and rxmic are written into the chip the same place regardless of opmode. - Make the hardware generate 802.11 sequence numbers.
Submitted by: Akinori Furukoshi Obtained from: git://gitorious.org/run/run.git
|
#
208019 |
|
12-May-2010 |
thompsa |
Sync run(4) driver from author's site.
Submitted by: Akinori Furukoshi Obtained from: git://gitorious.org/run/run.git
|
#
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
|
#
205042 |
|
11-Mar-2010 |
thompsa |
- Integrate latest driver code from OpenBSD - Drain our tasks from the ieee80211 taskqueue - Add more IDs
Submitted by: Akinori Furukoshi
|
#
203137 |
|
28-Jan-2010 |
thompsa |
Release the firmware after loading to the device.
|
#
203134 |
|
28-Jan-2010 |
thompsa |
Add run(4), a driver for Ralink RT2700U/RT2800U/RT3000U USB 802.11agn devices.
This driver was written for OpenBSD by Damien Bergamini and ported over by Akinori Furukoshi.
|