-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'mptcp-improve-backup-subflows'
Mat Martineau says: ==================== mptcp: Improve use of backup subflows Multipath TCP combines multiple TCP subflows in to one stream, and the MPTCP-level socket must decide which subflow to use when sending (or resending) chunks of data. The choice of the "best" subflow to transmit on can vary depending on the priority (normal or backup) for each subflow and how well the subflow is performing. In order to improve MPTCP performance when some subflows are failing, this patch set changes how backup subflows are utilized and introduces tracking of "stale" subflows that are still connected but not making progress. Patch 1 adjusts MPTCP-level retransmit timeouts to use data from all subflows. Patch 2 makes MPTCP-level retransmissions less aggressive to avoid resending data that's still queued at the TCP level. Patch 3 changes the way pending data is handled when subflows are closed. Unacked MPTCP-level data still in the subflow tx queue is immediately moved to another subflow for transmission instead of waiting for MPTCP-level timeouts to trigger retransmission. Patch 4 has some sysctl code cleanup. Patches 5 and 6 add tracking of "stale" subflows, so only underlying TCP subflow connections that appear to be making progress are considered when selecting a subflow to (re)transmit data. How fast a subflow goes stale is configurable with a per-namespace sysctl. Related MIBS are added too. Patch 7 makes sure the backup flag is always correctly recorded when the MP_JOIN SYN/ACK is received for an added subflow. Patch 8 adds more test cases for backup subflows and stale subflows. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Showing
11 changed files
with
464 additions
and
88 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.