///
import { BaseObject, StreamData } from '../structs';
/** supported nl80211 commands */
export declare enum Commands {
/**
* request information about a wiphy or dump request
* to get a list of all present wiphys.
*/
GET_WIPHY = 1,
/**
* set wiphy parameters, needs %NL80211_ATTR_WIPHY or
* %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
* %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the
* attributes determining the channel width; this is used for setting
* monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT,
* %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
* and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.
* However, for setting the channel, see %NL80211_CMD_SET_CHANNEL
* instead, the support here is for backward compatibility only.
*/
SET_WIPHY = 2,
/**
* Newly created wiphy, response to get request
* or rename notification. Has attributes %NL80211_ATTR_WIPHY and
* %NL80211_ATTR_WIPHY_NAME.
*/
NEW_WIPHY = 3,
/**
* Wiphy deleted. Has attributes
* %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
*/
DEL_WIPHY = 4,
/**
* Request an interface's configuration;
* either a dump request for all interfaces or a specific get with a
* single %NL80211_ATTR_IFINDEX is supported.
*/
GET_INTERFACE = 5,
/**
* Set type of a virtual interface, requires
* %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
*/
SET_INTERFACE = 6,
/**
* Newly created virtual interface or response
* to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX,
* %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also
* be sent from userspace to request creation of a new virtual interface,
* then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and
* %NL80211_ATTR_IFNAME.
*/
NEW_INTERFACE = 7,
/**
* Virtual interface was deleted, has attributes
* %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
* userspace to request deletion of a virtual interface, then requires
* attribute %NL80211_ATTR_IFINDEX.
*/
DEL_INTERFACE = 8,
/**
* Get sequence counter information for a key specified
* by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
*/
GET_KEY = 9,
/**
* Set key attributes %NL80211_ATTR_KEY_DEFAULT,
* %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.
*/
SET_KEY = 10,
/**
* add a key with given %NL80211_ATTR_KEY_DATA,
* %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,
* and %NL80211_ATTR_KEY_SEQ attributes.
*/
NEW_KEY = 11,
/**
* delete a key identified by %NL80211_ATTR_KEY_IDX
* or %NL80211_ATTR_MAC.
*/
DEL_KEY = 12,
/** (not used) */
GET_BEACON = 13,
/**
* change the beacon on an access point interface
* using the %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL
* attributes. For drivers that generate the beacon and probe responses
* internally, the following attributes must be provided: %NL80211_ATTR_IE,
* %NL80211_ATTR_IE_PROBE_RESP and %NL80211_ATTR_IE_ASSOC_RESP.
*/
SET_BEACON = 14,
/**
* Start AP operation on an AP interface, parameters
* are like for %NL80211_CMD_SET_BEACON, and additionally parameters that
* do not change are used, these include %NL80211_ATTR_BEACON_INTERVAL,
* %NL80211_ATTR_DTIM_PERIOD, %NL80211_ATTR_SSID,
* %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE,
* %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS,
* %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY,
* %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT,
* %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS.
* The channel to use can be set on the interface or be given using the
* %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width.
*/
START_AP = 15,
/** Stop AP operation on the given interface */
STOP_AP = 16,
/**
* Get station attributes for station identified by
* %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
*/
GET_STATION = 17,
/**
* Set station attributes for station identified by
* %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
*/
SET_STATION = 18,
/**
* Add a station with given attributes to the
* the interface identified by %NL80211_ATTR_IFINDEX.
*/
NEW_STATION = 19,
/**
* Remove a station identified by %NL80211_ATTR_MAC
* or, if no MAC address given, all stations, on the interface identified
* by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and
* %NL80211_ATTR_REASON_CODE can optionally be used to specify which type
* of disconnection indication should be sent to the station
* (Deauthentication or Disassociation frame and reason code for that
* frame).
*/
DEL_STATION = 20,
/**
* Get mesh path attributes for mesh path to
* destination %NL80211_ATTR_MAC on the interface identified by
* %NL80211_ATTR_IFINDEX.
*/
GET_MPATH = 21,
/**
* Set mesh path attributes for mesh path to
* destination %NL80211_ATTR_MAC on the interface identified by
* %NL80211_ATTR_IFINDEX.
*/
SET_MPATH = 22,
/**
* Create a new mesh path for the destination given by
* %NL80211_ATTR_MAC via %NL80211_ATTR_MPATH_NEXT_HOP.
*/
NEW_MPATH = 23,
/**
* Delete a mesh path to the destination given by
* %NL80211_ATTR_MAC.
*/
DEL_MPATH = 24,
/**
* Set BSS attributes for BSS identified by
* %NL80211_ATTR_IFINDEX.
*/
SET_BSS = 25,
/**
* Set current regulatory domain. CRDA sends this command
* after being queried by the kernel. CRDA replies by sending a regulatory
* domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
* current alpha2 if it found a match. It also provides
* NL80211_ATTR_REG_RULE_FLAGS, and a set of regulatory rules. Each
* regulatory rule is a nested set of attributes given by
* %NL80211_ATTR_REG_RULE_FREQ_[START|END] and
* %NL80211_ATTR_FREQ_RANGE_MAX_BW with an attached power rule given by
* %NL80211_ATTR_REG_RULE_POWER_MAX_ANT_GAIN and
* %NL80211_ATTR_REG_RULE_POWER_MAX_EIRP.
*/
SET_REG = 26,
/**
* ask the wireless core to set the regulatory domain
* to the specified ISO/IEC 3166-1 alpha2 country code. The core will
* store this as a valid request and then query userspace for it.
*/
REQ_SET_REG = 27,
/**
* Get mesh networking properties for the
* interface identified by %NL80211_ATTR_IFINDEX
*/
GET_MESH_CONFIG = 28,
/**
* Set mesh networking properties for the
* interface identified by %NL80211_ATTR_IFINDEX
*/
SET_MESH_CONFIG = 29,
/**
* Set extra IEs for management frames. The
* interface is identified with %NL80211_ATTR_IFINDEX and the management
* frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be
* added to the end of the specified management frame is specified with
* %NL80211_ATTR_IE. If the command succeeds, the requested data will be
* added to all specified management frames generated by
* kernel/firmware/driver.
* Note: This command has been removed and it is only reserved at this
* point to avoid re-using existing command number. The functionality this
* command was planned for has been provided with cleaner design with the
* option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
* NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
* NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.
*/
SET_MGMT_EXTRA_IE = 30,
/**
* ask the wireless core to send us its currently set
* regulatory domain. If %NL80211_ATTR_WIPHY is specified and the device
* has a private regulatory domain, it will be returned. Otherwise, the
* global regdomain will be returned.
* A device will have a private regulatory domain if it uses the
* regulatory_hint() API. Even when a private regdomain is used the channel
* information will still be mended according to further hints from
* the regulatory core to help with compliance. A dump version of this API
* is now available which will returns the global regdomain as well as
* all private regdomains of present wiphys (for those that have it).
* If a wiphy is self-managed (%NL80211_ATTR_WIPHY_SELF_MANAGED_REG), then
* its private regdomain is the only valid one for it. The regulatory
* core is not used to help with compliance in this case.
*/
GET_REG = 31,
/** get scan results */
GET_SCAN = 32,
/**
* trigger a new scan with the given parameters
* %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the
* probe requests at CCK rate or not. %NL80211_ATTR_BSSID can be used to
* specify a BSSID to scan for; if not included, the wildcard BSSID will
* be used.
*/
TRIGGER_SCAN = 33,
/**
* scan notification (as a reply to
* NL80211_CMD_GET_SCAN and on the "scan" multicast group)
*/
NEW_SCAN_RESULTS = 34,
/**
* scan was aborted, for unspecified reasons,
* partial scan results may be available
*/
SCAN_ABORTED = 35,
/**
* indicates to userspace the regulatory domain
* has been changed and provides details of the request information
* that caused the change such as who initiated the regulatory request
* (%NL80211_ATTR_REG_INITIATOR), the wiphy_idx
* (%NL80211_ATTR_REG_ALPHA2) on which the request was made from if
* the initiator was %NL80211_REGDOM_SET_BY_COUNTRY_IE or
* %NL80211_REGDOM_SET_BY_DRIVER, the type of regulatory domain
* set (%NL80211_ATTR_REG_TYPE), if the type of regulatory domain is
* %NL80211_REG_TYPE_COUNTRY the alpha2 to which we have moved on
* to (%NL80211_ATTR_REG_ALPHA2).
*/
REG_CHANGE = 36,
/**
* authentication request and notification.
* This command is used both as a command (request to authenticate) and
* as an event on the "mlme" multicast group indicating completion of the
* authentication process.
* When used as a command, %NL80211_ATTR_IFINDEX is used to identify the
* interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and
* BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
* the SSID (mainly for association, but is included in authentication
* request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used
* to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE
* is used to specify the authentication type. %NL80211_ATTR_IE is used to
* define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs)
* to be added to the frame.
* When used as an event, this reports reception of an Authentication
* frame in station and IBSS modes when the local MLME processed the
* frame, i.e., it was for the local STA and was received in correct
* state. This is similar to MLME-AUTHENTICATE.confirm primitive in the
* MLME SAP interface (kernel providing MLME, userspace SME). The
* included %NL80211_ATTR_FRAME attribute contains the management frame
* (including both the header and frame body, but not FCS). This event is
* also used to indicate if the authentication attempt timed out. In that
* case the %NL80211_ATTR_FRAME attribute is replaced with a
* %NL80211_ATTR_TIMED_OUT flag (and %NL80211_ATTR_MAC to indicate which
* pending authentication timed out).
*/
AUTHENTICATE = 37,
/**
* association request and notification; like
* NL80211_CMD_AUTHENTICATE but for Association and Reassociation
* (similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request,
* MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). The
* %NL80211_ATTR_PREV_BSSID attribute is used to specify whether the
* request is for the initial association to an ESS (that attribute not
* included) or for reassociation within the ESS (that attribute is
* included).
*/
ASSOCIATE = 38,
/**
* deauthentication request and notification; like
* NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to
* MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication
* primitives).
*/
DEAUTHENTICATE = 39,
/**
* disassociation request and notification; like
* NL80211_CMD_AUTHENTICATE but for Disassociation frames (similar to
* MLME-DISASSOCIATE.request and MLME-DISASSOCIATE.indication primitives).
*/
DISASSOCIATE = 40,
/**
* notification of a locally detected Michael
* MIC (part of TKIP) failure; sent on the "mlme" multicast group; the
* event includes %NL80211_ATTR_MAC to describe the source MAC address of
* the frame with invalid MIC, %NL80211_ATTR_KEY_TYPE to show the key
* type, %NL80211_ATTR_KEY_IDX to indicate the key identifier, and
* %NL80211_ATTR_KEY_SEQ to indicate the TSC value of the frame; this
* event matches with MLME-MICHAELMICFAILURE.indication() primitive
*/
MICHAEL_MIC_FAILURE = 41,
/**
* indicates to userspace that an AP beacon
* has been found while world roaming thus enabling active scan or
* any mode of operation that initiates TX (beacons) on a channel
* where we would not have been able to do either before. As an example
* if you are world roaming (regulatory domain set to world or if your
* driver is using a custom world roaming regulatory domain) and while
* doing a passive scan on the 5 GHz band you find an AP there (if not
* on a DFS channel) you will now be able to actively scan for that AP
* or use AP mode on your card on that same channel. Note that this will
* never be used for channels 1-11 on the 2 GHz band as they are always
* enabled world wide. This beacon hint is only sent if your device had
* either disabled active scanning or beaconing on a channel. We send to
* userspace the wiphy on which we removed a restriction from
* (%NL80211_ATTR_WIPHY) and the channel on which this occurred
* before (%NL80211_ATTR_FREQ_BEFORE) and after (%NL80211_ATTR_FREQ_AFTER)
* the beacon hint was processed.
*/
REG_BEACON_HINT = 42,
/**
* Join a new IBSS -- given at least an SSID and a
* FREQ attribute (for the initial frequency if no peer can be found)
* and optionally a MAC (as BSSID) and FREQ_FIXED attribute if those
* should be fixed rather than automatically determined. Can only be
* executed on a network interface that is UP, and fixed BSSID/FREQ
* may be rejected. Another optional parameter is the beacon interval,
* given in the %NL80211_ATTR_BEACON_INTERVAL attribute, which if not
* given defaults to 100 TU (102.4ms).
*/
JOIN_IBSS = 43,
/**
* Leave the IBSS -- no special arguments, the IBSS is
* determined by the network interface.
*/
LEAVE_IBSS = 44,
/**
* testmode command, takes a wiphy (or ifindex) attribute
* to identify the device, and the TESTDATA blob attribute to pass through
* to the driver.
*/
TESTMODE = 45,
/**
* connection request and notification; this command
* requests to connect to a specified network but without separating
* auth and assoc steps. For this, you need to specify the SSID in a
* %NL80211_ATTR_SSID attribute, and can optionally specify the association
* IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
* %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
* %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
* %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
* %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %NL80211_ATTR_MAC_HINT, and
* %NL80211_ATTR_WIPHY_FREQ_HINT.
* If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are
* restrictions on BSS selection, i.e., they effectively prevent roaming
* within the ESS. %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT
* can be included to provide a recommendation of the initial BSS while
* allowing the driver to roam to other BSSes within the ESS and also to
* ignore this recommendation if the indicated BSS is not ideal. Only one
* set of BSSID,frequency parameters is used (i.e., either the enforcing
* %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
* %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
* Driver shall not modify the IEs specified through %NL80211_ATTR_IE if
* %NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is
* included, these IEs through %NL80211_ATTR_IE are specified by the user
* space based on the best possible BSS selected. Thus, if the driver ends
* up selecting a different BSS, it can modify these IEs accordingly (e.g.
* userspace asks the driver to perform PMKSA caching with BSS1 and the
* driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE
* has to get updated with the apt PMKID).
* %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
* the ESS in case the device is already associated and an association with
* a different BSS is desired.
* Background scan period can optionally be
* specified in %NL80211_ATTR_BG_SCAN_PERIOD,
* if not specified default background scan configuration
* in driver is used and if period value is 0, bg scan will be disabled.
* This attribute is ignored if driver does not support roam scan.
* It is also sent as an event, with the BSSID and response IEs when the
* connection is established or failed to be established. This can be
* determined by the %NL80211_ATTR_STATUS_CODE attribute (0 = success,
* non-zero = failure). If %NL80211_ATTR_TIMED_OUT is included in the
* event, the connection attempt failed due to not being able to initiate
* authentication/association or not receiving a response from the AP.
* Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as
* well to remain backwards compatible.
* When establishing a security association, drivers that support 4 way
* handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when
* the 4 way handshake is completed successfully.
*/
CONNECT = 46,
/**
* Notification indicating the card/driver roamed by itself.
* When a security association was established with the new AP (e.g. if
* the FT protocol was used for roaming or the driver completed the 4 way
* handshake), this event should be followed by an
* %NL80211_CMD_PORT_AUTHORIZED event.
*/
ROAM = 47,
/**
* drop a given connection; also used to notify
* userspace that a connection was dropped by the AP or due to other
* reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and
* %NL80211_ATTR_REASON_CODE attributes are used.
*/
DISCONNECT = 48,
/**
* Set a wiphy's netns. Note that all devices
* associated with this wiphy must be down and will follow.
*/
SET_WIPHY_NETNS = 49,
/**
* get survey resuls, e.g. channel occupation
* or noise level
*/
GET_SURVEY = 50,
/**
* survey data notification (as a reply to
* NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
*/
NEW_SURVEY_RESULTS = 51,
/**
* Add a PMKSA cache entry using %NL80211_ATTR_MAC
* (for the BSSID), %NL80211_ATTR_PMKID, and optionally %NL80211_ATTR_PMK
* (PMK is used for PTKSA derivation in case of FILS shared key offload) or
* using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID,
* %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS
* authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier
* advertized by a FILS capable AP identifying the scope of PMKSA in an
* ESS.
*/
SET_PMKSA = 52,
/**
* Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
* (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID,
* %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS
* authentication.
*/
DEL_PMKSA = 53,
/** Flush all PMKSA cache entries. */
FLUSH_PMKSA = 54,
/**
* Request to remain awake on the specified
* channel for the specified amount of time. This can be used to do
* off-channel operations like transmit a Public Action frame and wait for
* a response while being associated to an AP on another channel.
* %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
* radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
* frequency for the operation.
* %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
* to remain on the channel. This command is also used as an event to
* notify when the requested duration starts (it may take a while for the
* driver to schedule this time due to other concurrent needs for the
* radio).
* When called, this operation returns a cookie (%NL80211_ATTR_COOKIE)
* that will be included with any events pertaining to this request;
* the cookie is also used to cancel the request.
*/
REMAIN_ON_CHANNEL = 55,
/**
* This command can be used to cancel a
* pending remain-on-channel duration if the desired operation has been
* completed prior to expiration of the originally requested duration.
* %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the
* radio. The %NL80211_ATTR_COOKIE attribute must be given as well to
* uniquely identify the request.
* This command is also used as an event to notify when a requested
* remain-on-channel duration has expired.
*/
CANCEL_REMAIN_ON_CHANNEL = 56,
/**
* Set the mask of rates to be used in TX
* rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface
* and @NL80211_ATTR_TX_RATES the set of allowed rates.
*/
SET_TX_BITRATE_MASK = 57,
/**
* Register for receiving certain mgmt frames
* (via @NL80211_CMD_FRAME) for processing in userspace. This command
* requires an interface index, a frame type attribute (optional for
* backward compatibility reasons, if not given assumes action frames)
* and a match attribute containing the first few bytes of the frame
* that should match, e.g. a single byte for only a category match or
* four bytes for vendor frames including the OUI. The registration
* cannot be dropped, but is removed automatically when the netlink
* socket is closed. Multiple registrations can be made.
*/
REGISTER_FRAME = 58,
/**
* Management frame TX request and RX notification. This
* command is used both as a request to transmit a management frame and
* as an event indicating reception of a frame that was not processed in
* kernel code, but is for us (i.e., which may need to be processed in a
* user space application). %NL80211_ATTR_FRAME is used to specify the
* frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used
* to indicate on which channel the frame is to be transmitted or was
* received. If this channel is not the current channel (remain-on-channel
* or the operational channel) the device will switch to the given channel
* and transmit the frame, optionally waiting for a response for the time
* specified using %NL80211_ATTR_DURATION. When called, this operation
* returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the
* TX status event pertaining to the TX request.
* %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the
* management frames at CCK rate or not in 2GHz band.
* %NL80211_ATTR_CSA_C_OFFSETS_TX is an array of offsets to CSA
* counters which will be updated to the current value. This attribute
* is used during CSA period.
*/
FRAME = 59,
/**
* Report TX status of a management frame
* transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies
* the TX command and %NL80211_ATTR_FRAME includes the contents of the
* frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged
* the frame.
*/
FRAME_TX_STATUS = 60,
/** Set powersave, using %NL80211_ATTR_PS_STATE */
SET_POWER_SAVE = 61,
/** Get powersave status in %NL80211_ATTR_PS_STATE */
GET_POWER_SAVE = 62,
/**
* Connection quality monitor configuration. This command
* is used to configure connection quality monitoring notification trigger
* levels.
*/
SET_CQM = 63,
/**
* Connection quality monitor notification. This
* command is used as an event to indicate the that a trigger level was
* reached.
*/
NOTIFY_CQM = 64,
/**
* Set the channel (using %NL80211_ATTR_WIPHY_FREQ
* and the attributes determining channel width) the given interface
* (identifed by %NL80211_ATTR_IFINDEX) shall operate on.
* In case multiple channels are supported by the device, the mechanism
* with which it switches channels is implementation-defined.
* When a monitor interface is given, it can only switch channel while
* no other interfaces are operating to avoid disturbing the operation
* of any other interfaces, and other interfaces will again take
* precedence when they are used.
*/
SET_CHANNEL = 65,
/** Set the MAC address of the peer on a WDS interface. */
SET_WDS_PEER = 66,
/**
* When an off-channel TX was requested, this
* command may be used with the corresponding cookie to cancel the wait
* time if it is known that it is no longer necessary. This command is
* also sent as an event whenever the driver has completed the off-channel
* wait time.
*/
FRAME_WAIT_CANCEL = 67,
/**
* Join a mesh. The mesh ID must be given, and initial
* mesh config parameters may be given.
*/
JOIN_MESH = 68,
/**
* Leave the mesh network -- no special arguments, the
* network is determined by the network interface.
*/
LEAVE_MESH = 69,
/**
* Unprotected deauthentication frame
* notification. This event is used to indicate that an unprotected
* deauthentication frame was dropped when MFP is in use.
*/
UNPROT_DEAUTHENTICATE = 70,
/**
* Unprotected disassociation frame
* notification. This event is used to indicate that an unprotected
* disassociation frame was dropped when MFP is in use.
*/
UNPROT_DISASSOCIATE = 71,
/**
* Notification on the reception of a
* beacon or probe response from a compatible mesh peer. This is only
* sent while no station information (sta_info) exists for the new peer
* candidate and when @NL80211_MESH_SETUP_USERSPACE_AUTH,
* @NL80211_MESH_SETUP_USERSPACE_AMPE, or
* @NL80211_MESH_SETUP_USERSPACE_MPM is set. On reception of this
* notification, userspace may decide to create a new station
* (@NL80211_CMD_NEW_STATION). To stop this notification from
* reoccurring, the userspace authentication daemon may want to create the
* new station with the AUTHENTICATED flag unset and maybe change it later
* depending on the authentication result.
*/
NEW_PEER_CANDIDATE = 72,
/** get Wake-on-Wireless-LAN (WoWLAN) settings. */
GET_WOWLAN = 73,
/**
* set Wake-on-Wireless-LAN (WoWLAN) settings.
* Since wireless is more complex than wired ethernet, it supports
* various triggers. These triggers can be configured through this
* command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
* more background information, see
* http://wireless.kernel.org/en/users/Documentation/WoWLAN.
* The @NL80211_CMD_SET_WOWLAN command can also be used as a notification
* from the driver reporting the wakeup reason. In this case, the
* @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason
* for the wakeup, if it was caused by wireless. If it is not present
* in the wakeup notification, the wireless device didn't cause the
* wakeup but reports that it was woken up.
*/
SET_WOWLAN = 74,
/**
* start a scheduled scan at certain
* intervals and certain number of cycles, as specified by
* %NL80211_ATTR_SCHED_SCAN_PLANS. If %NL80211_ATTR_SCHED_SCAN_PLANS is
* not specified and only %NL80211_ATTR_SCHED_SCAN_INTERVAL is specified,
* scheduled scan will run in an infinite loop with the specified interval.
* These attributes are mutually exculsive,
* i.e. NL80211_ATTR_SCHED_SCAN_INTERVAL must not be passed if
* NL80211_ATTR_SCHED_SCAN_PLANS is defined.
* If for some reason scheduled scan is aborted by the driver, all scan
* plans are canceled (including scan plans that did not start yet).
* Like with normal scans, if SSIDs (%NL80211_ATTR_SCAN_SSIDS)
* are passed, they are used in the probe requests. For
* broadcast, a broadcast SSID must be passed (ie. an empty
* string). If no SSID is passed, no probe requests are sent and
* a passive scan is performed. %NL80211_ATTR_SCAN_FREQUENCIES,
* if passed, define which channels should be scanned; if not
* passed, all channels allowed for the current regulatory domain
* are used. Extra IEs can also be passed from the userspace by
* using the %NL80211_ATTR_IE attribute. The first cycle of the
* scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY
* is supplied. If the device supports multiple concurrent scheduled
* scans, it will allow such when the caller provides the flag attribute
* %NL80211_ATTR_SCHED_SCAN_MULTI to indicate user-space support for it.
*/
START_SCHED_SCAN = 75,
/**
* stop a scheduled scan. Returns -ENOENT if
* scheduled scan is not running. The caller may assume that as soon
* as the call returns, it is safe to start a new scheduled scan again.
*/
STOP_SCHED_SCAN = 76,
/**
* indicates that there are scheduled scan
* results available.
*/
SCHED_SCAN_RESULTS = 77,
/**
* indicates that the scheduled scan has
* stopped. The driver may issue this event at any time during a
* scheduled scan. One reason for stopping the scan is if the hardware
* does not support starting an association or a normal scan while running
* a scheduled scan. This event is also sent when the
* %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface
* is brought down while a scheduled scan was running.
*/
SCHED_SCAN_STOPPED = 78,
/**
* This command is used give the driver
* the necessary information for supporting GTK rekey offload. This
* feature is typically used during WoWLAN. The configuration data
* is contained in %NL80211_ATTR_REKEY_DATA (which is nested and
* contains the data in sub-attributes). After rekeying happened,
* this command may also be sent by the driver as an MLME event to
* inform userspace of the new replay counter.
*/
SET_REKEY_OFFLOAD = 79,
/**
* This is used as an event to inform userspace
* of PMKSA caching dandidates.
*/
PMKSA_CANDIDATE = 80,
/**
* Perform a high-level TDLS command (e.g. link setup).
* In addition, this can be used as an event to request userspace to take
* actions on TDLS links (set up a new link or tear down an existing one).
* In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested
* operation, %NL80211_ATTR_MAC contains the peer MAC address, and
* %NL80211_ATTR_REASON_CODE the reason code to be used (only with
* %NL80211_TDLS_TEARDOWN).
*/
TDLS_OPER = 81,
/**
* Send a TDLS management frame. The
* %NL80211_ATTR_TDLS_ACTION attribute determines the type of frame to be
* sent. Public Action codes (802.11-2012 8.1.5.1) will be sent as
* 802.11 management frames, while TDLS action codes (802.11-2012
* 8.5.13.1) will be encapsulated and sent as data frames. The currently
* supported Public Action code is %WLAN_PUB_ACTION_TDLS_DISCOVER_RES
* and the currently supported TDLS actions codes are given in
* &enum ieee80211_tdls_actioncode.
*/
TDLS_MGMT = 82,
/**
* Used by an application controlling an AP
* (or GO) interface (i.e. hostapd) to ask for unexpected frames to
* implement sending deauth to stations that send unexpected class 3
* frames. Also used as the event sent by the kernel when such a frame
* is received.
* For the event, the %NL80211_ATTR_MAC attribute carries the TA and
* other attributes like the interface index are present.
* If used as the command it must have an interface index and you can
* only unsubscribe from the event by closing the socket. Subscription
* is also for %NL80211_CMD_UNEXPECTED_4ADDR_FRAME events.
*/
UNEXPECTED_FRAME = 83,
/**
* Probe an associated station on an AP interface
* by sending a null data frame to it and reporting when the frame is
* acknowleged. This is used to allow timing out inactive clients. Uses
* %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a
* direct reply with an %NL80211_ATTR_COOKIE that is later used to match
* up the event with the request. The event includes the same data and
* has %NL80211_ATTR_ACK set if the frame was ACKed.
*/
PROBE_CLIENT = 84,
/**
* Register this socket to receive beacons from
* other BSSes when any interfaces are in AP mode. This helps implement
* OLBC handling in hostapd. Beacons are reported in %NL80211_CMD_FRAME
* messages. Note that per PHY only one application may register.
*/
REGISTER_BEACONS = 85,
/**
* Sent as an event indicating that the
* associated station identified by %NL80211_ATTR_MAC sent a 4addr frame
* and wasn't already in a 4-addr VLAN. The event will be sent similarly
* to the %NL80211_CMD_UNEXPECTED_FRAME event, to the same listener.
*/
UNEXPECTED_4ADDR_FRAME = 86,
/**
* sets a bitmap for the individual TIDs whether
* No Acknowledgement Policy should be applied.
*/
SET_NOACK_MAP = 87,
/**
* An AP or GO may decide to switch channels
* independently of the userspace SME, send this event indicating
* %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the
* attributes determining channel width. This indication may also be
* sent when a remotely-initiated switch (e.g., when a STA receives a CSA
* from the remote AP) is completed;
*/
CH_SWITCH_NOTIFY = 88,
/**
* Start the given P2P Device, identified by
* its %NL80211_ATTR_WDEV identifier. It must have been created with
* %NL80211_CMD_NEW_INTERFACE previously. After it has been started, the
* P2P Device can be used for P2P operations, e.g. remain-on-channel and
* public action frame TX.
*/
START_P2P_DEVICE = 89,
/**
* Stop the given P2P Device, identified by
* its %NL80211_ATTR_WDEV identifier.
*/
STOP_P2P_DEVICE = 90,
/**
* connection request to an AP failed; used to
* notify userspace that AP has rejected the connection request from a
* station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON
* is used for this.
*/
CONN_FAILED = 91,
/**
* Change the rate used to send multicast frames
* for IBSS or MESH vif.
*/
SET_MCAST_RATE = 92,
/**
* sets ACL for MAC address based access control.
* This is to be used with the drivers advertising the support of MAC
* address based access control. List of MAC addresses is passed in
* %NL80211_ATTR_MAC_ADDRS and ACL policy is passed in
* %NL80211_ATTR_ACL_POLICY. Driver will enable ACL with this list, if it
* is not already done. The new list will replace any existing list. Driver
* will clear its ACL when the list of MAC addresses passed is empty. This
* command is used in AP/P2P GO mode. Driver has to make sure to clear its
* ACL list during %NL80211_CMD_STOP_AP.
*/
SET_MAC_ACL = 93,
/**
* Start a Channel availability check (CAC). Once
* a radar is detected or the channel availability scan (CAC) has finished
* or was aborted, or a radar was detected, usermode will be notified with
* this event. This command is also used to notify userspace about radars
* while operating on this channel.
* %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the
* event.
*/
RADAR_DETECT = 94,
/**
* Get global nl80211 protocol features,
* i.e. features for the nl80211 protocol rather than device features.
* Returns the features in the %NL80211_ATTR_PROTOCOL_FEATURES bitmap.
*/
GET_PROTOCOL_FEATURES = 95,
/**
* Pass down the most up-to-date Fast Transition
* Information Element to the WLAN driver
*/
UPDATE_FT_IES = 96,
/**
* Send a Fast transition event from the WLAN driver
* to the supplicant. This will carry the target AP's MAC address along
* with the relevant Information Elements. This event is used to report
* received FT IEs (MDIE, FTIE, RSN IE, TIE, RICIE).
*/
FT_EVENT = 97,
/**
* Indicates user-space will start running
* a critical protocol that needs more reliability in the connection to
* complete.
*/
CRIT_PROTOCOL_START = 98,
/**
* Indicates the connection reliability can
* return back to normal.
*/
CRIT_PROTOCOL_STOP = 99,
/** Get currently supported coalesce rules. */
GET_COALESCE = 100,
/** Configure coalesce rules or clear existing rules. */
SET_COALESCE = 101,
/**
* Perform a channel switch by announcing the
* the new channel information (Channel Switch Announcement - CSA)
* in the beacon for some time (as defined in the
* %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the
* new channel. Userspace provides the new channel information (using
* %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel
* width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform
* other station that transmission must be blocked until the channel
* switch is complete.
*/
CHANNEL_SWITCH = 102,
/**
* Vendor-specified command/event. The command is specified
* by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in
* %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in
* %NL80211_ATTR_VENDOR_DATA.
* For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is
* used in the wiphy data as a nested attribute containing descriptions
* (&struct nl80211_vendor_cmd_info) of the supported vendor commands.
* This may also be sent as an event with the same attributes.
*/
VENDOR = 103,
/**
* Set Interworking QoS mapping for IP DSCP values.
* The QoS mapping information is included in %NL80211_ATTR_QOS_MAP. If
* that attribute is not included, QoS mapping is disabled. Since this
* QoS mapping is relevant for IP packets, it is only valid during an
* association. This is cleared on disassociation and AP restart.
*/
SET_QOS_MAP = 104,
/**
* Ask the kernel to add a traffic stream for the given
* %NL80211_ATTR_TSID and %NL80211_ATTR_MAC with %NL80211_ATTR_USER_PRIO
* and %NL80211_ATTR_ADMITTED_TIME parameters.
* Note that the action frame handshake with the AP shall be handled by
* userspace via the normal management RX/TX framework, this only sets
* up the TX TS in the driver/device.
* If the admitted time attribute is not added then the request just checks
* if a subsequent setup could be successful, the intent is to use this to
* avoid setting up a session with the AP when local restrictions would
* make that impossible. However, the subsequent "real" setup may still
* fail even if the check was successful.
*/
ADD_TX_TS = 105,
/**
* Remove an existing TS with the %NL80211_ATTR_TSID
* and %NL80211_ATTR_MAC parameters. It isn't necessary to call this
* before removing a station entry entirely, or before disassociating
* or similar, cleanup will happen in the driver/device in this case.
*/
DEL_TX_TS = 106,
/**
* Get mesh path attributes for mesh proxy path to
* destination %NL80211_ATTR_MAC on the interface identified by
* %NL80211_ATTR_IFINDEX.
*/
GET_MPP = 107,
/**
* Join the OCB network. The center frequency and
* bandwidth of a channel must be given.
*/
JOIN_OCB = 108,
/**
* Leave the OCB network -- no special arguments, the
* network is determined by the network interface.
*/
LEAVE_OCB = 109,
/**
* Notify that a channel switch
* has been started on an interface, regardless of the initiator
* (ie. whether it was requested from a remote device or
* initiated on our own). It indicates that
* %NL80211_ATTR_IFINDEX will be on %NL80211_ATTR_WIPHY_FREQ
* after %NL80211_ATTR_CH_SWITCH_COUNT TBTT's. The userspace may
* decide to react to this indication by requesting other
* interfaces to change channel as well.
*/
CH_SWITCH_STARTED_NOTIFY = 110,
/**
* Start channel-switching with a TDLS peer,
* identified by the %NL80211_ATTR_MAC parameter. A target channel is
* provided via %NL80211_ATTR_WIPHY_FREQ and other attributes determining
* channel width/type. The target operating class is given via
* %NL80211_ATTR_OPER_CLASS.
* The driver is responsible for continually initiating channel-switching
* operations and returning to the base channel for communication with the
* AP.
*/
TDLS_CHANNEL_SWITCH = 111,
/**
* Stop channel-switching with a TDLS
* peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel
* when this command completes.
*/
TDLS_CANCEL_CHANNEL_SWITCH = 112,
/**
* Similar to %NL80211_CMD_REG_CHANGE, but used
* as an event to indicate changes for devices with wiphy-specific regdom
* management.
*/
WIPHY_REG_CHANGE = 113,
/**
* Stop an ongoing scan. Returns -ENOENT if a scan is
* not running. The driver indicates the status of the scan through
* cfg80211_scan_done().
*/
ABORT_SCAN = 114,
/**
* Start NAN operation, identified by its
* %NL80211_ATTR_WDEV interface. This interface must have been
* previously created with %NL80211_CMD_NEW_INTERFACE. After it
* has been started, the NAN interface will create or join a
* cluster. This command must have a valid
* %NL80211_ATTR_NAN_MASTER_PREF attribute and optional
* %NL80211_ATTR_BANDS attributes. If %NL80211_ATTR_BANDS is
* omitted or set to 0, it means don't-care and the device will
* decide what to use. After this command NAN functions can be
* added.
*/
START_NAN = 115,
/**
* Stop the NAN operation, identified by
* its %NL80211_ATTR_WDEV interface.
*/
STOP_NAN = 116,
/**
* Add a NAN function. The function is defined
* with %NL80211_ATTR_NAN_FUNC nested attribute. When called, this
* operation returns the strictly positive and unique instance id
* (%NL80211_ATTR_NAN_FUNC_INST_ID) and a cookie (%NL80211_ATTR_COOKIE)
* of the function upon success.
* Since instance ID's can be re-used, this cookie is the right
* way to identify the function. This will avoid races when a termination
* event is handled by the user space after it has already added a new
* function that got the same instance id from the kernel as the one
* which just terminated.
* This cookie may be used in NAN events even before the command
* returns, so userspace shouldn't process NAN events until it processes
* the response to this command.
* Look at %NL80211_ATTR_SOCKET_OWNER as well.
*/
ADD_NAN_FUNCTION = 117,
/**
* Delete a NAN function by cookie.
* This command is also used as a notification sent when a NAN function is
* terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID
* and %NL80211_ATTR_COOKIE attributes.
*/
DEL_NAN_FUNCTION = 118,
/**
* Change current NAN
* configuration. NAN must be operational (%NL80211_CMD_START_NAN
* was executed). It must contain at least one of the following
* attributes: %NL80211_ATTR_NAN_MASTER_PREF,
* %NL80211_ATTR_BANDS. If %NL80211_ATTR_BANDS is omitted, the
* current configuration is not changed. If it is present but
* set to zero, the configuration is changed to don't-care
* (i.e. the device can decide what to do).
*/
CHANGE_NAN_CONFIG = 119,
/**
* Notification sent when a match is reported.
* This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and
* %NL80211_ATTR_COOKIE.
*/
NAN_MATCH = 120,
/**
* Configure if this AP should perform
* multicast to unicast conversion. When enabled, all multicast packets
* with ethertype ARP, IPv4 or IPv6 (possibly within an 802.1Q header)
* will be sent out to each station once with the destination (multicast)
* MAC address replaced by the station's MAC address. Note that this may
* break certain expectations of the receiver, e.g. the ability to drop
* unicast IP packets encapsulated in multicast L2 frames, or the ability
* to not send destination unreachable messages in such cases.
* This can only be toggled per BSS. Configure this on an interface of
* type %NL80211_IFTYPE_AP. It applies to all its VLAN interfaces
* (%NL80211_IFTYPE_AP_VLAN), except for those in 4addr (WDS) mode.
* If %NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED is not present with this
* command, the feature is disabled.
*/
SET_MULTICAST_TO_UNICAST = 121,
/**
* Update one or more connect parameters
* for subsequent roaming cases if the driver or firmware uses internal
* BSS selection. This command can be issued only while connected and it
* does not result in a change for the current association. Currently,
* only the %NL80211_ATTR_IE data is used and updated with this command.
*/
UPDATE_CONNECT_PARAMS = 122,
/**
* For offloaded 4-Way handshake, set the PMK or PMK-R0
* for the given authenticator address (specified with %NL80211_ATTR_MAC).
* When %NL80211_ATTR_PMKR0_NAME is set, %NL80211_ATTR_PMK specifies the
* PMK-R0, otherwise it specifies the PMK.
*/
SET_PMK = 123,
/**
* For offloaded 4-Way handshake, delete the previously
* configured PMK for the authenticator address identified by
* %NL80211_ATTR_MAC.
*/
DEL_PMK = 124,
/**
* An event that indicates that the 4 way
* handshake was completed successfully by the driver. The BSSID is
* specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
* offload should send this event after indicating 802.11 association with
* %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
* %NL80211_CMD_DISCONNECT should be indicated instead.
*/
PORT_AUTHORIZED = 125,
/** Request that the regdb firmware file is reloaded. */
RELOAD_REGDB = 126,
/**
* This interface is exclusively defined for host
* drivers that do not define separate commands for authentication and
* association, but rely on user space for the authentication to happen.
* This interface acts both as the event request (driver to user space)
* to trigger the authentication and command response (userspace to
* driver) to indicate the authentication status.
*
* User space uses the %NL80211_CMD_CONNECT command to the host driver to
* trigger a connection. The host driver selects a BSS and further uses
* this interface to offload only the authentication part to the user
* space. Authentication frames are passed between the driver and user
* space through the %NL80211_CMD_FRAME interface. Host driver proceeds
* further with the association after getting successful authentication
* status. User space indicates the authentication status through
* %NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
* command interface.
*
* Host driver reports this status on an authentication failure to the
* user space through the connect result as the user space would have
* initiated the connection through the connect request.
*/
EXTERNAL_AUTH = 127,
/**
* An event that notify station's
* ht opmode or vht opmode changes using any of %NL80211_ATTR_SMPS_MODE,
* %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its
* address(specified in %NL80211_ATTR_MAC).
*/
STA_OPMODE_CHANGED = 128,
/**
* Control Port (e.g. PAE) frame TX request
* and RX notification. This command is used both as a request to transmit
* a control port frame and as a notification that a control port frame
* has been received. %NL80211_ATTR_FRAME is used to specify the
* frame contents. The frame is the raw EAPoL data, without ethernet or
* 802.11 headers.
* When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
* %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added
* indicating the protocol type of the received frame; whether the frame
* was received unencrypted and the MAC address of the peer respectively.
*/
CONTROL_PORT_FRAME = 129,
/**
* Retrieve FTM responder statistics, in
* the %NL80211_ATTR_FTM_RESPONDER_STATS attribute.
*/
GET_FTM_RESPONDER_STATS = 130,
/**
* start a (set of) peer measurement(s)
* with the given parameters, which are encapsulated in the nested
* %NL80211_ATTR_PEER_MEASUREMENTS attribute. Optionally, MAC address
* randomization may be enabled and configured by specifying the
* %NL80211_ATTR_MAC and %NL80211_ATTR_MAC_MASK attributes.
* If a timeout is requested, use the %NL80211_ATTR_TIMEOUT attribute.
* A u64 cookie for further %NL80211_ATTR_COOKIE use is is returned in
* the netlink extended ack message.
*
* To cancel a measurement, close the socket that requested it.
*
* Measurement results are reported to the socket that requested the
* measurement using @NL80211_CMD_PEER_MEASUREMENT_RESULT when they
* become available, so applications must ensure a large enough socket
* buffer size.
*
* Depending on driver support it may or may not be possible to start
* multiple concurrent measurements.
*/
PEER_MEASUREMENT_START = 131,
/**
* This command number is used for the
* result notification from the driver to the requesting socket.
*/
PEER_MEASUREMENT_RESULT = 132,
/**
* Notification only, indicating that
* the measurement completed, using the measurement cookie
* (%NL80211_ATTR_COOKIE).
*/
PEER_MEASUREMENT_COMPLETE = 133,
/**
* Notify the kernel that a radar signal was
* detected and reported by a neighboring device on the channel
* indicated by %NL80211_ATTR_WIPHY_FREQ and other attributes
* determining the width and type.
*/
NOTIFY_RADAR = 134,
/**
* This interface allows the host driver to
* offload OWE processing to user space. This intends to support
* OWE AKM by the host drivers that implement SME but rely
* on the user space for the cryptographic/DH IE processing in AP mode.
*/
UPDATE_OWE_INFO = 135,
/**
* The requirement for mesh link metric
* refreshing, is that from one mesh point we be able to send some data
* frames to other mesh points which are not currently selected as a
* primary traffic path, but which are only 1 hop away. The absence of
* the primary path to the chosen node makes it necessary to apply some
* form of marking on a chosen packet stream so that the packets can be
* properly steered to the selected node for testing, and not by the
* regular mesh path lookup. Further, the packets must be of type data
* so that the rate control (often embedded in firmware) is used for
* rate selection.
*
* Here attribute %NL80211_ATTR_MAC is used to specify connected mesh
* peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame
* content. The frame is ethernet data.
*/
PROBE_MESH_LINK = 136
}
/** nl80211 netlink attributes */
export interface Message extends BaseObject {
/**
* index of wiphy to operate on, cf.
* /sys/class/ieee80211//index
*/
wiphy?: number;
/** wiphy name (used for renaming) */
wiphyName?: string;
/** network interface index of the device to operate on */
ifindex?: number;
/** network interface name */
ifname?: string;
/** type of virtual interface, see &enum nl80211_iftype */
iftype?: InterfaceType | keyof typeof InterfaceType;
/** MAC address (various uses) */
mac?: Buffer;
/**
* (temporal) key data; for TKIP this consists of
* 16 bytes encryption key followed by 8 bytes each for TX and RX MIC
* keys
*/
keyData?: Buffer;
/** key ID (u8, 0-3) */
keyIdx?: number;
/**
* key cipher suite (u32, as defined by IEEE 802.11
* section 7.3.2.25.1, e.g. 0x000FAC04)
*/
keyCipher?: number;
/**
* transmit key sequence number (IV/PN) for TKIP and
* CCMP keys, each six bytes in little endian
*/
keySeq?: Buffer;
/** Flag attribute indicating the key is default key */
keyDefault?: true;
/** beacon interval in TU */
beaconInterval?: number;
/** DTIM period for beaconing */
dtimPeriod?: number;
/** portion of the beacon before the TIM IE */
beaconHead?: Buffer;
/** portion of the beacon after the TIM IE */
beaconTail?: Buffer;
/** Association ID for the station (u16) */
staAid?: number;
/**
* flags, nested element with NLA_FLAG attributes of
* &enum nl80211_sta_flags (deprecated, use %NL80211_ATTR_STA_FLAGS2)
*/
staFlags?: StationFlags;
/**
* listen interval as defined by
* IEEE 802.11 7.3.1.6 (u16).
*/
staListenInterval?: number;
/**
* supported rates, array of supported
* rates as defined by IEEE 802.11 7.3.2.2 but without the length
* restriction (at most %NL80211_MAX_SUPP_RATES).
*/
staSupportedRates?: Buffer;
/**
* interface index of VLAN interface to move station
* to, or the AP interface the station was originally added to to.
*/
staVlan?: number;
/**
* information about a station, part of station info
* given for %NL80211_CMD_GET_STATION, nested attribute containing
* info as possible, see &enum nl80211_sta_info.
*/
staInfo?: StationInfo;
/**
* Information about an operating bands,
* consisting of a nested array.
*/
wiphyBands?: Band[];
/**
* flags, nested element with NLA_FLAG attributes of
* &enum nl80211_mntr_flags.
*/
mntrFlags?: MonitorFlags;
/** mesh id (1-32 bytes). */
meshId?: Buffer;
/**
* action to perform on the mesh peer link
* (see &enum nl80211_plink_action).
*/
staPlinkAction?: PlinkAction | keyof typeof PlinkAction;
/** MAC address of the next hop for a mesh path. */
mpathNextHop?: Buffer;
/**
* information about a mesh_path, part of mesh path
* info given for %NL80211_CMD_GET_MPATH, nested attribute described at
* &enum nl80211_mpath_info.
*/
mpathInfo?: MpathInfo;
/** whether CTS protection is enabled (u8, 0 or 1) */
bssCtsProt?: boolean;
/**
* whether short preamble is enabled
* (u8, 0 or 1)
*/
bssShortPreamble?: boolean;
/**
* whether short slot time enabled
* (u8, 0 or 1)
*/
bssShortSlotTime?: boolean;
/**
* HT Capability information element (from
* association request when used with NL80211_CMD_NEW_STATION)
*/
htCapability?: Buffer;
/**
* nested attribute containing all
* supported interface types, each a flag attribute with the number
* of the interface mode.
*/
supportedIftypes?: InterfaceTypeSet;
/**
* an ISO-3166-alpha2 country code for which the
* current regulatory domain should be set to or is already set to.
* For example, 'CR', for Costa Rica. This attribute is used by the kernel
* to query the CRDA to retrieve one regulatory domain. This attribute can
* also be used by userspace to query the kernel for the currently set
* regulatory domain. We chose an alpha2 as that is also used by the
* IEEE-802.11 country information element to identify a country.
* Users can also simply ask the wireless core to set regulatory domain
* to a specific alpha2.
*/
regAlpha2?: string;
/**
* a nested array of regulatory domain regulatory
* rules.
*/
regRules?: RegulatoryRule[];
/**
* Mesh configuration parameters, a nested attribute
* containing attributes from &enum nl80211_meshconf_params.
*/
meshConfig?: MeshconfParams;
/**
* basic rates, array of basic
* rates in format defined by IEEE 802.11 7.3.2.2 but without the length
* restriction (at most %NL80211_MAX_SUPP_RATES).
*/
bssBasicRates?: Buffer;
/** a nested array of TX queue parameters */
wiphyTxqParams?: Txq[];
/**
* frequency of the selected channel in MHz,
* defines the channel together with the (deprecated)
* %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes
* %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1
* and %NL80211_ATTR_CENTER_FREQ2
*/
wiphyFreq?: number;
/**
* included with NL80211_ATTR_WIPHY_FREQ
* if HT20 or HT40 are to be used (i.e., HT disabled if not included):
* NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including
* this attribute)
* NL80211_CHAN_HT20 = HT20 only
* NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel
* NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel
* This attribute is now deprecated.
*/
wiphyChannelType?: ChannelType | keyof typeof ChannelType;
/**
* Flag attribute indicating the key is the
* default management key
*/
keyDefaultMgmt?: true;
/**
* Management frame subtype for
* %NL80211_CMD_SET_MGMT_EXTRA_IE.
*/
mgmtSubtype?: number;
/**
* Information element(s) data (used, e.g., with
* %NL80211_CMD_SET_MGMT_EXTRA_IE).
*/
ie?: Buffer;
/**
* number of SSIDs you can scan with
* a single scan request, a wiphy attribute.
*/
maxNumScanSsids?: number;
/** nested attribute with frequencies (in MHz) */
scanFrequencies?: Buffer;
/**
* nested attribute with SSIDs, leave out for passive
* scanning and include a zero-length SSID (wildcard) for wildcard scan
*/
scanSsids?: Buffer;
/**
* Used to indicate consistent snapshots for
* dumps. This number increases whenever the object list being
* dumped changes, and as such userspace can verify that it has
* obtained a complete and consistent snapshot by verifying that
* all dump messages contain the same generation number. If it
* changed then the list changed and the dump should be repeated
* completely from scratch.
*/
generation?: number;
/** scan result BSS */
bss?: Buffer;
/**
* indicates who requested the regulatory domain
* currently in effect. This could be any of the %NL80211_REGDOM_SET_BY_*
*/
regInitiator?: Buffer;
/**
* indicates the type of the regulatory domain currently
* set. This can be one of the nl80211_reg_type (%NL80211_REGDOM_TYPE_*)
*/
regType?: RegulatoryType | keyof typeof RegulatoryType;
/**
* wiphy attribute that specifies
* an array of command numbers (i.e. a mapping index to command number)
* that the driver for the given wiphy supports.
*/
supportedCommands?: number[];
/**
* frame data (binary attribute), including frame header
* and body, but not FCS; used, e.g., with NL80211_CMD_AUTHENTICATE and
* NL80211_CMD_ASSOCIATE events
*/
frame?: Buffer;
/** SSID (binary attribute, 0..32 octets) */
ssid?: Buffer;
/**
* AuthenticationType, see &enum nl80211_auth_type,
* represented as a u32
*/
authType?: AuthType | keyof typeof AuthType;
/**
* ReasonCode for %NL80211_CMD_DEAUTHENTICATE and
* %NL80211_CMD_DISASSOCIATE, u16
*/
reasonCode?: number;
/**
* Key Type, see &enum nl80211_key_type, represented as
* a u32
*/
keyType?: KeyType | keyof typeof KeyType;
/**
* maximum length of information elements
* that can be added to a scan request
*/
maxScanIeLen?: number;
/**
* a set of u32 values indicating the supported
* cipher suites
*/
cipherSuites?: Buffer;
/**
* A channel which has suffered a regulatory change
* due to considerations from a beacon hint. This attribute reflects
* the state of the channel _before_ the beacon hint processing. This
* attributes consists of a nested attribute containing
* NL80211_FREQUENCY_ATTR_*
*/
freqBefore?: Buffer;
/**
* A channel which has suffered a regulatory change
* due to considerations from a beacon hint. This attribute reflects
* the state of the channel _after_ the beacon hint processing. This
* attributes consists of a nested attribute containing
* NL80211_FREQUENCY_ATTR_*
*/
freqAfter?: Buffer;
/**
* a flag indicating the IBSS should not try to look
* for other networks on different channels
*/
freqFixed?: true;
/**
* TX retry limit for frames whose length is
* less than or equal to the RTS threshold; allowed range: 1..255;
* dot11ShortRetryLimit; u8
*/
wiphyRetryShort?: number;
/**
* TX retry limit for frames whose length is
* greater than the RTS threshold; allowed range: 1..255;
* dot11ShortLongLimit; u8
*/
wiphyRetryLong?: number;
/**
* fragmentation threshold, i.e., maximum
* length in octets for frames; allowed range: 256..8000, disable
* fragmentation with (u32)-1; dot11FragmentationThreshold; u32
*/
wiphyFragThreshold?: number;
/**
* RTS threshold (TX frames with length
* larger than or equal to this use RTS/CTS handshake); allowed range:
* 0..65536, disable with (u32)-1; dot11RTSThreshold; u32
*/
wiphyRtsThreshold?: number;
/**
* a flag indicating than an operation timed out; this
* is used, e.g., with %NL80211_CMD_AUTHENTICATE event
*/
timedOut?: true;
/**
* Whether management frame protection (IEEE 802.11w) is
* used for the association (&enum nl80211_mfp, represented as a u32);
* this attribute can be used with %NL80211_CMD_ASSOCIATE and
* %NL80211_CMD_CONNECT requests. %NL80211_MFP_OPTIONAL is not allowed for
* %NL80211_CMD_ASSOCIATE since user space SME is expected and hence, it
* must have decided whether to use management frame protection or not.
* Setting %NL80211_MFP_OPTIONAL with a %NL80211_CMD_CONNECT request will
* let the driver (or the firmware) decide whether to use MFP or not.
*/
useMfp?: Mfp | keyof typeof Mfp;
/**
* Attribute containing a
* &struct nl80211_sta_flag_update.
*/
staFlags2?: Buffer;
/**
* A flag indicating whether user space controls
* IEEE 802.1X port, i.e., sets/clears %NL80211_STA_FLAG_AUTHORIZED, in
* station mode. If the flag is included in %NL80211_CMD_ASSOCIATE
* request, the driver will assume that the port is unauthorized until
* authorized by user space. Otherwise, port is marked authorized by
* default in station mode.
*/
controlPort?: true;
/**
* Testmode data blob, passed through to the driver.
* We recommend using nested, driver-specific attributes within this.
*/
testdata?: Buffer;
/**
* Flag attribute, used with connect(), indicating
* that protected APs should be used. This is also used with NEW_BEACON to
* indicate that the BSS is to use protection.
*/
privacy?: true;
/**
* A flag indicating that the DISCONNECT
* event was due to the AP disconnecting the station, and not due to
* a local disconnect request.
*/
disconnectedByAp?: true;
/**
* StatusCode for the %NL80211_CMD_CONNECT
* event (u16)
*/
statusCode?: number;
/**
* For crypto settings for connect or
* other commands, indicates which pairwise cipher suites are used
*/
cipherSuitesPairwise?: number;
/**
* For crypto settings for connect or
* other commands, indicates which group cipher suite is used
*/
cipherSuiteGroup?: number;
/**
* Used with CONNECT, ASSOCIATE, and NEW_BEACON to
* indicate which WPA version(s) the AP we want to associate with is using
* (a u32 with flags from &enum nl80211_wpa_versions).
*/
wpaVersions?: WpaVersions;
/**
* Used with CONNECT, ASSOCIATE, and NEW_BEACON to
* indicate which key management algorithm(s) to use (an array of u32).
* This attribute is also sent in response to @NL80211_CMD_GET_WIPHY,
* indicating the supported AKM suites, intended for specific drivers which
* implement SME and have constraints on which AKMs are supported and also
* the cases where an AKM support is offloaded to the driver/firmware.
* If there is no such notification from the driver, user space should
* assume the driver supports all the AKM suites.
*/
akmSuites?: number;
/**
* (Re)association request information elements as
* sent out by the card, for ROAM and successful CONNECT events.
*/
reqIe?: Buffer;
/**
* (Re)association response information elements as
* sent by peer, for ROAM and successful CONNECT events.
*/
respIe?: Buffer;
/**
* previous BSSID, to be used in ASSOCIATE and CONNECT
* commands to specify a request to reassociate within an ESS, i.e., to use
* Reassociate Request frame (with the value of this attribute in the
* Current AP address field) instead of Association Request frame which is
* used for the initial association to an ESS.
*/
prevBssid?: Buffer;
/**
* key information in a nested attribute with
* %NL80211_KEY_* sub-attributes
*/
key?: Buffer;
/**
* array of keys for static WEP keys for connect()
* and join_ibss(), key information is in a nested attribute each
* with %NL80211_KEY_* sub-attributes
*/
keys?: Buffer;
/** Process ID of a network namespace. */
pid?: number;
/** Use 4-address frames on a virtual interface */
_4addr?: number;
/**
* survey information about a channel, part of
* the survey response for %NL80211_CMD_GET_SURVEY, nested attribute
* containing info as possible, see &enum survey_info.
*/
surveyInfo?: SurveyInfo;
/** PMK material for PMKSA caching. */
pmkid?: Buffer;
/**
* maximum number of PMKIDs a firmware can
* cache, a wiphy attribute.
*/
maxNumPmkids?: number;
/** Duration of an operation in milliseconds, u32. */
duration?: number;
/** Generic 64-bit cookie to identify objects. */
cookie?: bigint;
/**
* Coverage Class as defined by IEEE 802.11
* section 7.3.2.9; dot11CoverageClass; u8
*/
wiphyCoverageClass?: number;
/**
* Nested set of attributes
* (enum nl80211_tx_rate_attributes) describing TX rates per band. The
* enum nl80211_band value is used as the index (nla_type() of the nested
* data. If a band is not included, it will be configured to allow all
* rates based on negotiated supported rates information. This attribute
* is used with %NL80211_CMD_SET_TX_BITRATE_MASK and with starting AP,
* and joining mesh networks (not IBSS yet). In the later case, it must
* specify just a single bitrate, which is to be used for the beacon.
* The driver must also specify support for this with the extended
* features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
* NL80211_EXT_FEATURE_BEACON_RATE_HT and
* NL80211_EXT_FEATURE_BEACON_RATE_VHT.
*/
txRates?: Map;
/**
* A binary attribute which typically must contain
* at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
*/
frameMatch?: Buffer;
/**
* Flag attribute indicating that the frame was
* acknowledged by the recipient.
*/
ack?: true;
/** powersave state, using &enum nl80211_ps_state values. */
psState?: PsState | keyof typeof PsState;
/**
* connection quality monitor configuration in a
* nested attribute with %NL80211_ATTR_CQM_* sub-attributes.
*/
cqm?: Cqm;
/**
* Flag attribute to indicate that a command
* is requesting a local authentication/association state change without
* invoking actual management frame exchange. This can be used with
* NL80211_CMD_AUTHENTICATE, NL80211_CMD_DEAUTHENTICATE,
* NL80211_CMD_DISASSOCIATE.
*/
localStateChange?: true;
/**
* (AP mode) Do not forward traffic between stations
* connected to this BSS.
*/
apIsolate?: true;
/**
* Transmit power setting type. See
* &enum nl80211_tx_power_setting for possible values.
*/
wiphyTxPowerSetting?: TxPowerSetting | keyof typeof TxPowerSetting;
/**
* Transmit power level in signed mBm units.
* This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING
* for non-automatic settings.
*/
wiphyTxPowerLevel?: number;
/**
* wiphy capability attribute, which is a
* nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing
* information about which frame types can be transmitted with
* %NL80211_CMD_FRAME.
*/
txFrameTypes?: Message[];
/**
* wiphy capability attribute, which is a
* nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing
* information about which frame types can be registered for RX.
*/
rxFrameTypes?: Message[];
/**
* A u16 indicating the frame type/subtype for the
* @NL80211_CMD_REGISTER_FRAME command.
*/
frameType?: number[];
/**
* A 16-bit value indicating the
* ethertype that will be used for key negotiation. It can be
* specified with the associate and connect commands. If it is not
* specified, the value defaults to 0x888E (PAE, 802.1X). This
* attribute is also used as a flag in the wiphy information to
* indicate that protocols other than PAE are supported.
*/
controlPortEthertype?: Buffer;
/**
* When included along with
* %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom
* ethertype frames used for key negotiation must not be encrypted.
*/
controlPortNoEncrypt?: true;
/**
* The device supports IBSS RSN, which mostly
* means support for per-station GTKs.
*/
supportIbssRsn?: true;
/**
* Bitmap of allowed antennas for transmitting.
* This can be used to mask out antennas which are not attached or should
* not be used for transmitting. If an antenna is not selected in this
* bitmap the hardware is not allowed to transmit on this antenna.
*
* Each bit represents one antenna, starting with antenna 1 at the first
* bit. Depending on which antennas are selected in the bitmap, 802.11n
* drivers can derive which chainmasks to use (if all antennas belonging to
* a particular chain are disabled this chain should be disabled) and if
* a chain has diversity antennas wether diversity should be used or not.
* HT capabilities (STBC, TX Beamforming, Antenna selection) can be
* derived from the available chains after applying the antenna mask.
* Non-802.11n drivers can derive wether to use diversity or not.
* Drivers may reject configurations or RX/TX mask combinations they cannot
* support by returning -EINVAL.
*/
wiphyAntennaTx?: number;
/**
* Bitmap of allowed antennas for receiving.
* This can be used to mask out antennas which are not attached or should
* not be used for receiving. If an antenna is not selected in this bitmap
* the hardware should not be configured to receive on this antenna.
* For a more detailed description see @NL80211_ATTR_WIPHY_ANTENNA_TX.
*/
wiphyAntennaRx?: number;
/** Multicast tx rate (in 100 kbps) for IBSS */
mcastRate?: number;
/**
* For management frame TX, the frame may be
* transmitted on another channel when the channel given doesn't match
* the current channel. If the current channel doesn't match and this
* flag isn't set, the frame will be rejected. This is also used as an
* nl80211 capability flag.
*/
offchannelTxOk?: true;
/** HT operation mode (u16) */
bssHtOpmode?: number;
/**
* A nested attribute containing flags
* attributes, specifying what a key should be set as default as.
* See &enum nl80211_key_default_types.
*/
keyDefaultTypes?: KeyDefaultTypes;
/**
* Device attribute that
* specifies the maximum duration that can be requested with the
* remain-on-channel operation, in milliseconds, u32.
*/
maxRemainOnChannelDuration?: number;
/**
* Optional mesh setup parameters. These cannot be
* changed once the mesh is active.
*/
meshSetup?: Buffer;
/**
* Bitmap of antennas which are available
* for configuration as TX antennas via the above parameters.
*/
wiphyAntennaAvailTx?: number;
/**
* Bitmap of antennas which are available
* for configuration as RX antennas via the above parameters.
*/
wiphyAntennaAvailRx?: number;
/**
* Currently, this means the underlying driver
* allows auth frames in a mesh to be passed to userspace for processing via
* the @NL80211_MESH_SETUP_USERSPACE_AUTH flag.
*/
supportMeshAuth?: true;
/**
* The state of a mesh peer link as defined in
* &enum nl80211_plink_state. Used when userspace is driving the peer link
* management state machine. @NL80211_MESH_SETUP_USERSPACE_AMPE or
* @NL80211_MESH_SETUP_USERSPACE_MPM must be enabled.
*/
staPlinkState?: Buffer;
/**
* used by %NL80211_CMD_SET_WOWLAN to
* indicate which WoW triggers should be enabled. This is also
* used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN
* triggers.
*/
wowlanTriggers?: WowlanTriggers;
/**
* indicates, as part of the wiphy
* capabilities, the supported WoWLAN triggers
*/
wowlanTriggersSupported?: WowlanTriggers;
/**
* Interval between scheduled scan
* cycles, in msecs.
*/
schedScanInterval?: number;
/**
* Nested attribute listing the supported
* interface combinations. In each nested item, it contains attributes
* defined in &enum nl80211_if_combination_attrs.
*/
interfaceCombinations?: InterfaceCombination[];
/**
* Nested attribute (just like
* %NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that
* are managed in software: interfaces of these types aren't subject to
* any restrictions in their number or combinations.
*/
softwareIftypes?: InterfaceTypeSet;
/**
* nested attribute containing the information
* necessary for GTK rekeying in the device, see &enum nl80211_rekey_data.
*/
rekeyData?: RekeyData;
/**
* number of SSIDs you can
* scan with a single scheduled scan request, a wiphy attribute.
*/
maxNumSchedScanSsids?: number;
/**
* maximum length of information
* elements that can be added to a scheduled scan request
*/
maxSchedScanIeLen?: number;
/**
* rates per to be advertised as supported in scan,
* nested array attribute containing an entry for each band, with the entry
* being a list of supported rates as defined by IEEE 802.11 7.3.2.2 but
* without the length restriction (at most %NL80211_MAX_SUPP_RATES).
*/
scanSuppRates?: Buffer[];
/**
* indicates whether SSID is to be hidden from Beacon
* and Probe Response (when response to wildcard Probe Request); see
* &enum nl80211_hidden_ssid, represented as a u32
*/
hiddenSsid?: HiddenSsid | keyof typeof HiddenSsid;
/**
* Information element(s) for Probe Response frame.
* This is used with %NL80211_CMD_NEW_BEACON and %NL80211_CMD_SET_BEACON to
* provide extra IEs (e.g., WPS/P2P IE) into Probe Response frames when the
* driver (or firmware) replies to Probe Request frames.
*/
ieProbeResp?: Buffer;
/**
* Information element(s) for (Re)Association
* Response frames. This is used with %NL80211_CMD_NEW_BEACON and
* %NL80211_CMD_SET_BEACON to provide extra IEs (e.g., WPS/P2P IE) into
* (Re)Association Response frames when the driver (or firmware) replies to
* (Re)Association Request frames.
*/
ieAssocResp?: Buffer;
/**
* Nested attribute containing the wme configuration
* of the station, see &enum nl80211_sta_wme_attr.
*/
staWme?: StationWme;
/**
* the device supports uapsd when working
* as AP.
*/
supportApUapsd?: true;
/**
* Indicates whether the firmware is capable of
* roaming to another AP in the same ESS if the signal lever is low.
*/
roamSupport?: true;
/**
* Nested attribute with one or more
* sets of attributes to match during scheduled scans. Only BSSs
* that match any of the sets will be reported. These are
* pass-thru filter rules.
* For a match to succeed, the BSS must match all attributes of a
* set. Since not every hardware supports matching all types of
* attributes, there is no guarantee that the reported BSSs are
* fully complying with the match sets and userspace needs to be
* able to ignore them by itself.
* Thus, the implementation is somewhat hardware-dependent, but
* this is only an optimization and the userspace application
* needs to handle all the non-filtered results anyway.
* If the match attributes don't make sense when combined with
* the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID
* is included in the probe request, but the match attributes
* will never let it go through), -EINVAL may be returned.
* If omitted, no filtering is done.
*/
schedScanMatch?: Buffer[];
/**
* maximum number of sets that can be
* used with @NL80211_ATTR_SCHED_SCAN_MATCH, a wiphy attribute.
*/
maxMatchSets?: number;
/**
* Nested attribute containing the PMKSA caching
* candidate information, see &enum nl80211_pmksa_candidate_attr.
*/
pmksaCandidate?: PmksaCandidate;
/**
* Indicates whether to use CCK rate or not
* for management frames transmission. In order to avoid p2p probe/action
* frames are being transmitted at CCK rate in 2GHz band, the user space
* applications use this attribute.
* This attribute is used with %NL80211_CMD_TRIGGER_SCAN and
* %NL80211_CMD_FRAME commands.
*/
txNoCckRate?: Buffer;
/**
* Low level TDLS action code (e.g. link setup
* request, link setup confirm, link teardown, etc.). Values are
* described in the TDLS (802.11z) specification.
*/
tdlsAction?: Buffer;
/**
* Non-zero token for uniquely identifying a
* TDLS conversation between two devices.
*/
tdlsDialogToken?: Buffer;
/** High level TDLS operation */
tdlsOperation?: TdlsOperation | keyof typeof TdlsOperation;
/**
* A flag indicating the device can operate
* as a TDLS peer sta.
*/
tdlsSupport?: true;
/**
* The TDLS discovery/setup and teardown
* procedures should be performed by sending TDLS packets via
* %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be
* used for asking the driver to perform a TDLS operation.
*/
tdlsExternalSetup?: Buffer;
/**
* This u32 attribute may be listed for devices
* that have AP support to indicate that they have the AP SME integrated
* with support for the features listed in this attribute, see
* &enum nl80211_ap_sme_features.
*/
deviceApSme?: number;
/**
* Used with %NL80211_CMD_FRAME, this tells
* the driver to not wait for an acknowledgement. Note that due to this,
* it will also not give a status callback nor return a cookie. This is
* mostly useful for probe responses to save airtime.
*/
dontWaitForAck?: true;
/**
* This u32 attribute contains flags from
* &enum nl80211_feature_flags and is advertised in wiphy information.
*/
featureFlags?: FeatureFlags;
/**
* Indicates that the HW responds to probe
* requests while operating in AP-mode.
* This attribute holds a bitmap of the supported protocols for
* offloading (see &enum nl80211_probe_resp_offload_support_attr).
*/
probeRespOffload?: Buffer;
/**
* Probe Response template data. Contains the entire
* probe-response frame. The DA field in the 802.11 header is zero-ed out,
* to be filled by the FW.
*/
probeResp?: Buffer;
/**
* region for regulatory rules which this country
* abides to when initiating radiation on DFS channels. A country maps
* to one DFS region.
*/
dfsRegion?: number;
/**
* Force HT capable interfaces to disable
* this feature. Currently, only supported in mac80211 drivers.
*/
disableHt?: true;
/**
* Specify which bits of the
* ATTR_HT_CAPABILITY to which attention should be paid.
* Currently, only mac80211 NICs support this feature.
* The values that may be configured are:
* MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40
* AMPDU density and AMPDU factor.
* All values are treated as suggestions and may be ignored
* by the driver as required. The actual values may be seen in
* the station debugfs ht_caps file.
*/
htCapabilityMask?: Buffer;
/**
* This u16 bitmap contains the No Ack Policy of
* up to 16 TIDs.
*/
noackMap?: number;
/**
* timeout value in seconds, this can be
* used by the drivers which has MLME in firmware and does not have support
* to report per station tx/rx activity to free up the station entry from
* the list. This needs to be used when the driver advertises the
* capability to timeout the stations.
*/
inactivityTimeout?: number;
/**
* signal strength in dBm (as a 32-bit int);
* this attribute is (depending on the driver capabilities) added to
* received frames indicated with %NL80211_CMD_FRAME.
*/
rxSignalDbm?: number;
/**
* Background scan period in seconds
* or 0 to disable background scan.
*/
bgScanPeriod?: Buffer;
/**
* wireless device identifier, used for pseudo-devices
* that don't have a netdev (u64)
*/
wdev?: bigint;
/**
* type of regulatory hint passed from
* userspace. If unset it is assumed the hint comes directly from
* a user. If set code could specify exactly what type of source
* was used to provide the hint. For the different types of
* allowed user regulatory hints see nl80211_user_reg_hint_type.
*/
userRegHintType?: Buffer;
/**
* The reason for which AP has rejected
* the connection request from a station. nl80211_connect_failed_reason
* enum has different reasons of connection failure.
*/
connFailedReason?: Buffer;
/**
* Fields and elements in Authentication frames.
* This contains the authentication frame body (non-IE and IE data),
* excluding the Authentication algorithm number, i.e., starting at the
* Authentication transaction sequence number field. It is used with
* authentication algorithms that need special fields to be added into
* the frames (SAE and FILS). Currently, only the SAE cases use the
* initial two fields (Authentication transaction sequence number and
* Status code). However, those fields are included in the attribute data
* for all authentication algorithms to keep the attribute definition
* consistent.
*/
authData?: Buffer;
/**
* VHT Capability information element (from
* association request when used with NL80211_CMD_NEW_STATION)
*/
vhtCapability?: Buffer;
/** scan request control flags (u32) */
scanFlags?: number;
/**
* u32 attribute containing one of the values
* of &enum nl80211_chan_width, describing the channel width. See the
* documentation of the enum for more information.
*/
channelWidth?: ChannelWidth | keyof typeof ChannelWidth;
/**
* Center frequency of the first part of the
* channel, used for anything but 20 MHz bandwidth
*/
centerFreq1?: number;
/**
* Center frequency of the second part of the
* channel, used only for 80+80 MHz bandwidth
*/
centerFreq2?: number;
/**
* P2P GO Client Traffic Window (u8), used with
* the START_AP and SET_BSS commands
*/
p2pCtwindow?: number;
/**
* P2P GO opportunistic PS (u8), used with the
* START_AP and SET_BSS commands. This can have the values 0 or 1;
* if not given in START_AP 0 is assumed, if not given in SET_BSS
* no change is made.
*/
p2pOppps?: number;
/**
* local mesh STA link-specific power mode
* defined in &enum nl80211_mesh_power_mode.
*/
localMeshPowerMode?: MeshPowerMode | keyof typeof MeshPowerMode;
/**
* ACL policy, see &enum nl80211_acl_policy,
* carried in a u32 attribute
*/
aclPolicy?: AclPolicy | keyof typeof AclPolicy;
/**
* Array of nested MAC addresses, used for
* MAC ACL.
*/
macAddrs?: Buffer[];
/**
* u32 attribute to advertise the maximum
* number of MAC addresses that a device can support for MAC
* ACL.
*/
macAclMax?: number;
/**
* Type of radar event for notification to userspace,
* contains a value of enum nl80211_radar_event (u32).
*/
radarEvent?: RadarEvent | keyof typeof RadarEvent;
/**
* 802.11 extended capabilities that the kernel driver
* has and handles. The format is the same as the IE contents. See
* 802.11-2012 8.4.2.29 for more information.
*/
extCapa?: Buffer;
/**
* Extended capabilities that the kernel driver
* has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields.
*/
extCapaMask?: Buffer;
/**
* Station capabilities (u16) are advertised to
* the driver, e.g., to enable TDLS power save (PU-APSD).
*/
staCapability?: number;
/**
* Station extended capabilities are
* advertised to the driver, e.g., to enable TDLS off channel operations
* and PU-APSD.
*/
staExtCapability?: Buffer;
/**
* global nl80211 feature flags, see
* &enum nl80211_protocol_features, the attribute is a u32.
*/
protocolFeatures?: ProtocolFeatures;
/**
* flag attribute, userspace supports
* receiving the data for a single wiphy split across multiple
* messages, given with wiphy dump message
*/
splitWiphyDump?: true;
disableVht?: true;
vhtCapabilityMask?: Buffer;
/** Mobility Domain Identifier */
mdid?: Buffer;
/**
* Resource Information Container Information
* Element
*/
ieRic?: Buffer;
/**
* critical protocol identifier requiring increased
* reliability, see &enum nl80211_crit_proto_id (u16).
*/
critProtId?: CritProtoId | keyof typeof CritProtoId;
/**
* duration in milliseconds in which
* the connection should have increased reliability (u16).
*/
maxCritProtDuration?: number;
/**
* Association ID for the peer TDLS station (u16).
* This is similar to @NL80211_ATTR_STA_AID but with a difference of being
* allowed to be used with the first @NL80211_CMD_SET_STATION command to
* update a TDLS peer STA entry.
*/
peerAid?: number;
/** Coalesce rule information. */
coalesceRule?: Buffer;
/**
* u32 attribute specifying the number of TBTT's
* until the channel switch event.
*/
chSwitchCount?: number;
/**
* flag attribute specifying that transmission
* must be blocked on the current channel (before the channel switch
* operation).
*/
chSwitchBlockTx?: true;
/**
* Nested set of attributes containing the IE information
* for the time while performing a channel switch.
*/
csaIes?: Buffer;
/**
* An array of offsets (u16) to the channel
* switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
*/
csaCOffBeacon?: number;
/**
* An array of offsets (u16) to the channel
* switch counters in the probe response (%NL80211_ATTR_PROBE_RESP).
*/
csaCOffPresp?: number;
/**
* flags for nl80211_send_mgmt(), u32.
* As specified in the &enum nl80211_rxmgmt_flags.
*/
rxmgmtFlags?: RxmgmtFlags;
/** array of supported channels. */
staSupportedChannels?: Buffer;
/**
* array of supported
* supported operating classes.
*/
staSupportedOperClasses?: Buffer;
/**
* A flag indicating whether user space
* controls DFS operation in IBSS mode. If the flag is included in
* %NL80211_CMD_JOIN_IBSS request, the driver will allow use of DFS
* channels and reports radar events to userspace. Userspace is required
* to react to radar events, e.g. initiate a channel switch or leave the
* IBSS network.
*/
handleDfs?: true;
/**
* A flag indicating that the device supports
* 5 MHz channel bandwidth.
*/
support5Mhz?: true;
/**
* A flag indicating that the device supports
* 10 MHz channel bandwidth.
*/
support10Mhz?: true;
/**
* Operating mode field from Operating Mode
* Notification Element based on association request when used with
* %NL80211_CMD_NEW_STATION or %NL80211_CMD_SET_STATION (only when
* %NL80211_FEATURE_FULL_AP_CLIENT_STATE is supported, or with TDLS);
* u8 attribute.
*/
opmodeNotif?: number;
/**
* The vendor ID, either a 24-bit OUI or, if
* %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet)
*/
vendorId?: number;
/** vendor sub-command */
vendorSubcmd?: number;
/**
* data for the vendor command, if any; this
* attribute is also used for vendor command feature advertisement
*/
vendorData?: Buffer;
/**
* used for event list advertising in the wiphy
* info, containing a nested array of possible events
*/
vendorEvents?: Buffer;
/**
* IP DSCP mapping for Interworking QoS mapping. This
* data is in the format defined for the payload of the QoS Map Set element
* in IEEE Std 802.11-2012, 8.4.2.97.
*/
qosMap?: Buffer;
/** MAC address recommendation as initial BSS */
macHint?: Buffer;
/** frequency of the recommended initial BSS */
wiphyFreqHint?: Buffer;
/**
* Device attribute that indicates how many
* associated stations are supported in AP mode (including P2P GO); u32.
* Since drivers may not have a fixed limit on the maximum number (e.g.,
* other concurrent operations may affect this), drivers are allowed to
* advertise values that cannot always be met. In such cases, an attempt
* to add a new station entry with @NL80211_CMD_NEW_STATION may fail.
*/
maxApAssocSta?: number;
/**
* flags for TDLS peer capabilities, u32.
* As specified in the &enum nl80211_tdls_peer_capability.
*/
tdlsPeerCapability?: TdlsPeerCapability;
/**
* Flag attribute, if set during interface
* creation then the new interface will be owned by the netlink socket
* that created it and will be destroyed when the socket is closed.
* If set during scheduled scan start then the new scan req will be
* owned by the netlink socket that created it and the scheduled scan will
* be stopped when the socket is closed.
* If set during configuration of regulatory indoor operation then the
* regulatory indoor configuration would be owned by the netlink socket
* that configured the indoor setting, and the indoor operation would be
* cleared when the socket is closed.
* If set during NAN interface creation, the interface will be destroyed
* if the socket is closed just like any other interface. Moreover, NAN
* notifications will be sent in unicast to that socket. Without this
* attribute, the notifications will be sent to the %NL80211_MCGRP_NAN
* multicast group.
* If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the
* station will deauthenticate when the socket is closed.
* If set during %NL80211_CMD_JOIN_IBSS the IBSS will be automatically
* torn down when the socket is closed.
* If set during %NL80211_CMD_JOIN_MESH the mesh setup will be
* automatically torn down when the socket is closed.
* If set during %NL80211_CMD_START_AP the AP will be automatically
* disabled when the socket is closed.
*/
socketOwner?: true;
/**
* An array of csa counter offsets (u16) which
* should be updated when the frame is transmitted.
*/
csaCOffsetsTx?: number;
/**
* U8 attribute used to advertise the maximum
* supported number of csa counters.
*/
maxCsaCounters?: number;
/**
* flag attribute indicating the current end is
* the TDLS link initiator.
*/
tdlsInitiator?: true;
/**
* flag for indicating whether the current connection
* shall support Radio Resource Measurements (11k). This attribute can be
* used with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests.
* User space applications are expected to use this flag only if the
* underlying device supports these minimal RRM features:
* %NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES,
* %NL80211_FEATURE_QUIET,
* Or, if global RRM is supported, see:
* %NL80211_EXT_FEATURE_RRM
* If this flag is used, driver must add the Power Capabilities IE to the
* association request. In addition, it must also set the RRM capability
* flag in the association request's Capability Info field.
*/
useRrm?: true;
/**
* flag attribute used to enable ACK timeout
* estimation algorithm (dynack). In order to activate dynack
* %NL80211_FEATURE_ACKTO_ESTIMATION feature flag must be set by lower
* drivers to indicate dynack capability. Dynack is automatically disabled
* setting valid value for coverage class.
*/
wiphyDynAck?: true;
/** a TSID value (u8 attribute) */
tsid?: number;
/** user priority value (u8 attribute) */
userPrio?: number;
/**
* admitted time in units of 32 microseconds
* (per second) (u16 attribute)
*/
admittedTime?: number;
/**
* SMPS mode to use (ap mode). see
* &enum nl80211_smps_mode.
*/
smpsMode?: Buffer;
/** operating class */
operClass?: Buffer;
/** MAC address mask */
macMask?: Buffer;
/**
* flag attribute indicating this device
* is self-managing its regulatory information and any regulatory domain
* obtained from it is coming from the device's wiphy and not the global
* cfg80211 regdomain.
*/
wiphySelfManagedReg?: true;
/**
* extended feature flags contained in a byte
* array. The feature flags are identified by their bit index (see &enum
* nl80211_ext_feature_index). The bit index is ordered starting at the
* least-significant bit of the first byte in the array, ie. bit index 0
* is located at bit 0 of byte 0. bit index 25 would be located at bit 1
* of byte 3 (u8 array).
*/
extFeatures?: Buffer;
/**
* Request overall radio statistics to be
* returned along with other survey data. If set, @NL80211_CMD_GET_SURVEY
* may return a survey entry without a channel indicating global radio
* statistics (only some values are valid and make sense.)
* For devices that don't return such an entry even then, the information
* should be contained in the result as the sum of the respective counters
* over all channels.
*/
surveyRadioStats?: Buffer;
netnsFd?: number;
/**
* delay before the first cycle of a
* scheduled scan is started. Or the delay before a WoWLAN
* net-detect scan is started, counting from the moment the
* system is suspended. This value is a u32, in seconds.
*/
schedScanDelay?: number;
/**
* flag attribute, if set indicates that the device
* is operating in an indoor environment.
*/
regIndoor?: true;
/**
* maximum number of scan plans for
* scheduled scan supported by the device (u32), a wiphy attribute.
*/
maxNumSchedScanPlans?: number;
/**
* maximum interval (in seconds) for
* a scan plan (u32), a wiphy attribute.
*/
maxScanPlanInterval?: number;
/**
* maximum number of iterations in
* a scan plan (u32), a wiphy attribute.
*/
maxScanPlanIterations?: number;
/**
* a list of scan plans for scheduled scan.
* Each scan plan defines the number of scan iterations and the interval
* between scans. The last scan plan will always run infinitely,
* thus it must not specify the number of iterations, only the interval
* between scans. The scan plans are executed sequentially.
* Each scan plan is a nested attribute of &enum nl80211_sched_scan_plan.
*/
schedScanPlans?: ScheduledScanPlan;
/**
* flag attribute. If set it means operate
* in a PBSS. Specified in %NL80211_CMD_CONNECT to request
* connecting to a PCP, and in %NL80211_CMD_START_AP to start
* a PCP instead of AP. Relevant for DMG networks only.
*/
pbss?: true;
/**
* nested attribute for driver supporting the
* BSS selection feature. When used with %NL80211_CMD_GET_WIPHY it contains
* attributes according &enum nl80211_bss_select_attr to indicate what
* BSS selection behaviours are supported. When used with %NL80211_CMD_CONNECT
* it contains the behaviour-specific attribute containing the parameters for
* BSS selection to be done by driver and/or firmware.
*/
bssSelect?: BssSelect;
/**
* whether P2P PS mechanism supported
* or not. u8, one of the values of &enum nl80211_sta_p2p_ps_status
*/
staSupportP2pPs?: StationP2pPsStatus | keyof typeof StationP2pPsStatus;
/** attribute used for padding for 64-bit alignment */
__pad?: Buffer;
/**
* Nested attribute of the following attributes:
* %NL80211_ATTR_IFTYPE, %NL80211_ATTR_EXT_CAPA,
* %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per
* interface type.
*/
iftypeExtCapa?: Buffer;
/**
* array of 24 bytes that defines a MU-MIMO
* groupID for monitor mode.
* The first 8 bytes are a mask that defines the membership in each
* group (there are 64 groups, group 0 and 63 are reserved),
* each bit represents a group and set to 1 for being a member in
* that group and 0 for not being a member.
* The remaining 16 bytes define the position in each group: 2 bits for
* each group.
* (smaller group numbers represented on most significant bits and bigger
* group numbers on least significant bits.)
* This attribute is used only if all interfaces are in monitor mode.
* Set this attribute in order to monitor packets using the given MU-MIMO
* groupID data.
* to turn off that feature set all the bits of the groupID to zero.
*/
muMimoGroupData?: Buffer;
/**
* mac address for the sniffer to follow
* when using MU-MIMO air sniffer.
* to turn that feature off set an invalid mac address
* (e.g. FF:FF:FF:FF:FF:FF)
*/
muMimoFollowMacAddr?: Buffer;
/**
* The time at which the scan was actually
* started (u64). The time is the TSF of the BSS the interface that
* requested the scan is connected to (if available, otherwise this
* attribute must not be included).
*/
scanStartTimeTsf?: bigint;
/**
* The BSS according to which
* %NL80211_ATTR_SCAN_START_TIME_TSF is set.
*/
scanStartTimeTsfBssid?: Buffer;
/**
* measurement duration in TUs (u16). If
* %NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY is not set, this is the
* maximum measurement duration allowed. This attribute is used with
* measurement requests. It can also be used with %NL80211_CMD_TRIGGER_SCAN
* if the scan is used for beacon report radio measurement.
*/
measurementDuration?: number;
/**
* flag attribute that indicates
* that the duration specified with %NL80211_ATTR_MEASUREMENT_DURATION is
* mandatory. If this flag is not set, the duration is the maximum duration
* and the actual measurement duration may be shorter.
*/
measurementDurationMandatory?: true;
/**
* Association ID for the mesh peer (u16). This is
* used to pull the stored data for mesh peer in power save state.
*/
meshPeerAid?: number;
/**
* the master preference to be used by
* %NL80211_CMD_START_NAN and optionally with
* %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0.
* Also, values 1 and 255 are reserved for certification purposes and
* should not be used during a normal device operation.
*/
nanMasterPref?: number;
/**
* operating bands configuration. This is a u32
* bitmask of BIT(NL80211_BAND_*) as described in %enum
* nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0
* would be set. This attribute is used with
* %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG, and
* it is optional. If no bands are set, it means don't-care and
* the device will decide what to use.
*/
bands?: BandIdSet;
/**
* a function that can be added to NAN. See
* &enum nl80211_nan_func_attributes for description of this nested
* attribute.
*/
nanFunc?: NanFunction;
/**
* used to report a match. This is a nested attribute.
* See &enum nl80211_nan_match_attributes.
*/
nanMatch?: NanMatch;
/**
* KEK for FILS (Re)Association Request/Response frame
* protection.
*/
filsKek?: Buffer;
/**
* Nonces (part of AAD) for FILS (Re)Association
* Request/Response frame protection. This attribute contains the 16 octet
* STA Nonce followed by 16 octets of AP Nonce.
*/
filsNonces?: Buffer;
/**
* Indicates whether or not multicast
* packets should be send out as unicast to all stations (flag attribute).
*/
multicastToUnicastEnabled?: true;
/**
* The BSSID of the AP. Note that %NL80211_ATTR_MAC is also
* used in various commands/events for specifying the BSSID.
*/
bssid?: Buffer;
/**
* Relative RSSI threshold by which
* other BSSs has to be better or slightly worse than the current
* connected BSS so that they get reported to user space.
* This will give an opportunity to userspace to consider connecting to
* other matching BSSs which have better or slightly worse RSSI than
* the current connected BSS by using an offloaded operation to avoid
* unnecessary wakeups.
*/
schedScanRelativeRssi?: Buffer;
/**
* When present the RSSI level for BSSs in
* the specified band is to be adjusted before doing
* %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparison to figure out
* better BSSs. The attribute value is a packed structure
* value as specified by &struct nl80211_bss_select_rssi_adjust.
*/
schedScanRssiAdjust?: Buffer;
/**
* The reason for which an operation timed out.
* u32 attribute with an &enum nl80211_timeout_reason value. This is used,
* e.g., with %NL80211_CMD_CONNECT event.
*/
timeoutReason?: TimeoutReason | keyof typeof TimeoutReason;
/**
* EAP Re-authentication Protocol (ERP)
* username part of NAI used to refer keys rRK and rIK. This is used with
* %NL80211_CMD_CONNECT.
*/
filsErpUsername?: Buffer;
/**
* EAP Re-authentication Protocol (ERP) realm part
* of NAI specifying the domain name of the ER server. This is used with
* %NL80211_CMD_CONNECT.
*/
filsErpRealm?: Buffer;
/**
* Unsigned 16-bit ERP next sequence number
* to use in ERP messages. This is used in generating the FILS wrapped data
* for FILS authentication and is used with %NL80211_CMD_CONNECT.
*/
filsErpNextSeqNum?: Buffer;
/**
* ERP re-authentication Root Key (rRK) for the
* NAI specified by %NL80211_ATTR_FILS_ERP_USERNAME and
* %NL80211_ATTR_FILS_ERP_REALM. This is used for generating rIK and rMSK
* from successful FILS authentication and is used with
* %NL80211_CMD_CONNECT.
*/
filsErpRrk?: Buffer;
/**
* A 2-octet identifier advertized by a FILS AP
* identifying the scope of PMKSAs. This is used with
* @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA.
*/
filsCacheId?: Buffer;
/**
* attribute for passing PMK key material. Used with
* %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID.
* For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way
* handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is
* used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute
* specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well.
*/
pmk?: Buffer;
/**
* flag attribute which user-space shall use to
* indicate that it supports multiple active scheduled scan requests.
*/
schedScanMulti?: true;
/**
* indicates maximum number of scheduled
* scan request that may be active for the device (u32).
*/
schedScanMaxReqs?: number;
/**
* flag attribute which user-space can include
* in %NL80211_CMD_CONNECT to indicate that for 802.1X authentication it
* wants to use the supported offload of the 4-way handshake.
*/
want1x4wayHs?: true;
/** PMK-R0 Name for offloaded FT. */
pmkr0Name?: Buffer;
/** (reserved) */
portAuthorized?: Buffer;
/**
* Identify the requested external
* authentication operation (u32 attribute with an
* &enum nl80211_external_auth_action value). This is used with the
* %NL80211_CMD_EXTERNAL_AUTH request event.
*/
externalAuthAction?: ExternalAuthAction | keyof typeof ExternalAuthAction;
/**
* Flag attribute indicating that the user
* space supports external authentication. This attribute shall be used
* with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
* may offload authentication processing to user space if this capability
* is indicated in the respective requests from the user space.
*/
externalAuthSupport?: true;
/**
* Station's New/updated RX_NSS value notified using this
* u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
*/
nss?: number;
ackSignal?: Buffer;
/**
* A flag indicating whether control
* port frames (e.g. of type given in %NL80211_ATTR_CONTROL_PORT_ETHERTYPE)
* will be sent directly to the network interface or sent via the NL80211
* socket. If this attribute is missing, then legacy behavior of sending
* control port frames directly to the network interface is used. If the
* flag is included, then control port frames are sent over NL80211 instead
* using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
* to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
* flag.
*/
controlPortOverNl80211?: true;
/**
* TXQ statistics (nested attribute, see &enum
* nl80211_txq_stats)
*/
txqStats?: TxqStats;
/**
* Total packet limit for the TXQ queues for this phy.
* The smaller of this and the memory limit is enforced.
*/
txqLimit?: number;
/**
* Total memory memory limit (in bytes) for the
* TXQ queues for this phy. The smaller of this and the packet limit is
* enforced.
*/
txqMemoryLimit?: number;
/**
* TXQ scheduler quantum (bytes). Number of bytes
* a flow is assigned on each round of the DRR scheduler.
*/
txqQuantum?: number;
/**
* HE Capability information element (from
* association request when used with NL80211_CMD_NEW_STATION). Can be set
* only if %NL80211_STA_FLAG_WME is set.
*/
heCapability?: Buffer;
/**
* nested attribute which user-space can include
* in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
* measurement (FTM) responder functionality and containing parameters as
* possible, see &enum nl80211_ftm_responder_attr
*/
ftmResponder?: Buffer;
/**
* Nested attribute with FTM responder
* statistics, see &enum nl80211_ftm_responder_stats.
*/
ftmResponderStats?: FtmResponderStats;
/**
* Timeout for the given operation in milliseconds (u32),
* if the attribute is not given no timeout is requested. Note that 0 is an
* invalid value.
*/
timeout?: number;
/**
* peer measurements request (and result)
* data, uses nested attributes specified in
* &enum nl80211_peer_measurement_attrs.
* This is also used for capability advertisement in the wiphy information,
* with the appropriate sub-attributes.
*/
peerMeasurements?: PeerMeasurement;
/**
* Station's weight when scheduled by the airtime
* scheduler.
*/
airtimeWeight?: number;
/**
* Transmit power setting type (u8) for
* station associated with the AP. See &enum nl80211_tx_power_setting for
* possible values.
*/
staTxPowerSetting?: TxPowerSetting | keyof typeof TxPowerSetting;
/**
* Transmit power level (s16) in dBm units. This
* allows to set Tx power for a station. If this attribute is not included,
* the default per-interface tx power setting will be overriding. Driver
* should be picking up the lowest tx power, either tx power per-interface
* or per-station.
*/
staTxPower?: number;
/**
* attribute for passing SAE password material. It
* is used with %NL80211_CMD_CONNECT to provide password for offloading
* SAE authentication for WPA3-Personal networks.
*/
saePassword?: Buffer;
/** Enable target wait time responder support. */
twtResponder?: Buffer;
/**
* nested attribute for OBSS Packet Detection
* functionality.
*/
heObssPd?: Buffer;
/**
* bitmap that indicates the 2.16 GHz
* channel(s) that are allowed to be used for EDMG transmissions.
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute)
*/
wiphyEdmgChannels?: number;
/**
* Channel BW Configuration subfield encodes
* the allowed channel bandwidth configurations. (u8 attribute)
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
*/
wiphyEdmgBwConfig?: number;
/**
* VLAN ID (1..4094) for the station and VLAN group key
* (u16).
*/
vlanId?: number;
}
/** Parses the attributes of a {@link Message} object */
export declare function parseMessage(r: Buffer): Message;
/** Encodes a {@link Message} object into a stream of attributes */
export declare function formatMessage(x: Message): StreamData;
/**
* (virtual) interface types
*
* These values are used with the %NL80211_ATTR_IFTYPE
* to set the type of an interface.
*
* /
*/
export declare enum InterfaceType {
/** unspecified type, driver decides */
UNSPECIFIED = 0,
/** independent BSS member */
ADHOC = 1,
/** managed BSS member */
STATION = 2,
/** access point */
AP = 3,
/**
* VLAN interface for access points; VLAN interfaces
* are a bit special in that they must always be tied to a pre-existing
* AP type interface.
*/
AP_VLAN = 4,
/** wireless distribution interface */
WDS = 5,
/** monitor interface receiving all frames */
MONITOR = 6,
/** mesh point */
MESH_POINT = 7,
/** P2P client */
P2P_CLIENT = 8,
/** P2P group owner */
P2P_GO = 9,
/**
* P2P device interface type, this is not a netdev
* and therefore can't be created in the normal ways, use the
* %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE
* commands to create and destroy one
*/
P2P_DEVICE = 10,
/**
* Outside Context of a BSS
* This mode corresponds to the MIB variable dot11OCBActivated=true
*/
OCB = 11,
/** NAN device interface type (not a netdev) */
NAN = 12
}
/** Set of flags from {@link InterfaceType} bits */
export interface InterfaceTypeSet extends BaseObject {
/** unspecified type, driver decides */
unspecified?: true;
/** independent BSS member */
adhoc?: true;
/** managed BSS member */
station?: true;
/** access point */
ap?: true;
/**
* VLAN interface for access points; VLAN interfaces
* are a bit special in that they must always be tied to a pre-existing
* AP type interface.
*/
apVlan?: true;
/** wireless distribution interface */
wds?: true;
/** monitor interface receiving all frames */
monitor?: true;
/** mesh point */
meshPoint?: true;
/** P2P client */
p2pClient?: true;
/** P2P group owner */
p2pGo?: true;
/**
* P2P device interface type, this is not a netdev
* and therefore can't be created in the normal ways, use the
* %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE
* commands to create and destroy one
*/
p2pDevice?: true;
/**
* Outside Context of a BSS
* This mode corresponds to the MIB variable dot11OCBActivated=true
*/
ocb?: true;
/** NAN device interface type (not a netdev) */
nan?: true;
}
/** Parses flags attributes with {@link InterfaceType} types */
export declare function parseInterfaceTypeSetAttr(r: Buffer): InterfaceTypeSet;
/** Encodes a set of {@link InterfaceType} flags into a stream of attributes */
export declare function formatInterfaceTypeSetAttr(x: InterfaceTypeSet): StreamData;
/**
* station flags
*
* Station flags. When a station is added to an AP interface, it is
* assumed to be already associated (and hence authenticated.)
*/
export interface StationFlags extends BaseObject {
/** station is authorized (802.1X) */
authorized?: true;
/**
* station is capable of receiving frames
* with short barker preamble
*/
shortPreamble?: true;
/** station is WME/QoS capable */
wme?: true;
/** station uses management frame protection */
mfp?: true;
/** station is authenticated */
authenticated?: true;
/**
* station is a TDLS peer -- this flag should
* only be used in managed mode (even in the flags mask). Note that the
* flag can't be changed, it is only valid while adding a station, and
* attempts to change it will silently be ignored (rather than rejected
* as errors.)
*/
tdlsPeer?: true;
/**
* station is associated; used with drivers
* that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a
* previously added station into associated state
*/
associated?: true;
}
/** Parses the attributes of a {@link StationFlags} object */
export declare function parseStationFlags(r: Buffer): StationFlags;
/** Encodes a {@link StationFlags} object into a stream of attributes */
export declare function formatStationFlags(x: StationFlags): StreamData;
/** station support of P2P PS */
export declare enum StationP2pPsStatus {
/** station doesn't support P2P PS mechanism */
UNSUPPORTED = 0,
/** station supports P2P PS mechanism */
SUPPORTED = 1
}
/** HE guard interval */
export declare enum HeGuardInterval {
/** 0.8 usec */
_0_8 = 0,
/** 1.6 usec */
_1_6 = 1,
/** 3.2 usec */
_3_2 = 2
}
/**
* HE RU allocation values
*
* @NL80211_RATE_INFO_HE_RU_ALLOC_2x996: 2x996-tone RU allocation
*/
export declare enum HeRuAllocation {
/** 26-tone RU allocation */
_26 = 0,
/** 52-tone RU allocation */
_52 = 1,
/** 106-tone RU allocation */
_106 = 2,
/** 242-tone RU allocation */
_242 = 3,
/** 484-tone RU allocation */
_484 = 4,
/** 996-tone RU allocation */
_996 = 5,
_2x996 = 6
}
/**
* bitrate information
*
* These attribute types are used with %NL80211_STA_INFO_TXRATE
* when getting information about the bitrate of a station.
* There are 2 attributes for bitrate, a legacy one that represents
* a 16-bit value, and new one that represents a 32-bit value.
* If the rate value fits into 16 bit, both attributes are reported
* with the same value. If the rate is too high to fit into 16 bits
* (>6.5535Gbps) only 32-bit attribute is included.
* User space tools encouraged to use the 32-bit attribute and fall
* back to the 16-bit one for compatibility with older kernels.
*/
export interface RateInfo extends BaseObject {
/** total bitrate (u16, 100kbit/s) */
bitrate?: number;
/** mcs index for 802.11n (u8) */
mcs?: number;
/** 40 MHz dualchannel bitrate */
_40MhzWidth?: Buffer;
/** 400ns guard interval */
shortGi?: Buffer;
/** total bitrate (u32, 100kbit/s) */
bitrate32?: number;
/** MCS index for VHT (u8) */
vhtMcs?: number;
/** number of streams in VHT (u8) */
vhtNss?: number;
/** 80 MHz VHT rate */
_80MhzWidth?: Buffer;
/**
* unused - 80+80 is treated the
* same as 160 for purposes of the bitrates
*/
_80p80MhzWidth?: Buffer;
/** 160 MHz VHT rate */
_160MhzWidth?: Buffer;
/**
* 10 MHz width - note that this is
* a legacy rate and will be reported as the actual bitrate, i.e.
* half the base (20 MHz) rate
*/
_10MhzWidth?: Buffer;
/**
* 5 MHz width - note that this is
* a legacy rate and will be reported as the actual bitrate, i.e.
* a quarter of the base (20 MHz) rate
*/
_5MhzWidth?: Buffer;
/** HE MCS index (u8, 0-11) */
heMcs?: number;
/** HE NSS value (u8, 1-8) */
heNss?: number;
/**
* HE guard interval identifier
* (u8, see &enum nl80211_he_gi)
*/
heGi?: HeGuardInterval | keyof typeof HeGuardInterval;
/** HE DCM value (u8, 0/1) */
heDcm?: number;
/**
* HE RU allocation, if not present then
* non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
*/
heRuAlloc?: HeRuAllocation | keyof typeof HeRuAllocation;
}
/** Parses the attributes of a {@link RateInfo} object */
export declare function parseRateInfo(r: Buffer): RateInfo;
/** Encodes a {@link RateInfo} object into a stream of attributes */
export declare function formatRateInfo(x: RateInfo): StreamData;
/**
* BSS information collected by STA
*
* These attribute types are used with %NL80211_STA_INFO_BSS_PARAM
* when getting information about the bitrate of a station.
*/
export interface StationBssParam extends BaseObject {
/** whether CTS protection is enabled (flag) */
ctsProt?: true;
/**
* whether short preamble is enabled
* (flag)
*/
shortPreamble?: true;
/**
* whether short slot time is enabled
* (flag)
*/
shortSlotTime?: true;
/** DTIM period for beaconing (u8) */
dtimPeriod?: number;
/** Beacon interval (u16) */
beaconInterval?: number;
}
/** Parses the attributes of a {@link StationBssParam} object */
export declare function parseStationBssParam(r: Buffer): StationBssParam;
/** Encodes a {@link StationBssParam} object into a stream of attributes */
export declare function formatStationBssParam(x: StationBssParam): StreamData;
/**
* station information
*
* These attribute types are used with %NL80211_ATTR_STA_INFO
* when getting information about a station.
*/
export interface StationInfo extends BaseObject {
/** time since last activity (u32, msecs) */
inactiveTime?: number;
/**
* total received bytes (MPDU length)
* (u32, from this station)
*/
rxBytes?: number;
/**
* total transmitted bytes (MPDU length)
* (u32, to this station)
*/
txBytes?: number;
/** the station's mesh LLID */
llid?: number;
/** the station's mesh PLID */
plid?: number;
/**
* peer link state for the station
* (see %enum nl80211_plink_state)
*/
plinkState?: PlinkState | keyof typeof PlinkState;
/** signal strength of last received PPDU (u8, dBm) */
signal?: number;
/**
* current unicast tx rate, nested attribute
* containing info as possible, see &enum nl80211_rate_info
*/
txBitrate?: RateInfo;
/**
* total received packet (MSDUs and MMPDUs)
* (u32, from this station)
*/
rxPackets?: number;
/**
* total transmitted packets (MSDUs and MMPDUs)
* (u32, to this station)
*/
txPackets?: number;
/** total retries (MPDUs) (u32, to this station) */
txRetries?: number;
/**
* total failed packets (MPDUs)
* (u32, to this station)
*/
txFailed?: number;
/** signal strength average (u8, dBm) */
signalAvg?: number;
/**
* last unicast data frame rx rate, nested
* attribute, like NL80211_STA_INFO_TX_BITRATE.
*/
rxBitrate?: Buffer;
/**
* current station's view of BSS, nested attribute
* containing info as possible, see &enum nl80211_sta_bss_param
*/
bssParam?: StationBssParam;
/** time since the station is last connected */
connectedTime?: number;
/** Contains a struct nl80211_sta_flag_update. */
staFlags?: Buffer;
/** count of times beacon loss was detected (u32) */
beaconLoss?: number;
/** timing offset with respect to this STA (s64) */
tOffset?: bigint;
/** local mesh STA link-specific power mode */
localPm?: Buffer;
/** peer mesh STA link-specific power mode */
peerPm?: Buffer;
/**
* neighbor mesh STA power save mode towards
* non-peer STA
*/
nonpeerPm?: Buffer;
/**
* total received bytes (MPDU length)
* (u64, from this station)
*/
rxBytes64?: bigint;
/**
* total transmitted bytes (MPDU length)
* (u64, to this station)
*/
txBytes64?: bigint;
/**
* per-chain signal strength of last PPDU
* Contains a nested array of signal strength attributes (u8, dBm)
*/
chainSignal?: number;
/**
* per-chain signal strength average
* Same format as NL80211_STA_INFO_CHAIN_SIGNAL.
*/
chainSignalAvg?: Buffer;
/**
* expected throughput considering also the
* 802.11 header (u32, kbps)
*/
expectedThroughput?: number;
/**
* RX packets dropped for unspecified reasons
* (u64)
*/
rxDropMisc?: bigint;
/** number of beacons received from this peer (u64) */
beaconRx?: bigint;
/**
* signal strength average
* for beacons only (u8, dBm)
*/
beaconSignalAvg?: number;
/**
* per-TID statistics (see &enum nl80211_tid_stats)
* This is a nested attribute where each the inner attribute number is the
* TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames;
* each one of those is again nested with &enum nl80211_tid_stats
* attributes carrying the actual values.
*/
tidStats?: Map;
/**
* aggregate PPDU duration for all frames
* received from the station (u64, usec)
*/
rxDuration?: bigint;
/** attribute used for padding for 64-bit alignment */
__pad?: Buffer;
/** signal strength of the last ACK frame(u8, dBm) */
ackSignal?: number;
/** avg signal strength of ACK frames (s8, dBm) */
ackSignalAvg?: number;
/**
* total number of received packets (MPDUs)
* (u32, from this station)
*/
rxMpdus?: number;
/**
* total number of packets (MPDUs) received
* with an FCS error (u32, from this station). This count may not include
* some packets with an FCS error due to TA corruption. Hence this counter
* might not be fully accurate.
*/
fcsErrorCount?: number;
/**
* set to true if STA has a path to a
* mesh gate (u8, 0 or 1)
*/
connectedToGate?: number;
/**
* aggregate PPDU duration for all frames
* sent to the station (u64, usec)
*/
txDuration?: bigint;
/** current airtime weight for station (u16) */
airtimeWeight?: number;
/** airtime link metric for mesh station */
airtimeLinkMetric?: Buffer;
/**
* Timestamp (CLOCK_BOOTTIME, nanoseconds)
* of STA's association
*/
assocAtBoottime?: bigint;
}
/** Parses the attributes of a {@link StationInfo} object */
export declare function parseStationInfo(r: Buffer): StationInfo;
/** Encodes a {@link StationInfo} object into a stream of attributes */
export declare function formatStationInfo(x: StationInfo): StreamData;
/** per TID statistics attributes */
export interface TidStats extends BaseObject {
/** number of MSDUs received (u64) */
rxMsdu?: bigint;
/**
* number of MSDUs transmitted (or
* attempted to transmit; u64)
*/
txMsdu?: bigint;
/**
* number of retries for
* transmitted MSDUs (not counting the first attempt; u64)
*/
txMsduRetries?: bigint;
/**
* number of failed transmitted
* MSDUs (u64)
*/
txMsduFailed?: bigint;
/** attribute used for padding for 64-bit alignment */
__pad?: Buffer;
/** TXQ stats (nested attribute) */
txqStats?: TxqStats;
}
/** Parses the attributes of a {@link TidStats} object */
export declare function parseTidStats(r: Buffer): TidStats;
/** Encodes a {@link TidStats} object into a stream of attributes */
export declare function formatTidStats(x: TidStats): StreamData;
/** per TXQ statistics attributes */
export interface TxqStats extends BaseObject {
/** number of bytes currently backlogged */
backlogBytes?: Buffer;
/**
* number of packets currently
* backlogged
*/
backlogPackets?: Buffer;
/** total number of new flows seen */
flows?: Buffer;
/** total number of packet drops */
drops?: Buffer;
/** total number of packet ECN marks */
ecnMarks?: Buffer;
/** number of drops due to queue space overflow */
overlimit?: Buffer;
/**
* number of drops due to memory limit overflow
* (only for per-phy stats)
*/
overmemory?: Buffer;
/** number of hash collisions */
collisions?: Buffer;
/** total number of bytes dequeued from TXQ */
txBytes?: Buffer;
/** total number of packets dequeued from TXQ */
txPackets?: Buffer;
/** number of flow buckets for PHY */
maxFlows?: Buffer;
}
/** Parses the attributes of a {@link TxqStats} object */
export declare function parseTxqStats(r: Buffer): TxqStats;
/** Encodes a {@link TxqStats} object into a stream of attributes */
export declare function formatTxqStats(x: TxqStats): StreamData;
/** nl80211 mesh path flags */
export interface MpathFlags {
/** the mesh path is active */
active?: true;
/** the mesh path discovery process is running */
resolving?: true;
/** the mesh path contains a valid SN */
snValid?: true;
/** the mesh path has been manually set */
fixed?: true;
/** the mesh path discovery process succeeded */
resolved?: true;
__unknown?: number;
}
/** Parses the flags in a {@link MpathFlags} bitmask */
export declare function parseMpathFlags(r: number): MpathFlags;
/** Encodes a {@link MpathFlags} bitmask */
export declare function formatMpathFlags(x: MpathFlags): number;
/**
* mesh path information
*
* These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting
* information about a mesh path.
*/
export interface MpathInfo extends BaseObject {
/** number of queued frames for this destination */
frameQlen?: number;
/** destination sequence number */
sn?: number;
/** metric (cost) of this mesh path */
metric?: number;
/** expiration time for the path, in msec from now */
exptime?: number;
/**
* mesh path flags, enumerated in
* &enum nl80211_mpath_flags;
*/
flags?: MpathFlags;
/** total path discovery timeout, in msec */
discoveryTimeout?: number;
/** mesh path discovery retries */
discoveryRetries?: number;
/** hop count to destination */
hopCount?: Buffer;
/** total number of path changes to destination */
pathChange?: Buffer;
}
/** Parses the attributes of a {@link MpathInfo} object */
export declare function parseMpathInfo(r: Buffer): MpathInfo;
/** Encodes a {@link MpathInfo} object into a stream of attributes */
export declare function formatMpathInfo(x: MpathInfo): StreamData;
/** Interface type data attributes */
export interface BandInterfaceType extends BaseObject {
/**
* nested attribute containing a flag attribute
* for each interface type that supports the band data
*/
iftypes?: InterfaceTypeSet;
/**
* HE MAC capabilities as in HE
* capabilities IE
*/
heCapMac?: Buffer;
/**
* HE PHY capabilities as in HE
* capabilities IE
*/
heCapPhy?: Buffer;
/**
* HE supported NSS/MCS as in HE
* capabilities IE
*/
heCapMcsSet?: Buffer;
/**
* HE PPE thresholds information as
* defined in HE capabilities IE
*/
heCapPpe?: Buffer;
}
/** Parses the attributes of a {@link BandInterfaceType} object */
export declare function parseBandInterfaceType(r: Buffer): BandInterfaceType;
/** Encodes a {@link BandInterfaceType} object into a stream of attributes */
export declare function formatBandInterfaceType(x: BandInterfaceType): StreamData;
/** band attributes */
export interface Band extends BaseObject {
/**
* supported frequencies in this band,
* an array of nested frequency attributes
*/
freqs?: Frequency[];
/**
* supported bitrates in this band,
* an array of nested bitrate attributes
*/
rates?: Bitrate[];
/**
* 16-byte attribute containing the MCS set as
* defined in 802.11n
*/
htMcsSet?: Buffer;
/** HT capabilities, as in the HT information IE */
htCapa?: number;
/** A-MPDU factor, as in 11n */
htAmpduFactor?: number;
/** A-MPDU density, as in 11n */
htAmpduDensity?: number;
/**
* 32-byte attribute containing the MCS set as
* defined in 802.11ac
*/
vhtMcsSet?: Buffer;
/** VHT capabilities, as in the HT information IE */
vhtCapa?: number;
/**
* nested array attribute, with each entry using
* attributes from &enum nl80211_band_iftype_attr
*/
iftypeData?: BandInterfaceType[];
/**
* bitmap that indicates the 2.16 GHz
* channel(s) that are allowed to be used for EDMG transmissions.
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251.
*/
edmgChannels?: Buffer;
/**
* Channel BW Configuration subfield encodes
* the allowed channel bandwidth configurations.
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
*/
edmgBwConfig?: Buffer;
}
/** Parses the attributes of a {@link Band} object */
export declare function parseBand(r: Buffer): Band;
/** Encodes a {@link Band} object into a stream of attributes */
export declare function formatBand(x: Band): StreamData;
/** regulatory wmm rule */
export interface WmmRule extends BaseObject {
/** Minimum contention window slot. */
cwMin?: Buffer;
/** Maximum contention window slot. */
cwMax?: Buffer;
/** Arbitration Inter Frame Space. */
aifsn?: Buffer;
/** Maximum allowed tx operation time. */
txop?: Buffer;
}
/** Parses the attributes of a {@link WmmRule} object */
export declare function parseWmmRule(r: Buffer): WmmRule;
/** Encodes a {@link WmmRule} object into a stream of attributes */
export declare function formatWmmRule(x: WmmRule): StreamData;
/**
* frequency attributes
*
* See https://apps.fcc.gov/eas/comments/GetPublishedDocument.html?id=327&tn=528122
* for more information on the FCC description of the relaxations allowed
* by NL80211_FREQUENCY_ATTR_INDOOR_ONLY and
* NL80211_FREQUENCY_ATTR_IR_CONCURRENT.
*/
export interface Frequency extends BaseObject {
/** Frequency in MHz */
freq?: number;
/**
* Channel is disabled in current
* regulatory domain.
*/
disabled?: true;
/**
* no mechanisms that initiate radiation
* are permitted on this channel, this includes sending probe
* requests, or modes of operation that require beaconing.
*/
noIr?: true;
__noIbss?: true;
/**
* Radar detection is mandatory
* on this channel in current regulatory domain.
*/
radar?: true;
/**
* Maximum transmission power in mBm
* (100 * dBm).
*/
maxTxPower?: number;
/**
* current state for DFS
* (enum nl80211_dfs_state)
*/
dfsState?: DfsState | keyof typeof DfsState;
/**
* time in miliseconds for how long
* this channel is in this DFS state.
*/
dfsTime?: number;
/**
* HT40- isn't possible with this
* channel as the control channel
*/
noHt40Minus?: true;
/**
* HT40+ isn't possible with this
* channel as the control channel
*/
noHt40Plus?: true;
/**
* any 80 MHz channel using this channel
* as the primary or any of the secondary channels isn't possible,
* this includes 80+80 channels
*/
no80mhz?: true;
/**
* any 160 MHz (but not 80+80) channel
* using this channel as the primary or any of the secondary channels
* isn't possible
*/
no160mhz?: true;
/** DFS CAC time in milliseconds. */
dfsCacTime?: number;
/**
* Only indoor use is permitted on this
* channel. A channel that has the INDOOR_ONLY attribute can only be
* used when there is a clear assessment that the device is operating in
* an indoor surroundings, i.e., it is connected to AC power (and not
* through portable DC inverters) or is under the control of a master
* that is acting as an AP and is connected to AC power.
*/
indoorOnly?: true;
/**
* IR operation is allowed on this
* channel if it's connected concurrently to a BSS on the same channel on
* the 2 GHz band or to a channel in the same UNII band (on the 5 GHz
* band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO or TDLS
* off-channel on a channel that has the IR_CONCURRENT attribute set can be
* done when there is a clear assessment that the device is operating under
* the guidance of an authorized master, i.e., setting up a GO or TDLS
* off-channel while the device is also connected to an AP with DFS and
* radar detection on the UNII band (it is up to user-space, i.e.,
* wpa_supplicant to perform the required verifications). Using this
* attribute for IR is disallowed for master interfaces (IBSS, AP).
*/
irConcurrent?: true;
/**
* 20 MHz operation is not allowed
* on this channel in current regulatory domain.
*/
no20mhz?: true;
/**
* 10 MHz operation is not allowed
* on this channel in current regulatory domain.
*/
no10mhz?: true;
/**
* this channel has wmm limitations.
* This is a nested attribute that contains the wmm limitation per AC.
* (see &enum nl80211_wmm_rule)
*/
wmm?: WmmRule;
}
/** Parses the attributes of a {@link Frequency} object */
export declare function parseFrequency(r: Buffer): Frequency;
/** Encodes a {@link Frequency} object into a stream of attributes */
export declare function formatFrequency(x: Frequency): StreamData;
/** bitrate attributes */
export interface Bitrate extends BaseObject {
/** Bitrate in units of 100 kbps */
rate?: number;
/**
* Short preamble supported
* in 2.4 GHz band.
*/
_2ghzShortpreamble?: true;
}
/** Parses the attributes of a {@link Bitrate} object */
export declare function parseBitrate(r: Buffer): Bitrate;
/** Encodes a {@link Bitrate} object into a stream of attributes */
export declare function formatBitrate(x: Bitrate): StreamData;
/** Indicates the initiator of a reg domain request */
export declare enum RegulatoryInitiator {
/**
* Core queried CRDA for a dynamic world
* regulatory domain.
*/
CORE = 0,
/**
* User asked the wireless core to set the
* regulatory domain.
*/
USER = 1,
/**
* a wireless drivers has hinted to the
* wireless core it thinks its knows the regulatory domain we should be in.
*/
DRIVER = 2,
/**
* the wireless core has received an
* 802.11 country information element with regulatory information it
* thinks we should consider. cfg80211 only processes the country
* code from the IE, and relies on the regulatory domain information
* structure passed by userspace (CRDA) from our wireless-regdb.
* If a channel is enabled but the country code indicates it should
* be disabled we disable the channel and re-enable it upon disassociation.
*/
COUNTRY_IE = 3
}
/** specifies the type of regulatory domain */
export declare enum RegulatoryType {
/**
* the regulatory domain set is one that pertains
* to a specific country. When this is set you can count on the
* ISO / IEC 3166 alpha2 country code being valid.
*/
COUNTRY = 0,
/**
* the regulatory set domain is the world regulatory
* domain.
*/
WORLD = 1,
/**
* the regulatory domain set is a custom
* driver specific world regulatory domain. These do not apply system-wide
* and are only applicable to the individual devices which have requested
* them to be applied.
*/
CUSTOM_WORLD = 2,
/**
* the regulatory domain set is the product
* of an intersection between two regulatory domains -- the previously
* set regulatory domain on the system and the last accepted regulatory
* domain request to be processed.
*/
INTERSECTION = 3
}
/** regulatory rule attributes */
export interface RegulatoryRule extends BaseObject {
/**
* a set of flags which specify additional
* considerations for a given frequency range. These are the
* &enum nl80211_reg_rule_flags.
*/
regRuleFlags?: RegulatoryRuleFlags;
/**
* starting frequencry for the regulatory
* rule in KHz. This is not a center of frequency but an actual regulatory
* band edge.
*/
freqRangeStart?: number;
/**
* ending frequency for the regulatory rule
* in KHz. This is not a center a frequency but an actual regulatory
* band edge.
*/
freqRangeEnd?: number;
/**
* maximum allowed bandwidth for this
* frequency range, in KHz.
*/
freqRangeMaxBw?: number;
/**
* the maximum allowed antenna gain
* for a given frequency range. The value is in mBi (100 * dBi).
* If you don't have one then don't send this.
*/
powerRuleMaxAntGain?: number;
/**
* the maximum allowed EIRP for
* a given frequency range. The value is in mBm (100 * dBm).
*/
powerRuleMaxEirp?: number;
/**
* DFS CAC time in milliseconds.
* If not present or 0 default CAC time will be used.
*/
dfsCacTime?: number;
}
/** Parses the attributes of a {@link RegulatoryRule} object */
export declare function parseRegulatoryRule(r: Buffer): RegulatoryRule;
/** Encodes a {@link RegulatoryRule} object into a stream of attributes */
export declare function formatRegulatoryRule(x: RegulatoryRule): StreamData;
/** scheduled scan match attributes */
export interface ScheduledScanMatch extends BaseObject {
/**
* SSID to be used for matching,
* only report BSS with matching SSID.
* (This cannot be used together with BSSID.)
*/
attrSsid?: Buffer;
/**
* RSSI threshold (in dBm) for reporting a
* BSS in scan results. Filtering is turned off if not specified. Note that
* if this attribute is in a match set of its own, then it is treated as
* the default value for all matchsets with an SSID, rather than being a
* matchset of its own without an RSSI filter. This is due to problems with
* how this API was implemented in the past. Also, due to the same problem,
* the only way to create a matchset with only an RSSI filter (with this
* attribute) is if there's only a single matchset with the RSSI attribute.
*/
attrRssi?: Buffer;
/**
* Flag indicating whether
* %NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to be used as absolute RSSI or
* relative to current bss's RSSI.
*/
attrRelativeRssi?: true;
/**
* When present the RSSI level for
* BSS-es in the specified band is to be adjusted before doing
* RSSI-based BSS selection. The attribute value is a packed structure
* value as specified by &struct nl80211_bss_select_rssi_adjust.
*/
attrRssiAdjust?: Buffer;
/**
* BSSID to be used for matching
* (this cannot be used together with SSID).
*/
attrBssid?: Buffer;
/**
* Nested attribute that carries the
* band specific minimum rssi thresholds for the bands defined in
* enum nl80211_band. The minimum rssi threshold value(s32) specific to a
* band shall be encapsulated in attribute with type value equals to one
* of the NL80211_BAND_* defined in enum nl80211_band. For example, the
* minimum rssi threshold value for 2.4GHZ band shall be encapsulated
* within an attribute of type NL80211_BAND_2GHZ. And one or more of such
* attributes will be nested within this attribute.
*/
perBandRssi?: BandId | keyof typeof BandId;
}
/** Parses the attributes of a {@link ScheduledScanMatch} object */
export declare function parseScheduledScanMatch(r: Buffer): ScheduledScanMatch;
/** Encodes a {@link ScheduledScanMatch} object into a stream of attributes */
export declare function formatScheduledScanMatch(x: ScheduledScanMatch): StreamData;
/** regulatory rule flags */
export interface RegulatoryRuleFlags {
/** OFDM modulation not allowed */
noOfdm?: true;
/** CCK modulation not allowed */
noCck?: true;
/** indoor operation not allowed */
noIndoor?: true;
/** outdoor operation not allowed */
noOutdoor?: true;
/** DFS support is required to be used */
dfs?: true;
/** this is only for Point To Point links */
ptpOnly?: true;
/** this is only for Point To Multi Point links */
ptmpOnly?: true;
/**
* no mechanisms that initiate radiation are allowed,
* this includes probe requests or modes of operation that require
* beaconing.
*/
noIr?: true;
__noIbss?: true;
/**
* maximum available bandwidth should be calculated
* base on contiguous rules and wider channels will be allowed to cross
* multiple contiguous/overlapping frequency ranges.
*/
autoBw?: true;
/** See %NL80211_FREQUENCY_ATTR_IR_CONCURRENT */
irConcurrent?: true;
/** channels can't be used in HT40- operation */
noHt40minus?: true;
/** channels can't be used in HT40+ operation */
noHt40plus?: true;
/** 80MHz operation not allowed */
no80mhz?: true;
/** 160MHz operation not allowed */
no160mhz?: true;
__unknown?: number;
}
/** Parses the flags in a {@link RegulatoryRuleFlags} bitmask */
export declare function parseRegulatoryRuleFlags(r: number): RegulatoryRuleFlags;
/** Encodes a {@link RegulatoryRuleFlags} bitmask */
export declare function formatRegulatoryRuleFlags(x: RegulatoryRuleFlags): number;
/** regulatory DFS regions */
export declare enum DfsRegions {
/** Country has no DFS master region specified */
UNSET = 0,
/** Country follows DFS master rules from FCC */
FCC = 1,
/** Country follows DFS master rules from ETSI */
ETSI = 2,
/** Country follows DFS master rules from JP/MKK/Telec */
JP = 3
}
/** type of user regulatory hint */
export declare enum UserRegulatoryHintType {
/**
* a user sent the hint. This is always
* assumed if the attribute is not set.
*/
USER = 0,
/**
* the hint comes from a cellular
* base station. Device drivers that have been tested to work
* properly to support this type of hint can enable these hints
* by setting the NL80211_FEATURE_CELL_BASE_REG_HINTS feature
* capability on the struct wiphy. The wireless core will
* ignore all cell base station hints until at least one device
* present has been registered with the wireless core that
* has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a
* supported feature.
*/
CELL_BASE = 1,
/**
* a user sent an hint indicating that the
* platform is operating in an indoor environment.
*/
INDOOR = 2
}
/**
* survey information
*
* These attribute types are used with %NL80211_ATTR_SURVEY_INFO
* when getting information about a survey.
*/
export interface SurveyInfo extends BaseObject {
/** center frequency of channel */
frequency?: number;
/** noise level of channel (u8, dBm) */
noise?: number;
/** channel is currently being used */
inUse?: Buffer;
/**
* amount of time (in ms) that the radio
* was turned on (on channel or globally)
*/
time?: bigint;
/**
* amount of the time the primary
* channel was sensed busy (either due to activity or energy detect)
*/
timeBusy?: bigint;
/**
* amount of time the extension
* channel was sensed busy
*/
timeExtBusy?: bigint;
/**
* amount of time the radio spent
* receiving data (on channel or globally)
*/
timeRx?: bigint;
/**
* amount of time the radio spent
* transmitting data (on channel or globally)
*/
timeTx?: bigint;
/**
* time the radio spent for scan
* (on this channel or globally)
*/
timeScan?: Buffer;
/** attribute used for padding for 64-bit alignment */
__pad?: Buffer;
/**
* amount of time the radio spent
* receiving frames destined to the local BSS
*/
timeBssRx?: Buffer;
}
/** Parses the attributes of a {@link SurveyInfo} object */
export declare function parseSurveyInfo(r: Buffer): SurveyInfo;
/** Encodes a {@link SurveyInfo} object into a stream of attributes */
export declare function formatSurveyInfo(x: SurveyInfo): StreamData;
/**
* monitor configuration flags
*
* Monitor configuration flags.
*/
export interface MonitorFlags extends BaseObject {
/** pass frames with bad FCS */
fcsfail?: true;
/** pass frames with bad PLCP */
plcpfail?: true;
/** pass control frames */
control?: true;
/** disable BSSID filtering */
otherBss?: true;
/**
* report frames after processing.
* overrides all other flags.
*/
cookFrames?: true;
/**
* use the configured MAC address
* and ACK incoming unicast packets.
*/
active?: true;
}
/** Parses the attributes of a {@link MonitorFlags} object */
export declare function parseMonitorFlags(r: Buffer): MonitorFlags;
/** Encodes a {@link MonitorFlags} object into a stream of attributes */
export declare function formatMonitorFlags(x: MonitorFlags): StreamData;
/**
* mesh power save modes
*
* @__NL80211_MESH_POWER_AFTER_LAST - internal use
* @NL80211_MESH_POWER_MAX - highest possible power save level
*/
export declare enum MeshPowerMode {
/**
* The mesh power mode of the mesh STA is
* not known or has not been set yet.
*/
UNKNOWN = 0,
/**
* Active mesh power mode. The mesh STA is
* in Awake state all the time.
*/
ACTIVE = 1,
/**
* Light sleep mode. The mesh STA will
* alternate between Active and Doze states, but will wake up for
* neighbor's beacons.
*/
LIGHT_SLEEP = 2,
/**
* Deep sleep mode. The mesh STA will
* alternate between Active and Doze states, but may not wake up
* for neighbor's beacons.
*/
DEEP_SLEEP = 3
}
/**
* mesh configuration parameters
*
* Mesh configuration parameters. These can be changed while the mesh is
* active.
*/
export interface MeshconfParams extends BaseObject {
/**
* specifies the initial retry timeout in
* millisecond units, used by the Peer Link Open message
*/
retryTimeout?: Buffer;
/**
* specifies the initial confirm timeout, in
* millisecond units, used by the peer link management to close a peer link
*/
confirmTimeout?: Buffer;
/**
* specifies the holding timeout, in
* millisecond units
*/
holdingTimeout?: Buffer;
/**
* maximum number of peer links allowed
* on this mesh interface
*/
maxPeerLinks?: Buffer;
/**
* specifies the maximum number of peer link
* open retries that can be sent to establish a new peer link instance in a
* mesh
*/
maxRetries?: Buffer;
/**
* specifies the value of TTL field set at a source mesh
* point.
*/
ttl?: Buffer;
/**
* whether we should automatically open
* peer links when we detect compatible mesh peers. Disabled if
* @NL80211_MESH_SETUP_USERSPACE_MPM or @NL80211_MESH_SETUP_USERSPACE_AMPE are
* set.
*/
autoOpenPlinks?: Buffer;
/**
* the number of action frames
* containing a PREQ that an MP can send to a particular destination (path
* target)
*/
hwmpMaxPreqRetries?: Buffer;
/**
* how frequently to refresh mesh paths
* (in milliseconds)
*/
pathRefreshTime?: Buffer;
/**
* minimum length of time to wait
* until giving up on a path discovery (in milliseconds)
*/
minDiscoveryTimeout?: Buffer;
/**
* The time (in TUs) for which mesh
* points receiving a PREQ shall consider the forwarding information from
* the root to be valid. (TU = time unit)
*/
hwmpActivePathTimeout?: Buffer;
/**
* The minimum interval of time (in
* TUs) during which an MP can send only one action frame containing a PREQ
* reference element
*/
hwmpPreqMinInterval?: Buffer;
/**
* The interval of time (in TUs)
* that it takes for an HWMP information element to propagate across the
* mesh
*/
hwmpNetDiamTrvsTime?: Buffer;
/** whether root mode is enabled or not */
hwmpRootmode?: Buffer;
/**
* specifies the value of TTL field set at a
* source mesh point for path selection elements.
*/
elementTtl?: Buffer;
/**
* The interval of time (in TUs) between
* root announcements are transmitted.
*/
hwmpRannInterval?: Buffer;
/**
* Advertise that this mesh station has
* access to a broader network beyond the MBSS. This is done via Root
* Announcement frames.
*/
gateAnnouncements?: Buffer;
/**
* The minimum interval of time (in
* TUs) during which a mesh STA can send only one Action frame containing a
* PERR element.
*/
hwmpPerrMinInterval?: Buffer;
/**
* set Mesh STA as forwarding or non-forwarding
* or forwarding entity (default is TRUE - forwarding entity)
*/
forwarding?: Buffer;
/**
* RSSI threshold in dBm. This specifies the
* threshold for average signal strength of candidate station to establish
* a peer link.
*/
rssiThreshold?: Buffer;
/**
* maximum number of neighbors
* to synchronize to for 11s default synchronization method
* (see 11C.12.2.2)
*/
syncOffsetMaxNeighbor?: Buffer;
/** set mesh HT protection mode. */
htOpmode?: Buffer;
/**
* The time (in TUs) for
* which mesh STAs receiving a proactive PREQ shall consider the forwarding
* information to the root mesh STA to be valid.
*/
hwmpPathToRootTimeout?: Buffer;
/**
* The interval of time (in TUs) between
* proactive PREQs are transmitted.
*/
hwmpRootInterval?: Buffer;
/**
* The minimum interval of time
* (in TUs) during which a mesh STA can send only one Action frame
* containing a PREQ element for root path confirmation.
*/
hwmpConfirmationInterval?: Buffer;
/**
* Default mesh power mode for new peer links.
* type &enum nl80211_mesh_power_mode (u32)
*/
powerMode?: MeshPowerMode | keyof typeof MeshPowerMode;
/** awake window duration (in TUs) */
awakeWindow?: Buffer;
/**
* If no tx activity is seen from a STA we've
* established peering with for longer than this time (in seconds), then
* remove it from the STA's list of peers. You may set this to 0 to disable
* the removal of the STA. Default is 30 minutes.
*/
plinkTimeout?: boolean;
/**
* If set to true then this mesh STA
* will advertise that it is connected to a gate in the mesh formation
* field. If left unset then the mesh formation field will only
* advertise such if there is an active root mesh path.
*/
connectedToGate?: true;
}
/** Parses the attributes of a {@link MeshconfParams} object */
export declare function parseMeshconfParams(r: Buffer): MeshconfParams;
/** Encodes a {@link MeshconfParams} object into a stream of attributes */
export declare function formatMeshconfParams(x: MeshconfParams): StreamData;
/**
* mesh setup parameters
*
* Mesh setup parameters. These are used to start/join a mesh and cannot be
* changed while the mesh is active.
*/
export interface MeshSetupParams extends BaseObject {
/**
* Enable this option to use a
* vendor specific path selection algorithm or disable it to use the
* default HWMP.
*/
enableVendorPathSel?: true;
/**
* Enable this option to use a
* vendor specific path metric or disable it to use the default Airtime
* metric.
*/
enableVendorMetric?: true;
/**
* Information elements for this mesh, for instance, a
* robust security network ie, or a vendor specific information element
* that vendors will use to identify the path selection methods and
* metrics in use.
*/
ie?: Buffer;
/**
* Enable this option if an authentication
* daemon will be authenticating mesh candidates.
*/
userspaceAuth?: true;
/**
* Enable this option if an authentication
* daemon will be securing peer link frames. AMPE is a secured version of
* Mesh Peering Management (MPM) and is implemented with the assistance of
* a userspace daemon. When this flag is set, the kernel will send peer
* management frames to a userspace daemon that will implement AMPE
* functionality (security capabilities selection, key confirmation, and
* key management). When the flag is unset (default), the kernel can
* autonomously complete (unsecured) mesh peering without the need of a
* userspace daemon.
*/
userspaceAmpe?: true;
/**
* Enable this option to use a
* vendor specific synchronization method or disable it to use the default
* neighbor offset synchronization
*/
enableVendorSync?: number;
/**
* Enable this option if userspace will
* implement an MPM which handles peer allocation and state.
*/
userspaceMpm?: Buffer;
/**
* Inform the kernel of the authentication
* method (u8, as defined in IEEE 8.4.2.100.6, e.g. 0x1 for SAE).
* Default is no authentication method required.
*/
authProtocol?: number;
}
/** Parses the attributes of a {@link MeshSetupParams} object */
export declare function parseMeshSetupParams(r: Buffer): MeshSetupParams;
/** Encodes a {@link MeshSetupParams} object into a stream of attributes */
export declare function formatMeshSetupParams(x: MeshSetupParams): StreamData;
/** TX queue parameter attributes */
export interface Txq extends BaseObject {
/** AC identifier (NL80211_AC_*) */
ac?: Buffer;
/**
* Maximum burst time in units of 32 usecs, 0 meaning
* disabled
*/
txop?: Buffer;
/**
* Minimum contention window [a value of the form
* 2^n-1 in the range 1..32767]
*/
cwmin?: number;
/**
* Maximum contention window [a value of the form
* 2^n-1 in the range 1..32767]
*/
cwmax?: number;
/** Arbitration interframe space [0..255] */
aifs?: number;
}
/** Parses the attributes of a {@link Txq} object */
export declare function parseTxq(r: Buffer): Txq;
/** Encodes a {@link Txq} object into a stream of attributes */
export declare function formatTxq(x: Txq): StreamData;
export declare enum Ac {
VO = 0,
VI = 1,
BE = 2,
BK = 3
}
/** channel type */
export declare enum ChannelType {
/** 20 MHz, non-HT channel */
NO_HT = 0,
/** 20 MHz HT channel */
HT20 = 1,
/**
* HT40 channel, secondary channel
* below the control channel
*/
HT40MINUS = 2,
/**
* HT40 channel, secondary channel
* above the control channel
*/
HT40PLUS = 3
}
/**
* Key mode
*
* Modes NO_TX and SET_TX can only be selected for unicast keys and when the
* driver supports @NL80211_EXT_FEATURE_EXT_KEY_ID:
*/
export declare enum KeyMode {
/**
* (Default)
* Key can be used for Rx and Tx immediately
*/
RX_TX = 0,
/**
* Only allowed in combination with @NL80211_CMD_NEW_KEY:
* Unicast key can only be used for Rx, Tx not allowed, yet
*/
NO_TX = 1,
/**
* Only allowed in combination with @NL80211_CMD_SET_KEY:
* The unicast key identified by idx and mac is cleared for Tx and becomes
* the preferred Tx key for the station.
*/
SET_TX = 2
}
/**
* channel width definitions
*
* These values are used with the %NL80211_ATTR_CHANNEL_WIDTH
* attribute.
*/
export declare enum ChannelWidth {
/** 20 MHz, non-HT channel */
_20_NOHT = 0,
/** 20 MHz HT channel */
_20 = 1,
/**
* 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* attribute must be provided as well
*/
_40 = 2,
/**
* 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* attribute must be provided as well
*/
_80 = 3,
/**
* 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well
*/
_80P80 = 4,
/**
* 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* attribute must be provided as well
*/
_160 = 5,
/** 5 MHz OFDM channel */
_5 = 6,
/** 10 MHz OFDM channel */
_10 = 7
}
/** Set of flags from {@link ChannelWidth} bits */
export interface ChannelWidthSet extends BaseObject {
/** 20 MHz, non-HT channel */
_20Noht?: true;
/** 20 MHz HT channel */
_20?: true;
/**
* 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* attribute must be provided as well
*/
_40?: true;
/**
* 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* attribute must be provided as well
*/
_80?: true;
/**
* 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well
*/
_80p80?: true;
/**
* 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
* attribute must be provided as well
*/
_160?: true;
/** 5 MHz OFDM channel */
_5?: true;
/** 10 MHz OFDM channel */
_10?: true;
}
/** Parses the flags in a bitmask with {@link ChannelWidth} bits */
export declare function parseChannelWidthSet(r: number): ChannelWidthSet;
/** Encodes a {@link ChannelWidth} bitmask */
export declare function formatChannelWidthSet(x: ChannelWidthSet): number;
/**
* control channel width for a BSS
*
* These values are used with the %NL80211_BSS_CHAN_WIDTH attribute.
*/
export declare enum BssScanWidth {
/** control channel is 20 MHz wide or compatible */
_20 = 0,
/** control channel is 10 MHz wide */
_10 = 1,
/** control channel is 5 MHz wide */
_5 = 2
}
/** netlink attributes for a BSS */
export interface Bss extends BaseObject {
/** BSSID of the BSS (6 octets) */
bssid?: Buffer;
/** frequency in MHz (u32) */
frequency?: number;
/**
* TSF of the received probe response/beacon (u64)
* (if @NL80211_BSS_PRESP_DATA is present then this is known to be
* from a probe response, otherwise it may be from the same beacon
* that the NL80211_BSS_BEACON_TSF will be from)
*/
tsf?: bigint;
/** beacon interval of the (I)BSS (u16) */
beaconInterval?: number;
/** capability field (CPU order, u16) */
capability?: number;
/**
* binary attribute containing the
* raw information elements from the probe response/beacon (bin);
* if the %NL80211_BSS_BEACON_IES attribute is present and the data is
* different then the IEs here are from a Probe Response frame; otherwise
* they are from a Beacon frame.
* However, if the driver does not indicate the source of the IEs, these
* IEs may be from either frame subtype.
* If present, the @NL80211_BSS_PRESP_DATA attribute indicates that the
* data here is known to be from a probe response, without any heuristics.
*/
informationElements?: Buffer;
/**
* signal strength of probe response/beacon
* in mBm (100 * dBm) (s32)
*/
signalMbm?: number;
/**
* signal strength of the probe response/beacon
* in unspecified units, scaled to 0..100 (u8)
*/
signalUnspec?: number;
/** status, if this BSS is "used" */
status?: number;
/** age of this BSS entry in ms */
seenMsAgo?: number;
/**
* binary attribute containing the raw information
* elements from a Beacon frame (bin); not present if no Beacon frame has
* yet been received
*/
beaconIes?: Buffer;
/**
* channel width of the control channel
* (u32, enum nl80211_bss_scan_width)
*/
chanWidth?: BssScanWidth | keyof typeof BssScanWidth;
/**
* TSF of the last received beacon (u64)
* (not present if no beacon frame has been received yet)
*/
beaconTsf?: bigint;
/**
* the data in @NL80211_BSS_INFORMATION_ELEMENTS and
* @NL80211_BSS_TSF is known to be from a probe response (flag attribute)
*/
prespData?: true;
/**
* CLOCK_BOOTTIME timestamp when this entry
* was last updated by a received frame. The value is expected to be
* accurate to about 10ms. (u64, nanoseconds)
*/
lastSeenBoottime?: bigint;
/** attribute used for padding for 64-bit alignment */
__pad?: Buffer;
/**
* the time at the start of reception of the first
* octet of the timestamp field of the last beacon/probe received for
* this BSS. The time is the TSF of the BSS specified by
* @NL80211_BSS_PARENT_BSSID. (u64).
*/
parentTsf?: bigint;
/**
* the BSS according to which @NL80211_BSS_PARENT_TSF
* is set.
*/
parentBssid?: Buffer;
/**
* per-chain signal strength of last BSS update.
* Contains a nested array of signal strength attributes (u8, dBm),
* using the nesting index as the antenna number.
*/
chainSignal?: number;
}
/** Parses the attributes of a {@link Bss} object */
export declare function parseBss(r: Buffer): Bss;
/** Encodes a {@link Bss} object into a stream of attributes */
export declare function formatBss(x: Bss): StreamData;
/**
* BSS "status"
*
* The BSS status is a BSS attribute in scan dumps, which
* indicates the status the interface has wrt. this BSS.
*/
export declare enum BssStatus {
/**
* Authenticated with this BSS.
* Note that this is no longer used since cfg80211 no longer
* keeps track of whether or not authentication was done with
* a given BSS.
*/
AUTHENTICATED = 0,
/** Associated with this BSS. */
ASSOCIATED = 1,
/** Joined to this IBSS. */
IBSS_JOINED = 2
}
/** AuthenticationType */
export declare enum AuthType {
/** Open System authentication */
OPEN_SYSTEM = 0,
/** Shared Key authentication (WEP only) */
SHARED_KEY = 1,
/** Fast BSS Transition (IEEE 802.11r) */
FT = 2,
/** Network EAP (some Cisco APs and mainly LEAP) */
NETWORK_EAP = 3,
/** Simultaneous authentication of equals */
SAE = 4,
/** Fast Initial Link Setup shared key */
FILS_SK = 5,
/** Fast Initial Link Setup shared key with PFS */
FILS_SK_PFS = 6,
/** Fast Initial Link Setup public key */
FILS_PK = 7,
/**
* determine automatically (if necessary by
* trying multiple times); this is invalid in netlink -- leave out
* the attribute for this on CONNECT commands.
*/
AUTOMATIC = 8
}
/** Key Type */
export declare enum KeyType {
/** Group (broadcast/multicast) key */
GROUP = 0,
/** Pairwise (unicast/individual) key */
PAIRWISE = 1,
/** PeerKey (DLS) */
PEERKEY = 2
}
/** Management frame protection state */
export declare enum Mfp {
/** Management frame protection not used */
NO = 0,
/** Management frame protection required */
REQUIRED = 1,
/** Management frame protection is optional */
OPTIONAL = 2
}
export interface WpaVersions {
_1?: true;
_2?: true;
_3?: true;
__unknown?: number;
}
/** Parses the flags in a {@link WpaVersions} bitmask */
export declare function parseWpaVersions(r: number): WpaVersions;
/** Encodes a {@link WpaVersions} bitmask */
export declare function formatWpaVersions(x: WpaVersions): number;
/** key default types */
export interface KeyDefaultTypes extends BaseObject {
/**
* key should be used as default
* unicast key
*/
unicast?: true;
/**
* key should be used as default
* multicast key
*/
multicast?: true;
}
/** Parses the attributes of a {@link KeyDefaultTypes} object */
export declare function parseKeyDefaultTypes(r: Buffer): KeyDefaultTypes;
/** Encodes a {@link KeyDefaultTypes} object into a stream of attributes */
export declare function formatKeyDefaultTypes(x: KeyDefaultTypes): StreamData;
/** key attributes */
export interface Key extends BaseObject {
/**
* (temporal) key data; for TKIP this consists of
* 16 bytes encryption key followed by 8 bytes each for TX and RX MIC
* keys
*/
data?: Buffer;
/** key ID (u8, 0-3) */
idx?: number;
/**
* key cipher suite (u32, as defined by IEEE 802.11
* section 7.3.2.25.1, e.g. 0x000FAC04)
*/
cipher?: number;
/**
* transmit key sequence number (IV/PN) for TKIP and
* CCMP keys, each six bytes in little endian
*/
seq?: Buffer;
/** flag indicating default key */
default?: true;
/** flag indicating default management key */
defaultMgmt?: true;
/**
* the key type from enum nl80211_key_type, if not
* specified the default depends on whether a MAC address was
* given with the command using the key or not (u32)
*/
type?: KeyType | keyof typeof KeyType;
/**
* A nested attribute containing flags
* attributes, specifying what a key should be set as default as.
* See &enum nl80211_key_default_types.
*/
defaultTypes?: KeyDefaultTypes;
/**
* the mode from enum nl80211_key_mode.
* Defaults to @NL80211_KEY_RX_TX.
*/
mode?: Buffer;
}
/** Parses the attributes of a {@link Key} object */
export declare function parseKey(r: Buffer): Key;
/** Encodes a {@link Key} object into a stream of attributes */
export declare function formatKey(x: Key): StreamData;
/** TX rate set attributes */
export interface TxRate extends BaseObject {
/**
* Legacy (non-MCS) rates allowed for TX rate selection
* in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
* 1 = 500 kbps) but without the IE length restriction (at most
* %NL80211_MAX_SUPP_RATES in a single array).
*/
legacy?: Buffer;
/**
* HT (MCS) rates allowed for TX rate selection
* in an array of MCS numbers.
*/
ht?: Buffer;
/**
* VHT rates allowed for TX rate selection,
* see &struct nl80211_txrate_vht
*/
vht?: Buffer;
/** configure GI, see &enum nl80211_txrate_gi */
gi?: Buffer;
}
/** Parses the attributes of a {@link TxRate} object */
export declare function parseTxRate(r: Buffer): TxRate;
/** Encodes a {@link TxRate} object into a stream of attributes */
export declare function formatTxRate(x: TxRate): StreamData;
export declare enum TxrateGuardInterval {
DEFAULT_GI = 0,
FORCE_SGI = 1,
FORCE_LGI = 2
}
/** Frequency band */
export declare enum BandId {
/** 2.4 GHz ISM band */
_2GHZ = 0,
/** around 5 GHz band (4.9 - 5.7 GHz) */
_5GHZ = 1,
/** around 60 GHz band (58.32 - 69.12 GHz) */
_60GHZ = 2,
/** around 6 GHz band (5.9 - 7.2 GHz) */
_6GHZ = 3
}
/** Set of flags from {@link BandId} bits */
export interface BandIdSet extends BaseObject {
/** 2.4 GHz ISM band */
_2ghz?: true;
/** around 5 GHz band (4.9 - 5.7 GHz) */
_5ghz?: true;
/** around 60 GHz band (58.32 - 69.12 GHz) */
_60ghz?: true;
/** around 6 GHz band (5.9 - 7.2 GHz) */
_6ghz?: true;
}
/** Parses the flags in a bitmask with {@link BandId} bits */
export declare function parseBandIdSet(r: number): BandIdSet;
/** Encodes a {@link BandId} bitmask */
export declare function formatBandIdSet(x: BandIdSet): number;
/** powersave state */
export declare enum PsState {
/** powersave is disabled */
DISABLED = 0,
/** powersave is enabled */
ENABLED = 1
}
/** connection quality monitor attributes */
export interface Cqm extends BaseObject {
/**
* RSSI threshold in dBm. This value specifies
* the threshold for the RSSI level at which an event will be sent. Zero
* to disable. Alternatively, if %NL80211_EXT_FEATURE_CQM_RSSI_LIST is
* set, multiple values can be supplied as a low-to-high sorted array of
* threshold values in dBm. Events will be sent when the RSSI value
* crosses any of the thresholds.
*/
rssiThold?: number;
/**
* RSSI hysteresis in dBm. This value specifies
* the minimum amount the RSSI level must change after an event before a
* new event may be issued (to reduce effects of RSSI oscillation).
*/
rssiHyst?: number;
/** RSSI threshold event */
rssiThresholdEvent?: number;
/**
* a u32 value indicating that this many
* consecutive packets were not acknowledged by the peer
*/
pktLossEvent?: number;
/**
* TX error rate in %. Minimum % of TX failures
* during the given %NL80211_ATTR_CQM_TXE_INTVL before an
* %NL80211_CMD_NOTIFY_CQM with reported %NL80211_ATTR_CQM_TXE_RATE and
* %NL80211_ATTR_CQM_TXE_PKTS is generated.
*/
txeRate?: Buffer;
/**
* number of attempted packets in a given
* %NL80211_ATTR_CQM_TXE_INTVL before %NL80211_ATTR_CQM_TXE_RATE is
* checked.
*/
txePkts?: Buffer;
/**
* interval in seconds. Specifies the periodic
* interval in which %NL80211_ATTR_CQM_TXE_PKTS and
* %NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an
* %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting.
*/
txeIntvl?: Buffer;
/**
* flag attribute that's set in a beacon
* loss event
*/
beaconLossEvent?: true;
/**
* the RSSI value in dBm that triggered the
* RSSI threshold event.
*/
rssiLevel?: Buffer;
}
/** Parses the attributes of a {@link Cqm} object */
export declare function parseCqm(r: Buffer): Cqm;
/** Encodes a {@link Cqm} object into a stream of attributes */
export declare function formatCqm(x: Cqm): StreamData;
/** RSSI threshold event */
export declare enum CqmRssiThresholdEvent {
/**
* The RSSI level is lower than the
* configured threshold
*/
THRESHOLD_EVENT_LOW = 0,
/**
* The RSSI is higher than the
* configured threshold
*/
THRESHOLD_EVENT_HIGH = 1,
/** (reserved, never sent) */
BEACON_LOSS_EVENT = 2
}
/** TX power adjustment */
export declare enum TxPowerSetting {
/** automatically determine transmit power */
AUTOMATIC = 0,
/** limit TX power by the mBm parameter */
LIMITED = 1,
/** fix TX power to the mBm parameter */
FIXED = 2
}
/** packet pattern attribute */
export interface PacketPattern extends BaseObject {
/**
* pattern mask, must be long enough to have
* a bit for each byte in the pattern. The lowest-order bit corresponds
* to the first byte of the pattern, but the bytes of the pattern are
* in a little-endian-like format, i.e. the 9th byte of the pattern
* corresponds to the lowest-order bit in the second byte of the mask.
* For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where
* xx indicates "don't care") would be represented by a pattern of
* twelve zero bytes, and a mask of "0xed,0x01".
* Note that the pattern matching is done as though frames were not
* 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked
* first (including SNAP header unpacking) and then matched.
*/
mask?: Buffer;
/**
* the pattern, values where the mask has
* a zero bit are ignored
*/
pattern?: Buffer;
/**
* packet offset, pattern is matched after
* these fixed number of bytes of received packet
*/
offset?: number;
}
/** Parses the attributes of a {@link PacketPattern} object */
export declare function parsePacketPattern(r: Buffer): PacketPattern;
/** Encodes a {@link PacketPattern} object into a stream of attributes */
export declare function formatPacketPattern(x: PacketPattern): StreamData;
/**
* WoWLAN trigger definitions
*
* These nested attributes are used to configure the wakeup triggers and
* to report the wakeup reason(s).
*/
export interface WowlanTriggers extends BaseObject {
/**
* wake up on any activity, do not really put
* the chip into a special state -- works best with chips that have
* support for low-power operation already (flag)
* Note that this mode is incompatible with all of the others, if
* any others are even supported by the device.
*/
any?: true;
/**
* wake up on disconnect, the way disconnect
* is detected is implementation-specific (flag)
*/
disconnect?: true;
/**
* wake up on magic packet (6x 0xff, followed
* by 16 repetitions of MAC addr, anywhere in payload) (flag)
*/
magicPkt?: true;
/**
* wake up on the specified packet patterns
* which are passed in an array of nested attributes, each nested attribute
* defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern.
* Each pattern defines a wakeup packet. Packet offset is associated with
* each pattern which is used while matching the pattern. The matching is
* done on the MSDU, i.e. as though the packet was an 802.3 packet, so the
* pattern matching is done after the packet is converted to the MSDU.
*
* In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
* carrying a &struct nl80211_pattern_support.
*
* When reporting wakeup. it is a u32 attribute containing the 0-based
* index of the pattern that caused the wakeup, in the patterns passed
* to the kernel when configuring.
*/
pktPattern?: Buffer;
/**
* Not a real trigger, and cannot be
* used when setting, used only to indicate that GTK rekeying is supported
* by the device (flag)
*/
gtkRekeySupported?: true;
/**
* wake up on GTK rekey failure (if
* done by the device) (flag)
*/
gtkRekeyFailure?: true;
/**
* wake up on EAP Identity Request
* packet (flag)
*/
eapIdentRequest?: true;
/** wake up on 4-way handshake (flag) */
_4wayHandshake?: true;
/**
* wake up when rfkill is released
* (on devices that have rfkill in the device) (flag)
*/
rfkillRelease?: true;
/**
* For wakeup reporting only, contains
* the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame
* may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN
* attribute contains the original length.
*/
wakeupPkt80211?: Buffer;
/**
* Original length of the 802.11
* packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211
* attribute if the packet was truncated somewhere.
*/
wakeupPkt80211Len?: Buffer;
/**
* For wakeup reporting only, contains the
* 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may
* be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute
* contains the original length.
*/
wakeupPkt8023?: Buffer;
/**
* Original length of the 802.3
* packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023
* attribute if the packet was truncated somewhere.
*/
wakeupPkt8023Len?: Buffer;
/**
* TCP connection wake, see DOC section
* "TCP connection wakeup" for more details. This is a nested attribute
* containing the exact information for establishing and keeping alive
* the TCP connection.
*/
tcpConnection?: Buffer;
/**
* For wakeup reporting only, the
* wakeup packet was received on the TCP connection
*/
wakeupTcpMatch?: true;
/**
* For wakeup reporting only, the
* TCP connection was lost or failed to be established
*/
wakeupTcpConnlost?: true;
/**
* For wakeup reporting only,
* the TCP connection ran out of tokens to use for data to send to the
* service
*/
wakeupTcpNomoretokens?: true;
/**
* wake up when a configured network
* is detected. This is a nested attribute that contains the
* same attributes used with @NL80211_CMD_START_SCHED_SCAN. It
* specifies how the scan is performed (e.g. the interval, the
* channels to scan and the initial delay) as well as the scan
* results that will trigger a wake (i.e. the matchsets). This
* attribute is also sent in a response to
* @NL80211_CMD_GET_WIPHY, indicating the number of match sets
* supported by the driver (u32).
*/
netDetect?: Buffer;
/**
* nested attribute
* containing an array with information about what triggered the
* wake up. If no elements are present in the array, it means
* that the information is not available. If more than one
* element is present, it means that more than one match
* occurred.
* Each element in the array is a nested attribute that contains
* one optional %NL80211_ATTR_SSID attribute and one optional
* %NL80211_ATTR_SCAN_FREQUENCIES attribute. At least one of
* these attributes must be present. If
* %NL80211_ATTR_SCAN_FREQUENCIES contains more than one
* frequency, it means that the match occurred in more than one
* channel.
*/
netDetectResults?: Message[];
}
/** Parses the attributes of a {@link WowlanTriggers} object */
export declare function parseWowlanTriggers(r: Buffer): WowlanTriggers;
/** Encodes a {@link WowlanTriggers} object into a stream of attributes */
export declare function formatWowlanTriggers(x: WowlanTriggers): StreamData;
/** WoWLAN TCP connection parameters */
export interface WowlanTcp extends BaseObject {
/** source IPv4 address (in network byte order) */
srcIpv4?: number;
/**
* destination IPv4 address
* (in network byte order)
*/
dstIpv4?: number;
/**
* destination MAC address, this is given because
* route lookup when configured might be invalid by the time we suspend,
* and doing a route lookup when suspending is no longer possible as it
* might require ARP querying.
*/
dstMac?: Buffer;
/**
* source port (u16); optional, if not given a
* socket and port will be allocated
*/
srcPort?: number;
/** destination port (u16) */
dstPort?: number;
/**
* data packet payload, at least one byte.
* For feature advertising, a u32 attribute holding the maximum length
* of the data payload.
*/
dataPayload?: Buffer;
/**
* data packet sequence configuration
* (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature
* advertising it is just a flag
*/
dataPayloadSeq?: Buffer;
/**
* data packet token configuration,
* see &struct nl80211_wowlan_tcp_data_token and for advertising see
* &struct nl80211_wowlan_tcp_data_token_feature.
*/
dataPayloadToken?: Buffer;
/**
* data interval in seconds, maximum
* interval in feature advertising (u32)
*/
dataInterval?: number;
/**
* wake packet payload, for advertising a
* u32 attribute holding the maximum length
*/
wakePayload?: Buffer;
/**
* Wake packet payload mask, not used for
* feature advertising. The mask works like @NL80211_PKTPAT_MASK
* but on the TCP payload only.
*/
wakeMask?: Buffer;
}
/** Parses the attributes of a {@link WowlanTcp} object */
export declare function parseWowlanTcp(r: Buffer): WowlanTcp;
/** Encodes a {@link WowlanTcp} object into a stream of attributes */
export declare function formatWowlanTcp(x: WowlanTcp): StreamData;
/** coalesce rule attribute */
export interface CoalesceRule extends BaseObject {
/** delay in msecs used for packet coalescing */
delay?: number;
/**
* condition for packet coalescence,
* see &enum nl80211_coalesce_condition.
*/
condition?: CoalesceCondition | keyof typeof CoalesceCondition;
/**
* packet offset, pattern is matched
* after these fixed number of bytes of received packet
*/
pktPattern?: Buffer;
}
/** Parses the attributes of a {@link CoalesceRule} object */
export declare function parseCoalesceRule(r: Buffer): CoalesceRule;
/** Encodes a {@link CoalesceRule} object into a stream of attributes */
export declare function formatCoalesceRule(x: CoalesceRule): StreamData;
/** coalesce rule conditions */
export declare enum CoalesceCondition {
/**
* coalaesce Rx packets when patterns
* in a rule are matched.
*/
MATCH = 0,
/**
* coalesce Rx packets when patterns
* in a rule are not matched.
*/
NO_MATCH = 1
}
/** limit attributes */
export interface InterfaceLimit extends BaseObject {
/**
* maximum number of interfaces that
* can be chosen from this set of interface types (u32)
*/
max?: number;
/**
* nested attribute containing a
* flag attribute for each interface type in this set
*/
types?: InterfaceTypeSet;
}
/** Parses the attributes of a {@link InterfaceLimit} object */
export declare function parseInterfaceLimit(r: Buffer): InterfaceLimit;
/** Encodes a {@link InterfaceLimit} object into a stream of attributes */
export declare function formatInterfaceLimit(x: InterfaceLimit): StreamData;
/**
* interface combination attributes
*
* Examples:
* limits = [ #{STA} <= 1, #{AP} <= 1 ], matching BI, channels = 1, max = 2
* => allows an AP and a STA that must match BIs
*
* numbers = [ #{AP, P2P-GO} <= 8 ], BI min gcd, channels = 1, max = 8,
* => allows 8 of AP/GO that can have BI gcd >= min gcd
*
* numbers = [ #{STA} <= 2 ], channels = 2, max = 2
* => allows two STAs on different channels
*
* numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
* => allows a STA plus three P2P interfaces
*
* The list of these four possibilities could completely be contained
* within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate
* that any of these groups must match.
*
* "Combinations" of just a single interface will not be listed here,
* a single interface of any valid interface type is assumed to always
* be possible by itself. This means that implicitly, for each valid
* interface type, the following group always exists:
* numbers = [ #{} <= 1 ], channels = 1, max = 1
*/
export interface InterfaceCombination extends BaseObject {
/**
* Nested attributes containing the limits
* for given interface types, see &enum nl80211_iface_limit_attrs.
*/
limits?: InterfaceLimit[];
/**
* u32 attribute giving the total number of
* interfaces that can be created in this group. This number doesn't
* apply to interfaces purely managed in software, which are listed
* in a separate attribute %NL80211_ATTR_INTERFACES_SOFTWARE.
*/
maxnum?: number;
/**
* flag attribute specifying that
* beacon intervals within this group must be all the same even for
* infrastructure and AP/GO combinations, i.e. the GO(s) must adopt
* the infrastructure network's beacon interval.
*/
staApBiMatch?: true;
/**
* u32 attribute specifying how many
* different channels may be used within this group.
*/
numChannels?: number;
/**
* u32 attribute containing the bitmap
* of supported channel widths for radar detection.
*/
radarDetectWidths?: ChannelWidthSet;
/**
* u32 attribute containing the bitmap
* of supported regulatory regions for radar detection.
*/
radarDetectRegions?: number;
/**
* u32 attribute specifying the minimum GCD of
* different beacon intervals supported by all the interface combinations
* in this group (if not present, all beacon intervals be identical).
*/
biMinGcd?: number;
}
/** Parses the attributes of a {@link InterfaceCombination} object */
export declare function parseInterfaceCombination(r: Buffer): InterfaceCombination;
/** Encodes a {@link InterfaceCombination} object into a stream of attributes */
export declare function formatInterfaceCombination(x: InterfaceCombination): StreamData;
/** state of a mesh peer link finite state machine */
export declare enum PlinkState {
/**
* initial state, considered the implicit
* state of non existent mesh peer links
*/
LISTEN = 0,
/**
* mesh plink open frame has been sent to
* this mesh peer
*/
OPN_SNT = 1,
/**
* mesh plink open frame has been received
* from this mesh peer
*/
OPN_RCVD = 2,
/**
* mesh plink confirm frame has been
* received from this mesh peer
*/
CNF_RCVD = 3,
/** mesh peer link is established */
ESTAB = 4,
/** mesh peer link is being closed or cancelled */
HOLDING = 5,
/**
* all frames transmitted from this mesh
* plink are discarded
*/
BLOCKED = 6
}
/** actions to perform in mesh peers */
export declare enum PlinkAction {
/** perform no action */
NO_ACTION = 0,
/** start mesh peer link establishment */
OPEN = 1,
/** block traffic from this mesh peer */
BLOCK = 2
}
/** attributes for GTK rekey offload */
export interface RekeyData extends BaseObject {
/** key encryption key (binary) */
kek?: Buffer;
/** key confirmation key (binary) */
kck?: Buffer;
/** replay counter (binary) */
replayCtr?: Buffer;
}
/** Parses the attributes of a {@link RekeyData} object */
export declare function parseRekeyData(r: Buffer): RekeyData;
/** Encodes a {@link RekeyData} object into a stream of attributes */
export declare function formatRekeyData(x: RekeyData): StreamData;
/** values for %NL80211_ATTR_HIDDEN_SSID */
export declare enum HiddenSsid {
/**
* do not hide SSID (i.e., broadcast it in
* Beacon frames)
*/
NOT_IN_USE = 0,
/**
* hide SSID by using zero-length SSID element
* in Beacon frames
*/
ZERO_LEN = 1,
/**
* hide SSID by using correct length of SSID
* element in Beacon frames but zero out each byte in the SSID
*/
ZERO_CONTENTS = 2
}
/** station WME attributes */
export interface StationWme extends BaseObject {
/**
* bitmap of uapsd queues. the format
* is the same as the AC bitmap in the QoS info field.
*/
uapsdQueues?: Buffer;
/**
* max service period. the format is the same
* as the MAX_SP field in the QoS info field (but already shifted down).
*/
maxSp?: Buffer;
}
/** Parses the attributes of a {@link StationWme} object */
export declare function parseStationWme(r: Buffer): StationWme;
/** Encodes a {@link StationWme} object into a stream of attributes */
export declare function formatStationWme(x: StationWme): StreamData;
/** attributes for PMKSA caching candidates */
export interface PmksaCandidate extends BaseObject {
/**
* candidate index (u32; the smaller, the higher
* priority)
*/
index?: number;
/** candidate BSSID (6 octets) */
bssid?: Buffer;
/** RSN pre-authentication supported (flag) */
preauth?: true;
}
/** Parses the attributes of a {@link PmksaCandidate} object */
export declare function parsePmksaCandidate(r: Buffer): PmksaCandidate;
/** Encodes a {@link PmksaCandidate} object into a stream of attributes */
export declare function formatPmksaCandidate(x: PmksaCandidate): StreamData;
/** values for %NL80211_ATTR_TDLS_OPERATION */
export declare enum TdlsOperation {
/** Send a TDLS discovery request */
DISCOVERY_REQ = 0,
/** Setup TDLS link */
SETUP = 1,
/** Teardown a TDLS link which is already established */
TEARDOWN = 2,
/** Enable TDLS link */
ENABLE_LINK = 3,
/** Disable TDLS link */
DISABLE_LINK = 4
}
/** device/driver features */
export interface FeatureFlags {
/**
* This driver supports reflecting back
* TX status to the socket error queue when requested with the
* socket option.
*/
skTxStatus?: true;
/** This driver supports IBSS with HT datarates. */
htIbss?: true;
/**
* This driver takes care of freeing up
* the connected inactive stations in AP mode.
*/
inactivityTimer?: true;
/**
* This driver has been tested
* to work properly to suppport receiving regulatory hints from
* cellular base stations.
*/
cellBaseRegHints?: true;
/**
* (no longer available, only
* here to reserve the value for API/ABI compatibility)
*/
p2pDeviceNeedsChannel?: true;
/**
* This driver supports simultaneous authentication of
* equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station
* mode
*/
sae?: true;
/** This driver supports low priority scan */
lowPriorityScan?: true;
/** Scan flush is supported */
scanFlush?: true;
/** Support scanning using an AP vif */
apScan?: true;
/** The driver supports per-vif TX power setting */
vifTxpower?: true;
/**
* The driver expects userspace to perform
* OBSS scans and generate 20/40 BSS coex reports. This flag is used only
* for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied.
*/
needObssScan?: true;
/**
* P2P GO implementation supports CT Window
* setting
*/
p2pGoCtwin?: true;
/**
* P2P GO implementation supports opportunistic
* powersave
*/
p2pGoOppps?: true;
/**
* cfg80211 advertises channel limits
* (HT40, VHT 80/160 MHz) if this flag is set
*/
advertiseChanLimits?: true;
/**
* The driver supports full state
* transitions for AP clients. Without this flag (and if the driver
* doesn't have the AP SME in the device) the driver supports adding
* stations only when they're associated and adds them in associated
* state (to later be transitioned into authorized), with this flag
* they should be added before even sending the authentication reply
* and then transitioned into authenticated, associated and authorized
* states using station flags.
* Note that even for drivers that support this, the default is to add
* stations in authenticated/associated state, so to add unauthenticated
* stations the authenticated/associated bits have to be set in the mask.
*/
fullApClientState?: true;
/**
* This driver supports a userspace Mesh
* Peering Management entity which may be implemented by registering for
* beacons or NL80211_CMD_NEW_PEER_CANDIDATE events. The mesh beacon is
* still generated by the driver.
*/
userspaceMpm?: true;
/**
* This driver supports an active monitor
* interface. An active monitor interface behaves like a normal monitor
* interface, but gets added to the driver. It ensures that incoming
* unicast packets directed at the configured interface address get ACKed.
*/
activeMonitor?: true;
/**
* This driver supports dynamic
* channel bandwidth change (e.g., HT 20 <-> 40 MHz channel) during the
* lifetime of a BSS.
*/
apModeChanWidthChange?: true;
/**
* This device adds a DS Parameter
* Set IE to probe requests.
*/
dsParamSetIeInProbes?: true;
/**
* This device adds a WFA TPC Report IE
* to probe requests.
*/
wfaTpcIeInProbes?: true;
/**
* This device, in client mode, supports Quiet Period
* requests sent to it by an AP.
*/
quiet?: true;
/**
* This device is capable of inserting the
* current tx power value into the TPC Report IE in the spectrum
* management TPC Report action frame, and in the Radio Measurement Link
* Measurement Report action frame.
*/
txPowerInsertion?: true;
/**
* This driver supports dynamic ACK timeout
* estimation (dynack). %NL80211_ATTR_WIPHY_DYN_ACK flag attribute is used
* to enable dynack.
*/
acktoEstimation?: true;
/**
* Device supports static spatial
* multiplexing powersave, ie. can turn off all but one chain
* even on HT connections that should be using more chains.
*/
staticSmps?: true;
/**
* Device supports dynamic spatial
* multiplexing powersave, ie. can turn off all but one chain
* and then wake the rest up as required after, for example,
* rts/cts handshake.
*/
dynamicSmps?: true;
/**
* the device supports setting up WMM
* TSPEC sessions (TID aka TSID 0-7) with the %NL80211_CMD_ADD_TX_TS
* command. Standard IEEE 802.11 TSPEC setup is not yet supported, it
* needs to be able to handle Block-Ack agreements and other things.
*/
supportsWmmAdmission?: true;
/**
* Device supports configuring
* the vif's MAC address upon creation.
* See 'macaddr' field in the vif_params (cfg80211.h).
*/
macOnCreate?: true;
/**
* Driver supports channel switching when
* operating as a TDLS peer.
*/
tdlsChannelSwitch?: true;
/**
* This device/driver supports using a
* random MAC address during scan (if the device is unassociated); the
* %NL80211_SCAN_FLAG_RANDOM_ADDR flag may be set for scans and the MAC
* address mask/value will be used.
*/
scanRandomMacAddr?: true;
/**
* This device/driver supports
* using a random MAC address for every scan iteration during scheduled
* scan (while not associated), the %NL80211_SCAN_FLAG_RANDOM_ADDR may
* be set for scheduled scan and the MAC address mask/value will be used.
*/
schedScanRandomMacAddr?: true;
/**
* This device/driver supports using a
* random MAC address for every scan iteration during "net detect", i.e.
* scan in unassociated WoWLAN, the %NL80211_SCAN_FLAG_RANDOM_ADDR may
* be set for scheduled scan and the MAC address mask/value will be used.
*/
ndRandomMacAddr?: true;
__unknown?: number;
}
/** Parses the flags in a {@link FeatureFlags} bitmask */
export declare function parseFeatureFlags(r: number): FeatureFlags;
/** Encodes a {@link FeatureFlags} bitmask */
export declare function formatFeatureFlags(x: FeatureFlags): number;
/** bit index of extended features. */
export declare enum ExtendedFeatureIndex {
/** This driver supports IBSS with VHT datarates. */
VHT_IBSS = 0,
/**
* This driver supports RRM. When featured, user can
* can request to use RRM (see %NL80211_ATTR_USE_RRM) with
* %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
* the ASSOC_REQ_USE_RRM flag in the association request even if
* NL80211_FEATURE_QUIET is not advertized.
*/
RRM = 1,
/**
* This device supports MU-MIMO air
* sniffer which means that it can be configured to hear packets from
* certain groups which can be configured by the
* %NL80211_ATTR_MU_MIMO_GROUP_DATA attribute,
* or can be configured to follow a station by configuring the
* %NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR attribute.
*/
MU_MIMO_AIR_SNIFFER = 2,
/**
* This driver includes the actual
* time the scan started in scan results event. The time is the TSF of
* the BSS that the interface that requested the scan is connected to
* (if available).
*/
SCAN_START_TIME = 3,
/**
* Per BSS, this driver reports the
* time the last beacon/probe was received. The time is the TSF of the
* BSS that the interface that requested the scan is connected to
* (if available).
*/
BSS_PARENT_TSF = 4,
/**
* This driver supports configuration of
* channel dwell time.
*/
SET_SCAN_DWELL = 5,
/**
* Driver supports beacon rate
* configuration (AP/mesh), supporting a legacy (non HT/VHT) rate.
*/
BEACON_RATE_LEGACY = 6,
/**
* Driver supports beacon rate
* configuration (AP/mesh) with HT rates.
*/
BEACON_RATE_HT = 7,
/**
* Driver supports beacon rate
* configuration (AP/mesh) with VHT rates.
*/
BEACON_RATE_VHT = 8,
/**
* This driver supports Fast Initial Link Setup
* with user space SME (NL80211_CMD_AUTHENTICATE) in station mode.
*/
FILS_STA = 9,
/**
* This driver supports randomized TA
* in @NL80211_CMD_FRAME while not associated.
*/
MGMT_TX_RANDOM_TA = 10,
/**
* This driver supports
* randomized TA in @NL80211_CMD_FRAME while associated.
*/
MGMT_TX_RANDOM_TA_CONNECTED = 11,
/**
* The driver supports sched_scan
* for reporting BSSs with better RSSI than the current connected BSS
* (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI).
*/
SCHED_SCAN_RELATIVE_RSSI = 12,
/**
* With this driver the
* %NL80211_ATTR_CQM_RSSI_THOLD attribute accepts a list of zero or more
* RSSI threshold values to monitor rather than exactly one threshold.
*/
CQM_RSSI_LIST = 13,
/**
* Driver SME supports FILS shared key
* authentication with %NL80211_CMD_CONNECT.
*/
FILS_SK_OFFLOAD = 14,
/**
* Device wants to do 4-way
* handshake with PSK in station mode (PSK is passed as part of the connect
* and associate commands), doing it in the host might not be supported.
*/
_4WAY_HANDSHAKE_STA_PSK = 15,
/**
* Device wants to do doing 4-way
* handshake with 802.1X in station mode (will pass EAP frames to the host
* and accept the set_pmk/del_pmk commands), doing it in the host might not
* be supported.
*/
_4WAY_HANDSHAKE_STA_1X = 16,
/**
* Driver is capable of overriding
* the max channel attribute in the FILS request params IE with the
* actual dwell time.
*/
FILS_MAX_CHANNEL_TIME = 17,
/**
* Driver accepts broadcast probe
* response
*/
ACCEPT_BCAST_PROBE_RESP = 18,
/**
* Driver supports sending
* the first probe request in each channel at rate of at least 5.5Mbps.
*/
OCE_PROBE_REQ_HIGH_TX_RATE = 19,
/**
* Driver supports
* probe request tx deferral and suppression
*/
OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20,
/**
* Driver supports the %NL80211_MFP_OPTIONAL
* value in %NL80211_ATTR_USE_MFP.
*/
MFP_OPTIONAL = 21,
/** Driver supports low span scan. */
LOW_SPAN_SCAN = 22,
/** Driver supports low power scan. */
LOW_POWER_SCAN = 23,
/** Driver supports high accuracy scan. */
HIGH_ACCURACY_SCAN = 24,
/**
* HW/driver will offload DFS actions.
* Device or driver will do all DFS-related actions by itself,
* informing user-space about CAC progress, radar detection event,
* channel change triggered by radar detection event.
* No need to start CAC from user-space, no need to react to
* "radar detected" event.
*/
DFS_OFFLOAD = 25,
/**
* Driver supports sending and
* receiving control port frames over nl80211 instead of the netdevice.
*/
CONTROL_PORT_OVER_NL80211 = 26,
/**
* This driver/device supports
* (average) ACK signal strength reporting.
*/
ACK_SIGNAL_SUPPORT = 27,
/**
* Driver supports FQ-CoDel-enabled intermediate
* TXQs.
*/
TXQS = 28,
/**
* Driver/device supports randomizing the
* SN in probe request frames if requested by %NL80211_SCAN_FLAG_RANDOM_SN.
*/
SCAN_RANDOM_SN = 29,
/**
* Driver/device can omit all data
* except for supported rates from the probe request content if requested
* by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
*/
SCAN_MIN_PREQ_CONTENT = 30,
/**
* Driver/device confirm that they are
* able to rekey an in-use key correctly. Userspace must not rekey PTK keys
* if this flag is not set. Ignoring this can leak clear text packets and/or
* freeze the connection.
*/
CAN_REPLACE_PTK0 = 31,
/**
* Driver supports enabling fine
* timing measurement responder role.
*/
ENABLE_FTM_RESPONDER = 32,
/**
* Driver supports getting airtime
* fairness for transmitted packets and has enabled airtime fairness
* scheduling.
*/
AIRTIME_FAIRNESS = 33,
/**
* Driver/device supports PMKSA caching
* (set/del PMKSA operations) in AP mode.
*/
AP_PMKSA_CACHING = 34,
/**
* Driver supports
* filtering of sched scan results using band specific RSSI thresholds.
*/
SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35,
/**
* Driver supports "Extended Key ID for
* Individually Addressed Frames" from IEEE802.11-2016.
*/
EXT_KEY_ID = 36,
/**
* This driver supports controlling tx power
* to a station.
*/
STA_TX_PWR = 37,
/**
* Device wants to do SAE authentication in
* station mode (SAE password is passed as part of the connect command).
*/
SAE_OFFLOAD = 38,
/**
* The driver supports a single netdev
* with VLAN tagged frames and separate VLAN-specific netdevs added using
* vconfig similarly to the Ethernet case.
*/
VLAN_OFFLOAD = 39
}
/**
* optional supported
* protocols for probe-response offloading by the driver/FW.
* To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute.
* Each enum value represents a bit in the bitmap of supported
* protocols. Typically a subset of probe-requests belonging to a
* supported protocol will be excluded from offload and uploaded
* to the host.
*/
export interface ProbeResponseOffloadSupport {
/** Support for WPS ver. 1 */
wps?: true;
/** Support for WPS ver. 2 */
wps2?: true;
/** Support for P2P */
p2p?: true;
/** Support for 802.11u */
_80211u?: true;
__unknown?: number;
}
/** Parses the flags in a {@link ProbeResponseOffloadSupport} bitmask */
export declare function parseProbeResponseOffloadSupport(r: number): ProbeResponseOffloadSupport;
/** Encodes a {@link ProbeResponseOffloadSupport} bitmask */
export declare function formatProbeResponseOffloadSupport(x: ProbeResponseOffloadSupport): number;
/** connection request failed reasons */
export declare enum ConnectFailedReason {
/**
* Maximum number of clients that can be
* handled by the AP is reached.
*/
MAX_CLIENTS = 0,
/** Connection request is rejected due to ACL. */
BLOCKED_CLIENT = 1
}
/** timeout reasons */
export declare enum TimeoutReason {
/** Timeout reason unspecified. */
UNSPECIFIED = 0,
/** Scan (AP discovery) timed out. */
SCAN = 1,
/** Authentication timed out. */
AUTH = 2,
/** Association timed out. */
ASSOC = 3
}
/**
* scan request control flags
*
* Scan request control flags are used to control the handling
* of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN
* requests.
*
* NL80211_SCAN_FLAG_LOW_SPAN, NL80211_SCAN_FLAG_LOW_POWER, and
* NL80211_SCAN_FLAG_HIGH_ACCURACY flags are exclusive of each other, i.e., only
* one of them can be used in the request.
*/
export interface ScanFlags {
/** scan request has low priority */
lowPriority?: true;
/** flush cache before scanning */
flush?: true;
/**
* force a scan even if the interface is configured
* as AP and the beaconing has already been configured. This attribute is
* dangerous because will destroy stations performance as a lot of frames
* will be lost while scanning off-channel, therefore it must be used only
* when really needed
*/
ap?: true;
/**
* use a random MAC address for this scan (or
* for scheduled scan: a different one for every scan iteration). When the
* flag is set, depending on device capabilities the @NL80211_ATTR_MAC and
* @NL80211_ATTR_MAC_MASK attributes may also be given in which case only
* the masked bits will be preserved from the MAC address and the remainder
* randomised. If the attributes are not given full randomisation (46 bits,
* locally administered 1, multicast 0) is assumed.
* This flag must not be requested when the feature isn't supported, check
* the nl80211 feature flags for the device.
*/
randomAddr?: true;
/**
* fill the dwell time in the FILS
* request parameters IE in the probe request
*/
filsMaxChannelTime?: true;
/** accept broadcast probe responses */
acceptBcastProbeResp?: true;
/**
* send probe request frames at
* rate of at least 5.5M. In case non OCE AP is discovered in the channel,
* only the first probe req in the channel will be sent in high rate.
*/
oceProbeReqHighTxRate?: true;
/**
* allow probe request
* tx deferral (dot11FILSProbeDelay shall be set to 15ms)
* and suppression (if it has received a broadcast Probe Response frame,
* Beacon frame or FILS Discovery frame from an AP that the STA considers
* a suitable candidate for (re-)association - suitable in terms of
* SSID and/or RSSI.
*/
oceProbeReqDeferralSuppression?: true;
/**
* Span corresponds to the total time taken to
* accomplish the scan. Thus, this flag intends the driver to perform the
* scan request with lesser span/duration. It is specific to the driver
* implementations on how this is accomplished. Scan accuracy may get
* impacted with this flag.
*/
lowSpan?: true;
/**
* This flag intends the scan attempts to consume
* optimal possible power. Drivers can resort to their specific means to
* optimize the power. Scan accuracy may get impacted with this flag.
*/
lowPower?: true;
/**
* Accuracy here intends to the extent of scan
* results obtained. Thus HIGH_ACCURACY scan flag aims to get maximum
* possible scan results. This flag hints the driver to use the best
* possible scan configuration to improve the accuracy in scanning.
* Latency and power use may get impacted with this flag.
*/
highAccuracy?: true;
/**
* randomize the sequence number in probe
* request frames from this scan to avoid correlation/tracking being
* possible.
*/
randomSn?: true;
/**
* minimize probe request content to
* only have supported rates and no additional capabilities (unless
* added by userspace explicitly.)
*/
minPreqContent?: true;
__unknown?: number;
}
/** Parses the flags in a {@link ScanFlags} bitmask */
export declare function parseScanFlags(r: number): ScanFlags;
/** Encodes a {@link ScanFlags} bitmask */
export declare function formatScanFlags(x: ScanFlags): number;
/**
* access control policy
*
* Access control policy is applied on a MAC list set by
* %NL80211_CMD_START_AP and %NL80211_CMD_SET_MAC_ACL, to
* be used with %NL80211_ATTR_ACL_POLICY.
*/
export declare enum AclPolicy {
/**
* Deny stations which are
* listed in ACL, i.e. allow all the stations which are not listed
* in ACL to authenticate.
*/
ACCEPT_UNLESS_LISTED = 0,
/**
* Allow the stations which are listed
* in ACL, i.e. deny all the stations which are not listed in ACL.
*/
DENY_UNLESS_LISTED = 1
}
/**
* SMPS mode
*
* Requested SMPS mode (for AP mode)
*/
export declare enum SmpsMode {
/** SMPS off (use all antennas). */
OFF = 0,
/** static SMPS (use a single antenna) */
STATIC = 1,
/**
* dynamic smps (start with a single antenna and
* turn on other antennas after CTS/RTS).
*/
DYNAMIC = 2
}
/**
* type of radar event for DFS operation
*
* Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace
* about detected radars or success of the channel available check (CAC)
*/
export declare enum RadarEvent {
/**
* A radar pattern has been detected. The channel is
* now unusable.
*/
DETECTED = 0,
/**
* Channel Availability Check has been finished,
* the channel is now available.
*/
CAC_FINISHED = 1,
/**
* Channel Availability Check has been aborted, no
* change to the channel status.
*/
CAC_ABORTED = 2,
/**
* The Non-Occupancy Period for this channel is
* over, channel becomes usable.
*/
NOP_FINISHED = 3,
/**
* Channel Availability Check done on this
* non-operating channel is expired and no longer valid. New CAC must
* be done on this channel before starting the operation. This is not
* applicable for ETSI dfs domain where pre-CAC is valid for ever.
*/
PRE_CAC_EXPIRED = 4,
/**
* Channel Availability Check has been started,
* should be generated by HW if NL80211_EXT_FEATURE_DFS_OFFLOAD is enabled.
*/
CAC_STARTED = 5
}
/**
* DFS states for channels
*
* Channel states used by the DFS code.
*/
export declare enum DfsState {
/**
* The channel can be used, but channel availability
* check (CAC) must be performed before using it for AP or IBSS.
*/
USABLE = 0,
/**
* A radar has been detected on this channel, it
* is therefore marked as not available.
*/
UNAVAILABLE = 1,
/** The channel has been CAC checked and is available. */
AVAILABLE = 2
}
/** nl80211 protocol features */
export interface ProtocolFeatures {
/**
* nl80211 supports splitting
* wiphy dumps (if requested by the application with the attribute
* %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the
* wiphy dump by %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFINDEX or
* %NL80211_ATTR_WDEV.
*/
phyDump?: true;
__unknown?: number;
}
/** Parses the flags in a {@link ProtocolFeatures} bitmask */
export declare function parseProtocolFeatures(r: number): ProtocolFeatures;
/** Encodes a {@link ProtocolFeatures} bitmask */
export declare function formatProtocolFeatures(x: ProtocolFeatures): number;
/** nl80211 critical protocol identifiers */
export declare enum CritProtoId {
/** BOOTP or DHCPv6 protocol. */
DHCP = 1,
/** EAPOL protocol. */
EAPOL = 2,
/** APIPA protocol. */
APIPA = 3
}
/**
* flags for received management frame.
*
* Used by cfg80211_rx_mgmt()
*/
export interface RxmgmtFlags {
/** frame was answered by device/driver. */
answered?: true;
/**
* Host driver intends to offload
* the authentication. Exclusively defined for host drivers that
* advertises the SME functionality but would like the userspace
* to handle certain authentication algorithms (e.g. SAE).
*/
externalAuth?: true;
__unknown?: number;
}
/** Parses the flags in a {@link RxmgmtFlags} bitmask */
export declare function parseRxmgmtFlags(r: number): RxmgmtFlags;
/** Encodes a {@link RxmgmtFlags} bitmask */
export declare function formatRxmgmtFlags(x: RxmgmtFlags): number;
/**
* TDLS peer flags.
*
* Used by tdls_mgmt() to determine which conditional elements need
* to be added to TDLS Setup frames.
*/
export interface TdlsPeerCapability {
/** TDLS peer is HT capable. */
ht?: true;
/** TDLS peer is VHT capable. */
vht?: true;
/** TDLS peer is WMM capable. */
wmm?: true;
__unknown?: number;
}
/** Parses the flags in a {@link TdlsPeerCapability} bitmask */
export declare function parseTdlsPeerCapability(r: number): TdlsPeerCapability;
/** Encodes a {@link TdlsPeerCapability} bitmask */
export declare function formatTdlsPeerCapability(x: TdlsPeerCapability): number;
/** scanning plan for scheduled scan */
export interface ScheduledScanPlan extends BaseObject {
/**
* interval between scan iterations. In
* seconds (u32).
*/
nterval?: number;
/**
* number of scan iterations in this
* scan plan (u32). The last scan plan must not specify this attribute
* because it will run infinitely. A value of zero is invalid as it will
* make the scan plan meaningless.
*/
terations?: number;
}
/** Parses the attributes of a {@link ScheduledScanPlan} object */
export declare function parseScheduledScanPlan(r: Buffer): ScheduledScanPlan;
/** Encodes a {@link ScheduledScanPlan} object into a stream of attributes */
export declare function formatScheduledScanPlan(x: ScheduledScanPlan): StreamData;
/**
* attributes for bss selection.
*
* One and only one of these attributes are found within %NL80211_ATTR_BSS_SELECT
* for %NL80211_CMD_CONNECT. It specifies the required BSS selection behaviour
* which the driver shall use.
*/
export interface BssSelect extends BaseObject {
/**
* Flag indicating only RSSI-based BSS selection
* is requested.
*/
rssi?: true;
/**
* attribute indicating BSS
* selection should be done such that the specified band is preferred.
* When there are multiple BSS-es in the preferred band, the driver
* shall use RSSI-based BSS selection as a second step. The value of
* this attribute is according to &enum nl80211_band (u32).
*/
bandPref?: Buffer;
/**
* When present the RSSI level for
* BSS-es in the specified band is to be adjusted before doing
* RSSI-based BSS selection. The attribute value is a packed structure
* value as specified by &struct nl80211_bss_select_rssi_adjust.
*/
rssiAdjust?: Buffer;
}
/** Parses the attributes of a {@link BssSelect} object */
export declare function parseBssSelect(r: Buffer): BssSelect;
/** Encodes a {@link BssSelect} object into a stream of attributes */
export declare function formatBssSelect(x: BssSelect): StreamData;
/**
* NAN function type
*
* Defines the function type of a NAN function
*/
export declare enum NanFunctionType {
/** function is publish */
PUBLISH = 0,
/** function is subscribe */
SUBSCRIBE = 1,
/** function is follow-up */
FOLLOW_UP = 2
}
/**
* NAN publish tx type
*
* Defines how to send publish Service Discovery Frames
*/
export interface NanPublishType {
/** publish function is solicited */
solicitedPublish?: true;
/** publish function is unsolicited */
unsolicitedPublish?: true;
__unknown?: number;
}
/** Parses the flags in a {@link NanPublishType} bitmask */
export declare function parseNanPublishType(r: number): NanPublishType;
/** Encodes a {@link NanPublishType} bitmask */
export declare function formatNanPublishType(x: NanPublishType): number;
/**
* NAN functions termination reason
*
* Defines termination reasons of a NAN function
*/
export declare enum NanFunctionTerminationReason {
/** requested by user */
USER_REQUEST = 0,
/** timeout */
TTL_EXPIRED = 1,
/** errored */
ERROR = 2
}
/** NAN function attributes */
export interface NanFunction extends BaseObject {
/** &enum nl80211_nan_function_type (u8). */
type?: NanFunctionType | keyof typeof NanFunctionType;
/**
* 6 bytes of the service ID hash as
* specified in NAN spec. This is a binary attribute.
*/
serviceId?: Buffer;
/**
* relevant if the function's type is
* publish. Defines the transmission type for the publish Service Discovery
* Frame, see &enum nl80211_nan_publish_type. Its type is u8.
*/
publishType?: NanPublishType;
/**
* relevant if the function is a solicited
* publish. Should the solicited publish Service Discovery Frame be sent to
* the NAN Broadcast address. This is a flag.
*/
publishBcast?: true;
/**
* relevant if the function's type is
* subscribe. Is the subscribe active. This is a flag.
*/
subscribeActive?: true;
/**
* relevant if the function's type is follow up.
* The instance ID for the follow up Service Discovery Frame. This is u8.
*/
followUpId?: number;
/**
* relevant if the function's type
* is follow up. This is a u8.
* The requestor instance ID for the follow up Service Discovery Frame.
*/
followUpReqId?: number;
/**
* the MAC address of the recipient of the
* follow up Service Discovery Frame. This is a binary attribute.
*/
followUpDest?: Buffer;
/**
* is this function limited for devices in a
* close range. The range itself (RSSI) is defined by the device.
* This is a flag.
*/
closeRange?: true;
/**
* strictly positive number of DWs this function should
* stay active. If not present infinite TTL is assumed. This is a u32.
*/
ttl?: number;
/**
* array of bytes describing the service
* specific info. This is a binary attribute.
*/
serviceInfo?: Buffer;
/**
* Service Receive Filter. This is a nested attribute.
* See &enum nl80211_nan_srf_attributes.
*/
srf?: NanSrf;
/**
* Receive Matching filter. This is a nested
* attribute. It is a list of binary values.
*/
rxMatchFilter?: Buffer;
/**
* Transmit Matching filter. This is a
* nested attribute. It is a list of binary values.
*/
txMatchFilter?: Buffer;
/**
* The instance ID of the function.
* Its type is u8 and it cannot be 0.
*/
instanceId?: number;
/**
* NAN function termination reason.
* See &enum nl80211_nan_func_term_reason.
*/
termReason?: NanFunctionTerminationReason | keyof typeof NanFunctionTerminationReason;
}
/** Parses the attributes of a {@link NanFunction} object */
export declare function parseNanFunction(r: Buffer): NanFunction;
/** Encodes a {@link NanFunction} object into a stream of attributes */
export declare function formatNanFunction(x: NanFunction): StreamData;
/** NAN Service Response filter attributes */
export interface NanSrf extends BaseObject {
/**
* present if the include bit of the SRF set.
* This is a flag.
*/
include?: true;
/**
* Bloom Filter. Present if and only if
* %NL80211_NAN_SRF_MAC_ADDRS isn't present. This attribute is binary.
*/
bf?: Buffer;
/**
* index of the Bloom Filter. Mandatory if
* %NL80211_NAN_SRF_BF is present. This is a u8.
*/
bfIdx?: number;
/**
* list of MAC addresses for the SRF. Present if
* and only if %NL80211_NAN_SRF_BF isn't present. This is a nested
* attribute. Each nested attribute is a MAC address.
*/
macAddrs?: Buffer[];
}
/** Parses the attributes of a {@link NanSrf} object */
export declare function parseNanSrf(r: Buffer): NanSrf;
/** Encodes a {@link NanSrf} object into a stream of attributes */
export declare function formatNanSrf(x: NanSrf): StreamData;
/** NAN match attributes */
export interface NanMatch extends BaseObject {
/**
* the local function that had the
* match. This is a nested attribute.
* See &enum nl80211_nan_func_attributes.
*/
local?: NanFunction;
/**
* the peer function
* that caused the match. This is a nested attribute.
* See &enum nl80211_nan_func_attributes.
*/
peer?: NanFunction;
}
/** Parses the attributes of a {@link NanMatch} object */
export declare function parseNanMatch(r: Buffer): NanMatch;
/** Encodes a {@link NanMatch} object into a stream of attributes */
export declare function formatNanMatch(x: NanMatch): StreamData;
/**
* Action to perform with external
* authentication request. Used by NL80211_ATTR_EXTERNAL_AUTH_ACTION.
*/
export declare enum ExternalAuthAction {
/** Start the authentication. */
START = 0,
/** Abort the ongoing authentication. */
ABORT = 1
}
/**
* fine timing measurement
* responder attributes
*/
export interface FtmResponder extends BaseObject {
/** FTM responder is enabled */
enabled?: Buffer;
/**
* The content of Measurement Report Element
* (9.4.2.22 in 802.11-2016) with type 8 - LCI (9.4.2.22.10),
* i.e. starting with the measurement token
*/
lci?: Buffer;
/**
* The content of Measurement Report Element
* (9.4.2.22 in 802.11-2016) with type 11 - Civic (Section 9.4.2.22.13),
* i.e. starting with the measurement token
*/
civicloc?: Buffer;
}
/** Parses the attributes of a {@link FtmResponder} object */
export declare function parseFtmResponder(r: Buffer): FtmResponder;
/** Encodes a {@link FtmResponder} object into a stream of attributes */
export declare function formatFtmResponder(x: FtmResponder): StreamData;
/**
* FTM responder statistics
*
* These attribute types are used with %NL80211_ATTR_FTM_RESPONDER_STATS
* when getting FTM responder statistics.
*/
export interface FtmResponderStats extends BaseObject {
/**
* number of FTM sessions in which all frames
* were ssfully answered (u32)
*/
successNum?: number;
/**
* number of FTM sessions in which part of the
* frames were successfully answered (u32)
*/
partialNum?: number;
/** number of failed FTM sessions (u32) */
failedNum?: number;
/** number of ASAP sessions (u32) */
asapNum?: number;
/** number of non-ASAP sessions (u32) */
nonAsapNum?: number;
/**
* total sessions durations - gives an
* indication of how much time the responder was busy (u64, msec)
*/
totalDurationMsec?: bigint;
/**
* number of unknown FTM triggers -
* triggers from initiators that didn't finish successfully the negotiation
* phase with the responder (u32)
*/
unknownTriggersNum?: number;
/**
* number of FTM reschedule requests
* - initiator asks for a new scheduling although it already has scheduled
* FTM slot (u32)
*/
rescheduleRequestsNum?: number;
/**
* number of FTM triggers out of
* scheduled window (u32)
*/
outOfWindowTriggersNum?: number;
/** used for padding, ignore */
__pad?: Buffer;
}
/** Parses the attributes of a {@link FtmResponderStats} object */
export declare function parseFtmResponderStats(r: Buffer): FtmResponderStats;
/** Encodes a {@link FtmResponderStats} object into a stream of attributes */
export declare function formatFtmResponderStats(x: FtmResponderStats): StreamData;
/** frame preamble types */
export declare enum Preamble {
/** legacy (HR/DSSS, OFDM, ERP PHY) preamble */
LEGACY = 0,
/** HT preamble */
HT = 1,
/** VHT preamble */
VHT = 2,
/** DMG preamble */
DMG = 3
}
/** Set of flags from {@link Preamble} bits */
export interface PreambleSet extends BaseObject {
/** legacy (HR/DSSS, OFDM, ERP PHY) preamble */
legacy?: true;
/** HT preamble */
ht?: true;
/** VHT preamble */
vht?: true;
/** DMG preamble */
dmg?: true;
}
/** Parses the flags in a bitmask with {@link Preamble} bits */
export declare function parsePreambleSet(r: number): PreambleSet;
/** Encodes a {@link Preamble} bitmask */
export declare function formatPreambleSet(x: PreambleSet): number;
/** peer measurement types */
export declare enum PeerMeasurementType {
/**
* invalid/unused, needed as we use
* these numbers also for attributes
*/
INVALID = 0,
/** flight time measurement */
FTM = 1
}
/** peer measurement status */
export declare enum PeerMeasurementStatus {
/** measurement completed successfully */
SUCCESS = 0,
/** measurement was locally refused */
REFUSED = 1,
/** measurement timed out */
TIMEOUT = 2,
/**
* measurement failed, a type-dependent
* reason may be available in the response data
*/
FAILURE = 3
}
/** peer measurement request attributes */
export interface PeerMeasurementRequest extends BaseObject {
/**
* This is a nested attribute with measurement
* type-specific request data inside. The attributes used are from the
* enums named nl80211_peer_measurement__req.
*/
data?: Buffer;
/**
* include AP TSF timestamp, if supported
* (flag attribute)
*/
getApTsf?: true;
}
/** Parses the attributes of a {@link PeerMeasurementRequest} object */
export declare function parsePeerMeasurementRequest(r: Buffer): PeerMeasurementRequest;
/** Encodes a {@link PeerMeasurementRequest} object into a stream of attributes */
export declare function formatPeerMeasurementRequest(x: PeerMeasurementRequest): StreamData;
/** peer measurement response attributes */
export interface PeerMeasurementResponse extends BaseObject {
/**
* This is a nested attribute with measurement
* type-specific results inside. The attributes used are from the enums
* named nl80211_peer_measurement__resp.
*/
data?: Buffer;
/**
* u32 value with the measurement status
* (using values from &enum nl80211_peer_measurement_status.)
*/
status?: PeerMeasurementStatus | keyof typeof PeerMeasurementStatus;
/**
* host time (%CLOCK_BOOTTIME) when the
* result was measured; this value is not expected to be accurate to
* more than 20ms. (u64, nanoseconds)
*/
hostTime?: bigint;
/**
* TSF of the AP that the interface
* doing the measurement is connected to when the result was measured.
* This shall be accurately reported if supported and requested
* (u64, usec)
*/
apTsf?: bigint;
/**
* If results are sent to the host partially
* (*e.g. with FTM per-burst data) this flag will be cleared on all but
* the last result; if all results are combined it's set on the single
* result.
*/
final?: true;
/** padding for 64-bit attributes, ignore */
__pad?: Buffer;
}
/** Parses the attributes of a {@link PeerMeasurementResponse} object */
export declare function parsePeerMeasurementResponse(r: Buffer): PeerMeasurementResponse;
/** Encodes a {@link PeerMeasurementResponse} object into a stream of attributes */
export declare function formatPeerMeasurementResponse(x: PeerMeasurementResponse): StreamData;
/** peer attributes for measurement */
export interface PeerMeasurementPeerAttrs extends BaseObject {
/** peer's MAC address */
addr?: Buffer;
/**
* channel definition, nested, using top-level
* attributes like %NL80211_ATTR_WIPHY_FREQ etc.
*/
chan?: Message;
/**
* This is a nested attribute indexed by
* measurement type, with attributes from the
* &enum nl80211_peer_measurement_req inside.
*/
req?: Map;
/**
* This is a nested attribute indexed by
* measurement type, with attributes from the
* &enum nl80211_peer_measurement_resp inside.
*/
resp?: Map;
}
/** Parses the attributes of a {@link PeerMeasurementPeerAttrs} object */
export declare function parsePeerMeasurementPeerAttrs(r: Buffer): PeerMeasurementPeerAttrs;
/** Encodes a {@link PeerMeasurementPeerAttrs} object into a stream of attributes */
export declare function formatPeerMeasurementPeerAttrs(x: PeerMeasurementPeerAttrs): StreamData;
/** peer measurement attributes */
export interface PeerMeasurement extends BaseObject {
/**
* u32 attribute used for capability
* advertisement only, indicates the maximum number of peers
* measurements can be done with in a single request
*/
maxPeers?: number;
/**
* flag attribute in capability
* indicating that the connected AP's TSF can be reported in
* measurement results
*/
reportApTsf?: true;
/**
* flag attribute in capability
* indicating that MAC address randomization is supported.
*/
randomizeMacAddr?: true;
/**
* capabilities reported by the device,
* this contains a nesting indexed by measurement type, and
* type-specific capabilities inside, which are from the enums
* named nl80211_peer_measurement__capa.
*/
typeCapa?: Buffer;
/**
* nested attribute, the nesting index is
* meaningless, just a list of peers to measure with, with the
* sub-attributes taken from
* &enum nl80211_peer_measurement_peer_attrs.
*/
peers?: PeerMeasurementPeerAttrs;
}
/** Parses the attributes of a {@link PeerMeasurement} object */
export declare function parsePeerMeasurement(r: Buffer): PeerMeasurement;
/** Encodes a {@link PeerMeasurement} object into a stream of attributes */
export declare function formatPeerMeasurement(x: PeerMeasurement): StreamData;
/** FTM capabilities */
export interface PeerMeasurementFtmCapabilities extends BaseObject {
/**
* flag attribute indicating ASAP mode
* is supported
*/
asap?: true;
/**
* flag attribute indicating non-ASAP
* mode is supported
*/
nonAsap?: true;
/**
* flag attribute indicating if LCI
* data can be requested during the measurement
*/
reqLci?: true;
/**
* flag attribute indicating if civic
* location data can be requested during the measurement
*/
reqCivicloc?: true;
/**
* u32 bitmap attribute of bits
* from &enum nl80211_preamble.
*/
preambles?: PreambleSet;
/**
* bitmap of values from
* &enum nl80211_chan_width indicating the supported channel
* bandwidths for FTM. Note that a higher channel bandwidth may be
* configured to allow for other measurements types with different
* bandwidth requirement in the same measurement.
*/
bandwidths?: Buffer;
/**
* u32 attribute indicating
* the maximum bursts exponent that can be used (if not present anything
* is valid)
*/
maxBurstsExponent?: number;
/**
* u32 attribute indicating
* the maximum FTMs per burst (if not present anything is valid)
*/
maxFtmsPerBurst?: number;
}
/** Parses the attributes of a {@link PeerMeasurementFtmCapabilities} object */
export declare function parsePeerMeasurementFtmCapabilities(r: Buffer): PeerMeasurementFtmCapabilities;
/** Encodes a {@link PeerMeasurementFtmCapabilities} object into a stream of attributes */
export declare function formatPeerMeasurementFtmCapabilities(x: PeerMeasurementFtmCapabilities): StreamData;
/** FTM request attributes */
export interface PeerMeasurementFtmRequest extends BaseObject {
/** ASAP mode requested (flag) */
asap?: true;
/**
* preamble type (see
* &enum nl80211_preamble), optional for DMG (u32)
*/
preamble?: Preamble | keyof typeof Preamble;
/**
* number of bursts exponent as in
* 802.11-2016 9.4.2.168 "Fine Timing Measurement Parameters element"
* (u8, 0-15, optional with default 15 i.e. "no preference")
*/
numBurstsExp?: number;
/**
* interval between bursts in units
* of 100ms (u16, optional with default 0)
*/
burstPeriod?: number;
/**
* burst duration, as in 802.11-2016
* Table 9-257 "Burst Duration field encoding" (u8, 0-15, optional with
* default 15 i.e. "no preference")
*/
burstDuration?: number;
/**
* number of successful FTM frames
* requested per burst
* (u8, 0-31, optional with default 0 i.e. "no preference")
*/
ftmsPerBurst?: number;
/**
* number of FTMR frame retries
* (u8, default 3)
*/
numFtmrRetries?: number;
/** request LCI data (flag) */
requestLci?: true;
/**
* request civic location data
* (flag)
*/
requestCivicloc?: true;
}
/** Parses the attributes of a {@link PeerMeasurementFtmRequest} object */
export declare function parsePeerMeasurementFtmRequest(r: Buffer): PeerMeasurementFtmRequest;
/** Encodes a {@link PeerMeasurementFtmRequest} object into a stream of attributes */
export declare function formatPeerMeasurementFtmRequest(x: PeerMeasurementFtmRequest): StreamData;
/** FTM failure reasons */
export declare enum PeerMeasurementFtmFailureReasons {
/** unspecified failure, not used */
UNSPECIFIED = 0,
/** no response from the FTM responder */
NO_RESPONSE = 1,
/** FTM responder rejected measurement */
REJECTED = 2,
/**
* we already know the peer is
* on a different channel, so can't measure (if we didn't know, we'd
* try and get no response)
*/
WRONG_CHANNEL = 3,
/** peer can't actually do FTM */
PEER_NOT_CAPABLE = 4,
/**
* invalid T1/T4 timestamps
* received
*/
INVALID_TIMESTAMP = 5,
/**
* peer reports busy, you may retry
* later (see %NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME)
*/
PEER_BUSY = 6,
/**
* parameters were changed
* by the peer and are no longer supported
*/
BAD_CHANGED_PARAMS = 7
}
/** FTM response attributes */
export interface PeerMeasurementFtmResponse extends BaseObject {
/**
* FTM-specific failure reason
* (u32, optional)
*/
failReason?: number;
/**
* optional, if bursts are reported
* as separate results then it will be the burst index 0...(N-1) and
* the top level will indicate partial results (u32)
*/
burstIndex?: number;
/**
* number of FTM Request frames
* transmitted (u32, optional)
*/
numFtmrAttempts?: number;
/**
* number of FTM Request frames
* that were acknowleged (u32, optional)
*/
numFtmrSuccesses?: number;
/**
* retry time received from the
* busy peer (u32, seconds)
*/
busyRetryTime?: number;
/**
* actual number of bursts exponent
* used by the responder (similar to request, u8)
*/
numBurstsExp?: number;
/**
* actual burst duration used by
* the responder (similar to request, u8)
*/
burstDuration?: number;
/**
* actual FTMs per burst used
* by the responder (similar to request, u8)
*/
ftmsPerBurst?: number;
/**
* average RSSI across all FTM action
* frames (optional, s32, 1/2 dBm)
*/
rssiAvg?: number;
/**
* RSSI spread across all FTM action
* frames (optional, s32, 1/2 dBm)
*/
rssiSpread?: number;
/**
* bitrate we used for the response to the
* FTM action frame (optional, nested, using &enum nl80211_rate_info
* attributes)
*/
txRate?: RateInfo;
/**
* bitrate the responder used for the FTM
* action frame (optional, nested, using &enum nl80211_rate_info attrs)
*/
rxRate?: RateInfo;
/**
* average RTT (s64, picoseconds, optional
* but one of RTT/DIST must be present)
*/
rttAvg?: bigint;
/**
* RTT variance (u64, ps^2, note that
* standard deviation is the square root of variance, optional)
*/
rttVariance?: bigint;
/**
* RTT spread (u64, picoseconds,
* optional)
*/
rttSpread?: bigint;
/**
* average distance (s64, mm, optional
* but one of RTT/DIST must be present)
*/
distAvg?: bigint;
/**
* distance variance (u64, mm^2, note
* that standard deviation is the square root of variance, optional)
*/
distVariance?: bigint;
/** distance spread (u64, mm, optional) */
distSpread?: bigint;
/**
* LCI data from peer (binary, optional);
* this is the contents of the Measurement Report Element (802.11-2016
* 9.4.2.22.1) starting with the Measurement Token, with Measurement
* Type 8.
*/
lci?: Buffer;
/**
* civic location data from peer
* (binary, optional);
* this is the contents of the Measurement Report Element (802.11-2016
* 9.4.2.22.1) starting with the Measurement Token, with Measurement
* Type 11.
*/
civicloc?: Buffer;
/** ignore, for u64/s64 padding only */
__pad?: Buffer;
}
/** Parses the attributes of a {@link PeerMeasurementFtmResponse} object */
export declare function parsePeerMeasurementFtmResponse(r: Buffer): PeerMeasurementFtmResponse;
/** Encodes a {@link PeerMeasurementFtmResponse} object into a stream of attributes */
export declare function formatPeerMeasurementFtmResponse(x: PeerMeasurementFtmResponse): StreamData;
/** OBSS packet detection attributes */
export interface ObssPd extends BaseObject {
/** the OBSS PD minimum tx power offset. */
inOffset?: Buffer;
/** the OBSS PD maximum tx power offset. */
axOffset?: Buffer;
}
/** Parses the attributes of a {@link ObssPd} object */
export declare function parseObssPd(r: Buffer): ObssPd;
/** Encodes a {@link ObssPd} object into a stream of attributes */
export declare function formatObssPd(x: ObssPd): StreamData;