# # MPTCP configuration # config MPTCP bool "MPTCP protocol" depends on (IPV6=y || IPV6=n) ---help--- This replaces the normal TCP stack with a Multipath TCP stack, able to use several paths at once. menuconfig MPTCP_PM_ADVANCED bool "MPTCP: advanced path-manager control" depends on MPTCP=y ---help--- Support for selection of different path-managers. You should choose 'Y' here, because otherwise you will not actively create new MPTCP-subflows. if MPTCP_PM_ADVANCED config MPTCP_FULLMESH tristate "MPTCP Full-Mesh Path-Manager" depends on MPTCP=y ---help--- This path-management module will create a full-mesh among all IP-addresses. config MPTCP_NDIFFPORTS tristate "MPTCP ndiff-ports" depends on MPTCP=y ---help--- This path-management module will create multiple subflows between the same pair of IP-addresses, modifying the source-port. You can set the number of subflows via the mptcp_ndiffports-sysctl. config MPTCP_BINDER tristate "MPTCP Binder" depends on (MPTCP=y) ---help--- This path-management module works like ndiffports, and adds the sysctl option to set the gateway (and/or path to) per each additional subflow via Loose Source Routing (IPv4 only). choice prompt "Default MPTCP Path-Manager" default DEFAULT help Select the Path-Manager of your choice config DEFAULT_FULLMESH bool "Full mesh" if MPTCP_FULLMESH=y config DEFAULT_NDIFFPORTS bool "ndiff-ports" if MPTCP_NDIFFPORTS=y config DEFAULT_BINDER bool "binder" if MPTCP_BINDER=y config DEFAULT_DUMMY bool "Default" endchoice endif config DEFAULT_MPTCP_PM string depends on MPTCP=y default "default" if DEFAULT_DUMMY default "fullmesh" if DEFAULT_FULLMESH default "ndiffports" if DEFAULT_NDIFFPORTS default "binder" if DEFAULT_BINDER default "default" menuconfig MPTCP_SCHED_ADVANCED bool "MPTCP: advanced scheduler control" depends on MPTCP=y ---help--- Support for selection of different schedulers. You should choose 'Y' here, if you want to choose a different scheduler than the default one. if MPTCP_SCHED_ADVANCED config MPTCP_ROUNDROBIN tristate "MPTCP Round-Robin" depends on (MPTCP=y) ---help--- This is a very simple round-robin scheduler. Probably has bad performance but might be interesting for researchers. config MPTCP_REDUNDANT tristate "MPTCP Redundant" depends on (MPTCP=y) ---help--- This scheduler sends all packets redundantly over all subflows to decreases latency and jitter on the cost of lower throughput. choice prompt "Default MPTCP Scheduler" default DEFAULT help Select the Scheduler of your choice config DEFAULT_SCHEDULER bool "Default" ---help--- This is the default scheduler, sending first on the subflow with the lowest RTT. config DEFAULT_ROUNDROBIN bool "Round-Robin" if MPTCP_ROUNDROBIN=y ---help--- This is the round-rob scheduler, sending in a round-robin fashion.. config DEFAULT_REDUNDANT bool "Redundant" if MPTCP_REDUNDANT=y ---help--- This is the redundant scheduler, sending packets redundantly over all the subflows. endchoice endif config DEFAULT_MPTCP_SCHED string depends on (MPTCP=y) default "default" if DEFAULT_SCHEDULER default "roundrobin" if DEFAULT_ROUNDROBIN default "redundant" if DEFAULT_REDUNDANT default "default" config MPTCP_HEARTBEAT bool "MPTCP heartbeat" default n depends on (MPTCP=y) ---help--- This is the heartbeat for mptcp over all available subflows for instance, LTE and WiFi.