1{ stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args:
2
3buildLinux (rec {
4 mptcpVersion = "0.93";
5 modDirVersion = "4.9.60";
6 version = "${modDirVersion}-mptcp_v${mptcpVersion}";
7 # autoModules= true;
8
9 extraMeta = {
10 branch = "4.4";
11 maintainers = with stdenv.lib.maintainers; [ teto layus ];
12 };
13
14 src = fetchFromGitHub {
15 owner = "multipath-tcp";
16 repo = "mptcp";
17 rev = "v${mptcpVersion}";
18 sha256 = "1irlppzvcmckrazs2c4vg6y8ji31552izc3wqabf401v57jvxcys";
19 };
20
21 extraConfig = ''
22 IPV6 y
23 MPTCP y
24 IP_MULTIPLE_TABLES y
25
26 # Enable advanced path-managers...
27 MPTCP_PM_ADVANCED y
28 MPTCP_FULLMESH y
29 MPTCP_NDIFFPORTS y
30 # ... but use none by default.
31 # The default is safer if source policy routing is not setup.
32 DEFAULT_DUMMY y
33 DEFAULT_MPTCP_PM default
34
35 # MPTCP scheduler selection.
36 # Disabled as the only non-default is the useless round-robin.
37 MPTCP_SCHED_ADVANCED n
38 DEFAULT_MPTCP_SCHED default
39
40 # Smarter TCP congestion controllers
41 TCP_CONG_LIA m
42 TCP_CONG_OLIA m
43 TCP_CONG_WVEGAS m
44 TCP_CONG_BALIA m
45
46 '' + (args.extraConfig or "");
47} // args)