xref: /aosp_15_r20/hardware/interfaces/wifi/1.2/README-NAN.md (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard WorkerCopyright 2018 The Android Open Source Project
2*4d7e907cSAndroid Build Coastguard Worker
3*4d7e907cSAndroid Build Coastguard WorkerLicensed under the Apache License, Version 2.0 (the "License");
4*4d7e907cSAndroid Build Coastguard Workeryou may not use this file except in compliance with the License.
5*4d7e907cSAndroid Build Coastguard WorkerYou may obtain a copy of the License at
6*4d7e907cSAndroid Build Coastguard Worker
7*4d7e907cSAndroid Build Coastguard Worker      http://www.apache.org/licenses/LICENSE-2.0
8*4d7e907cSAndroid Build Coastguard Worker
9*4d7e907cSAndroid Build Coastguard WorkerUnless required by applicable law or agreed to in writing, software
10*4d7e907cSAndroid Build Coastguard Workerdistributed under the License is distributed on an "AS IS" BASIS,
11*4d7e907cSAndroid Build Coastguard WorkerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*4d7e907cSAndroid Build Coastguard WorkerSee the License for the specific language governing permissions and
13*4d7e907cSAndroid Build Coastguard Workerlimitations under the License.
14*4d7e907cSAndroid Build Coastguard Worker
15*4d7e907cSAndroid Build Coastguard Worker# Wi-Fi Aware (NAN) HAL API Usage
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard WorkerThe Wi-Fi Aware (NAN) HAL API is defined in (<i>hardware/interfaces/wifi/1.0/</i> and
18*4d7e907cSAndroid Build Coastguard Worker<i>hardware/interfaces/wifi/1.2/</i>):
19*4d7e907cSAndroid Build Coastguard Worker
20*4d7e907cSAndroid Build Coastguard Worker* IWifiNanIface.hal
21*4d7e907cSAndroid Build Coastguard Worker* IWifiNanIfaceEventCallback.hal
22*4d7e907cSAndroid Build Coastguard Worker* types.hal (structure definitions)
23*4d7e907cSAndroid Build Coastguard Worker
24*4d7e907cSAndroid Build Coastguard WorkerNote that the <i>1.2</i> HAL is supplemental to the <i>1.0</i> HAL - not a replacement.
25*4d7e907cSAndroid Build Coastguard Worker
26*4d7e907cSAndroid Build Coastguard WorkerThe Wi-Fi Aware (NAN) HAL API surface is very large - only a subset is used from the framework.
27*4d7e907cSAndroid Build Coastguard Worker
28*4d7e907cSAndroid Build Coastguard WorkerUnderstanding of the HAL API subset which is actively used by the Android framework can be deduced
29*4d7e907cSAndroid Build Coastguard Workerby reviewing framework code, specifically (<i>frameworks/opt/net/wifi/</i>):
30*4d7e907cSAndroid Build Coastguard Worker
31*4d7e907cSAndroid Build Coastguard Worker* WifiAwareNativeApi.java
32*4d7e907cSAndroid Build Coastguard Worker* WifiAwareNativeCallback.java
33*4d7e907cSAndroid Build Coastguard Worker
34*4d7e907cSAndroid Build Coastguard WorkerThe above framework files determine the API usage - and should be consulted as the authoritative
35*4d7e907cSAndroid Build Coastguard Workerreference. Please consult the primary HAL file for documentation - they will not be replicated
36*4d7e907cSAndroid Build Coastguard Workerin this document. APIs which are in the HAL but are not listed in this README file are not used by
37*4d7e907cSAndroid Build Coastguard Workerthe framework.
38*4d7e907cSAndroid Build Coastguard Worker
39*4d7e907cSAndroid Build Coastguard WorkerNote: the HAL API is translated to the legacy HAL API (<i>wifi_nan.h</i>). This README file covers
40*4d7e907cSAndroid Build Coastguard Workerthe new HAL API only. To understand the mapping between new and legacy HALs please consult
41*4d7e907cSAndroid Build Coastguard Worker<i>hardware/interfaces/wifi/\<version\>/default/hidl_struct_util.cpp</i>.
42*4d7e907cSAndroid Build Coastguard Worker
43*4d7e907cSAndroid Build Coastguard Worker## IWifiNanIface
44*4d7e907cSAndroid Build Coastguard Worker
45*4d7e907cSAndroid Build Coastguard WorkerFormat:
46*4d7e907cSAndroid Build Coastguard Worker* Hard-coded values are in <b>bold</b>, e.g. <b>true</b> or <b>5</b>
47*4d7e907cSAndroid Build Coastguard Worker* Assigned but not fixed values are specified using the <i>variable</i> keyword, possibly with some
48*4d7e907cSAndroid Build Coastguard Workerdetails/constraints
49*4d7e907cSAndroid Build Coastguard Worker* Unassigned values are specified using the <i>N/A</i> keyword. Unassigned usually means initialized
50*4d7e907cSAndroid Build Coastguard Workerto 0.
51*4d7e907cSAndroid Build Coastguard Worker
52*4d7e907cSAndroid Build Coastguard WorkerAPIs:
53*4d7e907cSAndroid Build Coastguard Worker
54*4d7e907cSAndroid Build Coastguard Worker* registerEventCallback_1_2(IWifiNanIfaceEventCallback_1_2 callback)
55*4d7e907cSAndroid Build Coastguard Worker* getCapabilitiesRequest
56*4d7e907cSAndroid Build Coastguard Worker* enableRequest_1_2
57*4d7e907cSAndroid Build Coastguard Worker  * NanEnableRequest
58*4d7e907cSAndroid Build Coastguard Worker    * bool[2] operateInBand
59*4d7e907cSAndroid Build Coastguard Worker        * Index [NanBandIndex.NAN_BAND_24GHZ] = <b>true</b>
60*4d7e907cSAndroid Build Coastguard Worker        * Index [NanBandIndex.NAN_BAND_5GHZ] = <i>variable</i>
61*4d7e907cSAndroid Build Coastguard Worker    * uint8_t hopCountMax = <b>2</b>
62*4d7e907cSAndroid Build Coastguard Worker    * NanConfigRequest configParams
63*4d7e907cSAndroid Build Coastguard Worker        * uint8_t masterPref = <i>variable</i>
64*4d7e907cSAndroid Build Coastguard Worker        * bool disableDiscoveryAddressChangeIndication = <i>variable</i>
65*4d7e907cSAndroid Build Coastguard Worker        * bool disableStartedClusterIndication = <i>variable</i>
66*4d7e907cSAndroid Build Coastguard Worker        * bool disableJoinedClusterIndication = <i>variable</i>
67*4d7e907cSAndroid Build Coastguard Worker        * bool includePublishServiceIdsInBeacon = <b>true</b>
68*4d7e907cSAndroid Build Coastguard Worker        * uint8_t numberOfPublishServiceIdsInBeacon = <b>0</b>
69*4d7e907cSAndroid Build Coastguard Worker        * bool includeSubscribeServiceIdsInBeacon = <b>true</b>
70*4d7e907cSAndroid Build Coastguard Worker        * uint8_t numberOfSubscribeServiceIdsInBeacon = <b>0</b>
71*4d7e907cSAndroid Build Coastguard Worker        * uint16_t rssiWindowSize = <b>8</b>
72*4d7e907cSAndroid Build Coastguard Worker        * uint32_t macAddressRandomizationIntervalSec = <i>variable</i>
73*4d7e907cSAndroid Build Coastguard Worker            * Normal run-time: set to <b>1800</b> (30 minutes)
74*4d7e907cSAndroid Build Coastguard Worker            * Tests: set to <b>120</b> (2 minutes)
75*4d7e907cSAndroid Build Coastguard Worker        * NanBandSpecificConfig[2] bandSpecificConfig
76*4d7e907cSAndroid Build Coastguard Worker            * Index [NanBandIndex.NAN_BAND_24GHZ]
77*4d7e907cSAndroid Build Coastguard Worker                * uint8_t rssiClose = <b>60</b>
78*4d7e907cSAndroid Build Coastguard Worker                * uint8_t rssiMiddle = <b>70</b>
79*4d7e907cSAndroid Build Coastguard Worker                * uint8_t rssiCloseProximity = <b>60</b>
80*4d7e907cSAndroid Build Coastguard Worker                * uint8_t dwellTimeMs = <b>200</b>
81*4d7e907cSAndroid Build Coastguard Worker                * uint16_t scanPeriodSec = <b>20</b>
82*4d7e907cSAndroid Build Coastguard Worker                * bool validDiscoveryWindowIntervalVal = <i>variable</i>
83*4d7e907cSAndroid Build Coastguard Worker                * uint8_t discoveryWindowIntervalVal = <i>variable</i>
84*4d7e907cSAndroid Build Coastguard Worker            * Index [NanBandIndex.NAN_BAND_5GHZ]
85*4d7e907cSAndroid Build Coastguard Worker                * uint8_t rssiClose = <b>60</b>
86*4d7e907cSAndroid Build Coastguard Worker                * uint8_t rssiMiddle = <b>75</b>
87*4d7e907cSAndroid Build Coastguard Worker                * uint8_t rssiCloseProximity = <b>60</b>
88*4d7e907cSAndroid Build Coastguard Worker                * uint8_t dwellTimeMs = <b>200</b>
89*4d7e907cSAndroid Build Coastguard Worker                * uint16_t scanPeriodSec = <b>20</b>
90*4d7e907cSAndroid Build Coastguard Worker                * bool validDiscoveryWindowIntervalVal = <i>variable</i>
91*4d7e907cSAndroid Build Coastguard Worker                * uint8_t discoveryWindowIntervalVal = <i>variable</i>
92*4d7e907cSAndroid Build Coastguard Worker    * NanDebugConfig debugConfigs
93*4d7e907cSAndroid Build Coastguard Worker        * bool validClusterIdVals = <b>true</b>
94*4d7e907cSAndroid Build Coastguard Worker        * uint16_t clusterIdBottomRangeVal = <i>variable</i>
95*4d7e907cSAndroid Build Coastguard Worker        * uint16_t clusterIdTopRangeVal = <i>variable</i>
96*4d7e907cSAndroid Build Coastguard Worker        * bool validIntfAddrVal = <b>false</b>
97*4d7e907cSAndroid Build Coastguard Worker        * MacAddress intfAddrVal = <i>N/A</i>
98*4d7e907cSAndroid Build Coastguard Worker        * bool validOuiVal = <b>false</b>
99*4d7e907cSAndroid Build Coastguard Worker        * uint32_t ouiVal = <i>N/A</i>
100*4d7e907cSAndroid Build Coastguard Worker        * bool validRandomFactorForceVal = <b>false</b>
101*4d7e907cSAndroid Build Coastguard Worker        * uint8_t randomFactorForceVal = <i>N/A</i>
102*4d7e907cSAndroid Build Coastguard Worker        * bool validHopCountForceVal = <b>false</b>
103*4d7e907cSAndroid Build Coastguard Worker        * uint8_t hopCountForceVal = <i>N/A</i>
104*4d7e907cSAndroid Build Coastguard Worker        * bool validDiscoveryChannelVal = <b>false</b>
105*4d7e907cSAndroid Build Coastguard Worker        * WifiChannelInMhz[2] discoveryChannelMhzVal = <i>N/A</i>
106*4d7e907cSAndroid Build Coastguard Worker        * bool validUseBeaconsInBandVal = <b>false</b>
107*4d7e907cSAndroid Build Coastguard Worker        * bool[2] useBeaconsInBandVal = <i>N/A</i>
108*4d7e907cSAndroid Build Coastguard Worker        * bool validUseSdfInBandVal = <b>false</b>
109*4d7e907cSAndroid Build Coastguard Worker        * bool[2] useSdfInBandVal = <i>N/A</i>
110*4d7e907cSAndroid Build Coastguard Worker  * NanConfigRequestSupplemental
111*4d7e907cSAndroid Build Coastguard Worker    * uint32_t discoveryBeaconIntervalMs = <b>0</b>
112*4d7e907cSAndroid Build Coastguard Worker    * uint32_t numberOfSpatialStreamsInDiscovery = <b>0</b>
113*4d7e907cSAndroid Build Coastguard Worker    * bool enableDiscoveryWindowEarlyTermination = <b>false</b>
114*4d7e907cSAndroid Build Coastguard Worker    * bool enableRanging = <b>true</b>
115*4d7e907cSAndroid Build Coastguard Worker* configRequest_1_2
116*4d7e907cSAndroid Build Coastguard Worker    * NanConfigRequest: same as for <i>enableRequest_1_2</i>
117*4d7e907cSAndroid Build Coastguard Worker* disableRequest
118*4d7e907cSAndroid Build Coastguard Worker* startPublishRequest
119*4d7e907cSAndroid Build Coastguard Worker    * NanPublishRequest
120*4d7e907cSAndroid Build Coastguard Worker        * NanDiscoveryCommonConfig baseConfigs
121*4d7e907cSAndroid Build Coastguard Worker            * uint8_t sessionId = <i>variable</i>
122*4d7e907cSAndroid Build Coastguard Worker            * uint16_t ttlSec = <i>variable</i>
123*4d7e907cSAndroid Build Coastguard Worker            * uint16_t discoveryWindowPeriod = <b>1</b>
124*4d7e907cSAndroid Build Coastguard Worker            * uint8_t discoveryCount = <b>0</b>
125*4d7e907cSAndroid Build Coastguard Worker            * vec<uint8_t> serviceName = <i>variable</i>
126*4d7e907cSAndroid Build Coastguard Worker            * NanMatchAlg discoveryMatchIndicator = <b>NanMatchAlg.MATCH_NEVER</b>
127*4d7e907cSAndroid Build Coastguard Worker            * vec<uint8_t> serviceSpecificInfo = <i>variable</i>
128*4d7e907cSAndroid Build Coastguard Worker            * vec<uint8_t> extendedServiceSpecificInfo = <i>N/A</i>
129*4d7e907cSAndroid Build Coastguard Worker            e vec<uint8_t> rxMatchFilter = <i>variable</i>
130*4d7e907cSAndroid Build Coastguard Worker            * vec<uint8_t> txMatchFilter = <i>variable</i>
131*4d7e907cSAndroid Build Coastguard Worker            * bool useRssiThreshold = <b>false</b>
132*4d7e907cSAndroid Build Coastguard Worker            * bool disableDiscoveryTerminationIndication = <i>variable</i>
133*4d7e907cSAndroid Build Coastguard Worker            * bool disableMatchExpirationIndication = <b>true</b>
134*4d7e907cSAndroid Build Coastguard Worker            * bool disableFollowupReceivedIndication = <b>false</b>
135*4d7e907cSAndroid Build Coastguard Worker            * NanDataPathSecurityConfig securityConfig = <b>NanDataPathSecurityType.OPEN</b>
136*4d7e907cSAndroid Build Coastguard Worker            * bool rangingRequired = <b>false</b>
137*4d7e907cSAndroid Build Coastguard Worker            * uint32_t rangingIntervalMsec = <i>N/A</i>
138*4d7e907cSAndroid Build Coastguard Worker            * bitfield<NanRangingIndication> configRangingIndications = <i>N/A</i>
139*4d7e907cSAndroid Build Coastguard Worker            * uint16_t distanceIngressCm = <i>N/A</i>
140*4d7e907cSAndroid Build Coastguard Worker            * uint16_t distanceEgressCm = <i>N/A</i>
141*4d7e907cSAndroid Build Coastguard Worker        * NanPublishType publishType = <i>variable</i>
142*4d7e907cSAndroid Build Coastguard Worker        * NanTxType txType = <b>NanTxType.BROADCAST</b>
143*4d7e907cSAndroid Build Coastguard Worker        * bool autoAcceptDataPathRequests = <b>false</b>
144*4d7e907cSAndroid Build Coastguard Worker* stopPublishRequest
145*4d7e907cSAndroid Build Coastguard Worker* startSubscribeRequest
146*4d7e907cSAndroid Build Coastguard Worker    * NanSubscribeRequest
147*4d7e907cSAndroid Build Coastguard Worker        * NanDiscoveryCommonConfig baseConfigs
148*4d7e907cSAndroid Build Coastguard Worker            * Mostly same as <i>publish</i> above except:
149*4d7e907cSAndroid Build Coastguard Worker            * NanMatchAlg discoveryMatchIndicator = <b>NanMatchAlg.MATCH_ONCE</b>
150*4d7e907cSAndroid Build Coastguard Worker        * NanSubscribeType subscribeType = <i>variable</i>
151*4d7e907cSAndroid Build Coastguard Worker        * NanSrfType srfType = <i>N/A</i>
152*4d7e907cSAndroid Build Coastguard Worker        * bool srfRespondIfInAddressSet = <i>N/A</i>
153*4d7e907cSAndroid Build Coastguard Worker        * bool shouldUseSrf = <i>N/A</i>
154*4d7e907cSAndroid Build Coastguard Worker        * bool isSsiRequiredForMatch = <i>N/A</i>
155*4d7e907cSAndroid Build Coastguard Worker        * vec<MacAddress> intfAddr = <i>N/A</i>
156*4d7e907cSAndroid Build Coastguard Worker* stopSubscribeRequest
157*4d7e907cSAndroid Build Coastguard Worker* transmitFollowupRequest
158*4d7e907cSAndroid Build Coastguard Worker    * NanTransmitFollowupRequest
159*4d7e907cSAndroid Build Coastguard Worker        * uint8_t discoverySessionId = <i>variable</i>
160*4d7e907cSAndroid Build Coastguard Worker        * uint32_t peerId = <i>variable</i>
161*4d7e907cSAndroid Build Coastguard Worker        * MacAddress addr = <i>variable</i>
162*4d7e907cSAndroid Build Coastguard Worker        * bool isHighPriority = <b>false</b>
163*4d7e907cSAndroid Build Coastguard Worker        * bool shouldUseDiscoveryWindow = <b>true</b>
164*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> serviceSpecificInfo = <i>variable</i>
165*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> extendedServiceSpecificInfo = <i>N/A</i>
166*4d7e907cSAndroid Build Coastguard Worker        * bool disableFollowupResultIndication = <b>false</b>
167*4d7e907cSAndroid Build Coastguard Worker* createDataInterfaceRequest
168*4d7e907cSAndroid Build Coastguard Worker* deleteDataInterfaceRequest
169*4d7e907cSAndroid Build Coastguard Worker* initiateDataPathRequest
170*4d7e907cSAndroid Build Coastguard Worker    * NanInitiateDataPathRequest
171*4d7e907cSAndroid Build Coastguard Worker        * uint32_t peerId = <i>variable</i>
172*4d7e907cSAndroid Build Coastguard Worker        * MacAddress peerDiscMacAddr = <i>variable</i>
173*4d7e907cSAndroid Build Coastguard Worker        * NanDataPathChannelCfg channelRequestType =
174*4d7e907cSAndroid Build Coastguard Worker        <i>NanDataPathChannelCfg.CHANNEL_NOT_REQUESTED</i>
175*4d7e907cSAndroid Build Coastguard Worker        * WifiChannelInMhz channel = <b>2437</b> (note that should be ignored though -
176*4d7e907cSAndroid Build Coastguard Worker        CHANNEL_NOT_REQUESTED!)
177*4d7e907cSAndroid Build Coastguard Worker        * string ifaceName = <i>variable</i>
178*4d7e907cSAndroid Build Coastguard Worker        * NanDataPathSecurityConfig securityConfig = <i>variable</i>
179*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> appInfo = <i>N/A</i>
180*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> serviceNameOutOfBand = <i>variable</i>
181*4d7e907cSAndroid Build Coastguard Worker* respondToDataPathIndicationRequest
182*4d7e907cSAndroid Build Coastguard Worker    * NanRespondToDataPathIndicationRequest
183*4d7e907cSAndroid Build Coastguard Worker        * bool acceptRequest = <i>variable</i>
184*4d7e907cSAndroid Build Coastguard Worker        * uint32_t ndpInstanceId = <i>variable</i>
185*4d7e907cSAndroid Build Coastguard Worker        * string ifaceName = <i>variable</i>
186*4d7e907cSAndroid Build Coastguard Worker        * NanDataPathSecurityConfig securityConfig = <i>variable</i>
187*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> appInfo = <i>N/A</i>
188*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> serviceNameOutOfBand = <i>variable</i>
189*4d7e907cSAndroid Build Coastguard Worker* terminateDataPathRequest
190*4d7e907cSAndroid Build Coastguard Worker
191*4d7e907cSAndroid Build Coastguard Worker## IWifiNanIfaceEventCallback_1_2
192*4d7e907cSAndroid Build Coastguard Worker
193*4d7e907cSAndroid Build Coastguard WorkerFormat:
194*4d7e907cSAndroid Build Coastguard Worker* Parameters whose values are <i>ignored</i> will be flagged, otherwise the parameter value is used
195*4d7e907cSAndroid Build Coastguard Workerby the framework.
196*4d7e907cSAndroid Build Coastguard Worker
197*4d7e907cSAndroid Build Coastguard WorkerAPI:
198*4d7e907cSAndroid Build Coastguard Worker
199*4d7e907cSAndroid Build Coastguard Worker* notifyXxxResponse: all callbacks are used by framework
200*4d7e907cSAndroid Build Coastguard Worker* eventClusterEvent
201*4d7e907cSAndroid Build Coastguard Worker* eventDisabled
202*4d7e907cSAndroid Build Coastguard Worker* eventPublishTerminated
203*4d7e907cSAndroid Build Coastguard Worker* eventSubscribeTerminated
204*4d7e907cSAndroid Build Coastguard Worker* eventMatch
205*4d7e907cSAndroid Build Coastguard Worker    * NanMatchInd (all parameters are used except those listed below)
206*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> extendedServiceSpecificInfo: <i>ignored</i>
207*4d7e907cSAndroid Build Coastguard Worker        * bool matchOccuredInBeaconFlag: <i>ignored</i>
208*4d7e907cSAndroid Build Coastguard Worker        * bool outOfResourceFlag: <i>ignored</i>
209*4d7e907cSAndroid Build Coastguard Worker        * uint8_t rssiValue: <i>ignored</i>
210*4d7e907cSAndroid Build Coastguard Worker        * NanCipherSuiteType peerCipherType: <i>ignored</i>
211*4d7e907cSAndroid Build Coastguard Worker        * bool peerRequiresSecurityEnabledInNdp: <i>ignored</i>
212*4d7e907cSAndroid Build Coastguard Worker        * bool peerRequiresRanging: <i>ignored</i>
213*4d7e907cSAndroid Build Coastguard Worker        * uint32_t rangingMeasurementInCm: <i>ignored</i>
214*4d7e907cSAndroid Build Coastguard Worker        * bitfield<NanRangingIndication> rangingIndicationType: <i>ignored</i>
215*4d7e907cSAndroid Build Coastguard Worker* eventMatchExpired: <i>ignored</i>
216*4d7e907cSAndroid Build Coastguard Worker* eventFollowupReceived
217*4d7e907cSAndroid Build Coastguard Worker    * NanFollowupReceivedInd (all parameters are used except those listed below)
218*4d7e907cSAndroid Build Coastguard Worker        * bool receivedInFaw: <i>ignored</i>
219*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> extendedServiceSpecificInfo: <i>ignored</i>
220*4d7e907cSAndroid Build Coastguard Worker* eventTransmitFollowup
221*4d7e907cSAndroid Build Coastguard Worker* eventDataPathRequest
222*4d7e907cSAndroid Build Coastguard Worker    * NanDataPathRequestInd (all parameters are used except those listed below)
223*4d7e907cSAndroid Build Coastguard Worker        * bool securityRequired: <i>ignored</i>
224*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> appInfo: <i>ignored</i>
225*4d7e907cSAndroid Build Coastguard Worker* eventDataPathConfirm
226*4d7e907cSAndroid Build Coastguard Worker    * NanDataPathConfirmInd (all parameters are used except those listed below)
227*4d7e907cSAndroid Build Coastguard Worker        * vec<uint8_t> appInfo: <i>ignored</i>
228*4d7e907cSAndroid Build Coastguard Worker* eventDataPathScheduleUpdate
229*4d7e907cSAndroid Build Coastguard Worker    * NanDataPathScheduleUpdateInd
230*4d7e907cSAndroid Build Coastguard Worker* eventDataPathTerminated
231*4d7e907cSAndroid Build Coastguard Worker
232