dctcp
Directory actions
More options
Directory actions
More options
dctcp
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Instructions to reproduce the DCTCP experiment: To run the dctcp experiments: ./run-dctcp.sh Note that you may need to enable TCP, ECN, and/or DCTCP experiments. Check first. To run the dctcp experiments with tracing, verify that tracing runs (see tracing/README), then run: ./run-dctcp-tracing.sh Once the experiment has completed, to generate tracing graphs for it, run: ./gengraph-n.sh Again, note that you may need to customize this script for file locations and specific experiment types (TCP, ECN, DCTCP). To compile a DCTCP enabled kernel, check instructions below. It has instructions to compile a 3.0 and 3.2 kernel. The graphs in the Mininet-HiFi paper were generated using a patched 3.0 kernel. Dependencies: - Ubuntu 12.04 with the DCTCP kernel (instructions to install the DCTCP kernel follow) - Latest Mininet code (git://github.com/mininet/mininet.git, cs244 branch) =================================================================== Instructions to install DCTCP kernel v3.2: cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.18.tar.bz2 tar -xjf linux-3.2.18.tar.bz2 cd linux-3.2.18 patch -p1 < /path/to/mininet_tests/dctcp/0001-Updated-DCTCP-patch-for-3.2-kernels.patch make menuconfig - Enable DCTCP via `make menuconfig': Networking support ---> Networking options ---> DCTCP: Data Center TCP processors=`grep -c ^processor /proc/cpuinfo` export CONCURRENCY_LEVEL=$processors make-kpkg clean time fakeroot make-kpkg --verbose --initrd --append-to-version=-dctcp kernel_image kernel_headers (this takes a while — run it in a screen if you are connected remotely) cd /usr/src sudo dpkg -i linux-image-3.2.18-dctcp_3.2.18-dctcp-10.00.Custom_amd64.deb sudo dpkg -i linux-headers-3.2.18-dctcp_3.2.18-dctcp-10.00.Custom_amd64.deb sudo update-grub2 edit /etc/default/grub and change the "default" kernel sudo update-grub2 verify /boot/grub/grub.cfg sudo reboot =================================================================== Instructions to install DCTCP kernel v3.0: wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.1.tar.bz2 tar -xjf linux-3.0.1.tar.bz2 cd linux-3.0.1 cp -r mininet_tests/dctcp/linux-3.0.0-patches patches quilt push -a make menuconfig processors=`grep -c ^processor /proc/cpuinfo` export CONCURRENCY_LEVEL=$processors make-kpkg clean time fakeroot make-kpkg --verbose --initrd --append-to-version=-dctcp kernel_image kernel_headers (this takes a while — run it in a screen if you are connected remotely) cd /usr/src sudo dpkg -i linux-image-3.0.1-dctcp*.deb sudo dpkg -i linux-headers-3.0.1-dctcp*.deb sudo update-grub edit /etc/default/grub and change the "default" kernel sudo update-grub verify /boot/grub/grub.cfg sudo reboot =================================================================== - After reboot, check if DCTCP has been correctly installed: sysctl -a | grep tcp_dctcp - Reconfigure openvswitch sudo dpkg-reconfigure openvswitch-datapath-dkms - Check if Mininet is working fine (might require an extra reboot for this to work) sudo mn --link tc,bw=10 --test iperf ===================================================================