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

#
#    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.ns3base import NS3Base

@clsinit_copy
[docs]class NS3dsrDsrRouting(NS3Base): _rtype = "ns3::dsr::DsrRouting" @classmethod def _register_attributes(cls): attr_maxsendbufflen = Attribute("MaxSendBuffLen", "Maximum number of packets that can be stored in send buffer.", type = Types.Integer, default = "64", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxsendbufflen) attr_maxsendbufftime = Attribute("MaxSendBuffTime", "Maximum time packets can be queued in the send buffer .", type = Types.String, default = "+30000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxsendbufftime) attr_maxmaintlen = Attribute("MaxMaintLen", "Maximum number of packets that can be stored in maintenance buffer.", type = Types.Integer, default = "50", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxmaintlen) attr_maxmainttime = Attribute("MaxMaintTime", "Maximum time packets can be queued in maintenance buffer.", type = Types.String, default = "+30000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxmainttime) attr_maxcachelen = Attribute("MaxCacheLen", "Maximum number of route entries that can be stored in route cache.", type = Types.Integer, default = "64", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxcachelen) attr_routecachetimeout = Attribute("RouteCacheTimeout", "Maximum time the route cache can be queued in route cache.", type = Types.String, default = "+300000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_routecachetimeout) attr_maxentrieseachdst = Attribute("MaxEntriesEachDst", "Maximum number of route entries for a single destination to respond.", type = Types.Integer, default = "20", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxentrieseachdst) attr_sendbuffinterval = Attribute("SendBuffInterval", "How often to check send buffer for packet with route.", type = Types.String, default = "+500000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_sendbuffinterval) attr_nodetraversaltime = Attribute("NodeTraversalTime", "The time it takes to traverse two neighboring nodes.", type = Types.String, default = "+40000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_nodetraversaltime) attr_rreqretries = Attribute("RreqRetries", "Maximum number of retransmissions for request discovery of a route.", type = Types.Integer, default = "16", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_rreqretries) attr_maintenanceretries = Attribute("MaintenanceRetries", "Maximum number of retransmissions for data packets from maintenance buffer.", type = Types.Integer, default = "2", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maintenanceretries) attr_requesttablesize = Attribute("RequestTableSize", "Maximum number of request entries in the request table, set this as the number of nodes in the simulation.", type = Types.Integer, default = "64", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_requesttablesize) attr_requestidsize = Attribute("RequestIdSize", "Maximum number of request source Ids in the request table.", type = Types.Integer, default = "16", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_requestidsize) attr_uniquerequestidsize = Attribute("UniqueRequestIdSize", "Maximum number of request Ids in the request table for a single destination.", type = Types.Integer, default = "256", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_uniquerequestidsize) attr_nonproprequesttimeout = Attribute("NonPropRequestTimeout", "The timeout value for non-propagation request.", type = Types.String, default = "+30000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_nonproprequesttimeout) attr_discoveryhoplimit = Attribute("DiscoveryHopLimit", "The max discovery hop limit for route requests.", type = Types.Integer, default = "255", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_discoveryhoplimit) attr_maxsalvagecount = Attribute("MaxSalvageCount", "The max salvage count for a single data packet.", type = Types.Integer, default = "15", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxsalvagecount) attr_blacklisttimeout = Attribute("BlacklistTimeout", "The time for a neighbor to stay in blacklist.", type = Types.String, default = "+3000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_blacklisttimeout) attr_gratreplyholdoff = Attribute("GratReplyHoldoff", "The time for gratuitous reply entry to expire.", type = Types.String, default = "+1000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_gratreplyholdoff) attr_broadcastjitter = Attribute("BroadcastJitter", "The jitter time to avoid collision for broadcast packets.", type = Types.Integer, default = "10", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_broadcastjitter) attr_linkacktimeout = Attribute("LinkAckTimeout", "The time a packet in maintenance buffer wait for link acknowledgment.", type = Types.String, default = "+100000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_linkacktimeout) attr_trylinkacks = Attribute("TryLinkAcks", "The number of link acknowledgment to use.", type = Types.Integer, default = "1", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_trylinkacks) attr_passiveacktimeout = Attribute("PassiveAckTimeout", "The time a packet in maintenance buffer wait for passive acknowledgment.", type = Types.String, default = "+100000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_passiveacktimeout) attr_trypassiveacks = Attribute("TryPassiveAcks", "The number of passive acknowledgment to use.", type = Types.Integer, default = "1", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_trypassiveacks) attr_requestperiod = Attribute("RequestPeriod", "The base time interval between route requests.", type = Types.String, default = "+500000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_requestperiod) attr_maxrequestperiod = Attribute("MaxRequestPeriod", "The max time interval between route requests.", type = Types.String, default = "+10000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxrequestperiod) attr_grareplytablesize = Attribute("GraReplyTableSize", "The gratuitous reply table size.", type = Types.Integer, default = "64", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_grareplytablesize) attr_cachetype = Attribute("CacheType", "Use Link Cache or use Path Cache", type = Types.String, default = "LinkCache", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_cachetype) attr_stabilitydecrfactor = Attribute("StabilityDecrFactor", "The stability decrease factor for link cache", type = Types.Integer, default = "2", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_stabilitydecrfactor) attr_stabilityincrfactor = Attribute("StabilityIncrFactor", "The stability increase factor for link cache", type = Types.Integer, default = "4", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_stabilityincrfactor) attr_initstability = Attribute("InitStability", "The initial stability factor for link cache", type = Types.String, default = "+25000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_initstability) attr_minlifetime = Attribute("MinLifeTime", "The minimal life time for link cache", type = Types.String, default = "+1000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_minlifetime) attr_useextends = Attribute("UseExtends", "The extension time for link cache", type = Types.String, default = "+120000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_useextends) attr_enablesubroute = Attribute("EnableSubRoute", "Enables saving of sub route when receiving route error messages, only available when using path route cache", type = Types.Bool, default = "True", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_enablesubroute) attr_retransincr = Attribute("RetransIncr", "The increase time for retransmission timer when facing network congestion", type = Types.String, default = "+20000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_retransincr) attr_maxnetworkqueuesize = Attribute("MaxNetworkQueueSize", "The max number of packet to save in the network queue.", type = Types.Integer, default = "400", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxnetworkqueuesize) attr_maxnetworkqueuedelay = Attribute("MaxNetworkQueueDelay", "The max time for a packet to stay in the network queue.", type = Types.String, default = "+30000000000.0ns", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_maxnetworkqueuedelay) attr_numpriorityqueues = Attribute("NumPriorityQueues", "The max number of packet to save in the network queue.", type = Types.Integer, default = "2", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_numpriorityqueues) attr_linkacknowledgment = Attribute("LinkAcknowledgment", "Enable Link layer acknowledgment mechanism", type = Types.Bool, default = "True", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_linkacknowledgment) attr_protocolnumber = Attribute("ProtocolNumber", "The Ip protocol number.", type = Types.Integer, default = "0", allowed = None, range = None, flags = Flags.Reserved | Flags.Construct) cls._register_attribute(attr_protocolnumber) @classmethod def _register_traces(cls): tx = Trace("Tx", "Send DSR packet.") cls._register_trace(tx) drop = Trace("Drop", "Drop DSR packet") cls._register_trace(drop) def __init__(self, ec, guid): super(NS3dsrDsrRouting, self).__init__(ec, guid) self._home = "ns3-dsr-dsr-routing-%s" % self.guid