Skip to contentSkip to conversation

mac80211: fix xmit callback when hwencap enable

PATCH P Praneesh 2 participants 2 messages Aug 12, 2020 – Sep 18, 2020 mac80211

lore
Share & tools
lore

P Praneesh

author
#0 lore raw

Since transmit control port uses same callback for both (ieee80211_subif_start_xmit) ethernet mode and native wifi mode, which causes authentication issue (M2 Handshake failure) in ethernet mode with encryption(psk2+ccmp).
This will also be an issue for hw/fw which doesn't support per packet tx/rx encap/decap.

Added hardware encap check to filter out ethernet mode packets to follow ieee80211_subif_start_xmit_8023 path.

Fixes a7528198add8 ("mac80211: support control port TX status reporting")
---
 net/mac80211/ieee80211_i.h |  5 +++++
 net/mac80211/tx.c          | 49 ++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 46 insertions(+), 8 deletions(-)
net/mac80211/ieee80211_i.h +5 -0
index ec1a71a..d2c4d68 100644
@@ -1783,6 +1783,11 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
 				       struct net_device *dev);
 netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
 					    struct net_device *dev);
+netdev_tx_t __ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
+					      struct net_device *dev,
+					      u32 info_flags,
+					      u32 ctrl_flags,
+					      u64 *cookie);
 void __ieee80211_subif_start_xmit(struct sk_buff *skb,
 				  struct net_device *dev,
 				  u32 info_flags,
net/mac80211/tx.c +41 -8

92 lines not on this page · raw message

Signature · 1 line
2.7.4
maintainer
#1 lore raw
Quoted 9 lines · P Praneesh

Since transmit control port uses same callback for both (ieee80211_subif_start_xmit) ethernet mode and native wifi mode, which causes authentication issue (M2 Handshake failure) in ethernet mode with encryption(psk2+ccmp).
This will also be an issue for hw/fw which doesn't support per packet tx/rx encap/decap.

Added hardware encap check to filter out ethernet mode packets to follow ieee80211_subif_start_xmit_8023 path.

This has some major conflicts with Felix's work, please check if that is already fixing the issue. I think it is.

johannes