class Roads09Example(object):
def __init__(self):
self.root_dir = tempfile.mkdtemp()
- print self.root_dir
def add_ns3_node(self, ns3_desc):
node = ns3_desc.create("ns3::Node")
ns3_provider = FactoriesProvider(testbed_id, testbed_version)
ns3_desc = exp_desc.add_testbed_description(ns3_provider)
ns3_desc.set_attribute_value("homeDirectory", self.root_dir)
+ ns3_desc.set_attribute_value("StopTime", "8.1s")
node1 = self.add_ns3_node(ns3_desc)
node2 = self.add_ns3_node(ns3_desc)
udp_server = ns3_desc.create("ns3::UdpServer")
udp_server.set_attribute_value("Port", 100)
- udp_server.set_attribute_value("StartTime", "1s")
+ udp_server.set_attribute_value("StartTime", "6s")
udp_server.set_attribute_value("StopTime", "8s")
udp_server.connector("node").connect(node1.connector("apps"))
udp_client.set_attribute_value("MaxPackets", 1200)
udp_client.set_attribute_value("Interval", "0.5s")
udp_client.set_attribute_value("PacketSize", 1024)
- udp_client.set_attribute_value("StartTime", "1s")
+ udp_client.set_attribute_value("StartTime", "6s")
udp_client.set_attribute_value("StopTime", "8s")
udp_client.connector("node").connect(node2.connector("apps"))
controller.shutdown()
def clean(self):
- shutil.rmtree(self.root_dir)
+ #shutil.rmtree(self.root_dir)
+ pass
if __name__ == '__main__':
example = Roads09Example()
from nepi.util import validation
testbed_attributes = dict({
- "simu_impl_type": dict({
+ "simu_impl_type": dict({
"name": "SimulatorImplementationType",
"help": "The object class to use as the simulator implementation",
"type": Attribute.STRING,
"flags": Attribute.DesignOnly,
"validation_function": validation.is_string
}),
- "checksum": dict({
+ "checksum": dict({
"name": "ChecksumEnabled",
"help": "A global switch to enable all checksums for all protocols",
"type": Attribute.BOOL,
"flags": Attribute.DesignOnly,
"validation_function": validation.is_bool
}),
+ "simu_stop": dict({
+ "name": "StopTime",
+ "validation_function": validation.is_time,
+ "value": None,
+ "type": Attribute.STRING,
+ "help": "Stop time for the simulation"
+ }),
})
attributes = dict({
simu_impl_type = self._attributes.get_attribute_value(
"SimulatorImplementationType")
checksum = self._attributes.get_attribute_value("ChecksumEnabled")
+ stop_time = self._attributes.get_attribute_value("StopTime")
bindings = os.environ["NEPI_NS3BINDINGS"] \
if "NEPI_NS3BINDINGS" in os.environ else None
if checksum:
value = mod.BooleanValue(checksum)
mod.GlobalValue.Bind ("ChecksumEnabled", value)
+ if stop_time:
+ value = mod.Time(stop_time)
+ mod.Simulator.Stop (value)
return mod
def _get_construct_parameters(self, guid):
testbed_instance.follow_trace(guid, trace_id, filename)
filepath = testbed_instance.trace_filename(guid, trace_id)
helper = testbed_instance.ns3.WimaxHelper()
- asciiHelper = testbed_instance.ns3.AsciiTraceHelper()
stream = asciiHelper.CreateFileStream (filepath)
helper.EnableAscii(stream, element)
start_value = parameters["StartTime"]
start_time = testbed_instance.ns3.Time(start_value)
if now.Compare(start_time) < 0:
- return STATUS_NOT_RUNNING
+ return STATUS_NOT_STARTED
if "StopTime" in parameters and parameters["StopTime"]:
stop_value = parameters["StopTime"]
stop_time = testbed_instance.ns3.Time(stop_value)