Skip to content

multipath-tcp/mptcp-vagrant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This repo contains vagrant configurations to help you test Multipath TCP with a kernel >= 5.6. There are multiple ways to do some experimentations with MPTCP. Kernel developers usually prefers building the kernel, using only one light VM, and do some experiments using network namespaces (ip netns). If you are interested by that, please consider using mptcp-upstream-virtme-docker instead.

The setup enables you to test MPTCP from virtual machines without requiring MPTCP support from the host. It will automatically setup 2 Fedora hosts, both connected to each other with 3 links. These links are connected to the interfaces eth1, eth2 and eth3 of the devices.

Requirements

You need a recent vagrant installed and virtualbox. Get it at http://www.vagrantup.com/downloads.html and https://www.virtualbox.org/wiki/Downloads

Using it

Get it and use it:

git clone https://github.com/multipath-tcp/mptcp-vagrant.git
cd mptcp-vagrant
# only the first time:
git submodule update --init --recursive
vagrant up
./scripts/init-mptcp.sh

This will:

  • download a vagrant box
  • start the virtual machine

You can then connect to the client/server using

vagrant ssh (client | server)

You stop the vm by issuing

vagrant halt

Measuring the traffic

You can use pmrep to check the traffic generated on the different interface. This can be typically useful if you want to see if data is well sent in parallel on multiple interfaces (example: if you are running mptcpize run iperf3).

# Check traffic for 10 seconds, every second
pmrep network.interface.in.bytes -t 1 -s 10

Here is an example of output generated by pmrep while an iperf3 was running:

  n.i.i.bytes  n.i.i.bytes  n.i.i.bytes  n.i.i.bytes  n.i.i.bytes
           lo         eth0         eth1         eth2         eth3
       byte/s       byte/s       byte/s       byte/s       byte/s
          N/A          N/A          N/A          N/A          N/A
        0.000     2973.340        0.000        0.000        0.000
        0.000      751.777    35785.253    29314.985    25192.125
        0.000        0.000    65085.137    48311.050    49763.924
        0.000        0.000    75632.805    44275.642    54212.010
        0.000        0.000    71197.406    53428.050    51910.276
        0.000        0.000    75361.548    48189.643    44524.735
        0.000        0.000    63875.409    44105.733    55144.152
        0.000        0.000    64017.342    46963.665    46195.048
        0.000        0.000    66311.320    54552.121    43777.357
        0.000        0.000    58849.307    52688.773    52658.751
        0.000        0.000    69949.390    40244.443    45697.149
        0.000        0.000    76594.098    50984.709    39281.333
        0.000        0.000    60517.017    42658.258    57715.525
        0.000        0.000    58039.906    52795.697    48618.310
        0.000       60.015    75516.635    44548.993    47093.621
        0.000        0.000    74750.513    49240.132    36631.828
        0.000      452.748    32816.216    20149.289    26109.135
        0.000        0.000        0.000        0.000        0.000
        0.000        0.000        0.000        0.000        0.000

About

Easy setup of testing environment for Multipath TCP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages