2004-05-17 10:02:58

by Diego Liziero

[permalink] [raw]
Subject: [Bluez-devel] Re: [Bridge] bridging bluetooth bnep devices with kernel 2.6.6-*

Thanks for your support.

I'm back with the "brige freezes when bluetooth bnep0 disconnects
before bnep1" issue.

As reported in the bluez-devel mailing list, in a bridge
called pan0 with the interfaces bnep0, bnep1, .. bnep6
connected, if the interface bnep6 is disconnected first,
everything works fine, but if bnep0 is disconnected before
the others, the bridge stops to work.

Arping from bnep1 to the brige results in just the first
answer received.

To make it work again I have to use the following dirty hack:
brctl delif pan0 bnep1
brctl addif pan0 bnep1

Someone in the bluez-devel mailing list told that also setting the
bridge in promiscuous mode with tcpdump makes the bridge
back to work.

Now I'm removing and re-adding all the bridge components
when hotplug detects that a "bnep?" device ceases to exist.

Any better solution?

Regards,
Diego

On Thu, 2004-05-13 at 20:15, Diego Liziero wrote:
> Sorry, I've been too quick in writing without realizing
> that the patch had been already posted to this mailing list.
>
> This patch solved everything.
>
> Thank you.
>
> BTW, there is another issue that may be related to the bridge
> that is being discussed on bluez-devel mailing list:
>
> http://thread.gmane.org/gmane.linux.bluez.devel/2160
>
> Regards,
>
> Diego
>
> On Thu, 2004-05-13 at 19:28, Stephen Hemminger wrote:
> > 2.6.6 got too picky about multiple interfaces with the same
> > address. This patch has been already integrated for later releases.
>



-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel


2004-05-19 17:00:56

by David Woodhouse

[permalink] [raw]
Subject: Re: [Bluez-devel] Re: [Bridge] bridging bluetooth bnep devices with kernel 2.6.6-*

On Tue, 2004-05-18 at 15:36 -0700, Stephen Hemminger wrote:
> Hmm, since all the blue tooth devices have the same address.
> Deleting the first one will cause the entry in the forwarding table
> to be deleted, that might cause your problem. Perhaps we need a
> reference count on the number of interfaces with the same address (yuck).

That seems like a reasonable answer. I believe there's also some
workstation hardware with multiple Ethernet devices, all sharing the
same MAC address (== hostid). It's not just Bluetooth. How does this
work with VLAN bridging?

Precisely what is it that's indexed on the interface's MAC address,
rather than the (index of the) physical interface itself?

--
dwmw2



-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2004-05-19 09:34:05

by Diego Liziero

[permalink] [raw]
Subject: [Bluez-devel] Re: [Bridge] bridging bluetooth bnep devices with kernel 2.6.6-*

Thanks for your help.

I forgot to mention the steps I did to setup the bridge.

I have 2 ethernet cards, eth0->to internet,
eth1->192.168.* natted lan.

I'm using a Debian with hotplug and in
/etc/network/interfaces I have the following lines:

iface pan0 inet static
pre-up brctl addbr pan0
pre-up brctl addif pan0 eth1
pre-up ifconfig eth1 0.0.0.0
address 192.168.111.1
netmask 255.255.255.0
up brctl setfd pan0 0
up brctl stp pan0 disable
up /etc/init.d/dhcp3-server restart
post-down brctl delbr pan0
post-down ifconfig eth1 192.168.111.1 netmask 255.255.255.0
post-down /etc/init.d/dhcp3-server restart
iface bnep0 inet static
address 192.168.111.70
netmask 255.255.255.0
pre-up brctl addif pan0 $IFACE
up ifconfig $IFACE 0.0.0.0
down brctl delif pan0 $IFACE

iface bnep1 inet static
address 192.168.111.71
netmask 255.255.255.0
pre-up brctl addif pan0 $IFACE
up ifconfig $IFACE 0.0.0.0
down brctl delif pan0 $IFACE

When the first PDA is connected I get the following in the syslog:

net.agent[7222]: invoke ifup bnep0=hotplug
kernel: device bnep0 entered promiscuous mode
pand[7220]: New connection from 00:80:C8:1F:E3:77 bnep0
kernel: pan0: port 2(bnep0) entering learning state
kernel: pan0: topology change detected, propgating
kernel: pan0: port 2(bnep0) entering forwarding state
dhcpd: DHCPREQUEST for 192.168.111.171 from 00:80:c8:1f:e3:77 via pan0
dhcpd: DHCPACK on 192.168.111.171 to 00:80:c8:1f:e3:77 via pan0

When I connect the second one:

net.agent[7271]: invoke ifup bnep1=hotplug
pand[7269]: New connection from 00:40:05:60:5A:14 bnep1
kernel: device bnep1 entered promiscuous mode
kernel: pan0: port 3(bnep1) entering learning state
kernel: pan0: topology change detected, propgating
kernel: pan0: port 3(bnep1) entering forwarding state
dhcpd: DHCPDISCOVER from 00:40:05:60:5a:14 via pan0
dhcpd: DHCPOFFER on 192.168.111.172 to 00:40:05:60:5a:14 via pan0
dhcpd: DHCPREQUEST for 192.168.111.172 (192.168.111.1) from
00:40:05:60:5a:14 via pan0
dhcpd: DHCPACK on 192.168.111.172 to 00:40:05:60:5a:14 via pan0

When I disconnect the first one (bnep0) first:

net.agent[7299]: invoke ifdown bnep0
kernel: pan0: port 2(bnep0) entering disabled state
kernel: pan0: port 2(bnep0) entering disabled state
kernel: device bnep0 left promiscuous mode

# brctl showstp pan0
pan0
STP is disabled for this interface

When I disconnect also the second one (bnep1):

kernel: pan0: port 3(bnep1) entering disabled state
kernel: pan0: port 3(bnep1) entering disabled state
kernel: device bnep1 left promiscuous mode
net.agent[7319]: invoke ifdown bnep1

Regards,
Diego

On Wed, 2004-05-19 at 00:33, Stephen Hemminger wrote:
> Sounds like an issue with how the bnep does promiscious mode.
> Do you see messages on the console like:
> device bnep0 left promiscious mode
>
> Also, the bnep driver seems to need BT_BNEP_MC_FILTER enabled
> to do multicast.
>
> When you remove bnep0 first, what does "brctl showstp pan0" show?




-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2004-05-18 22:36:08

by Stephen Hemminger

[permalink] [raw]
Subject: [Bluez-devel] Re: [Bridge] bridging bluetooth bnep devices with kernel 2.6.6-*

On Mon, 17 May 2004 12:02:58 +0200
Diego Liziero <[email protected]> wrote:

> Thanks for your support.
>
> I'm back with the "brige freezes when bluetooth bnep0 disconnects
> before bnep1" issue.
>
> As reported in the bluez-devel mailing list, in a bridge
> called pan0 with the interfaces bnep0, bnep1, .. bnep6
> connected, if the interface bnep6 is disconnected first,
> everything works fine, but if bnep0 is disconnected before
> the others, the bridge stops to work.
>

Hmm, since all the blue tooth devices have the same address.
Deleting the first one will cause the entry in the forwarding table
to be deleted, that might cause your problem. Perhaps we need a
reference count on the number of interfaces with the same address (yuck).


-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2004-05-18 22:33:10

by Stephen Hemminger

[permalink] [raw]
Subject: [Bluez-devel] Re: [Bridge] bridging bluetooth bnep devices with kernel 2.6.6-*

On Mon, 17 May 2004 12:02:58 +0200
Diego Liziero <[email protected]> wrote:

> Thanks for your support.
>
> I'm back with the "brige freezes when bluetooth bnep0 disconnects
> before bnep1" issue.
>
> As reported in the bluez-devel mailing list, in a bridge
> called pan0 with the interfaces bnep0, bnep1, .. bnep6
> connected, if the interface bnep6 is disconnected first,
> everything works fine, but if bnep0 is disconnected before
> the others, the bridge stops to work.
>
> Arping from bnep1 to the brige results in just the first
> answer received.
>
> To make it work again I have to use the following dirty hack:
> brctl delif pan0 bnep1
> brctl addif pan0 bnep1
>
> Someone in the bluez-devel mailing list told that also setting the
> bridge in promiscuous mode with tcpdump makes the bridge
> back to work.
>
> Now I'm removing and re-adding all the bridge components
> when hotplug detects that a "bnep?" device ceases to exist.
>
> Any better solution?
>
> Regards,
> Diego

Sounds like an issue with how the bnep does promiscious mode.
Do you see messages on the console like:
device bnep0 left promiscious mode

Also, the bnep driver seems to need BT_BNEP_MC_FILTER enabled
to do multicast.

When you remove bnep0 first, what does "brctl showstp pan0" show?




-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel