Emulation Platform for Software-Defined Wireless Networks
Main Page Get Started Part 1: Mininet-WiFi Usage Part 2: Advanced Options Part 3: Mininet-WiFi Commands Containernet Manet Routing Protocols Mobility Propagation Models SixLoWPAN IEEE 802.11p mac80211_hwsim P4 SUMO Publications Use Case Catalogue Video Demos FAQ The Mininet-WiFi Book
Mininet-WiFi supports the following mobility models:
The mobility models can be configured with net.setMobilityModel()
. For example:
net.setMobilityModel(time=0, model='RandomDirection',
max_x=100, max_y=100, seed=20)
time: time (in seconds) in which the mobility is started
model: mobility model
max_x: maximum x value
min_x: minimum x value
seed: defines a starting value for a pseudo random sequence
In addition, you may want to consider some parameters that be can be used when you add some node:
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20, constantDistance=1, constantVelocity=1 )
min_x = Minimum X position # default=0
max_x = Maximum X position # default=100
min_y = Minimum Y position # default=0
max_y = Maximum Y position # default=100
constantDistance = the value for the constant distance traveled in each step. Default is 1.0.
constantVelocity = the value for the constant node velocity. Default is 1.0
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20, min_v=1, max_v=2 )
min_x = Minimum X position # default=0
max_x = Maximum X position # default=100
min_y = Minimum Y position # default=0
max_y = Maximum Y position # default=100
min_v = Minimum value for node velocity
max_v = Maximum value for node velocity
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20, min_v=1, max_v=2, min_wt=0, max_wt=100 )
min_x = Minimum X position # default=0
max_x = Maximum X position # default=100
min_y = Minimum Y position # default=0
max_y = Maximum Y position # default=100
min_v = Minimum value for node velocity # default=5
max_v = Maximum value for node velocity # default=5
min_wt = Minimum wait time # default=0
max_wt = Maximum wait time # default=100
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20 )
min_x = Minimum X position # default=0
max_x = Maximum X position # default=100
min_y = Minimum Y position # default=0
max_y = Maximum Y position # default=100
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20 )
min_x = Minimum X position # default=0
max_x = Maximum X position # default=100
min_y = Minimum Y position # default=0
max_y = Maximum Y position # default=100
net.setMobilityModel(time=0, model='ReferencePoint', n_groups=2,
max_x=100, max_y=100, seed=20)
You can also define custom mobility. To do so, you may want to refer to examples/mobility.py
and examples/replaying/replayingMobility.py
for more information.
Two mechanisms can be considered:
You can use them when the mobility is started. For example:
net.startMobility(time=0, ac_method='ssf')
...
...
net.stopMobility(time=10)
or
net.setMobilityModel(... ac_method='ssf')
However, if you want to work with a seamless handover you may want to refer to bgscan (see examples/handover_bgscan.py
)
In scenarios where there is no mobility you can enable ac_method
within Mininet_wifi()
. For example:
Mininet_wifi(... ac_method='ssf')