WaveLAN & differnet NWID's

Andreas Fieger (fieger@ibr.cs.tu-bs.de)
Wed, 25 Nov 1998 22:02:45 +0100


Hi,

I'am playing around with the LINUX wavelan stuff and observed a strange
behaviour. With one basestation one mobile station (laptop
equipped with PCMCIA card) every works fine. However, if I look at a
two basestation scenario (of course both base stations use different NWIDs)
the situations becomes significant worse. The laptop is registered at
basestation A, and thus uses the same NWID as basestations A. If the
laptop running linux 2.1.97 with pcmcia package 3.0.3 (including wavelan)
tries to send package and basestation B sends package too, the wavelan
driver gets an unknow signal SR0_TRANSMIT_NO_CRC_DONE 9 (see i82593.h),
waits for the watchdog to expire, reset hardware, gets ageint this unknown
signal ... Communications is blocked as long as packets from basestation
B (with a different NWID) arrive.

Detailed description of the scenario:

subnet of our institute
----------------------------------------------
| |
| |
| eth0 | eth0
-------- --------
|router| |router|
|koepi | | oahu |
-------- --------
| eth1 (10.3.0.1) | eth2 (10.2.0.1)
| |
| 10.3.x.x subnet | 10.2.x.x subnet
| |
| |
\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\
basestation A basestation B
\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\


^^^^^^^^^^
^ laptop ^ 10.3.0.10
^ green ^
^^^^^^^^^^

- two basestations located in different subnets
- both basestations use different NWIDs
- no multicast filtering or delaying enabled within BS A or BS B
- no roaming support
- basestations A, basestation B and laptop located close to each other
(same room). Thus, no transmission errors.
- no background traffic, no congestion within subnets 10.2.x.x and 10.3.x.x
- router koepi and router oahu running Linux 2.1.124
- laptop running linux 2.1.97 with pcmcia package 3.0.3 (including wavelan)

testszenario I:
================
This is the scenario that causes the strange collision behaviour.

- router oahu sends ping -f 224.0.0.2 -s 1400 to 10.2.x.x (via eth1), these
packets are transmitted via BS B
- laptop green sends "ping -f 224.0.0.3 -s 1400" to BS A
- laptops NWID is different from BS B's NWID

result A:
- wavelan driver of laptop green receives an unknow signal
SR0_TRANSMIT_NO_CRC_DONE 9 and does not know how to handle this signal.
The watchdog timer is not stopped.
- no further data transmitted to the wavelan card as long dev->tbusy == TRUE
- watchdog expires after some time
- arbortion of last command fails --> card is reseted

as long as packets arrive via BS B, the steps described are repeated.

A detailed debug output of the wavelan driver can be found at:
http://www.ibr.cs.tu-bs.de/~fieger/tcp_delay/wavelan.html

An important point to reproduce these result is, that basestation B and
the laptop user DIFFERENT NWID's.

If I set the NWID of the laptop to OFF everything works fine, i.e.
packets of basestation B are not refused by the network card (as in the
previous scenario) and no unknown signals or hardware resets can be observed.

Does anybody know what this SR0_TRANSMIT_NO_CRC_DONE signal means?
What does the wavelan card want to tell me. Is it a correct protocol
behaviour, i.e handling of this signal should be added to the wavelan
driver or does anything else go wrong??

Thanks
Andreas

=====================================================================
Andreas Fieger fieger@ibr.cs.tu-bs.de Tel.: +49 531 391 3250
Department of Computer Science, TU Braunschweig, Bueltenweg 74/75,
D-38106 Braunschweig, Germany
=====================================================================

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/