Subject: LINUX MBONE REQUEST FOR HELP

From: Karl Miosga <[email-masked]>
Date: Tue, 8 Jul 1997 14:37:39 +-100

Hope you can offer some advice.

I have a tunnel between 195.33.2.1 / 195.33.32.1 (CISCO PIM). 195.33.32.1 
has a tunnel to a DVMRP router.  I then built a linux 2.0.27 multicast box 
on 195.33.2.15.  I downloaded and ran sdr on the linux box but I cannot see 
sessions.  When I use vat to force connection at the prompt I get no audio 
or data being passed although when I run netstat I can see a valid udp 
connection.

Should sdr be in a specific directory? Can you tell me where I can get 
further information about how to install sdr/vat/vic?

I attach my current configurations details.

Your thoughts would be appreciated.

Regards,

Karl Miosga,
WRN.

I have a linux 2.0.27 box running IGMP and can run sd / vat and vic.  I can 
also ping to 195.33.32.1 the tunnel but sd/vat/vic are not receiving data. 

This is my setup:
195.33.2.15 (my machines IP)
255.255.255.128 (mask)
195.33.2.1  (gateway)

Here is my ifconfig:
[root@mobile /sbin]# ./ifconfig
lo       Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
          RX packets:355 errors:0 dropped:0 overruns:0
          TX packets:355 errors:0 dropped:0 overruns:0

eth0   Link encap:10Mbps Ethernet  HWaddr 00:20:AF:88:B9:2F
          inet addr:195.33.2.15  Bcast:195.33.2.127  Mask:255.255.255.128
          IPX/Ethernet II addr:00C32102:0020AF88B92F
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9087 errors:2 dropped:2 overruns:2
          TX packets:3029 errors:0 dropped:0 overruns:0
          Interrupt:10 Base address:0x300

I created this route:
route add -net 224.0.0.0 netmask 240.0.0.0 eth0

So route looks like this:
Kernel IP routing table
Destination     Gateway         Genmask         Flags 	Metric 	Ref    Use 
	Iface
195.33.2.0      	*               255.255.255.128 	U     	0      	0       20 
	eth0
127.0.0.0       	*               255.0.0.0       		U     	0      	0 
       2 	lo
224.0.0.0      	*               240.0.0.0       		U     	0      	0       15 
	eth0
default         195.33.2.1      0.0.0.0         		UG   	0      	0       14 
	eth0

If I launch vat at a live session I get this when I run netstat but no 
audio:
[root@mobile /sbin]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0    126 mobile.wrn.org:telnet   195.33.2.212:1671 
      ESTABLISHED
udp        0      0 mobile.wrn.org:1156     224.2.0.1:23457 
        ESTABLISHED
udp        0      0 mobile.wrn.org:1155     224.2.0.1:23456 
        ESTABLISHED
udp        0      0 localhost:domain        *:*
udp        0      0 mobile.wrn.org:domain   *:*

If I ping it when vat active I get:
[root@mobile /sbin]# ping 224.2.0.1 -c 5
PING 224.2.0.1 (224.2.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.4 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.3 ms
--- 224.2.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.4 ms

And if I stop vat and try ping same address I get no connection:
[root@mobile /sbin]# ping 224.2.0.1 -c 5
PING 224.2.0.1 (224.2.0.1): 56 data bytes
--- 224.2.0.1 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss

If I ping the tunnel:
[root@mobile /sbin]# ping 195.33.32.1 -c 5
PING 195.33.32.1 (195.33.32.1): 56 data bytes
64 bytes from 195.33.32.1: icmp_seq=0 ttl=250 time=37.6 ms
64 bytes from 195.33.32.1: icmp_seq=1 ttl=250 time=29.6 ms
64 bytes from 195.33.32.1: icmp_seq=2 ttl=250 time=47.7 ms
64 bytes from 195.33.32.1: icmp_seq=3 ttl=250 time=30.7 ms
64 bytes from 195.33.32.1: icmp_seq=4 ttl=250 time=30.7 ms
--- 195.33.32.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 29.6/35.2/47.7 ms

END.

---

From: Bill Fenner <[email-masked]>
Date: Tue, 8 Jul 1997 09:31:31 PDT

>Hope you can offer some advice.

Try "show ip igmp group" on the Cisco on your subnet to make sure
that the Cisco knows that you have joined the group.  Also
"show ip mr" to make sure that the Cisco knows about external
sources; perhaps your PIM cloud is misconfigured.

  Bill

---

From: Justinus Andjarwirawan <[email-masked]>
Date: Wed, 9 Jul 1997 16:12:45 +0700 (GMT+0700)

Make sure you have same TTL value on both ends, and the session you 
create should have same or greater value of TTL.

---

From: Atanu Ghosh <[email-masked]>
Date: Wed, 09 Jul 1997 19:49:50 +1000

I have just tried something similar between a Cisco running PIM and a
linux box running 2.0.30. I don't think thats its possible to join
mbone sessions on a linux box which is running a mrouted. The other
machines on the subnet being seviced by the linux mrouted were able to
join multicast sessions.

It looks like the mrouted doesn't gets any notification when the local
machine joins/leaves a multicast group.

	Atanu.

>>>>> "Karl" == Karl Miosga <[email-masked]> writes:

    Karl> Hope you can offer some advice.
    Karl> I have a tunnel between 195.33.2.1 / 195.33.32.1 (CISCO PIM). 195.33.32.1 
    Karl> has a tunnel to a DVMRP router.  I then built a linux 2.0.27 multicast box 
    Karl> on 195.33.2.15.  I downloaded and ran sdr on the linux box but I cannot see 
    Karl> sessions.  When I use vat to force connection at the prompt I get no audio 
    Karl> or data being passed although when I run netstat I can see a valid udp 
    Karl> connection.

    Karl> Should sdr be in a specific directory? Can you tell me where I can get 
    Karl> further information about how to install sdr/vat/vic?

    Karl> I attach my current configurations details.

    Karl> Your thoughts would be appreciated.

    Karl> Regards,

    Karl> Karl Miosga,
    Karl> WRN.

---

From: Hakan Lennestal <[email-masked]>
Date: Wed, 09 Jul 1997 12:21:20 +0200

> machine joins/leaves a multicast group.

Hi !

There are some patches (made by Brad Parker) available at
ftp://ftp.parker.boston.ma.us/pub/mbone/ 
that are supposed to fix these problems.
These are for 2.0.27, but it is possible to add them to 2.0.30.
One of the files, ipmr.c, can replace the original 2.0.30 as it is 
and the other, ip_forward.c, seem to be just a few lines (one really) 
that has to be added/changed to the 2.0.30 version.
Here is a diff between the original 2.0.27 ip_forward.c and the 
modified version:

--------------------------------------------------------------------------------
*** ip_forward.c        Sun Apr 27 21:23:04 1997
--- ORG/ip_forward.c    Wed Oct 30 02:42:42 1996
***************
*** 404,414 ****
                        skb2->dev=dev2;
  #ifdef CONFIG_IP_MROUTE
                        if(is_frag&IPFWD_MULTITUNNEL)
! #ifdef BROKEN
! xxx                           ip_encap(skb,skb->len, dev2, raddr);
! #else
!                               ip_encap(skb, 0, dev2, target_addr);
! #endif
                        else
                        {
  #endif
--- 404,410 ----
                        skb2->dev=dev2;
  #ifdef CONFIG_IP_MROUTE
                        if(is_frag&IPFWD_MULTITUNNEL)
!                               ip_encap(skb,skb->len, dev2, raddr);
                        else
                        {
  #endif
--------------------------------------------------------------------------------

Also, a few lines has to be added to /usr/include/linux/mroute.h:

--------------------------------------------------------------------------------
struct mfc_cache
{
        struct mfc_cache *next;                 /* Next entry on cache line   */
        __u32 mfc_mcastgrp;                     /* Group the entry belongs to */
        __u32 mfc_origin;                       /* Source of packet           */
        vifi_t mfc_parent;                      /* Source interface           */
        struct timer_list mfc_timer;            /* Expiry timer               */
        int mfc_flags;                          /* Flags on line              */
        struct sk_buff_head mfc_unresolved;     /* Unresolved buffers         */
        int mfc_queuelen;                       /* Unresolved buffer counter  */
        unsigned char mfc_ttls[MAXVIFS];        /* TTL thresholds             */
        unsigned long mfc_bytecnt;     /* <-- New field */
        unsigned long mfc_pktcnt;      /* <-- New field */
        unsigned long mfc_wrong_if;    /* <-- New field */
};
--------------------------------------------------------------------------------

With the above changes the 2.0.30 kernel will at least compile and run.
I have not yet had the opportunity to test that things works as expected
in conjuction with mrouted though...

/Håkan