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 send_fd(self, fd):
+ import passfd
+ import socket
+
+ address = self.simulation.invoke(self.uuid, "recvFD")
+ sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
+ sock.connect(address)
+ passfd.sendfd(sock, fd, '0')
+