[asterisk-ss7] Strange interrupt issue with zaptel and chan_ss7

Kai Militzer km at westend.com
Sat Jul 8 01:04:10 MST 2006

Hallo Shane,

Shane Burrell schrieb:

> I hate to say it but you might want to consider a sangoma card. 
> Problems seem to disappear with the a104d.
Well, that may be the case, but I want to know, where the problem 
exactely lies. If one card of two systems does work and a sangoma card 
does work too, why does another TE205P not work? Who tells me, that with 
a sangoma card I will not have problems too, whatsoever?


> ------------------------------------------------------------------------
> *From:* asterisk-ss7-bounces at lists.digium.com 
> [mailto:asterisk-ss7-bounces at lists.digium.com] *On Behalf Of 
> *Christopher Bergström
> *Sent:* Friday, July 07, 2006 11:03 AM
> *To:* asterisk-ss7 at lists.digium.com; km at westend.com
> *Subject:* Re: [asterisk-ss7] Strange interrupt issue with zaptel and 
> chan_ss7
> Kai Militzer wrote:
> Hello everyone,
> I have a very strange issue with a TE205P, zaptel and chan_ss7 
> regarding interrupts. As I think this is originated somehwere in the 
> zaptel driver, I crosspost this to -dev, hope that's OK.
> As chan_ss7 need not d-channel, the configuration in /etc/zaptel.conf 
> is as follows:
> bchan=1-31
> bchan=32-62
> That's the first difference to a config with zaptel, where dchannels 
> need to be configured.
> I came across the issue, when I started to get a lot of CRC16 errors 
> on the MTP2 part of chan_ss7 resulting at last in a flapping of the 
> complete SS7 signaling every few minutes. Together with these CRC16 
> errors I got messages, that chan_ss7 ran into an "Excessive poll 
> delay" and that the Zaptel input buffer went full, directly followed 
> by a empty zaptel output buffer. What was/is strange is the fact, that 
> I have two machines configured the same, only differing in DPC and OPC 
> codes in chan_ss7 and different CPUs. The machine working without 
> problems runs with a AMD Duron with 1300 MHz, the one with the 
> CRC-errors on a P4 with 3GHz.
> My first step to find the source of the problem was to put the Card 
> into a different System, also running a P4, but this time only with 
> 1.8GHz. That resulted in the same errors, the SS7 part wouldn't even 
> start with that one.
> So I started to dig deeper. I made a crosslink cable and connected two 
> E1 ports with it, started two instances of asterisk with chan_ss7 and 
> experienced the problem (that proved at last, that there was no 
> problem with the Switch from the TelCo). So my next step was to start 
> the two instances with chan_zap instead of chan_ss7 and everything is 
> fine. No erros in any way.
> As I knew, that the Card in my other system with an AMD worked, I now 
> changed Hardware again, this time putting the card in AMD Athlon XP 
> 3000+, crosslinked the two E1s again and started two instances of 
> asterisk running chan_ss7. And voila, no problem. At least at first it 
> looked this way. I let it run over night (only asterisk is running, no 
> traffic or whatsoever may distract the system) and when I came back 
> this morning, I had CRC errors + the other error messages on the 
> screen. So now I suspected the card (which I still do for a bit). To 
> test, if the TE205P works as it should, I made a crossover plug (Pin 
> 1-4 and 2-5) and ran a patlooptest, a loop test with zttool, a zttest 
> and also uncommented #define CONFIG_ZAPTEL_WATCHDOG in zconfig.h. All 
> looks fine,  no errors whatsoever. The card is assigned an interrupt 
> for itself without anything else using it. All looked good.
> Then finaly I came across the behavior that puzzles me. Asterisk was 
> running with two instances over the crosslink and the console screen 
> was blanked on the console. So I wanted to press Shift to unblank it, 
> but accidently pressed the CapsLock key. When the screen was unblanked 
> and I  started to type, I realized, that CapLock was on. I pressed it 
> again and in this moment, I got a CRC16 error. I thought that was 
> strange and pressed it again twice, and there it was again, Packets 
> from the zaptel driver to chan_ss7 got lost. The same behavior 
> happens, when I press ScollLock or NumLock. The Keyboard runs on 
> interrupt 1 and the TE205P on IRQ11, so there shouldn't be any impact 
> when the keyboard uses this interrupt.
> As you can see, I am stuck now, why does this happen and why only with 
> chan_ss7? I cannot say if I can reproduce the errors on my "running 
> system" (the one without the errors) as it is located elswhere without 
> a keyboard connected. Any ideas how to solve this are greatly 
> appreciated, as I need to get the system back to work.
> Here is the bottom line problem in chan_ss7 right now.. 
> snip from man 2 write
>        EAGAIN Non-blocking I/O has been selected using O_NONBLOCK and 
> the write would block.
>        EINTR  The call was interrupted by a signal before any data was 
> written.
> It basically comes down to the write errors not being handled properly 
> as best I can tell.  Make a patch that tests for these errors and 
> handles them as they should..  When I have more time I'll poke around 
> in how ast_frame is being passed as the asterisk-devs think there may 
> also be a problem there.. I can only confirm differences in 
> implementation from the different channel stacks I've seen.
> Cheers,
> C.
>--Bandwidth and Colocation provided by Easynews.com --
>asterisk-ss7 mailing list
>To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/asterisk-ss7

More information about the asterisk-ss7 mailing list