Skip to contentSkip to conversation

Checking p2p capabilities

DISCUSSION [email protected] 2 participants 2 messages Jan 19, 2016

lore
Share & tools
lore
#0 lore raw

Hi, I'm maintainer of https://github.com/albfan/miraclecast and as a project with specific hardware needs, I build a hardware tester, but it is to naive:

https://github.com/albfan/miraclecast/blob/master/res/miracle-utils.sh#L68

basically it look for p2p interface modes grepping iw phy <phyname> info.

Lot of people trying miraclecast ask me:why it's device do not support p2p? (while it's documentation says it does, many times is just what they think, not reality).

I wonder if that is a matter of driver, modules or pure hardware. Is there any way to check it directly and not from a grep inside iw ?.

something like:

iw phy wlp3s0 get P2P-client
iw phy wlp3s0 get P2P-GO

About kernel, modules and hardware, are they completely black box for others?, I mean, can I detect if my device hardware supports some interface but my driver or module can't?

At this point my script informs pretty well, and there's a few people ask such things, but I would like to check it in a better way, even with an api inside my project

Something related with this lines I could check by myself (I use that clone for it's line anchors)

https://github.com/cozybit/iw/blob/master/util.c#L124
https://github.com/cozybit/iw/blob/master/info.c#L276

NL80211_ATTR_SUPPORTED_IFTYPES
NL80211_IFTYPE_MAX

#1 lore raw
Quoted 3 lines · On Tue, 2016-01-19 at 12:34 +0100, [email protected] wrote:

Lot of people trying miraclecast ask me:why it's device do not support p2p?  (while it's documentation says it does, many times is just what they think, not reality).

Well, often the documentation is for the windows or vendor driver, not for the upstream driver.

Quoted 7 lines

I wonder if that is a matter of driver, modules or pure hardware. Is there any way to check it directly and not from a grep inside iw ?.

something like:

iw phy wlp3s0 get P2P-client
iw phy wlp3s0 get P2P-GO

I'm not sure it makes sense to add commands to iw for that, but you can use python or C code to talk to nl80211 directly.

Quoted 3 lines

About kernel, modules and hardware, are they completely black box for others?, I mean, can I detect if my device hardware supports some interface but my driver or module can't?

No, you can't detect that.

Quoted 4 lines

At this point my script informs pretty well, and there's a few people ask such things, but I would like to check it in a better way, even with an api inside my project

Quoted 9 lines

Something related with this lines I could check by myself (I use that clone for it's line anchors)

https://github.com/cozybit/iw/blob/master/util.c#L124
https://github.com/cozybit/iw/blob/master/info.c#L276

NL80211_ATTR_SUPPORTED_IFTYPES
NL80211_IFTYPE_MAX

Right, you'd do something along these lines to directly speak to nl80211 and query the supported interface types.

johannes