NorNet MPTCP Kernel Package Repository

This is the repository for the NorNet Multi-Path TCP (MPTCP) kernel package repository for:

Ubuntu Linux:

Debian Linux:


💡 Description

  1. Add signature key:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49
    
  2. Add repository (add to /etc/apt/sources.list):

    # Thomas Dreibholz's MPTCP kernel repository:"
    deb [arch=amd64] https://packages.nntb.no/nornet-kernel/ubuntu/ <CODENAME> main
    deb-src [arch=amd64] https://packages.nntb.no/nornet-kernel/ubuntu/ <CODENAME> main
    

    Replace <CODENAME> by the codename of your distribution, i.e. jammy, focal, bionic, xenial, buster, bullseye, testing!

  3. Update package lists:

    sudo apt update
    
  4. List available packages:

    apt-cache search linux | grep "^linux-" | grep "mptcp-"
    
  5. Install desired kernel and headers:

    sudo apt install -y linux-image-<VERSION>-mptcp-<VARIANT> linux-headers-<VERSION>-mptcp-<VARIANT>
    
  6. Recommended kernel settings (add to /etc/sysctl.conf) for MPTCP usage:

    # ------ Custom settings ----------------------------------------------------
    # Enable ECN:
    net.ipv4.tcp_ecn=1
    
    # ------ TCP settings -------------------------------------------------------
    # Turn off auto-tuning of the TCP receive buffer size:
    net.ipv4.tcp_moderate_rcvbuf=0
    net.netfilter.nf_conntrack_icmp_timeout=60
    
    net.core.rmem_default=212992
    net.core.rmem_max=134217728
    net.core.wmem_default=212992
    net.core.wmem_max=134217728
    net.ipv4.tcp_rmem='4096 87380 134217728'
    net.ipv4.tcp_wmem='4096 16384 134217728'
    net.ipv4.tcp_mem='134217728 134217728 134217728'
    net.ipv4.route.flush=1
    net.ipv6.route.flush=1
    
    # ----- MPTCP settings ------------------------------------------------------
    net.mptcp.mptcp_enabled=1
    net.mptcp.mptcp_path_manager=fullmesh
    
  7. Reboot with the newly installed kernel. After that, you can test MPTCP with NetPerfMeter:


📦 Package Builder Scripts

The image builder scripts can be found in https://github.com/simula/nornet-control. The images in this repository have been generated by the script build-kernels.

The NorNet kernel configuration can be found in https://github.com/dreibh/planetlab-kernel. The configuration changes in addition to a regular Ubuntu/Debian kernel are in the file config-planetlab.

The NorNet kernel configuration can be found in https://github.com/dreibh/mptcp, forked from upstream https://github.com/multipath-tcp/mptcp. The relevant branches for the packages in this repository are td-socketoptions-<MTPCP_VERSION>-<KERNEL_VERSION>.


🔗 Useful Links


02.03.2022 Thomas Dreibholz