X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fns3%2Fns3fdnetdevice.py;h=8ba29dfba0a0fb516af9a7588c6d1156daa1edc1;hb=6285ca51026efb69642eea9dfc7c480e722d84a9;hp=3e42d23ca09f2574327da546f64ae8fd88f444d3;hpb=5070e9681cddf7543189639d5fb4fcd76f7396e2;p=nepi.git diff --git a/src/nepi/resources/ns3/ns3fdnetdevice.py b/src/nepi/resources/ns3/ns3fdnetdevice.py index 3e42d23c..8ba29dfb 100644 --- a/src/nepi/resources/ns3/ns3fdnetdevice.py +++ b/src/nepi/resources/ns3/ns3fdnetdevice.py @@ -3,9 +3,8 @@ # Copyright (C) 2014 INRIA # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -26,7 +25,7 @@ class NS3BaseFdNetDevice(NS3BaseNetDevice): @property def _rms_to_wait(self): - rms = set([self.node, self.node.ipv4]) + rms = set([self.node]) return rms def _configure_mac_address(self): @@ -39,4 +38,21 @@ class NS3BaseFdNetDevice(NS3BaseNetDevice): if node and node.uuid not in self.connected: self.simulation.invoke(node.uuid, "AddDevice", self.uuid) self._connected.add(node.uuid) + + def _instantiate_object(self): + """ just validate that the simulator is in real time + mode, otherwise it is not going to work + """ + + mode = self.simulation.get("simulatorImplementationType") + if mode != "ns3::RealtimeSimulatorImpl": + msg = "The simulation must run in real time!!" + self.error(msg) + raise RuntimeError(msg) + super(NS3BaseFdNetDevice, self)._instantiate_object() + + def recv_fd(self): + address = self.simulation.invoke(self.uuid, "recvFD") + return address +