Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MPTCP is missing from system parameters inside Mininet hosts #1161

Open
mrconter1 opened this issue Mar 16, 2023 · 0 comments
Open

MPTCP is missing from system parameters inside Mininet hosts #1161

mrconter1 opened this issue Mar 16, 2023 · 0 comments

Comments

@mrconter1
Copy link

Hello,

I am having problems with certain system parameters not being accessible from within a Mininet host even though they are accessible from the host system.

After a clean install with the following:

I get the following output when running sysctl -a | grep mptcp outside Mininet:

net.mptcp.mptcp_checksum = 1
net.mptcp.mptcp_debug = 0
net.mptcp.mptcp_enabled = 1
net.mptcp.mptcp_path_manager = fullmesh
net.mptcp.mptcp_scheduler = default
net.mptcp.mptcp_syn_retries = 3
net.mptcp.mptcp_version = 0

which is correct. But when I do the same from within a Mininet host by starting Mininet with the default topology:

sudo mn

and then running the sysctl command on, for instance, the h1 node:

mininet> h1 sysctl -a | grep mptcp

I dont get any output. In other words, the system parameters can't be found by sysctl -a from within a Mininet host.

Expected/Desired Behavior:

mininet> h1 sysctl -a | grep mptcp

=>

net.mptcp.mptcp_checksum = 1
net.mptcp.mptcp_debug = 0
net.mptcp.mptcp_enabled = 1
net.mptcp.mptcp_path_manager = fullmesh
net.mptcp.mptcp_scheduler = default
net.mptcp.mptcp_syn_retries = 3
net.mptcp.mptcp_version = 0

Actual Behavior:

mininet> h1 sysctl -a | grep mptcp

=>

[No output]

Detailed Steps to Reproduce the Behavior

  1. Install "Ubuntu 20.04.5 LTS" and the "5.4.230.mptcp" kernel.
  2. Run sudo mn
  3. Inside the Mininet console execute sysctl -a | grep mptcp
  4. Compare output when running it outside the host

Additional Information

The following people seems to have had the same problem:

Here are some outputs from both the host system and from within a Mininet host. It seems to be the same output regardless of if sudo or not is used in both cases.

Command Result in Ubuntu (outside a Mininet host) Result from within a Mininet host
ip netns identify $$ [No output] [No output]
ls /proc/net/mptcp_net/ mptcp snmp mptcp snmp
readlink /proc/self/ns/net net:[4026532008] net:[4026533846] (differs between Mininet hosts)
ls /proc/sys/net/mptcp mptcp_checksum mptcp_debug mptcp_enabled mptcp_path_manager mptcp_scheduler mptcp_syn_retries mptcp_version [No output]

I think it's relevant to note that creating hosts with inNamespace=False:

h1 = net.addHost('h1', inNamespace=False) # don't spawn in net namespaces
h2 = net.addHost('h2', inNamespace=False) # don't spawn in net namespaces
r1 = net.addHost('r1', inNamespace=False) # don't spawn in net namespaces

results in me being able to see the system parameters from inside a Mininet host by running sysctl -a | grep mptcp. While this solves the access problem it seems to result in the network parameters that you can set for each Mininet host to be ignored.

I think I somehow need to figure out how I can mount the namespace or perhaps the "/proc/sys/net/mptcp" folder. Running mount --bind /proc/sys/net/mptcp from within a Mininet host just results it:

mount: /proc/sys/net/mptcp: mount point does not exist.

Best regards, Rasmus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant