[Xorp-users] xorp fails to detect multicast traffic arriving over a GRE tunnel in Linux.

James Courtier-Dutton James Courtier-Dutton <james.dutton@gmail.com>
Sun, 1 May 2005 19:04:23 +0100


I have tried to get xorp to route multicast traffic using PIM-SM, but
it has failed.
I have 2 hosts A and B with a GRE tunnel over the internet between them.
The tunnel name is called off0.
The multicast traffic is sourced on the ethernet interface of xorp A.
On xorp B I have the following:
In the xorp_rtrmgr window I see:
[ 2005/05/01 18:55:39 TRACE xorp_pimsm4 PIM ] RX PIM_HELLO from
192.168.10.1 to 224.0.0.13 on vif off0

But on xorp B:
tcpdump -i off0
tcpdump: WARNING: arptype 778 not supported by libpcap - falling back
to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on off0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
18:55:38.495167 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 77
18:55:38.571164 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 67
18:55:38.653146 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 111
18:55:38.728131 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 50
18:55:38.810118 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 114
18:55:38.886102 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 78
18:55:38.967095 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 93
18:55:39.028094 IP 192.168.10.1 > PIM-ROUTERS.MCAST.NET: pim v2 Hello
(Hold-time 1m45s) (LAN-Prune-Delay: T-bit=0 lan-delay=500ms
override-interval=2500ms) (DR-Priority: 1) (Genid: 0x248bf4be)
18:55:39.041087 IP 158.234.90.20.1119 > 233.64.38.50.2000: UDP, length: 96

So, the strange thing is that xorp is seeing the pim v2 hello, but
just not seeing the multicast stream 233.64.38.50:2000. Does anyone
have any idea's why.

To help me track this down, could someone please point me to the
section of code that opens the socket for the multicast stream, and
the section of code that receives multicast stream packets.

At the moment, I have concluded that the Linux module ip_gre has a
bug, whereby xorp does not think it is multicast capable.

On xorp A (home0 is the GRE tunnel):
ip mroute show
(158.234.90.23, 233.64.38.50)    Iif: eth1       Oifs: home0
(158.234.90.20, 233.64.38.50)    Iif: eth1       Oifs: home0

On xorp B (off0 is the GRE tunnel)
ip mroute show

i.e. empty.

I am hoping for some sort of route between off0 and eth0, as the PC
requesting this multicast group is on eth0 at site B.

Can anyone help?