diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp-93.nix b/pkgs/os-specific/linux/kernel/linux-mptcp-93.nix new file mode 100644 index 000000000000..2efe357cbd68 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-mptcp-93.nix @@ -0,0 +1,47 @@ +{ stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args: + +buildLinux (rec { + mptcpVersion = "0.93"; + modDirVersion = "4.9.60"; + version = "${modDirVersion}-mptcp_v${mptcpVersion}"; + + extraMeta = { + branch = "4.4"; + maintainers = with stdenv.lib.maintainers; [ teto layus ]; + }; + + src = fetchFromGitHub { + owner = "multipath-tcp"; + repo = "mptcp"; + rev = "v${mptcpVersion}"; + sha256 = "1irlppzvcmckrazs2c4vg6y8ji31552izc3wqabf401v57jvxcys"; + }; + + extraConfig = '' + IPV6 y + MPTCP y + IP_MULTIPLE_TABLES y + + # Enable advanced path-managers... + MPTCP_PM_ADVANCED y + MPTCP_FULLMESH y + MPTCP_NDIFFPORTS y + # ... but use none by default. + # The default is safer if source policy routing is not setup. + DEFAULT_DUMMY y + DEFAULT_MPTCP_PM default + + # MPTCP scheduler selection. + # Disabled as the only non-default is the useless round-robin. + MPTCP_SCHED_ADVANCED n + DEFAULT_MPTCP_SCHED default + + # Smarter TCP congestion controllers + TCP_CONG_LIA m + TCP_CONG_OLIA m + TCP_CONG_WVEGAS m + TCP_CONG_BALIA m + + '' + (args.extraConfig or ""); +} // args) + diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp.nix b/pkgs/os-specific/linux/kernel/linux-mptcp.nix index d486bd1d6d24..a439fd0a6ec5 100644 --- a/pkgs/os-specific/linux/kernel/linux-mptcp.nix +++ b/pkgs/os-specific/linux/kernel/linux-mptcp.nix @@ -1,8 +1,8 @@ { stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args: buildLinux (rec { - mptcpVersion = "0.93"; - modDirVersion = "4.9.60"; + mptcpVersion = "0.94"; + modDirVersion = "4.14.24"; version = "${modDirVersion}-mptcp_v${mptcpVersion}"; # autoModules= true; @@ -15,7 +15,7 @@ buildLinux (rec { owner = "multipath-tcp"; repo = "mptcp"; rev = "v${mptcpVersion}"; - sha256 = "1irlppzvcmckrazs2c4vg6y8ji31552izc3wqabf401v57jvxcys"; + sha256 = "01y3jf5awdxcv6vfpr30n0vaa8w1wgip0whiv88d610550299hkv"; }; extraConfig = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5dd69afc5236..00700a1b3752 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13607,6 +13607,19 @@ with pkgs; # linux mptcp is based on the 4.4 kernel linux_mptcp = callPackage ../os-specific/linux/kernel/linux-mptcp.nix { + kernelPatches = + [ kernelPatches.bridge_stp_helper + kernelPatches.cpu-cgroup-v2."4.11" + kernelPatches.modinst_arg_list_too_long + ] + ++ lib.optionals ((platform.kernelArch or null) == "mips") + [ kernelPatches.mips_fpureg_emu + kernelPatches.mips_fpu_sigill + kernelPatches.mips_ext3_n32 + ]; + }; + + linux_mptcp_93 = callPackage ../os-specific/linux/kernel/linux-mptcp-93.nix { kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.p9_fixes