1*53ee8cc1Swenshuai.xi #ifndef __LINUX_NL80211_H 2*53ee8cc1Swenshuai.xi #define __LINUX_NL80211_H 3*53ee8cc1Swenshuai.xi /* 4*53ee8cc1Swenshuai.xi * 802.11 netlink interface public header 5*53ee8cc1Swenshuai.xi * 6*53ee8cc1Swenshuai.xi * Copyright 2006, 2007 Johannes Berg <johannes@sipsolutions.net> 7*53ee8cc1Swenshuai.xi */ 8*53ee8cc1Swenshuai.xi 9*53ee8cc1Swenshuai.xi /** 10*53ee8cc1Swenshuai.xi * DOC: Station handling 11*53ee8cc1Swenshuai.xi * 12*53ee8cc1Swenshuai.xi * Stations are added per interface, but a special case exists with VLAN 13*53ee8cc1Swenshuai.xi * interfaces. When a station is bound to an AP interface, it may be moved 14*53ee8cc1Swenshuai.xi * into a VLAN identified by a VLAN interface index (%NL80211_ATTR_STA_VLAN). 15*53ee8cc1Swenshuai.xi * The station is still assumed to belong to the AP interface it was added 16*53ee8cc1Swenshuai.xi * to. 17*53ee8cc1Swenshuai.xi * 18*53ee8cc1Swenshuai.xi * TODO: need more info? 19*53ee8cc1Swenshuai.xi */ 20*53ee8cc1Swenshuai.xi 21*53ee8cc1Swenshuai.xi /** 22*53ee8cc1Swenshuai.xi * enum nl80211_commands - supported nl80211 commands 23*53ee8cc1Swenshuai.xi * 24*53ee8cc1Swenshuai.xi * @NL80211_CMD_UNSPEC: unspecified command to catch errors 25*53ee8cc1Swenshuai.xi * 26*53ee8cc1Swenshuai.xi * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request 27*53ee8cc1Swenshuai.xi * to get a list of all present wiphys. 28*53ee8cc1Swenshuai.xi * @NL80211_CMD_SET_WIPHY: set wiphy name, needs %NL80211_ATTR_WIPHY and 29*53ee8cc1Swenshuai.xi * %NL80211_ATTR_WIPHY_NAME. 30*53ee8cc1Swenshuai.xi * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request 31*53ee8cc1Swenshuai.xi * or rename notification. Has attributes %NL80211_ATTR_WIPHY and 32*53ee8cc1Swenshuai.xi * %NL80211_ATTR_WIPHY_NAME. 33*53ee8cc1Swenshuai.xi * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes 34*53ee8cc1Swenshuai.xi * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. 35*53ee8cc1Swenshuai.xi * 36*53ee8cc1Swenshuai.xi * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; 37*53ee8cc1Swenshuai.xi * either a dump request on a %NL80211_ATTR_WIPHY or a specific get 38*53ee8cc1Swenshuai.xi * on an %NL80211_ATTR_IFINDEX is supported. 39*53ee8cc1Swenshuai.xi * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires 40*53ee8cc1Swenshuai.xi * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. 41*53ee8cc1Swenshuai.xi * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response 42*53ee8cc1Swenshuai.xi * to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX, 43*53ee8cc1Swenshuai.xi * %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also 44*53ee8cc1Swenshuai.xi * be sent from userspace to request creation of a new virtual interface, 45*53ee8cc1Swenshuai.xi * then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and 46*53ee8cc1Swenshuai.xi * %NL80211_ATTR_IFNAME. 47*53ee8cc1Swenshuai.xi * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes 48*53ee8cc1Swenshuai.xi * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from 49*53ee8cc1Swenshuai.xi * userspace to request deletion of a virtual interface, then requires 50*53ee8cc1Swenshuai.xi * attribute %NL80211_ATTR_IFINDEX. 51*53ee8cc1Swenshuai.xi * 52*53ee8cc1Swenshuai.xi * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified 53*53ee8cc1Swenshuai.xi * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. 54*53ee8cc1Swenshuai.xi * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT or 55*53ee8cc1Swenshuai.xi * %NL80211_ATTR_KEY_THRESHOLD. 56*53ee8cc1Swenshuai.xi * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, 57*53ee8cc1Swenshuai.xi * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC and %NL80211_ATTR_KEY_CIPHER 58*53ee8cc1Swenshuai.xi * attributes. 59*53ee8cc1Swenshuai.xi * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX 60*53ee8cc1Swenshuai.xi * or %NL80211_ATTR_MAC. 61*53ee8cc1Swenshuai.xi * 62*53ee8cc1Swenshuai.xi * @NL80211_CMD_GET_BEACON: retrieve beacon information (returned in a 63*53ee8cc1Swenshuai.xi * %NL80222_CMD_NEW_BEACON message) 64*53ee8cc1Swenshuai.xi * @NL80211_CMD_SET_BEACON: set the beacon on an access point interface 65*53ee8cc1Swenshuai.xi * using the %NL80211_ATTR_BEACON_INTERVAL, %NL80211_ATTR_DTIM_PERIOD, 66*53ee8cc1Swenshuai.xi * %NL80211_BEACON_HEAD and %NL80211_BEACON_TAIL attributes. 67*53ee8cc1Swenshuai.xi * @NL80211_CMD_NEW_BEACON: add a new beacon to an access point interface, 68*53ee8cc1Swenshuai.xi * parameters are like for %NL80211_CMD_SET_BEACON. 69*53ee8cc1Swenshuai.xi * @NL80211_CMD_DEL_BEACON: remove the beacon, stop sending it 70*53ee8cc1Swenshuai.xi * 71*53ee8cc1Swenshuai.xi * @NL80211_CMD_GET_STATION: Get station attributes for station identified by 72*53ee8cc1Swenshuai.xi * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. 73*53ee8cc1Swenshuai.xi * @NL80211_CMD_SET_STATION: Set station attributes for station identified by 74*53ee8cc1Swenshuai.xi * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. 75*53ee8cc1Swenshuai.xi * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the 76*53ee8cc1Swenshuai.xi * the interface identified by %NL80211_ATTR_IFINDEX. 77*53ee8cc1Swenshuai.xi * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC 78*53ee8cc1Swenshuai.xi * or, if no MAC address given, all stations, on the interface identified 79*53ee8cc1Swenshuai.xi * by %NL80211_ATTR_IFINDEX. 80*53ee8cc1Swenshuai.xi * 81*53ee8cc1Swenshuai.xi * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to 82*53ee8cc1Swenshuai.xi * destination %NL80211_ATTR_MAC on the interface identified by 83*53ee8cc1Swenshuai.xi * %NL80211_ATTR_IFINDEX. 84*53ee8cc1Swenshuai.xi * @NL80211_CMD_SET_MPATH: Set mesh path attributes for mesh path to 85*53ee8cc1Swenshuai.xi * destination %NL80211_ATTR_MAC on the interface identified by 86*53ee8cc1Swenshuai.xi * %NL80211_ATTR_IFINDEX. 87*53ee8cc1Swenshuai.xi * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the 88*53ee8cc1Swenshuai.xi * the interface identified by %NL80211_ATTR_IFINDEX. 89*53ee8cc1Swenshuai.xi * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC 90*53ee8cc1Swenshuai.xi * or, if no MAC address given, all mesh paths, on the interface identified 91*53ee8cc1Swenshuai.xi * by %NL80211_ATTR_IFINDEX. 92*53ee8cc1Swenshuai.xi * 93*53ee8cc1Swenshuai.xi * @NL80211_CMD_MAX: highest used command number 94*53ee8cc1Swenshuai.xi * @__NL80211_CMD_AFTER_LAST: internal use 95*53ee8cc1Swenshuai.xi */ 96*53ee8cc1Swenshuai.xi enum nl80211_commands { 97*53ee8cc1Swenshuai.xi /* don't change the order or add anything inbetween, this is ABI! */ 98*53ee8cc1Swenshuai.xi NL80211_CMD_UNSPEC, 99*53ee8cc1Swenshuai.xi 100*53ee8cc1Swenshuai.xi NL80211_CMD_GET_WIPHY, /* can dump */ 101*53ee8cc1Swenshuai.xi NL80211_CMD_SET_WIPHY, 102*53ee8cc1Swenshuai.xi NL80211_CMD_NEW_WIPHY, 103*53ee8cc1Swenshuai.xi NL80211_CMD_DEL_WIPHY, 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi NL80211_CMD_GET_INTERFACE, /* can dump */ 106*53ee8cc1Swenshuai.xi NL80211_CMD_SET_INTERFACE, 107*53ee8cc1Swenshuai.xi NL80211_CMD_NEW_INTERFACE, 108*53ee8cc1Swenshuai.xi NL80211_CMD_DEL_INTERFACE, 109*53ee8cc1Swenshuai.xi 110*53ee8cc1Swenshuai.xi NL80211_CMD_GET_KEY, 111*53ee8cc1Swenshuai.xi NL80211_CMD_SET_KEY, 112*53ee8cc1Swenshuai.xi NL80211_CMD_NEW_KEY, 113*53ee8cc1Swenshuai.xi NL80211_CMD_DEL_KEY, 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xi NL80211_CMD_GET_BEACON, 116*53ee8cc1Swenshuai.xi NL80211_CMD_SET_BEACON, 117*53ee8cc1Swenshuai.xi NL80211_CMD_NEW_BEACON, 118*53ee8cc1Swenshuai.xi NL80211_CMD_DEL_BEACON, 119*53ee8cc1Swenshuai.xi 120*53ee8cc1Swenshuai.xi NL80211_CMD_GET_STATION, 121*53ee8cc1Swenshuai.xi NL80211_CMD_SET_STATION, 122*53ee8cc1Swenshuai.xi NL80211_CMD_NEW_STATION, 123*53ee8cc1Swenshuai.xi NL80211_CMD_DEL_STATION, 124*53ee8cc1Swenshuai.xi 125*53ee8cc1Swenshuai.xi /* add commands here */ 126*53ee8cc1Swenshuai.xi 127*53ee8cc1Swenshuai.xi NL80211_CMD_GET_MPATH, 128*53ee8cc1Swenshuai.xi NL80211_CMD_SET_MPATH, 129*53ee8cc1Swenshuai.xi NL80211_CMD_NEW_MPATH, 130*53ee8cc1Swenshuai.xi NL80211_CMD_DEL_MPATH, 131*53ee8cc1Swenshuai.xi 132*53ee8cc1Swenshuai.xi /* used to define NL80211_CMD_MAX below */ 133*53ee8cc1Swenshuai.xi __NL80211_CMD_AFTER_LAST, 134*53ee8cc1Swenshuai.xi NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 135*53ee8cc1Swenshuai.xi }; 136*53ee8cc1Swenshuai.xi 137*53ee8cc1Swenshuai.xi 138*53ee8cc1Swenshuai.xi /** 139*53ee8cc1Swenshuai.xi * enum nl80211_attrs - nl80211 netlink attributes 140*53ee8cc1Swenshuai.xi * 141*53ee8cc1Swenshuai.xi * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors 142*53ee8cc1Swenshuai.xi * 143*53ee8cc1Swenshuai.xi * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. 144*53ee8cc1Swenshuai.xi * /sys/class/ieee80211/<phyname>/index 145*53ee8cc1Swenshuai.xi * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) 146*53ee8cc1Swenshuai.xi * 147*53ee8cc1Swenshuai.xi * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on 148*53ee8cc1Swenshuai.xi * @NL80211_ATTR_IFNAME: network interface name 149*53ee8cc1Swenshuai.xi * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype 150*53ee8cc1Swenshuai.xi * 151*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MAC: MAC address (various uses) 152*53ee8cc1Swenshuai.xi * 153*53ee8cc1Swenshuai.xi * @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of 154*53ee8cc1Swenshuai.xi * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC 155*53ee8cc1Swenshuai.xi * keys 156*53ee8cc1Swenshuai.xi * @NL80211_ATTR_KEY_IDX: key ID (u8, 0-3) 157*53ee8cc1Swenshuai.xi * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 158*53ee8cc1Swenshuai.xi * section 7.3.2.25.1, e.g. 0x000FAC04) 159*53ee8cc1Swenshuai.xi * @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and 160*53ee8cc1Swenshuai.xi * CCMP keys, each six bytes in little endian 161*53ee8cc1Swenshuai.xi * 162*53ee8cc1Swenshuai.xi * @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU 163*53ee8cc1Swenshuai.xi * @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing 164*53ee8cc1Swenshuai.xi * @NL80211_ATTR_BEACON_HEAD: portion of the beacon before the TIM IE 165*53ee8cc1Swenshuai.xi * @NL80211_ATTR_BEACON_TAIL: portion of the beacon after the TIM IE 166*53ee8cc1Swenshuai.xi * 167*53ee8cc1Swenshuai.xi * @NL80211_ATTR_STA_AID: Association ID for the station (u16) 168*53ee8cc1Swenshuai.xi * @NL80211_ATTR_STA_FLAGS: flags, nested element with NLA_FLAG attributes of 169*53ee8cc1Swenshuai.xi * &enum nl80211_sta_flags. 170*53ee8cc1Swenshuai.xi * @NL80211_ATTR_STA_LISTEN_INTERVAL: listen interval as defined by 171*53ee8cc1Swenshuai.xi * IEEE 802.11 7.3.1.6 (u16). 172*53ee8cc1Swenshuai.xi * @NL80211_ATTR_STA_SUPPORTED_RATES: supported rates, array of supported 173*53ee8cc1Swenshuai.xi * rates as defined by IEEE 802.11 7.3.2.2 but without the length 174*53ee8cc1Swenshuai.xi * restriction (at most %NL80211_MAX_SUPP_RATES). 175*53ee8cc1Swenshuai.xi * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station 176*53ee8cc1Swenshuai.xi * to, or the AP interface the station was originally added to to. 177*53ee8cc1Swenshuai.xi * @NL80211_ATTR_STA_INFO: information about a station, part of station info 178*53ee8cc1Swenshuai.xi * given for %NL80211_CMD_GET_STATION, nested attribute containing 179*53ee8cc1Swenshuai.xi * info as possible, see &enum nl80211_sta_info. 180*53ee8cc1Swenshuai.xi * 181*53ee8cc1Swenshuai.xi * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands, 182*53ee8cc1Swenshuai.xi * consisting of a nested array. 183*53ee8cc1Swenshuai.xi * 184*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes). 185*53ee8cc1Swenshuai.xi * @NL80211_ATTR_PLINK_ACTION: action to perform on the mesh peer link. 186*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path. 187*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path 188*53ee8cc1Swenshuai.xi * info given for %NL80211_CMD_GET_MPATH, nested attribute described at 189*53ee8cc1Swenshuai.xi * &enum nl80211_mpath_info. 190*53ee8cc1Swenshuai.xi * 191*53ee8cc1Swenshuai.xi * 192*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of 193*53ee8cc1Swenshuai.xi * &enum nl80211_mntr_flags. 194*53ee8cc1Swenshuai.xi * 195*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MAX: highest attribute number currently defined 196*53ee8cc1Swenshuai.xi * @__NL80211_ATTR_AFTER_LAST: internal use 197*53ee8cc1Swenshuai.xi */ 198*53ee8cc1Swenshuai.xi enum nl80211_attrs { 199*53ee8cc1Swenshuai.xi /* don't change the order or add anything inbetween, this is ABI! */ 200*53ee8cc1Swenshuai.xi NL80211_ATTR_UNSPEC, 201*53ee8cc1Swenshuai.xi 202*53ee8cc1Swenshuai.xi NL80211_ATTR_WIPHY, 203*53ee8cc1Swenshuai.xi NL80211_ATTR_WIPHY_NAME, 204*53ee8cc1Swenshuai.xi 205*53ee8cc1Swenshuai.xi NL80211_ATTR_IFINDEX, 206*53ee8cc1Swenshuai.xi NL80211_ATTR_IFNAME, 207*53ee8cc1Swenshuai.xi NL80211_ATTR_IFTYPE, 208*53ee8cc1Swenshuai.xi 209*53ee8cc1Swenshuai.xi NL80211_ATTR_MAC, 210*53ee8cc1Swenshuai.xi 211*53ee8cc1Swenshuai.xi NL80211_ATTR_KEY_DATA, 212*53ee8cc1Swenshuai.xi NL80211_ATTR_KEY_IDX, 213*53ee8cc1Swenshuai.xi NL80211_ATTR_KEY_CIPHER, 214*53ee8cc1Swenshuai.xi NL80211_ATTR_KEY_SEQ, 215*53ee8cc1Swenshuai.xi NL80211_ATTR_KEY_DEFAULT, 216*53ee8cc1Swenshuai.xi 217*53ee8cc1Swenshuai.xi NL80211_ATTR_BEACON_INTERVAL, 218*53ee8cc1Swenshuai.xi NL80211_ATTR_DTIM_PERIOD, 219*53ee8cc1Swenshuai.xi NL80211_ATTR_BEACON_HEAD, 220*53ee8cc1Swenshuai.xi NL80211_ATTR_BEACON_TAIL, 221*53ee8cc1Swenshuai.xi 222*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_AID, 223*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_FLAGS, 224*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_LISTEN_INTERVAL, 225*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_SUPPORTED_RATES, 226*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_VLAN, 227*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_INFO, 228*53ee8cc1Swenshuai.xi 229*53ee8cc1Swenshuai.xi NL80211_ATTR_WIPHY_BANDS, 230*53ee8cc1Swenshuai.xi 231*53ee8cc1Swenshuai.xi NL80211_ATTR_MNTR_FLAGS, 232*53ee8cc1Swenshuai.xi 233*53ee8cc1Swenshuai.xi /* add attributes here, update the policy in nl80211.c */ 234*53ee8cc1Swenshuai.xi 235*53ee8cc1Swenshuai.xi NL80211_ATTR_MESH_ID, 236*53ee8cc1Swenshuai.xi NL80211_ATTR_STA_PLINK_ACTION, 237*53ee8cc1Swenshuai.xi NL80211_ATTR_MPATH_NEXT_HOP, 238*53ee8cc1Swenshuai.xi NL80211_ATTR_MPATH_INFO, 239*53ee8cc1Swenshuai.xi 240*53ee8cc1Swenshuai.xi __NL80211_ATTR_AFTER_LAST, 241*53ee8cc1Swenshuai.xi NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 242*53ee8cc1Swenshuai.xi }; 243*53ee8cc1Swenshuai.xi 244*53ee8cc1Swenshuai.xi #define NL80211_MAX_SUPP_RATES 32 245*53ee8cc1Swenshuai.xi 246*53ee8cc1Swenshuai.xi /** 247*53ee8cc1Swenshuai.xi * enum nl80211_iftype - (virtual) interface types 248*53ee8cc1Swenshuai.xi * 249*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides 250*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_ADHOC: independent BSS member 251*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_STATION: managed BSS member 252*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_AP: access point 253*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points 254*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_WDS: wireless distribution interface 255*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames 256*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_MESH_POINT: mesh point 257*53ee8cc1Swenshuai.xi * @NL80211_IFTYPE_MAX: highest interface type number currently defined 258*53ee8cc1Swenshuai.xi * @__NL80211_IFTYPE_AFTER_LAST: internal use 259*53ee8cc1Swenshuai.xi * 260*53ee8cc1Swenshuai.xi * These values are used with the %NL80211_ATTR_IFTYPE 261*53ee8cc1Swenshuai.xi * to set the type of an interface. 262*53ee8cc1Swenshuai.xi * 263*53ee8cc1Swenshuai.xi */ 264*53ee8cc1Swenshuai.xi enum nl80211_iftype { 265*53ee8cc1Swenshuai.xi NL80211_IFTYPE_UNSPECIFIED, 266*53ee8cc1Swenshuai.xi NL80211_IFTYPE_ADHOC, 267*53ee8cc1Swenshuai.xi NL80211_IFTYPE_STATION, 268*53ee8cc1Swenshuai.xi NL80211_IFTYPE_AP, 269*53ee8cc1Swenshuai.xi NL80211_IFTYPE_AP_VLAN, 270*53ee8cc1Swenshuai.xi NL80211_IFTYPE_WDS, 271*53ee8cc1Swenshuai.xi NL80211_IFTYPE_MONITOR, 272*53ee8cc1Swenshuai.xi NL80211_IFTYPE_MESH_POINT, 273*53ee8cc1Swenshuai.xi 274*53ee8cc1Swenshuai.xi /* keep last */ 275*53ee8cc1Swenshuai.xi __NL80211_IFTYPE_AFTER_LAST, 276*53ee8cc1Swenshuai.xi NL80211_IFTYPE_MAX = __NL80211_IFTYPE_AFTER_LAST - 1 277*53ee8cc1Swenshuai.xi }; 278*53ee8cc1Swenshuai.xi 279*53ee8cc1Swenshuai.xi /** 280*53ee8cc1Swenshuai.xi * enum nl80211_sta_flags - station flags 281*53ee8cc1Swenshuai.xi * 282*53ee8cc1Swenshuai.xi * Station flags. When a station is added to an AP interface, it is 283*53ee8cc1Swenshuai.xi * assumed to be already associated (and hence authenticated.) 284*53ee8cc1Swenshuai.xi * 285*53ee8cc1Swenshuai.xi * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X) 286*53ee8cc1Swenshuai.xi * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames 287*53ee8cc1Swenshuai.xi * with short barker preamble 288*53ee8cc1Swenshuai.xi * @NL80211_STA_FLAG_WME: station is WME/QoS capable 289*53ee8cc1Swenshuai.xi */ 290*53ee8cc1Swenshuai.xi enum nl80211_sta_flags { 291*53ee8cc1Swenshuai.xi __NL80211_STA_FLAG_INVALID, 292*53ee8cc1Swenshuai.xi NL80211_STA_FLAG_AUTHORIZED, 293*53ee8cc1Swenshuai.xi NL80211_STA_FLAG_SHORT_PREAMBLE, 294*53ee8cc1Swenshuai.xi NL80211_STA_FLAG_WME, 295*53ee8cc1Swenshuai.xi 296*53ee8cc1Swenshuai.xi /* keep last */ 297*53ee8cc1Swenshuai.xi __NL80211_STA_FLAG_AFTER_LAST, 298*53ee8cc1Swenshuai.xi NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1 299*53ee8cc1Swenshuai.xi }; 300*53ee8cc1Swenshuai.xi 301*53ee8cc1Swenshuai.xi /** 302*53ee8cc1Swenshuai.xi * enum nl80211_sta_info - station information 303*53ee8cc1Swenshuai.xi * 304*53ee8cc1Swenshuai.xi * These attribute types are used with %NL80211_ATTR_STA_INFO 305*53ee8cc1Swenshuai.xi * when getting information about a station. 306*53ee8cc1Swenshuai.xi * 307*53ee8cc1Swenshuai.xi * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved 308*53ee8cc1Swenshuai.xi * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) 309*53ee8cc1Swenshuai.xi * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) 310*53ee8cc1Swenshuai.xi * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) 311*53ee8cc1Swenshuai.xi * @__NL80211_STA_INFO_AFTER_LAST: internal 312*53ee8cc1Swenshuai.xi * @NL80211_STA_INFO_MAX: highest possible station info attribute 313*53ee8cc1Swenshuai.xi */ 314*53ee8cc1Swenshuai.xi enum nl80211_sta_info { 315*53ee8cc1Swenshuai.xi __NL80211_STA_INFO_INVALID, 316*53ee8cc1Swenshuai.xi NL80211_STA_INFO_INACTIVE_TIME, 317*53ee8cc1Swenshuai.xi NL80211_STA_INFO_RX_BYTES, 318*53ee8cc1Swenshuai.xi NL80211_STA_INFO_TX_BYTES, 319*53ee8cc1Swenshuai.xi NL80211_STA_INFO_LLID, 320*53ee8cc1Swenshuai.xi NL80211_STA_INFO_PLID, 321*53ee8cc1Swenshuai.xi NL80211_STA_INFO_PLINK_STATE, 322*53ee8cc1Swenshuai.xi 323*53ee8cc1Swenshuai.xi /* keep last */ 324*53ee8cc1Swenshuai.xi __NL80211_STA_INFO_AFTER_LAST, 325*53ee8cc1Swenshuai.xi NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 326*53ee8cc1Swenshuai.xi }; 327*53ee8cc1Swenshuai.xi 328*53ee8cc1Swenshuai.xi /** 329*53ee8cc1Swenshuai.xi * enum nl80211_mpath_flags - nl80211 mesh path flags 330*53ee8cc1Swenshuai.xi * 331*53ee8cc1Swenshuai.xi * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active 332*53ee8cc1Swenshuai.xi * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running 333*53ee8cc1Swenshuai.xi * @NL80211_MPATH_FLAG_DSN_VALID: the mesh path contains a valid DSN 334*53ee8cc1Swenshuai.xi * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set 335*53ee8cc1Swenshuai.xi * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded 336*53ee8cc1Swenshuai.xi */ 337*53ee8cc1Swenshuai.xi enum nl80211_mpath_flags { 338*53ee8cc1Swenshuai.xi NL80211_MPATH_FLAG_ACTIVE = 1<<0, 339*53ee8cc1Swenshuai.xi NL80211_MPATH_FLAG_RESOLVING = 1<<1, 340*53ee8cc1Swenshuai.xi NL80211_MPATH_FLAG_DSN_VALID = 1<<2, 341*53ee8cc1Swenshuai.xi NL80211_MPATH_FLAG_FIXED = 1<<3, 342*53ee8cc1Swenshuai.xi NL80211_MPATH_FLAG_RESOLVED = 1<<4, 343*53ee8cc1Swenshuai.xi }; 344*53ee8cc1Swenshuai.xi 345*53ee8cc1Swenshuai.xi /** 346*53ee8cc1Swenshuai.xi * enum nl80211_mpath_info - mesh path information 347*53ee8cc1Swenshuai.xi * 348*53ee8cc1Swenshuai.xi * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting 349*53ee8cc1Swenshuai.xi * information about a mesh path. 350*53ee8cc1Swenshuai.xi * 351*53ee8cc1Swenshuai.xi * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved 352*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination 353*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_DSN: destination sequence number 354*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path 355*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now 356*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in 357*53ee8cc1Swenshuai.xi * &enum nl80211_mpath_flags; 358*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_DISCOVERY_TIMEOUT: total path discovery timeout, in msec 359*53ee8cc1Swenshuai.xi * @NL80211_ATTR_MPATH_DISCOVERY_RETRIES: mesh path discovery retries 360*53ee8cc1Swenshuai.xi */ 361*53ee8cc1Swenshuai.xi enum nl80211_mpath_info { 362*53ee8cc1Swenshuai.xi __NL80211_MPATH_INFO_INVALID, 363*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_FRAME_QLEN, 364*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_DSN, 365*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_METRIC, 366*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_EXPTIME, 367*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_FLAGS, 368*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_DISCOVERY_TIMEOUT, 369*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_DISCOVERY_RETRIES, 370*53ee8cc1Swenshuai.xi 371*53ee8cc1Swenshuai.xi /* keep last */ 372*53ee8cc1Swenshuai.xi __NL80211_MPATH_INFO_AFTER_LAST, 373*53ee8cc1Swenshuai.xi NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 374*53ee8cc1Swenshuai.xi }; 375*53ee8cc1Swenshuai.xi 376*53ee8cc1Swenshuai.xi /** 377*53ee8cc1Swenshuai.xi * enum nl80211_band_attr - band attributes 378*53ee8cc1Swenshuai.xi * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved 379*53ee8cc1Swenshuai.xi * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band, 380*53ee8cc1Swenshuai.xi * an array of nested frequency attributes 381*53ee8cc1Swenshuai.xi * @NL80211_BAND_ATTR_RATES: supported bitrates in this band, 382*53ee8cc1Swenshuai.xi * an array of nested bitrate attributes 383*53ee8cc1Swenshuai.xi */ 384*53ee8cc1Swenshuai.xi enum nl80211_band_attr { 385*53ee8cc1Swenshuai.xi __NL80211_BAND_ATTR_INVALID, 386*53ee8cc1Swenshuai.xi NL80211_BAND_ATTR_FREQS, 387*53ee8cc1Swenshuai.xi NL80211_BAND_ATTR_RATES, 388*53ee8cc1Swenshuai.xi 389*53ee8cc1Swenshuai.xi /* keep last */ 390*53ee8cc1Swenshuai.xi __NL80211_BAND_ATTR_AFTER_LAST, 391*53ee8cc1Swenshuai.xi NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 392*53ee8cc1Swenshuai.xi }; 393*53ee8cc1Swenshuai.xi 394*53ee8cc1Swenshuai.xi /** 395*53ee8cc1Swenshuai.xi * enum nl80211_frequency_attr - frequency attributes 396*53ee8cc1Swenshuai.xi * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz 397*53ee8cc1Swenshuai.xi * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current 398*53ee8cc1Swenshuai.xi * regulatory domain. 399*53ee8cc1Swenshuai.xi * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is 400*53ee8cc1Swenshuai.xi * permitted on this channel in current regulatory domain. 401*53ee8cc1Swenshuai.xi * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted 402*53ee8cc1Swenshuai.xi * on this channel in current regulatory domain. 403*53ee8cc1Swenshuai.xi * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory 404*53ee8cc1Swenshuai.xi * on this channel in current regulatory domain. 405*53ee8cc1Swenshuai.xi */ 406*53ee8cc1Swenshuai.xi enum nl80211_frequency_attr { 407*53ee8cc1Swenshuai.xi __NL80211_FREQUENCY_ATTR_INVALID, 408*53ee8cc1Swenshuai.xi NL80211_FREQUENCY_ATTR_FREQ, 409*53ee8cc1Swenshuai.xi NL80211_FREQUENCY_ATTR_DISABLED, 410*53ee8cc1Swenshuai.xi NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, 411*53ee8cc1Swenshuai.xi NL80211_FREQUENCY_ATTR_NO_IBSS, 412*53ee8cc1Swenshuai.xi NL80211_FREQUENCY_ATTR_RADAR, 413*53ee8cc1Swenshuai.xi 414*53ee8cc1Swenshuai.xi /* keep last */ 415*53ee8cc1Swenshuai.xi __NL80211_FREQUENCY_ATTR_AFTER_LAST, 416*53ee8cc1Swenshuai.xi NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1 417*53ee8cc1Swenshuai.xi }; 418*53ee8cc1Swenshuai.xi 419*53ee8cc1Swenshuai.xi /** 420*53ee8cc1Swenshuai.xi * enum nl80211_bitrate_attr - bitrate attributes 421*53ee8cc1Swenshuai.xi * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps 422*53ee8cc1Swenshuai.xi * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported 423*53ee8cc1Swenshuai.xi * in 2.4 GHz band. 424*53ee8cc1Swenshuai.xi */ 425*53ee8cc1Swenshuai.xi enum nl80211_bitrate_attr { 426*53ee8cc1Swenshuai.xi __NL80211_BITRATE_ATTR_INVALID, 427*53ee8cc1Swenshuai.xi NL80211_BITRATE_ATTR_RATE, 428*53ee8cc1Swenshuai.xi NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE, 429*53ee8cc1Swenshuai.xi 430*53ee8cc1Swenshuai.xi /* keep last */ 431*53ee8cc1Swenshuai.xi __NL80211_BITRATE_ATTR_AFTER_LAST, 432*53ee8cc1Swenshuai.xi NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1 433*53ee8cc1Swenshuai.xi }; 434*53ee8cc1Swenshuai.xi 435*53ee8cc1Swenshuai.xi /** 436*53ee8cc1Swenshuai.xi * enum nl80211_mntr_flags - monitor configuration flags 437*53ee8cc1Swenshuai.xi * 438*53ee8cc1Swenshuai.xi * Monitor configuration flags. 439*53ee8cc1Swenshuai.xi * 440*53ee8cc1Swenshuai.xi * @__NL80211_MNTR_FLAG_INVALID: reserved 441*53ee8cc1Swenshuai.xi * 442*53ee8cc1Swenshuai.xi * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS 443*53ee8cc1Swenshuai.xi * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP 444*53ee8cc1Swenshuai.xi * @NL80211_MNTR_FLAG_CONTROL: pass control frames 445*53ee8cc1Swenshuai.xi * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering 446*53ee8cc1Swenshuai.xi * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing. 447*53ee8cc1Swenshuai.xi * overrides all other flags. 448*53ee8cc1Swenshuai.xi * 449*53ee8cc1Swenshuai.xi * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use 450*53ee8cc1Swenshuai.xi * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag 451*53ee8cc1Swenshuai.xi */ 452*53ee8cc1Swenshuai.xi enum nl80211_mntr_flags { 453*53ee8cc1Swenshuai.xi __NL80211_MNTR_FLAG_INVALID, 454*53ee8cc1Swenshuai.xi NL80211_MNTR_FLAG_FCSFAIL, 455*53ee8cc1Swenshuai.xi NL80211_MNTR_FLAG_PLCPFAIL, 456*53ee8cc1Swenshuai.xi NL80211_MNTR_FLAG_CONTROL, 457*53ee8cc1Swenshuai.xi NL80211_MNTR_FLAG_OTHER_BSS, 458*53ee8cc1Swenshuai.xi NL80211_MNTR_FLAG_COOK_FRAMES, 459*53ee8cc1Swenshuai.xi 460*53ee8cc1Swenshuai.xi /* keep last */ 461*53ee8cc1Swenshuai.xi __NL80211_MNTR_FLAG_AFTER_LAST, 462*53ee8cc1Swenshuai.xi NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 463*53ee8cc1Swenshuai.xi }; 464*53ee8cc1Swenshuai.xi 465*53ee8cc1Swenshuai.xi #endif /* __LINUX_NL80211_H */ 466