# $QuaggaId: $Format:%an, %ai, %h$ $

DEBUG HINTS

  - Check the source is issuing multicast packets with TTL high enough
    to reach the recipients.

  - Check the multicast packets are not being dropped due to
    fragmentation problems.

  - Two easy options to test IGMPv3 joins from the receiver host:

    1) Configure pimd on the receiver host with "ip igmp join":

       interface eth0
        ip pim ssm
        ip igmp join 239.1.1.1 1.1.1.1 

    2) Use the test_igmpv3_join command-line utility:

       test_igmpv3_join eth0 239.1.1.1 1.1.1.1

  - The following command generates a 100-kbps multicast stream for
    channel 1.1.1.1,239.1.1.1 with TTL 10 and 1000-byte payload per UDP
    packet (to avoid fragmentation):

    nepim -b 1.1.1.1 -c 239.1.1.1 -T 10 -W 1000 -r 100k -a 1d

  - Remotely you can receive that stream by running:

    nepim -j 1.1.1.1+239.1.1.1@eth0
    (Remember of enabling both "ip pim ssm" and "ip igmp" under eth0.)


SAMPLE DEBUG COMMANDS

  conf t
   int eth0
    ip pim ssm

  test pim receive hello eth0 192.168.0.2 600 10 111 1000 3000 0
  test pim receive join eth0 600 192.168.0.1 192.168.0.2 239.1.1.1 1.1.1.1

  show ip pim join                                                         


INTEROPERABILITY WITH CISCO

  ! Cisco IP Multicast command reference:
  ! ftp://ftpeng.cisco.com/ipmulticast/Multicast-Commands
  !
  ip pim ssm default ! enable SSM mode for groups 232.0.0.0/8
  ip multicast-routing
  ip pim state-refresh disable
  no ip pim dm-fallback
  !
  interface FastEthernet0
   ip pim sparse-mode
   ip igmp version 3

-x-
