[SR-Users] PIPELIMIT - limit change after time interval change. bug?

Juan Priotti jcpriotti at gmail.com
Mon Dec 18 18:59:31 CET 2017


Hi,
I'm making some tests with pipelimit module and when changing the time
interval the limit gets changed in a way that it's multiplied by the time
interval. For example if I use a time interval of 1 second and a limit of
20 (if (!pl_check("$si", "TAILDROP", "20"))) the module start limiting
right after the traffic gets over 20 CPS. But if I change the time interval
to 3 seconds, the module starts limiting the traffic right after 60 CPS.
This is my configuration:

# ----- pipelimit params-----
modparam("pipelimit", "timer_interval", 3)
modparam("pipelimit", "hash_size", 10)
modparam("pipelimit", "db_url", DBURL)
modparam("pipelimit", "reply_code", 503)
modparam("pipelimit", "reply_reason", "Limiting")

...
...
...

request_route {
...
...
        if(is_method("INVITE")) {
                $var(limit) = 20;
                if (!pl_check("$si", "TAILDROP", "$var(limit)")) {
                xlog("L_INFO", "[$ci] $si - Limiting INVITE using pipe
$var(limit) req/sec\n");
                pl_drop();
                exit;
                }
.....
.....
.....
        }
}


Checking the source for pipelimit module (
https://github.com/kamailio/kamailio/blob/master/src/modules/pipelimit/pipelimit.c)
I see that for taildrop it's checking for the limit times the time_interval:

case PIPE_ALGO_TAILDROP:
ret = (pipe->counter <= pipe->limit * timer_interval) ? 1 : -1;
break;

I've made a change eliminating the time_interval (set it to 1) from that
check and after that I've got the limit working OK, and the traffic gets
drop right after it's over the limit (20 cps) using any time_interval. Is
there some issue with the timer for the check not being updated by the
module settings (timer_interval)? I'm using kamailio 4.4 and I've also
tested it in kamailio 4.3 and 5.1 with same results.
Thanks in advance,

Juan Priotti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20171218/67ba6123/attachment.html>


More information about the sr-users mailing list