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

Michael Walton (JIRA) noreply at issues.asterisk.org
Fri Nov 8 00:32:05 CST 2013


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

Michael Walton commented on DAHLIN-329:
---------------------------------------

I agree, always needs to be tasklets. 



It would be great if you could add my patches over yours and re-submit. One thing though, I think that bringing hrtimer into dahdi-base makes sense, it will also help other users by improving the behaviour when no other timing source is available. Overall, the way I have done the timing control in dahdi_dynamic works pretty well for master and slave TDMoE, and also supports properly local timing sources (our product uses both TDMoE and PCIe based timing). I don't think I understand what part of it doesn't work for your situation. So my summary:

1. Your kfifo improvements should be in
2. I think the call to dahdi_receive and dahdi_ec_span in dahdi_dynamic_receive is a merge error (my bad), these lines should be removed as far as I can tell. This will address your comment 07/Nov/13 7:58 PM.
3. My opinion is that dahdi_dummy has been phased out in favour of core timer in dahdi-base, we should keep to this and add hrtimer to dahdi-base as per my patch (Shaun/Russ comment?)


                
> 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