IBM LanStreamer and failing multicast reception

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[This message was previously attempted sent just to
linux-tr@xxxxxxxxxxx, but the mailserver handling that list is
unreacheable from here]

Hello,

I'm was desperately trying to get OSPF running between Quagga on Linux
2.6.8 and two Cisco 2612 running IOS 12.3(12) when I stumbled on
something I thought might interest you:

 The lanstreamer driver doesn't seem to receive Token Ring multicasts
 using the Token Ring functional address (c0:00:00:04:00:00).

The problem I have is that Quagga seems to send multicast packets by
default and I haven't found any knob turning this off.  IOS sends and
receives Token Ring broadcasts by default, but this can be changed
using the "ip multicast use-functional" command in interface
configuration mode.  It seems however, that this command changes both
transmit and receive mode from *broadcast only* to *multicast only*.

So to receive the multicasts from Quagga, I need to turn on 
"ip multicast use-functional" on the Cisco routers.  But then they
also start _sending_ multicasts, which aren't received by Quagga
because they are dropped in the lanstreamer driver...

I have a triple lanstreamer card with two of the interfaces connected
to the same ring, but only one configured and the other just used for
sniffing:

bjorn@canardo:~$ lspci -v -s 02:
0000:02:01.0 Token ring network controller: IBM TR Auto LANstreamer (rev 02)
        Flags: bus master, medium devsel, latency 64, IRQ 10
        I/O ports at 8800 [size=256]
        Memory at e0000000 (32-bit, non-prefetchable) [size=256]

0000:02:02.0 Token ring network controller: IBM TR Auto LANstreamer (rev 02)
        Flags: bus master, medium devsel, latency 64, IRQ 12
        I/O ports at 8400 [size=256]
        Memory at df800000 (32-bit, non-prefetchable) [size=256]

0000:02:03.0 Token ring network controller: IBM TR Auto LANstreamer (rev 02)
        Flags: bus master, medium devsel, latency 64, IRQ 5
        I/O ports at 8000 [size=256]
        Memory at df000000 (32-bit, non-prefetchable) [size=256]

tr0       Link encap:16/4 Mbps Token Ring (New)  HWaddr 08:00:5A:FD:42:BF  
          inet addr:10.4.0.2  Bcast:10.4.0.7  Mask:255.255.255.248
          inet6 addr: fe80::a00:5aff:fefd:42bf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2000  Metric:1
          RX packets:104864 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85761 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:13505136 (12.8 MiB)  TX bytes:35621407 (33.9 MiB)
          Interrupt:10 Base address:0x8800 

tr1       Link encap:16/4 Mbps Token Ring (New)  HWaddr 08:00:5A:FD:42:C0  
          inet6 addr: fe80::a00:5aff:fefd:42c0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2000  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:1722 (1.6 KiB)  TX bytes:428 (428.0 b)
          Interrupt:12 Base address:0x8400 

Sniffing on tr0, where the multicasts are sent, I can see them:

14:32:51.955185 10 40 08:00:5a:fd:42:bf c0:00:00:04:00:00 64: Single-route Forward (2052) LLC, dsap SNAP (0xaa), ssap SNAP (0xaa), cmd 0x03, IP (tos 0xc0, ttl   1, id 0, offset 0, flags [DF], length: 40, optlength: 4 ( RA )) 10.4.0.2 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.0.5 to_ex { }]
        0x0000:  aaaa 0300 0000 0800 46c0 0028 0000 4000  ........F..(..@.
        0x0010:  0102 f9f3 0a04 0002 e000 0016 9404 0000  ................
        0x0020:  2200 f9f8 0000 0001 0400 0000 e000 0005  "...............


They do also appear on the Cisco routers:

Jan 22 14:14:08 c2612a-e0-0.lab.mork.no 15628: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89
Jan 22 14:14:18 c2612a-e0-0.lab.mork.no 15642: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89
Jan 22 14:14:28 c2612a-e0-0.lab.mork.no 15656: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89
Jan 22 14:14:38 c2612a-e0-0.lab.mork.no 15670: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89
Jan 22 14:14:48 c2612a-e0-0.lab.mork.no 15684: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89
Jan 22 14:14:58 c2612a-e0-0.lab.mork.no 15698: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89
Jan 22 14:15:08 c2612a-e0-0.lab.mork.no 15711: IP: s=10.4.0.2 (TokenRing0/0), d=224.0.0.5, len 64, rcvd 0, proto=89

the output above is from "debug ip packet", but this also shows up in
the "sh ip ospf neighbor" as

c2612a#sh ip ospf neighbor tokenRing 0/0

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.14.1      1   INIT/DROTHER    00:00:36    10.4.0.2        TokenRing0/0
192.168.14.68     1   FULL/BDR        00:00:38    10.4.0.1        TokenRing0/0


But I can't see any of the multicasts from the Cisco routers on tr0 on
the Linux box.  The Cisco routers do of course see eachother, as can
be seen from the ospf neighbor view above.

Sniffing on tr1 on the Linux box, I can't see any multicasts at all.
I don't even see my own sent on tr0


I also did a little sniffing using a 3c389 PCMCIA card (with the
ibmtr_cs driver), and there is no problem there.  I can see the
multicast hellos from both Cisco routers (and presumably also from
Quagga if it had been running when I did this tcpdump):

14:39:54.412618 18 40 00:0c:01:65:95:81 c0:00:00:04:00:00 102: LLC, dsap SNAP (0xaa), ssap SNAP (0xaa), cmd 0x03, IP (tos 0xc0, ttl   1, id 47336, offset 0, flags [none], length: 80) 10.4.0.1 > 224.0.0.5: OSPFv2, Hello (1), length: 60 [len 48]
        0x0000:  aaaa 0300 0000 0800 45c0 0050 b8e8 0000  ........E..P....
        0x0010:  0159 15a3 0a04 0001 e000 0005 0201 0030  .Y.............0
        0x0020:  c0a8 0e44 0000 0000 39bc 0000 0000 0000  ...D....9.......
        0x0030:  0000 0000 ffff fff8 000a 1201 0000 0028  ...............(
        0x0040:  0a04 0005 0a04 0001 c0a8 0e43 fff6 0003  ...........C....
        0x0050:  0001 0004 0000 0001                      ........
14:40:04.083316 10 40 00:a0:4c:08:71:81 c0:00:00:04:00:00 102: LLC, dsap SNAP (0xaa), ssap SNAP (0xaa), cmd 0x03, IP (tos 0xc0, ttl   1, id 12143, offset 0, flags [none], length: 80) 10.4.0.5 > 224.0.0.5: OSPFv2, Hello (1), length: 60 [len 48]
        0x0000:  aaaa 0300 0000 0800 45c0 0050 2f6f 0000  ........E..P/o..
        0x0010:  0159 9f18 0a04 0005 e000 0005 0201 0030  .Y.............0
        0x0020:  c0a8 0e43 0000 0000 39bc 0000 0000 0000  ...C....9.......
        0x0030:  0000 0000 ffff fff8 000a 1201 0000 0028  ...............(
        0x0040:  0a04 0005 0a04 0001 c0a8 0e44 fff6 0003  ...........D....
        0x0050:  0001 0004 0000 0001                      ........



So there is something fishy about the lanstreamer driver, but where?



Bjørn
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux