Hi again,<div><br></div><div>let me describe another interoperability problem found while testing my wpa_supplicant based P2P implementation.</div><div>The peer device is Sony Bravia TV with Wi-Fi Direct support (KDL-22EX320). This device is a persistent GO.</div>
<div><br></div><div>The problem is the following (wpa_cli used):</div><div><br></div><div>[wpa_cli] p2p_find</div><div><div>P2P-DEVICE-FOUND 12:a0:96:9e:cd:5b p2p_dev_addr=02:a0:96:9e:cd:5b pri_dev_type=7-0050F204-1 name='BRAVIA KDL-22EX320' config_methods=0x188 dev_capab=0x21 group_capab=0x3</div>
</div><div>[wpa_cli] p2p_connect 02:a0:96:9e:cd:5b pbc join</div><div>[Bravia] A pop up appears and I confirm the connection.</div><div><br></div><div>After that nothing happens till the connection times out.</div><div><br>
</div><div>Notable is, if I switch the TV to automatic mode (no confirmation), it works just fine. So I investigated this deeper, including getting / analyzing air logs and it turns out the problem is the following.</div>
<div><br></div><div>Before the connection is confirmed, TV responds to probe requests with responses that don't include active session attribute (which is quite fine IMO). So connection process on my prototype device is not started and the scan is rescheduled. But after the connection has been confirmed, the TV would not respond to probe requests at all so that's why nothing happens. And it actually turns out to be the valid behavior also: according to the specification, a Wi-Fi Direct device should not answer to probe requests that either do not contain P2P wildcard SSID or do not contain this device's SSID while in listen mode.</div>
<div>And the scan wpa_supplicant runs in this case is just plain wildcard scan (no SSID at all). This is of course valid for basic WPS case but is not going to work with P2P.</div><div><br></div><div>So what's next? I'm eager to come back with a patch but it looks like we need to have a common ground on how to fix this. I suggest that we run specific scan in P2P case for this SSID (it is known by p2p_supplicant), it will require very minimal changes in the whole flow. Alternatively, P2P wildcard SSID can be used but then there should be some additional logic in picking up the right session (e. g. if the scan was run for P2P wildcard, do not request exact SSID match). Of course one may have a better idea :)</div>
<div><br></div><div>Looking forward to suggestions,</div><div><br></div><div>Thanks,</div><div> Vitaly</div>