Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Jan 2013 12:28:03 +0100
From:      Andreas Longwitz <longwitz@incore.de>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-isdn@freebsd.org
Subject:   Re: ISDN4BSD (HPS version) is going into ports
Message-ID:  <50F53D43.2070404@incore.de>
In-Reply-To: <201301141628.40780.hselasky@c2i.net>
References:  <509E87EF.9070607@incore.de> <201301111150.47312.hselasky@c2i.net> <50F41F19.2050205@incore.de> <201301141628.40780.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Hans Petter Selasky wrote:
> 
> Do you know what mode the chip is running in for the B-channels?
Not really.

> HDLC or so-called transparent mode (no bit-destuffing). By default the AVM PCI 
> driver is setup to use HDLC emulation, and expects that the chip is configured 
> for transparent mode. Valid HDLC flags start like 0x7E, and that is what I 
> would expect. Else something is wrong somewhere. 
> 
> [Incoming data] -> [HDLC table decoder] -> [isdndecode]
> 
> No data in isdndecode means that the HDLC table decoder is not getting what it 
> expects.

Thanks for this clarification.

With some more initialization stolen from the BSD source I now have for
the first incoming frame:

avm_pci_b_status_read: len_rx=32:
0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
avm_pci_b_status_read: len_rx=32:
0xffffffffffe7ff7e7edf070087043c003814183cf920021e20001ea9cfe8e7e7
avm_pci_b_status_read: len_rx=32:
0xe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7

and the first outgoing looks like this:
avm_pci_b_status_read: len_tx=32:
0xffffff7edf070087040400381418683c51db0d10008f30e0fafdffffffffffff

and my local isdndecode sees both of this frames (remote isdndecode sees
only his own frame):

-- TE->NT - unit:00  frame:000030 - time:14.01 21:28:26.129845 -
                                    length:18 ----
B01:000  ff 03 c0 21 01 01 00 0e    05 06 1a 4f d4 76 03 04
B01:010  c0 23

-- NT->TE - unit:00  frame:000031 - time:14.01 21:28:26.203400 -
                                    length:18 ----
B01:000  ff 03 c0 21 01 0f 00 0e    05 06 4f 3e 44 c0 03 04
B01:010  c0 23

But no more frames.

I have b1control=hdlc in my isdnd.rc and use for the card:
     isdnconfig -u 0 -p DRVR_DSS1_TE
I do not know what to do otherwise from userland to "configure the chip
for transparent mode". The kernel driver should do this (he sets
HSCX_MODE_TRANS) ?

I agree there is a communication problem for B-channel between the
driver and the chip. For an outgoing B-channel frame we write the frame
 to the fifo of the chip but I cannot see, that we tell the chip we are
ready and the frame should go out the line. For an incoming B-channel
frame we read the frame from the fifo of the chip but I don't see that
we tell the chip we have it, so the chip does not get the next frame
from the line. For incoming D-channel frames we use RMC command for this
in register cmdrd.

Probably I am missing something.

-- 
Andreas Longwitz




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