Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Configuring User-Space Access Points with Remote Controller in Mininet-WiFi

88 views
Skip to first unread message

Jonas Tn

unread,
Aug 26, 2024, 4:25:22 PM8/26/24
to mininet-wifi-discuss

Thank you for the opportunity to be part of this group!

I am working on creating a wireless topology using user-space APs. To do so, I installed BOFUSS using the following command: install -3f.

As a simple test, I ran the following command:

sudo mn --wifi --ap user --innamespace --controller=remote,ip=127.0.0.1,port=6653

Capture d'écran 2024-08-26 194717.png

In the screenshot, you can see that when running the command above, an interface ap1-eth0 is created to connect to the SDN controller (Floodlight) through c0-eth0. Both iperf and ping work well in this setup.  

However, when I try to create a custom topology using a Python script, I use the following Mininet setup:  
net = Mininet_wifi(controller=RemoteController, accessPoint=UserAP, link=wmediumd, wmediumd_mode=interference)

In the creation of the access point, I pass the argument inNamespace=True.

Below is a screenshot that describes what I have created with my custom script:

Capture d'écran 2024-08-26 204946.png

The issue is that in this setup, the ap1-eth0 interface, which I expected to be connected to the controller like in the previous screenshot, is no longer visible. While ping works fine, iperf does not.

I believe there are some settings I might be missing, but I'm not sure what they are.

I want to create a Mininet script that replicates the command: sudo mn --wifi --ap user --innamespace --controller=remote,ip=127.0.0.1,port=6653

Thank you very much.

Ramon Fontes

unread,
Aug 26, 2024, 4:41:31 PM8/26/24
to Jonas Tn, mininet-wifi-discuss

Hello,

Did you notice any useful information when running the code at debug level?


--
You received this message because you are subscribed to the Google Groups "mininet-wifi-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mininet-wifi-dis...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mininet-wifi-discuss/62f37440-5f51-47fd-9194-743dd64c09d8n%40googlegroups.com.

Jonas Tn

unread,
Aug 27, 2024, 5:19:08 PM8/27/24
to mininet-wifi-discuss
I recently ran the following command at the debug level:
sudo mn --wifi --ap user --innamespace --controller=remote,ip=127.0.0.1,port=6653 -v debug

The debug output provided some valuable insights. Specifically, I observed that a link was created between the access point and the controller by creating two interfaces: ap1-eth0 and c0-eth0, each with their IP addresses. The relevant lines from the output were:


c0 <-> ap1*** ap1 : ('ip link add name ap1-eth0 type veth peer name c0-eth0 netns 8269',)

added intf ap1-eth0 (0) to node ap1
moving ap1-eth0 into namespace for ap1
*** ap1 : ('ifconfig', 'ap1-eth0', 'up')

added intf c0-eth0 (0) to node c0
*** c0 : ('ifconfig', 'c0-eth0', 'up')
*** c0 : ('ifconfig', 'c0-eth0', '192.168.123.1/16')
*** ap1 : ('ifconfig', 'ap1-eth0', '192.168.123.2/16')
*** c0 : ('route add -host', '192.168.123.2', 'dev', <Intf c0-eth0>)
*** ap1 : ('route add -host', '192.168.123.1', 'dev', <Intf ap1-eth0>)


However, when I run my custom Python Mininet script using cls=UserAP and inNamespace=True with net.addAccessPoint, the automatic creation of this link does not occur.

From what I understand, I may need to manually create the link between the AP and the controller (c0) within my script, and also manually assign the IP addresses. I am reaching out to confirm if this is indeed the correct approach, as I have not found detailed guidance on this matter. Additionally, is there any comprehensive documentation available for BOFUSS that could assist with these tasks? 

Thank you

Ramon Fontes

unread,
Aug 27, 2024, 6:16:50 PM8/27/24
to Jonas Tn, mininet-wifi-discuss
You have to add a host and the controller must be running on it. You can find some directions on this mailing list as well as the mininet mailing list.

Jonas Tn

unread,
Aug 27, 2024, 6:31:11 PM8/27/24
to mininet-wifi-discuss
Does working with BOFUSS involve running the controller on a host?

Ramon Fontes

unread,
Aug 27, 2024, 6:36:19 PM8/27/24
to Jonas Tn, mininet-wifi-discuss
> Does working with BOFUSS involve running the controller on a host?

It's mandatory with in-band scenarios.

Ramon Fontes

unread,
Aug 27, 2024, 6:38:30 PM8/27/24
to Jonas Tn, mininet-wifi-discuss
Host in this setup means mininet host--the virtual one!

Jonas Tn

unread,
Aug 27, 2024, 6:48:08 PM8/27/24
to Ramon Fontes, mininet-wifi-discuss

Thank you very much, Mr. Ramon. My goal is to implement and work with WPA2 and 802.11r handover. I understand that WPA2 has been designed primarily to work with user-space Access Points rather than kernel-based ones. For this reason, I am aiming to set up the configuration as described below

Ramon Fontes

unread,
Aug 27, 2024, 6:48:13 PM8/27/24
to Jonas Tn, mininet-wifi-discuss
It works well with OVS if you set datapath='user', as you can see at https://github.com/intrig-unicamp/mininet-wifi/blob/master/examples/authentication.py

Jonas Tn

unread,
Aug 27, 2024, 6:55:06 PM8/27/24
to Ramon Fontes, mininet-wifi-discuss

Thank you Mr. Ramon. While I have been able to perform pings using OVS with datapath=user, I am encountering issues with iperf not functioning between stations. This has led me to consider working with user-space Access Points as a potential solution

Reply all
Reply to author
Forward
0 new messages