multipath-tcp / mptcp

⚠️⚠️⚠️ Deprecated 🚫 Out-of-tree Linux Kernel implementation of MultiPath TCP. 👉 Use https://github.com/multipath-tcp/mptcp_net-next repo instead ⚠️⚠️⚠️
https://github.com/multipath-tcp/mptcp_net-next
Other
887 stars 334 forks source link

How to Modify Congestion Control Mechanism #491

Closed rezapoorzare1 closed 1 year ago

rezapoorzare1 commented 2 years ago

Hello there,

I hope you are doing well. I have a simple question, would you please help me?

If I want to see and modify the congestion control for one of the protocols (for example balia), what should I do? how to unpack *.ko files and which file contains the CC?

Thanks a lot

matttbe commented 1 year ago

Hi,

I'm not sure what to reply to this question. TCP congestion control algorithms are in net/ipv4/tcp_*.c. The ones specific to MPTCP are in net/mptcp, e.g. balia.

You can modify the code with a text editor, configure, recompile and install the kernel. See http://multipath-tcp.org/pmwiki.php/Users/DoItYourself

But for that part, best to check for more detailed doc online, e.g. to produce .deb packages using make -j$(nproc) deb-pkg command.

rezapoorzare1 commented 1 year ago

Thank you so much because of your detailed answer, I appreciate it.

yuyujunjiang commented 1 year ago

Hello there,

I hope you are doing well. I have a simple question, would you please help me?

When I create a MPTCP socket, I used "sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP)) == -1" . I have included <linux/in.h> and I am sure that there is the defiene about IPPROTO_MPTCP. But when I compile the code, it still came to not define the IPPROTO_MPTCP. Did I miss other head files? Thank you

matttbe commented 1 year ago

I guess we can close this ticket now.

For the last question: #493

rezapoorzare1 commented 1 year ago

Hello there,

I hope you are doing well. Sorry for opening this topic again, one more question. Are MPTCP codes not modular? Isn't it possible to change the code (For example for olia), create a Makefile, do the making process and insert the .ko file to the Linux? Is it necessary to recompile the kernel?

Thanks a million

matttbe commented 1 year ago

Isn't it possible to change the code (For example for olia), create a Makefile, do the making process and insert the .ko file to the Linux? Is it necessary to recompile the kernel?

Yes, you should be able to do that for the TCP congestion controls (like for any kernel module). But I didn't do that for a while so I don't remember what commands to use. But this is not specific to MPTCP so I guess you should be able to find the info somewhere. Feel free to share the answer.

rezapoorzare commented 1 year ago

Thanks a lot. I have done this process and know the commands and all other stuff. I will test it for MPTCP congestion control and share it with you here.

Thanks a lot for your time

rezapoorzare1 commented 1 year ago

It is working perfectly. I have tested Balia, changed it and run it properly. There is a problem with lia. I have changed it and insertedthe module now I want to remove it: sudo rmmod mptcp_coupled but I encounter the error: rmmod: ERROR: Module mptcp_coupled is not currently loaded then I want to load it: sudo insmod mptcp_coupled.ko I encounter the error: insmod: ERROR: could not insert module mptcp_coupled.ko: File exists

I am confused here what can I do?

Thanks a lot

rezapoorzare1 commented 1 year ago

I could handle that, thanks a lot.