Bug 537089

Summary: NetworkManager doesn't recognise bnep0 device
Product: [Fedora] Fedora Reporter: Bradley <bbaetz>
Component: bluemanAssignee: Juan Manuel Rodriguez <nushio>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 12CC: dcbw, nushio
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: blueman-1.21-2.fc12.x86_64 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-11-13 04:46:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Bradley 2009-11-12 13:29:48 UTC
Description of problem:

I have a (non-jailbroken) iPhone that supports tethering. The iPhone only supports DUN not PAN, which I believe NM doesn't yet support natively. I know that its coming, and there are other bugs tracking that, but in the meantime  blueman does support this, creating a virtual bnep0 device. However, that device that is created isn't recognised by NM.

Version-Release number of selected component (if applicable):

blueman-1.21-1.fc12.x86_64
NetworkManager-0.7.996-6.git20091021.fc12.x86_64

How reproducible:

Always

Steps to Reproduce:
1. Upgrade to blueman from updates-testing
2. Manually run the applet if its crashes on startup (bug 536786)
3. Pair and connect to iphone using DUN
  
Actual results:

Blueman sets up bnep0 interface, NM logs:

Nov 13 00:12:09 plum NetworkManager: <WARN>  device_creator(): /sys/devices/pci0000:00/0000:00:1d.2/usb7/7-2/7-2:1.0/bluetooth/hci0/hci0:11/bnep0: couldn't determine device driver; ignoring...

No internet access

Expected results:

NM treats bnep0 just like an ethX interface, run a DHCP client, and connects

Additional info:

If I manually run |dhcpdc bnep0| I can connect to the internet without problems (except of course that NM still claims that I'm not connected to any program that asks)

If this is a "shouldn't be working yet" case in NM, then it should be reassigned to blueman as a regression from F11, where it used to work.

lshal results:

udi = '/org/freedesktop/Hal/devices/net_00_1e_37_5c_54_50'
  info.capabilities = {'net', 'net.bluetooth', 'net.80203'} (string list)
  info.category = 'net.80203'  (string)
  info.linux.driver = 'bnep'  (string)
  info.parent = '/org/freedesktop/Hal/devices/bluetooth_acl_26b08178a8'  (string)
  info.product = 'Bluetooth Interface'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_00_1e_37_5c_54_50'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb7/7-2/7-2:1.0/bluetooth/hci0/hci0:11/bnep0'  (string)
  net.address = '00:1e:37:5c:54:50'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  net.bluetooth.mac_address = 129777816656  (0x1e375c5450)  (uint64)
  net.interface = 'bnep0'  (string)
  net.linux.ifindex = 10  (0xa)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/bluetooth_acl_26b08178a8'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/bluetooth_acl_26b08178a8'  (string)

Comment 1 Bradley 2009-11-12 21:01:50 UTC
blueman-1.21-2.fc12.x86_64 fixes the crash, but also breaks this entirely - the change that 'Disables HAL and enabled PolKit1 for Fedora 12' now does talk to NM, and logs to /var/log/messages:

Nov 13 07:55:55 plum NetworkManager: bluez_manager_bdaddr_added_cb: BT device Bradley’s iPhone (00:26:B0:81:78:A8) added (NAP)
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): new Bluetooth device (driver: 'bluez')
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): exported as /org/freedesktop/NetworkManager/Devices/9
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): now managed
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 1 -> 2 (reason 2)
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): deactivating device (reason: 2).
Nov 13 07:55:55 plum NetworkManager: flush_routes: assertion `iface_idx >= 0' failed
Nov 13 07:55:55 plum NetworkManager: flush_addresses: assertion `iface_idx >= 0' failed
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 2 -> 3 (reason 0)
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) starting connection 'Network Access Point on Bradley’s iPhone'
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 3 -> 4 (reason 0)
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) Stage 1 of 5 (Device Prepare) scheduled...
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) Stage 1 of 5 (Device Prepare) started...
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) Stage 2 of 5 (Device Configure) scheduled...
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) Stage 1 of 5 (Device Prepare) complete.
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) Stage 2 of 5 (Device Configure) starting...
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 4 -> 5 (reason 0)
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) Stage 2 of 5 (Device Configure) complete.
Nov 13 07:55:55 plum bluetoothd[2958]: Connection refused (111)
Nov 13 07:55:55 plum NetworkManager: <WARN>  nm_device_bt_connect_cb(): Error connecting with bluez: Connection refused (111)
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 5 -> 9 (reason 0)
Nov 13 07:55:55 plum NetworkManager: <info>  Marking connection 'Network Access Point on Bradley’s iPhone' invalid.
Nov 13 07:55:55 plum NetworkManager: <info>  Activation (00:26:B0:81:78:A8) failed.
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 9 -> 3 (reason 0)
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): deactivating device (reason: 0).
Nov 13 07:55:55 plum NetworkManager: flush_routes: assertion `iface_idx >= 0' failed
Nov 13 07:55:55 plum NetworkManager: flush_addresses: assertion `iface_idx >= 0' failed
Nov 13 07:55:55 plum dbus: Rejected send message, 3 matched rules; type="error", sender=":1.78" (uid=0 pid=2957 comm="/usr/sbin/bluetoothd) interface="(unset)" member="(unset)" error name="org.bluez.Error.Failed" requested_reply=0 destination=":1.7" (uid=0 pid=1376 comm="NetworkManager))
Nov 13 07:55:55 plum nscd: 4563 Access Vector Cache (AVC) started
Nov 13 07:55:55 plum NetworkManager: <info>  Policy set 'Auto eth0' (eth0) as default for routing and DNS.
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): now unmanaged
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): device state change: 3 -> 1 (reason 36)
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): cleaning up...
Nov 13 07:55:55 plum NetworkManager: <info>  (00:26:B0:81:78:A8): taking down device.

and fails entirely (with blueman immediately disconnecting the NAP connection), so my previous workarround doesn't work.

Still not sure if this is an NM bug, or if BlueMan now does the right thing, but NM can't cope. However, it used to work on F11, so....

Comment 2 Juan Manuel Rodriguez 2009-11-12 21:32:15 UTC
I'm downloading Fedora 12 RC4 and will install it later tonight on my machine (instead of a virtual one) to debug and fix this. I'm sure its a compile flag issue. 

Thanks for the report.

Comment 3 Bradley 2009-11-12 21:44:02 UTC
Thanks. Note that NM doesn't support DUN devices yet, so the 'bug' may be that blueman is now trying to do it properly using NetworkManager rather than itself. I don't have a device that supports PAN to see if that works.

Comment 4 Bradley 2009-11-13 04:46:32 UTC
It works this morning (after a reboot), and it appears that I was wrong - the iPhone does support PAN.

Submitting this over BT...