From 79d110bb0393adc9c36af59ac1e8334b467a38bf Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Thu, 30 Aug 2012 18:22:56 +0200 Subject: [PATCH] Continued: ns3::MatrixPropagationDelayModel --- examples/ns3_wifi_hidden_terminal.py | 4 -- src/nepi/testbeds/ns3/factories_metadata.py | 41 ++++++++++----------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/examples/ns3_wifi_hidden_terminal.py b/examples/ns3_wifi_hidden_terminal.py index bcd07e08..161c3e75 100644 --- a/examples/ns3_wifi_hidden_terminal.py +++ b/examples/ns3_wifi_hidden_terminal.py @@ -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")) diff --git a/src/nepi/testbeds/ns3/factories_metadata.py b/src/nepi/testbeds/ns3/factories_metadata.py index c2814fc2..328e9806 100644 --- a/src/nepi/testbeds/ns3/factories_metadata.py +++ b/src/nepi/testbeds/ns3/factories_metadata.py @@ -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"], -- 2.43.0