Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Issues with ULE decapsulation



Hello,

we are currently working on ipv6-dvb integration via ULE. We have
already successfully implemented an encapsulator and are trying to use
the decapsulator provided by linuxtv.org (as modified by Metzler
Brothers). We are using Fedora Core 2, Kernel 2.6.5-1.358.

Unfortunately, the computer completely freezes after receiving some
packets (usually after about 30 seconds, but can be up to 5 minutes). A
look in /var/log/messages reveals the following messages (among others):

[hexdump of MPEG packet]
Sep 14 21:40:33 client2 kernel: *** LOOP ALERT! ts 14dcf550 ts_remain
184 how_much 0, ule_skb 00000000, ule_len 0, ule_remain 0
Sep 14 21:40:33 client2 kernel: Expected 16379 more SNDU bytes, but got
PUSI.  Flushing incomplete payload.
Sep 14 21:40:34 client2 kernel: Expected 23870 more SNDU bytes, but got
PUSI.  Flushing incomplete payload.
Sep 14 21:40:34 client2 kernel: Expected 2342 more SNDU bytes, but got
PUSI.  Flushing incomplete payload.

These messages are repeated several times.

We have found out that these messages are generated by dvb_net.c, which
is included in the kernel sources
(<linux_src_dir>/drivers/media/dvb/dvb-core/). In principle, the
"Expected.."-messages are sensible, but our input data never exeeds SNDU
lengths of 1372 bytes (we verified this several times at different
stages of transport at sender and receiver side as well).

We diff'ed the aforementioned file and the one provided with the drivers
by linuxtv.org (after using the patch from this list) and found out that
there are several differences between the two (apart from the different
comment style and kernel < 2.5.0 compatibility). In addition to that,
the included <linux/dvb/net.h> defines different constants in the
dvb_net_if struct (these are DVB_NET_FEEDTYPE_MPE/DVB_NET_FEEDTYPE_ULE
compared to FEEDTYPE_SEC/FEEDTYPE_TS).

We assume that the freezing of the computer can be traced to
segmentation faults generated by the included dvb_net. Furthermore, we
assume that this file is older than the one provided in the linuxtv.org
CVS. So, we are trying to replace the file with the newest one (which
means we also have to make changes in the mentioned net.h file) and
compile the kernel anew.
Is this possible and if yes, is there anything we have to observe/change?


Thanks in advance,

Moritz Vieth
Hanno Tersteegen

--
Moritz Vieth

Fraunhofer Institute for Open Communication Systems
Competence Center for Advanced Satellite Communications

Schloß Birlinghoven
D-53754 Sankt Augustin, Germany

+49-(0)2241-14-3467
moritz.vieth@fokus.frauhofer.de




Home | Main Index | Thread Index