[SR-Users] Dispatcher module and xavp_dst

Julien Chavanton jchavanton at gmail.com
Thu Sep 1 15:28:12 CEST 2022


The rest of the dispatcher "features", like failover should be supported
based on what I remember from the way it was integrated and tested.

If it is not the case I can have a look.



On Thu, Sep 1, 2022 at 9:21 AM Julien Chavanton <jchavanton at gmail.com>
wrote:

> On second thought, the documentation looks accurate to me.
>
> Do you have the latency stats enabled ?
>
> 3.26. ds_ping_latency_stats (int)
>
> If yes, the priority values you are using seem a bit low 1ms and 10ms.
> If not, the algorithm should behave simply like that :
> "The algorithm will load balance using round-robin prioritizing the
> gateways with the highest priority. "
>
>
>
>
>
> On Thu, Sep 1, 2022 at 9:09 AM Julien Chavanton <jchavanton at gmail.com>
> wrote:
>
>> Maybe the documentation should be improved, it seems the first bullet
>> point should say.
>>
>> "The algorithm will load balance using round-robin prioritizing the
>> gateways with the highest *adjusted* priority. "
>>
>>
>>
>> On Thu, Sep 1, 2022 at 9:06 AM Julien Chavanton <jchavanton at gmail.com>
>> wrote:
>>
>>> Hi, did you look at the documentation of  algorithm 13 ?
>>>
>>> The priority is used in combination with the latency to determine the
>>> preferred gateway.
>>> Once you confirm that this is what you want "latency latency optimized
>>> dispatching", we can help to clarify why and how this may not work as
>>> expected.
>>>
>>>
>>> Regards
>>>
>>>
>>> https://kamailio.org/docs/modules/devel/modules/dispatcher.html
>>>
>>>    -
>>>
>>>    “13” - latency optimized dispatching
>>>
>>>    - The algorithm will load balance using round-robin prioritizing the
>>>    gateways with the highest priority.
>>>
>>>    - If ds_ping_latency_stats is active the algorithm will adjust the
>>>    priority of the gateway automatically, the priority will be lowered by 1
>>>    point every time the latency ms is as high as the priority.
>>>
>>>    - If the attribute 'cc=1' is set, the latency used is congestion ms
>>>    : estimate (current latency ms) - average (normal condition latency ms).
>>>
>>>    *Example 1.46. latency_optimized_dispatching usage*
>>>
>>>    Using this simple formula :
>>>        ADJUSTED_PRIORITY = PRIORITY - (ESTIMATED_LATENCY_MS/PRIORITY)
>>>
>>>    GATEWAY | PRIORITY | ESTIMATED | ADJUSTED | LOAD
>>>       #    |          |  LATENCY  | PRIORITY | DISTRIBUTION
>>>       1    |    30    |    21     |    30    | 33%
>>>       2    |    30    |    91     |    27    | 0%
>>>       3    |    30    |    61     |    28    | 0%
>>>       4    |    30    |    19     |    30    | 33%
>>>       5    |    30    |    32     |    29    | 0%
>>>       6    |    30    |    0      |    30    | 33%
>>>       7    |    30    |    201    |    24    | 0%
>>>
>>>
>>>    With congestion control the formula becomes :
>>>        CONGESTION_MS = CURRENT_LATENCY_MS - NORMAL_CONDITION_LATENCY_MS
>>>        ADJUSTED_PRIORITY = PRIORITY - (CONGESTION_MS/PRIORITY)
>>>
>>>
>>>    -
>>>
>>>
>>>
>>>
>>> On Thu, Sep 1, 2022 at 2:38 AM Pyry Aaltonen <pyry.aaltonen at cuuma.com>
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>>
>>>>
>>>> I’m quite new user with kamailio (heard first time about it a year ago
>>>> and joined the list yesterday) and now wondering how the xavp_dst should
>>>> work.
>>>>
>>>>
>>>>
>>>> I had read from the documentation that
>>>>
>>>> ”The first XAVP is the current selected destination.”
>>>>
>>>>
>>>>
>>>> I use ds_select_dst with alg 13. And my kamailio version is kamailio
>>>> 5.5.3 (x86_64/linux)
>>>>
>>>>
>>>>
>>>> So when my dispatcher list is like (I have also tried to differ the
>>>> priority value like 10 and 1, but doesn’t make difference)
>>>>
>>>> 10 sip:1.2.3.4;transport=tcp 10 1 type=type1
>>>>
>>>> 10 sip:4.3.2.1;transport=tcp 10 1 type=type2
>>>>
>>>>
>>>>
>>>> If one of the destinations fails (dx/ip), and it happens to be the one
>>>> with higher priority or the one that just gets higher position in the
>>>> dispatcher list if the prio Is equal.
>>>>
>>>> My xavp_$xavp(dsdst=>attrs) get null value. And, if I try to seek
>>>> $(xavp(dsdst[0]=>attrs) or $(xavp(dsdst[1]=>attrs) I also got nothing.
>>>>
>>>>
>>>>
>>>> If both destinations are up with equal priority, it selects them with
>>>> round-robin, and the xavp_$xavp(dsdst=>attrs) has the type value of
>>>> the selected destination as expected, also the $(xavp(dsdst[0]=>attrs) or
>>>> $(xavp(dsdst[1]=>attrs) contains the destinations so that the selected
>>>> is 0 and the other is at position 1.
>>>>
>>>> The $du is updated as I expect so if one fails the other one is
>>>> selected always, why the xavp_dst isn’t working same way, or am I missing
>>>> something?
>>>>
>>>>
>>>>
>>>> If needed I’ll try to provide more information,
>>>>
>>>> Thanks already in advance
>>>>
>>>>
>>>>
>>>> -Pyry
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> __________________________________________________________
>>>> Kamailio - Users Mailing List - Non Commercial Discussions
>>>>   * sr-users at lists.kamailio.org
>>>> Important: keep the mailing list in the recipients, do not reply only
>>>> to the sender!
>>>> Edit mailing list options or unsubscribe:
>>>>   * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20220901/cffa175a/attachment.htm>


More information about the sr-users mailing list