From: Alina Quereilhac Date: Thu, 26 Jun 2014 14:21:32 +0000 (+0200) Subject: Adding stopTime attribute to ns-3 simulation X-Git-Tag: nepi-3.1.0~15 X-Git-Url: http://git.onelab.eu/?p=nepi.git;a=commitdiff_plain;h=12ba748a370b2c86045e5b2037ed46778b91459e Adding stopTime attribute to ns-3 simulation --- diff --git a/examples/linux/ns3/wifi_ping.py b/examples/linux/ns3/wifi_ping.py index f0be5485..47bc335b 100644 --- a/examples/linux/ns3/wifi_ping.py +++ b/examples/linux/ns3/wifi_ping.py @@ -126,7 +126,7 @@ ec.set(node, "hostname", "localhost") simu = ec.register_resource("LinuxNS3Simulation") ec.set(simu, "verbose", True) ec.set(simu, "enableDump", True) -ec.set (simu, "StopTime", "22s") +ec.set (simu, "stopTime", "22s") ec.register_connection(simu, node) x = 30 diff --git a/src/nepi/resources/linux/ns3/ns3simulation.py b/src/nepi/resources/linux/ns3/ns3simulation.py index 0f94c4cb..340660f0 100644 --- a/src/nepi/resources/linux/ns3/ns3simulation.py +++ b/src/nepi/resources/linux/ns3/ns3simulation.py @@ -108,6 +108,10 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation): type = Types.Bool, flags = Flags.Design) + stoptime = Attribute("stopTime", + "Time at which the simulation will stop", + flags = Flags.Design) + cls._register_attribute(impl_type) cls._register_attribute(sched_type) cls._register_attribute(check_sum) @@ -118,6 +122,7 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation): cls._register_attribute(ns3_version) cls._register_attribute(pybindgen_version) cls._register_attribute(populate_routing_tables) + cls._register_attribute(stoptime) def __init__(self, ec, guid): LinuxApplication.__init__(self, ec, guid) @@ -287,10 +292,8 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation): self._client.start() - """ - # XXX: IS THIS REALLY NEEDED?? + # XXX: IS THIS REALLY NEEDED??!!! # Wait until the Simulation is actually started... - is_running = False for i in xrange(1000): is_running = self.invoke(SIMULATOR_UUID, "isRunning") @@ -304,7 +307,6 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation): msg = " Simulation did not start" self.error(msg) raise RuntimeError - """ self.set_started() else: @@ -317,7 +319,11 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation): """ if self.state == ResourceState.STARTED: - self._client.stop() + time = None + if self.get("stopTime"): + time = self.get("stopTime") + + self._client.stop(time=time) self.set_stopped() def do_release(self):