diff --git a/System/Linux/Netlink/GeNetlink/NL80211.hs b/System/Linux/Netlink/GeNetlink/NL80211.hs
--- a/System/Linux/Netlink/GeNetlink/NL80211.hs
+++ b/System/Linux/Netlink/GeNetlink/NL80211.hs
@@ -14,7 +14,6 @@
 module System.Linux.Netlink.GeNetlink.NL80211
   ( NL80211Socket
   , NL80211Packet
-  , getWifiEIDs
 
   , makeNL80211Socket
   , joinMulticastByName
@@ -35,12 +34,11 @@
 import Control.Applicative ((<$>))
 #endif
 
-import Control.Monad.Loops (whileM)
 import Data.Bits ((.|.))
 import Data.ByteString.Char8 (unpack)
 import Data.List (intercalate)
 import Data.Maybe (mapMaybe)
-import Data.Serialize.Get (runGet, getByteString, getWord8 ,getWord32host, isEmpty, Get)
+import Data.Serialize.Get (runGet, getWord32host)
 import Data.Serialize.Put (runPut, putWord32host)
 import Data.Word (Word32, Word16, Word8)
 
@@ -56,6 +54,8 @@
 import System.Linux.Netlink.GeNetlink.Control hiding (getMulticastGroups)
 import qualified System.Linux.Netlink.GeNetlink.Control as C
 import System.Linux.Netlink.GeNetlink.NL80211.Constants
+import System.Linux.Netlink.GeNetlink.NL80211.StaInfo
+import System.Linux.Netlink.GeNetlink.NL80211.WifiEI
 import System.Linux.Netlink hiding (makeSocket, queryOne, query, recvOne, getPacket)
 import qualified System.Linux.Netlink as I (queryOne, query, recvOne)
 
@@ -93,13 +93,8 @@
 
 showStaInfo :: ByteString -> String
 showStaInfo bs = let attrs = getRight $ runGet getAttributes bs in
-  "NL80211_ATTR_STA_INFO: " ++ show (BS.length bs) ++ "\n" ++
-  (indent $showAttrs showNl80211StaInfo attrs)
-
-showWifiEid :: ByteString -> String
-showWifiEid bs = let attrs = getRight $ runGet getWifiEIDs bs in
-  "WifiEIDs:\n" ++
-  (indent $showAttrs showIEEE80211EID attrs)
+    "NL80211_ATTR_STA_INFO: " ++ show (BS.length bs) ++ "\n" ++
+    (indent . show . staInfoFromAttributes $ attrs)
 
 showAttrBss :: ByteString -> String
 showAttrBss bs = let attrs = getRight $ runGet getAttributes bs in
@@ -116,18 +111,6 @@
 getFd :: NL80211Socket -> Fd
 getFd (NLS s _) = getNetlinkFd s
 
--- |'Get' the EID Attributes from a buffer
-getWifiEIDs :: Get Attributes
-getWifiEIDs = M.fromList <$> whileM (not <$> isEmpty) getWifiEID
-
--- |'Get' an EID attribute from a buffer
-getWifiEID :: Get (Int, ByteString)
-getWifiEID = do
-  ty  <- fromIntegral <$> getWord8
-  len <- fromIntegral <$> getWord8
-  val <- getByteString len
-  return (ty, val)
-
 getRight :: Show a => Either a b -> b
 getRight (Right x) = x
 getRight (Left err) = error $show err
@@ -240,8 +223,7 @@
 
 -- |Get the EID attributes from a 'NL80211Packet' (for example from 'getConnectedWifi'
 getWifiAttributes :: NL80211Packet -> Maybe Attributes
-getWifiAttributes (Packet _ _ attrs) =
-  getRight <$> runGet getWifiEIDs <$> eids
+getWifiAttributes (Packet _ _ attrs) = getRight <$> runGet getWifiEIDs <$> eids
   where bssattrs = getRight . runGet getAttributes <$> M.lookup eNL80211_ATTR_BSS attrs
         eids = M.lookup eNL80211_BSS_INFORMATION_ELEMENTS =<< bssattrs
 getWifiAttributes x@(ErrorMsg{}) = error ("Something stupid happened" ++ show x)
diff --git a/System/Linux/Netlink/GeNetlink/NL80211/Constants.hs b/System/Linux/Netlink/GeNetlink/NL80211/Constants.hs
--- a/System/Linux/Netlink/GeNetlink/NL80211/Constants.hs
+++ b/System/Linux/Netlink/GeNetlink/NL80211/Constants.hs
@@ -1,6 +1,6 @@
 {-# OPTIONS_HADDOCK hide, prune, ignore-exports #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
-module System.Linux.Netlink.GeNetlink.NL80211.Constants (NL80211Commands, showNL80211Commands, eNL80211_CMD_UNSPEC, eNL80211_CMD_GET_WIPHY, eNL80211_CMD_SET_WIPHY, eNL80211_CMD_NEW_WIPHY, eNL80211_CMD_DEL_WIPHY, eNL80211_CMD_GET_INTERFACE, eNL80211_CMD_SET_INTERFACE, eNL80211_CMD_NEW_INTERFACE, eNL80211_CMD_DEL_INTERFACE, eNL80211_CMD_GET_KEY, eNL80211_CMD_SET_KEY, eNL80211_CMD_NEW_KEY, eNL80211_CMD_DEL_KEY, eNL80211_CMD_GET_BEACON, eNL80211_CMD_SET_BEACON, eNL80211_CMD_NEW_BEACON, eNL80211_CMD_START_AP, eNL80211_CMD_DEL_BEACON, eNL80211_CMD_STOP_AP, eNL80211_CMD_GET_STATION, eNL80211_CMD_SET_STATION, eNL80211_CMD_NEW_STATION, eNL80211_CMD_DEL_STATION, eNL80211_CMD_GET_MPATH, eNL80211_CMD_SET_MPATH, eNL80211_CMD_NEW_MPATH, eNL80211_CMD_DEL_MPATH, eNL80211_CMD_SET_BSS, eNL80211_CMD_SET_REG, eNL80211_CMD_REQ_SET_REG, eNL80211_CMD_GET_MESH_CONFIG, eNL80211_CMD_SET_MESH_CONFIG, eNL80211_CMD_SET_MGMT_EXTRA_IE, eNL80211_CMD_GET_REG, eNL80211_CMD_GET_SCAN, eNL80211_CMD_TRIGGER_SCAN, eNL80211_CMD_NEW_SCAN_RESULTS, eNL80211_CMD_SCAN_ABORTED, eNL80211_CMD_REG_CHANGE, eNL80211_CMD_AUTHENTICATE, eNL80211_CMD_ASSOCIATE, eNL80211_CMD_DEAUTHENTICATE, eNL80211_CMD_DISASSOCIATE, eNL80211_CMD_MICHAEL_MIC_FAILURE, eNL80211_CMD_REG_BEACON_HINT, eNL80211_CMD_JOIN_IBSS, eNL80211_CMD_LEAVE_IBSS, eNL80211_CMD_TESTMODE, eNL80211_CMD_CONNECT, eNL80211_CMD_ROAM, eNL80211_CMD_DISCONNECT, eNL80211_CMD_SET_WIPHY_NETNS, eNL80211_CMD_GET_SURVEY, eNL80211_CMD_NEW_SURVEY_RESULTS, eNL80211_CMD_SET_PMKSA, eNL80211_CMD_DEL_PMKSA, eNL80211_CMD_FLUSH_PMKSA, eNL80211_CMD_REMAIN_ON_CHANNEL, eNL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, eNL80211_CMD_SET_TX_BITRATE_MASK, eNL80211_CMD_REGISTER_ACTION, eNL80211_CMD_REGISTER_FRAME, eNL80211_CMD_ACTION, eNL80211_CMD_FRAME, eNL80211_CMD_ACTION_TX_STATUS, eNL80211_CMD_FRAME_TX_STATUS, eNL80211_CMD_SET_POWER_SAVE, eNL80211_CMD_GET_POWER_SAVE, eNL80211_CMD_SET_CQM, eNL80211_CMD_NOTIFY_CQM, eNL80211_CMD_SET_CHANNEL, eNL80211_CMD_SET_WDS_PEER, eNL80211_CMD_FRAME_WAIT_CANCEL, eNL80211_CMD_JOIN_MESH, eNL80211_CMD_LEAVE_MESH, eNL80211_CMD_UNPROT_DEAUTHENTICATE, eNL80211_CMD_UNPROT_DISASSOCIATE, eNL80211_CMD_NEW_PEER_CANDIDATE, eNL80211_CMD_GET_WOWLAN, eNL80211_CMD_SET_WOWLAN, eNL80211_CMD_START_SCHED_SCAN, eNL80211_CMD_STOP_SCHED_SCAN, eNL80211_CMD_SCHED_SCAN_RESULTS, eNL80211_CMD_SCHED_SCAN_STOPPED, eNL80211_CMD_SET_REKEY_OFFLOAD, eNL80211_CMD_PMKSA_CANDIDATE, eNL80211_CMD_TDLS_OPER, eNL80211_CMD_TDLS_MGMT, eNL80211_CMD_UNEXPECTED_FRAME, eNL80211_CMD_PROBE_CLIENT, eNL80211_CMD_REGISTER_BEACONS, eNL80211_CMD_UNEXPECTED_4ADDR_FRAME, eNL80211_CMD_SET_NOACK_MAP, eNL80211_CMD_CH_SWITCH_NOTIFY, eNL80211_CMD_START_P2P_DEVICE, eNL80211_CMD_STOP_P2P_DEVICE, eNL80211_CMD_CONN_FAILED, eNL80211_CMD_SET_MCAST_RATE, eNL80211_CMD_SET_MAC_ACL, eNL80211_CMD_RADAR_DETECT, eNL80211_CMD_GET_PROTOCOL_FEATURES, eNL80211_CMD_UPDATE_FT_IES, eNL80211_CMD_FT_EVENT, eNL80211_CMD_CRIT_PROTOCOL_START, eNL80211_CMD_CRIT_PROTOCOL_STOP, eNL80211_CMD_GET_COALESCE, eNL80211_CMD_SET_COALESCE, eNL80211_CMD_CHANNEL_SWITCH, eNL80211_CMD_VENDOR, eNL80211_CMD_SET_QOS_MAP, eNL80211_CMD_ADD_TX_TS, eNL80211_CMD_DEL_TX_TS, eNL80211_CMD_GET_MPP, eNL80211_CMD_JOIN_OCB, eNL80211_CMD_LEAVE_OCB, eNL80211_CMD_CH_SWITCH_STARTED_NOTIFY, eNL80211_CMD_TDLS_CHANNEL_SWITCH, eNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, eNL80211_CMD_MAX, eNL80211_CMD_WIPHY_REG_CHANGE, NL80211Attrs, showNL80211Attrs, eNL80211_ATTR_UNSPEC, eNL80211_ATTR_WIPHY, eNL80211_ATTR_WIPHY_NAME, eNL80211_ATTR_IFINDEX, eNL80211_ATTR_IFNAME, eNL80211_ATTR_IFTYPE, eNL80211_ATTR_MAC, eNL80211_ATTR_KEY_DATA, eNL80211_ATTR_KEY_IDX, eNL80211_ATTR_KEY_CIPHER, eNL80211_ATTR_KEY_SEQ, eNL80211_ATTR_KEY_DEFAULT, eNL80211_ATTR_BEACON_INTERVAL, eNL80211_ATTR_DTIM_PERIOD, eNL80211_ATTR_BEACON_HEAD, eNL80211_ATTR_BEACON_TAIL, eNL80211_ATTR_STA_AID, eNL80211_ATTR_STA_FLAGS, eNL80211_ATTR_STA_LISTEN_INTERVAL, eNL80211_ATTR_STA_SUPPORTED_RATES, eNL80211_ATTR_STA_VLAN, eNL80211_ATTR_STA_INFO, eNL80211_ATTR_WIPHY_BANDS, eNL80211_ATTR_MNTR_FLAGS, eNL80211_ATTR_MESH_ID, eNL80211_ATTR_STA_PLINK_ACTION, eNL80211_ATTR_MPATH_NEXT_HOP, eNL80211_ATTR_MPATH_INFO, eNL80211_ATTR_BSS_CTS_PROT, eNL80211_ATTR_BSS_SHORT_PREAMBLE, eNL80211_ATTR_BSS_SHORT_SLOT_TIME, eNL80211_ATTR_HT_CAPABILITY, eNL80211_ATTR_SUPPORTED_IFTYPES, eNL80211_ATTR_REG_ALPHA2, eNL80211_ATTR_REG_RULES, eNL80211_ATTR_MESH_CONFIG, eNL80211_ATTR_BSS_BASIC_RATES, eNL80211_ATTR_WIPHY_TXQ_PARAMS, eNL80211_ATTR_WIPHY_FREQ, eNL80211_ATTR_WIPHY_CHANNEL_TYPE, eNL80211_ATTR_KEY_DEFAULT_MGMT, eNL80211_ATTR_MGMT_SUBTYPE, eNL80211_ATTR_IE, eNL80211_ATTR_MAX_NUM_SCAN_SSIDS, eNL80211_ATTR_SCAN_FREQUENCIES, eNL80211_ATTR_SCAN_SSIDS, eNL80211_ATTR_GENERATION, eNL80211_ATTR_BSS, eNL80211_ATTR_REG_INITIATOR, eNL80211_ATTR_REG_TYPE, eNL80211_ATTR_SUPPORTED_COMMANDS, eNL80211_ATTR_FRAME, eNL80211_ATTR_SSID, eNL80211_ATTR_AUTH_TYPE, eNL80211_ATTR_REASON_CODE, eNL80211_ATTR_KEY_TYPE, eNL80211_ATTR_MAX_SCAN_IE_LEN, eNL80211_ATTR_CIPHER_SUITES, eNL80211_ATTR_FREQ_BEFORE, eNL80211_ATTR_FREQ_AFTER, eNL80211_ATTR_FREQ_FIXED, eNL80211_ATTR_WIPHY_RETRY_SHORT, eNL80211_ATTR_WIPHY_RETRY_LONG, eNL80211_ATTR_WIPHY_FRAG_THRESHOLD, eNL80211_ATTR_WIPHY_RTS_THRESHOLD, eNL80211_ATTR_TIMED_OUT, eNL80211_ATTR_USE_MFP, eNL80211_ATTR_STA_FLAGS2, eNL80211_ATTR_CONTROL_PORT, eNL80211_ATTR_TESTDATA, eNL80211_ATTR_PRIVACY, eNL80211_ATTR_DISCONNECTED_BY_AP, eNL80211_ATTR_STATUS_CODE, eNL80211_ATTR_CIPHER_SUITES_PAIRWISE, eNL80211_ATTR_CIPHER_SUITE_GROUP, eNL80211_ATTR_WPA_VERSIONS, eNL80211_ATTR_AKM_SUITES, eNL80211_ATTR_REQ_IE, eNL80211_ATTR_RESP_IE, eNL80211_ATTR_PREV_BSSID, eNL80211_ATTR_KEY, eNL80211_ATTR_KEYS, eNL80211_ATTR_PID, eNL80211_ATTR_4ADDR, eNL80211_ATTR_SURVEY_INFO, eNL80211_ATTR_PMKID, eNL80211_ATTR_MAX_NUM_PMKIDS, eNL80211_ATTR_DURATION, eNL80211_ATTR_COOKIE, eNL80211_ATTR_WIPHY_COVERAGE_CLASS, eNL80211_ATTR_TX_RATES, eNL80211_ATTR_FRAME_MATCH, eNL80211_ATTR_ACK, eNL80211_ATTR_PS_STATE, eNL80211_ATTR_CQM, eNL80211_ATTR_LOCAL_STATE_CHANGE, eNL80211_ATTR_AP_ISOLATE, eNL80211_ATTR_WIPHY_TX_POWER_SETTING, eNL80211_ATTR_WIPHY_TX_POWER_LEVEL, eNL80211_ATTR_TX_FRAME_TYPES, eNL80211_ATTR_RX_FRAME_TYPES, eNL80211_ATTR_FRAME_TYPE, eNL80211_ATTR_CONTROL_PORT_ETHERTYPE, eNL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, eNL80211_ATTR_SUPPORT_IBSS_RSN, eNL80211_ATTR_WIPHY_ANTENNA_TX, eNL80211_ATTR_WIPHY_ANTENNA_RX, eNL80211_ATTR_MCAST_RATE, eNL80211_ATTR_OFFCHANNEL_TX_OK, eNL80211_ATTR_BSS_HT_OPMODE, eNL80211_ATTR_KEY_DEFAULT_TYPES, eNL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION, eNL80211_ATTR_MESH_SETUP, eNL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX, eNL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX, eNL80211_ATTR_SUPPORT_MESH_AUTH, eNL80211_ATTR_STA_PLINK_STATE, eNL80211_ATTR_WOWLAN_TRIGGERS, eNL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, eNL80211_ATTR_SCHED_SCAN_INTERVAL, eNL80211_ATTR_INTERFACE_COMBINATIONS, eNL80211_ATTR_SOFTWARE_IFTYPES, eNL80211_ATTR_REKEY_DATA, eNL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS, eNL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, eNL80211_ATTR_SCAN_SUPP_RATES, eNL80211_ATTR_HIDDEN_SSID, eNL80211_ATTR_IE_PROBE_RESP, eNL80211_ATTR_IE_ASSOC_RESP, eNL80211_ATTR_STA_WME, eNL80211_ATTR_SUPPORT_AP_UAPSD, eNL80211_ATTR_ROAM_SUPPORT, eNL80211_ATTR_SCHED_SCAN_MATCH, eNL80211_ATTR_MAX_MATCH_SETS, eNL80211_ATTR_PMKSA_CANDIDATE, eNL80211_ATTR_TX_NO_CCK_RATE, eNL80211_ATTR_TDLS_ACTION, eNL80211_ATTR_TDLS_DIALOG_TOKEN, eNL80211_ATTR_TDLS_OPERATION, eNL80211_ATTR_TDLS_SUPPORT, eNL80211_ATTR_TDLS_EXTERNAL_SETUP, eNL80211_ATTR_DEVICE_AP_SME, eNL80211_ATTR_DONT_WAIT_FOR_ACK, eNL80211_ATTR_FEATURE_FLAGS, eNL80211_ATTR_PROBE_RESP_OFFLOAD, eNL80211_ATTR_PROBE_RESP, eNL80211_ATTR_DFS_REGION, eNL80211_ATTR_DISABLE_HT, eNL80211_ATTR_HT_CAPABILITY_MASK, eNL80211_ATTR_NOACK_MAP, eNL80211_ATTR_INACTIVITY_TIMEOUT, eNL80211_ATTR_RX_SIGNAL_DBM, eNL80211_ATTR_BG_SCAN_PERIOD, eNL80211_ATTR_WDEV, eNL80211_ATTR_USER_REG_HINT_TYPE, eNL80211_ATTR_CONN_FAILED_REASON, eNL80211_ATTR_SAE_DATA, eNL80211_ATTR_VHT_CAPABILITY, eNL80211_ATTR_SCAN_FLAGS, eNL80211_ATTR_CHANNEL_WIDTH, eNL80211_ATTR_CENTER_FREQ1, eNL80211_ATTR_CENTER_FREQ2, eNL80211_ATTR_P2P_CTWINDOW, eNL80211_ATTR_P2P_OPPPS, eNL80211_ATTR_LOCAL_MESH_POWER_MODE, eNL80211_ATTR_ACL_POLICY, eNL80211_ATTR_MAC_ADDRS, eNL80211_ATTR_MAC_ACL_MAX, eNL80211_ATTR_RADAR_EVENT, eNL80211_ATTR_EXT_CAPA, eNL80211_ATTR_EXT_CAPA_MASK, eNL80211_ATTR_STA_CAPABILITY, eNL80211_ATTR_STA_EXT_CAPABILITY, eNL80211_ATTR_PROTOCOL_FEATURES, eNL80211_ATTR_SPLIT_WIPHY_DUMP, eNL80211_ATTR_DISABLE_VHT, eNL80211_ATTR_VHT_CAPABILITY_MASK, eNL80211_ATTR_MDID, eNL80211_ATTR_IE_RIC, eNL80211_ATTR_CRIT_PROT_ID, eNL80211_ATTR_MAX_CRIT_PROT_DURATION, eNL80211_ATTR_PEER_AID, eNL80211_ATTR_COALESCE_RULE, eNL80211_ATTR_CH_SWITCH_COUNT, eNL80211_ATTR_CH_SWITCH_BLOCK_TX, eNL80211_ATTR_CSA_IES, eNL80211_ATTR_CSA_C_OFF_BEACON, eNL80211_ATTR_CSA_C_OFF_PRESP, eNL80211_ATTR_RXMGMT_FLAGS, eNL80211_ATTR_STA_SUPPORTED_CHANNELS, eNL80211_ATTR_STA_SUPPORTED_OPER_CLASSES, eNL80211_ATTR_HANDLE_DFS, eNL80211_ATTR_SUPPORT_5_MHZ, eNL80211_ATTR_SUPPORT_10_MHZ, eNL80211_ATTR_OPMODE_NOTIF, eNL80211_ATTR_VENDOR_ID, eNL80211_ATTR_VENDOR_SUBCMD, eNL80211_ATTR_VENDOR_DATA, eNL80211_ATTR_VENDOR_EVENTS, eNL80211_ATTR_QOS_MAP, eNL80211_ATTR_MAC_HINT, eNL80211_ATTR_WIPHY_FREQ_HINT, eNL80211_ATTR_MAX_AP_ASSOC_STA, eNL80211_ATTR_TDLS_PEER_CAPABILITY, eNL80211_ATTR_SOCKET_OWNER, eNL80211_ATTR_CSA_C_OFFSETS_TX, eNL80211_ATTR_MAX_CSA_COUNTERS, eNL80211_ATTR_TDLS_INITIATOR, eNL80211_ATTR_USE_RRM, eNL80211_ATTR_WIPHY_DYN_ACK, eNL80211_ATTR_TSID, eNL80211_ATTR_USER_PRIO, eNL80211_ATTR_ADMITTED_TIME, eNL80211_ATTR_SMPS_MODE, eNL80211_ATTR_OPER_CLASS, eNL80211_ATTR_MAC_MASK, eNL80211_ATTR_WIPHY_SELF_MANAGED_REG, eNL80211_ATTR_EXT_FEATURES, eNL80211_ATTR_SURVEY_RADIO_STATS, eNL80211_ATTR_NETNS_FD, eNL80211_ATTR_SCHED_SCAN_DELAY, eNL80211_ATTR_REG_INDOOR, eNL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS, eNL80211_ATTR_MAX_SCAN_PLAN_INTERVAL, eNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS, eNL80211_ATTR_MAX, eNL80211_ATTR_SCHED_SCAN_PLANS, eNUM_NL80211_ATTR, NL80211Bss, showNL80211Bss, eNL80211_BSS_BSSID, eNL80211_BSS_FREQUENCY, eNL80211_BSS_TSF, eNL80211_BSS_BEACON_INTERVAL, eNL80211_BSS_CAPABILITY, eNL80211_BSS_INFORMATION_ELEMENTS, eNL80211_BSS_SIGNAL_MBM, eNL80211_BSS_SIGNAL_UNSPEC, eNL80211_BSS_STATUS, eNL80211_BSS_SEEN_MS_AGO, eNL80211_BSS_BEACON_IES, eNL80211_BSS_CHAN_WIDTH, eNL80211_BSS_BEACON_TSF, eNL80211_BSS_PRESP_DATA, eNL80211_BSS_LAST_SEEN_BOOTTIME, eNL80211_BSS_MAX, Nl80211StaInfo, showNl80211StaInfo, eNL80211_STA_INFO_INACTIVE_TIME, eNL80211_STA_INFO_RX_BYTES, eNL80211_STA_INFO_TX_BYTES, eNL80211_STA_INFO_LLID, eNL80211_STA_INFO_PLID, eNL80211_STA_INFO_PLINK_STATE, eNL80211_STA_INFO_SIGNAL, eNL80211_STA_INFO_TX_BITRATE, eNL80211_STA_INFO_RX_PACKETS, eNL80211_STA_INFO_TX_PACKETS, eNL80211_STA_INFO_TX_RETRIES, eNL80211_STA_INFO_TX_FAILED, eNL80211_STA_INFO_SIGNAL_AVG, eNL80211_STA_INFO_RX_BITRATE, eNL80211_STA_INFO_BSS_PARAM, eNL80211_STA_INFO_CONNECTED_TIME, eNL80211_STA_INFO_STA_FLAGS, eNL80211_STA_INFO_BEACON_LOSS, eNL80211_STA_INFO_T_OFFSET, eNL80211_STA_INFO_LOCAL_PM, eNL80211_STA_INFO_PEER_PM, eNL80211_STA_INFO_NONPEER_PM, eNL80211_STA_INFO_RX_BYTES64, eNL80211_STA_INFO_TX_BYTES64, eNL80211_STA_INFO_CHAIN_SIGNAL, eNL80211_STA_INFO_CHAIN_SIGNAL_AVG, eNL80211_STA_INFO_EXPECTED_THROUGHPUT, eNL80211_STA_INFO_RX_DROP_MISC, eNL80211_STA_INFO_BEACON_RX, eNL80211_STA_INFO_BEACON_SIGNAL_AVG, eNL80211_STA_INFO_MAX, eNL80211_STA_INFO_TID_STATS, IEEE80211EID, showIEEE80211EID, eWLAN_EID_SSID, eWLAN_EID_SUPP_RATES, eWLAN_EID_FH_PARAMS, eWLAN_EID_DS_PARAMS, eWLAN_EID_CF_PARAMS, eWLAN_EID_TIM, eWLAN_EID_IBSS_PARAMS, eWLAN_EID_COUNTRY, eWLAN_EID_REQUEST, eWLAN_EID_QBSS_LOAD, eWLAN_EID_EDCA_PARAM_SET, eWLAN_EID_TSPEC, eWLAN_EID_TCLAS, eWLAN_EID_SCHEDULE, eWLAN_EID_CHALLENGE, eWLAN_EID_PWR_CONSTRAINT, eWLAN_EID_PWR_CAPABILITY, eWLAN_EID_TPC_REQUEST, eWLAN_EID_TPC_REPORT, eWLAN_EID_SUPPORTED_CHANNELS, eWLAN_EID_CHANNEL_SWITCH, eWLAN_EID_MEASURE_REQUEST, eWLAN_EID_MEASURE_REPORT, eWLAN_EID_QUIET, eWLAN_EID_IBSS_DFS, eWLAN_EID_ERP_INFO, eWLAN_EID_TS_DELAY, eWLAN_EID_TCLAS_PROCESSING, eWLAN_EID_HT_CAPABILITY, eWLAN_EID_QOS_CAPA, eWLAN_EID_RSN, eWLAN_EID_802_15_COEX, eWLAN_EID_EXT_SUPP_RATES, eWLAN_EID_AP_CHAN_REPORT, eWLAN_EID_NEIGHBOR_REPORT, eWLAN_EID_RCPI, eWLAN_EID_MOBILITY_DOMAIN, eWLAN_EID_FAST_BSS_TRANSITION, eWLAN_EID_TIMEOUT_INTERVAL, eWLAN_EID_RIC_DATA, eWLAN_EID_DSE_REGISTERED_LOCATION, eWLAN_EID_SUPPORTED_REGULATORY_CLASSES, eWLAN_EID_EXT_CHANSWITCH_ANN, eWLAN_EID_HT_OPERATION, eWLAN_EID_SECONDARY_CHANNEL_OFFSET, eWLAN_EID_BSS_AVG_ACCESS_DELAY, eWLAN_EID_ANTENNA_INFO, eWLAN_EID_RSNI, eWLAN_EID_MEASUREMENT_PILOT_TX_INFO, eWLAN_EID_BSS_AVAILABLE_CAPACITY, eWLAN_EID_BSS_AC_ACCESS_DELAY, eWLAN_EID_TIME_ADVERTISEMENT, eWLAN_EID_RRM_ENABLED_CAPABILITIES, eWLAN_EID_MULTIPLE_BSSID, eWLAN_EID_BSS_COEX_2040, eWLAN_EID_BSS_INTOLERANT_CHL_REPORT, eWLAN_EID_OVERLAP_BSS_SCAN_PARAM, eWLAN_EID_RIC_DESCRIPTOR, eWLAN_EID_MMIE, eWLAN_EID_ASSOC_COMEBACK_TIME, eWLAN_EID_EVENT_REQUEST, eWLAN_EID_EVENT_REPORT, eWLAN_EID_DIAGNOSTIC_REQUEST, eWLAN_EID_DIAGNOSTIC_REPORT, eWLAN_EID_LOCATION_PARAMS, eWLAN_EID_NON_TX_BSSID_CAP, eWLAN_EID_SSID_LIST, eWLAN_EID_MULTI_BSSID_IDX, eWLAN_EID_FMS_DESCRIPTOR, eWLAN_EID_FMS_REQUEST, eWLAN_EID_FMS_RESPONSE, eWLAN_EID_QOS_TRAFFIC_CAPA, eWLAN_EID_BSS_MAX_IDLE_PERIOD, eWLAN_EID_TSF_REQUEST, eWLAN_EID_TSF_RESPOSNE, eWLAN_EID_WNM_SLEEP_MODE, eWLAN_EID_TIM_BCAST_REQ, eWLAN_EID_TIM_BCAST_RESP, eWLAN_EID_COLL_IF_REPORT, eWLAN_EID_CHANNEL_USAGE, eWLAN_EID_TIME_ZONE, eWLAN_EID_DMS_REQUEST, eWLAN_EID_DMS_RESPONSE, eWLAN_EID_LINK_ID, eWLAN_EID_WAKEUP_SCHEDUL, eWLAN_EID_CHAN_SWITCH_TIMING, eWLAN_EID_PTI_CONTROL, eWLAN_EID_PU_BUFFER_STATUS, eWLAN_EID_INTERWORKING, eWLAN_EID_ADVERTISEMENT_PROTOCOL, eWLAN_EID_EXPEDITED_BW_REQ, eWLAN_EID_QOS_MAP_SET, eWLAN_EID_ROAMING_CONSORTIUM, eWLAN_EID_EMERGENCY_ALERT, eWLAN_EID_MESH_CONFIG, eWLAN_EID_MESH_ID, eWLAN_EID_LINK_METRIC_REPORT, eWLAN_EID_CONGESTION_NOTIFICATION, eWLAN_EID_PEER_MGMT, eWLAN_EID_CHAN_SWITCH_PARAM, eWLAN_EID_MESH_AWAKE_WINDOW, eWLAN_EID_BEACON_TIMING, eWLAN_EID_MCCAOP_SETUP_REQ, eWLAN_EID_MCCAOP_SETUP_RESP, eWLAN_EID_MCCAOP_ADVERT, eWLAN_EID_MCCAOP_TEARDOWN, eWLAN_EID_GANN, eWLAN_EID_RANN, eWLAN_EID_EXT_CAPABILITY, eWLAN_EID_PREQ, eWLAN_EID_PREP, eWLAN_EID_PERR, eWLAN_EID_PXU, eWLAN_EID_PXUC, eWLAN_EID_AUTH_MESH_PEER_EXCH, eWLAN_EID_MIC, eWLAN_EID_DESTINATION_URI, eWLAN_EID_UAPSD_COEX, eWLAN_EID_WAKEUP_SCHEDULE, eWLAN_EID_EXT_SCHEDULE, eWLAN_EID_STA_AVAILABILITY, eWLAN_EID_DMG_TSPEC, eWLAN_EID_DMG_AT, eWLAN_EID_DMG_CAP, eWLAN_EID_CISCO_VENDOR_SPECIFIC, eWLAN_EID_DMG_OPERATION, eWLAN_EID_DMG_BSS_PARAM_CHANGE, eWLAN_EID_DMG_BEAM_REFINEMENT, eWLAN_EID_CHANNEL_MEASURE_FEEDBACK, eWLAN_EID_AWAKE_WINDOW, eWLAN_EID_MULTI_BAND, eWLAN_EID_ADDBA_EXT, eWLAN_EID_NEXT_PCP_LIST, eWLAN_EID_PCP_HANDOVER, eWLAN_EID_DMG_LINK_MARGIN, eWLAN_EID_SWITCHING_STREAM, eWLAN_EID_SESSION_TRANSITION, eWLAN_EID_DYN_TONE_PAIRING_REPORT, eWLAN_EID_CLUSTER_REPORT, eWLAN_EID_RELAY_CAP, eWLAN_EID_RELAY_XFER_PARAM_SET, eWLAN_EID_BEAM_LINK_MAINT, eWLAN_EID_MULTIPLE_MAC_ADDR, eWLAN_EID_U_PID, eWLAN_EID_DMG_LINK_ADAPT_ACK, eWLAN_EID_MCCAOP_ADV_OVERVIEW, eWLAN_EID_QUIET_PERIOD_REQ, eWLAN_EID_QUIET_PERIOD_RESP, eWLAN_EID_EPAC_POLICY, eWLAN_EID_CLISTER_TIME_OFF, eWLAN_EID_INTER_AC_PRIO, eWLAN_EID_SCS_DESCRIPTOR, eWLAN_EID_QLOAD_REPORT, eWLAN_EID_HCCA_TXOP_UPDATE_COUNT, eWLAN_EID_HL_STREAM_ID, eWLAN_EID_GCR_GROUP_ADDR, eWLAN_EID_ANTENNA_SECTOR_ID_PATTERN, eWLAN_EID_VHT_CAPABILITY, eWLAN_EID_VHT_OPERATION, eWLAN_EID_EXTENDED_BSS_LOAD, eWLAN_EID_WIDE_BW_CHANNEL_SWITCH, eWLAN_EID_VHT_TX_POWER_ENVELOPE, eWLAN_EID_CHANNEL_SWITCH_WRAPPER, eWLAN_EID_AID, eWLAN_EID_QUIET_CHANNEL, eWLAN_EID_OPMODE_NOTIF, eWLAN_EID_VENDOR_SPECIFIC, eWLAN_EID_QOS_PARAMETER) where
+module System.Linux.Netlink.GeNetlink.NL80211.Constants (NL80211Commands, showNL80211Commands, eNL80211_CMD_UNSPEC, eNL80211_CMD_GET_WIPHY, eNL80211_CMD_SET_WIPHY, eNL80211_CMD_NEW_WIPHY, eNL80211_CMD_DEL_WIPHY, eNL80211_CMD_GET_INTERFACE, eNL80211_CMD_SET_INTERFACE, eNL80211_CMD_NEW_INTERFACE, eNL80211_CMD_DEL_INTERFACE, eNL80211_CMD_GET_KEY, eNL80211_CMD_SET_KEY, eNL80211_CMD_NEW_KEY, eNL80211_CMD_DEL_KEY, eNL80211_CMD_GET_BEACON, eNL80211_CMD_SET_BEACON, eNL80211_CMD_NEW_BEACON, eNL80211_CMD_START_AP, eNL80211_CMD_DEL_BEACON, eNL80211_CMD_STOP_AP, eNL80211_CMD_GET_STATION, eNL80211_CMD_SET_STATION, eNL80211_CMD_NEW_STATION, eNL80211_CMD_DEL_STATION, eNL80211_CMD_GET_MPATH, eNL80211_CMD_SET_MPATH, eNL80211_CMD_NEW_MPATH, eNL80211_CMD_DEL_MPATH, eNL80211_CMD_SET_BSS, eNL80211_CMD_SET_REG, eNL80211_CMD_REQ_SET_REG, eNL80211_CMD_GET_MESH_CONFIG, eNL80211_CMD_SET_MESH_CONFIG, eNL80211_CMD_SET_MGMT_EXTRA_IE, eNL80211_CMD_GET_REG, eNL80211_CMD_GET_SCAN, eNL80211_CMD_TRIGGER_SCAN, eNL80211_CMD_NEW_SCAN_RESULTS, eNL80211_CMD_SCAN_ABORTED, eNL80211_CMD_REG_CHANGE, eNL80211_CMD_AUTHENTICATE, eNL80211_CMD_ASSOCIATE, eNL80211_CMD_DEAUTHENTICATE, eNL80211_CMD_DISASSOCIATE, eNL80211_CMD_MICHAEL_MIC_FAILURE, eNL80211_CMD_REG_BEACON_HINT, eNL80211_CMD_JOIN_IBSS, eNL80211_CMD_LEAVE_IBSS, eNL80211_CMD_TESTMODE, eNL80211_CMD_CONNECT, eNL80211_CMD_ROAM, eNL80211_CMD_DISCONNECT, eNL80211_CMD_SET_WIPHY_NETNS, eNL80211_CMD_GET_SURVEY, eNL80211_CMD_NEW_SURVEY_RESULTS, eNL80211_CMD_SET_PMKSA, eNL80211_CMD_DEL_PMKSA, eNL80211_CMD_FLUSH_PMKSA, eNL80211_CMD_REMAIN_ON_CHANNEL, eNL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, eNL80211_CMD_SET_TX_BITRATE_MASK, eNL80211_CMD_REGISTER_ACTION, eNL80211_CMD_REGISTER_FRAME, eNL80211_CMD_ACTION, eNL80211_CMD_FRAME, eNL80211_CMD_ACTION_TX_STATUS, eNL80211_CMD_FRAME_TX_STATUS, eNL80211_CMD_SET_POWER_SAVE, eNL80211_CMD_GET_POWER_SAVE, eNL80211_CMD_SET_CQM, eNL80211_CMD_NOTIFY_CQM, eNL80211_CMD_SET_CHANNEL, eNL80211_CMD_SET_WDS_PEER, eNL80211_CMD_FRAME_WAIT_CANCEL, eNL80211_CMD_JOIN_MESH, eNL80211_CMD_LEAVE_MESH, eNL80211_CMD_UNPROT_DEAUTHENTICATE, eNL80211_CMD_UNPROT_DISASSOCIATE, eNL80211_CMD_NEW_PEER_CANDIDATE, eNL80211_CMD_GET_WOWLAN, eNL80211_CMD_SET_WOWLAN, eNL80211_CMD_START_SCHED_SCAN, eNL80211_CMD_STOP_SCHED_SCAN, eNL80211_CMD_SCHED_SCAN_RESULTS, eNL80211_CMD_SCHED_SCAN_STOPPED, eNL80211_CMD_SET_REKEY_OFFLOAD, eNL80211_CMD_PMKSA_CANDIDATE, eNL80211_CMD_TDLS_OPER, eNL80211_CMD_TDLS_MGMT, eNL80211_CMD_UNEXPECTED_FRAME, eNL80211_CMD_PROBE_CLIENT, eNL80211_CMD_REGISTER_BEACONS, eNL80211_CMD_UNEXPECTED_4ADDR_FRAME, eNL80211_CMD_SET_NOACK_MAP, eNL80211_CMD_CH_SWITCH_NOTIFY, eNL80211_CMD_START_P2P_DEVICE, eNL80211_CMD_STOP_P2P_DEVICE, eNL80211_CMD_CONN_FAILED, eNL80211_CMD_SET_MCAST_RATE, eNL80211_CMD_SET_MAC_ACL, eNL80211_CMD_RADAR_DETECT, eNL80211_CMD_GET_PROTOCOL_FEATURES, eNL80211_CMD_UPDATE_FT_IES, eNL80211_CMD_FT_EVENT, eNL80211_CMD_CRIT_PROTOCOL_START, eNL80211_CMD_CRIT_PROTOCOL_STOP, eNL80211_CMD_GET_COALESCE, eNL80211_CMD_SET_COALESCE, eNL80211_CMD_CHANNEL_SWITCH, eNL80211_CMD_VENDOR, eNL80211_CMD_SET_QOS_MAP, eNL80211_CMD_ADD_TX_TS, eNL80211_CMD_DEL_TX_TS, eNL80211_CMD_GET_MPP, eNL80211_CMD_JOIN_OCB, eNL80211_CMD_LEAVE_OCB, eNL80211_CMD_CH_SWITCH_STARTED_NOTIFY, eNL80211_CMD_TDLS_CHANNEL_SWITCH, eNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, eNL80211_CMD_WIPHY_REG_CHANGE, eNL80211_CMD_ABORT_SCAN, eNL80211_CMD_MAX, NL80211Attrs, showNL80211Attrs, eNL80211_ATTR_UNSPEC, eNL80211_ATTR_WIPHY, eNL80211_ATTR_WIPHY_NAME, eNL80211_ATTR_IFINDEX, eNL80211_ATTR_IFNAME, eNL80211_ATTR_IFTYPE, eNL80211_ATTR_MAC, eNL80211_ATTR_KEY_DATA, eNL80211_ATTR_KEY_IDX, eNL80211_ATTR_KEY_CIPHER, eNL80211_ATTR_KEY_SEQ, eNL80211_ATTR_KEY_DEFAULT, eNL80211_ATTR_BEACON_INTERVAL, eNL80211_ATTR_DTIM_PERIOD, eNL80211_ATTR_BEACON_HEAD, eNL80211_ATTR_BEACON_TAIL, eNL80211_ATTR_STA_AID, eNL80211_ATTR_STA_FLAGS, eNL80211_ATTR_STA_LISTEN_INTERVAL, eNL80211_ATTR_STA_SUPPORTED_RATES, eNL80211_ATTR_STA_VLAN, eNL80211_ATTR_STA_INFO, eNL80211_ATTR_WIPHY_BANDS, eNL80211_ATTR_MNTR_FLAGS, eNL80211_ATTR_MESH_ID, eNL80211_ATTR_STA_PLINK_ACTION, eNL80211_ATTR_MPATH_NEXT_HOP, eNL80211_ATTR_MPATH_INFO, eNL80211_ATTR_BSS_CTS_PROT, eNL80211_ATTR_BSS_SHORT_PREAMBLE, eNL80211_ATTR_BSS_SHORT_SLOT_TIME, eNL80211_ATTR_HT_CAPABILITY, eNL80211_ATTR_SUPPORTED_IFTYPES, eNL80211_ATTR_REG_ALPHA2, eNL80211_ATTR_REG_RULES, eNL80211_ATTR_MESH_CONFIG, eNL80211_ATTR_BSS_BASIC_RATES, eNL80211_ATTR_WIPHY_TXQ_PARAMS, eNL80211_ATTR_WIPHY_FREQ, eNL80211_ATTR_WIPHY_CHANNEL_TYPE, eNL80211_ATTR_KEY_DEFAULT_MGMT, eNL80211_ATTR_MGMT_SUBTYPE, eNL80211_ATTR_IE, eNL80211_ATTR_MAX_NUM_SCAN_SSIDS, eNL80211_ATTR_SCAN_FREQUENCIES, eNL80211_ATTR_SCAN_SSIDS, eNL80211_ATTR_GENERATION, eNL80211_ATTR_BSS, eNL80211_ATTR_REG_INITIATOR, eNL80211_ATTR_REG_TYPE, eNL80211_ATTR_SUPPORTED_COMMANDS, eNL80211_ATTR_FRAME, eNL80211_ATTR_SSID, eNL80211_ATTR_AUTH_TYPE, eNL80211_ATTR_REASON_CODE, eNL80211_ATTR_KEY_TYPE, eNL80211_ATTR_MAX_SCAN_IE_LEN, eNL80211_ATTR_CIPHER_SUITES, eNL80211_ATTR_FREQ_BEFORE, eNL80211_ATTR_FREQ_AFTER, eNL80211_ATTR_FREQ_FIXED, eNL80211_ATTR_WIPHY_RETRY_SHORT, eNL80211_ATTR_WIPHY_RETRY_LONG, eNL80211_ATTR_WIPHY_FRAG_THRESHOLD, eNL80211_ATTR_WIPHY_RTS_THRESHOLD, eNL80211_ATTR_TIMED_OUT, eNL80211_ATTR_USE_MFP, eNL80211_ATTR_STA_FLAGS2, eNL80211_ATTR_CONTROL_PORT, eNL80211_ATTR_TESTDATA, eNL80211_ATTR_PRIVACY, eNL80211_ATTR_DISCONNECTED_BY_AP, eNL80211_ATTR_STATUS_CODE, eNL80211_ATTR_CIPHER_SUITES_PAIRWISE, eNL80211_ATTR_CIPHER_SUITE_GROUP, eNL80211_ATTR_WPA_VERSIONS, eNL80211_ATTR_AKM_SUITES, eNL80211_ATTR_REQ_IE, eNL80211_ATTR_RESP_IE, eNL80211_ATTR_PREV_BSSID, eNL80211_ATTR_KEY, eNL80211_ATTR_KEYS, eNL80211_ATTR_PID, eNL80211_ATTR_4ADDR, eNL80211_ATTR_SURVEY_INFO, eNL80211_ATTR_PMKID, eNL80211_ATTR_MAX_NUM_PMKIDS, eNL80211_ATTR_DURATION, eNL80211_ATTR_COOKIE, eNL80211_ATTR_WIPHY_COVERAGE_CLASS, eNL80211_ATTR_TX_RATES, eNL80211_ATTR_FRAME_MATCH, eNL80211_ATTR_ACK, eNL80211_ATTR_PS_STATE, eNL80211_ATTR_CQM, eNL80211_ATTR_LOCAL_STATE_CHANGE, eNL80211_ATTR_AP_ISOLATE, eNL80211_ATTR_WIPHY_TX_POWER_SETTING, eNL80211_ATTR_WIPHY_TX_POWER_LEVEL, eNL80211_ATTR_TX_FRAME_TYPES, eNL80211_ATTR_RX_FRAME_TYPES, eNL80211_ATTR_FRAME_TYPE, eNL80211_ATTR_CONTROL_PORT_ETHERTYPE, eNL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, eNL80211_ATTR_SUPPORT_IBSS_RSN, eNL80211_ATTR_WIPHY_ANTENNA_TX, eNL80211_ATTR_WIPHY_ANTENNA_RX, eNL80211_ATTR_MCAST_RATE, eNL80211_ATTR_OFFCHANNEL_TX_OK, eNL80211_ATTR_BSS_HT_OPMODE, eNL80211_ATTR_KEY_DEFAULT_TYPES, eNL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION, eNL80211_ATTR_MESH_SETUP, eNL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX, eNL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX, eNL80211_ATTR_SUPPORT_MESH_AUTH, eNL80211_ATTR_STA_PLINK_STATE, eNL80211_ATTR_WOWLAN_TRIGGERS, eNL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, eNL80211_ATTR_SCHED_SCAN_INTERVAL, eNL80211_ATTR_INTERFACE_COMBINATIONS, eNL80211_ATTR_SOFTWARE_IFTYPES, eNL80211_ATTR_REKEY_DATA, eNL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS, eNL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, eNL80211_ATTR_SCAN_SUPP_RATES, eNL80211_ATTR_HIDDEN_SSID, eNL80211_ATTR_IE_PROBE_RESP, eNL80211_ATTR_IE_ASSOC_RESP, eNL80211_ATTR_STA_WME, eNL80211_ATTR_SUPPORT_AP_UAPSD, eNL80211_ATTR_ROAM_SUPPORT, eNL80211_ATTR_SCHED_SCAN_MATCH, eNL80211_ATTR_MAX_MATCH_SETS, eNL80211_ATTR_PMKSA_CANDIDATE, eNL80211_ATTR_TX_NO_CCK_RATE, eNL80211_ATTR_TDLS_ACTION, eNL80211_ATTR_TDLS_DIALOG_TOKEN, eNL80211_ATTR_TDLS_OPERATION, eNL80211_ATTR_TDLS_SUPPORT, eNL80211_ATTR_TDLS_EXTERNAL_SETUP, eNL80211_ATTR_DEVICE_AP_SME, eNL80211_ATTR_DONT_WAIT_FOR_ACK, eNL80211_ATTR_FEATURE_FLAGS, eNL80211_ATTR_PROBE_RESP_OFFLOAD, eNL80211_ATTR_PROBE_RESP, eNL80211_ATTR_DFS_REGION, eNL80211_ATTR_DISABLE_HT, eNL80211_ATTR_HT_CAPABILITY_MASK, eNL80211_ATTR_NOACK_MAP, eNL80211_ATTR_INACTIVITY_TIMEOUT, eNL80211_ATTR_RX_SIGNAL_DBM, eNL80211_ATTR_BG_SCAN_PERIOD, eNL80211_ATTR_WDEV, eNL80211_ATTR_USER_REG_HINT_TYPE, eNL80211_ATTR_CONN_FAILED_REASON, eNL80211_ATTR_SAE_DATA, eNL80211_ATTR_VHT_CAPABILITY, eNL80211_ATTR_SCAN_FLAGS, eNL80211_ATTR_CHANNEL_WIDTH, eNL80211_ATTR_CENTER_FREQ1, eNL80211_ATTR_CENTER_FREQ2, eNL80211_ATTR_P2P_CTWINDOW, eNL80211_ATTR_P2P_OPPPS, eNL80211_ATTR_LOCAL_MESH_POWER_MODE, eNL80211_ATTR_ACL_POLICY, eNL80211_ATTR_MAC_ADDRS, eNL80211_ATTR_MAC_ACL_MAX, eNL80211_ATTR_RADAR_EVENT, eNL80211_ATTR_EXT_CAPA, eNL80211_ATTR_EXT_CAPA_MASK, eNL80211_ATTR_STA_CAPABILITY, eNL80211_ATTR_STA_EXT_CAPABILITY, eNL80211_ATTR_PROTOCOL_FEATURES, eNL80211_ATTR_SPLIT_WIPHY_DUMP, eNL80211_ATTR_DISABLE_VHT, eNL80211_ATTR_VHT_CAPABILITY_MASK, eNL80211_ATTR_MDID, eNL80211_ATTR_IE_RIC, eNL80211_ATTR_CRIT_PROT_ID, eNL80211_ATTR_MAX_CRIT_PROT_DURATION, eNL80211_ATTR_PEER_AID, eNL80211_ATTR_COALESCE_RULE, eNL80211_ATTR_CH_SWITCH_COUNT, eNL80211_ATTR_CH_SWITCH_BLOCK_TX, eNL80211_ATTR_CSA_IES, eNL80211_ATTR_CSA_C_OFF_BEACON, eNL80211_ATTR_CSA_C_OFF_PRESP, eNL80211_ATTR_RXMGMT_FLAGS, eNL80211_ATTR_STA_SUPPORTED_CHANNELS, eNL80211_ATTR_STA_SUPPORTED_OPER_CLASSES, eNL80211_ATTR_HANDLE_DFS, eNL80211_ATTR_SUPPORT_5_MHZ, eNL80211_ATTR_SUPPORT_10_MHZ, eNL80211_ATTR_OPMODE_NOTIF, eNL80211_ATTR_VENDOR_ID, eNL80211_ATTR_VENDOR_SUBCMD, eNL80211_ATTR_VENDOR_DATA, eNL80211_ATTR_VENDOR_EVENTS, eNL80211_ATTR_QOS_MAP, eNL80211_ATTR_MAC_HINT, eNL80211_ATTR_WIPHY_FREQ_HINT, eNL80211_ATTR_MAX_AP_ASSOC_STA, eNL80211_ATTR_TDLS_PEER_CAPABILITY, eNL80211_ATTR_SOCKET_OWNER, eNL80211_ATTR_CSA_C_OFFSETS_TX, eNL80211_ATTR_MAX_CSA_COUNTERS, eNL80211_ATTR_TDLS_INITIATOR, eNL80211_ATTR_USE_RRM, eNL80211_ATTR_WIPHY_DYN_ACK, eNL80211_ATTR_TSID, eNL80211_ATTR_USER_PRIO, eNL80211_ATTR_ADMITTED_TIME, eNL80211_ATTR_SMPS_MODE, eNL80211_ATTR_OPER_CLASS, eNL80211_ATTR_MAC_MASK, eNL80211_ATTR_WIPHY_SELF_MANAGED_REG, eNL80211_ATTR_EXT_FEATURES, eNL80211_ATTR_SURVEY_RADIO_STATS, eNL80211_ATTR_NETNS_FD, eNL80211_ATTR_SCHED_SCAN_DELAY, eNL80211_ATTR_REG_INDOOR, eNL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS, eNL80211_ATTR_MAX_SCAN_PLAN_INTERVAL, eNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS, eNL80211_ATTR_SCHED_SCAN_PLANS, eNL80211_ATTR_PBSS, eNL80211_ATTR_BSS_SELECT, eNL80211_ATTR_STA_SUPPORT_P2P_PS, eNL80211_ATTR_MAX, eNL80211_ATTR_PAD, eNUM_NL80211_ATTR, NL80211Bss, showNL80211Bss, eNL80211_BSS_BSSID, eNL80211_BSS_FREQUENCY, eNL80211_BSS_TSF, eNL80211_BSS_BEACON_INTERVAL, eNL80211_BSS_CAPABILITY, eNL80211_BSS_INFORMATION_ELEMENTS, eNL80211_BSS_SIGNAL_MBM, eNL80211_BSS_SIGNAL_UNSPEC, eNL80211_BSS_STATUS, eNL80211_BSS_SEEN_MS_AGO, eNL80211_BSS_BEACON_IES, eNL80211_BSS_CHAN_WIDTH, eNL80211_BSS_BEACON_TSF, eNL80211_BSS_PRESP_DATA, eNL80211_BSS_LAST_SEEN_BOOTTIME, eNL80211_BSS_MAX, eNL80211_BSS_PAD, Nl80211StaInfo, showNl80211StaInfo, eNL80211_STA_INFO_INACTIVE_TIME, eNL80211_STA_INFO_RX_BYTES, eNL80211_STA_INFO_TX_BYTES, eNL80211_STA_INFO_LLID, eNL80211_STA_INFO_PLID, eNL80211_STA_INFO_PLINK_STATE, eNL80211_STA_INFO_SIGNAL, eNL80211_STA_INFO_TX_BITRATE, eNL80211_STA_INFO_RX_PACKETS, eNL80211_STA_INFO_TX_PACKETS, eNL80211_STA_INFO_TX_RETRIES, eNL80211_STA_INFO_TX_FAILED, eNL80211_STA_INFO_SIGNAL_AVG, eNL80211_STA_INFO_RX_BITRATE, eNL80211_STA_INFO_BSS_PARAM, eNL80211_STA_INFO_CONNECTED_TIME, eNL80211_STA_INFO_STA_FLAGS, eNL80211_STA_INFO_BEACON_LOSS, eNL80211_STA_INFO_T_OFFSET, eNL80211_STA_INFO_LOCAL_PM, eNL80211_STA_INFO_PEER_PM, eNL80211_STA_INFO_NONPEER_PM, eNL80211_STA_INFO_RX_BYTES64, eNL80211_STA_INFO_TX_BYTES64, eNL80211_STA_INFO_CHAIN_SIGNAL, eNL80211_STA_INFO_CHAIN_SIGNAL_AVG, eNL80211_STA_INFO_EXPECTED_THROUGHPUT, eNL80211_STA_INFO_RX_DROP_MISC, eNL80211_STA_INFO_BEACON_RX, eNL80211_STA_INFO_BEACON_SIGNAL_AVG, eNL80211_STA_INFO_TID_STATS, eNL80211_STA_INFO_RX_DURATION, eNL80211_STA_INFO_MAX, eNL80211_STA_INFO_PAD, IEEE80211EID, showIEEE80211EID, eWLAN_EID_SSID, eWLAN_EID_SUPP_RATES, eWLAN_EID_FH_PARAMS, eWLAN_EID_DS_PARAMS, eWLAN_EID_CF_PARAMS, eWLAN_EID_TIM, eWLAN_EID_IBSS_PARAMS, eWLAN_EID_COUNTRY, eWLAN_EID_REQUEST, eWLAN_EID_QBSS_LOAD, eWLAN_EID_EDCA_PARAM_SET, eWLAN_EID_TSPEC, eWLAN_EID_TCLAS, eWLAN_EID_SCHEDULE, eWLAN_EID_CHALLENGE, eWLAN_EID_PWR_CONSTRAINT, eWLAN_EID_PWR_CAPABILITY, eWLAN_EID_TPC_REQUEST, eWLAN_EID_TPC_REPORT, eWLAN_EID_SUPPORTED_CHANNELS, eWLAN_EID_CHANNEL_SWITCH, eWLAN_EID_MEASURE_REQUEST, eWLAN_EID_MEASURE_REPORT, eWLAN_EID_QUIET, eWLAN_EID_IBSS_DFS, eWLAN_EID_ERP_INFO, eWLAN_EID_TS_DELAY, eWLAN_EID_TCLAS_PROCESSING, eWLAN_EID_HT_CAPABILITY, eWLAN_EID_QOS_CAPA, eWLAN_EID_RSN, eWLAN_EID_802_15_COEX, eWLAN_EID_EXT_SUPP_RATES, eWLAN_EID_AP_CHAN_REPORT, eWLAN_EID_NEIGHBOR_REPORT, eWLAN_EID_RCPI, eWLAN_EID_MOBILITY_DOMAIN, eWLAN_EID_FAST_BSS_TRANSITION, eWLAN_EID_TIMEOUT_INTERVAL, eWLAN_EID_RIC_DATA, eWLAN_EID_DSE_REGISTERED_LOCATION, eWLAN_EID_SUPPORTED_REGULATORY_CLASSES, eWLAN_EID_EXT_CHANSWITCH_ANN, eWLAN_EID_HT_OPERATION, eWLAN_EID_SECONDARY_CHANNEL_OFFSET, eWLAN_EID_BSS_AVG_ACCESS_DELAY, eWLAN_EID_ANTENNA_INFO, eWLAN_EID_RSNI, eWLAN_EID_MEASUREMENT_PILOT_TX_INFO, eWLAN_EID_BSS_AVAILABLE_CAPACITY, eWLAN_EID_BSS_AC_ACCESS_DELAY, eWLAN_EID_TIME_ADVERTISEMENT, eWLAN_EID_RRM_ENABLED_CAPABILITIES, eWLAN_EID_MULTIPLE_BSSID, eWLAN_EID_BSS_COEX_2040, eWLAN_EID_BSS_INTOLERANT_CHL_REPORT, eWLAN_EID_OVERLAP_BSS_SCAN_PARAM, eWLAN_EID_RIC_DESCRIPTOR, eWLAN_EID_MMIE, eWLAN_EID_ASSOC_COMEBACK_TIME, eWLAN_EID_EVENT_REQUEST, eWLAN_EID_EVENT_REPORT, eWLAN_EID_DIAGNOSTIC_REQUEST, eWLAN_EID_DIAGNOSTIC_REPORT, eWLAN_EID_LOCATION_PARAMS, eWLAN_EID_NON_TX_BSSID_CAP, eWLAN_EID_SSID_LIST, eWLAN_EID_MULTI_BSSID_IDX, eWLAN_EID_FMS_DESCRIPTOR, eWLAN_EID_FMS_REQUEST, eWLAN_EID_FMS_RESPONSE, eWLAN_EID_QOS_TRAFFIC_CAPA, eWLAN_EID_BSS_MAX_IDLE_PERIOD, eWLAN_EID_TSF_REQUEST, eWLAN_EID_TSF_RESPOSNE, eWLAN_EID_WNM_SLEEP_MODE, eWLAN_EID_TIM_BCAST_REQ, eWLAN_EID_TIM_BCAST_RESP, eWLAN_EID_COLL_IF_REPORT, eWLAN_EID_CHANNEL_USAGE, eWLAN_EID_TIME_ZONE, eWLAN_EID_DMS_REQUEST, eWLAN_EID_DMS_RESPONSE, eWLAN_EID_LINK_ID, eWLAN_EID_WAKEUP_SCHEDUL, eWLAN_EID_CHAN_SWITCH_TIMING, eWLAN_EID_PTI_CONTROL, eWLAN_EID_PU_BUFFER_STATUS, eWLAN_EID_INTERWORKING, eWLAN_EID_ADVERTISEMENT_PROTOCOL, eWLAN_EID_EXPEDITED_BW_REQ, eWLAN_EID_QOS_MAP_SET, eWLAN_EID_ROAMING_CONSORTIUM, eWLAN_EID_EMERGENCY_ALERT, eWLAN_EID_MESH_CONFIG, eWLAN_EID_MESH_ID, eWLAN_EID_LINK_METRIC_REPORT, eWLAN_EID_CONGESTION_NOTIFICATION, eWLAN_EID_PEER_MGMT, eWLAN_EID_CHAN_SWITCH_PARAM, eWLAN_EID_MESH_AWAKE_WINDOW, eWLAN_EID_BEACON_TIMING, eWLAN_EID_MCCAOP_SETUP_REQ, eWLAN_EID_MCCAOP_SETUP_RESP, eWLAN_EID_MCCAOP_ADVERT, eWLAN_EID_MCCAOP_TEARDOWN, eWLAN_EID_GANN, eWLAN_EID_RANN, eWLAN_EID_EXT_CAPABILITY, eWLAN_EID_PREQ, eWLAN_EID_PREP, eWLAN_EID_PERR, eWLAN_EID_PXU, eWLAN_EID_PXUC, eWLAN_EID_AUTH_MESH_PEER_EXCH, eWLAN_EID_MIC, eWLAN_EID_DESTINATION_URI, eWLAN_EID_UAPSD_COEX, eWLAN_EID_WAKEUP_SCHEDULE, eWLAN_EID_EXT_SCHEDULE, eWLAN_EID_STA_AVAILABILITY, eWLAN_EID_DMG_TSPEC, eWLAN_EID_DMG_AT, eWLAN_EID_DMG_CAP, eWLAN_EID_CISCO_VENDOR_SPECIFIC, eWLAN_EID_DMG_OPERATION, eWLAN_EID_DMG_BSS_PARAM_CHANGE, eWLAN_EID_DMG_BEAM_REFINEMENT, eWLAN_EID_CHANNEL_MEASURE_FEEDBACK, eWLAN_EID_AWAKE_WINDOW, eWLAN_EID_MULTI_BAND, eWLAN_EID_ADDBA_EXT, eWLAN_EID_NEXT_PCP_LIST, eWLAN_EID_PCP_HANDOVER, eWLAN_EID_DMG_LINK_MARGIN, eWLAN_EID_SWITCHING_STREAM, eWLAN_EID_SESSION_TRANSITION, eWLAN_EID_DYN_TONE_PAIRING_REPORT, eWLAN_EID_CLUSTER_REPORT, eWLAN_EID_RELAY_CAP, eWLAN_EID_RELAY_XFER_PARAM_SET, eWLAN_EID_BEAM_LINK_MAINT, eWLAN_EID_MULTIPLE_MAC_ADDR, eWLAN_EID_U_PID, eWLAN_EID_DMG_LINK_ADAPT_ACK, eWLAN_EID_MCCAOP_ADV_OVERVIEW, eWLAN_EID_QUIET_PERIOD_REQ, eWLAN_EID_QUIET_PERIOD_RESP, eWLAN_EID_EPAC_POLICY, eWLAN_EID_CLISTER_TIME_OFF, eWLAN_EID_INTER_AC_PRIO, eWLAN_EID_SCS_DESCRIPTOR, eWLAN_EID_QLOAD_REPORT, eWLAN_EID_HCCA_TXOP_UPDATE_COUNT, eWLAN_EID_HL_STREAM_ID, eWLAN_EID_GCR_GROUP_ADDR, eWLAN_EID_ANTENNA_SECTOR_ID_PATTERN, eWLAN_EID_VHT_CAPABILITY, eWLAN_EID_VHT_OPERATION, eWLAN_EID_EXTENDED_BSS_LOAD, eWLAN_EID_WIDE_BW_CHANNEL_SWITCH, eWLAN_EID_VHT_TX_POWER_ENVELOPE, eWLAN_EID_CHANNEL_SWITCH_WRAPPER, eWLAN_EID_AID, eWLAN_EID_QUIET_CHANNEL, eWLAN_EID_OPMODE_NOTIF, eWLAN_EID_VENDOR_SPECIFIC, eWLAN_EID_QOS_PARAMETER, NL80211RateInfo, showNL80211RateInfo, eNL80211_RATE_INFO_BITRATE, eNL80211_RATE_INFO_MCS, eNL80211_RATE_INFO_40_MHZ_WIDTH, eNL80211_RATE_INFO_SHORT_GI, eNL80211_RATE_INFO_BITRATE32, eNL80211_RATE_INFO_VHT_MCS, eNL80211_RATE_INFO_VHT_NSS, eNL80211_RATE_INFO_80_MHZ_WIDTH, eNL80211_RATE_INFO_80P80_MHZ_WIDTH, eNL80211_RATE_INFO_160_MHZ_WIDTH, eNL80211_RATE_INFO_10_MHZ_WIDTH, eNL80211_RATE_INFO_5_MHZ_WIDTH, eNL80211_RATE_INFO_MAX) where
 
 newtype NL80211Commands = NL80211Commands Int deriving (Eq, Enum, Integral, Num, Ord, Real, Show)
 
@@ -118,7 +118,8 @@
 showNL80211Commands 110 = "NL80211_CMD_CH_SWITCH_STARTED_NOTIFY"
 showNL80211Commands 111 = "NL80211_CMD_TDLS_CHANNEL_SWITCH"
 showNL80211Commands 112 = "NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH"
-showNL80211Commands 113 = "NL80211_CMD_MAX"
+showNL80211Commands 113 = "NL80211_CMD_WIPHY_REG_CHANGE"
+showNL80211Commands 114 = "NL80211_CMD_ABORT_SCAN"
 showNL80211Commands i = "NL80211Commands #" ++ (show i)
 
 
@@ -358,10 +359,12 @@
 eNL80211_CMD_TDLS_CHANNEL_SWITCH = 111
 eNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH :: (Num a) => a
 eNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 112
-eNL80211_CMD_MAX :: (Num a) => a
-eNL80211_CMD_MAX = 113
 eNL80211_CMD_WIPHY_REG_CHANGE :: (Num a) => a
 eNL80211_CMD_WIPHY_REG_CHANGE = 113
+eNL80211_CMD_ABORT_SCAN :: (Num a) => a
+eNL80211_CMD_ABORT_SCAN = 114
+eNL80211_CMD_MAX :: (Num a) => a
+eNL80211_CMD_MAX = 114
 newtype NL80211Attrs = NL80211Attrs Int deriving (Eq, Enum, Integral, Num, Ord, Real, Show)
 
 showNL80211Attrs :: (Num a) => (Show a) => (Eq a) => a -> String
@@ -590,8 +593,12 @@
 showNL80211Attrs 222 = "NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS"
 showNL80211Attrs 223 = "NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL"
 showNL80211Attrs 224 = "NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS"
-showNL80211Attrs 225 = "NL80211_ATTR_MAX"
-showNL80211Attrs 226 = "NUM_NL80211_ATTR"
+showNL80211Attrs 225 = "NL80211_ATTR_SCHED_SCAN_PLANS"
+showNL80211Attrs 226 = "NL80211_ATTR_PBSS"
+showNL80211Attrs 227 = "NL80211_ATTR_BSS_SELECT"
+showNL80211Attrs 228 = "NL80211_ATTR_STA_SUPPORT_P2P_PS"
+showNL80211Attrs 229 = "NL80211_ATTR_MAX"
+showNL80211Attrs 230 = "NUM_NL80211_ATTR"
 showNL80211Attrs i = "NL80211Attrs #" ++ (show i)
 
 
@@ -1045,12 +1052,20 @@
 eNL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223
 eNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS :: (Num a) => a
 eNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224
-eNL80211_ATTR_MAX :: (Num a) => a
-eNL80211_ATTR_MAX = 225
 eNL80211_ATTR_SCHED_SCAN_PLANS :: (Num a) => a
 eNL80211_ATTR_SCHED_SCAN_PLANS = 225
+eNL80211_ATTR_PBSS :: (Num a) => a
+eNL80211_ATTR_PBSS = 226
+eNL80211_ATTR_BSS_SELECT :: (Num a) => a
+eNL80211_ATTR_BSS_SELECT = 227
+eNL80211_ATTR_STA_SUPPORT_P2P_PS :: (Num a) => a
+eNL80211_ATTR_STA_SUPPORT_P2P_PS = 228
+eNL80211_ATTR_MAX :: (Num a) => a
+eNL80211_ATTR_MAX = 229
+eNL80211_ATTR_PAD :: (Num a) => a
+eNL80211_ATTR_PAD = 229
 eNUM_NL80211_ATTR :: (Num a) => a
-eNUM_NL80211_ATTR = 226
+eNUM_NL80211_ATTR = 230
 newtype NL80211Bss = NL80211Bss Int deriving (Eq, Enum, Integral, Num, Ord, Real, Show)
 
 showNL80211Bss :: (Num a) => (Show a) => (Eq a) => a -> String
@@ -1069,6 +1084,7 @@
 showNL80211Bss 13 = "NL80211_BSS_BEACON_TSF"
 showNL80211Bss 14 = "NL80211_BSS_PRESP_DATA"
 showNL80211Bss 15 = "NL80211_BSS_LAST_SEEN_BOOTTIME"
+showNL80211Bss 16 = "NL80211_BSS_MAX"
 showNL80211Bss i = "NL80211Bss #" ++ (show i)
 
 
@@ -1103,7 +1119,9 @@
 eNL80211_BSS_LAST_SEEN_BOOTTIME :: (Num a) => a
 eNL80211_BSS_LAST_SEEN_BOOTTIME = 15
 eNL80211_BSS_MAX :: (Num a) => a
-eNL80211_BSS_MAX = 15
+eNL80211_BSS_MAX = 16
+eNL80211_BSS_PAD :: (Num a) => a
+eNL80211_BSS_PAD = 16
 newtype Nl80211StaInfo = Nl80211StaInfo Int deriving (Eq, Enum, Integral, Num, Ord, Real, Show)
 
 showNl80211StaInfo :: (Num a) => (Show a) => (Eq a) => a -> String
@@ -1137,7 +1155,9 @@
 showNl80211StaInfo 28 = "NL80211_STA_INFO_RX_DROP_MISC"
 showNl80211StaInfo 29 = "NL80211_STA_INFO_BEACON_RX"
 showNl80211StaInfo 30 = "NL80211_STA_INFO_BEACON_SIGNAL_AVG"
-showNl80211StaInfo 31 = "NL80211_STA_INFO_MAX"
+showNl80211StaInfo 31 = "NL80211_STA_INFO_TID_STATS"
+showNl80211StaInfo 32 = "NL80211_STA_INFO_RX_DURATION"
+showNl80211StaInfo 33 = "NL80211_STA_INFO_MAX"
 showNl80211StaInfo i = "Nl80211StaInfo #" ++ (show i)
 
 
@@ -1201,10 +1221,14 @@
 eNL80211_STA_INFO_BEACON_RX = 29
 eNL80211_STA_INFO_BEACON_SIGNAL_AVG :: (Num a) => a
 eNL80211_STA_INFO_BEACON_SIGNAL_AVG = 30
-eNL80211_STA_INFO_MAX :: (Num a) => a
-eNL80211_STA_INFO_MAX = 31
 eNL80211_STA_INFO_TID_STATS :: (Num a) => a
 eNL80211_STA_INFO_TID_STATS = 31
+eNL80211_STA_INFO_RX_DURATION :: (Num a) => a
+eNL80211_STA_INFO_RX_DURATION = 32
+eNL80211_STA_INFO_MAX :: (Num a) => a
+eNL80211_STA_INFO_MAX = 33
+eNL80211_STA_INFO_PAD :: (Num a) => a
+eNL80211_STA_INFO_PAD = 33
 newtype IEEE80211EID = IEEE80211EID Int deriving (Eq, Enum, Integral, Num, Ord, Real, Show)
 
 showIEEE80211EID :: (Num a) => (Show a) => (Eq a) => a -> String
@@ -1715,3 +1739,47 @@
 eWLAN_EID_VENDOR_SPECIFIC = 221
 eWLAN_EID_QOS_PARAMETER :: (Num a) => a
 eWLAN_EID_QOS_PARAMETER = 222
+newtype NL80211RateInfo = NL80211RateInfo Int deriving (Eq, Enum, Integral, Num, Ord, Real, Show)
+
+showNL80211RateInfo :: (Num a) => (Show a) => (Eq a) => a -> String
+showNL80211RateInfo 1 = "NL80211_RATE_INFO_BITRATE"
+showNL80211RateInfo 2 = "NL80211_RATE_INFO_MCS"
+showNL80211RateInfo 3 = "NL80211_RATE_INFO_40_MHZ_WIDTH"
+showNL80211RateInfo 4 = "NL80211_RATE_INFO_SHORT_GI"
+showNL80211RateInfo 5 = "NL80211_RATE_INFO_BITRATE32"
+showNL80211RateInfo 6 = "NL80211_RATE_INFO_VHT_MCS"
+showNL80211RateInfo 7 = "NL80211_RATE_INFO_VHT_NSS"
+showNL80211RateInfo 8 = "NL80211_RATE_INFO_80_MHZ_WIDTH"
+showNL80211RateInfo 9 = "NL80211_RATE_INFO_80P80_MHZ_WIDTH"
+showNL80211RateInfo 10 = "NL80211_RATE_INFO_160_MHZ_WIDTH"
+showNL80211RateInfo 11 = "NL80211_RATE_INFO_10_MHZ_WIDTH"
+showNL80211RateInfo 12 = "NL80211_RATE_INFO_5_MHZ_WIDTH"
+showNL80211RateInfo i = "NL80211RateInfo #" ++ (show i)
+
+
+eNL80211_RATE_INFO_BITRATE :: (Num a) => a
+eNL80211_RATE_INFO_BITRATE = 1
+eNL80211_RATE_INFO_MCS :: (Num a) => a
+eNL80211_RATE_INFO_MCS = 2
+eNL80211_RATE_INFO_40_MHZ_WIDTH :: (Num a) => a
+eNL80211_RATE_INFO_40_MHZ_WIDTH = 3
+eNL80211_RATE_INFO_SHORT_GI :: (Num a) => a
+eNL80211_RATE_INFO_SHORT_GI = 4
+eNL80211_RATE_INFO_BITRATE32 :: (Num a) => a
+eNL80211_RATE_INFO_BITRATE32 = 5
+eNL80211_RATE_INFO_VHT_MCS :: (Num a) => a
+eNL80211_RATE_INFO_VHT_MCS = 6
+eNL80211_RATE_INFO_VHT_NSS :: (Num a) => a
+eNL80211_RATE_INFO_VHT_NSS = 7
+eNL80211_RATE_INFO_80_MHZ_WIDTH :: (Num a) => a
+eNL80211_RATE_INFO_80_MHZ_WIDTH = 8
+eNL80211_RATE_INFO_80P80_MHZ_WIDTH :: (Num a) => a
+eNL80211_RATE_INFO_80P80_MHZ_WIDTH = 9
+eNL80211_RATE_INFO_160_MHZ_WIDTH :: (Num a) => a
+eNL80211_RATE_INFO_160_MHZ_WIDTH = 10
+eNL80211_RATE_INFO_10_MHZ_WIDTH :: (Num a) => a
+eNL80211_RATE_INFO_10_MHZ_WIDTH = 11
+eNL80211_RATE_INFO_5_MHZ_WIDTH :: (Num a) => a
+eNL80211_RATE_INFO_5_MHZ_WIDTH = 12
+eNL80211_RATE_INFO_MAX :: (Num a) => a
+eNL80211_RATE_INFO_MAX = 12
diff --git a/System/Linux/Netlink/GeNetlink/NL80211/StaInfo.hs b/System/Linux/Netlink/GeNetlink/NL80211/StaInfo.hs
new file mode 100644
--- /dev/null
+++ b/System/Linux/Netlink/GeNetlink/NL80211/StaInfo.hs
@@ -0,0 +1,239 @@
+{-# LANGUAGE CPP #-}
+{-|
+Module      : System.Linux.Netlink.GeNetlink.NL80211.StaInfo
+Description : Implementation of NL80211
+Maintainer  : ongy
+Stability   : testing
+Portability : Linux
+
+This module providis utility functions for NL80211 subsystem.
+In particular the NL80211_ATTR_STA_INFO part of NL80211.
+For more information see /usr/include/linux/nl80211.h
+-}
+module System.Linux.Netlink.GeNetlink.NL80211.StaInfo
+    ( StaInfo (..)
+    , SignalWidth (..)
+    , Signal (..)
+    , StaRate (..)
+
+    , signalFromAttributes
+    , staRateFromAttributes
+    , staInfoFromAttributes
+    , getStaInfo
+    , staInfoFromPacket
+    )
+where
+
+import Data.ByteString (ByteString)
+import Data.Serialize.Get (Get, runGet)
+import Data.Maybe (fromMaybe)
+import qualified Data.Map as M
+import Control.Applicative ((<|>))
+
+import System.Linux.Netlink
+import System.Linux.Netlink.GeNetlink.NL80211.WifiEI
+import System.Linux.Netlink.GeNetlink.NL80211.Constants
+import Data.Word
+
+import Data.Serialize.Get
+
+#if MIN_VERSION_base(4,8,0)
+#else
+import Control.Applicative ((<$>))
+#endif
+
+-- |Type for "chain signal"
+newtype Signal = Signal [Word8] deriving (Show, Eq, Read)
+
+-- |Get a Signal from the nested attributes.
+signalFromAttributes :: Attributes -> Signal
+signalFromAttributes attrs =
+    let bss = map snd . M.toList $ attrs
+        eth = map (runGet getWord8) bss
+     in Signal . map getRight $ eth
+    where getRight (Right x) = x
+          getRight (Left x)  = error $ "Failed to decode signal: " ++ x
+
+
+{- | Type for the signal width reported by the kernel.
+
+ The nl80211 header defines more than this, but nl80211.c only uses the widths defined here.
+-}
+data SignalWidth
+    = Width5MHz
+    | Width10MHz
+    | Width20MHz
+    | Width40MHz
+    | Width80MHz
+    | Width160MHz
+    deriving (Show, Eq, Read)
+
+-- |Get the signal width from attributes that contain the flag.
+widthFromAttributes :: Attributes -> SignalWidth
+widthFromAttributes attrs =
+    let five  = opt Width5MHz eNL80211_RATE_INFO_5_MHZ_WIDTH
+        ten   = opt Width10MHz eNL80211_RATE_INFO_10_MHZ_WIDTH
+        forty = opt Width40MHz eNL80211_RATE_INFO_40_MHZ_WIDTH
+        eighty = opt Width80MHz eNL80211_RATE_INFO_80_MHZ_WIDTH
+        osixty = opt Width160MHz eNL80211_RATE_INFO_160_MHZ_WIDTH
+        alls = [five, ten, forty, eighty, osixty]
+     in fromMaybe Width20MHz $ foldr1 (<|>) alls
+    where opt :: SignalWidth -> Int -> Maybe SignalWidth
+          opt c e = fmap (const c) . M.lookup e $ attrs
+
+-- |Type for the rate attributes in StaInfo
+data StaRate = StaRate
+    { -- |This will be reported as Word16/Word32 from the kernel. We read it into one value.
+      -- |If this is Nothing, mcs is >= 32 looking at the code, so it *should*
+      -- |never be Nothing.
+      rateBitrate   :: Maybe Word32
+    , rateWidthFlag :: SignalWidth
+    , rateMCS       :: Maybe Word8
+    , rateShortGI   :: Bool
+
+    , rateVHTMCS    :: Maybe Word8
+    , rateVHTNSS    :: Maybe Word8
+
+    , rateSelf      :: Attributes
+    } deriving (Show, Eq, Read)
+
+-- |Get the StaRate from a parsed nested Attribute
+staRateFromAttributes :: Attributes -> StaRate
+staRateFromAttributes attrs =
+    let rate16 = getField getWord16host eNL80211_RATE_INFO_BITRATE
+        rate32 = getField getWord32host eNL80211_RATE_INFO_BITRATE32
+        -- this locks us into Word32 for now, but that's ok.
+        rate = rate32 <|> fmap fromIntegral rate16
+        -- The rate width flag is "inline" in the rate.
+        width = widthFromAttributes attrs
+        mcs = getField getWord8 eNL80211_RATE_INFO_MCS
+        shortGI = M.member eNL80211_RATE_INFO_SHORT_GI attrs
+        vhtmcs = getField getWord8 eNL80211_RATE_INFO_VHT_MCS
+        vhtnss = getField getWord8 eNL80211_RATE_INFO_VHT_NSS
+    in StaRate rate width mcs shortGI vhtmcs vhtnss attrs
+    where getField :: Get a -> Int -> Maybe a
+          getField g e = fmap (getRight . runGet g) . M.lookup e $ attrs
+          getRight :: Either String a -> a
+          getRight (Right x) = x
+          getRight (Left x)  = error $ "Failed to parse something in StaRate: " ++ x
+
+-- |Structure for wifi station information.
+data StaInfo = StaInfo
+    { -- |For how long we are connected.
+      staConTime    :: Maybe Word32
+    -- |Time since the last time we saw the station send something.
+    , staInaTime    :: Maybe Word32
+    -- |Bytes received. This will be transmitted twice if 64bit in kernel. Will be parsed into this either way.
+    , staRXBytes    :: Maybe Word64
+    -- |Bytes received. This will be transmitted twice if 64bit in kernel. Will be parsed into this either way.
+    , staTXBytes    :: Maybe Word64
+    , staLLID       :: Maybe Word16
+    , staPLID       :: Maybe Word16
+    , staPLState    :: Maybe Word8
+    , staRXDur      :: Maybe Word64
+    , staSignalMBM  :: Maybe Word8
+    , staSignalMBMA :: Maybe Word8
+    , staSignal     :: Maybe Signal
+    , staSignalAvg  :: Maybe Signal
+    , staTXRate     :: Maybe StaRate
+    , staRXRate     :: Maybe StaRate
+
+    , staRXPackets  :: Maybe Word32
+    , staTXPackets  :: Maybe Word32
+    , staTXRetries  :: Maybe Word32
+    , staTXFailed   :: Maybe Word32
+    , staExpectTP   :: Maybe Word32
+    , staBeaconLoss :: Maybe Word32
+
+    -- |PM: STA link specific Power Mode
+    , staLocalPM    :: Maybe Word32
+    , staPeerPM     :: Maybe Word32
+    , staNonPeerPM  :: Maybe Word32
+
+    -- |This field is a bit weird in the code :(
+    , staBssAttrs   :: Maybe Attributes
+    , staInfoFlags  :: Maybe ByteString
+    , staTOffset    :: Maybe Word64
+    , staRXDropMisc :: Maybe Word64
+    , staBeaconRX   :: Maybe Word64
+    , staBSignalAvg :: Maybe Word8
+
+    , staTidStats   :: Maybe Attributes
+    , staAssocIES   :: Maybe Attributes
+
+    -- |Pointer to the Attributes map used to build this struct. This is purely
+    -- |for forward compat, please file a feature report if you have to use this.
+    , staSelf       :: Attributes
+    } deriving (Show, Eq, Read)
+
+-- |Parse the nested Netlink Attributes into an StaInfo
+staInfoFromAttributes :: Attributes -> StaInfo
+staInfoFromAttributes attrs =
+    let conTime = getField getWord32host eNL80211_STA_INFO_CONNECTED_TIME
+        inaTime = getField getWord32host eNL80211_STA_INFO_INACTIVE_TIME
+        rxB32   = getField getWord32host eNL80211_STA_INFO_RX_BYTES
+        txB32   = getField getWord32host eNL80211_STA_INFO_TX_BYTES
+        rxB64   = getField getWord64host eNL80211_STA_INFO_RX_BYTES64
+        txB64   = getField getWord64host eNL80211_STA_INFO_TX_BYTES64
+        rxBytes = rxB64 <|> fmap fromIntegral rxB32
+        txBytes = txB64 <|> fmap fromIntegral txB32
+        llid    = getField getWord16host eNL80211_STA_INFO_LLID
+        plid    = getField getWord16host eNL80211_STA_INFO_PLID
+        lstate  = getField getWord8 eNL80211_STA_INFO_PLINK_STATE
+        rxDur   = getField getWord64host eNL80211_STA_INFO_RX_DURATION
+        sigMBM  = getField getWord8 eNL80211_STA_INFO_SIGNAL
+        sigMBMA = getField getWord8 eNL80211_STA_INFO_SIGNAL_AVG
+        sigBS   = getField getAttributes eNL80211_STA_INFO_CHAIN_SIGNAL
+        sigBSA  = getField getAttributes eNL80211_STA_INFO_CHAIN_SIGNAL_AVG
+        txr     = getField getAttributes eNL80211_STA_INFO_TX_BITRATE
+        rxr     = getField getAttributes eNL80211_STA_INFO_RX_BITRATE
+
+        rxpack  = getField getWord32host eNL80211_STA_INFO_RX_PACKETS
+        txpack  = getField getWord32host eNL80211_STA_INFO_TX_PACKETS
+        txretr  = getField getWord32host eNL80211_STA_INFO_TX_RETRIES
+        txfail  = getField getWord32host eNL80211_STA_INFO_TX_FAILED
+
+        exptp   = getField getWord32host eNL80211_STA_INFO_EXPECTED_THROUGHPUT
+        beloss  = getField getWord32host eNL80211_STA_INFO_BEACON_LOSS
+        localpm = getField getWord32host eNL80211_STA_INFO_LOCAL_PM
+        peerpm  = getField getWord32host eNL80211_STA_INFO_PEER_PM
+        npeerpm = getField getWord32host eNL80211_STA_INFO_NONPEER_PM
+
+        bsspar  = getField getAttributes eNL80211_STA_INFO_BSS_PARAM
+        flags   = M.lookup eNL80211_STA_INFO_STA_FLAGS attrs
+        toff    = getField getWord64host eNL80211_STA_INFO_T_OFFSET
+        rxdrop  = getField getWord64host eNL80211_STA_INFO_RX_DROP_MISC
+        beacr   = getField getWord64host eNL80211_STA_INFO_BEACON_RX
+        beacsa  = getField getWord8 eNL80211_STA_INFO_BEACON_SIGNAL_AVG
+
+        tidStat = getField getAttributes eNL80211_STA_INFO_TID_STATS
+        associe = getField getWifiEIDs eNL80211_ATTR_IE
+     in StaInfo
+            conTime inaTime rxBytes txBytes llid plid
+            lstate rxDur sigMBM sigMBMA
+            (signalFromAttributes <$> sigBS)
+            (signalFromAttributes <$> sigBSA)
+            (staRateFromAttributes <$> txr)
+            (staRateFromAttributes <$> rxr)
+            rxpack txpack txretr txfail exptp beloss localpm peerpm
+            npeerpm bsspar flags toff rxdrop beacr beacsa tidStat associe
+            attrs
+    where getField :: Get a -> Int -> Maybe a
+          getField g e = fmap (getRight . runGet g) . M.lookup e $ attrs
+          getRight :: Either String a -> a
+          getRight (Right x) = x
+          getRight (Left x)  = error $ "Failed to parse something in StaInfo: " ++ x
+
+-- |'Get' an StaInfo from a Bytestring
+getStaInfo :: Get StaInfo
+getStaInfo = fmap staInfoFromAttributes getAttributes
+
+-- |extract the StaInfo from a Packet. Use with caution.
+staInfoFromPacket :: Packet a -> Maybe StaInfo
+staInfoFromPacket (Packet _ _ attrs) =
+    let y = runGet getStaInfo <$> M.lookup eNL80211_ATTR_STA_INFO attrs
+    in fmap getRight y
+    where getRight (Right x) = x
+          getRight (Left x)  = error $ "Failed to decode staInfo: " ++ x
+staInfoFromPacket _ = Nothing
+-- TODO:This eats error packets, fix?
diff --git a/System/Linux/Netlink/GeNetlink/NL80211/WifiEI.hs b/System/Linux/Netlink/GeNetlink/NL80211/WifiEI.hs
new file mode 100644
--- /dev/null
+++ b/System/Linux/Netlink/GeNetlink/NL80211/WifiEI.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE CPP #-}
+{-|
+Module      : System.Linux.Netlink.GeNetlink.NL80211.WifiEI
+Description : Implementation of NL80211
+Maintainer  : ongy
+Stability   : testing
+Portability : Linux
+
+This module providis utility functions for NL80211 subsystem.
+In particular the IEEE80211 WifiEI part of NL80211.
+-}
+module System.Linux.Netlink.GeNetlink.NL80211.WifiEI
+    ( showWifiEid
+    , getWifiEIDs
+    )
+where
+
+import qualified Data.Map as M
+import Data.ByteString (ByteString)
+import System.Linux.Netlink
+import System.Linux.Netlink.Helpers (indent)
+import Data.Serialize.Get (runGet, getByteString, getWord8, isEmpty, Get)
+import Control.Monad.Loops (whileM)
+
+import System.Linux.Netlink.GeNetlink.NL80211.Constants
+
+#if MIN_VERSION_base(4,8,0)
+#else
+import Control.Applicative ((<$>))
+#endif
+
+getRight :: Show a => Either a b -> b
+getRight (Right x) = x
+getRight (Left err) = error $show err
+
+-- |Prettyprint the WifiEid map
+showWifiEid :: ByteString -> String
+showWifiEid bs = let attrs = getRight $ runGet getWifiEIDs bs in
+  "WifiEIDs:\n" ++
+  (indent $showAttrs showIEEE80211EID attrs)
+
+-- |'Get' the EID Attributes from a buffer
+getWifiEIDs :: Get Attributes
+getWifiEIDs = M.fromList <$> whileM (not <$> isEmpty) getWifiEID
+
+-- |'Get' an EID attribute from a buffer
+getWifiEID :: Get (Int, ByteString)
+getWifiEID = do
+  ty  <- fromIntegral <$> getWord8
+  len <- fromIntegral <$> getWord8
+  val <- getByteString len
+  return (ty, val)
diff --git a/netlink.cabal b/netlink.cabal
--- a/netlink.cabal
+++ b/netlink.cabal
@@ -1,5 +1,5 @@
 Name:                netlink
-Version:             1.0.0.4
+Version:             1.1.0.0
 Synopsis:            Netlink communication for Haskell
 Description:         Library to comminicate with Linux kernel via Netlink
 Homepage:            https://github.com/Ongy/netlink-hs
@@ -53,6 +53,8 @@
                      System.Linux.Netlink.GeNetlink.Control
                      System.Linux.Netlink.GeNetlink.NL80211
                      System.Linux.Netlink.GeNetlink.NL80211.Constants
+                     System.Linux.Netlink.GeNetlink.NL80211.StaInfo
+                     System.Linux.Netlink.GeNetlink.NL80211.WifiEI
   Other-modules:     System.Linux.Netlink.C
   default-language: Haskell2010
   Build-depends:     base >=4 && <5,
