feature: support tx amsdu

This commit is contained in:
ronghulin
2021-01-15 17:00:15 +08:00
parent 9ff1609a20
commit adfa43a3a4
15 changed files with 100 additions and 1 deletions

View File

@@ -162,6 +162,7 @@ struct wpa_auth_config {
#endif /* CONFIG_IEEE80211R */
int disable_gtk;
int ap_mlme;
struct rsn_sppamsdu_sup spp_sup;
};
typedef enum {

View File

@@ -118,6 +118,7 @@ struct wpa_state_machine {
int pending_1_of_4_timeout;
u32 index;
ETSTimer resend_eapol;
struct rsn_sppamsdu_sup spp_sup;
};

View File

@@ -222,6 +222,15 @@ int wpa_write_rsn_ie(struct wpa_auth_config *conf, u8 *buf, size_t len,
/* 4 PTKSA replay counters when using WMM */
capab |= (RSN_NUM_REPLAY_COUNTERS_16 << 2);
}
if (conf->spp_sup.capable) {
capab |= WPA_CAPABILITY_SPP_CAPABLE;
}
if (conf->spp_sup.require) {
capab |= WPA_CAPABILITY_SPP_REQUIRED;
}
#ifdef CONFIG_IEEE80211W
if (conf->ieee80211w != NO_MGMT_FRAME_PROTECTION) {
capab |= WPA_CAPABILITY_MFPC;
@@ -487,6 +496,18 @@ int wpa_validate_wpa_ie(struct wpa_authenticator *wpa_auth,
return WPA_INVALID_PAIRWISE;
}
if (data.capabilities & WPA_CAPABILITY_SPP_CAPABLE) {
sm->spp_sup.capable = SPP_AMSDU_CAP_ENABLE;
} else {
sm->spp_sup.capable = SPP_AMSDU_CAP_DISABLE;
}
if (data.capabilities & WPA_CAPABILITY_SPP_REQUIRED) {
sm->spp_sup.require = SPP_AMSDU_REQ_ENABLE;
} else {
sm->spp_sup.require = SPP_AMSDU_REQ_DISABLE;
}
#ifdef CONFIG_IEEE80211W
if (wpa_auth->conf.ieee80211w == MGMT_FRAME_PROTECTION_REQUIRED) {
if (!(data.capabilities & WPA_CAPABILITY_MFPC)) {