issues with configure.sh and run_tests.sh after BBRv3 installation

231 views
Skip to first unread message

Cyrus Dunbar Illick

unread,
Nov 15, 2023, 12:41:51 PM11/15/23
to BBR Development
Hi, 

I have followed the directions to install and test bbrv3 https://github.com/google/bbr/tree/v3#readme and have successfully built the tcp linux kernel with tcp bbr v3 and copied the kernel to the test machine using gce-install.sh. The issue that I am having is getting run_tests.sh to run properly. 
Steps I take:
1. Create two google cloud instances (host-instance and test-instance) both Ubuntu 20.04 LTS x86/64
2. ssh into host instance 
3. sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf net-tools
4.  Add ssh keys [eval `ssh-agent`, ssh-add .ssh/google_compute_engine]
5. git clone -o google-bbr -b v3  https://github.com/google/bbr.git --> cd bbr
6. ./gce-install.sh -m <test-instance>
7.  ssh <test-instance>  
8. Uname -a (output = Linux test-instance 6.4.0+v3+6e321d1c986a+GCE #1 SMP PREEMPT_DYNAMIC Wed Nov 15 02:26:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux)
9. sysctl net.ipv4.tcp_available_congestion_control (output = reno bbr bbr1 bic cdg cubic dctcp westwood highspeed hybla htcp vegas nv veno scalable lp yeah illinois)
10. Exit out of test instance
11. scp -r gtests/net/tcp/bbr/nsperf/ <test-instance>:/tmp/
12. (for all three patches) scp <patch name> <test-instance>:/tmp/nsperf/
13. ssh <test-instance> --> become root 
14. mv /tmp/nsperf /root/ 
15. cd /root/nsperf
16. Edit configure.sh file so PATCH_DIR=`pwd`
17. run ./configure.sh
When running ./configure.sh everything seems to run smoothly except there is an error applying the ip patch. (Error message attached). I am not sure how to fix this issue.
18. ./run_tests.sh
19. ./graph_tests.sh
when I run ./run_tests.sh and then ./graph_tests.sh I can see that some graphs are created whereas some graphs are left blank in the output. Attached is also an excerpt of some of the errors that I see in the log when running run_tests.sh

I cannot figure out why the patch is not being applied and I am not sure if I am missing any packages that I need to install to make everything work correctly. Any suggestions would be greatly appreciated!

best,
Cyrus
run_tests_error_log_excerpt.png
patchError.png

Neal Cardwell

unread,
Nov 22, 2023, 11:43:05 AM11/22/23
to Cyrus Dunbar Illick, BBR Development
Hi Cyrus,

Thanks for the detailed report!

I believe I have fixed the configure.sh script bugs that your report has uncovered.

Can you please try again?

In brief, can you please try something like the following:

 git fetch google-bbr
 git checkout google-bbr/v3
 # Retry, starting from step 6, omitting steps 12 and 16, which should no longer be necessary.

For those starting from scratch, that would be something like the following sequence:

+ Create two google cloud instances (host-instance and test-instance) both Ubuntu 20.04 LTS x86/64
+ ssh into host instance
+ sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf net-tools
+ Add ssh keys [eval `ssh-agent`, ssh-add .ssh/google_compute_engine]
+ git clone -o google-bbr -b v3  https://github.com/google/bbr.git --> cd bbr
+ ./gce-install.sh -m <test-instance>
+  ssh <test-instance>  
+ uname -a (and check that output contains latest v3 SHA1, currently 7542cc7c41c04)
+ sysctl net.ipv4.tcp_available_congestion_control (output = reno bbr bbr1 bic cdg cubic dctcp westwood highspeed hybla htcp vegas nv veno scalable lp yeah illinois)
+ exit # (exit out of test instance)
+ scp -r gtests/net/tcp/bbr/nsperf/ <test-instance>:/tmp/
+ ssh <test-instance>
+ become root: sudo su -
+ mv /tmp/nsperf /root/
+ cd /root/nsperf
+ ./configure.sh
+ ./run_tests.sh
+ ./graph_tests.sh

best regards,
neal



--
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/1c332552-89b0-48d7-acf4-2be7dfe2485dn%40googlegroups.com.

Cyrus Dunbar Illick

unread,
Nov 25, 2023, 2:05:17 PM11/25/23
to BBR Development
Hello!

Thank you for the detailed response!

I was able to get the tests running by manually applying the patches. But I just followed the directions you provided and everything ran very smoothly! All plots are generated except there is an issue with plotting the random loss tests. The issue with parsing netem random loss rates is noted in the configure.sh script so this may not be a bug. 

best,
Cyrus

Neal Cardwell

unread,
Nov 25, 2023, 3:26:17 PM11/25/23
to Cyrus Dunbar Illick, BBR Development
On Sat, Nov 25, 2023 at 2:05 PM Cyrus Dunbar Illick <cdi...@columbia.edu> wrote:
Hello!

Thank you for the detailed response!

I was able to get the tests running by manually applying the patches. But I just followed the directions you provided and everything ran very smoothly!

Thanks for the report. Glad it's working better!
 
All plots are generated except there is an issue with plotting the random loss tests. The issue with parsing netem random loss rates is noted in the configure.sh script so this may not be a bug. 

Regarding the issue mentioned in configure.sh about netem and random loss rates: that is one of the motivations for downloading the iproute2 sources and building the tools from source. Since the script is building a recent version of "tc" with a fix for that issue, the tests should not run into that bug.

Regarding the "issue with plotting the random loss tests", can you please describe the symptoms you see, and attach output logs or screenshots to give details?

thanks,
neal

Cyrus Dunbar Illick

unread,
Nov 26, 2023, 2:20:34 PM11/26/23
to BBR Development
Hello,

Attached is a pdf that includes all the information I have on errors and output from trying to run and graph random_loss tests. Also for good measure I included the other plots created by graph_tests.sh that appear correct to me.

best,
Cyrus 

Random_loss_error.pdf

Cyrus Dunbar Illick

unread,
Nov 27, 2023, 5:43:25 PM11/27/23
to BBR Development
Hello, 

In nsperf.py line 490-493: where memflags are set seems to cause the error for random_loss tests.

Simple fix: in run_tests.sh, remove mem=$MEM on line 76 and remove mem=$mem on line 84.
By doing this - I think - the default send and received buffers will be used in the same way that they are used in the other tests. The send and received buffer sizes are set in run_tests.sh line 22-26. Doing this should make running and graphing random_loss tests work.

Alternatively: in nsperf.py update lines 490-493 to set memflags appropriately.  

best,
Cyrus
Reply all
Reply to author
Forward
0 new messages