#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
1c4cb651 |
|
02-Feb-2019 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
net80211(4): do not setup Tx parameters for unsupported modes. That should shorten 'ifconfig <wlan> list txparam' output since unsupported modes will not be shown. Checked with RTL8188EE, STA mode. MFC after: 2 weeks
|
#
fe267a55 |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: general adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. No functional change intended.
|
#
930dc016 |
|
10-Jan-2017 |
Adrian Chadd <adrian@FreeBSD.org> |
[net80211] Add default parameters for 11ac. I doubt TDMA code will ever work for 11ac, but you never know, someone may one day make it happen.
|
#
7db788c6 |
|
14-Nov-2016 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
net80211: switch from ieee80211_iterate_nodes() to ieee80211_iterate_nodes_vap() where possible; this should make the code a bit cleaner.
|
#
4357a5d1 |
|
20-Apr-2016 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
net80211: hide subtype mask & shift in function call. Hide subtype mask/shift (which is used for index calculation in ieee80211_mgt_subtype_name[] array) in function call. Tested with RTL8188CUS, STA mode. Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D5369
|
#
b9b53389 |
|
25-May-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Convert malloc/free back to #define's, as part of OS portability work. DragonflyBSD uses the FreeBSD wireless stack and drivers. Their malloc() API is named differently, so they don't have userland/kernel symbol clashes like we do (think libuinet.) So, to make it easier for them and to port to other BSDs/other operating systems, start hiding the malloc specific bits behind defines in ieee80211_freebsd.h. DragonflyBSD can now put these portability defines in their local ieee80211_dragonflybsd.h. This should be a great big no-op for everyone running wifi. TODO: * kill M_WAITOK - some platforms just don't want you to use it * .. and/or handle it returning NULL rather than waiting forever. * MALLOC_DEFINE() ? * Migrate the well-known malloc names (eg M_TEMP) to net80211 namespace defines.
|
#
c79f192c |
|
25-May-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Begin plumbing ieee80211_rx_stats through the receive path. Smart NICs with firmware (eg wpi, iwn, the new atheros parts, the intel 7260 series, etc) support doing a lot of things in firmware. This includes but isn't limited to things like scanning, sending probe requests and receiving probe responses. However, net80211 doesn't know about any of this - it still drives the whole scan/probe infrastructure itself. In order to move towards suppoting smart NICs, the receive path needs to know about the channel/details for each received packet. In at least the iwn and 7260 firmware (and I believe wpi, but I haven't tried it yet) it will do the scanning, power-save and off-channel buffering for you - all you need to do is handle receiving beacons and probe responses on channels that aren't what you're currently on. However the whole receive path is peppered with ic->ic_curchan and manual scan/powersave handling. The beacon parsing code also checks ic->ic_curchan to determine if the received beacon is on the correct channel or not.[1] So: * add freq/ieee values to ieee80211_rx_stats; * change ieee80211_parse_beacon() to accept the 'current' channel as an argument; * modify the iv_input() and iv_recv_mgmt() methods to include the rx_stats; * add a new method - ieee80211_lookup_channel_rxstats() - that looks up a channel based on the contents of ieee80211_rx_stats; * if it exists, use it in the mgmt path to switch the current channel (which still defaults to ic->ic_curchan) over to something determined by rx_stats. This is enough to kick-start scan offload support in the Intel 7260 driver that Rui/I are working on. It also is a good start for scan offload support for a handful of existing NICs (wpi, iwn, some USB parts) and it'll very likely dramatically improve stability/performance there. It's not the whole thing - notably, we don't need to do powersave, we should not scan all channels, and we should leave probe request sending to the firmware and not do it ourselves. But, this allows for continued development on the above features whilst actually having a somewhat working NIC. TODO: * Finish tidying up how the net80211 input path works. Right now ieee80211_input / ieee80211_input_all act as the top-level that everything feeds into; it should change so the MIMO input routines are those and the legacy routines are phased out. * The band selection should be done by the driver, not by the net80211 layer. * ieee80211_lookup_channel_rxstats() only determines 11b or 11g channels for now - this is enough for scanning, but not 100% true in all cases. If we ever need to handle off-channel scan support for things like static-40MHz or static-80MHz, or turbo-G, or half/quarter rates, then we should extend this. [1] This is a side effect of frequency-hopping and CCK modes - you can receive beacons when you think you're on a different channel. In particular, CCK (which is used by the low 11b rates, eg beacons!) is decodable from adjacent channels - just at a low SNR. FH is a side effect of having the hardware/firmware do the frequency hopping - it may pick up beacons transmitted from other FH networks that are in a different phase of hopping frequencies.
|
#
bfd3bbdb |
|
18-Aug-2013 |
Adrian Chadd <adrian@FreeBSD.org> |
Don't return ENOTSUPP here - the net80211 pluggable ioctl API will treat this as the final item in the linker set and not try others. This stopped the fast frames IOCTLs from being called.
|
#
4aecc339 |
|
15-Jan-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix the situation where net80211 is built with IEEE80211_SUPPORT_TDMA but a module is used. Although the module _builds_, it fails to load because of a missing symbol from ieee80211_tdma.c. Specifics: * Always build ieee80211_tdma.c in the module; * only compile in the code if IEEE80211_SUPPORT_TDMA is defined.
|
#
eb29e5f7 |
|
12-Oct-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix an unused variable warning/error when invariants isn't enabled. Reported by: bz
|
#
23401900 |
|
01-Oct-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix a panic in the wifi stack when a software beacon miss occurs in the wrong state. The ieee80211_swbmiss() callout is not called with the ic lock held, so it's quite possible the scheduler will run the callout during a state change. This patch: * changes the swbmiss callout to be locked by the ic lock * enforces the ic lock being held across the beacon vap functions by grabbing it inside beacon_miss() and beacon_swmiss(). This ensures that the ic lock is held (and thus the VAP state stays constant) during beacon miss and software miss processing. Since the callout is removed whilst the ic lock is held, it also ensures that the ic lock can't be called during a state change or exhibit any race conditions seen above. Both Edgar and Joel report that this patch fixes the crash and doesn't introduce new issues. Reported by: Edgar Martinez <emartinez@kbcnetworks.com> Reported by: Joel Dahl <joel@vnode.se> Reported by: emaste
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
88a85a4c |
|
17-Apr-2010 |
Weongyo Jeong <weongyo@FreeBSD.org> |
MFC r205140: fixes a broken software beacon miss handler. There is a race to check vap->iv_bmiss_count == 0 in ieee80211_swbmiss because iv_swbmiss_task is enqueued by taskqueue. Reviewed by: rpaulo
|
#
7e62e45f |
|
13-Mar-2010 |
Weongyo Jeong <weongyo@FreeBSD.org> |
fixes a broken software beacon miss handler. There is a race to check vap->iv_bmiss_count == 0 in ieee80211_swbmiss because iv_swbmiss_task is enqueued by taskqueue. Reviewed by: rpaulo
|
#
39c3faaf |
|
30-May-2009 |
Sam Leffler <sam@FreeBSD.org> |
o assert TDMA_MAXSLOTS is 2 so noone tries to blindly increase it o add safety belt in vdetach for failed state block allocation o fix dynamic change to tdma config; ERESTART may not result in kicking the state machine so we need to explicitly mark the beacon for update Sponsored by:
|
#
5463c4a4 |
|
20-May-2009 |
Sam Leffler <sam@FreeBSD.org> |
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
|
#
5434ed5a |
|
13-Apr-2009 |
Sam Leffler <sam@FreeBSD.org> |
setup turboA/G fixed rate parameters too; this is needed, in particular, for turboG operation
|
#
baa55e71 |
|
13-Apr-2009 |
Sam Leffler <sam@FreeBSD.org> |
correct debug printf
|
#
4477b683 |
|
13-Apr-2009 |
Sam Leffler <sam@FreeBSD.org> |
check correct address for a bssid mtch
|
#
9d90db93 |
|
26-Mar-2009 |
Sam Leffler <sam@FreeBSD.org> |
o move tdma+superg protocol defs out of public view o add #ifdef _KERNEL to superg+tdma include files so they can be used by user code to get the protocol defs
|
#
8c4e758a |
|
24-Mar-2009 |
Sam Leffler <sam@FreeBSD.org> |
add linker sets for get/set ioctl handlers so optional net80211 code is isolated
|
#
fffcc698 |
|
24-Mar-2009 |
Sam Leffler <sam@FreeBSD.org> |
use IEEE80211_SUPPORT_TDMA option to control whether code is configured; this allows us to remove an #ifdef
|
#
f9b5a72f |
|
18-Mar-2009 |
Sam Leffler <sam@FreeBSD.org> |
rate limit printfs for invalid tdma ie contents; probably want this to be less than 1/sec
|
#
2bc3ce77 |
|
18-Mar-2009 |
Sam Leffler <sam@FreeBSD.org> |
Minor cleanups of tdma protocol handling: o break out version-related code to simplify rev'ing the protocol o add parameter validation macros so checks that appear multiple places are consistent (and easy to change) o add protocol version check when looking for a scan candidate o improve scan debug output format o rewrite beacon update handling to calculate a bitmask of changed values and pass that down through the driver callback so drivers can optimize work o do slot bounds check before use when parsing received beacons
|
#
cc3e9fe7 |
|
22-Feb-2009 |
Sam Leffler <sam@FreeBSD.org> |
change tdma slave behaviour: if the channel is locked don't do bmiss handling (so no scanning/roaming) Reviewed by: Chris Anderson
|
#
6a76ae21 |
|
18-Feb-2009 |
Sam Leffler <sam@FreeBSD.org> |
Add modes for 1/2 and 1/4-width channels so we have separate roaming and xmit parameters. This makes it possible to use tdma on fractional channels. o add IEEE80211_MODE_HALF and IEEE80211_MODE_QUARTER; note these are band-agnostic (may need revisiting) o setup all default rates in ic_sup_rates instead of doing it only for active modes; we need these to calculate the default tx parameters which are not recalculated after a regulatory update (can't just recalculate after installing a new channel list because we might clobber user settings) o remove special case code in ieee80211_get_suprates; this is now a candidate for an inline or removal o add various entries for new modes (roaming+tx params, wme, rate mapping, scan set setup, country ie construction, tdma, basic rates) Note these modes are intentionally not visible through if_media.
|
#
577a7bcc |
|
11-Feb-2009 |
Sam Leffler <sam@FreeBSD.org> |
remove bogus reference reclaim on the slave-side bss node on beacon miss
|
#
60d56544 |
|
10-Feb-2009 |
Sam Leffler <sam@FreeBSD.org> |
when operating as a slave, clear neighbor entries and the peer bss node on beacon miss while here, remove a stray pointless write of iv_bmiss_count
|
#
800e5ab7 |
|
29-Jan-2009 |
Sam Leffler <sam@FreeBSD.org> |
setup default fixed rates for static turbo and 11n; the 11n rates are pure guess
|
#
10ad9a77 |
|
08-Jan-2009 |
Sam Leffler <sam@FreeBSD.org> |
TDMA support for long distance point-to-point links using ath devices: o add net80211 support for a tdma vap that is built on top of the existing adhoc-demo support o add tdma scheduling of frame transmission to the ath driver; it's conceivable other devices might be capable of this too in which case they can make use of the 802.11 protocol additions etc. o add minor bits to user tools that need to know: ifconfig to setup and configure, new statistics in athstats, and new debug mask bits While the architecture can support >2 slots in a TDMA BSS the current design is intended (and tested) for only 2 slots. Sponsored by: Intel
|