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
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/