2022-07-21 16:43:08

by Dylan Van Assche

[permalink] [raw]
Subject: bnep: Can't add bnep0 to the bridge btnap0: Invalid argument(22)

Hi,

I'm trying to setup a Bluetooth hotspot using NAP with BlueZ and
NetworkManager. However, I cannot fix the following error:

bnep: Can't add bnep0 to the bridge btnap0: Invalid argument(22)

I have created a network bridge as followed:

brctl addbr btnap0

and used test-nap [1] as followed:

test-nap btnap0

when the client connect, you can see in the logs that BlueZ tries to
link the bnep0 interface it is creating with the btnap0 bridge, but
fails to do that.

Logs:

profiles/network/server.c:confirm_event() BNEP: incoming connect from
XX:XX:XX:XX:XX:XX
profiles/network/bnep.c:bnep_getsuppfeat() supported features: 0x1
profiles/network/bnep.c:bnep_add_to_bridge() bnep: Can't add bnep0 to
the bridge btnap0: Invalid argument(22)
profiles/network/server.c:bnep_setup() BNEP server cannot be added

Environment:

BlueZ 5.64
postmarketOS edge / Alpine Linux (musl libc)
Qualcomm wcn3990 Bluetooth adaptor
Linux 5.18.3 (arm64)

Did I miss something to set this up?

Kind regards,
Dylan Van Assche

[1]
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/test-nap


2022-07-23 14:34:57

by Dylan Van Assche

[permalink] [raw]
Subject: Re: bnep: Can't add bnep0 to the bridge btnap0: Invalid argument(22)

Answering this myself as I found the solution for my problem for futher
reference:

On Thu, 2022-07-21 at 18:30 +0200, Dylan Van Assche wrote:
> Hi,
>
> I'm trying to setup a Bluetooth hotspot using NAP with BlueZ and
> NetworkManager. However, I cannot fix the following error:
>
> bnep: Can't add bnep0 to the bridge btnap0: Invalid argument(22)

Turns out that the device I have here has incorrect MAC addresses for
WiFi and Bluetooth. I could lay my hands on a different device and
there bnep0 gets properly added to the bridge since the MAC addresses
were not rejected by the Linux kernel bridge driver.

>
> I have created a network bridge as followed:
>
> brctl addbr btnap0
>
> and used test-nap [1] as followed:
>
> test-nap btnap0
>
> when the client connect, you can see in the logs that BlueZ tries to
> link the bnep0 interface it is creating with the btnap0 bridge, but
> fails to do that.
>
> Logs:
>
> profiles/network/server.c:confirm_event() BNEP: incoming connect from
> XX:XX:XX:XX:XX:XX
> profiles/network/bnep.c:bnep_getsuppfeat() supported features: 0x1
> profiles/network/bnep.c:bnep_add_to_bridge() bnep: Can't add bnep0 to
> the bridge btnap0: Invalid argument(22)
> profiles/network/server.c:bnep_setup() BNEP server cannot be added
>
> Environment:
>
> BlueZ 5.64
> postmarketOS edge / Alpine Linux (musl libc)
> Qualcomm wcn3990 Bluetooth adaptor
> Linux 5.18.3 (arm64)
>
> Did I miss something to set this up?
>
> Kind regards,
> Dylan Van Assche
>
> [1]
> https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/test-nap

Kind reagards,
Dylan Van Assche