opnsense-src/sys
Adrian Chadd d20ff6e680 [net80211] Migrate short slot time configuration into per-vap and deferred taskqueue updates.
The 11b/11g ERP and slot time update handling are two things which weren't
migrated into the per-VAP state when Sam did the initial VAP work.
That makes sense for a lot of setups where net80211 is driving radio state
and the radio only cares about the shared state.

However, as noted by a now deleted comment, the ERP and slot time updates
aren't EXACTLY correct/accurate - they only take into account the most
RECENTLY created VAP, and the state updates when one creates/destroys
VAPs isn't exactly great.

So:

* track the short slot logic per VAP;
* whenever the slot time configuration changes, just push it into a deferred
  task queue update so drivers don't have to serialise it themselves;
* if a driver registers a per-VAP slot time handler then it'll just get the
  per VAP one;
* .. if a driver registers a global one then the legacy behaviour is maintained -
  a single slot time is calculated and pushed out.

Note that the calculated slot time is better than the existing logic - if ANY
of the VAPs require long slot then it's disabled for all VAPs rather than
whatever the last configured VAP did.

Now, this isn't entirely complete - the rest of ERP tracking around short/long
slot capable station tracking needs to be converted into per-VAP, as well
as the preamble/barker flags.  Luckily those also can be done in a similar
fashion - keep per-VAP counters/flags and unify them before doing the driver
update.  I'll defer that work until later.

All the existing drivers can keep doing what they're doing with the global
slot time flags as that is maintained. One driver (iwi) used the per-VAP
flags instead of the ic flags, so now that driver will work properly.

This unblocks some ath10k porting work as the firmware takes the slot time
configuration per-VAP rather than globally, and some firmware handles
STA+AP and STA+STA (on same/different channels) configurations where
the firmware will switch slot time as appropriate.

Tested:

* AR9380, STA/AP mode
* AR9880 (ath10k), STA mode
2020-06-05 06:21:23 +00:00
..
amd64 Handle getcpu() calls in vsyscall emulation on amd64. 2020-05-31 18:20:20 +00:00
arm Remove remnant of arm's ELF trampoline 2020-05-31 14:43:04 +00:00
arm64 Remove remnant of arm's ELF trampoline 2020-05-31 14:43:04 +00:00
bsm bsm: add AUE_CLOSERANGE 2020-04-24 01:27:25 +00:00
cam Remove session locking from cfiscsi_pdu_update_cmdsn(). 2020-05-29 17:52:20 +00:00
cddl Fix entering KDB with dtrace-enabled kernel. 2020-05-26 16:44:05 +00:00
compat Implement __is_constexpr() function macro in the LinuxKPI. 2020-06-02 12:23:04 +00:00
conf Update vt(4) config option names to chase r303043. 2020-06-04 16:05:24 +00:00
contrib Document upgrade procedure in FREEBSD-upgrade 2020-06-04 20:48:57 +00:00
crypto Explicitly zero on-stack IVs, tags, and HMAC keys. 2020-06-03 22:15:11 +00:00
ddb kernel: provide panicky version of __unreachable 2020-05-13 18:07:37 +00:00
dev [iwn] Set default ampdu parameters. 2020-06-05 04:24:34 +00:00
dts Remove licenses 2020-06-04 17:20:58 +00:00
fs tmpfs: Preserve alignment of struct fid fields 2020-06-03 09:38:51 +00:00
gdb Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
geom geom_part: Dispatch to partitions to create providers and aliases 2020-05-29 19:44:18 +00:00
gnu dts: Import DTS from Linux 5.6 2020-04-14 18:57:00 +00:00
i386 Fix boot on systems where NUMA domain 0 is unpopulated. 2020-05-28 19:41:00 +00:00
isa sc(4) md bits: stop setting sc->kbd entirely 2019-12-30 02:07:55 +00:00
kern vfs: add restrictions to read(2) of a directory [2/2] 2020-06-04 18:17:25 +00:00
kgssapi Add support for optional separate output buffers to in-kernel crypto. 2020-05-25 22:12:04 +00:00
libkern libkern: Add arc4random_uniform 2020-05-23 17:51:06 +00:00
mips [mips] fix up the assembly generation of unaligned exception loads 2020-05-29 00:05:43 +00:00
modules Add opt_compat.h needed by r359374. 2020-06-03 23:21:44 +00:00
net Refer to AES-CBC as "aes-cbc" rather than "rijndael-cbc" for IPsec. 2020-06-04 22:58:37 +00:00
net80211 [net80211] Migrate short slot time configuration into per-vap and deferred taskqueue updates. 2020-06-05 06:21:23 +00:00
netgraph Fix check for wMaxPacketSize in USB bluetooth driver, 2020-05-28 08:41:18 +00:00
netinet We should never allow either the broadcast or IN_ADDR_ANY to be 2020-06-03 14:16:40 +00:00
netinet6 Fix typo in previous commit 2020-06-03 17:26:00 +00:00
netipsec Consistently include opt_ipsec.h for consumers of <netipsec/ipsec.h>. 2020-05-29 19:22:40 +00:00
netpfil ipfw: unbreak matching with big table type flow. 2020-06-04 14:15:39 +00:00
netsmb Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
nfs Use epoch(9) for rtentries to simplify control plane operations. 2020-05-23 10:21:02 +00:00
nfsclient
nfsserver
nlm Make nfslockd depend on xdr. 2020-04-23 09:37:22 +00:00
ofed Convert OFED rtable interactions to the new routing KPI. 2020-04-15 13:06:55 +00:00
opencrypto Use separate output buffers for OCF requests in KTLS. 2020-06-04 20:12:34 +00:00
powerpc powerpc: Stop advertising that POWER8 and POWER9 support HTM 2020-05-29 00:46:31 +00:00
riscv Remove remnant of arm's ELF trampoline 2020-05-31 14:43:04 +00:00
rpc Add the .h file that describes the operations for the rpctls_syscall. 2020-05-31 01:12:52 +00:00
security Deduplicate fsid comparisons 2020-05-21 01:55:35 +00:00
sys vfs: add restrictions to read(2) of a directory [2/2] 2020-06-04 18:17:25 +00:00
teken
tests Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tools vfs: stop null checking routines in vop wrappers 2020-01-26 00:41:38 +00:00
ufs Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
vm Correct terminology in vm.imply_prot_max sysctl description 2020-06-04 01:49:29 +00:00
x86 Remove unnecessary WITNESS check in x86 bus_dma 2020-06-03 00:16:36 +00:00
xdr Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
xen Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (16 of many) 2020-02-25 19:04:39 +00:00
Makefile Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00