android_kernel_xiaomi_sm7250/net/mptcp/Kconfig
UtsavBalar1231 98a694aafb net: Port samsung MPTCP modifications from SM-N986B
- MultiPath TCP (MPTCP) is an effort towards enabling the simultaneous use of
  several IP-addresses/interfaces by a modification of TCP that presents a regular
  TCP interface to applications, while in fact spreading data across several
  subflows. Benefits of this include better resource utilization, better throughput
  and smoother reaction to failures.

Change-Id: I50e8cbda93ed133fb6cb937b49b5d23879f92270
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2022-11-12 11:19:58 +00:00

147 lines
3.8 KiB
Plaintext
Executable File

#
# 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).
config MPTCP_NETLINK
tristate "MPTCP Netlink Path-Manager"
depends on MPTCP=y
---help---
This path-management module is controlled over a Netlink interface. A userspace
module can therefore control the establishment of new subflows and the policy
to apply over those new subflows for every connection.
choice
prompt "Default MPTCP Path-Manager"
default DEFAULT_FULLMESH
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_NETLINK
bool "Netlink" if MPTCP_NETLINK=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_BLEST
tristate "MPTCP BLEST"
depends on MPTCP=y
---help---
This is an experimental BLocking ESTimation-based (BLEST) scheduler.
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_SCHEDULER
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"