freebsd-nq/sys/net80211
Adrian Chadd 85c4e67075 [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking.
When doing AMSDU offload, the driver (for now!) presents 802.11 frames with
the same sequence number and crypto sequence number / IV values up to the stack.
But, this will trip afoul over the sequence number detection.

So drivers now have a way to signify that a frame is part of an offloaded
AMSDU group, so we can just ensure that we pass those frames up to the
stack.

The logic will be a bit messy - the TL;DR will be that if it's part of
the previously seen sequence number then it belongs in the same burst.
But if we get a repeat of the same sequence number (eg we sent an ACK
but the receiver didn't hear it) then we shouldn't be passing those frames
up.  So, we can't just say "all subframes go up", we need to track
whether we've seen the end of a burst of frames for the given sequence
number or not, so we know whether to actually pass them up or not.

The first part of doing all of this is to ensure the ieee80211_rx_stats
struct is available in the RX sequence number check path and the
RX ampdu reorder path.  So, start by passing the pointer into these
functions to avoid doing another lookup.

The actual support will come in a subsequent commit once I know the
functionality actually works!
2017-05-20 00:43:52 +00:00
..
_ieee80211.h [net80211] RX parameter shuffle in net80211 in preparation for 4x4 NICs and 160MHz channels. 2017-02-20 02:08:08 +00:00
ieee80211_acl.c These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
ieee80211_action.c [net80211] add placeholders for the VHT action frame handling. 2016-12-31 07:50:14 +00:00
ieee80211_action.h
ieee80211_adhoc.c [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_adhoc.h
ieee80211_ageq.c These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
ieee80211_ageq.h
ieee80211_alq.c [net80211] extend the net80211 ALQ code to support variable payloads. 2016-11-06 19:18:25 +00:00
ieee80211_alq.h [net80211] extend the net80211 ALQ code to support variable payloads. 2016-11-06 19:18:25 +00:00
ieee80211_amrr.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_amrr.h
ieee80211_crypto_ccmp.c [net80211] high oops on the high seas, or "god damnit compilers, it's 2016 and you're supposed to save me from this." 2016-11-22 17:36:16 +00:00
ieee80211_crypto_none.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_crypto_tkip.c [net80211] handle hardware encryption offload in the receive path 2016-11-19 02:00:24 +00:00
ieee80211_crypto_wep.c [net80211] WEP offload support. 2016-12-22 23:59:53 +00:00
ieee80211_crypto.c [net80211] turn the default TX key configuration (for WEP) into a vap callback. 2016-12-27 06:10:28 +00:00
ieee80211_crypto.h [net80211] turn the default TX key configuration (for WEP) into a vap callback. 2016-12-27 06:10:28 +00:00
ieee80211_ddb.c net80211: fix LOR/deadlock in ieee80211_ff_node_cleanup(). 2016-06-29 17:25:46 +00:00
ieee80211_dfs.c [net80211] migrate the time_* macros to ieee80211_* namespace. 2016-03-30 00:44:10 +00:00
ieee80211_dfs.h
ieee80211_freebsd.c [net80211] add a sysctl that forces a vap restart. 2017-02-11 05:33:49 +00:00
ieee80211_freebsd.h [net80211] RX parameter shuffle in net80211 in preparation for 4x4 NICs and 160MHz channels. 2017-02-20 02:08:08 +00:00
ieee80211_hostap.c [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_hostap.h
ieee80211_ht.c [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_ht.h [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_hwmp.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_input.c [net80211] Initial VHT node upgrade/downgrade support and initial IE parsing. 2017-01-13 07:02:04 +00:00
ieee80211_input.h [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_ioctl.c net80211: fix ieee80211_htrateset setup, return EINVAL for an unsupported 2017-03-03 01:06:27 +00:00
ieee80211_ioctl.h [net80211] add VHT ioctl parameters and driver capabilities 2017-01-07 01:59:39 +00:00
ieee80211_mesh.c [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_mesh.h Migrate the 802.11s locks out into ieee80211_freebsd.h, so they can be 2015-05-26 04:25:11 +00:00
ieee80211_monitor.c Begin plumbing ieee80211_rx_stats through the receive path. 2015-05-25 16:37:41 +00:00
ieee80211_monitor.h
ieee80211_node.c [net80211] RX parameter shuffle in net80211 in preparation for 4x4 NICs and 160MHz channels. 2017-02-20 02:08:08 +00:00
ieee80211_node.h [net80211] quiet IE handling improvements 2017-02-09 04:07:30 +00:00
ieee80211_output.c [net80211] teach the probe response routine to add VHT IEs as appropriate. 2017-02-20 04:02:50 +00:00
ieee80211_phy.c net80211: fix more compiler warnings. 2016-05-19 21:08:33 +00:00
ieee80211_phy.h [net80211] rename 11n rate macros into a useful spot 2016-04-05 22:01:56 +00:00
ieee80211_power.c [net80211] migrate the time_* macros to ieee80211_* namespace. 2016-03-30 00:44:10 +00:00
ieee80211_power.h
ieee80211_proto.c [net80211] add methods to fetch the global and per-VAP WME parameters. 2017-04-22 02:12:07 +00:00
ieee80211_proto.h [net80211] add methods to fetch the global and per-VAP WME parameters. 2017-04-22 02:12:07 +00:00
ieee80211_radiotap.c Remove unused include. 2015-05-25 14:54:10 +00:00
ieee80211_radiotap.h [net80211] initial VHT radiotap implementation defines from upstream radiotap. 2017-05-17 19:34:36 +00:00
ieee80211_ratectl_none.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_ratectl.c [net80211] Begin implementing rate control module stats. 2016-03-16 02:07:04 +00:00
ieee80211_ratectl.h net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_regdomain.c ifconfig: set by default FCC regulatory domain for wireless interfaces. 2016-05-26 13:14:08 +00:00
ieee80211_regdomain.h
ieee80211_rssadapt.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
ieee80211_rssadapt.h
ieee80211_scan_sta.c [net80211] Initial VHT node upgrade/downgrade support and initial IE parsing. 2017-01-13 07:02:04 +00:00
ieee80211_scan_sw.c [net80211] don't abort a background scan upon reception of a single packet. 2016-10-28 02:09:45 +00:00
ieee80211_scan_sw.h Break out the current 802.11 software scan methods into an indirect table. 2015-06-08 02:35:43 +00:00
ieee80211_scan.c [net80211] add roaming parameters for 11ac. 2017-01-08 10:13:05 +00:00
ieee80211_scan.h [net80211] add VHT IEs to scan elements. 2017-01-07 01:54:32 +00:00
ieee80211_sta.c [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_sta.h
ieee80211_superg.c net80211: reschedule tasks properly after r315594. 2017-03-19 23:05:03 +00:00
ieee80211_superg.h net80211: add a timer to flush fast-frames queues. 2017-03-19 20:05:21 +00:00
ieee80211_tdma.c [net80211] Add default parameters for 11ac. 2017-01-10 07:24:29 +00:00
ieee80211_tdma.h Begin plumbing ieee80211_rx_stats through the receive path. 2015-05-25 16:37:41 +00:00
ieee80211_var.h [net80211] begin fleshing out per-VAP WME configurations. 2017-03-13 16:44:06 +00:00
ieee80211_vht.c Fix build without IEEE80211_DEBUG. 2017-01-10 19:28:40 +00:00
ieee80211_vht.h [net80211] create a helper function to calculate the station facing VHT capabilities. 2017-01-10 05:30:15 +00:00
ieee80211_wds.c [net80211] prepare for A-MSDU/A-MPDU offload crypto / sequence number checking. 2017-05-20 00:43:52 +00:00
ieee80211_wds.h
ieee80211_xauth.c These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
ieee80211.c net80211: fix possible panic when wlan(4) interface is destroyed. 2017-03-24 22:29:51 +00:00
ieee80211.h net80211: allow to configure LDPC support 2017-01-21 14:19:06 +00:00