[linux-dvb] Routing multicast - broken linuxtv networking?

stonewall at inebraska.com stonewall at inebraska.com
Wed Jul 13 17:06:55 CEST 2005


I am attempting to solve a problem that has began to plague me since kernel 
version 2.6.11.

I have a single DVB-S PCI card.  I receive six PIDs via that card for news 
streaming (I'm a news junky).  The problem is that the multicast streams on 
each of the six PIDs come from the same address - 10.230.17.5.

When I configure the dvb0_? devices, I had been using 10.230.17.20-25 up 
through kernel 2.6.11.  All worked fine - I was able to connect to the six 
multicasts and see all six PIDs.

Starting with 2.6.11, though, the routing table had become much tighter, and 
it would then only stream through the first device I configured for that 
subnet.  I can tcpdump all the devices and see the stream packets - but I 
cannot "read" or forward on any except the first I configure for that subnet.

I initially tried:

route add -net 224.0.6.10 netmask 255.255.255.255 dvb0_0
route add -net 224.0.6.11 netmask 255.255.255.255 dvb0_1
route add -net 224.0.6.12 netmask 255.255.255.255 dvb0_2
route add -net 224.0.6.13 netmask 255.255.255.255 dvb0_3
route add -net 224.0.6.14 netmask 255.255.255.255 dvb0_4
route add -net 224.0.6.15 netmask 255.255.255.255 dvb0_5

This did not help - I still could only see the first device configured for the 
subnet.  I configured each device for a completely different subnet - each, 
and then attempted to route - still failure.

I have read, unfortunately, that multicast cannot be routed.  Or at least with 
the traditional methods.

So then I bridged all the devices together:

brctl addbr br0
brctl stp br0 off
brctl addif br0 dvb0_0
brctl addif br0 dvb0_1
brctl addif br0 dvb0_2
brctl addif br0 dvb0_3
brctl addif br0 dvb0_4
brctl addif br0 dvb0_5
ifconfig dvb0_0 0.0.0.0 up
ifconfig dvb0_1 0.0.0.0 up
ifconfig dvb0_2 0.0.0.0 up
ifconfig dvb0_3 0.0.0.0 up
ifconfig dvb0_4 0.0.0.0 up
ifconfig dvb0_5 0.0.0.0 up
ifconfig br0 10.230.17.20

And this worked through kernel version 2.6.11.11.  But, I use the skystar2 
card, and until 2.6.12.2, it's flaky.  Under 2.6.12.2, the new b2c2_flexcop 
driver seems to work grand - but now bridging no longer works.  I can bridge 
without errors, but now no data flows from any of the PIDs.

I corresponded briefly with the kernel bridge maintainer, and from the initial 
conversation, I used macchanger to change the mac address for each dvb0_? 
device so that each was unique within my system.  Still no go.  The final 
statement from the bridge module maintainer is that the networking device 
from linuxtv-dvb must be broke.

All I want to do is be able to stream all six PIDs and see them (outside of 
tcpdump).

Final notes - multicast is compiled into the kernel, and ifconfig shows 
MULTICAST on the devices.

Any ideas?

Stonewall




More information about the linux-dvb mailing list