git://git.onelab.eu
/
nepi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2c3ad8d
)
Bugfixing for ns3::MatrixPropagationLossModel ...
author
Alina Quereilhac
<alina.quereilhac@inria.fr>
Thu, 30 Aug 2012 13:54:56 +0000
(15:54 +0200)
committer
Alina Quereilhac
<alina.quereilhac@inria.fr>
Thu, 30 Aug 2012 13:54:56 +0000
(15:54 +0200)
examples/ns3_wifi_hidden_terminal.py
patch
|
blob
|
history
src/nepi/testbeds/ns3/execute.py
patch
|
blob
|
history
src/nepi/testbeds/ns3/factories_metadata.py
patch
|
blob
|
history
src/nepi/testbeds/ns3/ns3_bindings_import.py
patch
|
blob
|
history
diff --git
a/examples/ns3_wifi_hidden_terminal.py
b/examples/ns3_wifi_hidden_terminal.py
index
f2916ed
..
bcd07e0
100644
(file)
--- a/
examples/ns3_wifi_hidden_terminal.py
+++ b/
examples/ns3_wifi_hidden_terminal.py
@@
-49,7
+49,10
@@
def create_wifi_device(ns3_desc, node, channel):
phy.set_attribute_value("Standard", "WIFI_PHY_STANDARD_80211b")
dev.connector("phy").connect(phy.connector("dev"))
channel.connector("phys").connect(phy.connector("chan"))
phy.set_attribute_value("Standard", "WIFI_PHY_STANDARD_80211b")
dev.connector("phy").connect(phy.connector("dev"))
channel.connector("phys").connect(phy.connector("chan"))
-
+ # Without the error model it doesn'y work!!
+ error = ns3_desc.create("ns3::NistErrorRateModel")
+ phy.connector("err").connect(error.connector("phy"))
+
return dev
root_dir = tempfile.mkdtemp()
return dev
root_dir = tempfile.mkdtemp()
@@
-60,6
+63,9
@@
testbed_id = "ns3"
ns3_provider = FactoriesProvider(testbed_id)
ns3_desc = exp_desc.add_testbed_description(ns3_provider)
ns3_desc.set_attribute_value("homeDirectory", root_dir)
ns3_provider = FactoriesProvider(testbed_id)
ns3_desc = exp_desc.add_testbed_description(ns3_provider)
ns3_desc.set_attribute_value("homeDirectory", root_dir)
+#ns3_desc.set_attribute_value("SimulatorImplementationType", "ns3::RealtimeSimulatorImpl")
+#ns3_desc.set_attribute_value("ChecksumEnabled", True)
+
# 0. Enable or disable CTS/RTS
# ??
# 0. Enable or disable CTS/RTS
# ??
@@
-87,10
+93,14
@@
mp2.connector("mb").connect(mob2.connector("mp"))
# 4. Create & setup wifi channel
channel = ns3_desc.create("ns3::YansWifiChannel")
channel.connector("loss").connect(matrix.connector("chan"))
# 4. Create & setup wifi channel
channel = ns3_desc.create("ns3::YansWifiChannel")
channel.connector("loss").connect(matrix.connector("chan"))
+# DEBUG: Works with ns3::LogDistancePropagationLossModel but now with ns3::MatrixPropagationLossModel
+# loss = ns3_desc.create("ns3::LogDistancePropagationLossModel")
+# channel.connector("loss").connect(loss.connector("prev"))
delay = ns3_desc.create("ns3::ConstantSpeedPropagationDelayModel")
channel.connector("delay").connect(delay.connector("chan"))
# 5. Install wireless devices
delay = ns3_desc.create("ns3::ConstantSpeedPropagationDelayModel")
channel.connector("delay").connect(delay.connector("chan"))
# 5. Install wireless devices
+
dev1 = create_wifi_device(ns3_desc, node1, channel)
ip1 = dev1.add_address()
ip1.set_attribute_value("Address", "10.0.0.1")
dev1 = create_wifi_device(ns3_desc, node1, channel)
ip1 = dev1.add_address()
ip1.set_attribute_value("Address", "10.0.0.1")
@@
-119,5
+129,8
@@
xml = exp_desc.to_xml()
controller = ExperimentController(xml, root_dir)
controller.start()
controller = ExperimentController(xml, root_dir)
controller.start()
+while not controller.is_finished(app.guid):
+ time.sleep(0.5)
+
controller.stop()
controller.shutdown()
controller.stop()
controller.shutdown()
diff --git
a/src/nepi/testbeds/ns3/execute.py
b/src/nepi/testbeds/ns3/execute.py
index
5777f83
..
7de7bde
100644
(file)
--- a/
src/nepi/testbeds/ns3/execute.py
+++ b/
src/nepi/testbeds/ns3/execute.py
@@
-57,7
+57,9
@@
class TestbedController(testbed_impl.TestbedController):
LOCAL_FACTORIES = {
'ns3::Nepi::TunChannel' : TunChannel,
}
LOCAL_FACTORIES = {
'ns3::Nepi::TunChannel' : TunChannel,
}
-
+
+ DUMMY_FACTORIES = ['ns3::Nepi::MobilityPair']
+
LOCAL_TYPES = tuple(LOCAL_FACTORIES.values())
def __init__(self):
LOCAL_TYPES = tuple(LOCAL_FACTORIES.values())
def __init__(self):
@@
-102,8
+104,12
@@
class TestbedController(testbed_impl.TestbedController):
def set(self, guid, name, value, time = TIME_NOW):
super(TestbedController, self).set(guid, name, value, time)
def set(self, guid, name, value, time = TIME_NOW):
super(TestbedController, self).set(guid, name, value, time)
+
# TODO: take on account schedule time for the task
factory_id = self._create[guid]
# TODO: take on account schedule time for the task
factory_id = self._create[guid]
+ if factory_id in self.DUMMY_FACTORIES:
+ return
+
factory = self._factories[factory_id]
element = self._elements[guid]
if factory_id in self.LOCAL_FACTORIES:
factory = self._factories[factory_id]
element = self._elements[guid]
if factory_id in self.LOCAL_FACTORIES:
@@
-128,8
+134,12
@@
class TestbedController(testbed_impl.TestbedController):
def get(self, guid, name, time = TIME_NOW):
value = super(TestbedController, self).get(guid, name, time)
def get(self, guid, name, time = TIME_NOW):
value = super(TestbedController, self).get(guid, name, time)
+
# TODO: take on account schedule time for the task
factory_id = self._create[guid]
# TODO: take on account schedule time for the task
factory_id = self._create[guid]
+ if factory_id in self.DUMMY_FACTORIES:
+ return
+
factory = self._factories[factory_id]
element = self._elements[guid]
if factory_id in self.LOCAL_FACTORIES:
factory = self._factories[factory_id]
element = self._elements[guid]
if factory_id in self.LOCAL_FACTORIES:
diff --git
a/src/nepi/testbeds/ns3/factories_metadata.py
b/src/nepi/testbeds/ns3/factories_metadata.py
index
c29ef06
..
c2814fc
100644
(file)
--- a/
src/nepi/testbeds/ns3/factories_metadata.py
+++ b/
src/nepi/testbeds/ns3/factories_metadata.py
@@
-515,7
+515,6
@@
def configure_matrix_propagation(testbed_instance, guid):
element = testbed_instance._elements[guid]
mp_guids = testbed_instance.get_connected(guid, "mobpair", "matrix")
for mpg in mp_guids:
element = testbed_instance._elements[guid]
mp_guids = testbed_instance.get_connected(guid, "mobpair", "matrix")
for mpg in mp_guids:
- mp = testbed_instance._elements[mpg]
mas = testbed_instance.get_connected(mpg, "ma", "mp")
if len(mas) != 1:
raise RuntimeError("Wrong number of source mobility models for MobilityPair %d" % guid)
mas = testbed_instance.get_connected(mpg, "ma", "mp")
if len(mas) != 1:
raise RuntimeError("Wrong number of source mobility models for MobilityPair %d" % guid)
@@
-525,7
+524,9
@@
def configure_matrix_propagation(testbed_instance, guid):
parameters = testbed_instance._get_parameters(mpg)
loss = parameters.get("Loss")
symmetric = parameters.get("Symmetric")
parameters = testbed_instance._get_parameters(mpg)
loss = parameters.get("Loss")
symmetric = parameters.get("Symmetric")
- element.SetLoss(mas[0].element, mbs[0].element, loss, symemtric)
+ mas_elem = testbed_instance._elements[mas[0]]
+ mbs_elem = testbed_instance._elements[mbs[0]]
+ element.SetLoss(mas_elem, mbs_elem, loss, symmetric)
### Factories ###
### Factories ###
diff --git
a/src/nepi/testbeds/ns3/ns3_bindings_import.py
b/src/nepi/testbeds/ns3/ns3_bindings_import.py
index
3b154e4
..
8214a45
100644
(file)
--- a/
src/nepi/testbeds/ns3/ns3_bindings_import.py
+++ b/
src/nepi/testbeds/ns3/ns3_bindings_import.py
@@
-16,7
+16,7
@@
from ns.dsdv import *
#from ns.click import *
from ns.mobility import *
from ns.wifi import *
#from ns.click import *
from ns.mobility import *
from ns.wifi import *
-from ns.netanim import *
+
#
from ns.netanim import *
from ns.stats import *
from ns.uan import *
from ns.spectrum import *
from ns.stats import *
from ns.uan import *
from ns.spectrum import *