#define IWINFO_80211_G (1 << 2)
#define IWINFO_80211_N (1 << 3)
#define IWINFO_80211_AC (1 << 4)
+#define IWINFO_80211_AD (1 << 5)
#define IWINFO_CIPHER_NONE (1 << 0)
#define IWINFO_CIPHER_WEP40 (1 << 1)
#define IWINFO_AUTH_SHARED (1 << 1)
#define IWINFO_AUTH_COUNT 2
+#define IWINFO_FREQ_NO_10MHZ (1 << 0)
+#define IWINFO_FREQ_NO_20MHZ (1 << 1)
+#define IWINFO_FREQ_NO_HT40PLUS (1 << 2)
+#define IWINFO_FREQ_NO_HT40MINUS (1 << 3)
+#define IWINFO_FREQ_NO_80MHZ (1 << 4)
+#define IWINFO_FREQ_NO_160MHZ (1 << 5)
+#define IWINFO_FREQ_NO_2160MHZ (1 << 6)
+
extern const char *IWINFO_CIPHER_NAMES[IWINFO_CIPHER_COUNT];
extern const char *IWINFO_KMGMT_NAMES[IWINFO_KMGMT_COUNT];
extern const char *IWINFO_AUTH_NAMES[IWINFO_AUTH_COUNT];
int8_t mcs;
uint8_t is_40mhz:1;
uint8_t is_short_gi:1;
+ uint8_t is_ht:1;
+ uint8_t is_vht:1;
+ uint8_t mhz;
+ uint8_t nss;
};
struct iwinfo_assoclist_entry {
uint8_t mac[6];
int8_t signal;
+ int8_t signal_avg;
int8_t noise;
uint32_t inactive;
+ uint32_t connected_time;
uint32_t rx_packets;
uint32_t tx_packets;
+ uint64_t rx_drop_misc;
struct iwinfo_rate_entry rx_rate;
struct iwinfo_rate_entry tx_rate;
uint32_t rx_bytes;
uint8_t is_wme:1;
uint8_t is_mfp:1;
uint8_t is_tdls:1;
+ uint32_t thr;
+ uint16_t llid;
+ uint16_t plid;
+ char plink_state[16];
+ char local_ps[16];
+ char peer_ps[16];
+ char nonpeer_ps[16];
+};
+
+struct iwinfo_survey_entry {
+ uint64_t active_time;
+ uint64_t busy_time;
+ uint64_t busy_time_ext;
+ uint64_t rxtime;
+ uint64_t txtime;
+ uint32_t mhz;
+ uint8_t noise;
};
struct iwinfo_txpwrlist_entry {
uint8_t channel;
uint32_t mhz;
uint8_t restricted;
+ uint32_t flags;
};
struct iwinfo_crypto_entry {
int (*scanlist)(const char *, char *, int *);
int (*freqlist)(const char *, char *, int *);
int (*countrylist)(const char *, char *, int *);
+ int (*survey)(const char *, char *, int *);
int (*lookup_phy)(const char *, char *);
void (*close)(void);
};