From 12ba748a370b2c86045e5b2037ed46778b91459e Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Thu, 26 Jun 2014 16:21:32 +0200 Subject: [PATCH] Adding stopTime attribute to ns-3 simulation --- examples/linux/ns3/wifi_ping.py | 2 +- src/nepi/resources/linux/ns3/ns3simulation.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) 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): -- 2.43.0