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

Johansson Olle E olle at voop.com
Tue Oct 10 23:31:55 MST 2006


11 okt 2006 kl. 02.45 skrev Rich Adamson:

> 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.
Being pedantic: IAX2 does not have RTP packets ;-) You mean media  
frames.
>
> 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.
>
...which is exactly the situation where the problem arised. When you  
have *many* calls across one IAX2 with trunking turned on, you
will reach beyond the upper limit of the MTU and you will likely get  
very poor voice quality.

There's another problem too, which you are hinting, in sending  
multiple large frames across the ethernet at the same time, thus
causing congestion. We're looking into a future patch that will space  
packets out a tiny bit to avoid being the cause of congestion
on the network. As I understand, this is a problem similar to the  
problems with the early ATM technology.

/Olle



More information about the asterisk-dev mailing list