WMM AC: Add add_tx_ts and del_tx_ts driver ops
Add add_tx_ts() and del_tx_ts() ops to notify the driver about TSPEC add / delete. Additionally, add wmm_ac_supported flag to indicate whether the driver supports WMM AC. Signed-off-by: Moshe Benji <moshe.benji@intel.com> Signed-off-by: Eliad Peller <eliad@wizery.com>
This commit is contained in:
parent
a0413b1734
commit
471cd6e10c
4 changed files with 44 additions and 0 deletions
|
@ -1072,6 +1072,8 @@ struct wpa_driver_capa {
|
||||||
#define WPA_DRIVER_SMPS_MODE_DYNAMIC 0x00000002
|
#define WPA_DRIVER_SMPS_MODE_DYNAMIC 0x00000002
|
||||||
unsigned int smps_modes;
|
unsigned int smps_modes;
|
||||||
|
|
||||||
|
unsigned int wmm_ac_supported:1;
|
||||||
|
|
||||||
int max_scan_ssids;
|
int max_scan_ssids;
|
||||||
int max_sched_scan_ssids;
|
int max_sched_scan_ssids;
|
||||||
int sched_scan_supported;
|
int sched_scan_supported;
|
||||||
|
@ -2868,6 +2870,28 @@ struct wpa_driver_ops {
|
||||||
*/
|
*/
|
||||||
int (*switch_channel)(void *priv, struct csa_settings *settings);
|
int (*switch_channel)(void *priv, struct csa_settings *settings);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* add_tx_ts - Add traffic stream
|
||||||
|
* @priv: Private driver interface data
|
||||||
|
* @tsid: Traffic stream ID
|
||||||
|
* @addr: Receiver address
|
||||||
|
* @user_prio: User priority of the traffic stream
|
||||||
|
* @admitted_time: Admitted time for this TS in units of
|
||||||
|
* 32 microsecond periods (per second).
|
||||||
|
* Returns: 0 on success, -1 on failure
|
||||||
|
*/
|
||||||
|
int (*add_tx_ts)(void *priv, u8 tsid, const u8 *addr, u8 user_prio,
|
||||||
|
u16 admitted_time);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* del_tx_ts - Delete traffic stream
|
||||||
|
* @priv: Private driver interface data
|
||||||
|
* @tsid: Traffic stream ID
|
||||||
|
* @addr: Receiver address
|
||||||
|
* Returns: 0 on success, -1 on failure
|
||||||
|
*/
|
||||||
|
int (*del_tx_ts)(void *priv, u8 tsid, const u8 *addr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* start_dfs_cac - Listen for radar interference on the channel
|
* start_dfs_cac - Listen for radar interference on the channel
|
||||||
* @priv: Private driver interface data
|
* @priv: Private driver interface data
|
||||||
|
|
|
@ -609,6 +609,24 @@ static inline int wpa_drv_switch_channel(struct wpa_supplicant *wpa_s,
|
||||||
return wpa_s->driver->switch_channel(wpa_s->drv_priv, settings);
|
return wpa_s->driver->switch_channel(wpa_s->drv_priv, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int wpa_drv_add_ts(struct wpa_supplicant *wpa_s, u8 tsid,
|
||||||
|
const u8 *address, u8 user_priority,
|
||||||
|
u16 admitted_time)
|
||||||
|
{
|
||||||
|
if (!wpa_s->driver->add_tx_ts)
|
||||||
|
return -1;
|
||||||
|
return wpa_s->driver->add_tx_ts(wpa_s->drv_priv, tsid, address,
|
||||||
|
user_priority, admitted_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int wpa_drv_del_ts(struct wpa_supplicant *wpa_s, u8 tid,
|
||||||
|
const u8 *address)
|
||||||
|
{
|
||||||
|
if (!wpa_s->driver->del_tx_ts)
|
||||||
|
return -1;
|
||||||
|
return wpa_s->driver->del_tx_ts(wpa_s->drv_priv, tid, address);
|
||||||
|
}
|
||||||
|
|
||||||
static inline int wpa_drv_wnm_oper(struct wpa_supplicant *wpa_s,
|
static inline int wpa_drv_wnm_oper(struct wpa_supplicant *wpa_s,
|
||||||
enum wnm_oper oper, const u8 *peer,
|
enum wnm_oper oper, const u8 *peer,
|
||||||
u8 *buf, u16 *buf_len)
|
u8 *buf, u16 *buf_len)
|
||||||
|
|
|
@ -3813,6 +3813,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
|
||||||
wpa_s->extended_capa_len = capa.extended_capa_len;
|
wpa_s->extended_capa_len = capa.extended_capa_len;
|
||||||
wpa_s->num_multichan_concurrent =
|
wpa_s->num_multichan_concurrent =
|
||||||
capa.num_multichan_concurrent;
|
capa.num_multichan_concurrent;
|
||||||
|
wpa_s->wmm_ac_supported = capa.wmm_ac_supported;
|
||||||
}
|
}
|
||||||
if (wpa_s->max_remain_on_chan == 0)
|
if (wpa_s->max_remain_on_chan == 0)
|
||||||
wpa_s->max_remain_on_chan = 1000;
|
wpa_s->max_remain_on_chan = 1000;
|
||||||
|
|
|
@ -861,6 +861,7 @@ struct wpa_supplicant {
|
||||||
unsigned int no_keep_alive:1;
|
unsigned int no_keep_alive:1;
|
||||||
unsigned int ext_mgmt_frame_handling:1;
|
unsigned int ext_mgmt_frame_handling:1;
|
||||||
unsigned int ext_eapol_frame_io:1;
|
unsigned int ext_eapol_frame_io:1;
|
||||||
|
unsigned int wmm_ac_supported:1;
|
||||||
|
|
||||||
#ifdef CONFIG_WNM
|
#ifdef CONFIG_WNM
|
||||||
u8 wnm_dialog_token;
|
u8 wnm_dialog_token;
|
||||||
|
|
Loading…
Reference in a new issue