Continued: ns3::MatrixPropagationDelayModel
authorAlina Quereilhac <alina.quereilhac@inria.fr>
Thu, 30 Aug 2012 16:22:56 +0000 (18:22 +0200)
committerAlina Quereilhac <alina.quereilhac@inria.fr>
Thu, 30 Aug 2012 16:22:56 +0000 (18:22 +0200)
examples/ns3_wifi_hidden_terminal.py
src/nepi/testbeds/ns3/factories_metadata.py

index bcd07e0..161c3e7 100644 (file)
@@ -49,7 +49,6 @@ 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"))
-    # Without the error model it doesn'y work!!
     error = ns3_desc.create("ns3::NistErrorRateModel")
     phy.connector("err").connect(error.connector("phy"))
  
@@ -93,9 +92,6 @@ 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"))
-# 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"))
 
index c2814fc..328e980 100644 (file)
@@ -338,6 +338,24 @@ def create_ipcs_classifier_record(testbed_instance, guid):
         dst_port_high, l4_protocols[protocol], priority)
     testbed_instance._elements[guid] = element
 
+def create_matrix_propagation(testbed_instance, guid):
+    create_element(testbed_instance, guid)
+    element = testbed_instance._elements[guid]
+    mp_guids = testbed_instance.get_connected(guid, "mobpair", "matrix")
+    for mpg in mp_guids:
+        mas = testbed_instance.get_connected(mpg, "ma", "mp")
+        if len(mas) != 1:
+            raise RuntimeError("Wrong number of source mobility models for MobilityPair %d" % guid)
+        mbs = testbed_instance.get_connected(mpg, "mb", "mp")
+        if len(mbs) != 1:
+            raise RuntimeError("Wrong number of destination mobility models for MobilityPair %d" % guid)
+        parameters = testbed_instance._get_parameters(mpg)
+        loss = parameters.get("Loss")
+        symmetric = parameters.get("Symmetric")
+        mas_elem = testbed_instance._elements[mas[0]]
+        mbs_elem = testbed_instance._elements[mbs[0]]
+        element.SetLoss(mas_elem, mbs_elem, loss, symmetric)
+
 ### Start/Stop functions ###
 
 def start_application(testbed_instance, guid):
@@ -510,25 +528,6 @@ def configure_station(testbed_instance, guid):
     element = testbed_instance._elements[guid]
     element.Start()
 
-def configure_matrix_propagation(testbed_instance, guid):
-    create_element(testbed_instance, guid)
-    element = testbed_instance._elements[guid]
-    mp_guids = testbed_instance.get_connected(guid, "mobpair", "matrix")
-    for mpg in mp_guids:
-        mas = testbed_instance.get_connected(mpg, "ma", "mp")
-        if len(mas) != 1:
-            raise RuntimeError("Wrong number of source mobility models for MobilityPair %d" % guid)
-        mbs = testbed_instance.get_connected(mpg, "mb", "mp")
-        if len(mbs) != 1:
-            raise RuntimeError("Wrong number of destination mobility models for MobilityPair %d" % guid)
-        parameters = testbed_instance._get_parameters(mpg)
-        loss = parameters.get("Loss")
-        symmetric = parameters.get("Symmetric")
-        mas_elem = testbed_instance._elements[mas[0]]
-        mbs_elem = testbed_instance._elements[mbs[0]]
-        element.SetLoss(mas_elem, mbs_elem, loss, symmetric)    
-
-
 ###  Factories  ###
 
 factories_create_order = ["ns3::BasicEnergySource",
@@ -1702,8 +1701,8 @@ factories_info = dict({
     }),
      "ns3::MatrixPropagationLossModel": dict({
         "category": FC.CATEGORY_LOSS_MODELS,
-        "create_function": create_element,
-        "configure_function": configure_matrix_propagation,
+        "create_function": create_matrix_propagation,
+        "configure_function": configure_element,
         "help": "",
         "connector_types": ["mobpair", "chan"],
         "box_attributes": ["DefaultLoss"],