On 22 January 2015 at 19:22, Jussi Kukkonen <jussi.kukkonen(a)intel.com> wrote:
First a little context for those who haven't heard of this:
Connman
uses "go-intent" (a 0-15 figure that describes how much it wants to be
group owner & DHCP server) to a value 7. Android source seems to use
value 0 -- I'll still have to confirm the android value though.
Confirming this: Connecting from Android source to our sink leads to
Android sending a GO Negotiation Request and Response with
go-intent=0. So android really wants to avoid being GO: They're
completely in their right to do so as well: they also say they do not
support coupled sink operation.
The only explanation I can think of for the original findings is that
some sink developers have only tested with sources with go-intent=0
and their stack is buggy in all other cases :(
So when we are a source:
* If we want to interoperate with sinks like the Netgear device we
need to set go-intent=0 when the sink does _not_ support coupled sink
operation (or if we don't support coupled sink operation)
* But to be a spec compliant source we would need to set go-intent=15
when the sink we are connecting to is a coupled sink
Correct?
I originally thought this is purely a Connman problem: that they need
to make P2P just work (even if the details require Miracast
knowledge). But this is looking more like an IOP hack... I still think
the cleanest solution is that connman looks at the IEs of the other
peer and makes educated guesses on GO-intent but I can live with an
API that lets us affect the go-intent somehow.
- Jussi