Help me build OpenWrt with MPTCP?

The config file generated by "make menuconfig" or "make kernel_menuconfig" never actually gets used. As soon as I do that, and start compiling, the build process will print as below, and then it will ask me like a hundred+ questions:

net/mptcp/Kconfig:52:warning: choice default symbol 'DEFAULT' is not contained in the choice
net/mptcp/Kconfig:114:warning: choice default symbol 'DEFAULT' is not contained in the choice
.config:801:warning: symbol value 'm' invalid for NF_NAT_MASQUERADE_IPV4
.config:805:warning: symbol value 'm' invalid for NF_NAT_REDIRECT
*
* Restart config...
*
*
* General setup
*
Compile also drivers which will not load (COMPILE_TEST) [N/y/?] (NEW) 

So, the only config that works is the one that I'm asked during the build process. I am also enabling MPTCP during the config generation.

Here's my .config file

I also noted maybe you're not actually compiling MPTCP? For the patch to be applied, I had to create a folder target/linux/generic/pending-4.19.80 and put the patch in there. Otherwise, if I put it in target/linux/generic/pending-4.19 it doesn't get applied at all.

I didn't have any issue with your config. I didn't have to make a new folder either.
I think your config file is broken or something.
Just to be sure you did run make clean before the builds right?

Yup. I run make clean. Are you able to actually configure MPTCP during the build process? Does the rest compile to the end without error?

Yes mptcp is enabled, it built without errors.

Wow. Just send me the entire Openwrt folder so I can try on my computer

It's way too large. At this point you might want to just start over. Clone the repo again, checkout that commit, copy the patch in, configure kernel & openwrt then build. That's all I did really.

Just chiming in that I was able to build it by just adding the MPTCP feed and removing the LuCI feed. You need about 32MB of flash, and it will not build the squashfs image if your target is too small.

How do I add MPTCP feed? What exact line should I add to "feeds.conf.default"?

Please read up on how to work with feeds, this is how to add any arbitrary feed to your OpenWrt installation.
https://openwrt.org/docs/guide-developer/feeds#working_with_feeds
https://openwrt.org/docs/guide-user/network/mptcp

1 Like

I managed to compile a build with MPTCP and ShadowSocks for ramips and sunxi. Everything works great.

Woohoo! How did you do that? What version of OpenWrt?

OpenWrt master, kernel 5.4 with MPTCP v0.95. Shadowsocks with no encryption method.

OrangePi R1 with 2x100Mbps ports performs quite well. while pushing ~90Mbps (eth bottleneck), top reports 13% cpu usgae with chacha20-ietf-poly1305 method, and less than 5% when using no encryption.

Netgear R6220, 25Mbps with chacha20, and ~130Mbps with no encryption.

1 Like

Wow, that sounds awesome! How did you manage to do compile MPTCP? Please explain in a way I can try to replicate. I've tried to make it work several times and I always run into compilation errors.

MPTCP is mainlined now apparently.
When OpenWRT starts using kernel >5.6 it should be much easier to enable.

Been struggling with getting this thing to work.
Problem is, when creating the kernel menuconfig, there are no options available for the MPTCP.
quilt series and applied show the patch supposedly activated.
But not sure, if I do it all right. There's a bit of the controversy, on how to apply the patch.
I see a few here, managed to get the mptcp installed, but sadly, no one really posted, at least brief instructions.
Would really appreciate a little guidance guys.

I've posted a tutorial to build OpenWRT with Multipath TCP. Check it here:

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.