summaryrefslogtreecommitdiffstats
path: root/sys/dev/wi/if_wivar.h
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2003-09-05 22:29:30 +0000
committersam <sam@FreeBSD.org>2003-09-05 22:29:30 +0000
commit61e32060ebe88a1fcc239db7013c06647fbee902 (patch)
treea8eb3baa11e3cf856200c165c59b988b0842970d /sys/dev/wi/if_wivar.h
parent92be79f8718c8d556f13d3526d8a1886a858be2b (diff)
downloadFreeBSD-src-61e32060ebe88a1fcc239db7013c06647fbee902.zip
FreeBSD-src-61e32060ebe88a1fcc239db7013c06647fbee902.tar.gz
o add experimental radiotap capture format
o add netbsd logic to convert rssi to device-independent values Obtained from: NetBSD (rssi conversion code)
Diffstat (limited to 'sys/dev/wi/if_wivar.h')
-rw-r--r--sys/dev/wi/if_wivar.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/sys/dev/wi/if_wivar.h b/sys/dev/wi/if_wivar.h
index 0ec3df3..dbfc627 100644
--- a/sys/dev/wi/if_wivar.h
+++ b/sys/dev/wi/if_wivar.h
@@ -106,7 +106,11 @@ struct wi_softc {
u_int16_t sc_procframe;
u_int16_t sc_portnum;
- u_int16_t sc_dbm_adjust;
+ /* RSSI interpretation */
+ u_int16_t sc_min_rssi; /* clamp sc_min_rssi < RSSI */
+ u_int16_t sc_max_rssi; /* clamp RSSI < sc_max_rssi */
+ u_int16_t sc_dbm_offset; /* dBm ~ RSSI - sc_dbm_offset */
+
u_int16_t sc_max_datalen;
u_int16_t sc_system_scale;
u_int16_t sc_cnfauthmode;
@@ -158,8 +162,19 @@ struct wi_softc {
int sc_false_syns;
u_int16_t sc_txbuf[IEEE80211_MAX_LEN/2];
+
+ union {
+ struct wi_tx_radiotap_header th;
+ u_int8_t pad[64];
+ } u_tx_rt;
+ union {
+ struct wi_rx_radiotap_header th;
+ u_int8_t pad[64];
+ } u_rx_rt;
};
#define sc_if sc_ic.ic_if
+#define sc_tx_th u_tx_rt.th
+#define sc_rx_th u_rx_rt.th
/* maximum consecutive false change-of-BSSID indications */
#define WI_MAX_FALSE_SYNS 10
@@ -184,6 +199,17 @@ struct wi_card_ident {
u_int8_t firm_type;
};
+#define WI_PRISM_MIN_RSSI 0x1b
+#define WI_PRISM_MAX_RSSI 0x9a
+#define WI_PRISM_DBM_OFFSET 100 /* XXX */
+
+#define WI_LUCENT_MIN_RSSI 47
+#define WI_LUCENT_MAX_RSSI 138
+#define WI_LUCENT_DBM_OFFSET 149
+
+#define WI_RSSI_TO_DBM(sc, rssi) (MIN((sc)->sc_max_rssi, \
+ MAX((sc)->sc_min_rssi, (rssi))) - (sc)->sc_dbm_offset)
+
#if __FreeBSD_version < 500000
/*
* Various compat hacks/kludges
OpenPOWER on IntegriCloud