1 # P2P service discovery test cases
2 # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
4 # This software may be distributed under the terms of the BSD license.
5 # See README for more details.
8 logger = logging.getLogger()
14 def add_bonjour_services(dev):
15 dev.global_request("P2P_SERVICE_ADD bonjour 0b5f6166706f766572746370c00c000c01 074578616d706c65c027")
16 dev.global_request("P2P_SERVICE_ADD bonjour 076578616d706c650b5f6166706f766572746370c00c001001 00")
17 dev.global_request("P2P_SERVICE_ADD bonjour 045f697070c00c000c01 094d795072696e746572c027")
18 dev.global_request("P2P_SERVICE_ADD bonjour 096d797072696e746572045f697070c00c001001 09747874766572733d311a70646c3d6170706c69636174696f6e2f706f7374736372797074")
20 def add_upnp_services(dev):
21 dev.global_request("P2P_SERVICE_ADD upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootdevice")
22 dev.global_request("P2P_SERVICE_ADD upnp 10 uuid:5566d33e-9774-09ab-4822-333456785632::upnp:rootdevice")
23 dev.global_request("P2P_SERVICE_ADD upnp 10 uuid:1122de4e-8574-59ab-9322-333456789044::urn:schemas-upnp-org:service:ContentDirectory:2")
24 dev.global_request("P2P_SERVICE_ADD upnp 10 uuid:5566d33e-9774-09ab-4822-333456785632::urn:schemas-upnp-org:service:ContentDirectory:2")
25 dev.global_request("P2P_SERVICE_ADD upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::urn:schemas-upnp-org:device:InternetGatewayDevice:1")
27 def add_extra_services(dev):
28 for i in range(0, 100):
29 dev.global_request("P2P_SERVICE_ADD upnp 10 uuid:" + str(uuid.uuid4()) + "::upnp:rootdevice")
31 def run_sd(dev, dst, query, exp_query=None, fragment=False, query2=None):
32 addr0 = dev[0].p2p_dev_addr()
33 addr1 = dev[1].p2p_dev_addr()
34 add_bonjour_services(dev[0])
35 add_upnp_services(dev[0])
37 add_extra_services(dev[0])
40 dev[1].global_request("P2P_FLUSH")
41 dev[1].global_request("P2P_SERV_DISC_REQ " + dst + " " + query)
43 dev[1].global_request("P2P_SERV_DISC_REQ " + dst + " " + query2)
44 if not dev[1].discover_peer(addr0, social=True, force_find=True):
45 raise Exception("Peer " + addr0 + " not found")
47 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=10)
49 raise Exception("Service discovery timed out")
51 raise Exception("Unexpected service discovery request source")
54 if exp_query not in ev and (query2 is None or query2 not in ev):
55 raise Exception("Unexpected service discovery request contents")
60 ev = dev[1].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=10)
62 raise Exception("Service discovery timed out")
70 ev = dev[1].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=10)
72 raise Exception("Service discovery timed out")
76 dev[0].p2p_stop_find()
77 dev[1].p2p_stop_find()
79 if "OK" not in dev[0].global_request("P2P_SERVICE_DEL upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootdevice"):
80 raise Exception("Failed to delete a UPnP service")
81 if "FAIL" not in dev[0].global_request("P2P_SERVICE_DEL upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootdevice"):
82 raise Exception("Unexpected deletion success for UPnP service")
83 if "OK" not in dev[0].global_request("P2P_SERVICE_DEL bonjour 0b5f6166706f766572746370c00c000c01"):
84 raise Exception("Failed to delete a Bonjour service")
85 if "FAIL" not in dev[0].global_request("P2P_SERVICE_DEL bonjour 0b5f6166706f766572746370c00c000c01"):
86 raise Exception("Unexpected deletion success for Bonjour service")
90 def test_p2p_service_discovery(dev):
91 """P2P service discovery"""
92 addr0 = dev[0].p2p_dev_addr()
93 for dst in [ "00:00:00:00:00:00", addr0 ]:
94 ev = run_sd(dev, dst, "02000001")
95 if "0b5f6166706f766572746370c00c000c01" not in ev:
96 raise Exception("Unexpected service discovery response contents (Bonjour)")
97 if "496e7465726e6574" not in ev:
98 raise Exception("Unexpected service discovery response contents (UPnP)")
100 for req in [ "foo 02000001",
102 addr0 + " upnp qq urn:schemas-upnp-org:device:InternetGatewayDevice:1",
106 if "FAIL" not in dev[1].global_request("P2P_SERV_DISC_REQ " + req):
107 raise Exception("Invalid P2P_SERV_DISC_REQ accepted: " + req)
109 def test_p2p_service_discovery2(dev):
110 """P2P service discovery with one peer having no services"""
112 for dst in [ "00:00:00:00:00:00", dev[0].p2p_dev_addr() ]:
113 ev = run_sd(dev, dst, "02000001")
114 if "0b5f6166706f766572746370c00c000c01" not in ev:
115 raise Exception("Unexpected service discovery response contents (Bonjour)")
116 if "496e7465726e6574" not in ev:
117 raise Exception("Unexpected service discovery response contents (UPnP)")
119 def test_p2p_service_discovery3(dev):
120 """P2P service discovery for Bonjour with one peer having no services"""
122 for dst in [ "00:00:00:00:00:00", dev[0].p2p_dev_addr() ]:
123 ev = run_sd(dev, dst, "02000101")
124 if "0b5f6166706f766572746370c00c000c01" not in ev:
125 raise Exception("Unexpected service discovery response contents (Bonjour)")
127 def test_p2p_service_discovery4(dev):
128 """P2P service discovery for UPnP with one peer having no services"""
130 for dst in [ "00:00:00:00:00:00", dev[0].p2p_dev_addr() ]:
131 ev = run_sd(dev, dst, "02000201")
132 if "496e7465726e6574" not in ev:
133 raise Exception("Unexpected service discovery response contents (UPnP)")
135 def test_p2p_service_discovery_multiple_queries(dev):
136 """P2P service discovery with multiple queries"""
137 for dst in [ "00:00:00:00:00:00", dev[0].p2p_dev_addr() ]:
138 ev = run_sd(dev, dst, "02000201", query2="02000101")
139 if "0b5f6166706f766572746370c00c000c01" not in ev[0] + ev[1]:
140 raise Exception("Unexpected service discovery response contents (Bonjour)")
141 if "496e7465726e6574" not in ev[0] + ev[1]:
142 raise Exception("Unexpected service discovery response contents (UPnP)")
144 def test_p2p_service_discovery_multiple_queries2(dev):
145 """P2P service discovery with multiple queries with one peer having no services"""
147 for dst in [ "00:00:00:00:00:00", dev[0].p2p_dev_addr() ]:
148 ev = run_sd(dev, dst, "02000201", query2="02000101")
149 if "0b5f6166706f766572746370c00c000c01" not in ev[0] + ev[1]:
150 raise Exception("Unexpected service discovery response contents (Bonjour)")
151 if "496e7465726e6574" not in ev[0] + ev[1]:
152 raise Exception("Unexpected service discovery response contents (UPnP)")
154 def test_p2p_service_discovery_fragmentation(dev):
155 """P2P service discovery with fragmentation"""
156 for dst in [ "00:00:00:00:00:00", dev[0].p2p_dev_addr() ]:
157 ev = run_sd(dev, dst, "02000001", fragment=True)
158 if not "long response" in ev:
159 if "0b5f6166706f766572746370c00c000c01" not in ev:
160 raise Exception("Unexpected service discovery response contents (Bonjour)")
161 if "496e7465726e6574" not in ev:
162 raise Exception("Unexpected service discovery response contents (UPnP)")
164 def test_p2p_service_discovery_bonjour(dev):
165 """P2P service discovery (Bonjour)"""
166 ev = run_sd(dev, "00:00:00:00:00:00", "02000101")
167 if "0b5f6166706f766572746370c00c000c01" not in ev:
168 raise Exception("Unexpected service discovery response contents (Bonjour)")
169 if "045f697070c00c000c01" not in ev:
170 raise Exception("Unexpected service discovery response contents (Bonjour)")
171 if "496e7465726e6574" in ev:
172 raise Exception("Unexpected service discovery response contents (UPnP not expected)")
174 def test_p2p_service_discovery_bonjour2(dev):
175 """P2P service discovery (Bonjour AFS)"""
176 ev = run_sd(dev, "00:00:00:00:00:00", "130001010b5f6166706f766572746370c00c000c01")
177 if "0b5f6166706f766572746370c00c000c01" not in ev:
178 raise Exception("Unexpected service discovery response contents (Bonjour)")
179 if "045f697070c00c000c01" in ev:
180 raise Exception("Unexpected service discovery response contents (Bonjour mismatching)")
181 if "496e7465726e6574" in ev:
182 raise Exception("Unexpected service discovery response contents (UPnP not expected)")
184 def test_p2p_service_discovery_bonjour3(dev):
185 """P2P service discovery (Bonjour AFS - no match)"""
186 ev = run_sd(dev, "00:00:00:00:00:00", "130001010b5f6166706f766572746370c00c000c02")
187 if "0300010102" not in ev:
188 raise Exception("Requested-info-not-available was not indicated")
189 if "0b5f6166706f766572746370c00c000c01" in ev:
190 raise Exception("Unexpected service discovery response contents (Bonjour)")
191 if "045f697070c00c000c01" in ev:
192 raise Exception("Unexpected service discovery response contents (Bonjour mismatching)")
193 if "496e7465726e6574" in ev:
194 raise Exception("Unexpected service discovery response contents (UPnP not expected)")
196 def test_p2p_service_discovery_upnp(dev):
197 """P2P service discovery (UPnP)"""
198 ev = run_sd(dev, "00:00:00:00:00:00", "02000201")
199 if "0b5f6166706f766572746370c00c000c01" in ev:
200 raise Exception("Unexpected service discovery response contents (Bonjour not expected)")
201 if "496e7465726e6574" not in ev:
202 raise Exception("Unexpected service discovery response contents (UPnP)")
204 def test_p2p_service_discovery_upnp2(dev):
205 """P2P service discovery (UPnP using request helper)"""
206 ev = run_sd(dev, "00:00:00:00:00:00", "upnp 10 ssdp:all", "0b00020110737364703a616c6c")
207 if "0b5f6166706f766572746370c00c000c01" in ev:
208 raise Exception("Unexpected service discovery response contents (Bonjour not expected)")
209 if "496e7465726e6574" not in ev:
210 raise Exception("Unexpected service discovery response contents (UPnP)")
212 def test_p2p_service_discovery_upnp3(dev):
213 """P2P service discovery (UPnP using request helper - no match)"""
214 ev = run_sd(dev, "00:00:00:00:00:00", "upnp 10 ssdp:foo", "0b00020110737364703a666f6f")
215 if "0300020102" not in ev:
216 raise Exception("Requested-info-not-available was not indicated")
217 if "0b5f6166706f766572746370c00c000c01" in ev:
218 raise Exception("Unexpected service discovery response contents (Bonjour not expected)")
219 if "496e7465726e6574" in ev:
220 raise Exception("Unexpected service discovery response contents (UPnP)")
222 def test_p2p_service_discovery_ws(dev):
223 """P2P service discovery (WS-Discovery)"""
224 ev = run_sd(dev, "00:00:00:00:00:00", "02000301")
225 if "0b5f6166706f766572746370c00c000c01" in ev:
226 raise Exception("Unexpected service discovery response contents (Bonjour not expected)")
227 if "496e7465726e6574" in ev:
228 raise Exception("Unexpected service discovery response contents (UPnP not expected)")
229 if "0300030101" not in ev:
230 raise Exception("Unexpected service discovery response contents (WS)")
232 def test_p2p_service_discovery_wfd(dev):
233 """P2P service discovery (Wi-Fi Display)"""
234 dev[0].global_request("SET wifi_display 1")
235 ev = run_sd(dev, "00:00:00:00:00:00", "02000401")
237 raise Exception("Unexpected response to invalid WFD SD query")
238 dev[0].global_request("SET wifi_display 0")
239 ev = run_sd(dev, "00:00:00:00:00:00", "0300040100")
240 if "0300040101" not in ev:
241 raise Exception("Unexpected response to WFD SD query (protocol was disabled)")
243 def test_p2p_service_discovery_req_cancel(dev):
244 """Cancel a P2P service discovery request"""
245 if "FAIL" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ ab"):
246 raise Exception("Unexpected SD cancel success")
247 if "FAIL" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ qq"):
248 raise Exception("Unexpected SD cancel success")
249 query = dev[0].global_request("P2P_SERV_DISC_REQ " + dev[1].p2p_dev_addr() + " 02000001")
250 if "OK" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ " + query):
251 raise Exception("Unexpected SD cancel failure")
252 query1 = dev[0].global_request("P2P_SERV_DISC_REQ " + dev[1].p2p_dev_addr() + " 02000001")
253 query2 = dev[0].global_request("P2P_SERV_DISC_REQ " + dev[1].p2p_dev_addr() + " 02000002")
254 query3 = dev[0].global_request("P2P_SERV_DISC_REQ " + dev[1].p2p_dev_addr() + " 02000003")
255 if "OK" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ " + query2):
256 raise Exception("Unexpected SD cancel failure")
257 if "OK" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ " + query1):
258 raise Exception("Unexpected SD cancel failure")
259 if "OK" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ " + query3):
260 raise Exception("Unexpected SD cancel failure")
262 query = dev[0].global_request("P2P_SERV_DISC_REQ 00:00:00:00:00:00 02000001")
263 if "OK" not in dev[0].global_request("P2P_SERV_DISC_CANCEL_REQ " + query):
264 raise Exception("Unexpected SD(broadcast) cancel failure")
266 def test_p2p_service_discovery_go(dev):
267 """P2P service discovery from GO"""
268 addr0 = dev[0].p2p_dev_addr()
269 addr1 = dev[1].p2p_dev_addr()
271 add_bonjour_services(dev[0])
272 add_upnp_services(dev[0])
274 dev[0].p2p_start_go(freq=2412)
276 dev[1].global_request("P2P_FLUSH")
277 dev[1].global_request("P2P_SERV_DISC_REQ " + addr0 + " 02000001")
278 if not dev[1].discover_peer(addr0, social=True, force_find=True):
279 raise Exception("Peer " + addr0 + " not found")
281 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=10)
283 raise Exception("Service discovery timed out")
285 raise Exception("Unexpected service discovery request source")
287 ev = dev[1].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=10)
289 raise Exception("Service discovery timed out")
291 raise Exception("Unexpected service discovery response source")
292 if "0b5f6166706f766572746370c00c000c01" not in ev:
293 raise Exception("Unexpected service discovery response contents (Bonjour)")
294 if "496e7465726e6574" not in ev:
295 raise Exception("Unexpected service discovery response contents (UPnP)")
296 dev[1].p2p_stop_find()
298 dev[0].global_request("P2P_SERVICE_FLUSH")
300 dev[1].global_request("P2P_FLUSH")
301 dev[1].global_request("P2P_SERV_DISC_REQ " + addr0 + " 02000001")
302 if not dev[1].discover_peer(addr0, social=True, force_find=True):
303 raise Exception("Peer " + addr0 + " not found")
304 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=10)
306 raise Exception("Service discovery timed out")
308 raise Exception("Unexpected service discovery request source")
310 ev = dev[1].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=10)
312 raise Exception("Service discovery timed out")
314 raise Exception("Unexpected service discovery response source")
315 if "0300000101" not in ev:
316 raise Exception("Unexpected service discovery response contents (Bonjour)")
317 dev[1].p2p_stop_find()
319 def _test_p2p_service_discovery_external(dev):
320 addr0 = dev[0].p2p_dev_addr()
321 addr1 = dev[1].p2p_dev_addr()
323 if "FAIL" not in dev[0].global_request("P2P_SERV_DISC_EXTERNAL 2"):
324 raise Exception("Invalid P2P_SERV_DISC_EXTERNAL accepted")
325 if "OK" not in dev[0].global_request("P2P_SERV_DISC_EXTERNAL 1"):
326 raise Exception("P2P_SERV_DISC_EXTERNAL failed")
328 dev[1].global_request("P2P_FLUSH")
329 dev[1].global_request("P2P_SERV_DISC_REQ " + addr0 + " 02000001")
330 if not dev[1].discover_peer(addr0, social=True, force_find=True):
331 raise Exception("Peer " + addr0 + " not found")
333 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=10)
335 raise Exception("Service discovery timed out")
337 raise Exception("Unexpected service discovery request source")
340 if "OK" not in dev[0].global_request("P2P_SERV_DISC_RESP %s %s %s %s" % (arg[2], arg[3], arg[4], resp)):
341 raise Exception("P2P_SERV_DISC_RESP failed")
343 ev = dev[1].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=15)
345 raise Exception("Service discovery timed out")
347 raise Exception("Unexpected address in SD Response: " + ev)
348 if ev.split(' ')[4] != resp:
349 raise Exception("Unexpected response data SD Response: " + ev)
350 ver = ev.split(' ')[3]
352 dev[0].global_request("P2P_SERVICE_UPDATE")
354 dev[1].global_request("P2P_FLUSH")
355 dev[1].global_request("P2P_SERV_DISC_REQ " + addr0 + " 02000001")
356 if not dev[1].discover_peer(addr0, social=True, force_find=True):
357 raise Exception("Peer " + addr0 + " not found")
359 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=10)
361 raise Exception("Service discovery timed out")
363 raise Exception("Unexpected service discovery request source")
366 if "OK" not in dev[0].global_request("P2P_SERV_DISC_RESP %s %s %s %s" % (arg[2], arg[3], arg[4], resp)):
367 raise Exception("P2P_SERV_DISC_RESP failed")
369 ev = dev[1].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=15)
371 raise Exception("Service discovery timed out")
373 raise Exception("Unexpected address in SD Response: " + ev)
374 if ev.split(' ')[4] != resp:
375 raise Exception("Unexpected response data SD Response: " + ev)
376 ver2 = ev.split(' ')[3]
378 raise Exception("Service list version did not change")
380 for cmd in [ "%s%s%s%s" % (arg[2], arg[3], arg[4], resp),
381 "%s %s %s %s" % ("0", arg[3], arg[4], resp),
382 "%s %s %s %s" % (arg[2], "foo", arg[4], resp),
383 "%s %s%s%s" % (arg[2], arg[3], arg[4], resp),
384 "%s %s %s%s" % (arg[2], arg[3], arg[4], resp),
385 "%s %s %s %s" % (arg[2], arg[3], arg[4], "12345"),
386 "%s %s %s %s" % (arg[2], arg[3], arg[4], "qq") ]:
387 if "FAIL" not in dev[0].global_request("P2P_SERV_DISC_RESP " + cmd):
388 raise Exception("Invalid P2P_SERV_DISC_RESP accepted: " + cmd)
390 def test_p2p_service_discovery_external(dev):
391 """P2P service discovery using external response"""
393 _test_p2p_service_discovery_external(dev)
395 dev[0].global_request("P2P_SERV_DISC_EXTERNAL 0")
397 def test_p2p_service_discovery_invalid_commands(dev):
398 """P2P service discovery invalid commands"""
399 for cmd in [ "bonjour",
408 if "FAIL" not in dev[0].global_request("P2P_SERVICE_ADD " + cmd):
409 raise Exception("Invalid P2P_SERVICE_ADD accepted: " + cmd)
411 for cmd in [ "bonjour",
418 if "FAIL" not in dev[0].global_request("P2P_SERVICE_DEL " + cmd):
419 raise Exception("Invalid P2P_SERVICE_DEL accepted: " + cmd)
421 def test_p2p_service_discovery_cancel_during_query(dev):
422 """P2P service discovery and cancel during query"""
424 add_bonjour_services(dev[i])
425 add_upnp_services(dev[i])
426 add_extra_services(dev[i])
429 dev[2].request("P2P_FLUSH")
430 id1 = dev[2].request("P2P_SERV_DISC_REQ 00:00:00:00:00:00 02000201")
431 id2 = dev[2].request("P2P_SERV_DISC_REQ 00:00:00:00:00:00 02000101")
432 dev[2].p2p_find(social=True)
433 ev = dev[2].wait_global_event(["P2P-DEVICE-FOUND"], timeout=15)
435 raise Exception("Could not discover peer")
436 if "OK" not in dev[2].request("P2P_SERV_DISC_CANCEL_REQ " + id1):
437 raise Exception("Failed to cancel req1")
438 if "OK" not in dev[2].request("P2P_SERV_DISC_CANCEL_REQ " + id2):
439 raise Exception("Failed to cancel req2")
440 ev = dev[2].wait_global_event(["P2P-SERV-DISC-RESP"], timeout=3)
441 # we may or may not get a response depending on timing, so ignore the result
442 dev[2].p2p_stop_find()
443 dev[1].p2p_stop_find()
444 dev[0].p2p_stop_find()
446 def get_p2p_state(dev):
447 res = dev.global_request("STATUS")
449 for line in res.splitlines():
450 if line.startswith("p2p_state="):
451 p2p_state = line.split('=')[1]
453 if p2p_state is None:
454 raise Exception("Could not get p2p_state")
457 def test_p2p_service_discovery_peer_not_listening(dev):
458 """P2P service discovery and peer not listening"""
459 addr0 = dev[0].p2p_dev_addr()
460 addr1 = dev[1].p2p_dev_addr()
461 add_bonjour_services(dev[0])
462 add_upnp_services(dev[0])
464 dev[1].global_request("P2P_FIND 1 type=social")
465 ev = dev[1].wait_global_event(["P2P-DEVICE-FOUND"], timeout=4)
467 raise Exception("Peer not found")
468 dev[0].p2p_stop_find()
469 ev = dev[1].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=1)
470 ev = dev[1].wait_event(["CTRL-EVENT-SCAN-STARTED"], timeout=1)
472 dev[1].request("P2P_SERV_DISC_REQ " + addr0 + " 02000001")
473 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=1)
475 raise Exception("Service discovery request unexpectedly received")
476 ev = dev[1].wait_global_event(["P2P-FIND-STOPPED", "P2P-SERV-DISC-RESP"],
479 raise Exception("P2P-FIND-STOPPED event timed out")
480 if "P2P-SERV-DISC-RESP" in ev:
481 raise Exception("Unexpected SD response")
482 p2p_state = get_p2p_state(dev[1])
483 if p2p_state != "IDLE":
484 raise Exception("Unexpected p2p_state after P2P_FIND timeout: " + p2p_state)
486 def test_p2p_service_discovery_peer_not_listening2(dev):
487 """P2P service discovery and peer not listening"""
488 addr0 = dev[0].p2p_dev_addr()
489 addr1 = dev[1].p2p_dev_addr()
490 add_bonjour_services(dev[0])
491 add_upnp_services(dev[0])
493 dev[1].global_request("P2P_FIND type=social")
494 ev = dev[1].wait_global_event(["P2P-DEVICE-FOUND"], timeout=10)
496 raise Exception("Peer not found")
497 dev[0].p2p_stop_find()
499 dev[1].request("P2P_SERV_DISC_REQ " + addr0 + " 02000001")
500 ev = dev[0].wait_global_event(["P2P-SERV-DISC-REQ"], timeout=0.5)
502 raise Exception("Service discovery request unexpectedly received")
503 dev[1].p2p_stop_find()
504 ev = dev[1].wait_global_event(["P2P-FIND-STOPPED", "P2P-SERV-DISC-RESP"],
507 raise Exception("P2P-FIND-STOPPED event timed out")
508 if "P2P-SERV-DISC-RESP" in ev:
509 raise Exception("Unexpected SD response")
510 p2p_state = get_p2p_state(dev[1])
511 if p2p_state != "IDLE":
512 raise Exception("Unexpected p2p_state after P2P_FIND timeout: " + p2p_state)