enum conf_rx_queue_type {
CONF_RX_QUEUE_TYPE_LOW_PRIORITY, /* All except the high priority */
CONF_RX_QUEUE_TYPE_HIGH_PRIORITY, /* Management and voice packets */
};
struct conf_rx_settings { /* * The maximum amount of time, in TU, before the * firmware discards the MSDU. * * Range: 0 - 0xFFFFFFFF
*/
u32 rx_msdu_life_time;
/* * Packet detection threshold in the PHY. * * FIXME: details unknown.
*/
u32 packet_detection_threshold;
/* * The longest time the STA will wait to receive traffic from the AP * after a PS-poll has been transmitted. * * Range: 0 - 200000
*/
u16 ps_poll_timeout; /* * The longest time the STA will wait to receive traffic from the AP * after a frame has been sent from an UPSD enabled queue. * * Range: 0 - 200000
*/
u16 upsd_timeout;
/* * The number of octets in an MPDU, below which an RTS/CTS * handshake is not performed. * * Range: 0 - 4096
*/
u16 rts_threshold;
/* * The RX Clear Channel Assessment threshold in the PHY * (the energy threshold). * * Range: ENABLE_ENERGY_D == 0x140A * DISABLE_ENERGY_D == 0xFFEF
*/
u16 rx_cca_threshold;
/* * Occupied Rx mem-blocks number which requires interrupting the host * (0 = no buffering, 0xffff = disabled). * * Range: u16
*/
u16 irq_blk_threshold;
/* * Rx packets number which requires interrupting the host * (0 = no buffering). * * Range: u16
*/
u16 irq_pkt_threshold;
/* * Max time in msec the FW may delay RX-Complete interrupt. * * Range: 1 - 100
*/
u16 irq_timeout;
/* * Rates supported for data packets when operating as STA/AP. Note the absence * of the 22Mbps rate. There is a FW limitation on 12 rates so we must drop * one. The rate dropped is not mandatory under any operating mode.
*/ #define CONF_TX_ENABLED_RATES (CONF_HW_BIT_RATE_1MBPS | \
CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS | \
CONF_HW_BIT_RATE_6MBPS | CONF_HW_BIT_RATE_9MBPS | \
CONF_HW_BIT_RATE_11MBPS | CONF_HW_BIT_RATE_12MBPS | \
CONF_HW_BIT_RATE_18MBPS | CONF_HW_BIT_RATE_24MBPS | \
CONF_HW_BIT_RATE_36MBPS | CONF_HW_BIT_RATE_48MBPS | \
CONF_HW_BIT_RATE_54MBPS)
/* * Default rates for management traffic when operating in AP mode. This * should be configured according to the basic rate set of the AP
*/ #define CONF_TX_AP_DEFAULT_MGMT_RATES (CONF_HW_BIT_RATE_1MBPS | \
CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS)
/* default rates for working as IBSS (11b and OFDM) */ #define CONF_TX_IBSS_DEFAULT_RATES (CONF_HW_BIT_RATE_1MBPS | \
CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS | \
CONF_HW_BIT_RATE_11MBPS | CONF_TX_OFDM_RATES);
struct conf_tx_rate_class {
/* * The rates enabled for this rate class. * * Range: CONF_HW_BIT_RATE_* bit mask
*/
u32 enabled_rates;
/* * The dot11 short retry limit used for TX retries. * * Range: u8
*/
u8 short_retry_limit;
/* * The dot11 long retry limit used for TX retries. * * Range: u8
*/
u8 long_retry_limit;
/* * Flags controlling the attributes of TX transmission. * * Range: bit 0: Truncate - when set, FW attempts to send a frame stop * when the total valid per-rate attempts have * been exhausted; otherwise transmissions * will continue at the lowest available rate * until the appropriate one of the * short_retry_limit, long_retry_limit, * dot11_max_transmit_msdu_life_time, or * max_tx_life_time, is exhausted. * 1: Preamble Override - indicates if the preamble type * should be used in TX. * 2: Preamble Type - the type of the preamble to be used by * the policy (0 - long preamble, 1 - short preamble.
*/
u8 aflags;
} __packed;
#define CONF_TX_MAX_AC_COUNT 4
/* Slot number setting to start transmission at PIFS interval */ #define CONF_TX_AIFS_PIFS 1 /* Slot number setting to start transmission at DIFS interval normal
* DCF access */ #define CONF_TX_AIFS_DIFS 2
struct conf_tx_settings { /* * The TX ED value for TELEC Enable/Disable. * * Range: 0, 1
*/
u8 tx_energy_detection;
/* * Configuration for rate classes for TX (currently only one * rate class supported). Used in non-AP mode.
*/ struct conf_tx_rate_class sta_rc_conf;
/* * Configuration for access categories for TX rate control.
*/
u8 ac_conf_count; struct conf_tx_ac_category ac_conf[CONF_TX_MAX_AC_COUNT];
/* * AP-mode - allow this number of TX retries to a station before an * event is triggered from FW. * In AP-mode the hlids of unreachable stations are given in the * "sta_tx_retry_exceeded" member in the event mailbox.
*/
u8 max_tx_retries;
/* * AP-mode - after this number of seconds a connected station is * considered inactive.
*/
u16 ap_aging_period;
/* * Configuration for TID parameters.
*/
u8 tid_conf_count; struct conf_tx_tid tid_conf[CONF_TX_MAX_TID_COUNT];
/* Time in ms for Tx watchdog timer to expire */
u32 tx_watchdog_timeout;
/* * when a slow link has this much packets pending, it becomes a low * priority link, scheduling-wise
*/
u8 slow_link_thold;
/* * when a fast link has this much packets pending, it becomes a low * priority link, scheduling-wise
*/
u8 fast_link_thold;
} __packed;
enum {
CONF_WAKE_UP_EVENT_BEACON = 0x01, /* Wake on every Beacon*/
CONF_WAKE_UP_EVENT_DTIM = 0x02, /* Wake on every DTIM*/
CONF_WAKE_UP_EVENT_N_DTIM = 0x04, /* Wake every Nth DTIM */
CONF_WAKE_UP_EVENT_N_BEACONS = 0x08, /* Wake every Nth beacon */
CONF_WAKE_UP_EVENT_BITS_MASK = 0x0F
};
struct conf_conn_settings { /* * Firmware wakeup conditions configuration. The host may set only * one bit. * * Range: CONF_WAKE_UP_EVENT_*
*/
u8 wake_up_event;
/* * Listen interval for beacons or Dtims. * * Range: 0 for beacon and Dtim wakeup * 1-10 for x Dtims * 1-255 for x beacons
*/
u8 listen_interval;
/* * The number of consecutive beacons to lose, before the firmware * becomes out of synch. * * Range: u32
*/
u32 synch_fail_thold;
/* * After out-of-synch, the number of TU's to wait without a further * received beacon (or probe response) before issuing the BSS_EVENT_LOSE * event. * * Range: u32
*/
u32 bss_lose_timeout;
/* * Enable/disable reception of broadcast packets in power save mode * * Range: 1 - enable, 0 - disable
*/
u8 rx_broadcast_in_ps;
/* * Consecutive PS Poll failures before sending event to driver * * Range: u8
*/
u8 ps_poll_threshold;
/* * Configuration of signal average weights.
*/ struct conf_sig_weights sig_weights;
/* * Specifies if beacon early termination procedure is enabled or * disabled. * * Range: CONF_BET_MODE_*
*/
u8 bet_enable;
/* * Specifies the maximum number of consecutive beacons that may be * early terminated. After this number is reached at least one full * beacon must be correctly received in FW before beacon ET * resumes. * * Range 0 - 255
*/
u8 bet_max_consecutive;
/* * Specifies the maximum number of times to try PSM entry if it fails * (if sending the appropriate null-func message fails.) * * Range 0 - 255
*/
u8 psm_entry_retries;
/* * Specifies the maximum number of times to try PSM exit if it fails * (if sending the appropriate null-func message fails.) * * Range 0 - 255
*/
u8 psm_exit_retries;
/* * Specifies the maximum number of times to try transmit the PSM entry * null-func frame for each PSM entry attempt * * Range 0 - 255
*/
u8 psm_entry_nullfunc_retries;
/* * Specifies the dynamic PS timeout in ms that will be used * by the FW when in AUTO_PS mode
*/
u16 dynamic_ps_timeout;
/* * Specifies whether dynamic PS should be disabled and PSM forced. * This is required for certain WiFi certification tests.
*/
u8 forced_ps;
/* * * Specifies the interval of the connection keep-alive null-func * frame in ms. * * Range: 1000 - 3600000
*/
u32 keep_alive_interval;
/* * Maximum listen interval supported by the driver in units of beacons. * * Range: u16
*/
u8 max_listen_interval;
/* * Default sleep authorization for a new STA interface. This determines * whether we can go to ELP.
*/
u8 sta_sleep_auth;
struct conf_pm_config_settings { /* * Host clock settling time * * Range: 0 - 30000 us
*/
u32 host_clk_settling_time;
/* * Host fast wakeup support * * Range: enum conf_fast_wakeup
*/
u8 host_fast_wakeup_support;
} __packed;
struct conf_roam_trigger_settings { /* * The minimum interval between two trigger events. * * Range: 0 - 60000 ms
*/
u16 trigger_pacing;
/* * The weight for rssi/beacon average calculation * * Range: 0 - 255
*/
u8 avg_weight_rssi_beacon;
/* * The weight for rssi/data frame average calculation * * Range: 0 - 255
*/
u8 avg_weight_rssi_data;
/* * The weight for snr/beacon average calculation * * Range: 0 - 255
*/
u8 avg_weight_snr_beacon;
/* * The weight for snr/data frame average calculation * * Range: 0 - 255
*/
u8 avg_weight_snr_data;
} __packed;
struct conf_scan_settings { /* * The minimum time to wait on each channel for active scans * This value will be used whenever there's a connected interface. * * Range: u32 tu/1000
*/
u32 min_dwell_time_active;
/* * The maximum time to wait on each channel for active scans * This value will be currently used whenever there's a * connected interface. It shouldn't exceed 30000 (~30ms) to avoid * possible interference of voip traffic going on while scanning. * * Range: u32 tu/1000
*/
u32 max_dwell_time_active;
/* The minimum time to wait on each channel for active scans * when it's possible to have longer scan dwell times. * Currently this is used whenever we're idle on all interfaces. * Longer dwell times improve detection of networks within a * single scan. * * Range: u32 tu/1000
*/
u32 min_dwell_time_active_long;
/* The maximum time to wait on each channel for active scans * when it's possible to have longer scan dwell times. * See min_dwell_time_active_long * * Range: u32 tu/1000
*/
u32 max_dwell_time_active_long;
/* time to wait on the channel for passive scans (in TU/1000) */
u32 dwell_time_passive;
/* time to wait on the channel for DFS scans (in TU/1000) */
u32 dwell_time_dfs;
/* * Number of probe requests to transmit on each active scan channel * * Range: u8
*/
u16 num_probe_reqs;
/* * Scan trigger (split scan) timeout. The FW will split the scan * operation into slices of the given time and allow the FW to schedule * other tasks in between. * * Range: u32 Microsecs
*/
u32 split_scan_timeout;
} __packed;
struct conf_sched_scan_settings { /* * The base time to wait on the channel for active scans (in TU/1000). * The minimum dwell time is calculated according to this: * min_dwell_time = base + num_of_probes_to_be_sent * delta_per_probe * The maximum dwell time is calculated according to this: * max_dwell_time = min_dwell_time + max_dwell_time_delta
*/
u32 base_dwell_time;
/* The delta between the min dwell time and max dwell time for * active scans (in TU/1000s). The max dwell time is used by the FW once * traffic is detected on the channel.
*/
u32 max_dwell_time_delta;
/* Delta added to min dwell time per each probe in 2.4 GHz (TU/1000) */
u32 dwell_time_delta_per_probe;
/* Delta added to min dwell time per each probe in 5 GHz (TU/1000) */
u32 dwell_time_delta_per_probe_5;
/* time to wait on the channel for passive scans (in TU/1000) */
u32 dwell_time_passive;
/* time to wait on the channel for DFS scans (in TU/1000) */
u32 dwell_time_dfs;
/* number of probe requests to send on each channel in active scans */
u8 num_probe_reqs;
/* RSSI threshold to be used for filtering */
s8 rssi_threshold;
/* SNR threshold to be used for filtering */
s8 snr_threshold;
/* * number of short intervals scheduled scan cycles before * switching to long intervals
*/
u8 num_short_intervals;
/* interval between each long scheduled scan cycle (in ms) */
u16 long_interval;
} __packed;
/* * The conf version consists of 4 bytes. The two MSB are the wlcore * version, the two LSB are the lower driver's private conf * version.
*/ #define WLCORE_CONF_VERSION (0x0007 << 16) #define WLCORE_CONF_MASK 0xffff0000 #define WLCORE_CONF_SIZE (sizeof(struct wlcore_conf_header) + \ sizeof(struct wlcore_conf))
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.