OpenWrt Forum Archive

Topic: bridging/wds problems with WRT54GL + v8.09 (brcm47xx)

The content of this topic has been archived on 23 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I have 2 Linksys WRT54GL routers that I had set up with kamikaze 7.09 (2.4 kernels) in WDS mode. I've just tried updating one of them to 8.09, using the 2.6 kernel.

Since I was having problems, I decided to take a step back and just set up the upgraded router in "sta" mode first. The main issue I'm seeing is that in contrast to the 2.4 kernel, the 2.6 kernel gives a different MAC address to the wired and wireless interfaces.

When I bridge both interfaces together, then the wireless seems to no longer work. If I try to ping the other router, then I see ARP requests and ping attempts go out on the wired interface only. If I do something like this from the upgraded router (trying to arping over the bridged wireless interface):

# arping -I wlan0 192.168.2.1

...then on the other router sees the arp packets and sends replies, but the "client" never seems to recognize the responses.

...if I then do this on the upgraded router:

# ifconfig br-lan hw ether <mac_address_of_wireless_if>

then I can ping the other router from the "sta" router. Packets from wired hosts connected to the sta router don't seem to actually work though.

So I think I've got a workaround for now. I have a script that sets the mac addr of the bridge to that of the wireless interface. My first question is -- is there a better way to do this? I tried setting "option macaddr" on the bridge definition in /etc/config/network, but it didn't seem to actually do anything.

When I try to flip everything to use WDS though, it doesn't work. as anyone actually gotten WDS mode to work with brcm47xx? I'm willing to experiment with this some if someone can point me in the right direction.

Here's my /etc/config/network:

#### VLAN configuration 
config switch eth0
    option vlan0    "0 1 2 3 5*"
    option vlan1    "4 5"


#### Loopback configuration
config interface loopback
    option ifname    "lo"
    option proto    static
    option ipaddr    127.0.0.1
    option netmask    255.0.0.0


#### LAN configuration
config interface lan
    option type     bridge
    option ifname    "eth0.0"
    option proto    static
    option macaddr  00:90:4D:5F:00:2B
    option ipaddr    192.168.2.2
    option netmask    255.255.255.0
    option gateway    192.168.2.1


#### WAN configuration
config interface    wan
    option ifname    "eth0.1"
    option proto    none

...and here's my /etc/config/wireless:

config wifi-device  wlan0
    option type     mac80211
    option channel  6

config wifi-iface
    option device    wlan0
    option network    lan
    option mode    sta
    option ssid    foobarbaz
    option encryption wep
    option key    1234567890

config wifi-iface
    option device   wlan0
    option network    lan
    option mode     wds
    option ssid    poochiereds
    option bssid    00:92:4C:5F:01:2A

Client-mode sucks. Use WDS...

Yanira wrote:

Client-mode sucks. Use WDS...

Did anyone get WDS up and running with 2.6 and a mac80211 driver?

Thanks,
Jochen

No. That's why I'm asking about this. Do I have this configured wrong, or is there an actual impediment to making this work.

poochiereds wrote:

No. That's why I'm asking about this. Do I have this configured wrong, or is there an actual impediment to making this work.

I guess nobody of the developers ever tested this.

See this mail from a mac80211 developer.

I'd agree -- any sort of bridging seems to be horribly broken in 8.09.  Part of the reason I was switching to OWRT was for the simplicity of not running things I didn't need to on an already limited hardware platform.  WDS and client modes do not work for me.  I can get the hardware to connect, however when doing testing I see that although my RX rate is fine my TX rate never goes above 1Mbps.  Something is definitely broken.

--windexh8er

The discussion might have continued from here.