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
|
||||
unsigned int smps_modes;
|
||||
|
||||
unsigned int wmm_ac_supported:1;
|
||||
|
||||
int max_scan_ssids;
|
||||
int max_sched_scan_ssids;
|
||||
int sched_scan_supported;
|
||||
|
@ -2868,6 +2870,28 @@ struct wpa_driver_ops {
|
|||
*/
|
||||
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
|
||||
* @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);
|
||||
}
|
||||
|
||||
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,
|
||||
enum wnm_oper oper, const u8 *peer,
|
||||
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->num_multichan_concurrent =
|
||||
capa.num_multichan_concurrent;
|
||||
wpa_s->wmm_ac_supported = capa.wmm_ac_supported;
|
||||
}
|
||||
if (wpa_s->max_remain_on_chan == 0)
|
||||
wpa_s->max_remain_on_chan = 1000;
|
||||
|
|
|
@ -861,6 +861,7 @@ struct wpa_supplicant {
|
|||
unsigned int no_keep_alive:1;
|
||||
unsigned int ext_mgmt_frame_handling:1;
|
||||
unsigned int ext_eapol_frame_io:1;
|
||||
unsigned int wmm_ac_supported:1;
|
||||
|
||||
#ifdef CONFIG_WNM
|
||||
u8 wnm_dialog_token;
|
||||
|
|
Loading…
Reference in a new issue