forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rebased against upstream commit 87033 mac80211: improve single-wiphy multi-radio support Signed-off-by: Sean Khan <[email protected]>
- Loading branch information
Showing
23 changed files
with
155 additions
and
199 deletions.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
...211/patches/nss/subsys/146-mac80211-enable-TKIP-when-using-encapsulation-offloading.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -64,7 +64,7 @@ Signed-off-by: Sriram R <[email protected]> | |
}; | ||
|
||
/** | ||
@@ -1485,7 +1501,7 @@ ieee80211_tx_info_clear_status(struct ie | ||
@@ -1483,7 +1499,7 @@ ieee80211_tx_info_clear_status(struct ie | ||
* @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known | ||
* @RX_FLAG_RADIOTAP_HE: HE radiotap data is present | ||
* (&struct ieee80211_radiotap_he, mac80211 will fill in | ||
|
@@ -73,7 +73,7 @@ Signed-off-by: Sriram R <[email protected]> | |
* - DATA3_DATA_MCS | ||
* - DATA3_DATA_DCM | ||
* - DATA3_CODING | ||
@@ -1493,7 +1509,7 @@ ieee80211_tx_info_clear_status(struct ie | ||
@@ -1491,7 +1507,7 @@ ieee80211_tx_info_clear_status(struct ie | ||
* - DATA5_DATA_BW_RU_ALLOC | ||
* - DATA6_NSTS | ||
* - DATA3_STBC | ||
|
@@ -82,7 +82,7 @@ Signed-off-by: Sriram R <[email protected]> | |
* from the RX info data, so leave those zeroed when building this data) | ||
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present | ||
* (&struct ieee80211_radiotap_he_mu) | ||
@@ -2128,6 +2144,16 @@ static inline bool lockdep_vif_wiphy_mut | ||
@@ -2124,6 +2140,16 @@ static inline bool lockdep_vif_wiphy_mut | ||
lockdep_vif_wiphy_mutex_held(vif)) | ||
|
||
/** | ||
|
@@ -99,7 +99,7 @@ Signed-off-by: Sriram R <[email protected]> | |
* enum ieee80211_key_flags - key flags | ||
* | ||
* These flags are used for communication about keys between the driver | ||
@@ -2826,6 +2852,8 @@ struct ieee80211_txq { | ||
@@ -2827,6 +2853,8 @@ struct ieee80211_txq { | ||
* implements MLO, so operation can continue on other links when one | ||
* link is switching. | ||
* | ||
|
@@ -108,15 +108,15 @@ Signed-off-by: Sriram R <[email protected]> | |
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays | ||
*/ | ||
enum ieee80211_hw_flags { | ||
@@ -2885,6 +2913,7 @@ enum ieee80211_hw_flags { | ||
@@ -2887,6 +2915,7 @@ enum ieee80211_hw_flags { | ||
IEEE80211_HW_DISALLOW_PUNCTURING, | ||
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ, | ||
IEEE80211_HW_HANDLES_QUIET_CSA, | ||
+ IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, | ||
|
||
/* keep last, obviously */ | ||
NUM_IEEE80211_HW_FLAGS | ||
@@ -3900,6 +3929,10 @@ struct ieee80211_prep_tx_info { | ||
@@ -3902,6 +3931,10 @@ struct ieee80211_prep_tx_info { | ||
* non-MLO connections. | ||
* The callback can sleep. | ||
* | ||
|
@@ -127,7 +127,7 @@ Signed-off-by: Sriram R <[email protected]> | |
* @prepare_multicast: Prepare for multicast filter configuration. | ||
* This callback is optional, and its return value is passed | ||
* to configure_filter(). This callback must be atomic. | ||
@@ -4462,7 +4495,9 @@ struct ieee80211_ops { | ||
@@ -4464,7 +4497,9 @@ struct ieee80211_ops { | ||
struct ieee80211_vif *vif, | ||
struct ieee80211_bss_conf *info, | ||
u64 changed); | ||
|
@@ -138,7 +138,7 @@ Signed-off-by: Sriram R <[email protected]> | |
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | ||
struct ieee80211_bss_conf *link_conf); | ||
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | ||
@@ -4772,7 +4807,7 @@ struct ieee80211_ops { | ||
@@ -4774,7 +4809,7 @@ struct ieee80211_ops { | ||
int (*reset_tid_config)(struct ieee80211_hw *hw, | ||
struct ieee80211_vif *vif, | ||
struct ieee80211_sta *sta, u8 tids); | ||
|
@@ -149,7 +149,7 @@ Signed-off-by: Sriram R <[email protected]> | |
struct ieee80211_sta *sta, bool enabled); | ||
--- a/net/mac80211/debugfs.c | ||
+++ b/net/mac80211/debugfs.c | ||
@@ -508,6 +508,7 @@ static const char *hw_flag_names[] = { | ||
@@ -509,6 +509,7 @@ static const char *hw_flag_names[] = { | ||
FLAG(DISALLOW_PUNCTURING), | ||
FLAG(DISALLOW_PUNCTURING_5GHZ), | ||
FLAG(HANDLES_QUIET_CSA), | ||
|
@@ -159,7 +159,7 @@ Signed-off-by: Sriram R <[email protected]> | |
|
||
--- a/net/mac80211/util.c | ||
+++ b/net/mac80211/util.c | ||
@@ -874,6 +874,22 @@ struct wireless_dev *ieee80211_vif_to_wd | ||
@@ -875,6 +875,22 @@ struct wireless_dev *ieee80211_vif_to_wd | ||
} | ||
EXPORT_SYMBOL_GPL(ieee80211_vif_to_wdev); | ||
|
||
|
@@ -272,7 +272,7 @@ Signed-off-by: Sriram R <[email protected]> | |
ac = skb_get_queue_mapping(skb); | ||
tx->sta->deflink.tx_stats.bytes[ac] += skb->len; | ||
} | ||
@@ -2876,7 +2888,9 @@ static struct sk_buff *ieee80211_build_h | ||
@@ -2877,7 +2889,9 @@ static struct sk_buff *ieee80211_build_h | ||
if (unlikely(!multicast && | ||
((skb->sk && | ||
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) || | ||
|
@@ -283,7 +283,7 @@ Signed-off-by: Sriram R <[email protected]> | |
info_id = ieee80211_store_ack_skb(local, skb, &info_flags, | ||
cookie); | ||
|
||
@@ -4665,7 +4679,8 @@ static void ieee80211_8023_xmit(struct i | ||
@@ -4667,7 +4681,8 @@ static void ieee80211_8023_xmit(struct i | ||
} | ||
|
||
if (unlikely(skb->sk && | ||
|
@@ -293,7 +293,7 @@ Signed-off-by: Sriram R <[email protected]> | |
info->status_data = ieee80211_store_ack_skb(local, skb, | ||
&info->flags, NULL); | ||
if (info->status_data) | ||
@@ -4673,8 +4688,10 @@ static void ieee80211_8023_xmit(struct i | ||
@@ -4675,8 +4690,10 @@ static void ieee80211_8023_xmit(struct i | ||
} | ||
|
||
dev_sw_netstats_tx_add(dev, skbs, len); | ||
|
@@ -320,7 +320,7 @@ Signed-off-by: Sriram R <[email protected]> | |
gfp); | ||
--- a/net/mac80211/cfg.c | ||
+++ b/net/mac80211/cfg.c | ||
@@ -2695,7 +2695,7 @@ static int ieee80211_change_bss(struct w | ||
@@ -2704,7 +2704,7 @@ static int ieee80211_change_bss(struct w | ||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | ||
struct ieee80211_link_data *link; | ||
struct ieee80211_supported_band *sband; | ||
|
@@ -329,7 +329,7 @@ Signed-off-by: Sriram R <[email protected]> | |
|
||
link = ieee80211_link_or_deflink(sdata, params->link_id, true); | ||
if (IS_ERR(link)) | ||
@@ -2745,6 +2745,8 @@ static int ieee80211_change_bss(struct w | ||
@@ -2754,6 +2754,8 @@ static int ieee80211_change_bss(struct w | ||
sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS; | ||
else | ||
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS; | ||
|
@@ -338,7 +338,7 @@ Signed-off-by: Sriram R <[email protected]> | |
ieee80211_check_fast_rx_iface(sdata); | ||
} | ||
|
||
@@ -2773,6 +2775,8 @@ static int ieee80211_change_bss(struct w | ||
@@ -2782,6 +2784,8 @@ static int ieee80211_change_bss(struct w | ||
|
||
ieee80211_link_info_change_notify(sdata, link, changed); | ||
|
||
|
@@ -427,7 +427,7 @@ Signed-off-by: Sriram R <[email protected]> | |
TP_PROTO(struct ieee80211_local *local, | ||
--- a/net/mac80211/iface.c | ||
+++ b/net/mac80211/iface.c | ||
@@ -984,7 +984,8 @@ static bool ieee80211_set_sdata_offload_ | ||
@@ -991,7 +991,8 @@ static bool ieee80211_set_sdata_offload_ | ||
local->hw.wiphy->frag_threshold != (u32)-1) | ||
flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <[email protected]> | |
|
||
--- a/net/mac80211/tx.c | ||
+++ b/net/mac80211/tx.c | ||
@@ -6260,7 +6260,13 @@ int ieee80211_tx_control_port(struct wip | ||
@@ -6262,7 +6262,13 @@ int ieee80211_tx_control_port(struct wip | ||
|
||
start_xmit: | ||
local_bh_disable(); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada <[email protected]> | |
|
||
--- a/include/net/cfg80211.h | ||
+++ b/include/net/cfg80211.h | ||
@@ -9701,4 +9701,15 @@ ssize_t wiphy_locked_debugfs_write(struc | ||
@@ -9722,4 +9722,15 @@ ssize_t wiphy_locked_debugfs_write(struc | ||
void *data); | ||
#endif | ||
|
||
|
@@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <[email protected]> | |
#endif /* __NET_CFG80211_H */ | ||
--- a/include/net/mac80211.h | ||
+++ b/include/net/mac80211.h | ||
@@ -7561,6 +7561,20 @@ u32 ieee80211_calc_rx_airtime(struct iee | ||
@@ -7563,6 +7563,20 @@ u32 ieee80211_calc_rx_airtime(struct iee | ||
int len); | ||
|
||
/** | ||
|
@@ -91,18 +91,18 @@ Signed-off-by: Muna Sinada <[email protected]> | |
/* add new commands above here */ | ||
|
||
/* used to define NL80211_CMD_MAX below */ | ||
@@ -2868,6 +2873,8 @@ enum nl80211_commands { | ||
* nested item, it contains attributes defined in | ||
* &enum nl80211_if_combination_attrs. | ||
@@ -2871,6 +2876,8 @@ enum nl80211_commands { | ||
* @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32). | ||
* A value of 0 means all radios. | ||
* | ||
+ * @NL80211_ATTR_HE_MUEDCA_PARAMS: MU-EDCA AC parameters for the | ||
+ * %NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS command. | ||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available | ||
* @NL80211_ATTR_MAX: highest attribute number currently defined | ||
* @__NL80211_ATTR_AFTER_LAST: internal use | ||
@@ -3416,6 +3423,8 @@ enum nl80211_attrs { | ||
NL80211_ATTR_WIPHY_RADIOS, | ||
NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS, | ||
@@ -3421,6 +3428,8 @@ enum nl80211_attrs { | ||
|
||
NL80211_ATTR_VIF_RADIO_MASK, | ||
|
||
+ NL80211_ATTR_HE_MUEDCA_PARAMS, | ||
+ | ||
|
@@ -166,7 +166,7 @@ Signed-off-by: Muna Sinada <[email protected]> | |
[NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA] = { .type = NLA_FLAG }, | ||
[NL80211_ATTR_MLO_TTLM_DLINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8), | ||
[NL80211_ATTR_MLO_TTLM_ULINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8), | ||
@@ -20396,6 +20397,42 @@ void cfg80211_schedule_channels_check(st | ||
@@ -20446,6 +20447,42 @@ void cfg80211_schedule_channels_check(st | ||
} | ||
EXPORT_SYMBOL(cfg80211_schedule_channels_check); | ||
|
||
|
@@ -211,7 +211,7 @@ Signed-off-by: Muna Sinada <[email protected]> | |
int __init nl80211_init(void) | ||
--- a/net/wireless/trace.h | ||
+++ b/net/wireless/trace.h | ||
@@ -3975,6 +3975,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve | ||
@@ -3977,6 +3977,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve | ||
__entry->assoc_link_id, __entry->peer_mld_addr) | ||
); | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <[email protected]> | |
/* misc utils */ | ||
|
||
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, | ||
@@ -4292,6 +4295,8 @@ void __ieee80211_subif_start_xmit(struct | ||
@@ -4294,6 +4297,8 @@ void __ieee80211_subif_start_xmit(struct | ||
struct sta_info *sta; | ||
struct sk_buff *next; | ||
int len = skb->len; | ||
|
@@ -38,7 +38,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <[email protected]> | |
|
||
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) { | ||
kfree_skb(skb); | ||
@@ -4313,6 +4318,19 @@ void __ieee80211_subif_start_xmit(struct | ||
@@ -4315,6 +4320,19 @@ void __ieee80211_subif_start_xmit(struct | ||
if (IS_ERR(sta)) | ||
sta = NULL; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -65,7 +65,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
/** | ||
* DOC: Interface list locking | ||
* | ||
@@ -774,6 +780,13 @@ static int ieee80211_stop(struct net_dev | ||
@@ -781,6 +787,13 @@ static int ieee80211_stop(struct net_dev | ||
ieee80211_stop_mbssid(sdata); | ||
} | ||
|
||
|
@@ -79,7 +79,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
wiphy_lock(sdata->local->hw.wiphy); | ||
wiphy_work_cancel(sdata->local->hw.wiphy, &sdata->activate_links_work); | ||
|
||
@@ -1219,6 +1232,34 @@ void ieee80211_del_virtual_monitor(struc | ||
@@ -1232,6 +1245,34 @@ void ieee80211_del_virtual_monitor(struc | ||
kfree(sdata); | ||
} | ||
|
||
|
@@ -114,7 +114,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
/* | ||
* NOTE: Be very careful when changing this function, it must NOT return | ||
* an error on interface type changes that have been pre-checked, so most | ||
@@ -1446,6 +1487,21 @@ int ieee80211_do_open(struct wireless_de | ||
@@ -1460,6 +1501,21 @@ int ieee80211_do_open(struct wireless_de | ||
|
||
ieee80211_recalc_ps(local); | ||
|
||
|
@@ -138,7 +138,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
return 0; | ||
--- a/net/mac80211/rx.c | ||
+++ b/net/mac80211/rx.c | ||
@@ -2606,6 +2606,60 @@ static bool ieee80211_frame_allowed(stru | ||
@@ -2613,6 +2613,60 @@ static bool ieee80211_frame_allowed(stru | ||
return true; | ||
} | ||
|
||
|
@@ -199,7 +199,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb, | ||
struct ieee80211_rx_data *rx) | ||
{ | ||
@@ -2645,11 +2699,15 @@ static void ieee80211_deliver_skb_to_loc | ||
@@ -2652,11 +2706,15 @@ static void ieee80211_deliver_skb_to_loc | ||
!ether_addr_equal(ehdr->h_dest, sdata->vif.addr))) | ||
ether_addr_copy(ehdr->h_dest, sdata->vif.addr); | ||
|
||
|
@@ -217,7 +217,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
|
||
--- a/net/mac80211/tx.c | ||
+++ b/net/mac80211/tx.c | ||
@@ -4525,6 +4525,35 @@ static void ieee80211_mlo_multicast_tx(s | ||
@@ -4527,6 +4527,35 @@ static void ieee80211_mlo_multicast_tx(s | ||
kfree_skb(skb); | ||
} | ||
|
||
|
@@ -253,7 +253,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
/** | ||
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs | ||
* @skb: packet to be sent | ||
@@ -4540,6 +4569,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s | ||
@@ -4542,6 +4571,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s | ||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | ||
const struct ethhdr *eth = (void *)skb->data; | ||
|
||
|
@@ -264,7 +264,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <[email protected]> | |
if (likely(!is_multicast_ether_addr(eth->h_dest))) | ||
goto normal; | ||
|
||
@@ -4729,6 +4762,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8 | ||
@@ -4731,6 +4764,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8 | ||
struct ieee80211_key *key; | ||
struct sta_info *sta; | ||
|
||
|
Oops, something went wrong.