[linux-dvb] DVB-H and dvbnet / MAC-broadcast address

Dietmar Zlabinger dietmar.zlabinger at gmail.com
Fri Mar 30 13:40:50 CEST 2007


I am looking for help on receiving DVB-H.
I get to the point where the encapsulated IP is attached to a network
interface (as dvb0_0 using dvbnet -p <portnr>). At this stage I am able to
dump the UDP-packets received using tcpdump. But I am not able to get that
IP-multicast into VLC.

I believe the problem is related to the fact that normally IP-multicast uses
the Ethernet broadcast address (ff:ff...) while in dvb-h the destination mac
is (partly) replaced by the dvb-h time slicing information . Therefore the
traffic is only received by the network interface when it is in promiscuous
mode (when using tcpdump), but not when a normal program (like vlc) is
trying to get multicast frames out of it.

My idea then was to modify dvbnet so that it replaces the "broken" ethernet
destination (is contains timeslicing-infos) by "ff:ff" so that it goes
through the network interface. But the actual code of dvbnet does actually
not handle the received data, the only thing that program does is some

Any idea who I could get the ethernet-multicast out even when the
destination mac is wrong?
Any idea how I could modify (the kernel) so that I could overwrite the
faulty mac?

I could not find any description on how to receive dvb-h on the web. The are
some mailing on how to find SDP files, but that was not such a big thing
(dvbsnoop  -b <pid> ..).

Thanks for help,


Some of my debug output:

tzap <service>

dvbsnoop 1140
dvbsnoop V1.4.00 -- http://dvbsnoop.sourceforge.net/

SECT-Packet: 00000001   PID: 1140 (0x0474), Length: 996 (0x03e4)
Time received: Fri 2007-03-30  00:15:34.630
   0000:  3e b3 e1 0d e1 c1 00 00  0c 80 00 00 45 00 03 d4
   0010:  68 70 00 00 07 11 d3 96  ac 16 05 0d e1 e1 e1 0d
   0020:  c0 12 04 4c 03 c0 dd f5  80 e0 5a 1e fa b3 d3
8d   ...L......Z.....
(...)  03d0:  8e 91 da df 06 f9 42 54  2c 90 bf 5e 2a 7f f7
c0   ......BT,..^*...
   03e0:  9c ee 8a fd                                        ....

PID:  1140 (0x0474)
Guess table from table id...
DSM-CC DATAGRAM-decoding....
Table_ID: 62 (0x3e)  [= DSM-CC - private data section  // DVB datagram]
section_syntax_indicator: 1 (0x01)
private_indicator: 0 (0x00)
reserved_1: 3 (0x03)
Section_length: 993 (0x03e1)
MACaddrbyte/DevicdID 6: 13 (0x0d)
MACaddrbyte/DeviceID 5: 225 (0xe1)
reserved_2: 3 (0x03)
payload_scrambling_control: 0 (0x00)  [= unscrambled]
address_scrambling_control: 0 (0x00)  [= unscrambled]
LLC_SNAP_flag: 0 (0x00)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)
MACaddrbyte/DeviceID 4: 12 (0x0c)
MACaddrbyte/DeviceID 3: 128 (0x80)
MACaddrbyte/DeviceID 2: 0 (0x00)
MACaddrbyte/DeviceID 1: 0 (0x00) => MAC-Address/DeviceID:
       0000:  45 00 03 d4 68 70 00 00  07 11 d3 96 ac 16 05 0d
       0010:  e1 e1 e1 0d c0 12 04 4c  03 c0 dd f5 80 e0 5a
1e   .......L......Z.
       0020:  fa b3 d3 8d 00 00 01 e0  3c 41 8e 0c 0a 7e e3
7a   ........<A...~.z

dvbnet -p 1140

fconfig dvb0_0  up

tcpdump --n -i dvb0_0 -s0

00:25:16.377328 IP > UDP,
length 192
00:25:16.377575 IP > UDP,
length 183
00:25:16.379331 IP > UDP,
length 1472

some sdp (not related, from a different service):

dvbsnoop 1201
o=- 1284305069 1139040522 IN IP4
c=IN IP4
a=mpeg4-iod: "data:application/mpeg4-iod;base64,AoEHAA///w///wN
m=audio 9030 RTP/AVP 101
a=rtpmap:101 mpeg4-generic/44100/2
a=fmtp:101 streamtype=5; profile-level-id=15; bitrate=112000;
config=1210; sizelength=13; indexlength=3; indexdeltalength=3;
profile=1; mode=AAC-hbr

vlc -vvvv  thisservice.sdp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/linux-dvb/attachments/20070330/ba80e774/attachment.htm

More information about the linux-dvb mailing list