BBRv2 parameters

154 views
Skip to first unread message

Mahdi

unread,
Sep 28, 2021, 10:46:18 PM9/28/21
to BBR Development

Hello,

In BBRv2-alpha there are some parameters in folder “/sys/module/tcp_bbr2/parameters” that allow us to configure BBRv2 through either command line or setsockopt(). Thank you very much for guiding me with the following questions.

 

1) Is there any documentation (except the source code) describing these parameters?

2) Why default value for “cwnd_tso_budget” is 1 and what will be the side effect if we choose 0?

3) What is the “option_name” in setsockopt() if I want to change “cwnd_tso_budget” through my app (not through command line)?

4) Are they for alpha testing only or will they be available in the final version of BBRv2? I am asking this question because I could not find such parameters for BBRv1.


Best Regards,

Mahdi

Neal Cardwell

unread,
Sep 29, 2021, 11:34:28 AM9/29/21
to Mahdi, BBR Development
On Tue, Sep 28, 2021 at 10:46 PM 'Mahdi' via BBR Development <bbr...@googlegroups.com> wrote:

Hello,

In BBRv2-alpha there are some parameters in folder “/sys/module/tcp_bbr2/parameters” that allow us to configure BBRv2 through either command line or setsockopt(). Thank you very much for guiding me with the following questions.

 

1) Is there any documentation (except the source code) describing these parameters?

No, unfortunately not. 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) Why default value for “cwnd_tso_budget” is 1 and what will be the side effect if we choose 0?

At a high level, the question is what to do with the 3 * bbr_tso_segs_goal(sk) term when selecting a cwnd. With cwnd_tso_budget==1 that term is used as a "floor"; with cwnd_tso_budget==0 that term is used as a "pad" on top. Please see the code for the details.
 

3) What is the “option_name” in setsockopt() if I want to change “cwnd_tso_budget” through my app (not through command line)?

The current Linux TCP BBR v2alpha open source release has no socket option for dynamically changing that parameter on a per-socket basis. Internally our team uses a custom socket option for this purpose, but we did not feel the (complexity+maintenance)/(benefits) trade-off was favorable enough to post the code for that.

4) Are they for alpha testing only or will they be available in the final version of BBRv2? I am asking this question because I could not find such parameters for BBRv1.

The current plan is that those options will be for alpha testing only. Similar to BBRv1, we do not plan to make those parameters module parameters in the final BBRv2 release. Developers who are doing research can always easily turn them into global or per-socket dynamic parameters as needed.

best regards,
neal

 


Best Regards,

Mahdi

--
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/4999aa1c-88d7-42de-afbf-45dc2d532bf1n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages