This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Pablo Neira Ayuso pablo at gnumonks.orgHi Harald,
On Mon, Oct 22, 2012 at 10:22:45AM +0200, Harald Welte wrote:
> Hi Lennart,
>
> On Sun, Oct 21, 2012 at 08:57:31PM +0200, Lennart Müller wrote:
> > 2012/10/18 Harald Welte <laforge at gnumonks.org>
> > > I strongly suggest you take a pcap capture file (like "tcpdump -ni eth0
> > > -s0 -w/tmp/my.pcap") and figure out which exact message is causing the
> > > problem. Then you forward the relevant portion of the pcap file to this
> > > list.
> >
> > I've attached a trace, no. 35 (data indication) seems to cause the drop.
>
> I'm a bit puzzled by this.
>
> "MM STATUS" is handled by gsm48_rx_mm_status() which unconditionally
> returns '0', i.e. our return value for success. gsm0408_rcv_mm(), the
> calling function, clearly returns this return value of '0' up to the
> caller gsm0408_dispatch(), which again returns it to its caller.
>
> So from what I can tell in the code, I don't see an obvious path how
> that message should ever return -1 to libosmo-abis, which then drops the
> link.
>
> It would be useful if you could spend some more time to try to hunt this
> down, possibly by printing a backtrace using "osmo_log_backtrace(DLINP,
> LOGL_ERROR)" around line 455 of libosmo-abis/src/input/ipaccess.c
> within in the section/clause:
>
> if (e1i_ts->line->ops->sign_link(msg) < 0) {
> ...
> }
>
> which is where the 'Bad signalling message' error message is printed
> first. The backtrace will only be addresses, and you would have to use
> the symbol table to figure out which function caused it (e.g. by using
> objdump).
>
> Pablo: It actually would make sense to include this call to
> osmo_log_backtrace() as a default in libosmo-abis, what do you think?
Not sure that will help. I can do that but, AFAICS, it will not show
the code trace in openbsc that spotted that problem (since we would be
already out of its scope once libosmo-abis notices the problem).
As an alternative, I can develop some little extension for libosmocore
to store the packet that triggered the problem in some file like
"ipaccess-bad-signalling-link-DATE.pcap".
So we can make sure what packet triggered the problem.
Let me know if I'm missing anything.