GithubHelp home page GithubHelp logo

intrig-unicamp / mininet-wifi Goto Github PK

View Code? Open in Web Editor NEW
417.0 32.0 234.0 30.09 MB

Emulator for Software-Defined Wireless Networks

Home Page: https://mn-wifi.readthedocs.io/

License: Other

Shell 3.65% Python 90.53% C 5.48% Makefile 0.27% Dockerfile 0.07%
emulator wireless software-defined-wireless-network wifi hacktoberfest

mininet-wifi's Introduction

About Mininet-WiFi

Mininet-WiFi is a fork of Mininet (http://mininet.org/) which allows the using of both WiFi Stations and Access Points. Mininet-WiFi only add wifi features and you can work with it like you were working with Mininet.

Build Status

Things to keep in mind when working with Mininet-WiFi

  • You can use any wireless network tools (e.g. iw, iwconfig, wpa_supplicant, etc)
  • Please consider computer network troubleshooting steps to solve issues before making questions in the mailing list (e.g. is the station associated with ap? Is the OpenFlow rule working correctly? etc)
  • Do you need help? Be careful with questions in the mailing list and please providing as much information you can.

Mailing List

https://groups.google.com/forum/#!forum/mininet-wifi-discuss

Use Cases Catalogue

Please, let us know if you are doing research with Mininet-WiFi. A list of citations on Mininet-WiFi is available here.  

Installation

We highly recommend using Ubuntu version 16.04 or higher. Some new hostapd features might not work on Ubuntu 14.04.
step 1: $ sudo apt-get install git
step 2: $ git clone https://github.com/intrig-unicamp/mininet-wifi
step 3: $ cd mininet-wifi
step 4: $ sudo util/install.sh -Wlnfv

install.sh options:

-W: wireless dependencies
-n: mininet-wifi dependencies
-f: OpenFlow
-v: OpenvSwitch
-l: wmediumd
optional:
-P: P4 dependencies
-6: wpan tools

Docker

This is recommended if you are using a different linux distribution from the ones supported by the installation script.

If you prefer to use Mininet-WiFi with Docker you should follow the steps described below:

  1. Building the docker image:

    docker build -t mn-wifi:v1 .
  2. Running the container: Mininet-WiFi relies on Kernel modules from the host, requires elevated privilege, and the host network interface:

    docker run -it --rm --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" -v /tmp/.X11-unix:/tmp/.X11-unix:rw --net host -v /sys/:/sys -v /lib/modules:/lib/modules -v /sys/kernel/debug:/sys/kernel/debug -v /var/run/netns:/var/run/netns mn-wifi:v1

Building Topologies with GUI

I'm a beginner, I do not know Python and I would like to create a customized topology with a GUI. In this case, MiniEdit can serve as support since it provides a GUI to generate Python scripts.

Development

For instructions about easier development check this helper file.

Pre-configured Virtual Machine

For your convenience, we provide pre-built VM images including Mininet-WiFi and other useful software. The VM images are in .ova format and should be usable with any modern x64 virtualization system.

[4.6GB Size] - Lubuntu 20.04 x64 - Mininet-WiFi (pass: wifi)
[6.7GB Size] - Lubuntu 20.04 x64 - Mininet-WiFi with P4 (pass: wifi)

Note

Mininet-WiFi should work fine in any Ubuntu distribution from 14.04, but in some cases (only if you have problems when start it) you have to stop Network Manager with either sudo systemctl stop network-manager or sudo service network-manager stop.

Book

We are glad to announce that the Mininet-WiFi book has been published!

Here is the pointer to the book:

Printed and e-Book version: https://mininet-wifi.github.io/book/ - Available in English and Portuguese

Github repository with all use cases presented in the book:
https://github.com/ramonfontes/mn-wifi-book-pt

Team

Ramon dos Reis Fontes ([email protected])
Christian Rodolfo Esteve Rothenberg ([email protected])

We are members of INTRIG (Information & Networking Technologies Research & Innovation Group) at University of Campinas - Unicamp, SP, Brazil.

mininet-wifi's People

Contributors

adferguson avatar andynoack avatar awlane avatar backb1 avatar bentenshan avatar bocon13 avatar cdburkard avatar chesteve avatar chrischarma avatar davidcawork avatar ecwolf avatar emdneto avatar esoares avatar ggee avatar jafar-albadarneh avatar jahorcajo avatar javacruft avatar lantz avatar lido22 avatar moijes12 avatar murphymc avatar onurklngc avatar pantuza avatar pichuang avatar ramonfontes avatar remyleone avatar rlane avatar ryancox avatar vitalivanov avatar yeasy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mininet-wifi's Issues

Mobile ad hoc network

Hi Ramon,
How are you?
I am emulating MANET in this emulator. I hope that two nodes can exchange data when they encounter. But I don't know how to detect whether one node is in communication range of another node. Could you give me some suggestion? Thanks a lot!

Best Regards,
Xian

Support for CPULimitedHost

Hi,
I have noticed when running sample script w/ CPULimitedHost from: mininet I get an error: File "cpu.py", line 105, in <module> out = bwtest(limits) File "cpu.py", line 76, in bwtest net.stop() File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post2-py2.7.egg/mininet/net.py", line 1039, in stop host.terminate() File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post2-py2.7.egg/mininet/node.py", line 450, in terminate self.cleanup() File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post2-py2.7.egg/mininet/node.py", line 937, in cleanup retry(retries=3, delaySecs=1, fn=self.cgroupDel) File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post2-py2.7.egg/mininet/util.py", line 209, in retry if args[1].type != 'accessPoint': IndexError: tuple index out of range
I have look into mininet-wifi source code and there is a class CPULimitedHost with its cleanup method: here
Is mininet-wifi supporting CPULimitedHost?
I am asking because I am playing with my configured mptcp kernel w/ several topologies and I want to use some CPULimited hosts in them.
Regards,
Grzegorz

Basic controller

Hi @ramonfontes ,

I had some thoughts through working with Mininet-wifi, with holding your description about:
a) If need to add a remote controller it needs to handle mobility or do it manually
b). current mininet-wifi is working with reference controller (default controller)

Now I have two questions:

is the reference controller defined in node.py at line number 2278: class Controller(Node)?

As you said earlier, the reference controller that is used for mininet in default is from mininet, right? then if I change the option parameter of --controller=remote controller and run

https://github.com/itaimirin/SDN-Controller---Mininet-POX-/blob/master/IM_l2_learning.py

it will work properly?

and last but not least, since you mentioned this is a wireless station (access point) that acts like a switch, and since when I traced controller on wireshark I have seen Port_in and Port_out flows, how controller setups rules on the access points (ovs switch) ? cuz there is no port to setup rules on it...
Thank you in advance,
Best,

Sample topology (wifi network)

Hi,

I have tried to build up a sample topology of three access points connected to three mobile stations but I think Im missing something around... When I run it I see that remote controller can detect connection of switches but no ping is working.

#!/usr/bin/python
from mininet.net import Mininet
from mininet.link import TCLink
from mininet.cli import CLI
from mininet.log import setLogLevel
from mininet.node import Controller, RemoteController, OVSKernelAP, OVSSwitch

def topology():

"Create a network."
net = Mininet( controller=RemoteController, link=TCLink, accessPoint=OVSKernelAP )

print "*** Creating nodes"

sta1 = net.addStation( 'sta1', mac='00:00:00:00:00:02', ip='10.0.0.2/8', position='20,50,0' )
sta2 = net.addStation( 'sta2', mac='00:00:00:00:00:03', ip='10.0.0.3/8', position='70,50,0')
sta3 = net.addStation( 'sta3', mac='00:00:00:00:00:04', ip='10.0.0.4/8', position='90,50,0' )

ap1 = net.addAccessPoint( 'ap1', ssid= 'new-ssid', mode= 'g', channel= '5', position='25,50,0', range='35' )
ap2 = net.addAccessPoint( 'ap2', ssid= 'new-ssid', mode= 'g', channel= '5', position='75,50,0', range='35' )
ap3 = net.addAccessPoint( 'ap3', ssid= 'new-ssid', mode= 'g', channel= '5', position='90,50,0', range='35' )
c0 = net.addController('c0', controller=RemoteController, ip='127.0.0.1', port=6633 )
#net.runAlternativeModule('../module/mac80211_hwsim.ko')
net.addLink(ap1, sta1)
net.addLink(ap2, sta2)
net.addLink(ap3, sta3)

net.build()
c0.start()
ap1.start( [c0] )
ap2.start( [c0] )
ap3.start( [c0] )
CLI( net )
net.stop()

if name == 'main':
setLogLevel( 'info' )
topology()

Am I missing something? Cuz im getting 100% packet loss. I think I should connect Access points but if I do so, then I gotta connect the controller to a switch and I dunno how workflows will go in that case. Is there any way to connect APs together to exchange the packets/flows between each other?

Best,

The handover recovery latency is so unstable when the sta moving among APs

hi ,I choose a controller which support mobility to test the handover latency when a sta moving among APs , of course I use the mininet-wifi to simulate experimental environment. And I get a strange result : the handover latency is very different .The most handover latency is range between 2s and 5s , but there is also some 14s and 15s ,the unstable result troubled me, and I want to know whether I forget to deploy something at the APs or stas or the wireless links ?? Because I guess the instability may be associated with the wifi handover .

A question about changing AP parameters by controller.

Hi,
I have a question as in the title. Is there a possibility to change AP's parameters such a AP range (I mean antenna power level), contention window size, channel etc. by a remote controller? I am afraid that controller supporting OpenFlow protocol (ex. some POX controller) can't do that, so have you got an idea how can I achieve that? I am asking because I want to create a SDN controller which could change AP's amounparameters based on amount of clients connected to AP but I have no idea how can I create that kind of controller and if I can test it using mininet-wifi.
Thanks a lot for answer,
Regards,
Greg

All *.txt and *.conf files are deleted from current directory

Mininet-wifi deletes all *.txt and *.conf files from the current directory. This is implemented in mininet/wifiModule.py:

    @classmethod
    def stop(self):
        """ Stop wireless Module """
        if glob.glob("*.conf"):
            os.system('rm *.conf')

        if glob.glob("*.txt"):
            os.system('rm *.txt')

Few problems with file replayingRSSI.py in examples/replaying

  1. path in lines 36 and 37 in function should be changed to: replayingRSSI/node1_rssiData.dat and replayingRSSI/node2_rssiData.dat
  2. in line 39 method replayingRSSI() should be call with mininet-object as an argument so in this case I think it should be replayingRSSI(net)
  3. in wifiReplaying.py module in line mobility.parameters_() there is a classmethod call without any arg, I go to definition and I think it should be call with sta as a parameter so mobility.parameters_(sta) should work.
    After these changes it works fine.
    Let me know if I'm wrong or not.

The user manual seems outdated.

When I follows the tutorial (in Section 5.5.10), I find some API cannot be resolved. For example,
mininet-wifi> ap1.range
bash: .range: command not found
According to description of APIs (see Section 1.6.3), the right form should be
mininet-wifi> py ap1.params['range']

Furthermore, there is a typo error of the code example (in Section 5.5.11), i.e.,
sta1.moveAssociationTo('sta1-wlan0', 'ap1'),
which should be
sta1.moveAssociationTo('sta1-wlan0', ap1),
since the second argument ap1 is an objec of AP, not a string (see Section 1.6.5).

So, I think the user manual is outdated, and should be updated.

Node Connection & WifiDirect Related Question

Hi,

I've just started doing a WifiDirect project in mininet using this code as a basis. First of all, thanks for providing the code!
Now, I would like to connect sta1 and sta2 using WifiDirect. Could you give me a guidance how to do that? Can I do it automatically using python code?
WifiDirect related questions:
I can set the range whatever I want, but wifiDirect range is about 60 meters. Thus, when I set my wifiDirect range I should be within this range, I guess. Am I right?

Which controller can I use for mininet-wifi?

Hi,I have installed the mininet-wifi. I think it is very great. I have a question which controller can be used to control the network of mininet-wifi? floodlight, Ryu, POX or that I have to modify them to support the feature of wifi?

remote controller cannot detect normal OVSSwitch when there are aps

I programe a python script that hava normal OVSSwitchs and aps based on examples/handover.py .But the remote controller just can detect aps and cannot detect the normal switch through addSwitch('s1') method . what's more ,when I replace all the switchs to aps ,the ping ttl time between two hosts under one ap is up to more than 10ms rather than less 0.05ms under one normal OVSSwitch .......

can I custom the moving path in virtual space

hello , I have learned that the mininet-wifi offers two methods(net.mobility and net.startMobility) to support mobility. And I want to know if it is possible that the station moves according a customized path.
For example , one path is ap1, ap2, ap3, ap2, ap1.....

Thandks

Mininet wifi crashes

Hi.
Sadly, my mininet-wifi crashes many times.
I run 2AccessPoint.py one time, type exit at the end.
Then I run 2AccessPoint.py (or any other topologies) and it faces an error(index out of range).
I type sudo mn -c, then run the topo again, and it goes till adding link... but suddenly my ubuntu hangs (like there's a loop somewhere), and I have to reset the machine, turns out that I have to run just one topology each time then reset, and then the other.

what should I do?

Rate of TP-Link TLWR740N

Hi, I've found out, that rate of AP mentioned in title could not be good, idk if 130 - 100, 54 - 43 etc. is okay. According to specification: http://www.tp-link.com.au/products/details/TL-WR740N.html#specifications I am not sure if it should be decreased by these values.
Could you explain me why it is like that?
I have noticed that when I tried different APs in my topos (all in mode "n") and I have much lower rate with TP-Link TLWR740N in comparison to ex. CISCO WRT120N
Regards,
Grzegorz

PS:
below code from repo (mininet/wifiDevices.py)

https://github.com/ramonfontes/mininet-wifi/blob/master/mininet/wifiDevices.py#L108-L144

Stations in ad hoc mode can ping each other even if they are out of range

I have added stations in ad hoc mode. (No access points).
And then I added a mobility model. But I discover that stations can still ping each other when they are out of range.

    for station in net.stations:
        net.addHoc(station, ssid='adhocNet', mode='g')

    #Xian: add the following lines for adhoc network
    net.plotGraph(max_x=100, max_y=100)
    net.propagationModel('friisPropagationLossModel', sL=2)
    net.seed(random.randint(0, 100))
    net.startMobility(startTime=0, model='RandomWayPoint', max_x=100, max_y=100, min_v=0.5, max_v=0.8)

How can I resolve this?

Thank you for your help.

Using Mininet Wifi with Ryu Controller

I was wondering if anyone has any experiences with using Mininet-Wifi with the Ryu controller. I was attempting to see if I could run a shortest-path forwarding algorithm from https://sdn-lab.com/2014/12/25/shortest-path-forwarding-with-openflow-on-ryu/?wref=tp , but some issues popped up. Is there any documentation on running ryu specifically with Mininet-Wifi, or is there a specific list of things that I'd need to do besides what is typically needed for running Mininet and ryu?

wifiDirect.py Simulation Error

`khan@ubuntu:~/mininet-wifi/examples$ sudo ./wifiDirect.py

*** Creating nodes
*** Configuring Propagation Model
*** Configuring wifi nodes
*** Starting WiFi Direct
*** Starting network
Traceback (most recent call last):
File "./wifiDirect.py", line 54, in
topology()
File "./wifiDirect.py", line 31, in topology
net.build()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post3-py2.7.egg/mininet/net.py", line 935, in build
mininetWiFi.configureWmediumd(self.stations, self.accessPoints)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post3-py2.7.egg/mininet/wifiNet.py", line 656, in configureWmediumd
WmediumdStarter.start()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.1.post3-py2.7.egg/mininet/wmediumdConnector.py", line 434, in start
stderr=subprocess.STDOUT, preexec_fn=os.setpgrp)
File "/usr/lib/python2.7/subprocess.py", line 711, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

khan@ubuntu:~/mininet-wifi/examples$
`

A question about the ac parameter in net.startMobility

Hi.
In the function net.startMobilty, there are only two available value("ssf","llf") for the ac parameter.
Can I add my custom mechanism by adding some code in /mininet/wifiAssociationControl.py ?
Should I remake the project when I change the Source code?
Could you give me some guide? Thank you in advance.

GUI error

hi,
when i run some examples like handover.py or wifiMobility.py that they need running GUI i get the following error:
warning:
This OS does not support GUI , running without GUI

there are also some tkinter errors uppon this,
overflowError: Python int too large to convert to C long

what should i do ?

MAC addresses are being overriden when using adhoc networks

I used this simple example to set the MAC addresses of two stations. The MAC address is replaced by a generated one, and no hw ether command is executed.

#!/usr/bin/python

from mininet.net import Mininet
from mininet.cli import CLI
from mininet.log import setLogLevel
from mininet.node import Node


def topology():
  print "*** Creating network"
  net = Mininet()
  print "*** Creating stationms"
  sta1 = net.addStation('sta1', mac='00:00:00:00:00:02')
  sta2 = net.addStation('sta2', mac='00:00:00:00:00:03')
  print "*** Adding stations to adhoc"
  net.addHoc(sta1)
  net.addHoc(sta2)
  print "*** Starting network"
  net.start()
  print "*** Running CLI"
  CLI(net)
  print "*** Stopping network"
  net.stop()

if(__name__ == "__main__"):
  setLogLevel("debug")
  topology()

After the network creation I used iw dev staX-wlan0 info to inspect the MAC address. Even in the staX.params I can see the generated one.

A couple of issues

Hi.
I am a student that recently started to work with mininet-wifi. While i was working in the tutorial i found a couple of problems. If this is not the place for this questions just tell me.
1-My main interest is develop some networks to make test on them but i can't find the examples of which the tutorial speaks:
wifiMobilityModel.py at the point 5.5.4
2AccessPoints.py 5.6.1 at the point 5.5.4
wifiAssociationControl.py 5.6.1 at the point 5.5.4

2-At the point 5.5.4 when i try to run the code of position-test.py i get this error (https://gyazo.com/be86d039f8b0a62233b670034c133c87). Is it a problem with the instalation?

Thank you and sorry for my English (it has been a while)

Does the code for Mininet-WiFi maintain updates from Mininet?

Hi

Mininet-WiFi is a fork of Mininet, so does it maintain any updates from Mininet?
Can the new functionality (i.e. of Mininet-Wifi) be separated from Mininet easily for easier understanding such that Mininet is a dependency? Or is there a specific reason Mininet-Wifi needs to be a fork of Mininet?

Thanks.

Documentation for the different functions

I am new in mininet-WiFi and I have some questions:

1.- Does it exist any "help" for the different functions, so I can see all the parameters that can be defined? For example, configuring the AP with 802.11ac? (I guess it is mode="ac" , but I am not sure). I have following all the tutorials/examples but maybe there is some kind of detailed documentation

2.- How can I load an external controller using the python API? 

Multiple virtual ssid

Referring to the commit, the code changed in the file forwardingBySSID.py is not allowing the network connections between stations and access point.

Issue:

While scanning available SSIDs using the command on the station(sta1):

$sudo iw dev sta1-wlan0 scan | grep ssid

The output below is displayed:
Output
There are extra characters that are getting added in each ssid name. Because of the format changed in the referred commit. While:

$ iwconfig | grep ESSID

shows that SSID assigned to sta1 is "ssid1" instead of any one of the ssid which is being displayed in the image. This issue is with the other stations too.

I tried changing the code for addAccessPoint inside net.py but it didn't work for me. How can I go forward with this?

Running a code in separate nodes simultaneously

Hi,

I would like to write a python code and run it in different nodes simultaneously. Is there a way to achieve this? Here's a detailed explanation of the problem I have: Let's say I created two nodes that runs wifi-direct in them. sta1 and sta2. When I run the code:
sta1.cmd('<discover peers for 60 sec.>; sleep 30')
sta2.cmd('<discover peers for 60 sec. >; sleep 10')
First, sta1 starts discovering peers and then waits for 30 seconds. After that 30 seconds sta2 starts discovering. This is not what I want. Instead, I want sta1 and sta2 to start discovering at the same time. I don't want one station (sta2) to wait other station (sta1) in order to start processing. How can I start sta1 and sta2 working simultaneously (I would like to increase the number of stations in the future)? Here sleep is just an example. If there's a process, which takes a bit of time, sta2 waits sta1 to finish the process.

wpa_supplicant is not correctly shutdown/killed

From wifiModule.py line 58:

        try:
            h = subprocess.check_output("ps -aux | grep -ic \'wpa_supplicant -B -Dnl80211\'",
                                                          shell=True)
            if h >= 2:
                os.system('pkill -f \'wpa_supplicant -B -Dnl80211\'')
        except Exception as e:
            pass # e => Command 'ps -aux | grep -ic 'wpa_supplicant -B -Dnl80211'' returned non-zero exit status 1

grep exit status 1 means no lines have been found. But processes are running, even after net is stopped.

Used example: wifiDirect.py

Throughput drastic decreasing

Hi!

I am measuring the TCP throughput in wireless network with iperf with a access point range of 250 m, and testing the dependency with the distance to the access point. And I don't understand why the throughput decreases until range/2 (in this position the throughput is drastically low) , then increases and starts to decrease with distance again. Can anyone help me with this? Can I solve this ?

Mobility is only visual?

Hi,

In the example "mobility.py" shouldn't Station 1 lose the connection with the AP when he moves out of range?
If I try to ping AP from station 1 it was communication without any problem.

Thank you in advance for your help.

How to put a car in ad hoc mode?

Hi
Can you please tell how to put cars in adhoc mode.
I see that in the adhoc example station can be put in adhoc mode.

A car is connected to a station - you can get the station object from the car but cannot use addHoc method on it:
Traceback (most recent call last):
File "vanet.py", line 114, in
topology()
File "vanet.py", line 46, in topology
net.addHoc(sta, ssid='adhocNet', mode='g')
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0.post2-py2.7.egg/mininet/net.py", line 755, in addHoc
sta.func[wlan] = 'adhoc'
IndexError: list assignment index out of range

(After adding cars in the vanet.py, I get the car's station and try pass it in addHoc)

Thanks
Ashlesh

Antenna Type and channel bandwidth

Hi!

I have two important questions in order to proceed with my work:

  1. Can I choose the type of antenna? For example, a tri-sectorized one (not omnidirectional).

  2. Can I define a channel bandwidth? I want to use a 10 MHz channel, it is possible?

Thank you.

A question about net.addLink()

Hello! I want to change the bandwidth, error rate, and delay between a station and an accesss piont .
For examples,net.addLink(sta1, ap1,bw='11Mbps', loss='100%', delay='15ms') and net.addLink(sta2, ap1,bw='11Mbps', loss='100%', delay='15ms').
However,when I input "sta1 ping sta2" in the CLI, it shows that "6 packets transmitted, 6 received, 0% packet loss". I set the loss="100%" and why the packet loss is 0%?
It also shows that “64 bytes from 192.168.0.4: icmp_seq=4 ttl=64 time=0.069 ms”.The delay='15ms' doesn't work at all.
Thanks!

Install bug

Hi! Cheers on the good work!
I just wanted to bring it to your attention that commits on Aug 21 seem to introduce errors in the installation.

cd: iw: No such directory
in line 147: util/install.sh

interference between 2 or many APs in same frequency

Hi, Mr. Ramon
I am in new with mininet-wifi, my research about interference of 2 or more AP in same frequency/channel while their area/range was tangent (same area). An examples I built WLAN based wmediumd_interference.py with 2 AP (APa & APb) with 2 STAs associated to each AP, in the same time using iperf I make traffic between 2 STAs in APa and 2 STAs in APb, I wish there will be an interference in WLAN known with a decrease traffic between STAs in each AP, but why each traffic do NOT change compared with 2 AP in non-overlapping channel? Can mininet-wifi simulate my WLAN topology?
Of course, wmediumd and interference and they work well in WLAN with 1 AP, but why not in 2 AP same channel.
topowifi2
STA1 n STA2 associated with AP1, STA11 n STA12 associated with AP2
Could you give me some suggestion? Thanks a lot!

Best Regards,
Hendrojio

addWIrelessMeshSwitch

Hi,

re: addWIrelessMeshSwitch
will there be documentation for this function? It seems to be similiar to addAccessPoint except it is intended to be used with addMesh?

running the ff:

mesh = net.addWirelessMeshSwitch('mesh0', cls=OVSKernelAP)
net.configureWifiNodes()

produces the following errors:

net.configureWifiNodes()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 971, in configureWifiNodes
self.configureWirelessLink()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 956, in configureWirelessLink
self.configureMacAddr(node)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 933, in configureMacAddr
node.params['mac'][wlan] = node.getMAC(iface)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/node.py", line 515, in getMAC
debug('%s\n' % mac[0])
IndexError: list index out of range

802.11 standards support

Hi !

I was wondering how you are supporting different 802.11 standards and amendments such as 802.11b or 802.11n. For example, is it possible to emulate a MIMO system?

Thanks

Two network interfaces

Hi, first of all thanks for this great tool.

I am trying to simulate an offloading environment, where one station having two wireless interfaces is able to reach a single host from both paths. This station must be able to move following any of the already implemented mobility models, therefore there will be this intermittent connectivity from both interfaces. One access point could have a short range but good link quality, while a second ap a long range but poor quality connection.

So something like:

  • host h1, running an http server, probably with two network interfaces
  • station sta1, having two wireless interfaces
  • ap1, connected to h1 with good quality, but short wifi range
  • ap2, connected to h1 with poor quality, but long wifi range
  • sta1 must move freely and as soon as any of the APs are in range, connect to them and be able to reach h1

For that I edited the wifiMobilityModel.py example, setting up two network interfaces on each node, each of them on a different subnet. (The main part of) My script looks like the following:

print "*** Creating nodes"
h1 = net.addHost( 'h1', ip='10.0.0.1/24' )
sta1 = net.addStation( 'sta1', wlans=2, ip='10.0.0.2/24')
ap1 = net.addAccessPoint( 'ap1', ssid= 'slow-ssid', mode= 'g', channel= '1', position='50,50,0', range=40 )
ap2 = net.addAccessPoint( 'ap2', ssid= 'fast-ssid', mode= 'g', channel= '4', position='20,80,0', range=20 )
c1 = net.addController( 'c1', controller=Controller )
c2 = net.addController( 'c2', controller=Controller )

print "*** Configuring wifi nodes"
net.configureWifiNodes()

print "*** Associating and Creating links"
net.addLink(ap1, sta1)
net.addLink(ap2, sta1)

net.addLink(ap1, h1)
net.addLink(ap2, h1)

sta1.setIP('10.1.0.2/24', intf="sta1-wlan1")
h1.setIP('10.1.0.1/24', intf="h1-eth1")

print "*** Starting HTTP server on H1"
h1.cmdPrint('python -m SimpleHTTPServer 80 &')

print "*** Starting network"
net.build()
c1.start()
c2.start()
ap1.start( [c1] )
ap2.start( [c2] )

"""uncomment to plot graph"""
net.plotGraph(max_x=100, max_y=100)

"""association control"""
net.associationControl('ssf')

"""Seed"""
net.seed(20) 

"*** Available models: RandomWalk, TruncatedLevyWalk, RandomDirection, RandomWayPoint, GaussMarkov, ReferencePoint, TimeVariantCommunity ***"
net.startMobility(startTime=0, model='RandomDirection', max_x=100, max_y=100, min_v=0.5, max_v=0.8)

The issue I'm having is that once the station starts moving it often does not connect to any of the APs, even if they are in range. Another problem, but that's maybe not a real issue of the simulator, as the node moves around, I can't get it to always connect with the same interface to the same single AP. For example, as it moves, sta1-wlan0 can connect to ap1 or ap2, this way it would be tricky to always get connectivity between the station and the host through both paths (the good and the poor one).

Starting with a simple example, where the node sits in the overlapping area between the two APs, without moving, it works. As soon as I try to get it moving things get out of control. I would like to know if that's possible what can I do to have this scenario working.

Thanks in advance.

-- Leonardo

net.configureWifiNodes()

}Hello,

I just recently downloaded the latest version of mininet-wifi with few problems. I try to execute some of the example codes {wifiMesh, wifiMeshAP} but I receive the following error:

File "wifiMeshAP.py", line 47, in
topology()
File "wifiMeshAP.py", line 25, in topology
net.configureWifiNodes()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 973, in configureWifiNodes
self.configureWirelessLink()
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 954, in configureWirelessLink
self.configureMacAddr(node)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 934, in configureMacAddr
node.params['mac'][wlan] = node.getMAC(iface)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/node.py", line 523, in getMAC
debug('%s\n' % mac[0])
IndexError: list index out of range

When commenting out this function and running the code again I receive similar error but for a different function:

File "wifiMeshAP.py", line 47, in
topology()
File "wifiMeshAP.py", line 30, in topology
net.addMesh(ap1, ssid='mesh-ssid')
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/net.py", line 745, in addMesh
cls.configureMesh(node, wlan)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/link.py", line 1184, in configureMesh
self.getMacAddress(node, iface, wlan)
File "/usr/local/lib/python2.7/dist-packages/mininet-2.0r2-py2.7.egg/mininet/link.py", line 1213, in getMacAddress
sta.meshMac[wlan] = str(mac[0])
IndexError: list index out of range

This did not happen for the previous version of mininet-wifi installed. Please assist.

AttributeError: 'Mininet' object has no attribute 'addStation'

I successfully installed mininet wifi, and "sudo mn --wifi --ssid=new_ssid" command works perfectly for me. But when I want to run the examples, e.g."sudo python examples/2AccessPoints.py", I get the error below:

AttributeError: 'Mininet' object has no attribute 'addStation'

What is the problem?

A problem of node mobility!

Hi, Ramon
Nodes still can communication even if a node isn't in communication range of other nodes, when I ran examples adhoc.py and position.py. I don't know why and how to resolve.
image

Best Regards,
Xian

The issue of Same AP ssid

hi , when I set the ap's ssid same ,like this:
ap1 = net.addAccessPoint( 'ap1', ssid= 'ap-ssid', dpid='0000000100000001',mode= 'g', channel= '1', position='10,10,0', range='10' )
ap2 = net.addAccessPoint( 'ap2', ssid= 'ap-ssid', dpid='0000000100000002', mode= 'g', channel= '1', position='25,10,0', range='10' )
ap3 = net.addAccessPoint( 'ap3', ssid= 'ap-ssid', dpid='0000000100000003',mode= 'g', channel= '1', position='40,10,0', range='10' )
Except the attribute of dpid and position, others are same .

when a station moves among these three aps, it often failed to associate another ap , I don't know why
and Should I change some attribute values ?

Information pulling from CLI report

Hi,

I have a basic question about how to get information from mininet report on the Ubuntu CLI. I believe describing what I do will be helpful. I use python script to create nodes, start wifi-Direct on the nodes (sta1, sta2, sta3, sta4), declare one of the nodes as group owner (sta1), and then connect remaining nodes (except sta4) to the GO (Group Owner) via wifi-direct. Then, through sta4 I start wpa_cli using the line of "sta4 wpa_cli -ista-lan0" and I find other devices using "p2p_find 20", where 20 refers to time. I got the following output:
<3>P2P-DEVICE-FOUND 00:00:00:00:00:03 p2p_dev_addr=00:00:00:00:00:03 pri_dev_type=1-0050F204-1 name='sta3' config_methods=0x1108 dev_capab=0x27 group_capab=0x0 new=1
<3>P2P-DEVICE-FOUND 00:00:00:00:00:02 p2p_dev_addr=00:00:00:00:00:02 pri_dev_type=1-0050F204-1 name='sta2' config_methods=0x1108 dev_capab=0x27 group_capab=0x0 new=1
<3>P2P-DEVICE-FOUND 00:00:00:00:00:01 p2p_dev_addr=00:00:00:00:00:01 pri_dev_type=1-0050F204-1 name='sta1' config_methods=0x1108 dev_capab=0x25 group_capab=0x9 new=1
Here I would like to be able to select the GO among other devices. I noticed that there are couple of features that GO has different compared to the GM (Group Member), such as "dev_capab" "group_capab". Here my question is: how can I get group_capab=0x9 information using python?

Moving nodes

Hello Ramon . I have a doubt, I want to simulate software defined wireless mesh network using mininet-wifi. I see some examples where stations are moving and access points are fixed. In my project , I want to move my nodes which are simple openvswitch/access points. There will be no stations. Is it possible?
Then I want to use some routing protocol in the controller to optimize path.

Can I do that with mininet-wifi ?

Exception: Please shut down the controller which is running on port 6653:

This error message perplexed me for a while on a fresh install.. when running sudo mn
image

It turns out the problem was "resolved" by sudo cp /usr/bin/ovs-testcontroller /usr/bin/ovs-controller
Was this the appropriate strategy for addressing the issue?
Could the error message be updated to be more informative (at least to new newbies like me?)

p2p commands do not work

Hi, after I run the code I want the nodes (sta1 and sta2) to discover each other. In Ubunutu, I would do that using p2p_find command. However, this doesn't work in here. No matter what p2p command I use (p2p_find, p2p_group_add etc.) I always get "FAIL" response from the CLI (by the way, before using p2p commands I call "sta1 wpa_cli" command). Please help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.