/* The number of PLCP errors since the last time this */ /* information element was interrogated. This field is */ /* automatically cleared when it is interrogated.*/
u32 PLCP_error;
/* The number of FCS errors since the last time this */ /* information element was interrogated. This field is */ /* automatically cleared when it is interrogated.*/
u32 FCS_error;
/* The number of MPDUs without PLCP header errors received*/ /* since the last time this information element was interrogated. */ /* This field is automatically cleared when it is interrogated.*/
u32 valid_frame;
/* the number of missed sequence numbers in the squentially */ /* values of frames seq numbers */
u32 seq_num_miss;
} __packed;
struct acx_revision { struct acx_header header;
/* * The WiLink firmware version, an ASCII string x.x.x.x, * that uniquely identifies the current firmware. * The left most digit is incremented each time a * significant change is made to the firmware, such as * code redesign or new platform support. * The second digit is incremented when major enhancements * are added or major fixes are made. * The third digit is incremented for each GA release. * The fourth digit is incremented for each build. * The first two digits identify a firmware release version, * in other words, a unique set of features. * The first three digits identify a GA release.
*/ char fw_version[20];
/* * This 4 byte field specifies the WiLink hardware version. * bits 0 - 15: Reserved. * bits 16 - 23: Version ID - The WiLink version ID * (1 = first spin, 2 = second spin, and so on). * bits 24 - 31: Chip ID - The WiLink chip ID.
*/
u32 hw_version;
} __packed;
enum wl1251_psm_mode { /* Active mode */
WL1251_PSM_CAM = 0,
/* Power save mode */
WL1251_PSM_PS = 1,
/* Extreme low power */
WL1251_PSM_ELP = 2,
};
struct acx_sleep_auth { struct acx_header header;
/* The sleep level authorization of the device. */ /* 0 - Always active*/ /* 1 - Power down mode: light / fast sleep*/ /* 2 - ELP mode: Deep / Max sleep*/
u8 sleep_auth;
u8 padding[3];
} __packed;
/* * The maximum amount of time, in TU, before the * firmware discards the MSDU.
*/
u32 lifetime;
} __packed;
/* * RX Config Options Table * Bit Definition * === ========== * 31:14 Reserved * 13 Copy RX Status - when set, write three receive status words * to top of rx'd MPDUs. * When cleared, do not write three status words (added rev 1.5) * 12 Reserved * 11 RX Complete upon FCS error - when set, give rx complete * interrupt for FCS errors, after the rx filtering, e.g. unicast * frames not to us with FCS error will not generate an interrupt. * 10 SSID Filter Enable - When set, the WiLink discards all beacon, * probe request, and probe response frames with an SSID that does * not match the SSID specified by the host in the START/JOIN * command. * When clear, the WiLink receives frames with any SSID. * 9 Broadcast Filter Enable - When set, the WiLink discards all * broadcast frames. When clear, the WiLink receives all received * broadcast frames. * 8:6 Reserved * 5 BSSID Filter Enable - When set, the WiLink discards any frames * with a BSSID that does not match the BSSID specified by the * host. * When clear, the WiLink receives frames from any BSSID. * 4 MAC Addr Filter - When set, the WiLink discards any frames * with a destination address that does not match the MAC address * of the adaptor. * When clear, the WiLink receives frames destined to any MAC * address. * 3 Promiscuous - When set, the WiLink receives all valid frames * (i.e., all frames that pass the FCS check). * When clear, only frames that pass the other filters specified * are received. * 2 FCS - When set, the WiLink includes the FCS with the received * frame. * When cleared, the FCS is discarded. * 1 PLCP header - When set, write all data from baseband to frame * buffer including PHY header. * 0 Reserved - Always equal to 0. * * RX Filter Options Table * Bit Definition * === ========== * 31:12 Reserved - Always equal to 0. * 11 Association - When set, the WiLink receives all association * related frames (association request/response, reassociation * request/response, and disassociation). When clear, these frames * are discarded. * 10 Auth/De auth - When set, the WiLink receives all authentication * and de-authentication frames. When clear, these frames are * discarded. * 9 Beacon - When set, the WiLink receives all beacon frames. * When clear, these frames are discarded. * 8 Contention Free - When set, the WiLink receives all contention * free frames. * When clear, these frames are discarded. * 7 Control - When set, the WiLink receives all control frames. * When clear, these frames are discarded. * 6 Data - When set, the WiLink receives all data frames. * When clear, these frames are discarded. * 5 FCS Error - When set, the WiLink receives frames that have FCS * errors. * When clear, these frames are discarded. * 4 Management - When set, the WiLink receives all management * frames. * When clear, these frames are discarded. * 3 Probe Request - When set, the WiLink receives all probe request * frames. * When clear, these frames are discarded. * 2 Probe Response - When set, the WiLink receives all probe * response frames. * When clear, these frames are discarded. * 1 RTS/CTS/ACK - When set, the WiLink receives all RTS, CTS and ACK * frames. * When clear, these frames are discarded. * 0 Rsvd Type/Sub Type - When set, the WiLink receives all frames * that have reserved frame types and sub types as defined by the * 802.11 specification. * When clear, these frames are discarded.
*/ struct acx_rx_config { struct acx_header header;
/* * The longest time the STA will wait to receive * traffic from the AP after a PS-poll has been * transmitted.
*/
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.
*/
u16 upsd_timeout;
} __packed;
enum wl1251_acx_low_rssi_type { /* * The event is a "Level" indication which keeps triggering * as long as the average RSSI is below the threshold.
*/
WL1251_ACX_LOW_RSSI_TYPE_LEVEL = 0,
/* * The event is an "Edge" indication which triggers * only when the RSSI threshold is crossed from above.
*/
WL1251_ACX_LOW_RSSI_TYPE_EDGE = 1,
};
struct acx_low_rssi { struct acx_header header;
/* * The threshold (in dBm) below (or above after low rssi * indication) which the firmware generates an interrupt to the * host. This parameter is signed.
*/
s8 threshold;
/* * The weight of the current RSSI sample, before adding the new * sample, that is used to calculate the average RSSI.
*/
u8 weight;
/* * The number of Beacons/Probe response frames that will be * received before issuing the Low or Regained RSSI event.
*/
u8 depth;
/* * Configures how the Low RSSI Event is triggered. Refer to * enum wl1251_acx_low_rssi_type for more.
*/
u8 type;
} __packed;
/* * The number of beacons without the unicast TIM * bit set that the firmware buffers before * signaling the host about ready frames. * When set to 0 and the filter is enabled, beacons * without the unicast TIM bit set are dropped.
*/
u8 max_num_beacons;
u8 pad[2];
} __packed;
/* * ACXBeaconFilterEntry (not 221) * Byte Offset Size (Bytes) Definition * =========== ============ ========== * 0 1 IE identifier * 1 1 Treatment bit mask * * ACXBeaconFilterEntry (221) * Byte Offset Size (Bytes) Definition * =========== ============ ========== * 0 1 IE identifier * 1 1 Treatment bit mask * 2 3 OUI * 5 1 Type * 6 2 Version * * * Treatment bit mask - The information element handling: * bit 0 - The information element is compared and transferred * in case of change. * bit 1 - The information element is transferred to the host * with each appearance or disappearance. * Note that both bits can be set at the same time.
*/ #define BEACON_FILTER_TABLE_MAX_IE_NUM (32) #define BEACON_FILTER_TABLE_MAX_VENDOR_SPECIFIC_IE_NUM (6) #define BEACON_FILTER_TABLE_IE_ENTRY_SIZE (2) #define BEACON_FILTER_TABLE_EXTRA_VENDOR_SPECIFIC_IE_SIZE (6) #define BEACON_FILTER_TABLE_MAX_SIZE ((BEACON_FILTER_TABLE_MAX_IE_NUM * \
BEACON_FILTER_TABLE_IE_ENTRY_SIZE) + \
(BEACON_FILTER_TABLE_MAX_VENDOR_SPECIFIC_IE_NUM * \
BEACON_FILTER_TABLE_EXTRA_VENDOR_SPECIFIC_IE_SIZE))
/* * 0 -> PTA enabled * 1 -> PTA disabled * 2 -> sense no active mode, i.e. * an interrupt is sent upon * BT activity. * 3 -> PTA is switched on in response * to the interrupt sending.
*/
u8 enable;
u8 pad[3];
} __packed;
/* * The minimum rate of a received WLAN packet in the STA, * during protective mode, of which a new BT-HP request * during this Rx will always be respected and gain the antenna.
*/
u32 min_rate;
/* Max time the BT HP will be respected. */
u16 bt_hp_max_time;
/* Max time the WLAN HP will be respected. */
u16 wlan_hp_max_time;
/* * The time between the last BT activity * and the moment when the sense mode returns * to SENSE_INACTIVE.
*/
u16 sense_disable_timer;
/* Time before the next BT HP instance */
u16 rx_time_bt_hp;
u16 tx_time_bt_hp;
enum acx_wake_up_event {
WAKE_UP_EVENT_BEACON_BITMAP = 0x01, /* Wake on every Beacon*/
WAKE_UP_EVENT_DTIM_BITMAP = 0x02, /* Wake on every DTIM*/
WAKE_UP_EVENT_N_DTIM_BITMAP = 0x04, /* Wake on every Nth DTIM */
WAKE_UP_EVENT_N_BEACONS_BITMAP = 0x08, /* Wake on every Nth Beacon */
WAKE_UP_EVENT_BITS_MASK = 0x0F
};
/* * When set, the WiLink transmits the frames with a short preamble and * when cleared, the WiLink transmits the frames with a long preamble.
*/
u8 preamble;
u8 padding[3];
} __packed;
struct acx_pwr_statistics { /* the amount of enters into power save mode (both PD & ELP) */
u32 ps_enter;
/* the amount of enters into ELP mode */
u32 elp_enter;
/* the amount of missing beacon interrupts to the host */
u32 missing_bcns;
/* the amount of wake on host-access times */
u32 wake_on_host;
/* the amount of wake on timer-expire */
u32 wake_on_timer_exp;
/* the number of packets that were transmitted with PS bit set */
u32 tx_with_ps;
/* the number of packets that were transmitted with PS bit clear */
u32 tx_without_ps;
/* the number of received beacons */
u32 rcvd_beacons;
/* the number of entering into PowerOn (power save off) */
u32 power_save_off;
/* the number of entries into power save mode */
u16 enable_ps;
/* * the number of exits from power save, not including failed PS * transitions
*/
u16 disable_ps;
/* * the number of times the TSF counter was adjusted because * of drift
*/
u32 fix_tsf_ps;
/* Gives statistics about the spread continuous missed beacons. * The 16 LSB are dedicated for the PS mode. * The 16 MSB are dedicated for the PS mode. * cont_miss_bcns_spread[0] - single missed beacon. * cont_miss_bcns_spread[1] - two continuous missed beacons. * cont_miss_bcns_spread[2] - three continuous missed beacons. * ... * cont_miss_bcns_spread[9] - ten and more continuous missed beacons.
*/
u32 cont_miss_bcns_spread[ACX_MISSED_BEACONS_SPREAD];
/* the number of beacons in awake mode */
u32 rcvd_awake_beacons;
} __packed;
struct wl1251_acx_memory {
__le16 num_stations; /* number of STAs to be supported. */
u16 reserved_1;
/* * Nmber of memory buffers for the RX mem pool. * The actual number may be less if there are * not enough blocks left for the minimum num * of TX ones.
*/
u8 rx_mem_block_num;
u8 reserved_2;
u8 num_tx_queues; /* From 1 to 16 */
u8 host_if_options; /* HOST_IF* */
u8 tx_min_mem_block_num;
u8 num_ssid_profiles;
__le16 debug_buffer_size;
} __packed;
/* * Specifies if beacon early termination procedure is enabled or * disabled, see enum wl1251_acx_bet_mode.
*/
u8 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 max_consecutive;
u8 padding[2];
} __packed;
#define ACX_IPV4_VERSION 4 #define ACX_IPV6_VERSION 6 #define ACX_IPV4_ADDR_SIZE 4 struct wl1251_acx_arp_filter { struct acx_header header;
u8 version; /* The IP version: 4 - IPv4, 6 - IPv6.*/
u8 enable; /* 1 - ARP filtering is enabled, 0 - disabled */
u8 padding[2];
u8 address[16]; /* The IP address used to filter ARP packets. ARP packets that do not match this address are dropped. When the IP Version is 4, the last 12
bytes of the address are ignored. */
} __attribute__((packed));
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.