[linux-dvb] Question about dvbnet and time-slicing
lucabe72 at email.it
Tue Apr 18 15:04:39 CEST 2006
I am currently reading EN301192 to see if/how the DVB driver has to be
modified to receive DVB-H traffic.
According to the section about time-slicing (that should be always used
in DVB-H, right?) it seems to me that some code in dvb_net.c has to be
changed. In particular, dvb_net_sec() assumes that the MAC address is
always coded in 6 bytes in the MPE header.
But it seems to me that if time-slicing is used, then only 1 or 2 bytes
are used for the MAC address, and the remaining 4 bytes are used for
encoding the time-slicing real time parameters.
So, dvb_net.c might end up forging ethernet packets with a wrong MAC
Now, the problem is that the number of bytes used for storing the MAC
address in the MPE header is encoded in the
time_slice_fec_identifier_descriptor (where is it generally contained,
BTW?)... So, the dvb driver should parse a lot of tables for knowing how
to set the MAC address... But I do not think that parsing SDT, PMT, NIT,
INT, etc in the in-kernel dvb driver is a good idea. So, how can this
problem be solved?
Is anyone already thinking about a possible solution?
(I could only think about the really stupid solution: for multicast
traffic, compute the multicast MAC from the IP address, and for unicast
traffic always use the MAC from the DVB card :)
(another question for the DVB experts here: if only one byte in the MPE
header is used for storing the MAC, where can the IP/MAC association be
found? Is it in the INT table?)
Proud to be "coglione"
More information about the linux-dvb