blob: ff1348434168fe5bb55c0c5d7e3244d080b0c1f6 [file] [log] [blame]
Etan Cohenfc5f3732017-06-02 17:31:52 -07001#!/usr/bin/python3.4
2#
3# Copyright 2017 - The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17import time
18
19from acts.test_utils.net import connectivity_const as cconsts
20from acts.test_utils.wifi.aware import aware_const as aconsts
21from acts.test_utils.wifi.aware import aware_test_utils as autils
22from acts.test_utils.wifi.aware.AwareBaseTest import AwareBaseTest
23
24
25class DataPathTest(AwareBaseTest):
26 """Set of tests for Wi-Fi Aware discovery."""
27
28 # configuration parameters used by tests
29 ENCR_TYPE_OPEN = 0
30 ENCR_TYPE_PASSPHRASE = 1
Etan Cohen058aaba2017-06-05 17:01:54 -070031 ENCR_TYPE_PMK = 2
Etan Cohenfc5f3732017-06-02 17:31:52 -070032
33 PASSPHRASE = "This is some random passphrase - very very secure!!"
Etan Cohen058aaba2017-06-05 17:01:54 -070034 PMK = "ODU0YjE3YzdmNDJiNWI4NTQ2NDJjNDI3M2VkZTQyZGU="
Etan Cohenfc5f3732017-06-02 17:31:52 -070035
36 PING_MSG = "ping"
37
38 # message re-transmit counter (increases reliability in open-environment)
39 # Note: reliability of message transmission is tested elsewhere
40 MSG_RETX_COUNT = 5 # hard-coded max value, internal API
41
Etan Cohenba8a53f2017-06-05 12:55:02 -070042 # number of second to 'reasonably' wait to make sure that devices synchronize
43 # with each other - useful for OOB test cases, where the OOB discovery would
44 # take some time
45 WAIT_FOR_CLUSTER = 5
46
Etan Cohenfc5f3732017-06-02 17:31:52 -070047 def __init__(self, controllers):
48 AwareBaseTest.__init__(self, controllers)
49
50 def create_config(self, dtype):
51 """Create a base configuration based on input parameters.
52
53 Args:
54 dtype: Publish or Subscribe discovery type
55
56 Returns:
57 Discovery configuration object.
58 """
59 config = {}
60 config[aconsts.DISCOVERY_KEY_DISCOVERY_TYPE] = dtype
61 config[aconsts.DISCOVERY_KEY_SERVICE_NAME] = "GoogleTestServiceDataPath"
62 return config
63
64 def request_network(self, dut, ns):
65 """Request a Wi-Fi Aware network.
66
67 Args:
68 dut: Device
69 ns: Network specifier
70 Returns: the request key
71 """
72 network_req = {"TransportType": 5, "NetworkSpecifier": ns}
73 return dut.droid.connectivityRequestWifiAwareNetwork(network_req)
74
75 def run_ib_data_path_test(self, ptype, stype, encr_type, use_peer_id):
76 """Runs the in-band data-path tests.
77
78 Args:
79 ptype: Publish discovery type
80 stype: Subscribe discovery type
81 encr_type: Encryption type, one of ENCR_TYPE_*
82 use_peer_id: On Responder (publisher): True to use peer ID, False to
83 accept any request
84 """
85 p_dut = self.android_devices[0]
86 p_dut.pretty_name = "Publisher"
87 s_dut = self.android_devices[1]
88 s_dut.pretty_name = "Subscriber"
89
90 # Publisher+Subscriber: attach and wait for confirmation
91 p_id = p_dut.droid.wifiAwareAttach()
92 autils.wait_for_event(p_dut, aconsts.EVENT_CB_ON_ATTACHED)
93 s_id = s_dut.droid.wifiAwareAttach()
94 autils.wait_for_event(s_dut, aconsts.EVENT_CB_ON_ATTACHED)
95
96 # Publisher: start publish and wait for confirmation
97 p_disc_id = p_dut.droid.wifiAwarePublish(p_id, self.create_config(ptype))
98 autils.wait_for_event(p_dut, aconsts.SESSION_CB_ON_PUBLISH_STARTED)
99
100 # Subscriber: start subscribe and wait for confirmation
101 s_disc_id = s_dut.droid.wifiAwareSubscribe(s_id, self.create_config(stype))
102 autils.wait_for_event(s_dut, aconsts.SESSION_CB_ON_SUBSCRIBE_STARTED)
103
104 # Subscriber: wait for service discovery
105 discovery_event = autils.wait_for_event(
106 s_dut, aconsts.SESSION_CB_ON_SERVICE_DISCOVERED)
107 peer_id_on_sub = discovery_event["data"][aconsts.SESSION_CB_KEY_PEER_ID]
108
109 if use_peer_id: # only need message to receive peer ID
110 # Subscriber: send message to peer (Publisher - so it knows our address)
111 s_dut.droid.wifiAwareSendMessage(s_disc_id, peer_id_on_sub,
112 self.get_next_msg_id(), self.PING_MSG,
113 self.MSG_RETX_COUNT)
114 autils.wait_for_event(s_dut, aconsts.SESSION_CB_ON_MESSAGE_SENT)
115
116 # Publisher: wait for received message
117 pub_rx_msg_event = autils.wait_for_event(
118 p_dut, aconsts.SESSION_CB_ON_MESSAGE_RECEIVED)
119 peer_id_on_pub = pub_rx_msg_event["data"][aconsts.SESSION_CB_KEY_PEER_ID]
120
Etan Cohen058aaba2017-06-05 17:01:54 -0700121 key = None
122 if encr_type == self.ENCR_TYPE_PASSPHRASE:
123 key = self.PASSPHRASE
124 elif encr_type == self.ENCR_TYPE_PMK:
125 key = self.PMK
126
Etan Cohenfc5f3732017-06-02 17:31:52 -0700127 # Publisher: request network
128 p_req_key = self.request_network(
129 p_dut,
Etan Cohen058aaba2017-06-05 17:01:54 -0700130 p_dut.droid.wifiAwareCreateNetworkSpecifier(p_disc_id, peer_id_on_pub if
131 use_peer_id else None, key))
Etan Cohenfc5f3732017-06-02 17:31:52 -0700132
133 # Subscriber: request network
134 s_req_key = self.request_network(
135 s_dut,
Etan Cohen058aaba2017-06-05 17:01:54 -0700136 s_dut.droid.wifiAwareCreateNetworkSpecifier(s_disc_id, peer_id_on_sub,
137 key))
Etan Cohenfc5f3732017-06-02 17:31:52 -0700138
139 # Publisher & Subscriber: wait for network formation
140 p_net_event = autils.wait_for_event_with_keys(
141 p_dut, cconsts.EVENT_NETWORK_CALLBACK,
142 autils.EVENT_TIMEOUT,
143 (cconsts.NETWORK_CB_KEY_EVENT,
144 cconsts.NETWORK_CB_LINK_PROPERTIES_CHANGED),
145 (cconsts.NETWORK_CB_KEY_ID, p_req_key))
146 s_net_event = autils.wait_for_event_with_keys(
147 s_dut, cconsts.EVENT_NETWORK_CALLBACK,
148 autils.EVENT_TIMEOUT,
149 (cconsts.NETWORK_CB_KEY_EVENT,
150 cconsts.NETWORK_CB_LINK_PROPERTIES_CHANGED),
151 (cconsts.NETWORK_CB_KEY_ID, s_req_key))
152
153 p_aware_if = p_net_event["data"][cconsts.NETWORK_CB_KEY_INTERFACE_NAME]
154 s_aware_if = s_net_event["data"][cconsts.NETWORK_CB_KEY_INTERFACE_NAME]
155 self.log.info("Interface names: p=%s, s=%s", p_aware_if, s_aware_if)
156
157 p_ipv6 = p_dut.droid.connectivityGetLinkLocalIpv6Address(p_aware_if).split(
158 "%")[0]
159 s_ipv6 = s_dut.droid.connectivityGetLinkLocalIpv6Address(s_aware_if).split(
160 "%")[0]
161 self.log.info("Interface addresses (IPv6): p=%s, s=%s", p_ipv6, s_ipv6)
162
163 # TODO: possibly send messages back and forth, prefer to use netcat/nc
164
Etan Cohence202292017-06-05 13:55:54 -0700165 # terminate sessions and wait for ON_LOST callbacks
166 p_dut.droid.wifiAwareDestroy(p_id)
167 s_dut.droid.wifiAwareDestroy(s_id)
168
169 autils.wait_for_event_with_keys(
170 p_dut, cconsts.EVENT_NETWORK_CALLBACK, autils.EVENT_TIMEOUT,
171 (cconsts.NETWORK_CB_KEY_EVENT,
172 cconsts.NETWORK_CB_LOST), (cconsts.NETWORK_CB_KEY_ID, p_req_key))
173 autils.wait_for_event_with_keys(
174 s_dut, cconsts.EVENT_NETWORK_CALLBACK, autils.EVENT_TIMEOUT,
175 (cconsts.NETWORK_CB_KEY_EVENT,
176 cconsts.NETWORK_CB_LOST), (cconsts.NETWORK_CB_KEY_ID, s_req_key))
177
Etan Cohenfc5f3732017-06-02 17:31:52 -0700178 # clean-up
179 p_dut.droid.connectivityUnregisterNetworkCallback(p_req_key)
180 s_dut.droid.connectivityUnregisterNetworkCallback(s_req_key)
181
Etan Cohenba8a53f2017-06-05 12:55:02 -0700182 def run_oob_data_path_test(self, encr_type, use_peer_id):
183 """Runs the out-of-band data-path tests.
184
185 Args:
186 encr_type: Encryption type, one of ENCR_TYPE_*
187 use_peer_id: On Responder: True to use peer ID, False to accept any
188 request
189 """
190 init_dut = self.android_devices[0]
191 init_dut.pretty_name = "Initiator"
192 resp_dut = self.android_devices[1]
193 resp_dut.pretty_name = "Responder"
194
195 # Publisher+Subscriber: attach and wait for confirmation & identity
196 init_id = init_dut.droid.wifiAwareAttach(True)
197 autils.wait_for_event(init_dut, aconsts.EVENT_CB_ON_ATTACHED)
198 init_ident_event = autils.wait_for_event(
199 init_dut, aconsts.EVENT_CB_ON_IDENTITY_CHANGED)
200 init_mac = init_ident_event["data"]["mac"]
201 resp_id = resp_dut.droid.wifiAwareAttach(True)
202 autils.wait_for_event(resp_dut, aconsts.EVENT_CB_ON_ATTACHED)
203 resp_ident_event = autils.wait_for_event(
204 resp_dut, aconsts.EVENT_CB_ON_IDENTITY_CHANGED)
205 resp_mac = resp_ident_event["data"]["mac"]
206
207 # wait for for devices to synchronize with each other - there are no other
208 # mechanisms to make sure this happens for OOB discovery (except retrying
209 # to execute the data-path request)
210 time.sleep(self.WAIT_FOR_CLUSTER)
211
Etan Cohen058aaba2017-06-05 17:01:54 -0700212 key = None
213 if encr_type == self.ENCR_TYPE_PASSPHRASE:
214 key = self.PASSPHRASE
215 elif encr_type == self.ENCR_TYPE_PMK:
216 key = self.PMK
217
Etan Cohenba8a53f2017-06-05 12:55:02 -0700218 # Responder: request network
219 resp_req_key = self.request_network(
220 resp_dut,
221 resp_dut.droid.wifiAwareCreateNetworkSpecifierOob(
222 resp_id, aconsts.DATA_PATH_RESPONDER, init_mac
Etan Cohen058aaba2017-06-05 17:01:54 -0700223 if use_peer_id else None, key))
Etan Cohenba8a53f2017-06-05 12:55:02 -0700224
225 # Initiator: request network
226 init_req_key = self.request_network(
227 init_dut,
228 init_dut.droid.wifiAwareCreateNetworkSpecifierOob(
Etan Cohen058aaba2017-06-05 17:01:54 -0700229 init_id, aconsts.DATA_PATH_INITIATOR, resp_mac, key))
Etan Cohenba8a53f2017-06-05 12:55:02 -0700230
231 # Initiator & Responder: wait for network formation
232 init_net_event = autils.wait_for_event_with_keys(
233 init_dut, cconsts.EVENT_NETWORK_CALLBACK,
234 autils.EVENT_TIMEOUT,
235 (cconsts.NETWORK_CB_KEY_EVENT,
236 cconsts.NETWORK_CB_LINK_PROPERTIES_CHANGED),
237 (cconsts.NETWORK_CB_KEY_ID, init_req_key))
238 resp_net_event = autils.wait_for_event_with_keys(
239 resp_dut, cconsts.EVENT_NETWORK_CALLBACK,
240 autils.EVENT_TIMEOUT,
241 (cconsts.NETWORK_CB_KEY_EVENT,
242 cconsts.NETWORK_CB_LINK_PROPERTIES_CHANGED),
243 (cconsts.NETWORK_CB_KEY_ID, resp_req_key))
244
245 init_aware_if = init_net_event["data"][
246 cconsts.NETWORK_CB_KEY_INTERFACE_NAME]
247 resp_aware_if = resp_net_event["data"][
248 cconsts.NETWORK_CB_KEY_INTERFACE_NAME]
249 self.log.info("Interface names: I=%s, R=%s", init_aware_if, resp_aware_if)
250
251 init_ipv6 = init_dut.droid.connectivityGetLinkLocalIpv6Address(
252 init_aware_if).split("%")[0]
253 resp_ipv6 = resp_dut.droid.connectivityGetLinkLocalIpv6Address(
254 resp_aware_if).split("%")[0]
255 self.log.info("Interface addresses (IPv6): I=%s, R=%s", init_ipv6,
256 resp_ipv6)
257
258 # TODO: possibly send messages back and forth, prefer to use netcat/nc
259
Etan Cohence202292017-06-05 13:55:54 -0700260 # terminate sessions and wait for ON_LOST callbacks
261 init_dut.droid.wifiAwareDestroy(init_id)
262 resp_dut.droid.wifiAwareDestroy(resp_id)
263
264 autils.wait_for_event_with_keys(
265 init_dut, cconsts.EVENT_NETWORK_CALLBACK, autils.EVENT_TIMEOUT,
266 (cconsts.NETWORK_CB_KEY_EVENT,
267 cconsts.NETWORK_CB_LOST), (cconsts.NETWORK_CB_KEY_ID, init_req_key))
268 autils.wait_for_event_with_keys(
269 resp_dut, cconsts.EVENT_NETWORK_CALLBACK, autils.EVENT_TIMEOUT,
270 (cconsts.NETWORK_CB_KEY_EVENT,
271 cconsts.NETWORK_CB_LOST), (cconsts.NETWORK_CB_KEY_ID, resp_req_key))
272
Etan Cohenba8a53f2017-06-05 12:55:02 -0700273 # clean-up
274 resp_dut.droid.connectivityUnregisterNetworkCallback(resp_req_key)
275 init_dut.droid.connectivityUnregisterNetworkCallback(init_req_key)
276
277
Etan Cohenfc5f3732017-06-02 17:31:52 -0700278 #######################################
279 # Positive In-Band (IB) tests key:
280 #
281 # names is: test_ib_<pub_type>_<sub_type>_<encr_type>_<peer_spec>
282 # where:
283 #
284 # pub_type: Type of publish discovery session: unsolicited or solicited.
285 # sub_type: Type of subscribe discovery session: passive or active.
286 # encr_type: Encription type: open, passphrase
287 # peer_spec: Peer specification method: any or specific
288 #
289 # Note: In-Band means using Wi-Fi Aware for discovery and referring to the
290 # peer using the Aware-provided peer handle (as opposed to a MAC address).
291 #######################################
292
293 def test_ib_unsolicited_passive_open_specific(self):
294 """Data-path: in-band, unsolicited/passive, open encryption, specific peer
295
296 Verifies end-to-end discovery + data-path creation.
297 """
298 self.run_ib_data_path_test(
299 ptype=aconsts.PUBLISH_TYPE_UNSOLICITED,
300 stype=aconsts.SUBSCRIBE_TYPE_PASSIVE,
301 encr_type=self.ENCR_TYPE_OPEN,
302 use_peer_id=True)
303
304 def test_ib_unsolicited_passive_open_any(self):
305 """Data-path: in-band, unsolicited/passive, open encryption, any peer
306
307 Verifies end-to-end discovery + data-path creation.
308 """
309 self.run_ib_data_path_test(
310 ptype=aconsts.PUBLISH_TYPE_UNSOLICITED,
311 stype=aconsts.SUBSCRIBE_TYPE_PASSIVE,
312 encr_type=self.ENCR_TYPE_OPEN,
313 use_peer_id=False)
314
315 def test_ib_unsolicited_passive_passphrase_specific(self):
316 """Data-path: in-band, unsolicited/passive, passphrase, specific peer
317
318 Verifies end-to-end discovery + data-path creation.
319 """
320 self.run_ib_data_path_test(
321 ptype=aconsts.PUBLISH_TYPE_UNSOLICITED,
322 stype=aconsts.SUBSCRIBE_TYPE_PASSIVE,
323 encr_type=self.ENCR_TYPE_PASSPHRASE,
324 use_peer_id=True)
325
326 def test_ib_unsolicited_passive_passphrase_any(self):
327 """Data-path: in-band, unsolicited/passive, passphrase, any peer
328
329 Verifies end-to-end discovery + data-path creation.
330 """
331 self.run_ib_data_path_test(
332 ptype=aconsts.PUBLISH_TYPE_UNSOLICITED,
333 stype=aconsts.SUBSCRIBE_TYPE_PASSIVE,
334 encr_type=self.ENCR_TYPE_PASSPHRASE,
335 use_peer_id=False)
336
Etan Cohen058aaba2017-06-05 17:01:54 -0700337 def test_ib_unsolicited_passive_pmk_specific(self):
338 """Data-path: in-band, unsolicited/passive, PMK, specific peer
339
340 Verifies end-to-end discovery + data-path creation.
341 """
342 self.run_ib_data_path_test(
343 ptype=aconsts.PUBLISH_TYPE_UNSOLICITED,
344 stype=aconsts.SUBSCRIBE_TYPE_PASSIVE,
345 encr_type=self.ENCR_TYPE_PMK,
346 use_peer_id=True)
347
348 def test_ib_unsolicited_passive_pmk_any(self):
349 """Data-path: in-band, unsolicited/passive, PMK, any peer
350
351 Verifies end-to-end discovery + data-path creation.
352 """
353 self.run_ib_data_path_test(
354 ptype=aconsts.PUBLISH_TYPE_UNSOLICITED,
355 stype=aconsts.SUBSCRIBE_TYPE_PASSIVE,
356 encr_type=self.ENCR_TYPE_PMK,
357 use_peer_id=False)
358
Etan Cohenfc5f3732017-06-02 17:31:52 -0700359 def test_ib_solicited_active_open_specific(self):
Etan Cohenba8a53f2017-06-05 12:55:02 -0700360 """Data-path: in-band, solicited/active, open encryption, specific peer
Etan Cohenfc5f3732017-06-02 17:31:52 -0700361
Etan Cohenba8a53f2017-06-05 12:55:02 -0700362 Verifies end-to-end discovery + data-path creation.
363 """
364 self.run_ib_data_path_test(
365 ptype=aconsts.PUBLISH_TYPE_SOLICITED,
366 stype=aconsts.SUBSCRIBE_TYPE_ACTIVE,
367 encr_type=self.ENCR_TYPE_OPEN,
368 use_peer_id=True)
Etan Cohenfc5f3732017-06-02 17:31:52 -0700369
370 def test_ib_solicited_active_open_any(self):
Etan Cohenba8a53f2017-06-05 12:55:02 -0700371 """Data-path: in-band, solicited/active, open encryption, any peer
Etan Cohenfc5f3732017-06-02 17:31:52 -0700372
Etan Cohenba8a53f2017-06-05 12:55:02 -0700373 Verifies end-to-end discovery + data-path creation.
374 """
375 self.run_ib_data_path_test(
376 ptype=aconsts.PUBLISH_TYPE_SOLICITED,
377 stype=aconsts.SUBSCRIBE_TYPE_ACTIVE,
378 encr_type=self.ENCR_TYPE_OPEN,
379 use_peer_id=False)
Etan Cohenfc5f3732017-06-02 17:31:52 -0700380
381 def test_ib_solicited_active_passphrase_specific(self):
Etan Cohenba8a53f2017-06-05 12:55:02 -0700382 """Data-path: in-band, solicited/active, passphrase, specific peer
Etan Cohenfc5f3732017-06-02 17:31:52 -0700383
Etan Cohenba8a53f2017-06-05 12:55:02 -0700384 Verifies end-to-end discovery + data-path creation.
385 """
386 self.run_ib_data_path_test(
387 ptype=aconsts.PUBLISH_TYPE_SOLICITED,
388 stype=aconsts.SUBSCRIBE_TYPE_ACTIVE,
389 encr_type=self.ENCR_TYPE_PASSPHRASE,
390 use_peer_id=True)
Etan Cohenfc5f3732017-06-02 17:31:52 -0700391
392 def test_ib_solicited_active_passphrase_any(self):
Etan Cohenba8a53f2017-06-05 12:55:02 -0700393 """Data-path: in-band, solicited/active, passphrase, any peer
Etan Cohenfc5f3732017-06-02 17:31:52 -0700394
Etan Cohenba8a53f2017-06-05 12:55:02 -0700395 Verifies end-to-end discovery + data-path creation.
396 """
397 self.run_ib_data_path_test(
398 ptype=aconsts.PUBLISH_TYPE_SOLICITED,
399 stype=aconsts.SUBSCRIBE_TYPE_ACTIVE,
400 encr_type=self.ENCR_TYPE_PASSPHRASE,
401 use_peer_id=False)
Etan Cohenfc5f3732017-06-02 17:31:52 -0700402
Etan Cohen058aaba2017-06-05 17:01:54 -0700403 def test_ib_solicited_active_pmk_specific(self):
404 """Data-path: in-band, solicited/active, PMK, specific peer
405
406 Verifies end-to-end discovery + data-path creation.
407 """
408 self.run_ib_data_path_test(
409 ptype=aconsts.PUBLISH_TYPE_SOLICITED,
410 stype=aconsts.SUBSCRIBE_TYPE_ACTIVE,
411 encr_type=self.ENCR_TYPE_PMK,
412 use_peer_id=True)
413
414 def test_ib_solicited_active_pmk_any(self):
415 """Data-path: in-band, solicited/active, PMK, any peer
416
417 Verifies end-to-end discovery + data-path creation.
418 """
419 self.run_ib_data_path_test(
420 ptype=aconsts.PUBLISH_TYPE_SOLICITED,
421 stype=aconsts.SUBSCRIBE_TYPE_ACTIVE,
422 encr_type=self.ENCR_TYPE_PMK,
423 use_peer_id=False)
424
Etan Cohenba8a53f2017-06-05 12:55:02 -0700425 #######################################
426 # Positive Out-of-Band (OOB) tests key:
427 #
428 # names is: test_oob_<encr_type>_<peer_spec>
429 # where:
430 #
431 # encr_type: Encription type: open, passphrase
432 # peer_spec: Peer specification method: any or specific
433 #
434 # Note: Out-of-Band means using a non-Wi-Fi Aware mechanism for discovery and
435 # exchange of MAC addresses and then Wi-Fi Aware for data-path.
436 #######################################
437
438 def test_oob_open_specific(self):
439 """Data-path: out-of-band, open encryption, specific peer
440
441 Verifies end-to-end discovery + data-path creation.
442 """
443 self.run_oob_data_path_test(
444 encr_type=self.ENCR_TYPE_OPEN,
445 use_peer_id=True)
446
447 def test_oob_open_any(self):
448 """Data-path: out-of-band, open encryption, any peer
449
450 Verifies end-to-end discovery + data-path creation.
451 """
452 self.run_oob_data_path_test(
453 encr_type=self.ENCR_TYPE_OPEN,
454 use_peer_id=False)
455
456 def test_oob_passphrase_specific(self):
457 """Data-path: out-of-band, passphrase, specific peer
458
459 Verifies end-to-end discovery + data-path creation.
460 """
461 self.run_oob_data_path_test(
462 encr_type=self.ENCR_TYPE_PASSPHRASE,
463 use_peer_id=True)
464
465 def test_oob_passphrase_any(self):
466 """Data-path: out-of-band, passphrase, any peer
467
468 Verifies end-to-end discovery + data-path creation.
469 """
470 self.run_oob_data_path_test(
471 encr_type=self.ENCR_TYPE_PASSPHRASE,
472 use_peer_id=False)
Etan Cohen058aaba2017-06-05 17:01:54 -0700473
474 def test_oob_pmk_specific(self):
475 """Data-path: out-of-band, PMK, specific peer
476
477 Verifies end-to-end discovery + data-path creation.
478 """
479 self.run_oob_data_path_test(
480 encr_type=self.ENCR_TYPE_PMK,
481 use_peer_id=True)
482
483 def test_oob_pmk_any(self):
484 """Data-path: out-of-band, PMK, any peer
485
486 Verifies end-to-end discovery + data-path creation.
487 """
488 self.run_oob_data_path_test(
489 encr_type=self.ENCR_TYPE_PMK,
490 use_peer_id=False)