mbox series

[0/3] nl80211/mac80211: add tx status for ctrl port

Message ID 20200508144202.7678-1-markus.theil@tu-ilmenau.de (mailing list archive)
Headers show
Series nl80211/mac80211: add tx status for ctrl port | expand

Message

Markus Theil May 8, 2020, 2:41 p.m. UTC
When sending EAPOL frames from an AP to a STA, SO_WIFI_STATUS can be used
on raw/packet sockets to get notified of (un-)successful frame
transmissions in order to trigger retransmits earlier.

The nl80211 control port currently lacks such a feature, which therefore
gets added in this series, in order to function as a drop in replacement
for using dedicated AF_PACKET sockets for handling EAPOL messages.
With this series it is finally possible to run hostapd in AP mode with
mgmt and EAPOL control port frames solely over nl80211 and data frames on
the kernel data path.

The intended behaviour stems from tx notifications for mgmt frames over
nl80211. A cookie is provided to match request and reply, furthermore the
frame content is also included in status messages.

This series has been tested with a modified hostapd version. Patches for
hostapd will follow soon on its mailing list.

Markus Theil (3):
  nl80211: cookie arg for tx control port
  nl80211: add control port tx status method
  nl80211: add feature flag for control port tx status capability

 include/net/cfg80211.h       | 18 +++++++-
 include/uapi/linux/nl80211.h | 12 ++++++
 net/mac80211/ieee80211_i.h   |  8 +++-
 net/mac80211/main.c          |  2 +
 net/mac80211/status.c        |  7 ++-
 net/mac80211/tdls.c          |  2 +-
 net/mac80211/tx.c            | 83 +++++++++++++++++++++++++++---------
 net/wireless/nl80211.c       | 73 ++++++++++++++++++++++++++-----
 net/wireless/rdev-ops.h      |  9 ++--
 net/wireless/trace.h         | 17 ++++++++
 10 files changed, 193 insertions(+), 38 deletions(-)

Comments

Johannes Berg May 26, 2020, 1:28 p.m. UTC | #1
Hi Markus,

Generally, this seems fine.

I have applied the cfg80211/nl80211 bits in my tree (currently in
mac80211-next pending branch), and recombined the patches for that.

I've also modified the nl80211 code to return the cookie in the extack
message, rather than a separate message, which is much nicer. That means
you'll have to modify the hostapd changes for this.

The mac80211 changes seem overly complex, I'll reply in detail.

johannes