[package] iwinfo: add per-station rate and mcs info to assoclist op

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30682 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
Jo-Philipp Wich
2012-02-22 13:39:16 +00:00
parent 999cdff204
commit 22f95cf93c
10 changed files with 1305 additions and 88 deletions

View File

@@ -49,10 +49,22 @@ extern const char *IWINFO_KMGMT_NAMES[];
extern const char *IWINFO_AUTH_NAMES[];
struct iwinfo_rate_entry {
uint16_t rate;
uint8_t mcs;
uint8_t is_40mhz:1;
uint8_t is_short_gi:1;
};
struct iwinfo_assoclist_entry {
uint8_t mac[6];
int8_t signal;
int8_t noise;
uint32_t inactive;
uint32_t rx_packets;
uint32_t tx_packets;
struct iwinfo_rate_entry rx_rate;
struct iwinfo_rate_entry tx_rate;
};
struct iwinfo_txpwrlist_entry {

View File

@@ -64,6 +64,30 @@ typedef struct wl_sta_rssi {
uint16_t foo;
} wl_sta_rssi_t;
#define WL_NUMRATES 255 /* max # of rates in a rateset */
typedef struct wl_rateset {
uint32_t count; /* # rates in this set */
uint8_t rates[WL_NUMRATES]; /* rates in 500kbps units w/hi bit set if basic */
} wl_rateset_t;
typedef struct wl_sta_info {
uint16_t ver; /* version of this struct */
uint16_t len; /* length in bytes of this structure */
uint16_t cap; /* sta's advertised capabilities */
uint32_t flags; /* flags defined below */
uint32_t idle; /* time since data pkt rx'd from sta */
unsigned char ea[6]; /* Station address */
wl_rateset_t rateset; /* rateset in use */
uint32_t in; /* seconds elapsed since associated */
uint32_t listen_interval_inms; /* Min Listen interval in ms for this STA */
uint32_t tx_pkts; /* # of packets transmitted */
uint32_t tx_failures; /* # of packets failed */
uint32_t rx_ucast_pkts; /* # of unicast packets received */
uint32_t rx_mcast_pkts; /* # of multicast packets received */
uint32_t tx_rate; /* Rate of last successful tx frame */
uint32_t rx_rate; /* Rate of last successful rx frame */
} wl_sta_info_t;
typedef struct wlc_ssid {
uint32_t ssid_len;
unsigned char ssid[32];

View File

@@ -22,8 +22,10 @@
#define _MADWIFI_H
/* ieee80211.h */
#define IEEE80211_ADDR_LEN 6
#define IEEE80211_RATE_VAL 0x7f
#define IEEE80211_ADDR_LEN 6
#define IEEE80211_RATE_VAL 0x7f
#define IEEE80211_SEQ_SEQ_MASK 0xfff0
#define IEEE80211_SEQ_SEQ_SHIFT 4
/* ieee80211_crypto.h */

File diff suppressed because it is too large Load Diff