[asterisk-dev] Strange interrupt issue with zaptel and chan_ss7
Kai Militzer
km at westend.com
Fri Jul 7 02:10:58 MST 2006
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.
Best regards,
Kai
--
Kai Militzer WESTEND GmbH | Internet-Business-Provider
Technik CISCO Systems Partner - Authorized Reseller
Lütticher Straße 10 Tel 0241/701333-14
km at westend.com D-52064 Aachen Fax 0241/911879
More information about the asterisk-dev
mailing list