| # |
| # 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 |
| 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" |
| |