1. Mobility Models¶
Mininet-WiFi supports the following mobility models:
RandomWalk
TruncatedLevyWalk
RandomDirection
RandomWayPoint
GaussMarkov
ReferencePoint
TimeVariantCommunity
1.1. How to configure 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)
Note
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:
1.2. Random Walk¶
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20, constantDistance=1, constantVelocity=1 )
Note
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
1.3. Random Direction¶
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20, min_v=1, max_v=2 )
Note
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
1.4. Random Way Point¶
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 )
Note
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
1.5. Gaus Markov¶
sta1 = net.addStation( ..., min_x=10, max_x=20, min_y=10, max_y=20 )
Note
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
1.6. Custom Mobility¶
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.
1.7. Handover association mechanisms¶
Two mechanisms can be considered:
Least Loaded First (llf)
Strongest Signal First (ssf)
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')