intrig-unicamp / mininet-wifi

Emulator for Software-Defined Wireless Networks
https://mn-wifi.readthedocs.io/
Other
441 stars 240 forks source link

Station reassociation without mobility #231

Closed awlane closed 2 years ago

awlane commented 5 years ago

I've recently encountered a need to test station reassociation in my work. However, (using a lighly modified version of the current master) attempts to call the associateTo method of station objects produces a traceback ultimately leading back to here:


i/node.py", line 511, in associateTo
    self.setAssociation(ap, intf)
  File "/usr/local/lib/python2.7/dist-packages/mininet_wifi-2.3-py2.7.egg/mn_wif
i/node.py", line 542, in setAssociation
    self.configLinks()
  File "/usr/local/lib/python2.7/dist-packages/mininet_wifi-2.3-py2.7.egg/mn_wif
i/node.py", line 238, in configLinks
    mobility.configLinks(self)
  File "/usr/local/lib/python2.7/dist-packages/mininet_wifi-2.3-py2.7.egg/mn_wif
i/mobility.py", line 394, in configLinks
    cls.configureLinks(nodes)
  File "/usr/local/lib/python2.7/dist-packages/mininet_wifi-2.3-py2.7.egg/mn_wif
i/mobility.py", line 426, in configureLinks
    cls.check_association(node, wlan, ap_wlan=ap_wlan)
  File "/usr/local/lib/python2.7/dist-packages/mininet_wifi-2.3-py2.7.egg/mn_wif
i/mobility.py", line 208, in check_association
    dist = sta.get_distance_to(ap)
  File "/usr/local/lib/python2.7/dist-packages/mininet_wifi-2.3-py2.7.egg/mn_wif
i/node.py", line 502, in get_distance_to
    pos_src = self.params['position']
KeyError: 'position'```
This seems to indicate that reassociation is only intended for use with mobility, as there is no checking code to validate whether stations will even have positions before the code is executed. If this is intended behavior or it's a bug on our end, I have no further questions and will mitigate accordingly. If not, it would be helpful to know how to handle this situation.
ramonfontes commented 5 years ago

Fixed with https://github.com/intrig-unicamp/mininet-wifi/commit/b640b1a9adbaf7f2be141bccbe1470da14e4ef81