Enable Multicast in LAN/WLAN?

Post new topic   Reply to topic    DD-WRT Forum Index -> Broadcom SoC based Hardware
Goto page Previous  1, 2
Author Message
juhovh
DD-WRT Novice


Joined: 30 Apr 2007
Posts: 5

PostPosted: Mon Apr 30, 2007 20:00    Post subject: Reply with quote
BrainSlayer wrote:
the kernel does support multicast routed as well as the igmp proxy translates this for NAT. its working well here without any problems. maybe the protocol stream if your isp is more specific and not igmp compatible


This is a bit old but with v23 I'm unable to get the multicast packets from LAN to WAN. Could you list the iptables and route tables you are using or something to help. I could write instructions to the wiki if I get this stuff resolved. Everything works fine without my DD-WRT box in the middle and also I can see from iptables that the multicast packets do get into the router just fine.
Sponsor
Cyberian
DD-WRT User


Joined: 07 Jun 2006
Posts: 198
Location: Oregon, US

PostPosted: Fri May 04, 2007 18:40    Post subject: Reply with quote
I also need this to work as I need to access a device on the WAN side.
_________________
Michael
WRT54GS v1.1 with Eko JFFS + OpenVPN
juhovh
DD-WRT Novice


Joined: 30 Apr 2007
Posts: 5

PostPosted: Sat May 05, 2007 16:20    Post subject: Reply with quote
I found out the problem with this with help from Heikki Kallasjoki on debugging. When I do "cat /proc/net/ip_mr_cache" I get the following stuff:
Code:

~ # cat /proc/net/ip_mr_cache
Group    Origin   Iif     Pkts    Bytes    Wrong Oifs
65B19BE9 00000000 8          0        0        0 10:1 
FAFFFFEF 00000000 8          0        0        0 10:1


As you can see here the origin is always 00000000 which is not right. The source code of igmp-proxy reveals the line:

mfcctrl.mfcc_origin.s_addr = 0;

This is clearly the reason that it's always 0, the comment says "Since the implementation in the kernel has been changed to no longer care for the SOURCE of Multicast packets we can safely pass a 0 as the ORIGIN of multicast packets." However reading the kernel source it clearly cares about this and also tested with newer kernels the situation is the same. It does the comparison:

if (c->mfc_origin==origin && c->mfc_mcastgrp==mcastgrp)

In the official linksys release this c->mfc_origin==origin check is removed from the if in question in ipmr_cache_find and it has also replaced the line:

line=MFC_HASH(mfc->mfcc_mcastgrp.s_addr, mfc->mfcc_origin.s_addr);

with

line=MFC_HASH(mfc->mfcc_mcastgrp.s_addr, 0);

This is done in both ipmr_mfc_delete and ipmr_mfc_add. After these three small changes the multicast routing should start to work just fine. But compiling DD-WRT is a bit pain in the ass so if someone could compile me v23SP2 with these changes I would be very happy. I don't like v23SP3 since I haven't found any IPv6 setting there and it is totally necessary for me. Is it hidden somewhere?

I'll post this information in both bugtracker and the forum posts.
Goto page Previous  1, 2 Display posts from previous:    Page 2 of 2
Post new topic   Reply to topic    DD-WRT Forum Index -> Broadcom SoC based Hardware All times are GMT

Navigation

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum