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

Issue with Redundant #500

Closed rezapoorzare1 closed 1 year ago

rezapoorzare1 commented 1 year ago

Hello there,

I hope that you are doing well. I am trying to test some MPTCP schedulers on my server. until now, I could test default, roundrobin, and BLEST, however, when I set the scheduler to redundant, after working for a couple of minutes, the server stops working. Is there a bug in the redundant? How can I solve this issue? Moreover, would you please guide me on inserting other schedulers such as ECF, Musher, sstf, or QAware to the kernel?

Thanks a lo

matttbe commented 1 year ago

Hi,

Which version are you using? I know some modifications have been done on the BLEST scheduler, probably safer to check with the latest version of mptcp_v0.95 and mptcp_v0.96 branches.

I don't know if their authors are still around;

For the other ones, I have no idea but it looks like their author didn't send patches to be included there. So best is to check with them.

rezapoorzare1 commented 1 year ago

I am using v0.95. With BLEST, I dont have any problems, he problem is with redundant and forcing the server to stop.

matttbe commented 1 year ago

My bad, I wanted to talk about Redundant, not BLEST.

Did you compile the kernel using the last version of mptcp_v0.95? https://github.com/multipath-tcp/mptcp/commits/mptcp_v0.95 Are you using the kernel v4.19.264? → uname -a

Maybe good to try mptcp_v0.96

rezapoorzare1 commented 1 year ago

Thanks a lot for you answers. no I am using, 4.19.234.mptcp. This is the problem?

rezapoorzare1 commented 1 year ago

Is mptcp_v0.96 available? Because the latest one on you git is 95.

matttbe commented 1 year ago

Thanks a lot for you answers. no I am using, 4.19.234.mptcp. This is the problem?

This version is from March. I don't remember if there were fixes for Redundant but worth a shot.

Is mptcp_v0.96 available? Because the latest one on you git is 95.

Yes it is: https://github.com/multipath-tcp/mptcp/commits/mptcp_v0.96

rezapoorzare1 commented 1 year ago

Oh, thanks a lot. I should download it from here? https://github.com/multipath-tcp/mptcp/tree/85e185fe8b4a7974a4dc22e70107087896fd0c08 The process is like the old one?

Thanks for your time

matttbe commented 1 year ago

Yes you can

https://github.com/multipath-tcp/mptcp/tree/mptcp_v0.96

Yes, same process

rezapoorzare1 commented 1 year ago

Thanks a lot. I really appreciate your help. I will try it and let you know the results.

Have a nice day

rezapoorzare1 commented 1 year ago

One silly question: I should download the rep and run the make command? Because previously I downloaded form here: https://github.com/multipath-tcp/mptcp/releases and did the rest.

matttbe commented 1 year ago

You can clone the repo or download the .zip, that's the same.

Simply click on the green "Code" button on the top right to get some options to download the code: https://github.com/multipath-tcp/mptcp/tree/mptcp_v0.96

rezapoorzare1 commented 1 year ago

No no, I mean compiling it and changing the Linux kernel to 5.4.

matttbe commented 1 year ago

Yep, same as before

rezapoorzare1 commented 1 year ago

In the previous version, I downloaded the .deb files, then used: sudo dpkg -i linux*.deb sudo apt-get install -f

However, this repo is the compiled and ready folder, how should I compile and insert them into the kernel?

Thanks a million for you time

rezapoorzare1 commented 1 year ago

I was missing some packages. now make menuconfig and make are working. Let's wait and see what will happen. Thanks

rezapoorzare1 commented 1 year ago

I have compiled the kernel now I have the following images. Do you know why 4.15 is not MPTCP?

ii linux-image-4.15.0-197-generic 4.15.0-197.208 amd64 Signed kernel image generic ii linux-image-4.15.0-20-generic 4.15.0-20.21 amd64 Signed kernel image generic ii linux-image-4.19.234.mptcp 20220311125841-1 amd64 Linux kernel, version 4.19.234.mptcp ii linux-image-virtual 4.15.0.197.182 amd64

rezapoorzare1 commented 1 year ago

Moreover, when I try to run make in the net/mptcp directory I ecounter this error:

make: *** No targets. Stop.

rezapoorzare1 commented 1 year ago

ad after compiling (make configmenu ten make) there are only the previous folder in /lib/modules: 4.15.0-197-generic 4.15.0-20-generic 4.19.234.mptcp

rezapoorzare1 commented 1 year ago

In a nutshell, I downloaded the rep from the link you provided, then make menuconfig and make. Afterward, I encountered the errors, do you have any suggestions?

Thanks a million

matttbe commented 1 year ago

Hi, From what I understand, you did the compilation (make menuconfig + make) but not the installation (e.g. make deb-pkg + install the .deb packages), right?

Please check our wiki for some brief instructions: https://multipath-tcp.org/pmwiki.php/Users/DoItYourself

Or for more details: https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-kernel-org-package

Moreover, when I try to run make in the net/mptcp directory I ecounter this error:

You cannot do that, you need to compile (and install and use) the whole kernel

rezapoorzare1 commented 1 year ago

Thanks a lot for your answer. I have downloaded this rep: https://github.com/multipath-tcp/mptcp/tree/mptcp_v0.96

It is not a deb packages, am I right?

rezapoorzare1 commented 1 year ago

And this is the message for the command sudo apt-get install -f:

The following packages were automatically installed and are no longer required: linux-headers-5.15.0-53-generic linux-headers-generic-hwe-20.04 linux-hwe-5.15-headers-5.15.0-53

and in lower kernel: The following packages were automatically installed and are no longer required: linux-headers-4.15.0-20 linux-headers-4.15.0-20-generic linux-image-4.15.0-20-generic linux-modules-4.15.0-20-generic

rezapoorzare1 commented 1 year ago

Lets review the steps: I have downloaded .deb for v.95 then: sudo dpkg -i linux*.deb sudo apt-get install -f so, I had mptcp v0.95. Then I downloaded the rep: https://github.com/multipath-tcp/mptcp/tree/mptcp_v0.96 Which is for v0.96 afterthat, make menuconfig and make. should I do anything after this? Thankssss

rezapoorzare1 commented 1 year ago

How should I modify this command: sudo wget https://github.com/multipath-tcp/mptcp/releases/download/v0.96/linux-headers-5.4.223.mptcp_20220311125841-1_amd64.deb

matttbe commented 1 year ago

Compiling the kernel is not specific to MPTCP, it is the same as compiling a generic kernel except that you use the source code from this repository.

I'm sure there are mainly good tutorial on the Internet.

In short, you need to:

For more details, I recommend you to check from other sources on the Internet. For example, people from https://kernelnewbies.org/ are doing a good job. They have a wiki but also a mailing list and IRC channel and they are more experimented than us to guide you to compile/modify the kernel.

rezapoorzare1 commented 1 year ago

Thanks a lot for your answer. I have done the steps above. My problem is that in all your messages you refer to the .deb file. I know the link for MPTCP v0.95.2 is here : https://github.com/multipath-tcp/mptcp/releases/download/v0.95.2/linux-headers-4.19.234.mptcp_20220311125841-1_amd64.deb

but where is the .deb file for MPTCP v.96?

Thanks

matttbe commented 1 year ago

there is no .deb to download, you have to generate the .deb with the commands given above and https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-building

rezapoorzare1 commented 1 year ago

That was my confusion, let me try it and let you know.

thanks a million

rezapoorzare1 commented 1 year ago

Thanks a lot. Based on your comment I have done all the procedure and make deb-pkg and then sudo dpkg -i linux*.deb sudo apt-get install -f

Now, uname -r shows 5.4.223. how can I enable mptcp now?

I want to enable ecf and I use: sudo modprobe -v mptcp_ecf

I encounter: modprobe: FATAL: Module mptcp_ecf not found in directory /lib/modules/5.4.223

Thanks a lot

For your review: I have downloaded: https://github.com/multipath-tcp/mptcp/tree/85e185fe8b4a7974a4dc22e70107087896fd0c08

then in the folder I did: make menuconfig make

Then by make deb-pkg created the image

and finally: sudo dpkg -i linux*.deb sudo apt-get install -f

then rebooted in the new kernel.

matttbe commented 1 year ago

how can I enable mptcp now?

You need to enable it with make menuconfig, see: https://multipath-tcp.org/pmwiki.php/Users/DoItYourself

I encounter: modprobe: FATAL: Module mptcp_ecf not found in directory /lib/modules/5.4.223

I guess you didn't ask to have it as a module when you did make menuconfig, see our wiki: https://multipath-tcp.org/pmwiki.php/Users/DoItYourself

rezapoorzare1 commented 1 year ago

it is enable, please see the image: 1

rezapoorzare1 commented 1 year ago

Should I disable The IPv6 protocol? 1

matttbe commented 1 year ago

it is enable, please see the image

Yes but what did you selected in the submenu? when pressing Enter in MPTCP: advanced scheduler control?

Should I disable The IPv6 protocol?

I don't know what you want to do but I would not do that.

rezapoorzare1 commented 1 year ago

You are right I have not selected ecf, this time I selected.

I mean based on this guide should I disable Ipv6? You cannot set IPv6 as a module. Either compile it into the kernel, or disable it.

Thanks a million for your time

matttbe commented 1 year ago

I mean based on this guide should I disable Ipv6?

Don't disable it except if you have very specific need. So don't.

rezapoorzare1 commented 1 year ago

Thanks. Let me compile it again and see what happens.

Thanks a million

rezapoorzare1 commented 1 year ago

Sorry one silly question:

After make menuconfig do I need to run make, or create the .deb package with make deb-pkg and then run: sudo dpkg -i linux*.deb sudo apt-get install -f

Do I meed make before make deb-pkg?

Thanks

matttbe commented 1 year ago

after having changed the config, you do need to re-compiled. I think you can directly use make -j$(nproc) deb-pkg

rezapoorzare1 commented 1 year ago

It has worked. Thank you so much for your help. Thanks for the time you have spent, I appreciate it.

Thanks

rezapoorzare1 commented 1 year ago

it is interesting that uname -r shows: 5.4.223 but mptcp_enabled=1 and the parameters can be specified

matttbe commented 1 year ago

it is interesting that uname -r shows: 5.4.223 but mptcp_enabled=1 and the parameters can be specified

In the .deb we uploaded on https://github.com/multipath-tcp/mptcp/releases, we set CONFIG_LOCALVERSION to -mptcp.

It has worked.

Good, closing then!