Re: [PATCH] lanstreamer: IBM LanStreamer and failing multicast reception

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

 



Bjørn Mork wrote:
Neil Horman <nhorman@xxxxxxxxxx> writes:

Bjørn Mork wrote:


didn't make any difference.
One thing strikes me as strange: Why don't I see any of the multicast
packets even when the adapter is in promiscous mode?  I can only see
broadcasts and unicasts to and from my own address.


If one of your quagga daemons is sitting on a segment on the cisco router and you can see the daemons multicast frames on that segment, but not on the token ring segment you are trying to have them reach, I would suspect that you don't have igmp working properly. I assume you are starting something on your token ring based host to listen for these message (another quagga daemon I assume), do you see an IGMP frame go out to subscribe your host to that multicast address? If not, I expect you need to configure your router to send all multicasts to your subnet. This would also be true if you were just snooping the wire, hoping to see multicast frames from another host on a different subnet without driving any IGMP subscriptions.


Oh, I realize I should have described my network a bit more in detail
before bothering you with this report.  Here's an attempt:

I only have one MAU.  All three lanstreamer interfaces and two Cisco
routers are physically connected to this same ring:

canardo c2612a c2612b
3xLanstreamer IOS12.3 IOS12.3
tr0 tr1 tr2 to0/0 to0/0 || || || || ||
| -- -- -------- ---------- |
|------------------------------|


I am currently only using tr0 on canardo for IP. The other two
interfaces on canardo are used purely for debugging purposes. There
is no routing between Token Ring segments anywhere. Both quagga and
IOS will send OSPF IP multicasts to OSPF-ALL.MCAST.NET (224.0.0.5) on
all interfaces *not* explicitly excempted. I don't think IGMP is
relevant here. There is no IP multicast routing involved.


The IP configuration is
canardo-tr0  10.4.0.2/29
canardo-tr1         0/32
canardo-tr2         0/32
c2612a-to0/0 10.4.0.5/29
c2612b-to0/0 10.4.0.1/29

By default, the Cisco routers will transmit IP multicasts as layer2
broadcasts on Token Ring interfaces. This does work, and quagga do
see OSPF Hello packets to IP multicast address 224.0.0.5 from the two
Cisco routers on canardo as long as they do this. However, the Cisco
routers don't see layer2 multicasts in this mode, only layer2
broadcasts. To receive layer2 multicasts, they need to be configured
for layer2 multicasting on Token Ring, using the interface
configuration mode command "ip multicast use-functional". Ref http://www.cisco.com/en/US/products/sw/iosswrel/ps5187/products_command_reference_chapter09186a008017cf23.html#wp1076691


The problem is that this command also make the Cisco routers
*transmit* the OSPF IP multicasts as layer 2 multicasts, which don't
show up at canardo.  They do however show up at the other Cisco router
(so they can still establish an OSPF neighbourship with eachother),
and also on a ibmtr_cs PCMCIA card I've got.  I've not yet tried
quagga over the PCMCIA card, but will do that as soon as I get a
chance.

Have you been able to determine if the NIC is actually not receiving the functionally-address multicast frame, or if its discarding it in the driver?



To summarize

layer2 dst    from         to           result
----------------------------------------------
broadcast     Lanstreamer  Cisco        OK
broadcast     Cisco        Lanstreamer  OK
multicast     Lanstreamer  Cisco        OK
multicast     Cisco        Lanstreamer  failing


And for completeness:

layer2 dst    from         to           result
----------------------------------------------
multicast     Cisco        Cisco        OK
multicast     Lanstreamer  Lanstreamer  failing
multicast     Cisco        ibmtr_cs     OK


One obvious fix is to patch quagga to use layer2 broadcasts by default on Token Ring, which will also allow it to work with the default IOS configuration. So it should probably be done anyway. At least it would be useful to be able to configure the quagga end to work with IOS and not just the other way round. But I'm still curious about the layer2 multicast reception on the lanstreamer card. AFAICS this should also work. And the driver claims to support promiscuous mode, so that should probably also work.


Bjørn
I've got 2 lanstreamers and a MAU here. I'll set this up and try to re-create it. That should keep me from posting any bum fixes again. Sorry :). I'll let you know when I have a workable patch put together.
Neil



-- /*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *nhorman@xxxxxxxxxx *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/ - : 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