diff options
author | Guillaume Maudoux <layus.on@gmail.com> | 2015-11-17 09:48:31 +0100 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2016-01-20 02:11:09 +0100 |
commit | f8ff4691ed10a078edb527dea56a7fc788df81a6 (patch) | |
tree | 60f53992fcbcdbf7f1350b034326c055188157e4 /pkgs/os-specific | |
parent | 1c393cbb3c60b85070950c8abc30a5308015ce3d (diff) |
linux-mptcp: init at 0.90 (kernel 3.18.20), fixes #11149
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-mptcp.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp.nix b/pkgs/os-specific/linux/kernel/linux-mptcp.nix new file mode 100644 index 0000000000000..2b0e3017979f9 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-mptcp.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, perl, buildLinux, ... } @ args: + +import ./generic.nix (args // rec { + mptcpVersion = "0.90"; + modDirVersion = "3.18.20"; + version = "${modDirVersion}-mptcp_v${mptcpVersion}"; + + extraMeta = { + branch = "3.18"; + maintainer = stdenv.lib.maintainers.layus; + }; + + src = fetchurl { + url = "https://github.com/multipath-tcp/mptcp/archive/v${mptcpVersion}.tar.gz"; + sha256 = "1wzdvd1j1wqjkysj98g451y6mxr9a5hff5kn9inxwbzm9yg4icj5"; + }; + + 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 + ''; + + features.iwlwifi = true; + features.efiBootStub = true; + features.needsCifsUtils = true; + features.canDisableNetfilterConntrackHelpers = true; + features.netfilterRPFilter = true; +} // (args.argsOverride or {})) |