[Xorp-users] Re: Need help for compiling xorp from current cvs on Linux (IPv6 Multicast)

Pavlin Radoslavov pavlin@icir.org
Tue, 03 Jan 2006 17:06:26 -0800


> I have tried to compile and install XORP successfully.
> THe xorp could joint to another XORP (running on BSD), but unfortunately
> when I try to run multicast client behind XORP(on linux) and  the multicast
> client beginning to receive multicast packets, the XORP then died.

Was the mld6igmp module running when you saw the error message?
It seems that the mld6igmp module has refused to delete membership
for the particular group, but the log output has been truncated and
doesn't include the original error message.
If the problem is repeatable please send me the complete log output
from the moment XORP was started until it died.

Also, can you run a simpler setup: XORP running on Linux
machine, with a sender connected to one of its interfaces and a
receiver connected to another of its interfaces. To avoid some side
effects, both the sender and the receiver should NOT be running on
the XORP box itself. Just make sure that the TTL of the transmitted
packets is at least 2.
If the IPv6 multicast forwarding is working, then you can try a bit
more complicated topology with two XORP boxes, etc.

FYI, I did a relatively simple IPv6 multicast forwarding test
with a single XORP box running on Fedora Core 4 and USAGI's IPv6
mods. The USAGI code is a snapshot from end of October 2005 and it
already contains the IPv6 multicast forwarding changes.
I was able to forward the packets from an eth0 interface to the
other side of a tun0 tunnel interface created by openvpn. However,
when I exchange the sender and the receiver (i.e., the sender is on
the other side of the tunnel and the receiver is directly connected
to eth0), then I got a Linux kernel panic.

I guess this panic may be an artifact from using a tun0 tunnel
interface, but right now I don't have the setup to try the
forwarding between two physical interfaces.

Pavlin

P.S. Just for the record, the kernel panic log is:

Jan  3 22:46:18 carp kernel: skb_under_panic: text:c02f11d4 len:152 put:14 head:c1bf6400 data:c1bf63f2 tail:c1bf648a end:c1bf6500 dev:eth0
Jan  3 22:46:18 carp kernel: ------------[ cut here ]------------
Jan  3 22:46:18 carp kernel: kernel BUG at net/core/skbuff.c:112!
Jan  3 22:46:18 carp kernel: invalid operand: 0000 [#1]
Jan  3 22:46:18 carp kernel: SMP 
Jan  3 22:46:18 carp kernel: Modules linked in: tun ipv6 parport_pc lp parport autofs4 sunrpc loop dm_mod ohci_hcd i2c_piix4 i2c_core snd_ens1371 gameport snd_rawmidi snd_ac97_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc snd_ac97_bus e100 3c59x mii floppy sym53c8xx scsi_transport_spi sd_mod scsi_mod
Jan  3 22:46:18 carp kernel: CPU:    1
Jan  3 22:46:18 carp kernel: EIP:    0060:[<c02dbfa9>]    Not tainted VLI
Jan  3 22:46:18 carp kernel: EFLAGS: 00010292   (2.6.14-rc5) 
Jan  3 22:46:18 carp kernel: EIP is at skb_under_panic+0x59/0x70
Jan  3 22:46:18 carp kernel: eax: 00000074   ebx: c1bf6400   ecx: c03a9550   edx: 00000292
Jan  3 22:46:18 carp kernel: esi: c1af8800   edi: 000086dd   ebp: 00000000   esp: f593ec38
Jan  3 22:46:18 carp kernel: ds: 007b   es: 007b   ss: 0068
Jan  3 22:46:18 carp kernel: Process xorp_fea (pid: 3606, threadinfo=f593e000 task=c1b0d570)
Jan  3 22:46:18 carp kernel: Stack: c038d6c0 c02f11d4 00000098 0000000e c1bf6400 c1bf63f2 c1bf648a c1bf6500 
Jan  3 22:46:18 carp kernel:        c1af8800 c1bf63f2 f7160ca0 c02f11d9 c1af8800 f593ec9c f7160ca0 c1af8800 
Jan  3 22:46:18 carp kernel:        00000000 f8e9fcf7 f593ec9c 00000000 0000008a f8e8c873 c1bf6418 0000008a 
Jan  3 22:46:18 carp kernel: Call Trace:
Jan  3 22:46:18 carp kernel:  [<c02f11d4>] eth_header+0x124/0x140
Jan  3 22:46:18 carp kernel:  [<c02f11d9>] eth_header+0x129/0x140
Jan  3 22:46:18 carp kernel:  [<f8e9fcf7>] ip6mr_queue_xmit+0xa7/0x1f0 [ipv6]
Jan  3 22:46:18 carp kernel:  [<f8e8c873>] rawv6_sendmsg+0x323/0x770 [ipv6]
Jan  3 22:46:18 carp kernel:  [<f8ea0077>] ip6_mr_forward+0x1d7/0x200 [ipv6]
Jan  3 22:46:18 carp kernel:  [<f8e9ec4d>] ip6mr_cache_resolve+0xbd/0x120 [ipv6]
Jan  3 22:46:18 carp kernel:  [<f8e9f57a>] ip6mr_mfc_add+0x23a/0x250 [ipv6]
Jan  3 22:46:18 carp kernel:  [<f8e9f81a>] ip6_mroute_setsockopt+0x14a/0x310 [ipv6]
Jan  3 22:46:18 carp kernel:  [<c011f629>] __wake_up_common+0x39/0x70
Jan  3 22:46:18 carp kernel:  [<f8e841aa>] ipv6_setsockopt+0x10a/0xd50 [ipv6]
Jan  3 22:46:18 carp kernel:  [<c011f698>] __wake_up+0x38/0x50
Jan  3 22:46:18 carp kernel:  [<c02385cf>] n_tty_receive_buf+0xef/0x1010
Jan  3 22:46:18 carp kernel:  [<c02385cf>] n_tty_receive_buf+0xef/0x1010
Jan  3 22:46:18 carp kernel:  [<c01d2392>] avc_has_perm_noaudit+0x32/0xf0
Jan  3 22:46:18 carp kernel:  [<c018553f>] dput+0xef/0x220
Jan  3 22:46:18 carp kernel:  [<c01d24aa>] avc_has_perm+0x5a/0x70
Jan  3 22:46:18 carp kernel:  [<c023af2a>] pty_write+0x5a/0x70
Jan  3 22:46:18 carp kernel:  [<c011f698>] __wake_up+0x38/0x50
Jan  3 22:46:18 carp kernel:  [<c02db503>] sock_common_setsockopt+0x23/0x30
Jan  3 22:46:18 carp kernel:  [<c02d8a41>] sys_setsockopt+0x71/0xe0
Jan  3 22:46:18 carp kernel:  [<c02d92d6>] sys_socketcall+0x236/0x2a0
Jan  3 22:46:18 carp kernel:  [<c010420b>] sysenter_past_esp+0x54/0x75
Jan  3 22:46:18 carp kernel: Code: 00 00 89 5c 24 14 8b 98 90 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 58 89 4c 24 04 c7 04 24 c0 d6 38 c0 89 44 24 08 e8 77 83 e4 ff <0f> 0b 70 00 7b b6 38 c0 83 c4 24 5b 5e c3 89 f6 8d bc 27 00 00 
Jan  3 22:46:18 carp kernel:  <3>KERNEL: assertion (newskb->dst) failed at net/ipv6/ip6_output.c (113)
Jan  3 22:46:18 carp kernel: KERNEL: assertion (newskb->dst) failed at net/ipv6/ip6_output.c (113)


> 
> I do not know what's wrong, perhaps you could help.
> 
> Here what I got from log file:
> 
> 2/30 14:27:42 WARNING xorp_pimsm6 XrlPimTarget ] Handling method for
> mld6igmp_client/0.1/delete_membership6 failed: XrlCmdError 102 Command
> failed Failed to delete membership for (::, ff02::2)
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 PIM +2633 xrl_pim_node.cc
> mfea_client_send_protocol_message_cb ] Cannot send a protocol message: 201
> Resolve failed
> [ 2005/12/30 14:27:42 INFO xorp_pimsm6 XRL ] Sender died (protocol =3D "stc=
> p",
> address =3D "127.0.0.1:32813")
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 LIBXORP +211
> buffered_asyncio.cc io_event ] read error 111
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 XRL +783 xrl_pf_stcp.cc
> read_event ] Read failed (error =3D 111)
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 XRL +636 xrl_pf_stcp.cc die ]
> XrlPFSTCPSender died: read error
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 PIM +2633 xrl_pim_node.cc
> mfea_client_send_protocol_message_cb ] Cannot send a protocol message: 201
> Resolve failed
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 PIM +2633 xrl_pim_node.cc
> mfea_client_send_protocol_message_cb ] Cannot send a protocol message: 201
> Resolve failed
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 PIM +2633 xrl_pim_node.cc
> mfea_client_send_protocol_message_cb ] Cannot send a protocol message: 201
> Resolve failed
> [ 2005/12/30 14:27:42  ERROR xorp_pimsm6:2707 PIM +2145 xrl_pim_node.cc
> mfea_client_send_add_delete_dataflow_monitor_cb ] XRL communication error:
> 201 Resolve failed
> rlFinderTarget +406 ../xrl/targets/finder_base.cc
> handle_finder_0_2_resolve_xrl ] Handling method for finder/0.2/resolve_xrl
> failed: XrlCmdError 102 Command failed Target "MFEA_6" does not exist or is
> not enabled.
> [ 2005/12/30 14:27:42  WARNING xorp_rtrmgr:2670 XrlFinderTarget +406
> ../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
> method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
> Target "MFEA_6" does not exist or is not enabled.
> [ 2005/12/30 14:27:42  WARNING xorp_rtrmgr:2670 XrlFinderTarget +406
> ../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
> method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
> Target "MFEA_6" does not exist or is not enabled.