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) +