diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -179,7 +179,7 @@ static void ath_node_cleanup(struct ieee80211_node *); static void ath_node_free(struct ieee80211_node *); static void ath_node_getsignal(const struct ieee80211_node *, - int8_t *, int8_t *); + int16_t *, int8_t *); static void ath_txq_init(struct ath_softc *sc, struct ath_txq *, int); static struct ath_txq *ath_txq_setup(struct ath_softc*, int qtype, int subtype); static int ath_tx_setup(struct ath_softc *, int, int); @@ -3954,7 +3954,7 @@ } static void -ath_node_getsignal(const struct ieee80211_node *ni, int8_t *rssi, int8_t *noise) +ath_node_getsignal(const struct ieee80211_node *ni, int16_t *rssi, int8_t *noise) { struct ieee80211com *ic = ni->ni_ic; struct ath_softc *sc = ic->ic_softc; diff --git a/sys/dev/mwl/if_mwl.c b/sys/dev/mwl/if_mwl.c --- a/sys/dev/mwl/if_mwl.c +++ b/sys/dev/mwl/if_mwl.c @@ -129,7 +129,7 @@ static void mwl_node_cleanup(struct ieee80211_node *); static void mwl_node_drain(struct ieee80211_node *); static void mwl_node_getsignal(const struct ieee80211_node *, - int8_t *, int8_t *); + int16_t *, int8_t *); static void mwl_node_getmimoinfo(const struct ieee80211_node *, struct ieee80211_mimo_info *); static int mwl_rxbuf_init(struct mwl_softc *, struct mwl_rxbuf *); @@ -2378,7 +2378,7 @@ } static void -mwl_node_getsignal(const struct ieee80211_node *ni, int8_t *rssi, int8_t *noise) +mwl_node_getsignal(const struct ieee80211_node *ni, int16_t *rssi, int8_t *noise) { *rssi = ni->ni_ic->ic_node_getrssi(ni); #ifdef MWL_ANT_INFO_SUPPORT diff --git a/sys/net80211/_ieee80211.h b/sys/net80211/_ieee80211.h --- a/sys/net80211/_ieee80211.h +++ b/sys/net80211/_ieee80211.h @@ -423,7 +423,7 @@ * triggered. */ struct ieee80211_roamparam { - int8_t rssi; /* rssi thresh (.5 dBm) */ + int16_t rssi; /* rssi thresh (.5 dBm) */ uint8_t rate; /* tx rate thresh (.5 Mb/s or MCS) */ uint16_t pad; /* reserve */ }; @@ -456,8 +456,8 @@ #define IEEE80211_MAX_EVM_PILOTS 16 /* 468 subcarriers, 16 pilots */ struct ieee80211_mimo_chan_info { - int8_t rssi[IEEE80211_MAX_CHAIN_PRISEC]; - int8_t noise[IEEE80211_MAX_CHAIN_PRISEC]; + int16_t rssi[IEEE80211_MAX_CHAIN_PRISEC]; + int16_t noise[IEEE80211_MAX_CHAIN_PRISEC]; }; struct ieee80211_mimo_info { @@ -625,7 +625,7 @@ /* 32 bits */ int8_t c_nf; /* global NF */ - int8_t c_rssi; /* global RSSI */ + int16_t c_rssi; /* global RSSI */ uint8_t c_chain; /* number of RX chains involved */ uint8_t c_rate; /* legacy; 11n rate code; VHT MCS */ diff --git a/sys/net80211/ieee80211_adhoc.c b/sys/net80211/ieee80211_adhoc.c --- a/sys/net80211/ieee80211_adhoc.c +++ b/sys/net80211/ieee80211_adhoc.c @@ -68,7 +68,7 @@ static void adhoc_vattach(struct ieee80211vap *); static int adhoc_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int adhoc_input(struct ieee80211_node *, struct mbuf *, - const struct ieee80211_rx_stats *, int, int); + const struct ieee80211_rx_stats *, int16_t, int); static void adhoc_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, const struct ieee80211_rx_stats *, int, int); static void ahdemo_recv_mgmt(struct ieee80211_node *, struct mbuf *, @@ -301,7 +301,7 @@ */ static int adhoc_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c --- a/sys/net80211/ieee80211_hostap.c +++ b/sys/net80211/ieee80211_hostap.c @@ -66,7 +66,7 @@ static int hostap_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int hostap_input(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_rx_stats *, - int rssi, int nf); + int16_t rssi, int nf); static void hostap_deliver_data(struct ieee80211vap *, struct ieee80211_node *, struct mbuf *); static void hostap_recv_mgmt(struct ieee80211_node *, struct mbuf *, @@ -466,7 +466,7 @@ */ static int hostap_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/sys/net80211/ieee80211_ioctl.h b/sys/net80211/ieee80211_ioctl.h --- a/sys/net80211/ieee80211_ioctl.h +++ b/sys/net80211/ieee80211_ioctl.h @@ -437,7 +437,7 @@ uint32_t isi_flags; /* channel flags */ uint32_t isi_state; /* state flags */ uint8_t isi_authmode; /* authentication algorithm */ - int8_t isi_rssi; /* receive signal strength */ + int16_t isi_rssi; /* receive signal strength */ int8_t isi_noise; /* noise floor */ uint8_t isi_capinfo; /* capabilities */ uint8_t isi_erp; /* ERP element */ @@ -824,9 +824,9 @@ uint16_t isr_ie_len; /* IE length */ uint16_t isr_freq; /* MHz */ uint16_t isr_flags; /* channel flags */ - int8_t isr_noise; - int8_t isr_rssi; uint16_t isr_intval; /* beacon interval */ + int16_t isr_rssi; + int8_t isr_noise; uint8_t isr_capinfo; /* capabilities */ uint8_t isr_erp; /* ERP element */ uint8_t isr_bssid[IEEE80211_ADDR_LEN]; diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c --- a/sys/net80211/ieee80211_mesh.c +++ b/sys/net80211/ieee80211_mesh.c @@ -83,7 +83,7 @@ static void mesh_forward(struct ieee80211vap *, struct mbuf *, const struct ieee80211_meshcntl *); static int mesh_input(struct ieee80211_node *, struct mbuf *, - const struct ieee80211_rx_stats *rxs, int, int); + const struct ieee80211_rx_stats *rxs, int16_t, int); static void mesh_recv_mgmt(struct ieee80211_node *, struct mbuf *, int, const struct ieee80211_rx_stats *rxs, int, int); static void mesh_recv_ctl(struct ieee80211_node *, struct mbuf *, int); @@ -1525,7 +1525,7 @@ static int mesh_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf) { #define HAS_SEQ(type) ((type & 0x4) == 0) #define MC01(mc) ((const struct ieee80211_meshcntl_ae01 *)mc) diff --git a/sys/net80211/ieee80211_monitor.c b/sys/net80211/ieee80211_monitor.c --- a/sys/net80211/ieee80211_monitor.c +++ b/sys/net80211/ieee80211_monitor.c @@ -58,7 +58,7 @@ static void monitor_vattach(struct ieee80211vap *); static int monitor_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int monitor_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf); + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf); void ieee80211_monitor_attach(struct ieee80211com *ic) @@ -123,7 +123,7 @@ */ static int monitor_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ifnet *ifp = vap->iv_ifp; diff --git a/sys/net80211/ieee80211_node.h b/sys/net80211/ieee80211_node.h --- a/sys/net80211/ieee80211_node.h +++ b/sys/net80211/ieee80211_node.h @@ -528,8 +528,8 @@ const struct ieee80211_scanparams *); void ieee80211_node_join(struct ieee80211_node *,int); void ieee80211_node_leave(struct ieee80211_node *); -int8_t ieee80211_getrssi(struct ieee80211vap *); -void ieee80211_getsignal(struct ieee80211vap *, int8_t *, int8_t *); +int16_t ieee80211_getrssi(struct ieee80211vap *); +void ieee80211_getsignal(struct ieee80211vap *, int16_t *, int8_t *); /* * Node transmit rate specific manipulation. diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c --- a/sys/net80211/ieee80211_node.c +++ b/sys/net80211/ieee80211_node.c @@ -91,8 +91,8 @@ static void node_cleanup(struct ieee80211_node *); static void node_free(struct ieee80211_node *); static void node_age(struct ieee80211_node *); -static int8_t node_getrssi(const struct ieee80211_node *); -static void node_getsignal(const struct ieee80211_node *, int8_t *, int8_t *); +static int16_t node_getrssi(const struct ieee80211_node *); +static void node_getsignal(const struct ieee80211_node *, int16_t *, int8_t *); static void node_getmimoinfo(const struct ieee80211_node *, struct ieee80211_mimo_info *); @@ -1341,7 +1341,7 @@ ieee80211_ht_node_age(ni); } -static int8_t +static int16_t node_getrssi(const struct ieee80211_node *ni) { uint32_t avgrssi = ni->ni_avgrssi; @@ -1354,7 +1354,7 @@ } static void -node_getsignal(const struct ieee80211_node *ni, int8_t *rssi, int8_t *noise) +node_getsignal(const struct ieee80211_node *ni, int16_t *rssi, int8_t *noise) { *rssi = node_getrssi(ni); *noise = ni->ni_noise; @@ -3039,7 +3039,7 @@ { struct rssiinfo *info = arg; struct ieee80211vap *vap = ni->ni_vap; - int8_t rssi; + int16_t rssi; /* only associated stations */ if (ni->ni_associd == 0) @@ -3056,7 +3056,7 @@ { struct rssiinfo *info = arg; struct ieee80211vap *vap = ni->ni_vap; - int8_t rssi; + int16_t rssi; /* only neighbors */ /* XXX check bssid */ @@ -3075,7 +3075,7 @@ { struct rssiinfo *info = arg; struct ieee80211vap *vap = ni->ni_vap; - int8_t rssi; + int16_t rssi; /* only neighbors that peered successfully */ if (ni->ni_mlstate != IEEE80211_NODE_MESH_ESTABLISHED) @@ -3088,7 +3088,7 @@ } #endif /* IEEE80211_SUPPORT_MESH */ -int8_t +int16_t ieee80211_getrssi(struct ieee80211vap *vap) { #define NZ(x) ((x) == 0 ? 1 : (x)) @@ -3126,7 +3126,7 @@ } void -ieee80211_getsignal(struct ieee80211vap *vap, int8_t *rssi, int8_t *noise) +ieee80211_getsignal(struct ieee80211vap *vap, int16_t *rssi, int8_t *noise) { if (vap->iv_bss == NULL) /* NB: shouldn't happen */ diff --git a/sys/net80211/ieee80211_ratectl.h b/sys/net80211/ieee80211_ratectl.h --- a/sys/net80211/ieee80211_ratectl.h +++ b/sys/net80211/ieee80211_ratectl.h @@ -63,7 +63,7 @@ int final_rate; /* transmission rate */ uint_fast8_t short_retries; /* RTS/CTS retries */ uint_fast8_t long_retries; /* ACK retries */ - int8_t rssi; /* ACK RSSI */ + int16_t rssi; /* ACK RSSI */ uint8_t spare[15]; /* for future use */ }; diff --git a/sys/net80211/ieee80211_scan.h b/sys/net80211/ieee80211_scan.h --- a/sys/net80211/ieee80211_scan.h +++ b/sys/net80211/ieee80211_scan.h @@ -282,7 +282,7 @@ uint8_t se_fhindex; /* FH only */ uint8_t se_dtimperiod; /* DTIM period */ uint16_t se_erp; /* ERP from beacon/probe resp */ - int8_t se_rssi; /* avg'd recv ssi */ + int16_t se_rssi; /* avg'd recv ssi */ int8_t se_noise; /* noise floor */ uint8_t se_cc[2]; /* captured country code */ uint8_t se_meshid[2+IEEE80211_MESHID_LEN]; diff --git a/sys/net80211/ieee80211_sta.c b/sys/net80211/ieee80211_sta.c --- a/sys/net80211/ieee80211_sta.c +++ b/sys/net80211/ieee80211_sta.c @@ -67,7 +67,7 @@ static void sta_beacon_miss(struct ieee80211vap *); static int sta_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int sta_input(struct ieee80211_node *, struct mbuf *, - const struct ieee80211_rx_stats *, int, int); + const struct ieee80211_rx_stats *, int16_t, int); static void sta_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, const struct ieee80211_rx_stats *, int rssi, int nf); static void sta_recv_ctl(struct ieee80211_node *, struct mbuf *, int subtype); @@ -530,7 +530,7 @@ */ static int sta_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -325,9 +325,9 @@ void (*ic_node_age)(struct ieee80211_node *); void (*ic_node_drain)(struct ieee80211_node *); - int8_t (*ic_node_getrssi)(const struct ieee80211_node*); + int16_t (*ic_node_getrssi)(const struct ieee80211_node*); void (*ic_node_getsignal)(const struct ieee80211_node*, - int8_t *, int8_t *); + int16_t *, int8_t *); void (*ic_node_getmimoinfo)( const struct ieee80211_node*, struct ieee80211_mimo_info *); @@ -543,7 +543,7 @@ int (*iv_input)(struct ieee80211_node *, struct mbuf *, const struct ieee80211_rx_stats *, - int, int); + int16_t, int); void (*iv_recv_mgmt)(struct ieee80211_node *, struct mbuf *, int, const struct ieee80211_rx_stats *, diff --git a/sys/net80211/ieee80211_wds.c b/sys/net80211/ieee80211_wds.c --- a/sys/net80211/ieee80211_wds.c +++ b/sys/net80211/ieee80211_wds.c @@ -62,7 +62,7 @@ static void wds_vattach(struct ieee80211vap *); static int wds_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int wds_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int, int); + const struct ieee80211_rx_stats *rxs, int16_t, int); static void wds_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, const struct ieee80211_rx_stats *, int, int); @@ -101,7 +101,8 @@ { struct ieee80211com *ic = ni->ni_ic; struct mbuf *m, *next; - int8_t rssi, nf; + int16_t rssi; + int8_t nf; m = ieee80211_ageq_remove(&ic->ic_stageq, (void *)(uintptr_t) ieee80211_mac_hash(ic, ni->ni_macaddr)); @@ -404,7 +405,7 @@ */ static int wds_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, int16_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h --- a/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h +++ b/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h @@ -43,7 +43,7 @@ uint16_t frequency; uint32_t fflags; uint8_t txrate; - int8_t rssi; + int16_t rssi; uint16_t idle; uint16_t txseqs; uint16_t rxseqs; @@ -61,7 +61,7 @@ uint8_t ssid[IEEE80211_NWID_LEN + 1]; uint8_t bssid[IEEE80211_ADDR_LEN]; uint8_t opchannel; - int8_t rssi; + int16_t rssi; uint16_t frequency; int8_t noise; uint16_t bintval;