|
|
|
|
@@ -40,32 +40,32 @@ import @1.0::WifiRatePreamble;
|
|
|
|
|
* Wifi bands defined in 80211 spec.
|
|
|
|
|
*/
|
|
|
|
|
enum WifiBand : @1.0::WifiBand {
|
|
|
|
|
/**
|
|
|
|
|
* 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_6GHZ = 8,
|
|
|
|
|
/**
|
|
|
|
|
* 5 GHz no DFS + 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_5GHZ_6GHZ = 10,
|
|
|
|
|
/**
|
|
|
|
|
* 2.4 GHz + 5 GHz no DFS + 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_24GHZ_5GHZ_6GHZ = 11,
|
|
|
|
|
/**
|
|
|
|
|
* 2.4 GHz + 5 GHz with DFS + 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_24GHZ_5GHZ_WITH_DFS_6GHZ = 15
|
|
|
|
|
/**
|
|
|
|
|
* 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_6GHZ = 8,
|
|
|
|
|
/**
|
|
|
|
|
* 5 GHz no DFS + 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_5GHZ_6GHZ = 10,
|
|
|
|
|
/**
|
|
|
|
|
* 2.4 GHz + 5 GHz no DFS + 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_24GHZ_5GHZ_6GHZ = 11,
|
|
|
|
|
/**
|
|
|
|
|
* 2.4 GHz + 5 GHz with DFS + 6 GHz.
|
|
|
|
|
*/
|
|
|
|
|
BAND_24GHZ_5GHZ_WITH_DFS_6GHZ = 15,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The discovery bands supported by NAN.
|
|
|
|
|
*/
|
|
|
|
|
enum NanBandIndex : @1.0::NanBandIndex {
|
|
|
|
|
/**
|
|
|
|
|
* Index for 6 GHz band.
|
|
|
|
|
*/
|
|
|
|
|
NAN_BAND_6GHZ = 2,
|
|
|
|
|
/**
|
|
|
|
|
* Index for 6 GHz band.
|
|
|
|
|
*/
|
|
|
|
|
NAN_BAND_6GHZ = 2,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@@ -93,147 +93,176 @@ enum RttPreamble : @1.0::RttPreamble {
|
|
|
|
|
* not intended for normal operational mode.
|
|
|
|
|
*/
|
|
|
|
|
struct NanDebugConfig {
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
bool validClusterIdVals;
|
|
|
|
|
uint16_t clusterIdBottomRangeVal;
|
|
|
|
|
uint16_t clusterIdTopRangeVal;
|
|
|
|
|
/**
|
|
|
|
|
* NAN management interface address, if specified (|validIntfAddrVal| is true) then overrides any
|
|
|
|
|
* other configuration (specifically the default randomization configured by
|
|
|
|
|
* |NanConfigRequest.macAddressRandomizationIntervalSec|).
|
|
|
|
|
*/
|
|
|
|
|
bool validIntfAddrVal;
|
|
|
|
|
MacAddress intfAddrVal;
|
|
|
|
|
/**
|
|
|
|
|
* Combination of the 24 bit Organizationally Unique ID (OUI) and the 8 bit OUI Type.
|
|
|
|
|
* Used if |validOuiVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validOuiVal;
|
|
|
|
|
uint32_t ouiVal;
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
bool validRandomFactorForceVal;
|
|
|
|
|
uint8_t randomFactorForceVal;
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
bool validHopCountForceVal;
|
|
|
|
|
uint8_t hopCountForceVal;
|
|
|
|
|
/**
|
|
|
|
|
* Frequency in MHz to of the discovery channel in the specified band. Indexed by |NanBandIndex|.
|
|
|
|
|
* Used if the |validDiscoveryChannelVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validDiscoveryChannelVal;
|
|
|
|
|
WifiChannelInMhz[3] discoveryChannelMhzVal;
|
|
|
|
|
/**
|
|
|
|
|
* Specifies whether sync/discovery beacons are transmitted in the specified band. Indexed by
|
|
|
|
|
* |NanBandIndex|. Used if the |validUseBeaconsInBandVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validUseBeaconsInBandVal;
|
|
|
|
|
bool[3] useBeaconsInBandVal;
|
|
|
|
|
/**
|
|
|
|
|
* Specifies whether SDF (service discovery frames) are transmitted in the specified band. Indexed
|
|
|
|
|
* by |NanBandIndex|. Used if the |validUseSdfInBandVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validUseSdfInBandVal;
|
|
|
|
|
bool[3] useSdfInBandVal;
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
bool validClusterIdVals;
|
|
|
|
|
|
|
|
|
|
uint16_t clusterIdBottomRangeVal;
|
|
|
|
|
|
|
|
|
|
uint16_t clusterIdTopRangeVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* NAN management interface address, if specified (|validIntfAddrVal| is true) then overrides any
|
|
|
|
|
* other configuration (specifically the default randomization configured by
|
|
|
|
|
* |NanConfigRequest.macAddressRandomizationIntervalSec|).
|
|
|
|
|
*/
|
|
|
|
|
bool validIntfAddrVal;
|
|
|
|
|
|
|
|
|
|
MacAddress intfAddrVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Combination of the 24 bit Organizationally Unique ID (OUI) and the 8 bit OUI Type.
|
|
|
|
|
* Used if |validOuiVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validOuiVal;
|
|
|
|
|
|
|
|
|
|
uint32_t ouiVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
bool validRandomFactorForceVal;
|
|
|
|
|
|
|
|
|
|
uint8_t randomFactorForceVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
bool validHopCountForceVal;
|
|
|
|
|
|
|
|
|
|
uint8_t hopCountForceVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Frequency in MHz to of the discovery channel in the specified band. Indexed by |NanBandIndex|.
|
|
|
|
|
* Used if the |validDiscoveryChannelVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validDiscoveryChannelVal;
|
|
|
|
|
|
|
|
|
|
WifiChannelInMhz[3] discoveryChannelMhzVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specifies whether sync/discovery beacons are transmitted in the specified band. Indexed by
|
|
|
|
|
* |NanBandIndex|. Used if the |validUseBeaconsInBandVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validUseBeaconsInBandVal;
|
|
|
|
|
|
|
|
|
|
bool[3] useBeaconsInBandVal;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specifies whether SDF (service discovery frames) are transmitted in the specified band. Indexed
|
|
|
|
|
* by |NanBandIndex|. Used if the |validUseSdfInBandVal| is set to true.
|
|
|
|
|
*/
|
|
|
|
|
bool validUseSdfInBandVal;
|
|
|
|
|
|
|
|
|
|
bool[3] useSdfInBandVal;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Configuration parameters of NAN: used when enabling and re-configuring a NAN cluster.
|
|
|
|
|
*/
|
|
|
|
|
struct NanConfigRequest {
|
|
|
|
|
/**
|
|
|
|
|
* Master preference of this device.
|
|
|
|
|
* NAN Spec: Master Indication Attribute / Master Preference
|
|
|
|
|
*/
|
|
|
|
|
uint8_t masterPref;
|
|
|
|
|
/**
|
|
|
|
|
* Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
|
|
|
|
|
* for |NanClusterEventType.DISCOVERY_MAC_ADDRESS_CHANGED|.
|
|
|
|
|
*/
|
|
|
|
|
bool disableDiscoveryAddressChangeIndication;
|
|
|
|
|
/**
|
|
|
|
|
* Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
|
|
|
|
|
* for |NanClusterEventType.STARTED_CLUSTER|.
|
|
|
|
|
*/
|
|
|
|
|
bool disableStartedClusterIndication;
|
|
|
|
|
/**
|
|
|
|
|
* Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
|
|
|
|
|
* for |NanClusterEventType.JOINED_CLUSTER|.
|
|
|
|
|
*/
|
|
|
|
|
bool disableJoinedClusterIndication;
|
|
|
|
|
/**
|
|
|
|
|
* Control whether publish service IDs are included in Sync/Discovery beacons.
|
|
|
|
|
* NAN Spec: Service ID List Attribute
|
|
|
|
|
*/
|
|
|
|
|
bool includePublishServiceIdsInBeacon;
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t numberOfPublishServiceIdsInBeacon;
|
|
|
|
|
/**
|
|
|
|
|
* Control whether subscribe service IDs are included in Sync/Discovery beacons.
|
|
|
|
|
* Spec: Subscribe Service ID List Attribute
|
|
|
|
|
*/
|
|
|
|
|
bool includeSubscribeServiceIdsInBeacon;
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t numberOfSubscribeServiceIdsInBeacon;
|
|
|
|
|
/**
|
|
|
|
|
* Number of samples used to calculate RSSI.
|
|
|
|
|
*/
|
|
|
|
|
uint16_t rssiWindowSize;
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
uint32_t macAddressRandomizationIntervalSec;
|
|
|
|
|
/**
|
|
|
|
|
* Additional configuration provided per band: indexed by |NanBandIndex|.
|
|
|
|
|
*/
|
|
|
|
|
NanBandSpecificConfig[3] bandSpecificConfig;
|
|
|
|
|
/**
|
|
|
|
|
* Master preference of this device.
|
|
|
|
|
* NAN Spec: Master Indication Attribute / Master Preference
|
|
|
|
|
*/
|
|
|
|
|
uint8_t masterPref;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
|
|
|
|
|
* for |NanClusterEventType.DISCOVERY_MAC_ADDRESS_CHANGED|.
|
|
|
|
|
*/
|
|
|
|
|
bool disableDiscoveryAddressChangeIndication;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
|
|
|
|
|
* for |NanClusterEventType.STARTED_CLUSTER|.
|
|
|
|
|
*/
|
|
|
|
|
bool disableStartedClusterIndication;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
|
|
|
|
|
* for |NanClusterEventType.JOINED_CLUSTER|.
|
|
|
|
|
*/
|
|
|
|
|
bool disableJoinedClusterIndication;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Control whether publish service IDs are included in Sync/Discovery beacons.
|
|
|
|
|
* NAN Spec: Service ID List Attribute
|
|
|
|
|
*/
|
|
|
|
|
bool includePublishServiceIdsInBeacon;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t numberOfPublishServiceIdsInBeacon;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Control whether subscribe service IDs are included in Sync/Discovery beacons.
|
|
|
|
|
* Spec: Subscribe Service ID List Attribute
|
|
|
|
|
*/
|
|
|
|
|
bool includeSubscribeServiceIdsInBeacon;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t numberOfSubscribeServiceIdsInBeacon;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of samples used to calculate RSSI.
|
|
|
|
|
*/
|
|
|
|
|
uint16_t rssiWindowSize;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
*/
|
|
|
|
|
uint32_t macAddressRandomizationIntervalSec;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Additional configuration provided per band: indexed by |NanBandIndex|.
|
|
|
|
|
*/
|
|
|
|
|
NanBandSpecificConfig[3] bandSpecificConfig;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Enable requests for NAN: start-up configuration |IWifiNanIface.enableRequest|.
|
|
|
|
|
*/
|
|
|
|
|
struct NanEnableRequest {
|
|
|
|
|
/**
|
|
|
|
|
* Enable operation in a specific band: indexed by |NanBandIndex|.
|
|
|
|
|
*/
|
|
|
|
|
bool[3] operateInBand;
|
|
|
|
|
/**
|
|
|
|
|
* Specify extent of cluster by specifying the max hop count.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t hopCountMax;
|
|
|
|
|
/**
|
|
|
|
|
* Configurations of NAN cluster operation. Can also be modified at run-time using
|
|
|
|
|
* |IWifiNanIface.configRequest|.
|
|
|
|
|
*/
|
|
|
|
|
NanConfigRequest configParams;
|
|
|
|
|
/**
|
|
|
|
|
* Non-standard configurations of NAN cluster operation - useful for debugging operations.
|
|
|
|
|
*/
|
|
|
|
|
NanDebugConfig debugConfigs;
|
|
|
|
|
/**
|
|
|
|
|
* Enable operation in a specific band: indexed by |NanBandIndex|.
|
|
|
|
|
*/
|
|
|
|
|
bool[3] operateInBand;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specify extent of cluster by specifying the max hop count.
|
|
|
|
|
*/
|
|
|
|
|
uint8_t hopCountMax;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Configurations of NAN cluster operation. Can also be modified at run-time using
|
|
|
|
|
* |IWifiNanIface.configRequest|.
|
|
|
|
|
*/
|
|
|
|
|
NanConfigRequest configParams;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Non-standard configurations of NAN cluster operation - useful for debugging operations.
|
|
|
|
|
*/
|
|
|
|
|
NanDebugConfig debugConfigs;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|