1{ stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args:
2
3buildLinux (rec {
4 mptcpVersion = "0.94";
5 modDirVersion = "4.14.24";
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 = "01y3jf5awdxcv6vfpr30n0vaa8w1wgip0whiv88d610550299hkv";
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 MPTCP_SCHED_ADVANCED y
37 DEFAULT_MPTCP_SCHED default
38
39 # Smarter TCP congestion controllers
40 TCP_CONG_LIA m
41 TCP_CONG_OLIA m
42 TCP_CONG_WVEGAS m
43 TCP_CONG_BALIA m
44
45 '' + (args.extraConfig or "");
46} // args)