I tried with SBT and it is way better, gonna stay with this one for CPS. I did my tests by trying RED and TAILDROP algorithm, wasn't probably the good one to try for cps and with my type of traffic.
Thanks for your response and your time Adrien ________________________________ De : Users <[email protected]> de la part de Ben Newlin <[email protected]> Envoyé : vendredi 27 octobre 2023 18:13 À : OpenSIPS users mailling list <[email protected]> Objet : Re: [OpenSIPS-Users] Ratelimit usage Have you read the description of the RED algorithm? Are you sure you are generating appropriate traffic to cause a drop? That algorithm seems like it would be difficult to control/predict the drops accurately for a test. If you are sending a constant traffic volume to it, it never will drop. If you are just testing, you may want to go with a simpler algorithm where you can more easily control when/how many are being dropped. The standard way to use the module for CPS is to use the SBT algorithm with a window_size of 1. [1] [1] https://opensips.org/docs/modules/3.2.x/ratelimit.html#param_window_size Ben Newlin From: Users <[email protected]> on behalf of Adrien LACOMME <[email protected]> Date: Friday, October 27, 2023 at 12:03 PM To: OpenSIPS users mailling list <[email protected]> Subject: Re: [OpenSIPS-Users] Ratelimit usage EXTERNAL EMAIL - Please use caution with links and attachments ________________________________ Hello, I added this line to my code, in fact it's better to decrease the counter if I drop the call. But my problem is that the rl_check function never drop calls, I do not enter in the IF condition. For the algorithm, I'm actually just trying the module, I will probably not stay with RED. ________________________________ De : Users <[email protected]> de la part de Wadii ELMAJDI | Evenmedia <[email protected]> Envoyé : vendredi 27 octobre 2023 17:39 À : OpenSIPS users mailling list <[email protected]> Objet : Re: [OpenSIPS-Users] Ratelimit usage Hello Adrien Try : if (!rl_check("test1", 1, "RED")) { rl_dec_count("test1") send_reply(487, "Request Terminated: CPS limit exceeded"); exit; } * If you are using ratelimit to limit only successful traffic, you need to explicitely decrease the counter for the declined calls using the rl_dec_count() function also I’m not sure RED is the best algorithm for your usecase. De : Users <[email protected]> De la part de Adrien LACOMME Envoyé : vendredi 27 octobre 2023 17:06 À : [email protected] Objet : [OpenSIPS-Users] Ratelimit usage Hi, I'm trying to implement CPS limitation on OpenSIPS and I got some difficulties to understand how ratelimit module works. Here is the setup (I want to limit cps to 1) : if (!rl_check("test1", 1, "RED")) { send_reply(487, "Request Terminated: CPS limit exceeded"); } I tried to make few calls simultaneously but rl_check return is always FALSE. Here is the log I got : 2023-10-27T16:52:19.792337 SBC /usr/sbin/opensips[137782]: DBG:ratelimit:w_rl_check: Pipe test1 counter:1 load:0 limit:1 should NOT be blocked (0x7fcae1504888) 2023-10-27T16:52:19.804064 SBC /usr/sbin/opensips[137781]: DBG:ratelimit:w_rl_check: Pipe test1 counter:2 load:0 limit:1 should NOT be blocked (0x7fcae1504888) 2023-10-27T16:52:22.872991 SBC /usr/sbin/opensips[137782]: DBG:ratelimit:w_rl_check: Pipe test1 counter:3 load:0 limit:1 should NOT be blocked (0x7fcae1504888) 2023-10-27T16:52:22.918123 SBC /usr/sbin/opensips[137781]: DBG:ratelimit:w_rl_check: Pipe test1 counter:4 load:0 limit:1 should NOT be blocked (0x7fcae1504888) Shouldn't the module block calls when the counter goes to 2 ? Or is he checking the load value to block ? If yes, why the load value isn't incremented ? Regards, Adrien LACOMME
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
