2015-11-17 09:48:31 +01:00
|
|
|
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
|
|
|
|
|
|
|
|
import ./generic.nix (args // rec {
|
2016-08-12 15:14:24 +02:00
|
|
|
mptcpVersion = "0.91";
|
|
|
|
modDirVersion = "4.1.26";
|
2015-11-17 09:48:31 +01:00
|
|
|
version = "${modDirVersion}-mptcp_v${mptcpVersion}";
|
|
|
|
|
|
|
|
extraMeta = {
|
2016-08-12 15:14:24 +02:00
|
|
|
branch = "4.1";
|
2016-02-10 14:59:36 +01:00
|
|
|
maintainers = stdenv.lib.maintainers.layus;
|
2015-11-17 09:48:31 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://github.com/multipath-tcp/mptcp/archive/v${mptcpVersion}.tar.gz";
|
2016-08-12 15:14:24 +02:00
|
|
|
sha256 = "0rbvgz89j5wk781y201qdxy2kz4gmlamb72wdbxj8mxv92x56lh3";
|
2015-11-17 09:48:31 +01:00
|
|
|
};
|
|
|
|
|
2016-08-12 15:14:24 +02:00
|
|
|
kernelPatches = args.kernelPatches;
|
|
|
|
|
2015-11-17 09:48:31 +01:00
|
|
|
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 {}))
|