diff options
author | sam <sam@FreeBSD.org> | 2003-09-05 22:29:30 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2003-09-05 22:29:30 +0000 |
commit | 61e32060ebe88a1fcc239db7013c06647fbee902 (patch) | |
tree | a8eb3baa11e3cf856200c165c59b988b0842970d /sys/dev/wi/if_wivar.h | |
parent | 92be79f8718c8d556f13d3526d8a1886a858be2b (diff) | |
download | FreeBSD-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.h | 28 |
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 |