#
# MPTCP configuration
#
config MPTCP
bool "MPTCP protocol"
depends on (IPV6=y || IPV6=n)
default y
---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
default 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
default 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
default n
---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)
default n
---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
default "default" if DEFAULT_DUMMY
default "fullmesh" if DEFAULT_FULLMESH
default "ndiffports" if DEFAULT_NDIFFPORTS
default "binder" if DEFAULT_BINDER
default "default"
default y
menuconfig MPTCP_SCHED_ADVANCED
bool "MPTCP: advanced scheduler control"
depends on MPTCP=y
default 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)
default 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)
default 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_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.
config DEFAULT_SCHEDULER
bool "Default"
---help---
This is the default scheduler, sending first on the subflow
with the lowest RTT.
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"