Problem receiving muliticast messages on ARM device

Discussion in 'Linux Networking' started by Sandro Stiller, Jun 27, 2012.

  1. I have a problem receiving multicast streams on an ARM device
    (Beagleboard XM) with a smsc9514 network device.

    If I start the kernel using a nfs root, my live555 based software can
    receive multicast streams. If I start from SD card, multicast doesn't
    work.

    I also tried the multicast example software from
    http://www.nmsl.cs.ucsb.edu/MulticastSocketsBook/#cexamples
    Same problem here.
    The kernel is the same (linux-2.6.32-omap-psp), loaded from SD card
    with u-boot.
    /proc/net/dev_mcast and "netstat -g" show the same info if I start
    my software in both cases.
    The file system (nfs and SD card) are identical.
    In both cases I set the multicast route with
    "route add -net 224.0.0.0 netmask 240.0.0.0 dev usb0"
    (usb0 is the network device.) and I also call
    "sysctl -w net.core.rmem_max=8388608"

    The kernel command lines are (sd root, not working):
    # cat /proc/cmdline
    console=tty0 console=ttyS2,115200n8 camera=tvp5146 [email protected]
    [email protected] noinitrd rw mpurate=1000 buddy=none vram=16M
    omapfb.mode=dvi:[email protected] omapdss.def_disp=dvi
    ip=10.0.0.55:10.0.0.152::255.0.0.0::: root=/dev/mmcblk0p2 rootfstype=ext3
    rw rootflags=data=journal,errors=remount-ro rootwait

    working device (nfs root):
    # cat /proc/cmdline
    console=tty0 console=ttyS2,115200n8 camera=tvp5146 [email protected]
    [email protected] noinitrd rw mpurate=1000 buddy=none vram=16M
    omapfb.mode=dvi:[email protected] omapdss.def_disp=dvi
    ip=10.0.0.55:10.0.0.152::255.0.0.0::: root=/dev/nfs
    nfsroot=10.0.0.152:/home/stiller/development/OMAP/root/XM,nolock
    rootdelay=3

    I added the ip parameter in the first cmdline just to test if
    this parameter has any effect to the multicast problem.

    I can receive the multicast messages with tcpdump (both cases).

    If I add another usb->ethernet device (moschip instead of smsc) while the
    device runs, I still can not receive multicast with new new interface.
    If I start with nfs, the new interface works, too.
    So it seems not to be a problem with the network device driver.

    I can not try another kernel version because I added a lot of patches for
    our connected hardware.
    Multicast is enabled in the kernel .config.

    The MULTICAST flag is set if I call "ifconfig usb0"
    Setting "allmulti" and "promisc" in the network interfaces doesn't help.

    On the not working device /proc/sys/net/ipv4/conf/all/rp_filter was
    set to 1 on start, but setting to 0 doesn't help.


    Any idea?

    Sandro
     
    Sandro Stiller, Jun 27, 2012
    #1
    1. Advertisements

  2. Hello again,

    If I don't get an answer here:
    Can anybody suggest me a better place for my question?
    The linux-net mailing list doesn't exist anymore.

    Thanks

    Sandro
     
    Sandro Stiller, Jun 29, 2012
    #2
    1. Advertisements

  3. Problem solved.
    I found this bug report:
    https://bugzilla.kernel.org/show_bug.cgi?id=14677
    and echoed a 0 to *all* of the files /proc/sys/net/ipv4/conf/*/rp_filter.
    and multicast works now.
     
    Sandro Stiller, Jul 2, 2012
    #3
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.