[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