linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arend van Spriel <arend.vanspriel@broadcom.com>
To: Hans de Goede <hdegoede@redhat.com>,
	Franky Lin <franky.lin@broadcom.com>,
	Hante Meuleman <hante.meuleman@broadcom.com>,
	Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com
Subject: Re: [PATCH resend] brcmfmac: p2p and normal ap access are not always possible at the same time
Date: Fri, 2 Mar 2018 10:53:51 +0100	[thread overview]
Message-ID: <5A991F2F.4030300@broadcom.com> (raw)
In-Reply-To: <9f9d98c5-bf5d-6448-ea42-c378b6fb95da@redhat.com>

On 3/1/2018 11:37 PM, Hans de Goede wrote:
> Hi,
>
> On 01-03-18 20:54, Arend van Spriel wrote:
>> On 3/1/2018 9:35 AM, Hans de Goede wrote:
>>> HI,
>>>
>>> On 28-02-18 20:43, Arend van Spriel wrote:
>>>> On 2/28/2018 3:52 PM, Hans de Goede wrote:
>>>>> Hi,
>>>>>
>>>>> On 27-02-18 00:04, Arend van Spriel wrote:
>>>>>> On 2/26/2018 12:22 PM, Hans de Goede wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> On 26-02-18 12:01, Arend van Spriel wrote:
>>>>>>>> On 2/26/2018 11:29 AM, Hans de Goede wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> On 26-02-18 11:22, Arend van Spriel wrote:
>>>>>>>>>> On 2/25/2018 3:52 PM, Hans de Goede wrote:
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> On 26-05-17 12:57, Hans de Goede wrote:
>>>>>>>>>>>> The firmware responding with -EBUSY when trying to add an extra
>>>>>>>>>>>> virtual-if
>>>>>>>>>>>> is a normal thing, do not print an error for this.
>>>>>>>>>>>>
>>>>>>>>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>>>>>>>>
>>>>>>>>>>> I'm now seeing this on another device too, but this time the
>>>>>>>>>>> error
>>>>>>>>>>> thrown is -EBADE, this seems to be new with recent kernels:
>>>>>>>>>>
>>>>>>>>>> Yup. Before we were passing firmware errors up to user-space,
>>>>>>>>>> which
>>>>>>>>>> was confusing and potentially be misinterpreted. However,
>>>>>>>>>> looking at
>>>>>>>>>> the output below it would have been good to log the firmware
>>>>>>>>>> error as
>>>>>>>>>> well. And staring at it some more I suddenly realize I broke the
>>>>>>>>>> feature detection module with this change. Actually only the
>>>>>>>>>> GSCAN
>>>>>>>>>> feature detection.
>>>>>>>>>>
>>>>>>>>>>> [root@localhost ~]# dmesg | grep brcmfmac
>>>>>>>>>>> [   34.265950] usbcore: registered new interface driver brcmfmac
>>>>>>>>>>> [   34.266059] brcmfmac 0000:01:00.0: enabling device (0000 ->
>>>>>>>>>>> 0002)
>>>>>>>>>>> [   34.376468] brcmfmac: brcmf_fw_map_chip_to_name: using
>>>>>>>>>>> brcm/brcmfmac4356-pcie.bin for chip 0x004356(17238) rev 0x000002
>>>>>>>>>>> [   34.855143] brcmfmac 0000:01:00.0: Direct firmware load for
>>>>>>>>>>> brcm/brcmfmac4356-pcie.clm_blob failed with error -2
>>>>>>>>>>> [   34.855147] brcmfmac: brcmf_c_process_clm_blob: no clm_blob
>>>>>>>>>>> available(err=-2), device may have limited channels available
>>>>>>>>>>> [   34.857029] brcmfmac: brcmf_c_preinit_dcmds: Firmware
>>>>>>>>>>> version =
>>>>>>>>>>> wl0:
>>>>>>>>>>> Jun  4 2017 16:50:07 version 7.35.101.6 (r702795) FWID
>>>>>>>>>>> 01-5e8eb735
>>>>>>>>>>> [   34.938854] brcmfmac 0000:01:00.0 wlp1s0: renamed from wlan0
>>>>>>>>>>> [   37.086420] brcmfmac: brcmf_p2p_create_p2pdev: set p2p_disc
>>>>>>>>>>> error
>>>>>>>>>>> [   37.086431] brcmfmac: brcmf_cfg80211_add_iface: add iface
>>>>>>>>>>> p2p-dev-wlp1s0 type 10 failed: err=-52
>>>>>>>>>>>
>>>>>>>>>>> [root@localhost ~]# strings
>>>>>>>>>>> /lib/firmware/brcm/brcmfmac4356-pcie.bin |
>>>>>>>>>>> tail -n 1
>>>>>>>>>>> 4356a2-roml/pcie-ag-msgbuf-splitrx-p2p-pno-aoe-pktfilter-keepalive-sr-mchan-pktctx-proptxstatus-ampduhostreorder-lpc-pwropt-txbf-wl11u-mfp-tdls-amsdutx-sarctrl-proxd-hs20sta-rcc-wepso-ndoe-linkstat-gscan-hchk-logtrace-roamexp-rmon
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Version: 7.35.101.6 (r702795) CRC: 4f3f65c5 Date: Sun 2017-06-04
>>>>>>>>>>> 16:51:38 PDT Ucode Ver: 963.316 FWID: 01-5e8eb735
>>>>>>>>>>>
>>>>>>>>>>> It would be good if we can silence these errors, or maybe at a
>>>>>>>>>>> minimum lower their log-level from error to warning?
>>>>>>>>>>
>>>>>>>>>> I had a look at it and it seems to be a difference in firmware
>>>>>>>>>> api
>>>>>>>>>> that we need to support in the driver. Need to do a bit more
>>>>>>>>>> digging,
>>>>>>>>>> but it seems an actual issue. You could silence it for now, but I
>>>>>>>>>> prefer to wait for the fix.
>>>>>>>>>
>>>>>>>>> Ok, what is the ETA of a fix for this?
>>>>>>>>
>>>>>>>> Actually went back to an old log you sent and noticed:
>>>>>>>>
>>>>>>>> [   15.714569] brcmfmac: brcmf_attach Enter
>>>>>>>> [   15.714756] brcmfmac: brcmf_fweh_register event handler
>>>>>>>> registered
>>>>>>>> for PSM_WATCHDOG
>>>>>>>> [   15.714757] brcmfmac: brcmf_proto_attach Enter
>>>>>>>> [   15.716598] brcmfmac: brcmf_bus_started
>>>>>>>> [   15.716603] brcmfmac: brcmf_add_if Enter, bsscfgidx=0, ifidx=0
>>>>>>>> [   15.716604] brcmfmac: brcmf_add_if allocate netdev interface
>>>>>>>> [   15.716622] brcmfmac: brcmf_add_if  ==== pid:2a, if:wlan%d
>>>>>>>> (00:00:00:00:00:00) created ===
>>>>>>>> [   15.716624] brcmfmac: brcmf_bus_change_state 0 -> 1
>>>>>>>> [   15.717841] brcmfmac: brcmf_fil_iovar_data_get ifidx=0,
>>>>>>>> name=cur_etheraddr, len=6
>>>>>>>> [   15.717843] brcmutil: data
>>>>>>>> [   15.717847] 00000000: 44 2c 05 9e c9 02   D,....
>>>>>>>>
>>>>>>>> So mac address of the device is 44:2c:05:9e:c9. However, further
>>>>>>>> down
>>>>>>>> I see:
>>>>>>>>
>>>>>>>> [   17.819113] brcmfmac: brcmf_netdev_set_mac_address Enter,
>>>>>>>> bsscfgidx=0
>>>>>>>> [   17.819122] brcmfmac: brcmf_fil_iovar_data_set ifidx=0,
>>>>>>>> name=cur_etheraddr, len=6
>>>>>>>> [   17.819127] brcmutil: data
>>>>>>>> [   17.819135] 00000000: aa 3e 81 77 bc 40   .>.w.@
>>>>>>>> [   17.819864] brcmfmac: brcmf_netdev_set_mac_address updated to
>>>>>>>> aa:3e:81:77:bc:40
>>>>>>>>
>>>>>>>> So the mac address in a local admin variant.
>>>>>>>
>>>>>>> Right, this is likely NetworkManager randomizing the mac for privacy
>>>>>>> reasons.
>>>>>>>
>>>>>>>> Now our firmware has a requirement for the p2p-dev interface
>>>>>>>> that it
>>>>>>>> should be different from the mac address of the primary interface,
>>>>>>>> ie.
>>>>>>>> wlp1s0 in this log. In brcmfmac we try to do that by setting the
>>>>>>>> local
>>>>>>>> admin bit, but... as it is already set we end up using the same mac
>>>>>>>> address hence the -EBUSY.
>>>>>>>
>>>>>>> Ah, that is good to know, so how can we fix this? Can userspace
>>>>>>> specify a
>>>>>>> different mac-address when it asks for the p2p-dev intf to be
>>>>>>> created? Or
>>>>>>> should we do something about this in the kernel?
>>>>>>
>>>>>> So this is the patch I tested. Maybe you can verify it works for you
>>>>>> as well.
>>>>>
>>>>> I can confirm that this fixes the errors, but I do not think that this
>>>>> is a good
>>>>> solution, using the permanent mac address for the p2p interface has
>>>>> the
>>>>> same
>>>>> privacy problem as using it regularly. IMHO it would be best to just
>>>>> generate
>>>>> a random mac address if none is specified. This is what the kernel
>>>>> seems
>>>>> to do
>>>>> in general when it needs a mac address and none is specified. You can
>>>>> use the
>>>>> eth_random_addr(u8 *addr) function for this, which will also set the
>>>>> local
>>>>> admin bit for you already.
>>>>
>>>> Hi Hans,
>>>>
>>>> Thanks for the suggestion. However, in wireless subsystem mac
>>>> randomization is requested by user-space upon scanning. This is still
>>>> possible with the p2p-dev interface.
>>>>
>>>> The mac randomization that NetworkManager seemed to be doing is simply
>>>> changing the mac address of the network interface. I suppose it does
>>>> that repeatedly upon some interval?
>>>
>>> I'm not familiar with the involved NetworkManager / wpa_supplicant code,
>>> but I would assume it uses something smarter where the MAC does not
>>> change while connected.
>>>
>>>> As the p2p-dev interface has no network interface associated with it
>>>> that is not possible. It can only specify a (random) mac address upon
>>>> creation.
>>>>
>>>> Still I do not really object to use eth_random_addr() but it does not
>>>> give any real privacy so that should not be used as an argument. I
>>>> will respin the patches.
>>>
>>> Great, thank you.
>>
>> Ok. So I did sent out v3 of these patches, but now I am in doubt
>> because I decided to check the WFA P2P spec and here is what it says
>> about the P2P-Device address:
>>
>> """
>> The P2P Device Address of a P2P Device shall be its globally
>> administered MAC address, or its globally administered MAC address
>> with the locally administered bit set
>> """
>
> That is nice and all, but given all the efforts we've done to not make a
> device uniquely identifiable to peers this seems like a bad idea. And
> the peer
> cannot really check this, so things should work fine anyways.

Let drop a bomb :-p MAC randomization is a stupid marketing trick to get 
the paranoid people into using a device so the big internet companies 
can keep perfect taps on them through the apps they use. Just a random 
thought from a different kind of paranoid guy.

>> I read the term "globally administered MAC address" as the permanent
>> mac address. Not sure if it really matters though. At least the P2P
>> discovery seems to be working. Did not get to setting up an actual P2P
>> connection yet.
>
> Right, I don't think that this matters.

Indeed. Let's stick to v3.

Regards,
Arend

  reply	other threads:[~2018-03-02  9:53 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-26 10:57 [PATCH resend 0/1] brcmfmac: p2p and normal ap access are not always possible at the same time Hans de Goede
2017-05-26 10:57 ` [PATCH resend] " Hans de Goede
2017-06-13  5:58   ` [resend] " Kalle Valo
2017-08-04 12:35   ` [PATCH resend] " Arend van Spriel
2017-08-30 10:24     ` Hans de Goede
2017-08-30 10:30       ` Hans de Goede
2017-10-19 11:20         ` Hans de Goede
2018-02-25 14:52   ` Hans de Goede
2018-02-26 10:22     ` Arend van Spriel
2018-02-26 10:29       ` Hans de Goede
2018-02-26 11:01         ` Arend van Spriel
2018-02-26 11:22           ` Hans de Goede
2018-02-26 11:36             ` Arend van Spriel
2018-02-26 23:04             ` Arend van Spriel
2018-02-28 14:52               ` Hans de Goede
2018-02-28 19:43                 ` Arend van Spriel
2018-03-01  8:35                   ` Hans de Goede
2018-03-01 19:54                     ` Arend van Spriel
2018-03-01 22:37                       ` Hans de Goede
2018-03-02  9:53                         ` Arend van Spriel [this message]
2017-05-26 11:08 ` [PATCH resend 0/1] " Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A991F2F.4030300@broadcom.com \
    --to=arend.vanspriel@broadcom.com \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=franky.lin@broadcom.com \
    --cc=hante.meuleman@broadcom.com \
    --cc=hdegoede@redhat.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).