Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Commit

Permalink
mptcp: BLocking ESTimation-based (BLEST) Scheduler
Browse files Browse the repository at this point in the history
This scheduler works much like the default MPTCP scheduler. It always
prefers the subflow with the smallest round-trip-time that is available.
If the network paths are very heterogeneous, then BLEST can be more
beneficial than the default scheduler because it estimates if sending on
a "slower" subflow would cause head-of-line blocking and decides to wait
until the "faster" subflow becomes available again.

Co-authored-by: Simone Ferlin <ferlin@simula.no>
Signed-off-by: Daniel Weber <weberd@cs.uni-bonn.de>
  • Loading branch information
2 people authored and matttbe committed Mar 4, 2019
1 parent 14e9764 commit 4ffe6a4
Show file tree
Hide file tree
Showing 4 changed files with 484 additions and 0 deletions.
2 changes: 2 additions & 0 deletions net/ipv4/tcp_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -1821,6 +1821,7 @@ unsigned int tcp_cwnd_test(const struct tcp_sock *tp,
halfcwnd = max(cwnd >> 1, 1U);
return min(halfcwnd, cwnd - in_flight);
}
EXPORT_SYMBOL(tcp_cwnd_test);

/* Initialize TSO state of a skb.
* This must be invoked the first time we consider transmitting
Expand Down Expand Up @@ -1875,6 +1876,7 @@ bool tcp_snd_wnd_test(const struct tcp_sock *tp, const struct sk_buff *skb,

return !after(end_seq, tcp_wnd_end(tp));
}
EXPORT_SYMBOL(tcp_snd_wnd_test);

/* Trim TSO SKB to LEN bytes, put the remaining data into a new packet
* which is put after SKB on the list. It is very much like
Expand Down
6 changes: 6 additions & 0 deletions net/mptcp/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,12 @@ menuconfig MPTCP_SCHED_ADVANCED

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)
Expand Down
1 change: 1 addition & 0 deletions net/mptcp/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ obj-$(CONFIG_MPTCP_BINDER) += mptcp_binder.o
obj-$(CONFIG_MPTCP_NETLINK) += mptcp_netlink.o
obj-$(CONFIG_MPTCP_ROUNDROBIN) += mptcp_rr.o
obj-$(CONFIG_MPTCP_REDUNDANT) += mptcp_redundant.o
obj-$(CONFIG_MPTCP_BLEST) += mptcp_blest.o

mptcp-$(subst m,y,$(CONFIG_IPV6)) += mptcp_ipv6.o
Loading

0 comments on commit 4ffe6a4

Please sign in to comment.