qtnfmac: add support for TWT responder and spatial reuse
Add support for 11ax features: TWT responder and spatial reuse. Add separate structure for spatial reuse parameters and pass this structure to firmware along with other parameters in start_ap command. Pass TWT responder value to firmware. Bump qlink protocol version. Signed-off-by: Mikhail Karpenko <mkarpenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
b73f0aac73
commit
ed7791d9d0
@ -257,6 +257,14 @@ int qtnf_cmd_send_start_ap(struct qtnf_vif *vif,
|
||||
cmd->pbss = s->pbss;
|
||||
cmd->ht_required = s->ht_required;
|
||||
cmd->vht_required = s->vht_required;
|
||||
cmd->twt_responder = s->twt_responder;
|
||||
if (s->he_obss_pd.enable) {
|
||||
cmd->sr_params.sr_control |= QLINK_SR_SRG_INFORMATION_PRESENT;
|
||||
cmd->sr_params.srg_obss_pd_min_offset =
|
||||
s->he_obss_pd.min_offset;
|
||||
cmd->sr_params.srg_obss_pd_max_offset =
|
||||
s->he_obss_pd.max_offset;
|
||||
}
|
||||
|
||||
aen = &cmd->aen;
|
||||
aen->auth_type = s->auth_type;
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include <linux/ieee80211.h>
|
||||
|
||||
#define QLINK_PROTO_VER 15
|
||||
#define QLINK_PROTO_VER 16
|
||||
|
||||
#define QLINK_MACID_RSVD 0xFF
|
||||
#define QLINK_VIFID_RSVD 0xFF
|
||||
@ -196,6 +196,45 @@ struct qlink_sta_info_state {
|
||||
__le32 value;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* enum qlink_sr_ctrl_flags - control flags for spatial reuse parameter set
|
||||
*
|
||||
* @QLINK_SR_PSR_DISALLOWED: indicates whether or not PSR-based spatial reuse
|
||||
* transmissions are allowed for STAs associated with the AP
|
||||
* @QLINK_SR_NON_SRG_OBSS_PD_SR_DISALLOWED: indicates whether or not
|
||||
* Non-SRG OBSS PD spatial reuse transmissions are allowed for STAs associated
|
||||
* with the AP
|
||||
* @NON_SRG_OFFSET_PRESENT: indicates whether or not Non-SRG OBSS PD Max offset
|
||||
* field is valid in the element
|
||||
* @QLINK_SR_SRG_INFORMATION_PRESENT: indicates whether or not SRG OBSS PD
|
||||
* Min/Max offset fields ore valid in the element
|
||||
*/
|
||||
enum qlink_sr_ctrl_flags {
|
||||
QLINK_SR_PSR_DISALLOWED = BIT(0),
|
||||
QLINK_SR_NON_SRG_OBSS_PD_SR_DISALLOWED = BIT(1),
|
||||
QLINK_SR_NON_SRG_OFFSET_PRESENT = BIT(2),
|
||||
QLINK_SR_SRG_INFORMATION_PRESENT = BIT(3),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct qlink_sr_params - spatial reuse parameters
|
||||
*
|
||||
* @sr_control: spatial reuse control field; flags contained in this field are
|
||||
* defined in @qlink_sr_ctrl_flags
|
||||
* @non_srg_obss_pd_max: added to -82 dBm to generate the value of the
|
||||
* Non-SRG OBSS PD Max parameter
|
||||
* @srg_obss_pd_min_offset: added to -82 dBm to generate the value of the
|
||||
* SRG OBSS PD Min parameter
|
||||
* @srg_obss_pd_max_offset: added to -82 dBm to generate the value of the
|
||||
* SRG PBSS PD Max parameter
|
||||
*/
|
||||
struct qlink_sr_params {
|
||||
u8 sr_control;
|
||||
u8 non_srg_obss_pd_max;
|
||||
u8 srg_obss_pd_min_offset;
|
||||
u8 srg_obss_pd_max_offset;
|
||||
} __packed;
|
||||
|
||||
/* QLINK Command messages related definitions
|
||||
*/
|
||||
|
||||
@ -651,6 +690,8 @@ enum qlink_hidden_ssid {
|
||||
* @ht_required: stations must support HT
|
||||
* @vht_required: stations must support VHT
|
||||
* @aen: encryption info
|
||||
* @sr_params: spatial reuse parameters
|
||||
* @twt_responder: enable Target Wake Time
|
||||
* @info: variable configurations
|
||||
*/
|
||||
struct qlink_cmd_start_ap {
|
||||
@ -666,6 +707,9 @@ struct qlink_cmd_start_ap {
|
||||
u8 ht_required;
|
||||
u8 vht_required;
|
||||
struct qlink_auth_encr aen;
|
||||
struct qlink_sr_params sr_params;
|
||||
u8 twt_responder;
|
||||
u8 rsvd[3];
|
||||
u8 info[0];
|
||||
} __packed;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user