You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Currently, the creation of sessions in bngblaster happens every second. It is limited by start-rate and max-outstanding-sessions parameters. For instance, if both parameters are set to 1000, bngblaster will initiate a the creation of 1000 session at the first call of bbl_ctrl_job(), which means for PPPoE that a burst of 1000 PADI packets will be sent.
Receiving a burst like this is not realistic, and increases the risk of drops due to a full queue somewhere (on bngblaster NIC Tx queue, on device NIC Rx queue, on device socket queues, ...). The problem gets worst if the device sustain an high CPS: to measure a CPS of X, both start-rate and max-outstanding-sessions must be at least set to X, which causes a burst of X packets in the worst case.
Calling bbl_ctrl_job() more often (every 100ms, or less) would help to smooth the sessions creation, and decreases the risk of drops or timeouts.
Describe the solution you'd like
A made a draft patch that changes the behavior. With it, bbl_ctrl_job() is called every 100ms, but it can easily be configurable. I wanted to have some feedback about the proposal before going further.
I’ll be making a few minor improvements and will adjust the token granting to be more dynamic. Specifically, if the timer fires late (e.g. after more than 100 ms), the number of tokens will be calculated based on the actual time elapsed since the last execution. This is straightforward to implement using the timer library, which already provides both the expected and actual execution times. By computing the delta between these two and adding the interval, we can determine the correct amount of tokens to grant. I’m not yet sure whether this change will make it into the upcoming release, but I’ll do my best to include it.
Is your feature request related to a problem? Please describe.
Currently, the creation of sessions in bngblaster happens every second. It is limited by start-rate and max-outstanding-sessions parameters. For instance, if both parameters are set to 1000, bngblaster will initiate a the creation of 1000 session at the first call of bbl_ctrl_job(), which means for PPPoE that a burst of 1000 PADI packets will be sent.
Receiving a burst like this is not realistic, and increases the risk of drops due to a full queue somewhere (on bngblaster NIC Tx queue, on device NIC Rx queue, on device socket queues, ...). The problem gets worst if the device sustain an high CPS: to measure a CPS of X, both start-rate and max-outstanding-sessions must be at least set to X, which causes a burst of X packets in the worst case.
Calling bbl_ctrl_job() more often (every 100ms, or less) would help to smooth the sessions creation, and decreases the risk of drops or timeouts.
Describe the solution you'd like
A made a draft patch that changes the behavior. With it, bbl_ctrl_job() is called every 100ms, but it can easily be configurable. I wanted to have some feedback about the proposal before going further.
Describe alternatives you've considered
Increase all queue sizes on devices and tester.
Additional context
None.
The text was updated successfully, but these errors were encountered: