Package: android.hardware.wifi@1.0

types

Properties

ChipId

typedef uint32_t ChipId

An identifier assigned to every chip on the device.

ChipModeId

typedef uint32_t ChipModeId

An identifier for a mode that the chip can be put in.

CommandId

typedef uint32_t CommandId

A unique handle provided by the client to identify individual invocations of certain API's like |IWifiStaIface.startBackgroundScan|, |IWifiStaIface.installApfPacketFilter|, etc.

WifiChannelInMhz

typedef uint32_t WifiChannelInMhz

Channel frequency in Mhz.

Rssi

typedef int32_t Rssi

RSSI information.

MacAddress

typedef uint8_t[6] MacAddress

Mac Address type.6 octets representing physical address of a device.

Ssid

typedef uint8_t[32] Ssid

SSID type.32 octets representing the network.

Bssid

typedef MacAddress Bssid

BSSID type.6 octets representing the physical address of an AP.

TimeStampInMs

typedef uint64_t TimeStampInMs

TimeStamp in milliseconds(ms).

TimeStampInUs

typedef uint64_t TimeStampInUs

TimeStamp in microseconds(us).

TimeSpanInPs

typedef uint64_t TimeSpanInPs

TimeStamp in picoseconds(ps).

CommandIdShort

typedef uint16_t CommandIdShort

A unique short handle provided by the client to identify individual invocations of certain API's like |IWifiNanIface.*|.

WifiRingBufferId

typedef uint32_t WifiRingBufferId

Debug data specific types.TODO(b/32159498): Move to a separate debug_types.hal.

WifiStatusCode

enum WifiStatusCode: uint32_t

Enum values indicating the status of operation.

Details
Members
SUCCESS
No errors.
ERROR_WIFI_CHIP_INVALID
Method invoked on an invalid |IWifiChip| object.
ERROR_WIFI_IFACE_INVALID
Method invoked on an invalid |IWifiIface| object.
ERROR_WIFI_RTT_CONTROLLER_INVALID
Method invoked on an invalid |IWifiRttController| object.
ERROR_NOT_SUPPORTED
ERROR_NOT_AVAILABLE
ERROR_NOT_STARTED
ERROR_INVALID_ARGS
ERROR_BUSY
ERROR_UNKNOWN

IfaceType

enum IfaceType: uint32_t

List of Iface types supported.

Details
Members
STA
AP
P2P
NAN
NAN control interface.Datapath support must be queried and created through this interface.

WifiChannelWidthInMhz

enum WifiChannelWidthInMhz: uint32_t

Channel operating width in Mhz.

Details
Members
WIDTH_20 = 0
WIDTH_40 = 1
WIDTH_80 = 2
WIDTH_160 = 3
WIDTH_80P80 = 4
WIDTH_5 = 5
WIDTH_10 = 6
WIDTH_INVALID = -1

WifiRatePreamble

enum WifiRatePreamble: uint32_t
Details
Members
OFDM = 0
CCK = 1
HT = 2
VHT = 3
RESERVED = 4

WifiRateNss

enum WifiRateNss: uint32_t

Number of spatial streams in VHT/HT.

Details
Members
NSS_1x1 = 0
NSS_2x2 = 1
NSS_3x3 = 2
NSS_4x4 = 3

WifiBand

enum WifiBand: uint32_t

Wifi bands defined in 80211 spec.

Details
Members
BAND_UNSPECIFIED = 0
BAND_24GHZ = 1
2.4 GHz.
BAND_5GHZ = 2
5 GHz without DFS.
BAND_5GHZ_DFS = 4
5 GHz DFS only.
BAND_5GHZ_WITH_DFS = 6
5 GHz with DFS.
BAND_24GHZ_5GHZ = 3
2.4 GHz + 5 GHz;no DFS.
BAND_24GHZ_5GHZ_WITH_DFS = 7
2.4 GHz + 5 GHz with DFS

StaBackgroundScanBucketEventReportSchemeMask

enum StaBackgroundScanBucketEventReportSchemeMask: uint32_t

Mask of event reporting schemes that can be specified in background scan requests.

Details
Members
EACH_SCAN = 1 << 0
Report a scan completion event after scan.If this is not set then scan completion events must be reported if report_threshold_percent or report_threshold_num_scans is reached.
FULL_RESULTS = 1 << 1
Forward scan results(beacons/probe responses + IEs)in real time to HAL, in addition to completion events.Note:To keep backward compatibility, fire completion events regardless of REPORT_EVENTS_EACH_SCAN.
NO_BATCH = 1 << 2
Controls if scans for this bucket must be placed in the results buffer.

StaScanLimits

enum StaScanLimits: uint32_t

Max limits for background scan.

Details
Members
MAX_CHANNELS = 16
MAX_BUCKETS = 16
MAX_AP_CACHE_PER_SCAN = 32

StaScanDataFlagMask

enum StaScanDataFlagMask: int32_t

Mask of flags set in the |ScanData| instance.

Details
Members
INTERRUPTED = 1 << 0
Indicates that a scan was interrupted/did not occur so results may be incomplete.

StaRoamingState

enum StaRoamingState: uint8_t

Enum describing the various states to set the roaming control to.

Details
Members
DISABLED = 0
Driver/Firmware must not perform any roaming.
ENABLED = 1
Driver/Firmware is allowed to perform roaming respecting the |StaRoamingConfig| parameters set using |configureRoaming|.

NanParamSizeLimits

enum NanParamSizeLimits: uint32_t

Size limits for parameters used in the NAN interface.

Details
Members
MIN_PASSPHRASE_LENGTH = 8
Minimum length of Passphrase argument for data-path configuration
MAX_PASSPHRASE_LENGTH = 63
Maximum length of Passphrase argument for data-path configuration
Annotations
export

NanStatusType

enum NanStatusType: uint32_t

NAN API response codes used in request notifications and events.

Details
Members
SUCCESS = 0
INTERNAL_FAILURE = 1
NAN Discovery Engine/Host driver failures
PROTOCOL_FAILURE = 2
NAN OTA failures
INVALID_SESSION_ID = 3
The publish/subscribe discovery session id is invalid
NO_RESOURCES_AVAILABLE = 4
Out of resources to fufill request
INVALID_ARGS = 5
Invalid arguments passed
INVALID_PEER_ID = 6
Invalid peer id
INVALID_NDP_ID = 7
Invalid NAN data-path(ndp)id
NAN_NOT_ALLOWED = 8
Attempting to enable NAN when not available, e.g.wifi is disabled
NO_OTA_ACK = 9
Over the air ACK not received
ALREADY_ENABLED = 10
Attempting to enable NAN when already enabled
FOLLOWUP_TX_QUEUE_FULL = 11
Can't queue tx followup message foor transmission
UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 12
Unsupported concurrency of NAN and another feature - NAN disabled

NanBandIndex

enum NanBandIndex: uint32_t

The discovery bands supported by NAN.

Details
Members
NAN_BAND_24GHZ = 0
NAN_BAND_5GHZ

NanMatchAlg

enum NanMatchAlg: uint32_t

NAN Match indication type:control how often to trigger |IWifiNanIfaceEventCallback.eventMatch| for a single discovery session - i.e.continuously discovering the same publisher with no new data.

Details
Members
MATCH_ONCE = 0
MATCH_CONTINUOUS
MATCH_NEVER

NanPublishType

enum NanPublishType: uint32_t

NAN publish discovery session types.

Details
Members
UNSOLICITED = 0
SOLICITED
UNSOLICITED_SOLICITED

NanTxType

enum NanTxType: uint32_t

NAN transmit type used in |NanPublishType.SOLICITED| or |NanPublishType.UNSOLICITED_SOLICITED| publish discovery sessions.Describes the addressing of the packet responding to an ACTIVE subscribe query.

Details
Members
BROADCAST = 0
UNICAST

NanSubscribeType

enum NanSubscribeType: uint32_t

NAN subscribe discovery session types.

Details
Members
PASSIVE = 0
ACTIVE

NanSrfType

enum NanSrfType: uint32_t

NAN Service Response Filter Attribute Bit.

Details
Members
BLOOM_FILTER = 0
PARTIAL_MAC_ADDR

NanDataPathChannelCfg

enum NanDataPathChannelCfg: uint32_t

NAN DP(data-path)channel config options.

Details
Members
CHANNEL_NOT_REQUESTED = 0
REQUEST_CHANNEL_SETUP
FORCE_CHANNEL_SETUP

NanDataPathSecurityType

enum NanDataPathSecurityType: uint32_t

NAN DP(data-path)security configuration options.

Details
Members
OPEN
PMK
PASSPHRASE

NanCipherSuiteType

enum NanCipherSuiteType: uint32_t

Cipher suite flags.

Details
Members
NONE = 0
SHARED_KEY_128_MASK = 1 << 0
SHARED_KEY_256_MASK = 1 << 1

NanRangingIndication

enum NanRangingIndication: uint32_t

Ranging in the context of discovery sessions indication controls.Controls the frequency of ranging-driven |IWifiNanIfaceEventCallback.eventMatch|.

Details
Members
CONTINUOUS_INDICATION_MASK = 1 << 0
INGRESS_MET_MASK = 1 << 1
EGRESS_MET_MASK = 1 << 2

NanClusterEventType

enum NanClusterEventType: uint32_t

Event types for a cluster event indication.

Details
Members
DISCOVERY_MAC_ADDRESS_CHANGED = 0
Management/discovery interface MAC address has changed(e.g.due to randomization or at startup).
STARTED_CLUSTER
A new cluster has been formed by this device.
JOINED_CLUSTER
This device has joined an existing cluster.

RttStatus

enum RttStatus: uint32_t

Ranging status.

Details
Members
SUCCESS = 0
FAILURE = 1
General failure status
FAIL_NO_RSP = 2
Target STA does not respond to request
FAIL_REJECTED = 3
Request rejected.Applies to 2-sided RTT only
FAIL_NOT_SCHEDULED_YET = 4
FAIL_TM_TIMEOUT = 5
Timing measurement times out
FAIL_AP_ON_DIFF_CHANNEL = 6
Target on different channel, cannot range
FAIL_NO_CAPABILITY = 7
Ranging not supported
ABORTED = 8
Request aborted for unknown reason
FAIL_INVALID_TS = 9
Invalid T1-T4 timestamp
FAIL_PROTOCOL = 10
11mc protocol failed
FAIL_SCHEDULE = 11
Request could not be scheduled
FAIL_BUSY_TRY_LATER = 12
Responder cannot collaborate at time of request
INVALID_REQ = 13
Bad request args
NO_WIFI = 14
WiFi not enabled.
FAIL_FTM_PARAM_OVERRIDE = 15
Responder overrides param info, cannot range with new params

RttPeerType

enum RttPeerType: uint32_t

RTT peer types.

Details
Members
AP = 0x1
STA = 0x2
P2P_GO = 0x3
P2P_CLIENT = 0x4
NAN = 0x5

RttBw

enum RttBw: uint32_t

RTT Measurement Bandwidth.

Details
Members
BW_5MHZ = 0x01
BW_10MHZ = 0x02
BW_20MHZ = 0x04
BW_40MHZ = 0x08
BW_80MHZ = 0x10
BW_160MHZ = 0x20

RttPreamble

enum RttPreamble: uint32_t

RTT Measurement Preamble.

Details
Members
LEGACY = 0x1
HT = 0x2
VHT = 0x4

RttType

enum RttType: uint32_t

RTT Types.

Details
Members
ONE_SIDED = 0x1
TWO_SIDED = 0x2

RttMotionPattern

enum RttMotionPattern: uint32_t

Structs for setting LCI/LCR information to be provided to a requestor.

Details
Members
NOT_EXPECTED = 0
Not expected to change location.
EXPECTED = 1
Expected to change location.
UNKNOWN = 2
Movement pattern unknown.

WifiDebugRingBufferFlags

enum WifiDebugRingBufferFlags: uint32_t

Flags describing each debug ring buffer.

Details
Members
HAS_BINARY_ENTRIES = 1 << 0
HAS_ASCII_ENTRIES = 1 << 1
HAS_PER_PACKET_ENTRIES = 1 << 2

WifiDebugRingBufferVerboseLevel

enum WifiDebugRingBufferVerboseLevel: uint32_t

Verbose logging level to set for each debug ring buffer supported by the device.

Details
Members
NONE = 0
Level 0 corresponds to no collection, and it makes log handler stop by no more events from driver.
DEFAULT = 1
Level 1 correspond to normal log level, with minimal user impact.This is the default value.
VERBOSE = 2
Level 2 is enabled when user is lazily trying to reproduce a problem, wifi performances and power can be impacted but device should not otherwise be significantly impacted.
EXCESSIVE = 3
Level 3 is used when trying to actively debug a problem.This will cause sever performance degradation.

WifiDebugTxPacketFate

enum WifiDebugTxPacketFate: uint32_t

Enum describing the fate of the TX packets.

Details
Members
ACKED
Sent over air and ACKed.
SENT
Sent over air but not ACKed .(Normal for broadcast/multicast.)
FW_QUEUED
Queued within firmware, but not yet sent over air.
FW_DROP_INVALID
Dropped by firmware as invalid.E.g.bad source address, bad checksum, or invalid for current state.
FW_DROP_NOBUFS
Dropped by firmware due to lack of buffer space.
FW_DROP_OTHER
Dropped by firmware for any other reason.Includes frames that were sent by driver to firmware, but unaccounted for by firmware.
DRV_QUEUED
Queued within driver, not yet sent to firmware.
DRV_DROP_INVALID
Dropped by driver as invalid.E.g.bad source address, or invalid for current state.
DRV_DROP_NOBUFS
Dropped by driver due to lack of buffer space.
DRV_DROP_OTHER
Dropped by driver for any other reason.

WifiDebugRxPacketFate

enum WifiDebugRxPacketFate: uint32_t

Enum describing the fate of the TX packets.

Details
Members
SUCCESS
Valid and delivered to network stack(e.g ., netif_rx()).
FW_QUEUED
Queued within firmware, but not yet sent to driver.
FW_DROP_FILTER
Dropped by firmware due to host-programmable filters.
FW_DROP_INVALID
Dropped by firmware as invalid.E.g.bad checksum, decrypt failed, or invalid for current state.
FW_DROP_NOBUFS
Dropped by firmware due to lack of buffer space.
FW_DROP_OTHER
Dropped by firmware for any other reason.
DRV_QUEUED
Queued within driver, not yet delivered to network stack.
DRV_DROP_FILTER
Dropped by driver due to filter rules.
DRV_DROP_INVALID
Dropped by driver as invalid.E.g.not permitted in current state.
DRV_DROP_NOBUFS
Dropped by driver due to lack of buffer space.
DRV_DROP_OTHER
Dropped by driver for any other reason.

WifiDebugPacketFateFrameType

enum WifiDebugPacketFateFrameType: uint32_t

Type of frame transmitted/received.

Details
Members
UNKNOWN
ETHERNET_II
MGMT_80211

WifiStatus

struct WifiStatus {WifiStatusCode code; string description}

Generic structure to return the status of an operation.

Details
Members
code
description
A vendor specific error message from the vendor to provide more information beyond the reason code.

WifiChannelInfo

struct WifiChannelInfo {WifiChannelWidthInMhz width; WifiChannelInMhz centerFreq; WifiChannelInMhz centerFreq0; WifiChannelInMhz centerFreq1}

Channel information.

Details
Members
width
Channel width(20, 40, 80, 80+80, 160).
centerFreq
Primary 20 MHz channel.
centerFreq0
Center frequency(MHz)first segment.
centerFreq1
Center frequency(MHz)second segment.

WifiInformationElement

struct WifiInformationElement {uint8_t id; vec data}

Information elements contained within the |ScanResult| structure.These elements correspond to the IEEE_802.11 standard.

Details
Members
id
data

WifiRateInfo

struct WifiRateInfo {WifiRatePreamble preamble; WifiRateNss nss; WifiChannelWidthInMhz bw; uint8_t rateMcsIdx; uint32_t bitRateInKbps}

Wifi rate info.

Details
Members
preamble
Preamble used for RTT measurements.
nss
Number of spatial streams.
bw
Bandwidth of channel.
rateMcsIdx
OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps.HT/VHT it would be mcs index.
bitRateInKbps
Bitrate in units of 100 Kbps.

StaApfPacketFilterCapabilities

struct StaApfPacketFilterCapabilities {uint32_t version; uint32_t maxLength}

Parameters to specify the APF capabilities of this iface.

Details
Members
version
Version of the packet filter interpreter supported
maxLength
Maximum size of the filter bytecodes in byte for an iface.

StaBackgroundScanCapabilities

struct StaBackgroundScanCapabilities {uint32_t maxCacheSize; uint32_t maxBuckets; uint32_t maxApCachePerScan; int32_t maxReportingThreshold}

Parameters to specify the Background Scan capabilities of this iface.

Details
Members
maxCacheSize
Maximum number of byte available for cached scan results
maxBuckets
Maximum number of buckets that can be supplied for a scan
maxApCachePerScan
Maximum number of APs that must be stored for each scan.
maxReportingThreshold
Max reporting number of scans threshold that can be specified in the scan parameters.

StaBackgroundScanBucketParameters

struct StaBackgroundScanBucketParameters {uint32_t bucketIdx; WifiBand band; vec frequencies; uint32_t periodInMs; bitfield eventReportScheme; uint32_t exponentialMaxPeriodInMs; uint32_t exponentialBase; uint32_t exponentialStepCount}

Background Scan parameters per bucket that can be specified in background scan requests.

Details
Members
bucketIdx
Bucket index.This index is used to report results in |StaScanData.bucketsScanned|.
band
Bands to scan or |BAND_UNSPECIFIED| if frequencies list must be used instead.
frequencies
Channel frequencies(in Mhz)to scan if |band| is set to |BAND_UNSPECIFIED|.Max length:|StaScanLimits.MAX_CHANNELS|.
periodInMs
Period at which this bucket must be scanned(in milliseconds). Must be an integer multiple of the |basePeriodInMs| specified in the BackgroundScanParameters.
eventReportScheme
Bitset of |StaBackgroundScanBucketEventReportSchemeMask| values controlling when events for this bucket must be reported.
exponentialMaxPeriodInMs
For exponential back off.If |exponentialMaxPeriodInMs| is non zero or different than period, then this bucket is an exponential backoff bucket and the scan period must grow exponentially as per formula:actual_period(N)= period *(base ^(N/step_count)) to this maximum period(in milliseconds).
exponentialBase
For exponential back off.multiplier:new_period=old_period * base
exponentialStepCount
For exponential back off.Number of scans to perform for a given period.

StaBackgroundScanParameters

struct StaBackgroundScanParameters {uint32_t basePeriodInMs; uint32_t maxApPerScan; uint32_t reportThresholdPercent; uint32_t reportThresholdNumScans; vec buckets}

Background Scan parameters that can be specified in background scan requests.

Details
Members
basePeriodInMs
GCD of all bucket periods(in milliseconds).
maxApPerScan
Maximum number of APs that must be stored for each scan.If the maximum is reached the highest RSSI results must be returned.Max length:|StaScanLimits.MAX_AP_CACHE_PER_SCAN|.
reportThresholdPercent
% cache buffer filled threshold at which the host must be notified of batched scan results.
reportThresholdNumScans
Threshold at which the AP must be woken up, in number of scans.
buckets
List of buckets to be scheduled.Max length:|StaScanLimits.MAX_BUCKETS|.

StaLinkLayerIfacePacketStats

struct StaLinkLayerIfacePacketStats {uint64_t rxMpdu; uint64_t txMpdu; uint64_t lostMpdu; uint64_t retries}

Packet stats for different traffic categories.

Details
Members
rxMpdu
Number of received unicast data packets.
txMpdu
Number of successfully transmitted unicast data pkts(ACK rcvd).
lostMpdu
Number of transmitted unicast data pkt losses(no ACK).
retries
Number of transmitted unicast data retry pkts.

StaLinkLayerIfaceStats

struct StaLinkLayerIfaceStats {uint32_t beaconRx; int32_t avgRssiMgmt; StaLinkLayerIfacePacketStats wmeBePktStats; StaLinkLayerIfacePacketStats wmeBkPktStats; StaLinkLayerIfacePacketStats wmeViPktStats; StaLinkLayerIfacePacketStats wmeVoPktStats}

Iface statistics for the current connection.

Details
Members
beaconRx
Number beacons received from the connected AP.
avgRssiMgmt
Access Point Beacon and Management frames RSSI(averaged).
wmeBePktStats
WME Best Effort Access Category packet counters.
wmeBkPktStats
WME Background Access Category packet counters.
wmeViPktStats
WME Video Access Category packet counters.
wmeVoPktStats
WME Voice Access Category packet counters.

StaLinkLayerRadioStats

struct StaLinkLayerRadioStats {uint32_t onTimeInMs; uint32_t txTimeInMs; vec txTimeInMsPerLevel; uint32_t rxTimeInMs; uint32_t onTimeInMsForScan}

Cumulative radio statistics since collection was enabled.

Details
Members
onTimeInMs
Time for which the radio is awake.
txTimeInMs
Total time for which the radio is in active transmission.
txTimeInMsPerLevel
Time for which the radio is in active tranmission per tx level.
rxTimeInMs
Time for which the radio is in active receive.
onTimeInMsForScan
Total time for which the radio is awake due to scan.

StaLinkLayerStats

struct StaLinkLayerStats {StaLinkLayerIfaceStats iface; vec radios; TimeStampInMs timeStampInMs}

Link layer stats retrieved via |getLinkLayerStats|.

Details
Members
iface
radios
timeStampInMs
TimeStamp for each stats sample.This is the absolute milliseconds from boot when these stats were sampled.

StaScanResult

struct StaScanResult {TimeStampInUs timeStampInUs; vec ssid; Bssid bssid; Rssi rssi; WifiChannelInMhz frequency; uint16_t beaconPeriodInMs; uint16_t capability; vec informationElements}

Structure describing all the information about a single access point seen during the scan.

Details
Members
timeStampInUs
ssid
bssid
rssi
frequency
beaconPeriodInMs
capability
informationElements

StaScanData

struct StaScanData {bitfield flags; uint32_t bucketsScanned; vec results}

Structure describing all the information about all the access points seen during the scan.

Details
Members
flags
Bitset containing |ScanDataFlagMask| values.
bucketsScanned
Bitset where each bit indicates if the bucket with that index(starting at 0)was scanned.
results
List of scan results.

StaRoamingCapabilities

struct StaRoamingCapabilities {uint32_t maxBlacklistSize; uint32_t maxWhitelistSize}

Structure describing the roaming control capabilities supported.

Details
Members
maxBlacklistSize
Maximum number of BSSID's that may be blacklisted.
maxWhitelistSize
Maximum number of SSID's that may be whitelisted.

StaRoamingConfig

struct StaRoamingConfig {vec bssidBlacklist; vec ssidWhitelist}

Structure describing the roaming control configuration.

Details
Members
bssidBlacklist
List of BSSID's that are blacklisted for roaming.
ssidWhitelist
List of SSID's that are whitelisted for roaming.

WifiNanStatus

struct WifiNanStatus {NanStatusType status; string description}

The status information returned in NAN notifications.

Details
Members
status
Status of the command request.
description
Further description of the issue causing a failure.

NanBandSpecificConfig

struct NanBandSpecificConfig {uint8_t rssiClose; uint8_t rssiMiddle; uint8_t rssiCloseProximity; uint8_t dwellTimeMs; uint16_t scanPeriodSec; bool validDiscoveryWindowIntervalVal; uint8_t discoveryWindowIntervalVal}

NAN band-specific configuration.

Details
Members
rssiClose
RSSI values controlling clustering behavior per spec.RSSI values are specified without a sign, e.g.a value of -65dBm would be specified as 65.
rssiMiddle
rssiCloseProximity
RSSI value determining whether discovery is near(used if enabled in discovery by |NanDiscoveryCommonConfig.useRssiThreshold|). RSSI values are specified without a sign, e.g.a value of -65dBm would be specified as 65.NAN Spec:RSSI_close_proximity
dwellTimeMs
Dwell time of each discovery channel in milliseconds.If set to 0 then the firmware determines the dwell time to use.
scanPeriodSec
Scan period of each discovery channel in seconds.If set to 0 then the firmware determines the scan period to use.
validDiscoveryWindowIntervalVal
Specifies the discovery window interval for Sync beacons and SDF's.Valid values of DW Interval are:1, 2, 3, 4 and 5 corresponding to 1, 2, 4, 8, and 16 DWs.Value of 0:- reserved in 2.4GHz band - no wakeup at all in 5GHz band The publish/subscribe period values don't override this device level configurations if it is specified.Configuration is only used only if |validDiscoveryWindowIntervalVal| is set to true.NAN Spec:Device Capability Attribute / 2.4 GHz DW, Device Capability Attribute / 5 GHz DW
discoveryWindowIntervalVal

NanDebugConfig

struct NanDebugConfig {bool validClusterIdVals; uint16_t clusterIdBottomRangeVal; uint16_t clusterIdTopRangeVal; bool validIntfAddrVal; MacAddress intfAddrVal; bool validOuiVal; uint32_t ouiVal; bool validRandomFactorForceVal; uint8_t randomFactorForceVal; bool validHopCountForceVal; uint8_t hopCountForceVal; bool validDiscoveryChannelVal; WifiChannelInMhz discoveryChannelMhzVal; bool validUseBeaconsInBandVal; bool useBeaconsInBandVal; bool validUseSdfInBandVal; bool useSdfInBandVal}

Debug configuration parameters.Many of these allow non-standard-compliant operation and are not intended for normal operational mode.

Details
Members
validClusterIdVals
Specification of the lower 2 bytes of the cluster ID.The cluster ID is 50-60-9a-01-00-00 to 50-60-9a-01-FF-FF.Configuration of the bottom and top values of the range(which defaults to 0x0000 and 0xFFFF respectively). Configuration is only used if |validClusterIdVals| is set to true.
clusterIdBottomRangeVal
clusterIdTopRangeVal
validIntfAddrVal
NAN management interface address, if specified(|validIntfAddrVal| is true)then overrides any other configuration(specifically the default randomization configured by |NanConfigRequest.macAddressRandomizationIntervalSec|).
intfAddrVal
validOuiVal
Combination of the 24 bit Organizationally Unique ID(OUI)and the 8 bit OUI Type.Used if |validOuiVal| is set to true.
ouiVal
validRandomFactorForceVal
Force the Random Factor to the specified value for all transmitted Sync/Discovery beacons.Used if |validRandomFactorForceVal| is set to true.NAN Spec:Master Indication Attribute / Random Factor
randomFactorForceVal
validHopCountForceVal
Forces the hop-count for all transmitted Sync and Discovery Beacons NO matter the real hop-count being received over the air.Used if the |validHopCountForceVal}| flag is set to true.NAN Spec:Cluster Attribute / Anchor Master Information / Hop Count to Anchor Master
hopCountForceVal
validDiscoveryChannelVal
Frequency in MHz to of the discovery channel in the specified band.Indexed by |NanBandIndex|.Used if the |validDiscoveryChannelVal| is set to true.
discoveryChannelMhzVal
validUseBeaconsInBandVal
Specifies whether sync/discovery beacons are transmitted in the specified band.Indexed by |NanBandIndex|.Used if the |validUseBeaconsInBandVal| is set to true.
useBeaconsInBandVal
validUseSdfInBandVal
Specifies whether SDF(service discovery frames)are transmitted in the specified band.Indexed by |NanBandIndex|.Used if the |validUseSdfInBandVal| is set to true.
useSdfInBandVal

NanConfigRequest

struct NanConfigRequest {uint8_t masterPref; bool disableDiscoveryAddressChangeIndication; bool disableStartedClusterIndication; bool disableJoinedClusterIndication; bool includePublishServiceIdsInBeacon; uint8_t numberOfPublishServiceIdsInBeacon; bool includeSubscribeServiceIdsInBeacon; uint8_t numberOfSubscribeServiceIdsInBeacon; uint16_t rssiWindowSize; uint32_t macAddressRandomizationIntervalSec; NanBandSpecificConfig bandSpecificConfig}

Configuration parameters of NAN:used when enabling and re-configuring a NAN cluster.

Details
Members
masterPref
Master preference of this device.NAN Spec:Master Indication Attribute / Master Preference
disableDiscoveryAddressChangeIndication
Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered for |NanClusterEventType.DISCOVERY_MAC_ADDRESS_CHANGED|.
disableStartedClusterIndication
Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered for |NanClusterEventType.STARTED_CLUSTER|.
disableJoinedClusterIndication
Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered for |NanClusterEventType.JOINED_CLUSTER|.
includePublishServiceIdsInBeacon
Control whether publish service IDs are included in Sync/Discovery beacons.NAN Spec:Service ID List Attribute
numberOfPublishServiceIdsInBeacon
If |includePublishServiceIdsInBeacon| is true then specifies the number of publish service IDs to include in the Sync/Discovery beacons:Value = 0:include as many service IDs as will fit into the maximum allowed beacon frame size.Value must fit within 7 bits - i.e.<= 127.
includeSubscribeServiceIdsInBeacon
Control whether subscribe service IDs are included in Sync/Discovery beacons.Spec:Subscribe Service ID List Attribute
numberOfSubscribeServiceIdsInBeacon
If |includeSubscribeServiceIdsInBeacon| is true then specifies the number of subscribe service IDs to include in the Sync/Discovery beacons:Value = 0:include as many service IDs as will fit into the maximum allowed beacon frame size.Value must fit within 7 bits - i.e.<= 127.
rssiWindowSize
Number of samples used to calculate RSSI.
macAddressRandomizationIntervalSec
Specifies the interval in seconds that the NAN management interface MAC address is randomized.A value of 0 is used to disable the MAC address randomization
bandSpecificConfig
Additional configuration provided per band:indexed by |NanBandIndex|.

NanEnableRequest

struct NanEnableRequest {bool operateInBand; uint8_t hopCountMax; NanConfigRequest configParams; NanDebugConfig debugConfigs}

Enable requests for NAN:start-up configuration |IWifiNanIface.enableRequest|.

Details
Members
operateInBand
Enable operation in a specific band:indexed by |NanBandIndex|.
hopCountMax
Specify extent of cluster by specifying the max hop count.
configParams
Configurations of NAN cluster operation.Can also be modified at run-time using |IWifiNanIface.configRequest|.
debugConfigs
Non-standard configurations of NAN cluster operation - useful for debugging operations.

NanDataPathSecurityConfig

struct NanDataPathSecurityConfig {NanDataPathSecurityType securityType; NanCipherSuiteType cipherType; uint8_t pmk; vec passphrase}

Configuration of NAN data-path security.

Details
Members
securityType
Security configuration of the data-path(NDP). Security is required if not equal to |NanDataPathSecurityType.OPEN|.NAN Spec:Service Discovery Extension Attribute(SDEA)/ Control / Security Required
cipherType
Cipher type for data-paths.If |securityType| is |NanDataPathSecurityType.OPEN| then must be set to |NanCipherSuiteType.NONE|, otherwise a non-|NanCipherSuiteType.NONE| cipher suite must be specified.
pmk
Optional Pairwise Master Key(PMK). Must be specified(and is only used)if |securityType| is set to |NanDataPathSecurityType.PMK|.Ref:IEEE 802.11i
passphrase
Optional Passphrase.Must be specified(and is only used)if |securityType| is set to |NanDataPathSecurityType.PASSPHRASE|.Min length:|MIN_PASSPHRASE_LENGTH| Max length:|MAX_PASSPHRASE_LENGTH| NAN Spec:Appendix:Mapping pass-phrase to PMK for NCS-SK Cipher Suites

NanDiscoveryCommonConfig

struct NanDiscoveryCommonConfig {uint8_t sessionId; uint16_t ttlSec; uint16_t discoveryWindowPeriod; uint8_t discoveryCount; vec serviceName; NanMatchAlg discoveryMatchIndicator; vec serviceSpecificInfo; vec extendedServiceSpecificInfo; vec rxMatchFilter; vec txMatchFilter; bool useRssiThreshold; bool disableDiscoveryTerminationIndication; bool disableMatchExpirationIndication; bool disableFollowupReceivedIndication; NanDataPathSecurityConfig securityConfig; bool rangingRequired; uint32_t rangingIntervalMsec; bitfield configRangingIndications; uint16_t distanceIngressCm; uint16_t distanceEgressCm}

Configurations of NAN discovery sessions:common to publish and subscribe discovery.

Details
Members
sessionId
The ID of the discovery session being configured.A value of 0 specifies a request to create a new discovery session.The new discovery session ID is returned with |IWifiNanIfaceEventCallback.notifyStartPublishResponse| or |IWifiNanIfaceEventCallback.notifyStartSubscribeResponse|.NAN Spec:Service Descriptor Attribute(SDA)/ Instance ID
ttlSec
The lifetime of the discovery session in seconds.A value of 0 means run forever or until canceled using |IWifiIface.stopPublishRequest| or |IWifiIface.stopSubscribeRequest|.
discoveryWindowPeriod
Indicates the interval between two Discovery Windows in which the device supporting the service is awake to transmit or receive the Service Discovery frames.Valid values of Awake DW Interval are:1, 2, 4, 8 and 16.A value of 0 will default to 1.Does not override |NanBandSpecificConfig.discoveryWindowIntervalVal| configurations if those are specified.
discoveryCount
The lifetime of the discovery session in number of transmitted SDF discovery packets.A value of 0 means forever or until canceled using |IWifiIface.stopPublishRequest| or |IWifiIface.stopSubscribeRequest|.
serviceName
UTF-8 encoded string identifying the service.Max length:|NanCapabilities.maxServiceNameLen|.NAN Spec:The only acceptable single-byte UTF-8 symbols for a Service Name are alphanumeric values(A-Z, a-z, 0-9), the hyphen('-'), and the period('.'). All valid multi-byte UTF-8 characters are acceptable in a Service Name.
discoveryMatchIndicator
Specifies how often to trigger |IWifiNanIfaceEventCallback.eventMatch| when continuously discovering the same discovery session(with no changes).
serviceSpecificInfo
Arbitrary information communicated in discovery packets - there is no semantic meaning to these bytes.They are passed-through from publisher to subscriber as-is with no parsing.Max length:|NanCapabilities.maxServiceSpecificInfoLen|.NAN Spec:Service Descriptor Attribute(SDA)/ Service Info
extendedServiceSpecificInfo
Arbitrary information communicated in discovery packets - there is no semantic meaning to these bytes.They are passed-through from publisher to subscriber as-is with no parsing.Max length:|NanCapabilities.maxExtendedServiceSpecificInfoLen|.Spec:Service Descriptor Extension Attribute(SDEA)/ Service Info
rxMatchFilter
Ordered sequence of<length, value>pairs(|length| uses 1 byte and contains the number of bytes in the |value| field)which specify further match criteria(beyond the service name). The match behavior is specified in details in the NAN spec.Publisher:used in SOLICITED or SOLICITED_UNSOLICITED sessions.Subscriber:used in ACTIVE or PASSIVE sessions.Max length:|NanCapabilities.maxMatchFilterLen|.NAN Spec:matching_filter_rx
txMatchFilter
Ordered sequence of<length, value>pairs(|length| uses 1 byte and contains the number of bytes in the |value| field)which specify further match criteria(beyond the service name). The match behavior is specified in details in the NAN spec.Publisher:used if provided.Subscriber:used(if provided)only in ACTIVE sessions.Max length:|NanCapabilities.maxMatchFilterLen|.NAN Spec:matching_filter_tx and Service Descriptor Attribute(SDA)/ Matching Filter
useRssiThreshold
Specifies whether or not the discovery session uses the |NanBandSpecificConfig.rssiCloseProximity| value(configured in enable/configure requests)to filter out matched discovered peers.NAN Spec:Service Descriptor Attribute / Service Control / Discovery Range Limited.
disableDiscoveryTerminationIndication
Controls whether or not the |IWifiNanIfaceEventCallback.eventPublishTerminated|(for publish discovery sessions)or |IWifiNanIfaceEventCallback.eventSubscribeTerminated|(for subscribe discovery sessions)will be delivered.
disableMatchExpirationIndication
Controls whether or not the |IWifiNanIfaceEventCallback.eventMatchExpired| will be delivered.
disableFollowupReceivedIndication
Controls whether or not the |IWifiNanIfaceEventCallback.eventFollowupReceived| will be delivered.
securityConfig
Security configuration of data-paths created in the context of this discovery session.Security parameters can be overridden during the actual construction of the data-path - allowing individual data-paths to have unique PMKs or Passphrases.
rangingRequired
Specifies whether or not there is a ranging requirement in this discovery session.Ranging is only performed if all other match criteria with the peer are met.Ranging must be performed if both peers in the discovery session(publisher and subscriber)set this flag to true.Otherwise, if either peer sets this flag to false, ranging must not be performed and must not impact discovery decisions.Note:specifying that ranging is required also implies that this device must automatically accept ranging requests from peers.NAN Spec:Service Discovery Extension Attribute(SDEA)/ Control / Ranging Require.
rangingIntervalMsec
Interval in msec between two ranging measurements.Only relevant if |rangingRequired| is true.If the Awake DW interval specified either in |discoveryWindowPeriod| or in |NanBandSpecificConfig.discoveryWindowIntervalVal| is larger than the ranging interval then priority is given to Awake DW interval.
configRangingIndications
The type of ranging feedback to be provided by discovery session matches |IWifiNanIfaceEventCallback.eventMatch|.Only relevant if |rangingRequired| is true.
distanceIngressCm
The ingress and egress distance in cm.If ranging is enabled(|rangingEnabled| is true)then |configRangingIndications| is used to determine whether ingress and/or egress(or neither)are used to determine whether a match has occurred.NAN Spec:Service Discovery Extension Attribute(SDEA)/ Ingress & Egress Range Limit
distanceEgressCm

NanPublishRequest

struct NanPublishRequest {NanDiscoveryCommonConfig baseConfigs; NanPublishType publishType; NanTxType txType; bool autoAcceptDataPathRequests}

Publish request:specifies a publish discovery operation.

Details
Members
baseConfigs
Common configuration of discovery sessions.
publishType
The type of the publish discovery session.
txType
For publishType of |NanPublishType.SOLICITED| or |NanPublishType.UNSOLICITED_SOLICITED| specifies the type of transmission used for responding to the probing subscribe discovery peer.
autoAcceptDataPathRequests
Specifies whether data-path requests |IWifiNanIfaceEventCallback.eventDataPathRequest|(in the context of this discovery session)are automatically accepted(if true)- in which case the Responder must not call the |IWifiNanIface.respondToDataPathIndicationRequest| method and the device must automatically accept the data-path request and complete the negotiation.

NanSubscribeRequest

struct NanSubscribeRequest {NanDiscoveryCommonConfig baseConfigs; NanSubscribeType subscribeType; NanSrfType srfType; bool srfRespondIfInAddressSet; bool shouldUseSrf; bool isSsiRequiredForMatch; vec intfAddr}

Subscribe request:specifies a subscribe discovery operation.

Details
Members
baseConfigs
Common configuration of discovery sessions.
subscribeType
The type of the subscribe discovery session.
srfType
For |NanSubscribeType.ACTIVE| subscribe discovery sessions specify how the Service Response Filter(SRF)attribute is populated.Relevant only if |shouldUseSrf| is set to true.NAN Spec:Service Descriptor Attribute(SDA)/ Service Response Filter / SRF Control / SRF Type
srfRespondIfInAddressSet
Configure whether inclusion of an address in |intfAddr| indicates that those devices should respond or the reverse.Relevant only if |shouldUseSrf| is set to true and |srfType| is set to |NanSrfType.PARTIAL_MAC_ADDR|.NAN Spec:Service Descriptor Attribute(SDA)/ Service Response Filter / SRF Control / Include
shouldUseSrf
Control whether the Service Response Filter(SRF)is used.NAN Spec:Service Descriptor Attribute(SDA)/ Service Control / Service Response Filter Present
isSsiRequiredForMatch
Control whether the presence of |NanDiscoveryCommonConfig.serviceSpecificInfo| data is needed in the publisher in order to trigger service discovery, i.e.a |IWifiNanIfaceEventCallback.eventMatch|.The test is for presence of data - not for the specific contents of the data.
intfAddr
NAN Interface Addresses constituting the Service Response Filter(SRF). Max length(number of addresses): |NanCapabilities.maxSubscribeInterfaceAddresses|.NAN Spec:Service Descriptor Attribute(SDA)/ Service Response Filter / Address Set

NanTransmitFollowupRequest

struct NanTransmitFollowupRequest {uint8_t discoverySessionId; uint32_t peerId; MacAddress addr; bool isHighPriority; bool shouldUseDiscoveryWindow; vec serviceSpecificInfo; vec extendedServiceSpecificInfo; bool disableFollowupResultIndication}

Transmit follow up message request.

Details
Members
discoverySessionId
ID of an active publish or subscribe discovery session.Follow-up message is transmitted in the context of the discovery session.NAN Spec:Service Descriptor Attribute(SDA)/ Instance ID
peerId
ID of the peer.Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or |IWifiNanIfaceEventCallback.eventFollowupReceived|.
addr
MAC address of the peer.Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or |IWifiNanIfaceEventCallback.eventFollowupReceived|.
isHighPriority
Should the follow-up message be transmitted with a high priority.
shouldUseDiscoveryWindow
Should the follow-up message be transmitted in a discovery window(true)or a further availability window(false).
serviceSpecificInfo
Arbitrary information communicated to the peer - there is no semantic meaning to these bytes.They are passed-through from sender to receiver as-is with no parsing.Max length:|NanCapabilities.maxServiceSpecificInfoLen|.NAN Spec:Service Descriptor Attribute(SDA)/ Service Info
extendedServiceSpecificInfo
Arbitrary information communicated in discovery packets - there is no semantic meaning to these bytes.They are passed-through from publisher to subscriber as-is with no parsing.Max length:|NanCapabilities.maxExtendedServiceSpecificInfoLen|.Spec:Service Descriptor Extension Attribute(SDEA)/ Service Info
disableFollowupResultIndication
Disable |IWifiNanIfaceEventCallback.eventTransmitFollowup| - i.e.do not get indication on whether the follow-up was transmitted and received successfully.

NanInitiateDataPathRequest

struct NanInitiateDataPathRequest {uint32_t peerId; MacAddress peerDiscMacAddr; NanDataPathChannelCfg channelRequestType; WifiChannelInMhz channel; string ifaceName; NanDataPathSecurityConfig securityConfig; vec appInfo; vec serviceNameOutOfBand}

Data Path Initiator requesting a data-path.

Details
Members
peerId
ID of the peer.Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or |IWifiNanIfaceEventCallback.eventFollowupReceived|.
peerDiscMacAddr
NAN management interface MAC address of the peer.Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or |IWifiNanIfaceEventCallback.eventFollowupReceived|.
channelRequestType
Config flag for channel request.
channel
Channel frequency in MHz to start data-path.Not relevant if |channelRequestType| is |NanDataPathChannelCfg.CHANNEL_NOT_REQUESTED|.
ifaceName
NAN data interface name on which this data-path session is to be initiated.This must be an interface created using |IWifiNanIface.createDataInterfaceRequest|.
securityConfig
Security configuration of the requested data-path.
appInfo
Arbitrary information communicated to the peer as part of the data-path setup process - there is no semantic meaning to these bytes.They are passed-through from sender to receiver as-is with no parsing.Max length:|NanCapabilities.maxAppInfoLen|.NAN Spec:Data Path Attributes / NDP Attribute / NDP Specific Info
serviceNameOutOfBand
A service name to be used with |passphrase| to construct a Pairwise Master Key(PMK)for the data-path.Only relevant when a data-path is requested which is not associated with a NAN discovery session - e.g.using out-of-band discovery.Constraints:same as |NanDiscoveryCommonConfig.serviceName| NAN Spec:Appendix:Mapping pass-phrase to PMK for NCS-SK Cipher Suites

NanRespondToDataPathIndicationRequest

struct NanRespondToDataPathIndicationRequest {bool acceptRequest; uint32_t ndpInstanceId; string ifaceName; NanDataPathSecurityConfig securityConfig; vec appInfo; vec serviceNameOutOfBand}

Response to a data-path request from a peer.

Details
Members
acceptRequest
Accept(true)or reject(false)the request.NAN Spec:Data Path Attributes / NDP Attribute / Type and Status
ndpInstanceId
ID of the data-path(NDP)for which we're responding - obtained as part of the request in |IWifiNanIfaceEventCallback.eventDataPathRequest|.
ifaceName
NAN data interface name on which this data-path session is to be started.This must be an interface created using |IWifiNanIface.createDataInterfaceRequest|.
securityConfig
Security configuration of the requested data-path.
appInfo
Arbitrary information communicated to the peer as part of the data-path setup process - there is no semantic meaning to these bytes.They are passed-through from sender to receiver as-is with no parsing.Max length:|NanCapabilities.maxAppInfoLen|.NAN Spec:Data Path Attributes / NDP Attribute / NDP Specific Info
serviceNameOutOfBand
A service name to be used with |passphrase| to construct a Pairwise Master Key(PMK)for the data-path.Only relevant when a data-path is requested which is not associated with a NAN discovery session - e.g.using out-of-band discovery.Constraints:same as |NanDiscoveryCommonConfig.serviceName| NAN Spec:Appendix:Mapping pass-phrase to PMK for NCS-SK Cipher Suites

NanCapabilities

struct NanCapabilities {uint32_t maxConcurrentClusters; uint32_t maxPublishes; uint32_t maxSubscribes; uint32_t maxServiceNameLen; uint32_t maxMatchFilterLen; uint32_t maxTotalMatchFilterLen; uint32_t maxServiceSpecificInfoLen; uint32_t maxExtendedServiceSpecificInfoLen; uint32_t maxNdiInterfaces; uint32_t maxNdpSessions; uint32_t maxAppInfoLen; uint32_t maxQueuedTransmitFollowupMsgs; uint32_t maxSubscribeInterfaceAddresses; bitfield supportedCipherSuites}

NDP Capabilities response.

Details
Members
maxConcurrentClusters
Maximum number of clusters which the device can join concurrently.
maxPublishes
Maximum number of concurrent publish discovery sessions.
maxSubscribes
Maximum number of concurrent subscribe discovery sessions.
maxServiceNameLen
Maximum length(in bytes)of service name.
maxMatchFilterLen
Maximum length(in bytes)of individual match filters.
maxTotalMatchFilterLen
Maximum length(in bytes)of aggregate match filters across all active sessions.
maxServiceSpecificInfoLen
Maximum length(in bytes)of the service specific info field.
maxExtendedServiceSpecificInfoLen
Maximum length(in bytes)of the extended service specific info field.
maxNdiInterfaces
Maximum number of data interfaces(NDI)which can be created concurrently on the device.
maxNdpSessions
Maximum number of data paths(NDP)which can be created concurrently on each individual data interface(NDI).
maxAppInfoLen
Maximum length(in bytes)of application info field(used in data-path negotiations).
maxQueuedTransmitFollowupMsgs
Maximum number of transmitted followup messages which can be queued by the firmware.
maxSubscribeInterfaceAddresses
Maximum number MAC interface addresses which can be specified to a subscribe discovery session.
supportedCipherSuites
The set of supported Cipher suites.The |NanCipherSuiteType| bit fields are used.

NanMatchInd

struct NanMatchInd {uint8_t discoverySessionId; uint32_t peerId; MacAddress addr; vec serviceSpecificInfo; vec extendedServiceSpecificInfo; vec matchFilter; bool matchOccuredInBeaconFlag; bool outOfResourceFlag; uint8_t rssiValue; NanCipherSuiteType peerCipherType; bool peerRequiresSecurityEnabledInNdp; bool peerRequiresRanging; uint32_t rangingMeasurementInCm; bitfield rangingIndicationType}

Match indication structure

Details
Members
discoverySessionId
Publish or subscribe discovery session ID of an existing discovery session.NAN Spec:Service Descriptor Attribute(SDA)/ Instance ID
peerId
A unique ID of the peer.Can be subsequently used in |IWifiNanIface.transmitFollowupRequest| or to set up a data-path.
addr
The NAN Discovery(management)MAC address of the peer.
serviceSpecificInfo
The arbitrary information contained in the |NanDiscoveryCommonConfig.serviceSpecificInfo| of the peer's discovery session configuration.Max length:|NanCapabilities.maxServiceSpecificInfoLen|.NAN Spec:Service Descriptor Attribute(SDA)/ Service Info
extendedServiceSpecificInfo
Arbitrary information communicated in discovery packets - there is no semantic meaning to these bytes.They are passed-through from publisher to subscriber as-is with no parsing.Max length:|NanCapabilities.maxExtendedServiceSpecificInfoLen|.Spec:Service Descriptor Extension Attribute(SDEA)/ Service Info
matchFilter
The match filter from the discovery packet(publish or subscribe)which caused service discovery.Matches the peer's |NanDiscoveryCommonConfig.txMatchFilter|.Max length:|NanCapabilities.maxMatchFilterLen|.NAN Spec:Service Descriptor Attribute(SDA)/ Matching Filter
matchOccuredInBeaconFlag
Indicates the type of discovery:true if match occurred on a Beacon frame, false if the match occurred on a Service Discovery Frames(SDF).
outOfResourceFlag
Flag to indicate firmware is out of resource and that it can no longer track this Service Name.Indicates that while |IWifiNanIfaceEventCallback.eventMatch| will be received, the |NanDiscoveryCommonConfig.discoveryMatchIndicator| configuration will not be honored.
rssiValue
If RSSI filtering was enabled using |NanDiscoveryCommonConfig.useRssiThreshold| in discovery session setup then this field contains the received RSSI value.It will contain 0 if RSSI filtering was not enabled.RSSI values are returned without sign, e.g.-70dBm will be returned as 70.
peerCipherType
Cipher type for data-paths constructed in the context of this discovery session.Valid if |peerRequiresSecurityEnabledInNdp| is true.
peerRequiresSecurityEnabledInNdp
Indicates whether or not the peer requires security enabled in any data-path(NDP)constructed in the context of this discovery session.The |cipherType| specifies the cipher type for such data-paths.NAN Spec:Service Discovery Extension Attribute(SDEA)/ Control / Security Required
peerRequiresRanging
Indicates whether or not the peer requires(and hence allows)ranging in the context of this discovery session.Note that ranging is only performed if all other match criteria with the peer are met.NAN Spec:Service Discovery Extension Attribute(SDEA)/ Control / Ranging Require.
rangingMeasurementInCm
Ranging indication supersedes the NanMatchAlg specification.Ex:If NanMatchAlg is MATCH_ONCE, but ranging indications is continuous then continuous match notifications will be received(with ranging information). Ranging indication data is provided if Ranging required is enabled in the discovery specification and:1)continuous ranging specified.2)ingress/egress specified and:- notify once for ingress >= ingress_distance and egress <= egress_distance, - same for ingress_egress_both If the Awake DW intervals are larger than the ranging intervals then priority is given to the device DW intervals.
If ranging was required and executed contains the distance to the peer in CM.The |rangingIndicationType| field specifies the event which triggered ranging.
rangingIndicationType
The ranging event(s)which triggered the ranging.E.g.can indicate that continuous ranging was requested, or else that an ingress event occurred.

NanFollowupReceivedInd

struct NanFollowupReceivedInd {uint8_t discoverySessionId; uint32_t peerId; MacAddress addr; bool receivedInFaw; vec serviceSpecificInfo; vec extendedServiceSpecificInfo}

Followup message received from peer indication structure.

Details
Members
discoverySessionId
Discovery session(publish or subscribe)ID of a previously created discovery session.The message is received in the context of this discovery session.NAN Spec:Service Descriptor Attribute(SDA)/ Instance ID
peerId
A unique ID of the peer.Can be subsequently used in |IWifiNanIface.transmitFollowupRequest| or to set up a data-path.
addr
The NAN Discovery(management)MAC address of the peer.
receivedInFaw
Indicates whether received in a further availability window(FAW)if true, or in a discovery window(DW)if false.
serviceSpecificInfo
Received message from the peer - there is no semantic meaning to these bytes.They are passed-through from sender to receiver as-is with no parsing.Max length:|NanCapabilities.maxServiceSpecificInfoLen|.NAN Spec:Service Descriptor Attribute(SDA)/ Service Info
extendedServiceSpecificInfo
Arbitrary information communicated in discovery packets - there is no semantic meaning to these bytes.They are passed-through from publisher to subscriber as-is with no parsing.Max length:|NanCapabilities.maxExtendedServiceSpecificInfoLen|.Spec:Service Descriptor Extension Attribute(SDEA)/ Service Info

NanClusterEventInd

struct NanClusterEventInd {NanClusterEventType eventType; MacAddress addr}

Cluster event indication structure:triggered on events impacting how this device is visible to peers - cluster forming, joining a new cluster, or changing of the MAC address.

Details
Members
eventType
Event type causing the cluster event indication to be triggered.
addr
MAC Address associated with the corresponding event.

NanDataPathRequestInd

struct NanDataPathRequestInd {uint8_t discoverySessionId; MacAddress peerDiscMacAddr; uint32_t ndpInstanceId; bool securityRequired; vec appInfo}

NAN Data path request Indication Message structure.Event indication received by an intended Responder when a Nan Data request initiated by an Initiator.

Details
Members
discoverySessionId
ID of an active publish or subscribe discovery session - the data-path request is in the context of this discovery session.NAN Spec:Data Path Attributes / NDP Attribute / Publish ID
peerDiscMacAddr
MAC address of the Initiator peer.This is the MAC address of the peer's management/discovery NAN interface.
ndpInstanceId
ID of the data-path - used to identify the data-path in further negotiation/APIs.
securityRequired
Specifies whether or not security is required by the peer for the data-path being created.NAN Spec:Data Path Attributes / NDP Attribute / NDP Control / Security Present
appInfo
Arbitrary information communicated from the peer as part of the data-path setup process - there is no semantic meaning to these bytes.They are passed-through from sender to receiver as-is with no parsing.Max length:|NanCapabilities.maxAppInfoLen|.NAN Spec:Data Path Attributes / NDP Attribute / NDP Specific Info

NanDataPathConfirmInd

struct NanDataPathConfirmInd {uint32_t ndpInstanceId; bool dataPathSetupSuccess; MacAddress peerNdiMacAddr; vec appInfo; WifiNanStatus status}

NAN Data path confirmation Indication structure.Event indication is received on both initiator and responder side when negotiation for a data-path finish:on success or failure.

Details
Members
ndpInstanceId
ID of the data-path.
dataPathSetupSuccess
Indicates whether the data-path setup succeeded(true)or failed(false).
peerNdiMacAddr
MAC address of the peer's data-interface(not it's management/discovery interface).
appInfo
Arbitrary information communicated from the peer as part of the data-path setup process - there is no semantic meaning to these bytes.They are passed-through from sender to receiver as-is with no parsing.Max length:|NanCapabilities.maxAppInfoLen|.NAN Spec:Data Path Attributes / NDP Attribute / NDP Specific Info
status
Failure reason if |dataPathSetupSuccess| is false.

RttConfig

struct RttConfig {MacAddress addr; RttType type; RttPeerType peer; WifiChannelInfo channel; uint32_t burstPeriod; uint32_t numBurst; uint32_t numFramesPerBurst; uint32_t numRetriesPerRttFrame; /** numRetriesPerFtmr; bool mustRequestLci; bool mustRequestLcr; uint32_t burstDuration; RttPreamble preamble; RttBw bw}

RTT configuration.

Details
Members
addr
Peer device mac address.
type
1-sided or 2-sided RTT.
peer
Optional - peer device hint(STA, P2P, AP).
channel
Required for STA-AP mode, optional for P2P, NBD etc.
burstPeriod
Time interval between bursts(units:100 ms). Applies to 1-sided and 2-sided RTT multi-burst requests.Range:0-31, 0:no preference by initiator(2-sided RTT).
numBurst
Total number of RTT bursts to be executed.It will be specified in the same way as the parameter "Number of Burst Exponent" found in the FTM frame format.It applies to both:1-sided RTT and 2-sided RTT.Valid values are 0 to 15 as defined in 802.11mc std.0 means single shot The implication of this parameter on the maximum number of RTT results is the following:for 1-sided RTT:max num of RTT results =(2^num_burst)*(num_frames_per_burst)for 2-sided RTT:max num of RTT results =(2^num_burst)*(num_frames_per_burst - 1 )
numFramesPerBurst
Num of frames per burst.Minimum value = 1, Maximum value = 31 For 2-sided this equals the number of FTM frames to be attempted in a single burst.This also equals the number of FTM frames that the initiator will request that the responder send in a single frame.
numRetriesPerRttFrame
Number of retries for a failed RTT frame.Applies to 1-sided RTT only.Minimum value = 0, Maximum value = 3
numRetriesPerFtmr
Following fields are only valid for 2-side RTT.
mustRequestLci
Whether to request location civic info or not.
mustRequestLcr
Whether to request location civic records or not.
burstDuration
Applies to 1-sided and 2-sided RTT.Valid values will be 2-11 and 15 as specified by the 802.11mc std for the FTM parameter burst duration.In a multi-burst request, if responder overrides with larger value, the initiator will return failure.In a single-burst request if responder overrides with larger value, the initiator will sent TMR_STOP to terminate RTT at the end of the burst_duration it requested.
preamble
RTT preamble to be used in the RTT frames.
bw
RTT BW to be used in the RTT frames.

RttResult

struct RttResult {MacAddress addr; uint32_t burstNum; uint32_t measurementNumber; uint32_t successNumber; uint8_t numberPerBurstPeer; RttStatus status; uint8_t retryAfterDuration; RttType type; Rssi rssi; Rssi rssiSpread; WifiRateInfo txRate; WifiRateInfo rxRate; TimeSpanInPs rtt; TimeSpanInPs rttSd; TimeSpanInPs rttSpread; int32_t distanceInMm; int32_t distanceSdInMm; int32_t distanceSpreadInMm; TimeStampInUs timeStampInUs; uint32_t burstDurationInMs; uint32_t negotiatedBurstNum; WifiInformationElement lci; WifiInformationElement lcr}

RTT results.

Details
Members
addr
Peer device mac address.
burstNum
Burst number in a multi-burst request.
measurementNumber
Total RTT measurement frames attempted.
successNumber
Total successful RTT measurement frames.
numberPerBurstPeer
Maximum number of "FTM frames per burst" supported by the responder STA.Applies to 2-sided RTT only.If reponder overrides with larger value:- for single-burst request initiator will truncate the larger value and send a TMR_STOP after receiving as many frames as originally requested.- for multi-burst request, initiator will return failure right away.
status
Ranging status.
retryAfterDuration
When status == RTT_STATUS_FAIL_BUSY_TRY_LATER, this will be the time provided by the responder as to when the request can be tried again.Applies to 2-sided RTT only.In sec, 1-31sec.
type
RTT type.
rssi
Average rssi in 0.5 dB steps e.g.143 implies -71.5 dB.
rssiSpread
Rssi spread in 0.5 dB steps e.g.5 implies 2.5 dB spread(optional).
txRate
1-sided RTT:TX rate of RTT frame.2-sided RTT:TX rate of initiator's Ack in response to FTM frame.
rxRate
1-sided RTT:TX rate of Ack from other side.2-sided RTT:TX rate of FTM frame coming from responder.
rtt
Round trip time in picoseconds
rttSd
Rtt standard deviation in picoseconds.
rttSpread
Difference between max and min rtt times recorded in picoseconds.
distanceInMm
Distance in mm(optional).
distanceSdInMm
Standard deviation in mm(optional).
distanceSpreadInMm
Difference between max and min distance recorded in mm(optional).
timeStampInUs
Time of the measurement(in microseconds since boot).
burstDurationInMs
in ms, actual time taken by the FW to finish one burst measurement.Applies to 1-sided and 2-sided RTT.
negotiatedBurstNum
Number of bursts allowed by the responder.Applies to 2-sided RTT only.
lci
for 11mc only.
lcr
for 11mc only.

RttCapabilities

struct RttCapabilities {bool rttOneSidedSupported; bool rttFtmSupported; bool lciSupported; bool lcrSupported; bool responderSupported; bitfield preambleSupport; bitfield bwSupport; uint8_t mcVersion}

RTT Capabilities.

Details
Members
rttOneSidedSupported
if 1-sided rtt data collection is supported.
rttFtmSupported
if ftm rtt data collection is supported.
lciSupported
if initiator supports LCI request.Applies to 2-sided RTT.
lcrSupported
if initiator supports LCR request.Applies to 2-sided RTT.
responderSupported
if 11mc responder mode is supported.
preambleSupport
Bit mask indicates what preamble is supported by initiator.Combination of |RttPreamble| values.
bwSupport
Bit mask indicates what BW is supported by initiator.Combination of |RttBw| values.
mcVersion
Draft 11mc spec version supported by chip.For instance, version 4.0 must be 40 and version 4.3 must be 43 etc.

RttLciInformation

struct RttLciInformation {int64_t latitude; int64_t longitude; int32_t altitude; uint8_t latitudeUnc; uint8_t longitudeUnc; uint8_t altitudeUnc; /** motionPattern; int32_t floor; int32_t heightAboveFloor; int32_t heightUnc}

Movement pattern unknown.

Details
Members
latitude
latitude in degrees * 2^25, 2's complement.
longitude
longitude in degrees * 2^25, 2's complement.
altitude
Altitude in units of 1/256 m.
latitudeUnc
As defined in Section 2.3.2 of IETF RFC 6225.
longitudeUnc
As defined in Section 2.3.2 of IETF RFC 6225.
altitudeUnc
As defined in Section 2.4.5 from IETF RFC 6225.
motionPattern
Following element for configuring the Z subelement.
floor
Floor in units of 1/16th of floor.0x80000000 if unknown.
heightAboveFloor
in units of 1/64 m.
heightUnc
in units of 1/64 m.0 if unknown

RttLcrInformation

struct RttLcrInformation {int8_t countryCode; string civicInfo}
Details
Members
countryCode
Country code symbol.
civicInfo
Civic info to be copied in FTM frame.

RttResponder

struct RttResponder {WifiChannelInfo channel; RttPreamble preamble}

RTT Responder information

Details
Members
channel
preamble

WifiDebugRingBufferStatus

struct WifiDebugRingBufferStatus {string ringName; uint32_t flags; WifiRingBufferId ringId; uint32_t sizeInBytes; uint32_t freeSizeInBytes; uint32_t verboseLevel}

Struct describing each debug ring buffer supported by the device.

Details
Members
ringName
Name of this debug ring buffer.
flags
Combination of |WifiDebugRingBufferFlags| values.
ringId
Unique integer representing the ring.
sizeInBytes
Total memory size allocated for the buffer.
freeSizeInBytes
Amount of free space in the buffer.
verboseLevel
Verbose level for ring buffer.

WifiDebugPacketFateFrameInfo

struct WifiDebugPacketFateFrameInfo {WifiDebugPacketFateFrameType frameType; uint64_t frameLen; TimeStampInUs driverTimestampUsec; TimeStampInUs firmwareTimestampUsec; vec frameContent}

Information regarding the frame transmitted/received.

Details
Members
frameType
The type of MAC-layer frame that this frame_info holds.- For data frames, use FRAME_TYPE_ETHERNET_II.- For management frames, use FRAME_TYPE_80211_MGMT.- If the type of the frame is unknown, use FRAME_TYPE_UNKNOWN.
frameLen
The number of bytes included in |frameContent|.If the frame contents are missing(e.g.RX frame dropped in firmware), |frameLen| must be set to 0.
driverTimestampUsec
Host clock when this frame was received by the driver(either outbound from the host network stack, or inbound from the firmware). - The timestamp must be taken from a clock which includes time the host spent suspended(e.g.ktime_get_boottime()). - If no host timestamp is available(e.g.RX frame was dropped in firmware), this field must be set to 0.
firmwareTimestampUsec
Firmware clock when this frame was received by the firmware(either outbound from the host, or inbound from a remote station). - The timestamp must be taken from a clock which includes time firmware spent suspended(if applicable). - If no firmware timestamp is available(e.g.TX frame was dropped by driver), this field must be set to 0.- Consumers of |frameInfo| must not assume any synchronization between driver and firmware clocks.
frameContent
Actual frame content.This is the raw bytes of the corresponding packet.- Should be provided for TX frames originated by the host.- Should be provided for RX frames received by the driver.- Optionally provided for TX frames originated by firmware .(At discretion of HAL implementation .)- Optionally provided for RX frames dropped in firmware .(At discretion of HAL implementation .)- If frame content is not provided, |frameLen| must be set to 0.

WifiDebugTxPacketFateReport

struct WifiDebugTxPacketFateReport {WifiDebugTxPacketFate fate; WifiDebugPacketFateFrameInfo frameInfo}

Struct describing packet fate report for each Tx frame.

Details
Members
fate
frameInfo

WifiDebugRxPacketFateReport

struct WifiDebugRxPacketFateReport {WifiDebugRxPacketFate fate; WifiDebugPacketFateFrameInfo frameInfo}

Struct describing packet fate report for each Rx frame.

Details
Members
fate
frameInfo

WifiDebugHostWakeReasonRxPacketDetails

struct WifiDebugHostWakeReasonRxPacketDetails {uint32_t rxUnicastCnt; uint32_t rxMulticastCnt; uint32_t rxBroadcastCnt}

Struct capturing the count of all rx packets that caused host wakeup.

Details
Members
rxUnicastCnt
Total rx unicast packet which woke up host.
rxMulticastCnt
Total rx multicast packet which woke up host.
rxBroadcastCnt
Total rx broadcast packet which woke up host.

WifiDebugHostWakeReasonRxMulticastPacketDetails

struct WifiDebugHostWakeReasonRxMulticastPacketDetails {uint32_t ipv4RxMulticastAddrCnt; uint32_t ipv6RxMulticastAddrCnt; uint32_t otherRxMulticastAddrCnt}

Struct capturing the count of all rx multicast packets that caused host wakeup.

Details
Members
ipv4RxMulticastAddrCnt
Rx wake packet was ipv4 multicast.
ipv6RxMulticastAddrCnt
Rx wake packet was ipv6 multicast.
otherRxMulticastAddrCnt
Rx wake packet was non-ipv4 and non-ipv6.

WifiDebugHostWakeReasonRxIcmpPacketDetails

struct WifiDebugHostWakeReasonRxIcmpPacketDetails {uint32_t icmpPkt; uint32_t icmp6Pkt; uint32_t icmp6Ra; uint32_t icmp6Na; uint32_t icmp6Ns}

Struct capturing the count of all rx ICMP packets that caused host wakeup.

Details
Members
icmpPkt
Wake icmp packet count.
icmp6Pkt
Wake icmp6 packet count.
icmp6Ra
Wake icmp6 RA packet count.
icmp6Na
Wake icmp6 NA packet count.
icmp6Ns
Wake icmp6 NS packet count.

WifiDebugHostWakeReasonStats

struct WifiDebugHostWakeReasonStats {uint32_t totalCmdEventWakeCnt; vec cmdEventWakeCntPerType; uint32_t totalDriverFwLocalWakeCnt; vec driverFwLocalWakeCntPerType; uint32_t totalRxPacketWakeCnt; WifiDebugHostWakeReasonRxPacketDetails rxPktWakeDetails; WifiDebugHostWakeReasonRxMulticastPacketDetails rxMulticastPkWakeDetails; WifiDebugHostWakeReasonRxIcmpPacketDetails rxIcmpPkWakeDetails}

Structure capturing the count of all the wireless related host wakeup.This is used to capture all the reasons why the host processor(WLAN driver)was woken up by the WLAN firmware.These stats may be used to debug any power issues caused due to frequent wakeup of the host processor by the WLAN firmware.

Details
Members
totalCmdEventWakeCnt
Total count of cmd/event wakes.These must account for all wakeups due to WLAN management commands/events received over the air.
cmdEventWakeCntPerType
Vector of wake counts per cmd/event type.The number of command types and their meaning is only understood by the vendor.
totalDriverFwLocalWakeCnt
Total count of drive/fw wakes.These must account for all wakeups due to local driver/firmware interactions.These include all vendor implementation specific interactions like any heart-beat monitoring, Bus management, etc.
driverFwLocalWakeCntPerType
Vector of wake counts per driver/firmware interaction type.The number of command types and their meaning is only understood by the vendor.
totalRxPacketWakeCnt
Total data rx packets, that woke up host.
rxPktWakeDetails
rxMulticastPkWakeDetails
rxIcmpPkWakeDetails