linux/net/mac80211
Felix Fietkau d5edb9ae8d wifi: mac80211: mesh fast xmit support
Previously, fast xmit only worked on interface types where initially a
sta lookup is performed, and a cached header can be attached to the sta,
requiring only some fields to be updated at runtime.

This technique is not directly applicable for a mesh device type due
to the dynamic nature of the topology and protocol. There are more
addresses that need to be filled, and there is an extra header with a
dynamic length based on the addressing mode.

Change the code to cache entries contain a copy of the mesh subframe header +
bridge tunnel header, as well as an embedded struct ieee80211_fast_tx, which
contains the information for building the 802.11 header.

Add a mesh specific early fast xmit call, which looks up a cached entry and
adds only the mesh subframe header, before passing it over to the generic
fast xmit code.

To ensure the changes in network are reflected in these cached headers,
flush affected cached entries on path changes, as well as other conditions
that currently trigger a fast xmit check in other modes (key changes etc.)

This code is loosely based on a previous implementation by:
Sriram R <quic_srirrama@quicinc.com>

Cc: Sriram R <quic_srirrama@quicinc.com>
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20230314095956.62085-4-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2023-03-22 13:31:18 +01:00
..
aead_api.c
aead_api.h
aes_ccm.h
aes_cmac.c
aes_cmac.h
aes_gcm.h
aes_gmac.c
aes_gmac.h
agg-rx.c wifi: mac80211: remove support for AddBA with fragmentation 2022-10-07 15:24:31 +02:00
agg-tx.c wifi: mac80211: introduce ieee80211_refresh_tx_agg_session_timer() 2023-03-07 11:01:27 +01:00
airtime.c wifi: mac8021: fix possible oob access in ieee80211_get_rate_duration 2022-11-25 12:45:53 +01:00
cfg.c wifi: mac80211: add LDPC related flags in ieee80211_bss_conf 2023-03-07 11:06:29 +01:00
chan.c wifi: mac80211: mlme: handle EHT channel puncturing 2023-02-14 12:01:31 +01:00
debug.h
debugfs.c wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c wifi: mac80211: add netdev per-link debugfs data and driver hook 2023-03-07 10:56:06 +01:00
debugfs_netdev.h wifi: mac80211: add netdev per-link debugfs data and driver hook 2023-03-07 10:56:06 +01:00
debugfs_sta.c wifi: mac80211: Proper mark iTXQs for resumption 2023-01-10 13:24:12 +01:00
debugfs_sta.h wifi: mac80211: add API to show the link STAs in debugfs 2022-10-07 15:23:41 +02:00
driver-ops.c wifi: mac80211: add netdev per-link debugfs data and driver hook 2023-03-07 10:56:06 +01:00
driver-ops.h wifi: mac80211: add support for letting drivers register tc offload support 2023-03-22 13:20:03 +01:00
eht.c
ethtool.c
fils_aead.c
fils_aead.h
he.c
ht.c wifi: mac80211: Fix iTXQ AMPDU fragmentation handling 2023-01-10 13:24:17 +01:00
ibss.c
ieee80211_i.h wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
iface.c wifi: mac80211: add support for letting drivers register tc offload support 2023-03-22 13:20:03 +01:00
Kconfig
key.c
key.h
led.c
led.h
link.c wifi: mac80211: add netdev per-link debugfs data and driver hook 2023-03-07 10:56:06 +01:00
main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-10 17:43:53 -08:00
Makefile
mesh.c wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
mesh.h wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
mesh_hwmp.c wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
mesh_pathtbl.c wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
mesh_plink.c
mesh_ps.c
mesh_sync.c
michael.c
michael.h
mlme.c wifi: mac80211: fix ieee80211_link_set_associated() type 2023-03-07 10:57:11 +01:00
ocb.c
offchannel.c
pm.c
rate.c
rate.h
rc80211_minstrel_ht.c wireless-next patches for v6.2 2022-10-28 18:31:40 -07:00
rc80211_minstrel_ht.h wifi: mac80211: minstrel_ht: remove unused has_mrr member from struct minstrel_priv 2022-10-07 15:25:05 +02:00
rc80211_minstrel_ht_debugfs.c
rx.c wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
s1g.c wifi: mac80211: Set TWT Information Frame Disabled bit as 1 2022-11-02 09:50:40 +01:00
scan.c wifi: mac80211: adjust scan cancel comment/check 2023-03-07 10:28:51 +01:00
spectmgmt.c
sta_info.c wifi: mac80211: add a workaround for receiving non-standard mesh A-MSDU 2023-02-14 12:35:02 +01:00
sta_info.h wifi: mac80211: add documentation for amsdu_mesh_control 2023-02-15 18:31:16 +01:00
status.c wifi: mac80211: don't start TX with fq->lock to fix deadlock 2022-09-27 10:29:04 +02:00
tdls.c wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
tkip.c
tkip.h
trace.c
trace.h wifi: mac80211: add support for letting drivers register tc offload support 2023-03-22 13:20:03 +01:00
trace_msg.h
tx.c wifi: mac80211: mesh fast xmit support 2023-03-22 13:31:18 +01:00
util.c mac80211: support minimal EHT rate reporting on RX 2023-01-18 17:31:50 +01:00
vht.c wifi: mac80211: Allow NSS change only up to capability 2023-02-14 12:35:02 +01:00
wep.c
wep.h
wme.c wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wme.h wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wpa.c
wpa.h