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

Is it possible to switch scheduler during transforming a file #497

Open
yuyujunjiang opened this issue Sep 25, 2022 · 2 comments
Open

Is it possible to switch scheduler during transforming a file #497

yuyujunjiang opened this issue Sep 25, 2022 · 2 comments

Comments

@yuyujunjiang
Copy link

Hi there.
1、I am studying scheduler of MPTCP to improve performance. It is difficult to implement a new scheduler in underlying code. So I am wondering if I can switch the scheduler during transforming a file to combine the advantages of all the scheduler having existed by setsockopt(sock, SOL_TCP, MPTCP_SCHEDULER, scheduler, strlen(scheduler)); For example, scheduler swiches form roundrobin to deafult when gap of RTT is large.
2、At present, there are two pathManager : default and fullmesh. What If I want to use two of the three interfaces?

@matttbe
Copy link
Member

matttbe commented Sep 26, 2022

Hello,

So I am wondering if I can switch the scheduler during transforming a file

No, this is not possible. You can only ask to use a specific scheduler before the creation of a connection.
The reason is technical: there are data to initiate, switching from one to another while the connection has been established increase the complexity. This has not been implemented (yet).

At present, there are two pathManager : default and fullmesh

There are more than two in this repo: binder, ndiffport, netlink.

What If I want to use two of the three interfaces?

The path managers have different goals:

  • default: only accept new subflows, doesn't establish or announce anything
  • fullmesh: establish a subflow per pair of local and remote addresses ("full mesh"), announce all available IP. Can be configured with ip tool to add IPs to the deny list: https://multipath-tcp.org/pmwiki.php/Users/Tools
  • binder: Loose Source Routing technique
  • netlink: to be controlled from userspace, e.g. with https://github.com/intel/mptcpd (if compiled to support the Out-of-tree kernel)
  • ndiffport, X subflows across the same pair of IP-addresses, modifying the source-port.

For more details, see the Configure the path-manager section from https://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP

Does this reply to all your questions?

@matttbe
Copy link
Member

matttbe commented Sep 26, 2022

What If I want to use two of the three interfaces?

You certainly want to use fullmesh and set multipath off on one specific interface, e.g. for the eth0 interface:

ip link set dev eth0 multipath off

or

FLAGS=$(cat /sys/class/net/eth0/flags)
printf "0x%x" $(( FLAGS | 0x80000 )) > /sys/class/net/eth0/flags

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants