WDS Bug

Mike Saywell ms at ecs.soton.ac.uk
Wed Nov 13 20:50:36 EST 2002


Hi,

I've been using the following setup:

    +---+              +---+
    | A |  <-- WDS --> | B |
    +---+              +---+
     / \                 |
    /   \                |
 *---*  *---*          *---*
 | 1 |  | 2 |          | 3 |
 *---*  *---*          *---*

A and B are APs and 1, 2 and 3 are STAs.  All links are via 802.11b.

The problem is that [1] and [2] cant talk to [B] unless ap_bridge_packets
is set to 0.  However if you do this then [1] can't talk to [2] because
the ethernet bridging code, which is designed for wired networks,
assumes that [2] would have seen packets from [1] because they're on
the same interface.

I managed to fix the problem by commenting out this block of code from
hostap_ap.c (approx line 1,600).

        if (memcmp(rxdesc->addr1, dev->dev_addr, 6)) {
                PDEBUG(DEBUG_AP, "handle_pspoll - addr1(BSSID)=" MACSTR
                       " not own MAC\n", MAC2STR(rxdesc->addr1));
                return;
        }

After removing that I get full connectivity with ap_bridge_packets set
to 1.

Anyway, I guess skipping the check entirely isn't the best of ideas,
but I'll leave that bit to you guys... :)

Thanks,


Mike Saywell,
University Of Southampton



More information about the HostAP mailing list