Source code for nepi.resources.ns3.classes.subscriber_station_net_device

#
#    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 <http://www.gnu.org/licenses/>.
#

from nepi.execution.attribute import Attribute, Flags, Types
from nepi.execution.trace import Trace, TraceAttr
from nepi.execution.resource import ResourceManager, clsinit_copy, \
        ResourceState
from nepi.resources.ns3.ns3netdevice import NS3BaseNetDevice 

@clsinit_copy
[docs]class NS3SubscriberStationNetDevice(NS3BaseNetDevice): _rtype = "ns3::SubscriberStationNetDevice" @classmethod def _register_attributes(cls): attr_lostdlmapinterval = Attribute("LostDlMapInterval", "Time since last received DL-MAP message before downlink synchronization is considered lost. Maximum is 600ms", type = Types.String, default = "+500000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_lostdlmapinterval) attr_lostulmapinterval = Attribute("LostUlMapInterval", "Time since last received UL-MAP before uplink synchronization is considered lost, maximum is 600.", type = Types.String, default = "+500000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_lostulmapinterval) attr_maxdcdinterval = Attribute("MaxDcdInterval", "Maximum time between transmission of DCD messages. Maximum is 10s", type = Types.String, default = "+10000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxdcdinterval) attr_maxucdinterval = Attribute("MaxUcdInterval", "Maximum time between transmission of UCD messages. Maximum is 10s", type = Types.String, default = "+10000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxucdinterval) attr_intervalt1 = Attribute("IntervalT1", "Wait for DCD timeout. Maximum is 5*maxDcdInterval", type = Types.String, default = "+50000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt1) attr_intervalt2 = Attribute("IntervalT2", "Wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity. Maximum is 5*Ranging interval", type = Types.String, default = "+10000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt2) attr_intervalt3 = Attribute("IntervalT3", "ranging Response reception timeout following the transmission of a ranging request. Maximum is 200ms", type = Types.String, default = "+200000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt3) attr_intervalt7 = Attribute("IntervalT7", "wait for DSA/DSC/DSD Response timeout. Maximum is 1s", type = Types.String, default = "+100000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt7) attr_intervalt12 = Attribute("IntervalT12", "Wait for UCD descriptor.Maximum is 5*MaxUcdInterval", type = Types.String, default = "+10000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt12) attr_intervalt20 = Attribute("IntervalT20", "Time the SS searches for preambles on a given channel. Minimum is 2 MAC frames", type = Types.String, default = "+500000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt20) attr_intervalt21 = Attribute("IntervalT21", "time the SS searches for (decodable) DL-MAP on a given channel", type = Types.String, default = "+10000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_intervalt21) attr_maxcontentionrangingretries = Attribute("MaxContentionRangingRetries", "Number of retries on contention Ranging Requests", type = Types.Integer, default = "16", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxcontentionrangingretries) attr_mtu = Attribute("Mtu", "The MAC-level Maximum Transmission Unit", type = Types.Integer, default = "1400", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_mtu) attr_rtg = Attribute("RTG", "receive/transmit transition gap.", type = Types.Integer, default = "0", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_rtg) attr_ttg = Attribute("TTG", "transmit/receive transition gap.", type = Types.Integer, default = "0", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_ttg) @classmethod def _register_traces(cls): sstxdrop = Trace("SSTxDrop", "A packet has been dropped in the MAC layer before being queued for transmission.") cls._register_trace(sstxdrop) sspromiscrx = Trace("SSPromiscRx", "A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a promiscuous trace,") cls._register_trace(sspromiscrx) ssrx = Trace("SSRx", "A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a non-promiscuous trace,") cls._register_trace(ssrx) ssrxdrop = Trace("SSRxDrop", "A packet has been dropped in the MAC layer after it has been passed up from the physical layer.") cls._register_trace(ssrxdrop) rx = Trace("Rx", "Receive trace") cls._register_trace(rx) tx = Trace("Tx", "Transmit trace") cls._register_trace(tx) def __init__(self, ec, guid): super(NS3SubscriberStationNetDevice, self).__init__(ec, guid) self._home = "ns3-subscriber-station-net-device-%s" % self.guid