[asterisk-dev] Re: [Fwd: [svn-commits] oej: branch oej/iaxtrunkfix-1.2 r44779

Rich Adamson radamson at routers.com
Tue Oct 10 17:45:58 MST 2006


Benny Amorsen wrote:
>>>>>> "RA" == Rich Adamson <radamson at routers.com> writes:
> 
> RA> Author: oej Date: Tue Oct 10 04:43:12 2006 New Revision: 44779
> 
> RA> URL: http://svn.digium.com/view/asterisk?rev=44779&view=rev Log:
> RA> Add patch for setting MTU on trunks.
> 
> RA> With a large amount of traffic on IAX2 trunks, there is bad voice
> RA> quality due to the fact that the IAX2 trunking scheme depends on
> RA> the Linux system to handle fragmentation of UDP packets. This is
> RA> not very efficient. This patch adds the ability to set an MTU size
> RA> for *ALL* iAX2 trunks in Asterisk 1.2. In the patch for svn trunk,
> RA> we will add new features, like setting MTU per trunk. In the case
> RA> of Asterisk 1.2, we wanted a small clean patch to be able to get
> RA> voice quality back without changing a lot of source code.
> 
> Why not simply do path MTU discovery?

Path mtu discovery will not provide the required performance mtu sizing 
with the single exception of when an asterisk box is directly attached 
to a dsl modem (or other transmission link). That means absolutely no 
other box sharing the link. The patch is oriented around moving rtp 
packets out of the local ethernet interface, and does not consider the 
impact from the "next" box in the transmission path.

This might be a poor example, but I'll try it anyway.

Example: Asterisk box with patch applied. Another linux box on the same 
local segment providing dns, simple web, and maybe email. Dsl modem with 
512k bandwidth.

The path mtu discovery for the general linux box will likely return a 
1500 bytes, and will attempt to send all data via the dsl modem in 
packets of 1500 byte size.

The asterisk box (with patch applied) will attempt to impact the mtu 
size of the packets sent only by the asterisk box, sizing those packets 
to something less then 1500 byte packets. (That will only occur when 
using iax trunking only.)

When a number of large packets from the general linux machine queues up 
at the dsl modem (or cisco router if you want that instead), as soon as 
one large packet begins to flow across the dsl link, the link is 100% 
utilized until that packet has been sent, and that elapsed time is much 
larger then is wanted for consistent rtp packet flows (resulting in 
jitter). In effect, it turns out to be iax packet starvation.

I'm not saying the patch is bad, however it will have very little impact 
with the exception of large installations where many iax conversations 
are occurring across a singe path.



More information about the asterisk-dev mailing list