[asterisk-bugs] [JIRA] (DAHLIN-329) Support multiple dynamic spans with FIFO

Shaun Ruffell (JIRA) noreply at issues.asterisk.org
Fri Nov 8 01:58:03 CST 2013


    [ https://issues.asterisk.org/jira/browse/DAHLIN-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=211609#comment-211609 ] 

Shaun Ruffell commented on DAHLIN-329:
--------------------------------------


Regarding 1: I haven't looked at the patches, but kfifo might still need to be wrapped in some #ifdefs or back ported since DAHDI still needs to compile against 2.6.18 at least until all major distributions drop support for it, but that won't be for another couple of years.

Regarding 3: I'm not convinced that hrtimer needs to be added to dahdi-base.  When there aren't any hardware cards installed on the system, audio is typically only mixed in 20ms chunks to/from user space. Even if HZ is set to 100, the timer still fires twice as fast as the typical audio chunk size. I think he overhead of running the hrtimer interrupt isn't warranted for the "default" case.  I'm not a big dynamic eth span user, but I imagine it would be best for dahdi_dynamic_eth, when intended to be the timing master, to set an hrtimer internally and use.  The core timer would then see it "ticking" and go to the slower rate looking for problems.
                
> Support multiple dynamic spans with FIFO
> ----------------------------------------
>
>                 Key: DAHLIN-329
>                 URL: https://issues.asterisk.org/jira/browse/DAHLIN-329
>             Project: DAHDI-Linux
>          Issue Type: Improvement
>      Security Level: None
>          Components: dahdi (the module), dahdi_dynamic
>    Affects Versions: 2.7.0
>         Environment: Kernel versions 2.6.24, 2.6.38 and 3.2.0 tested
>            Reporter: Michael Walton
>            Assignee: Russ Meyerriecks
>         Attachments: dahdi-base.c.patch, dahdi_dummy.c.patch, dahdi_dynamic.c.patch, dahdi-dynamic-multispan-fifo.patch, kernel.h.patch
>
>
> The dynamic span driver works for one span, but is unable to handle the phase differences caused by line and network jitter and clock drift in a multiple span situation. The introduction of a configurable receive FIFO,  proper master clock priority switching and slip/skip processing solves this problem. Additionally, to support configurations where no telephony hardware is present, the highres timer from (defunct) dahdi_dummy is re-introduced into dahdi base to replace the core timer functionality (which is limited to 250Hz) with a true 1000Hz tick. As with the core timer, this is the fallback timing when no span provides master timing.
> Dynamic multispan introduces:
>  * Configurable fifo on incoming dynamic frames
>  * Master/slave dynamic spans with priority switching based on alarm status
>  * All transmit and receive processing is done in the dahdi_dynamic_run tasklet to ensure proper handling of jitter and phase differences
>  * Unreachable spans (RED alarm) switch to a poll mode to prevent network being flooded by 1ms frames that go nowhere
>  * Slip/skip statistics per span available on /proc/dahdi/dahdi_dynamic_stats
>  * High res timer added to dahdi-base to replace core timer with true 1ms tick timer
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list