X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nepi%2Fresources%2Fns3%2Fns3errorratemodel.py;fp=nepi%2Fresources%2Fns3%2Fns3errorratemodel.py;h=c7182d0d0cf51bc38415ebdada52f8c4ed358163;hb=941fd7f54114b824fa26563d389a7ae07426fe14;hp=0000000000000000000000000000000000000000;hpb=7bdd35bc0d846e6ae89bdc8aaa2e919bbac25096;p=nepi.git
diff --git a/nepi/resources/ns3/ns3errorratemodel.py b/nepi/resources/ns3/ns3errorratemodel.py
new file mode 100644
index 00000000..c7182d0d
--- /dev/null
+++ b/nepi/resources/ns3/ns3errorratemodel.py
@@ -0,0 +1,53 @@
+#
+# NEPI, a framework to manage network experiments
+# Copyright (C) 2014 INRIA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation;
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+# Author: Alina Quereilhac
+
+from nepi.execution.resource import clsinit_copy
+from nepi.resources.ns3.ns3base import NS3Base
+
+@clsinit_copy
+class NS3BaseErrorRateModel(NS3Base):
+ _rtype = "abstract::ns3::ErrorRateModel"
+
+ @property
+ def node(self):
+ return self.phy.node
+
+ @property
+ def phy(self):
+ from nepi.resources.ns3.ns3wifiphy import NS3BaseWifiPhy
+ phys = self.get_connected(NS3BaseWifiPhy.get_rtype())
+
+ if not phys:
+ msg = "ErrorRateModel not connected to phy"
+ self.error(msg)
+ raise RuntimeError(msg)
+
+ return phys[0]
+
+ @property
+ def _rms_to_wait(self):
+ rms = set()
+ rms.add(self.phy)
+ return rms
+
+ def _connect_object(self):
+ phy = self.phy
+ if phy.uuid not in self.connected:
+ self.simulation.invoke(phy.uuid, "SetErrorRateModel", self.uuid)
+ self._connected.add(phy.uuid)
+