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

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


Hi,

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
ioctl(fd_net).

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,

Dietmar


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
 >...........E...
   0010:  68 70 00 00 07 11 d3 96  ac 16 05 0d e1 e1 e1 0d
hp..............
   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:
00:00:80:0c:e1:0d
IP_datagram_bytes
       0000:  45 00 03 d4 68 70 00 00  07 11 d3 96 ac 16 05 0d
E...hp..........
       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 172.22.5.13.49172 > 225.225.225.13.1102: UDP,
length 192
00:25:16.377575 IP 172.22.5.13.49172 > 225.225.225.13.1102: UDP,
length 183
00:25:16.379331 IP 172.22.5.13.49170 > 225.225.225.13.1100: UDP,
length 1472

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

dvbsnoop 1201
(...)
v=0
o=- 1284305069 1139040522 IN IP4 192.168.250.2
s=realtimeaudio
c=IN IP4 226.226.0.2
a=control:*
a=range:npt=0.0-
a=ISMA-compliance:1,1.0,1
a=mpeg4-iod: "data:application/mpeg4-iod;base64,AoEHAA///w///wN
+AAFAYGRhdGE6YXBwbGljYXRpb24vbXBlZzQtb2QtYXU7YmFzZTY0LEFTb0JLQUtmQXlRRDZ
BVUVEVUFWQUFZQUFBZ1RNQUFCdFlBR0VBQkVBQUNzUkFBQXJFUWdJQUFBQUFNPQQNAgUAAQA
AAAAAAAAAAAYJAQAAAAAAAAAA"
m=audio 9030 RTP/AVP 101
b=AS:112
a=rtpmap:101 mpeg4-generic/44100/2
a=control:trackID=1000
a=fmtp:101 streamtype=5; profile-level-id=15; bitrate=112000;
config=1210; sizelength=13; indexlength=3; indexdeltalength=3;
profile=1; mode=AAC-hbr
a=mpeg4-esid:1000
(...)

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