linux-kernelmptcp

Is it possible to specify scheduler for MPTCP socket in modern linux kernels?


In early versions of MPTCP (0.96, for example) there was a possibility to specify multipath scheduler for each MPTCP socket separatelly:

    char scheduler[] = "redundant";
    int rc = setsockopt(sock, SOL_TCP, MPTCP_SCHEDULER, scheduler, sizeof(scheduler));
    if (rc) {
        perror("setsockopt MPTCP_SCHEDULER,");
    }

In modern kernel versions this system call fails.

Also there isn't code of "redundunt", "ecf" and "blest" schedulers in kernel source and I didn't find scheduler examples at mptcp.dev


Solution

  • As written in mptcp.dev site

    NOTE

    As of Linux v6.8, there is only one packet scheduler, controlled by sysctl knobs in net.mptcp.

    So, for modern Linux it's impossible to change scheduler for selected socket, and almost impossible to change scheduler at all. And, IMHO, MPTCP in modern Linux kernels is almost useless for traffic aggregation.

    One could try removing MPTCP from modern kernel, and then port MPTCPv0.96 to it, using patch from here https://multipath-tcp.org/patches/