Fine Tuning BBRv2 Parameters

97 views
Skip to first unread message

Dunk Hong

unread,
Feb 23, 2023, 2:39:02 AM2/23/23
to BBR Development
Hi!

In this communication here:

https://groups.google.com/g/bbr-dev/c/FLsimjFnFq8/m/ecP5IF-UAQAJ

you shared some information on configuring BBRv2 parameters. I'm a beginner
in studying and testing with BBRv2 and I just have some further questions
regarding this aspect. Thank you so much in advance for the help and sorry
if my questions are somewhat trivial.

1. (This is related to question 1 in the above mentioned communication)
Sorry if I'm misunderstanding the answer but do you mean that there is no
documentation at all for these parameters? Or there are some documentations
that are exclusively only available to researchers of BBR? And if this is
the case what qualifies as a researcher and how to obtain the
documentations?

2. In the answer of question 3 and 4 you mentioned that the BBR internal
development team uses custom socket options to dynamically change these
parameters, and as developers we could turn them into global or per-socket
dynamic parameters for tuning purposes. What exactly are global/per-socket
dynamic parameters? Could you please give some general insights on how to
achieve this and how to set up my own custom sockets?

Thank you so much for the help!


Best,

Dunk

Neal Cardwell

unread,
Feb 23, 2023, 10:08:13 AM2/23/23
to Dunk Hong, BBR Development
On Thu, Feb 23, 2023 at 2:39 AM Dunk Hong <wdd...@gmail.com> wrote:
Hi!

In this communication here:

https://groups.google.com/g/bbr-dev/c/FLsimjFnFq8/m/ecP5IF-UAQAJ

you shared some information on configuring BBRv2 parameters. I'm a beginner
in studying and testing with BBRv2 and I just have some further questions
regarding this aspect. Thank you so much in advance for the help and sorry
if my questions are somewhat trivial.

1. (This is related to question 1 in the above mentioned communication)
Sorry if I'm misunderstanding the answer but do you mean that there is no
documentation at all for these parameters? Or there are some documentations
that are exclusively only available to researchers of BBR? And if this is
the case what qualifies as a researcher and how to obtain the
documentations?

There is no documentation for these parameters. :-) If you are curious about a given parameter, I recommend reading the code to understand how it functions. As I noted in that thread: "These are meant for researchers doing development work, where the developer will need to understand the code and exact impact of the parameter changes anyway. "
 
2. In the answer of question 3 and 4 you mentioned that the BBR internal
development team uses custom socket options to dynamically change these
parameters, and as developers we could turn them into global or per-socket
dynamic parameters for tuning purposes. What exactly are global/per-socket
dynamic parameters? Could you please give some general insights on how to
achieve this and how to set up my own custom sockets?

By global parameters, I mean the module parameters declared with the module_param_named() construct. by per-socket parameters, I meant the parameters stored in struct bbr_params, accessed with bbr->params. If you want to customize per-socket parameters, you could add kernel code for a custom socket option to tune those; much like INET_DIAG_BBRINFO allows you to read parameters, you could create a custom socket option to set the parameters in bbr->params. That's what we use internally for testing/tuning.

best regards,
neal

 

Thank you so much for the help!


Best,

Dunk

--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bbr-dev/8009d62a-d1de-42fa-a372-fdea21733c47n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages