X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Ftestbeds%2Fns3%2Ffactories_metadata.py;h=328e98065f95f1b390a18bd6e2c203c75f0785c6;hb=79d110bb0393adc9c36af59ac1e8334b467a38bf;hp=c2814fc2a2c198e722e501067b47f577d2503c1b;hpb=b15fb26eea07301383b228dcfebf04bb1ba33b43;p=nepi.git 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"],