aboutsummaryrefslogtreecommitdiff
path: root/at76_usb.h
diff options
context:
space:
mode:
authorPavel Roskin <proski@gnu.org>2007-04-17 00:42:12 -0400
committerGuido Guenther <agx@bogon.sigxcpu.org>2007-04-17 10:32:06 +0200
commitd2b57bd2858cb74873f7d4ee77354be90185ef72 (patch)
tree5304694d150fa29c9953cebce06fa46a0d2f61e8 /at76_usb.h
parentf1b803760d7fed048c3b35614a21d69407365d54 (diff)
[PATCH] Standardize on radiotap headers for monitor mode
Remove support for bare 802.11 and prism headers. Remove private ioctl "monitor", it's obsolete. Only provide data available for the specific packet. Don't pass any average stats. Signed-off-by: Pavel Roskin <proski@gnu.org>
Diffstat (limited to 'at76_usb.h')
-rw-r--r--at76_usb.h66
1 files changed, 15 insertions, 51 deletions
diff --git a/at76_usb.h b/at76_usb.h
index 493fc12..9b4dbb7 100644
--- a/at76_usb.h
+++ b/at76_usb.h
@@ -40,8 +40,6 @@
#define AT76_SET_SCAN_MODE (SIOCIWFIRSTPRIV + 0x8)
/* set international roaming */
#define AT76_SET_INTL_ROAMING (SIOCIWFIRSTPRIV + 0x10)
-/* set monitor mode */
-#define AT76_SET_MONITOR_MODE (SIOCIWFIRSTPRIV + 0x12)
#define DEVICE_VENDOR_REQUEST_OUT 0x40
#define DEVICE_VENDOR_REQUEST_IN 0xc0
@@ -108,11 +106,6 @@
#define IR_OFF 0
#define IR_ON 1
-/* monitor mode - param of private ioctl */
-#define MM_OFF 0
-#define MM_ON 1
-#define MM_ON_NO_PRISM 2
-
/* offsets into the MIBs we use to configure the device */
#define TX_AUTORATE_FALLBACK_OFFSET offsetof(struct mib_local,txautorate_fallback)
@@ -210,7 +203,7 @@ struct at76_rx_buffer {
u8 rssi;
u8 link_quality;
u8 noise_level;
- u8 rx_time[4];
+ __le32 rx_time;
u8 packet[IEEE80211_FRAME_LEN + IEEE80211_FCS_LEN];
} __attribute__ ((packed));
@@ -595,8 +588,6 @@ struct at76_priv {
/* new whiz-bang feature flags */
int international_roaming;
- int monitor_prism_header; /* if iw_mode == IW_MODE_MONITOR,
- use Prism header */
int monitor_scan_min_time;
int monitor_scan_max_time;
@@ -605,48 +596,21 @@ struct at76_priv {
unsigned long beacons_last_qual; /* last time we reset beacons_received = 0 */
};
-/* Quasi-monitor mode defs (copied from <kernel>/drivers/net/wireless/orinoco.h) */
-
-/* message data item for INT, BOUNDEDINT, ENUMINT */
-struct p80211item_u32 {
- uint32_t did;
- uint16_t status;
- uint16_t len;
- uint32_t data;
-} __attribute__ ((packed));
+struct at76_rx_radiotap {
+ struct ieee80211_radiotap_header rt_hdr;
+ __le64 rt_tsft;
+ u8 rt_flags;
+ u8 rt_rate;
+ s8 rt_signal;
+ s8 rt_noise;
+};
-#define P80211ENUM_msgitem_status_data_ok 0
-#define P80211ENUM_msgitem_status_no_value 1
-#define P80211ENUM_truth_false 0
-#define P80211ENUM_truth_true 1
-
-#define DIDmsg_lnxind_wlansniffrm 0x0041
-#define DIDmsg_lnxind_wlansniffrm_hosttime 0x1041
-#define DIDmsg_lnxind_wlansniffrm_mactime 0x2041
-#define DIDmsg_lnxind_wlansniffrm_channel 0x3041
-#define DIDmsg_lnxind_wlansniffrm_rssi 0x4041
-#define DIDmsg_lnxind_wlansniffrm_sq 0x5041
-#define DIDmsg_lnxind_wlansniffrm_signal 0x6041
-#define DIDmsg_lnxind_wlansniffrm_noise 0x7041
-#define DIDmsg_lnxind_wlansniffrm_rate 0x8041
-#define DIDmsg_lnxind_wlansniffrm_istx 0x9041
-#define DIDmsg_lnxind_wlansniffrm_frmlen 0xA041
-
-struct p80211msg {
- uint32_t msgcode;
- uint32_t msglen;
- uint8_t devname[IFNAMSIZ];
- struct p80211item_u32 hosttime;
- struct p80211item_u32 mactime;
- struct p80211item_u32 channel;
- struct p80211item_u32 rssi;
- struct p80211item_u32 sq;
- struct p80211item_u32 signal;
- struct p80211item_u32 noise;
- struct p80211item_u32 rate;
- struct p80211item_u32 istx;
- struct p80211item_u32 frmlen;
-} __attribute__ ((packed));
+#define AT76_RX_RADIOTAP_PRESENT ( \
+ (1 << IEEE80211_RADIOTAP_TSFT) | \
+ (1 << IEEE80211_RADIOTAP_FLAGS)) | \
+ (1 << IEEE80211_RADIOTAP_RATE) | \
+ (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL) | \
+ (1 << IEEE80211_RADIOTAP_DB_ANTNOISE)
#define BEACON_MAX_DATA_LENGTH 1500