Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 1999 08:04:30 +0100 (MET)
From:      Martin Husemann <martin@rumolt.teuto.de>
To:        balu@dva.in-berlin.de (Boris Staeblow)
Cc:        freebsd-isdn@FreeBSD.ORG
Subject:   Re: HELP: crash with I4B
Message-ID:  <199901060704.IAA01930@rumolt.teuto.de>
In-Reply-To: <19990106014154.A2921@dva.in-berlin.de> from "Boris Staeblow" at Jan 6, 99 01:41:54 am

next in thread | previous in thread | raw e-mail | index | archive | help
> > Are you using callback with this connection?
> 
> No - it's a simple PPP-connection to my Provider.

This is fine as Hellmuth didn't believe me (yet?) that this is not a problem
of the immediate-calledback support I've integrated just before the beta
was released.

> Jan  5 23:56:16 xx /kernel: isp0: phase dead
> Jan  5 23:56:16  CHD 00001 xx outgoing call disconnected (remote)
> Jan  5 23:56:16 xx /kernel: i4b-L3-i4b_decode_q931: cannot find calldescriptor 
>  for cr = 0x3b, crflag = 0x1, msg = 0x4d, frame =  0x4d 0x8 0x2 0x82 0xd1

This is nearly the same I get: cr 0x3b was a valid cr for CHD 00001 until
this connection was disconnected. The correct RELEASE COMPLETE message is
sent by i4b:

> -- NT->TE - unit:0 - frame:000021 - time:05.01 23:56:16. 26304 - length:8 ------
> Dump:000  02 f3 0a 08                                           ....
> Q921: SAP=0 (Call Control), C, TEI=121, I-Frame: N(S) 5 N(R) 4 P 0 
> Dump:004  08 01 bb 5a                                           ...Z
> Q931: pd=Q.931/I.451, cr=0x3b (from destination), message=RELEASE COMPLETE: 

and after this the calldescriptor is destroyed, invalidating this cr from
i4b's point of view. Somehow the network does not see the RELEASE COMPLETE
(and in my setup I've verified it realy isn't sent to the wire by i4b) and
after some short timeout repeats the RELEASE, hoping to get a RELEASE COMPLETE
now:

> -- NT->TE - unit:0 - frame:000023 - time:05.01 23:56:16.106305 - length:12 -----
> Dump:000  02 f3 0c 08                                           ....
> Q921: SAP=0 (Call Control), C, TEI=121, I-Frame: N(S) 6 N(R) 4 P 0 
> Dump:004  08 01 bb 4d 08 02 82 d1                               ...M....
> Q931: pd=Q.931/I.451, cr=0x3b (from destination), message=RELEASE: 
>      [cause: 81: Invalid call reference value (Q.850) 
>           (location=public network serving local user, std=CCITT)]

But: we don't have the cr any longer, can't find a calldescriptor and
shoot ourself in the foot.

There are two points here: the cr should be kept around for the timeout
period. Not that hard to do. But the real problem: due to some race
condition in layer 1 or layer 2 we don't send the release complete, and
this has to be debugged first.

I'm working on it.


Martin

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901060704.IAA01930>