Linux/Ns-3/Dce cross experiments
[nepi.git] / src / nepi / resources / ns3 / ns3fdnetdevice.py
index 3e42d23..02c11c6 100644 (file)
@@ -26,7 +26,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 +39,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
+