Adjust DAHDI Chunk Size for Asterisk PBX

You have visited this page because your system is having performance issues (or you simply wish to optimize your system) by reducing system interrupt load from your Sangoma card for Asterisk.

The following page is only applicable for:

  • Sangoam E1/T1 cards

  • Sangoma cards with hardware echo cancellation

  • systems that do no require any echo cancellation (hardware or software)

Do not proceed if your system is configured for :

  • Analog

  • E & M Wink (T1/E1)

  • R2/ RBS

As seen in the diagram below, the default DAHDI signalling layer runs on 8 byte chunk size.  This is because the DAHDI software echo cancellation (called 'mg2') is designed for 8 byte chunk size. This means that every 1ms the CPU is interrupted to process information from TDM hardware! This causes congestion on the PCI bus and overall creates a bottleneck.  

Sangoma hardware is able to eliminate this limitation as we offer Hardware echo cancellation with more flexibility.  See diagram below.

 

 

 

DAHDI chunk size can be configured for the following units:

  • 8 bytes (default 1ms)

  • 16 bytes (2ms)

  • 40 bytes (5ms)

  • 80 bytes (10ms)
     

As seen in the diagram below, increasing the chunk size drastically reduces the number of hardware intrrupts on your system and context switches.  This will allow you to scale better with larger number of ports.  Interrupts have to be handled whether calls are up or not, while context switching load depends on the number of active calls.



How to take advantage of DAHDI chunk size adjustment

You must re-install the Wanpipe driver with a specific flag.

  • navigate to the source directory of the Wanpipe driver

    • i.e. cd /usr/src/wanpipe-7.0.6/ (or whichever directory you downloaded Wanpipe to)

  • Type the following:

     ./Setup install --dahdi-chunk=<CHUNK SIZE>

     Where CHUNK SIZE:  8, 16 , 40 or 80

This will re-install the Wanpipe driver, and patch DAHDI sources for the chunk size you selected.  It will remove the wct4xxx (Digium) driver Makefile because it does not support chunksize other than 8 bytes

Select YES to recompile DAHDI/Zaptel in the Setup process

  • The rest of the ./Setup process is identical to the typical Wanpipe installation.

NOTE: For binary Distributions (i.e. Elastix or FreePBX Distro) you will need to download the Sources for both DAHDI and Wanpipe as they do not exist on your system.
Please contact Sangoma support for quick details on how to change DAHDI chunk size for your system 

Once completed, simply start Wanpipe, DAHDI + Asterisk:

  • wanrouter start

  • dahdi_cfg -vvv

  • asterisk

To confirm that the DAHDI chunk size has been changed, type "ifconfig" and look at the MTU size for your Wanpipe ports.
MTU = configured chunk size  (8, 16, 40, 80)  
i.e



Return to Documentation Home I Return to Sangoma Support