ns3 Namespace Reference

Every class exported by the ns3 library is enclosed in the ns3 namespace. More...


Namespaces

namespace  Config
 Configuration of simulation parameters and tracing.
namespace  rapidnet
 RapidNet library.
namespace  rapidnet_compiler
 RapidNet compiler.

Classes

class  OnOffApplication
 Generate traffic to a single destination according to an OnOff pattern. More...
class  PacketSink
 Receive and consume traffic generated to an IP address and port. More...
class  UdpEchoClient
 A Udp Echo client. More...
class  UdpEchoServer
 A Udp Echo server. More...
class  Buffer
 automatically resized byte buffer More...
class  ByteTagList
 keep track of the tags stored in a packet. More...
class  Chunk
 abstract base class for ns3::Header and ns3::Trailer More...
class  DataRate
 Class for representing data rates. More...
class  ErrorModel
 General error model that can be used to corrupt packets. More...
class  RateErrorModel
 Determine which packets are errored corresponding to an underlying distribution, rate, and unit. More...
class  ListErrorModel
 Provide a list of Packet uids to corrupt. More...
class  Header
 Protocol header serialization and deserialization. More...
class  ByteTagIterator
 Iterator over the set of tags in a packet. More...
class  PacketTagIterator
 Iterator over the set of 'packet' tags in a packet. More...
class  Packet
 network packets More...
class  PcapWriter
 Pcap output for Packet logger. More...
class  TagBuffer
 read and write tag data More...
class  Tag
 tag a set of bytes in a packet More...
class  Trailer
 Protocol trailer serialization and deserialization. More...
class  ConfigStore
 Store and load simulation attribute configuration. More...
class  DelayJitterEstimation
 quick and dirty delay and jitter estimation More...
class  EventGarbageCollector
 An object that tracks scheduled events and automatically cancels them when it is destroyed. It is useful in situations where multiple instances of the same type of event can simultaneously be scheduled, and when the events should be limited to the lifetime of a container object. More...
class  GnuplotDataset
 Abstract class to store a plot line to be used by ns3::Gnuplot. More...
class  Gnuplot2dDataset
 Class to represent a 2D points plot. Set the line or points style using SetStyle() and set points using Add(). More...
class  Gnuplot2dFunction
 Class to represent a 2D function expression plot. More...
class  Gnuplot3dDataset
 Class to represent a 3D points plot. Set the line or points style using SetStyle() and set points using Add(). More...
class  Gnuplot3dFunction
 Class to represent a 3D function expression plot. More...
class  Gnuplot
 a simple class to generate gnuplot-ready plotting commands from a set of datasets. More...
class  GnuplotCollection
 a simple class to group together multiple gnuplots into one file, e.g. for PDF multi-page output terminals. More...
class  GtkConfigStore
 A class that provides a GTK-based front end to ns3::ConfigStore. More...
class  TimeMinMaxAvgTotalCalculator
class  AttributeList
 a container of attributes to be used during object's construction and in ns3::Object::Set. More...
class  AttributeValue
 Hold a value for an Attribute. More...
class  AttributeAccessor
 allow setting and getting the value of an attribute. More...
class  AttributeChecker
 Represent the type of an attribute. More...
class  EmptyAttributeValue
 A class for an empty attribute value. More...
class  BooleanValue
 Hold a bool native type. More...
class  Callback
 Callback template class. More...
class  CommandLine
 parse command-line arguments

Instances of this class can be used to parse command-line arguments: users can register new arguments with CommandLine::AddValue but the most important functionality provided by this class is that it can be used to set the 'initial value' of every attribute in the system with the --TypeIdNameAttributeName=value syntax and it can be used to set the value of every GlobalValue in the system with the --GlobalValueName=value syntax. More...

class  DoubleValue
 Hold an floating point type. More...
class  empty
 make Callback use a separate empty type More...
class  EnumValue
 hold variables of type 'enum' More...
class  GlobalValue
 hold a so-called 'global value'. More...
struct  IntToType
class  IntegerValue
 Hold a signed integer type. More...
class  Names
 A directory of name and Ptr<Object> associations that allows us to give any ns3 Object a name. More...
class  ObjectBase
 implement the ns-3 type and attribute system More...
class  ObjectFactory
 instantiate subclasses of ns3::Object. More...
class  ObjectVectorValue
 contain a vector of ns3::Object pointers. More...
class  Object
 a base class which provides memory management and object aggregation More...
class  PointerValue
 hold objects of type Ptr<T> More...
class  Ptr
 smart pointer class similar to boost::intrusive_ptr More...
class  RandomVariable
 The basic RNG for NS-3.

Note: The underlying random number generation method used by NS-3 is the RngStream code by Pierre L'Ecuyer at the University of Montreal. More...

class  UniformVariable
 The uniform distribution RNG for NS-3.

This class supports the creation of objects that return random numbers from a fixed uniform distribution. It also supports the generation of single random numbers from various uniform distributions. More...

class  ConstantVariable
 A random variable that returns a constant

Class ConstantVariable defines a random number generator that returns the same value every sample. More...

class  SequentialVariable
 Return a sequential list of values

Class SequentialVariable defines a random number generator that returns a sequential sequence. The sequence monotonically increases for a period, then wraps around to the low value and begins monotonicaly increasing again. More...

class  ExponentialVariable
 Exponentially Distributed random var

This class supports the creation of objects that return random numbers from a fixed exponential distribution. It also supports the generation of single random numbers from various exponential distributions. More...

class  ParetoVariable
 ParetoVariable distributed random var

This class supports the creation of objects that return random numbers from a fixed pareto distribution. It also supports the generation of single random numbers from various pareto distributions. More...

class  WeibullVariable
 WeibullVariable distributed random var

This class supports the creation of objects that return random numbers from a fixed weibull distribution. It also supports the generation of single random numbers from various weibull distributions. More...

class  NormalVariable
 Class NormalVariable defines a random variable with a normal (Gaussian) distribution.

This class supports the creation of objects that return random numbers from a fixed normal distribution. It also supports the generation of single random numbers from various normal distributions. More...

class  EmpiricalVariable
 EmpiricalVariable distribution random var

Defines a random variable that has a specified, empirical distribution. The distribution is specified by a series of calls to the CDF member function, specifying a value and the probability that the function value is less than the specified value. When values are requested, a uniform random variable is used to select a probabililty, and the return value is interpreted linerarly between the two appropriate points in the CDF. The method is known as inverse transform sampling: (http://en.wikipedia.org/wiki/Inverse_transform_sampling). More...

class  IntEmpiricalVariable
 Integer-based empirical distribution

Defines an empirical distribution where all values are integers. Indentical to EmpiricalVariable, except that the inverse transform sampling interpolation described in the EmpiricalVariable documentation is modified to only return integers. More...

class  DeterministicVariable
 a non-random variable

Defines a random variable that has a specified, predetermined sequence. This would be useful when trying to force the RNG to return a known sequence, perhaps to compare NS-3 to some other simulator More...

class  LogNormalVariable
 Log-normal Distributed random var

LogNormalVariable defines a random variable with log-normal distribution. If one takes the natural logarithm of random variable following the log-normal distribution, the obtained values follow a normal distribution. This class supports the creation of objects that return random numbers from a fixed lognormal distribution. It also supports the generation of single random numbers from various lognormal distributions. More...

class  GammaVariable
 Gamma Distributed Random Variable

GammaVariable defines a random variable with gamma distribution. More...

class  ErlangVariable
 Erlang Distributed Random Variable

ErlangVariable defines a random variable with Erlang distribution. More...

class  ZipfVariable
 Zipf Distributed random var (between 1 and n included). More...
class  TriangularVariable
 Triangularly Distributed random var

This distribution is a triangular distribution. The probablility density is in the shape of a triangle. More...

class  RandomVariableValue
 hold objects of type ns3::RandomVariable More...
class  RefCountBase
 a base class that provides implementations of reference counting operations. More...
class  RngStream
 Combined Multiple-Recursive Generator MRG32k3a. More...
class  Singleton
 a template singleton More...
class  StringValue
 hold variables of type string More...
class  SystemCondition
 A class which provides a relatively platform-independent conditional-wait thread synchronization primitive. More...
class  SystemMutex
 A class which provides a relatively platform-independent Mutual Exclusion thread synchronization primitive. More...
class  CriticalSection
 A class which provides a simple way to implement a Critical Section. More...
class  SystemThread
 A class which provides a relatively platform-independent thread primitive. More...
class  SystemWallClockMs
 measure wall-clock time in milliseconds More...
class  Test
 base class for new regressions tests More...
class  TestManager
 gather and run all regression tests More...
class  TraceSourceAccessor
 control access to objects' trace sources More...
class  TracedCallback
 forward calls to a chain of Callback

An ns3::TracedCallback has almost exactly the same API as a normal ns3::Callback but instead of forwarding calls to a single function (as an ns3::Callback normally does), it forwards calls to a chain of ns3::Callback. TracedCallback::Connect adds a ns3::Callback at the end of the chain of callbacks. TracedCallback::Disconnect removes a ns3::Callback from the chain of callbacks. More...

class  TracedValue
 trace classes with value semantics More...
class  TypeId
 a unique identifier for an interface. More...
class  UintegerValue
 Hold an unsigned integer type. More...
class  BridgeChannel
 Virtual channel implementation for bridges (BridgeNetDevice). More...
class  BridgeNetDevice
 a virtual net device that bridges multiple LAN segments More...
class  Backoff
 The backoff class is used for calculating backoff times when many net devices can write to the same channel. More...
class  CsmaDeviceRec
 CsmaNetDevice Record. More...
class  CsmaChannel
 Csma Channel. More...
class  CsmaNetDevice
 A Device for a Csma Network Link. More...
class  EmuNetDevice
 A Device for an Emu Network Link. More...
class  PointToPointChannel
 Simple Point To Point Channel. More...
class  PointToPointNetDevice
 A Device for a Point to Point Network Link. More...
class  PppHeader
 Packet header for PPP. More...
class  TapBridge
 A bridge to make it appear that a real host process is connected to an ns-3 net device. More...
class  VirtualNetDevice
 A virtual device, similar to Linux TUN/TAP interfaces. More...
class  AarfWifiManager
 AARF Rate control algorithm. More...
class  AarfcdWifiManager
 an implementation of the AARF-CD algorithm More...
class  AdhocWifiMac
 the Adhoc state machine More...
class  AmrrWifiManager
 AMRR Rate control algorithm. More...
class  ArfWifiManager
 ARF Rate control algorithm. More...
class  CaraWifiManager
 implement the CARA rate control algorithm More...
class  ConstantRateWifiManager
 use constant rates for data and control transmissions More...
class  DcaTxop
 handle packet fragmentation and retransmissions. More...
class  DcfState
 keep track of the state needed for a single DCF function. More...
class  DcfManager
 Manage a set of ns3::DcfState. More...
class  IdealWifiManager
 Ideal rate control algorithm. More...
class  JakesPropagationLossModel
 a Jakes propagation loss model More...
class  MacLowTransmissionListener
 listen to events coming from ns3::MacLow. More...
class  MacLowDcfListener
 listen to NAV events More...
class  MacLowTransmissionParameters
 control how a packet is transmitted. More...
class  MacLow
 handle RTS/CTS/DATA/ACK transactions. More...
class  MsduAggregator
 Abstract class that concrete msdu aggregators have to implement. More...
class  NqapWifiMac
 non-QoS AP state machine More...
class  NqstaWifiMac
 a non-QoS STA state machine More...
class  OnoeWifiManager
 an implementation of rate control algorithm developed by Atsushi Onoe More...
class  PropagationDelayModel
 calculate a propagation delay. More...
class  RandomPropagationDelayModel
 the propagation delay is random More...
class  ConstantSpeedPropagationDelayModel
 the propagation speed is constant More...
class  PropagationLossModel
 Modelize the propagation loss through a transmission medium. More...
class  RandomPropagationLossModel
 The propagation loss follows a random distribution. More...
class  FriisPropagationLossModel
 a Friis propagation loss model More...
class  LogDistancePropagationLossModel
 a log distance propagation model. More...
class  ThreeLogDistancePropagationLossModel
 A log distance path loss propagation model with three distance fields. This model is the same as ns3::LogDistancePropagationLossModel except that it has three distance fields: near, middle and far with different exponents. More...
class  NakagamiPropagationLossModel
 Nakagami-m fast fading propagation loss model. More...
class  FixedRssLossModel
 The propagation loss is fixed. The user can set received power level. More...
class  RandomStream
class  RraaWifiManager
 Robust Rate Adaptation Algorithm. More...
class  Ssid
 a IEEE 802.11 SSID More...
class  WifiChannel
 A 802.11 Channel. More...
class  WifiMacQueue
 a 802.11e-specific queue. More...
class  WifiMac
 base class for all MAC-level wifi objects. More...
class  WifiMode
 represent a single transmission mode More...
class  WifiModeFactory
 create WifiMode class instances and keep track of them. More...
class  WifiNetDevice
 Hold together all Wifi-related objects. More...
class  WifiPhyListener
 receive notifications about phy events. More...
class  WifiPhy
 802.11 PHY layer model More...
class  WifiRemoteStationManager
 hold a list of per-remote-station state. More...
class  WifiRemoteStation
 hold per-remote-station state. More...
class  YansErrorRateModel
 Model the error rate for different modulations. More...
class  YansWifiChannel
 A Yans wifi channel. More...
class  YansWifiPhy
 802.11 PHY layer model More...
class  ApplicationContainer
 holds a vector of ns3::Application pointers More...
class  BridgeHelper
 Add capability to bridge multiple LAN segments (IEEE 802.1D bridging). More...
class  CsmaHelper
 build a set of CsmaNetDevice objects More...
class  EmuHelper
 build a set of EmuNetDevice objects More...
class  InternetStackHelper
 aggregate IP/TCP/UDP functionality to existing Nodes. More...
class  Ipv4AddressHelper
 A helper class to make life easier while doing simple IPv4 address assignment in scripts. More...
class  Ipv4GlobalRoutingHelper
 Helper class that adds ns3::Ipv4GlobalRouting objects. More...
class  Ipv4InterfaceContainer
 keep track of a set of ipv4 interfaces. More...
class  Ipv4ListRoutingHelper
 Helper class that adds ns3::Ipv4ListRouting objects. More...
class  Ipv4RoutingHelper
 a factory to create ns3::Ipv4RoutingProtocol objects More...
class  Ipv4StaticRoutingHelper
 Helper class that adds ns3::Ipv4StaticRouting objects. More...
class  MobilityHelper
 assign positions and mobility models to nodes. More...
class  NetDeviceContainer
 holds a vector of ns3::NetDevice pointers More...
class  NodeContainer
 keep track of a set of node pointers. More...
class  NqosWifiMacHelper
 create non-qos MAC layers for a ns3::WifiNetDevice. This class can create MACs of type ns3::NqapWifiMac, ns3::NqstaWifiMac, and, ns3::AdhocWifiMac More...
class  Ns2MobilityHelper
 a topology object which can read ns2's movement files generated by the CMU setdest tool. More...
class  OlsrHelper
 Helper class that adds OLSR routing to nodes. More...
class  OnOffHelper
 instanciate an ns3::OnOffApplication on a set of nodes. More...
class  PacketSocketHelper
 Give ns3::PacketSocket powers to ns3::Node. More...
class  PointToPointHelper
 build a set of PointToPointNetDevice objects More...
class  QosWifiMacHelper
 create qos MAC layers for a ns3::WifiNetDevice. This class can create MACs of type ns3::QapWifiMac, ns3::QstaWifiMac, and, ns3::QadhocWifiMac More...
class  WifiPhyHelper
 create PHY objects More...
class  WifiMacHelper
 create MAC objects More...
class  WifiHelper
 helps to create WifiNetDevice objects More...
class  YansWifiChannelHelper
 manage and create wifi channel objects for the yans model. More...
class  YansWifiPhyHelper
 Make it easy to create and manage PHY objects for the yans model. More...
class  ArpCache
 An ARP cache. More...
class  ArpHeader
 The packet header for an ARP packet. More...
class  ArpL3Protocol
 An implementation of the ARP protocol. More...
class  Ipv4EndPointDemux
 Demultiplexes packets to various transport layer endpoints. More...
class  Ipv4EndPoint
 A representation of an internet endpoint/connection. More...
class  Ipv4Interface
 The IPv4 representation of a network interface. More...
class  Ipv4L3Protocol
 Implement the Ipv4 layer. More...
class  Ipv4L4Protocol
 L4 Protocol abstract base class. More...
class  LoopbackNetDevice
 Virtual network interface that loops back any data sent to it to be immediately received on the same interface. More...
class  NscTcpL4Protocol
 Nsc wrapper glue, to interface with the Ipv4 protocol underneath. More...
class  NscTcpSocketFactoryImpl
 socket factory implementation for creating instances of NSC TCP More...
class  NscTcpSocketImpl
 Socket logic for the NSC TCP sockets. More...
class  PendingData
 class for managing I/O between applications and TCP More...
class  RttHistory
 Implements several variations of round trip time estimators. More...
class  TcpHeader
 Header for the Transmission Control Protocol. More...
class  TcpL4Protocol
 A layer between the sockets interface and IP. More...
class  TcpSocketFactoryImpl
 socket factory implementation for native ns-3 TCP More...
class  TcpSocketImpl
 An implementation of a stream socket using TCP. More...
class  UdpHeader
 Packet header for UDP packets. More...
class  UdpL4Protocol
 Implementation of the UDP protocol. More...
class  UdpSocketFactoryImpl
 Object to create UDP socket instances. More...
class  UdpSocketImpl
 A sockets interface to UDP. More...
class  ConstantAccelerationMobilityModel
 a position model for which the current acceleration does not change once it has been set and until it is set again explicitely to a new value. More...
class  ConstantPositionMobilityModel
 a position model for which the current position does not change once it has been set and until it is set again explicitely to a new value. More...
class  ConstantVelocityMobilityModel
 a position model for which the current speed does not change once it has been set and until it is set again explicitely to a new value. More...
class  HierarchicalMobilityModel
 a hierachical mobility model. More...
class  MobilityModel
 keep track of the current position of an object More...
class  PositionAllocator
 allocate a set of positions. The allocation strategy is implemented in subclasses. More...
class  ListPositionAllocator
 Allocate positions from a deterministic list specified by the user. More...
class  GridPositionAllocator
 Allocate positions on a rectangular 2d grid. More...
class  RandomRectanglePositionAllocator
 allocate random positions within a rectangle according to a pair of random variables. More...
class  RandomDiscPositionAllocator
 allocate random positions within a disc according to a pair of random variables. More...
class  RandomDirection2dMobilityModel
 a RandomDirection mobility model More...
class  RandomWalk2dMobilityModel
 a 2D random walk position model More...
class  RandomWaypointMobilityModel
 a random waypoint mobility model More...
class  Rectangle
 a 2d rectangle More...
class  Vector
 a 3d cartesian position vector More...
class  Address
 a polymophic address class More...
class  Application
 The base class for all ns3 applications. More...
class  Channel
 Abstract Channel Base Class. More...
class  DropTailQueue
 A FIFO packet queue that drops tail-end packets on overflow. More...
class  EthernetHeader
 Packet header for Ethernet. More...
class  EthernetTrailer
 Packet trailer for Ethernet. More...
class  InetSocketAddress
 an Inet address class More...
class  Inet6SocketAddress
 An Inet6 address class. More...
class  Ipv4AddressGenerator
 This generator assigns addresses sequentially from a provided network address; used in topology code. More...
class  Ipv4Address
 Ipv4 addresses are stored in host order in this class. More...
class  Ipv4Mask
 a class to represent an Ipv4 address mask More...
class  Ipv4Header
 Packet header for IPv4. More...
class  Ipv4InterfaceAddress
 a class to store IPv4 address information on an interface More...
class  Ipv4RawSocketFactory
 API to create RAW socket instances. More...
class  Ipv4Route
 Ipv4 route cache entry (similar to Linux struct rtable). More...
class  Ipv4MulticastRoute
 Ipv4 multicast route cache entry (similar to Linux struct mfc_cache). More...
class  Ipv6Address
 Describes an IPv6 address. More...
class  Ipv6Prefix
 Describes an IPv6 prefix. It is just a bitmask like Ipv4Mask. More...
class  Ipv6Header
 Packet header for IPv6. More...
class  LlcSnapHeader
 Header for the LLC/SNAP encapsulation. More...
class  Mac48Address
 an EUI-48 address More...
class  Mac64Address
 an EUI-64 address More...
class  NetDevice
 Network layer to device interface. More...
class  NodeList
 the list of simulation nodes. More...
class  Node
 A network Node. More...
class  PacketSocketAddress
 an address for a packet socket More...
class  PacketSocketFactory
class  PacketSocket
 A PacketSocket is a link between an application and a net device. More...
class  Queue
 Abstract base class for packet Queues. More...
class  SimpleChannel
 A simple channel, for simple things and testing. More...
class  SimpleNetDevice
 simple net device for simple things and testing More...
class  SocketFactory
 Object to create transport layer instances that provide a socket API to applications. More...
class  Socket
 A low-level Socket API based loosely on the BSD Socket API.

A few things to keep in mind about this type of socket:

  • it uses ns-3 API constructs such as class ns3::Address instead of C-style structs
  • in contrast to the original BSD socket API, this API is asynchronous: it does not contain blocking calls. Sending and receiving operations must make use of the callbacks provided.
  • It also uses class ns3::Packet as a fancy byte buffer, allowing data to be passed across the API using an ns-3 Packet instead of a raw data pointer.
  • Not all of the full POSIX sockets API is supported.
More...
class  SocketAddressTag
 This class implements a tag that carries an address of a packet across the socket interface. More...
class  SocketIpTtlTag
 This class implements a tag that carries the socket-specific TTL of a packet to the IP layer. More...
class  SocketSetDontFragmentTag
 indicated whether packets should be sent out with the DF flag set. More...
class  TcpSocketFactory
 API to create TCP socket instances. More...
class  TcpSocket
 (abstract) base class of all TcpSockets More...
class  UdpSocketFactory
 API to create UDP socket instances. More...
class  UdpSocket
 (abstract) base class of all UdpSockets More...
class  CandidateQueue
 A Candidate Queue used in static routing. More...
class  SPFVertex
 Vertex used in shortest path first (SPF) computations. See RFC 2328, Section 16. More...
class  GlobalRouteManagerLSDB
 The Link State DataBase (LSDB) of the Global Route Manager. More...
class  GlobalRouteManagerImpl
 A global router implementation. More...
class  GlobalRouteManager
 A global global router. More...
class  GlobalRoutingLinkRecord
 A single link record for a link state advertisement. More...
class  GlobalRoutingLSA
 a Link State Advertisement (LSA) for a router, used in global routing. More...
class  GlobalRouter
 An interface aggregated to a node to provide global routing info. More...
class  Ipv4GlobalRouting
 Global routing protocol for IP version 4 stacks. More...
class  Ipv4ListRouting
class  Ipv4RoutingTableEntry
class  Ipv4MulticastRoutingTableEntry
 A record of an IPv4 multicast route for Ipv4GlobalRouting and Ipv4StaticRouting. More...
class  Ipv4StaticRouting
 Static routing protocol for IP version 4 stacks. More...
class  CalendarScheduler
 a calendar queue event scheduler More...
class  EventId
 an identifier for simulation events. More...
class  EventImpl
 a simulation event More...
class  HeapScheduler
 a binary heap event scheduler More...
class  ListScheduler
 a std::list event scheduler More...
class  MapScheduler
 a std::map event scheduler More...
class  Ns2CalendarScheduler
 a calendar queue event scheduler More...
class  TimeUnit
 keep track of time unit. More...
class  Scheduler
 Maintain the event list. More...
class  SimulationSingleton
class  Simulator
 Control the scheduling of simulation events. More...
class  Synchronizer
 Base class used for synchronizing the simulation events to some real time "wall clock.". More...
class  Timer
 a simple Timer class More...
class  WallClockSynchronizer
 Class used for synchronizing the simulation events to a real-time "wall clock" using Posix Clock functions. More...
class  Watchdog
 a very simple watchdog More...
class  DataRateValue
 hold objects of type ns3::DataRate More...
class  ObjectFactoryValue
 hold objects of type ns3::ObjectFactory More...
class  TypeIdValue
 hold objects of type ns3::TypeId More...
class  SsidValue
 hold objects of type ns3::Ssid More...
class  WifiModeValue
 hold objects of type ns3::WifiMode More...
class  RectangleValue
 hold objects of type ns3::Rectangle More...
class  VectorValue
 hold objects of type ns3::Vector More...
class  AddressValue
 hold objects of type ns3::Address More...
class  Ipv4AddressValue
 hold objects of type ns3::Ipv4Address More...
class  Ipv4MaskValue
 hold objects of type ns3::Ipv4Mask More...
class  Ipv6AddressValue
 hold objects of type ns3::Ipv6Address More...
class  Ipv6PrefixValue
 hold objects of type ns3::Ipv6Prefix More...
class  Mac48AddressValue
 hold objects of type ns3::Mac48Address More...
class  TimeValue
 hold objects of type ns3::Time More...

Typedefs

typedef TimeUnit< 1 > Time
 keep track of seconds.
typedef TimeUnit< 0 > Scalar
 hold scalar values

Enumerations

enum  WireState { IDLE, TRANSMITTING, PROPAGATING }
enum  ethernet_header_t { LENGTH, VLAN, QINQ }

Functions

double operator* (const DataRate &lhs, const TimeUnit< 1 > &rhs)
void BreakpointFallback (void)
 fallback breakpoint function
template<typename T , typename OBJ , typename R >
Callback< R > MakeCallback (R(T::*memPtr)(void), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 >
Callback< R, T1 > MakeCallback (R(T::*mem_ptr)(T1), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 >
Callback< R, T1, T2 > MakeCallback (R(T::*mem_ptr)(T1, T2), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > MakeCallback (R(T::*mem_ptr)(T1, T2, T3), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > MakeCallback (R(T::*mem_ptr)(T1, T2, T3, T4), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > MakeCallback (R(T::*mem_ptr)(T1, T2, T3, T4, T5), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4,
T5, T6 > 
MakeCallback (R(T::*mem_ptr)(T1, T2, T3, T4, T5, T6), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4,
T5, T6, T7 > 
MakeCallback (R(T::*mem_ptr)(T1, T2, T3, T4, T5, T6, T7), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Callback< R, T1, T2, T3, T4,
T5, T6, T7, T8 > 
MakeCallback (R(T::*mem_ptr)(T1, T2, T3, T4, T5, T6, T7, T8), OBJ objPtr)
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
Callback< R, T1, T2, T3, T4,
T5, T6, T7, T8, T9 > 
MakeCallback (R(T::*mem_ptr)(T1, T2, T3, T4, T5, T6, T7, T8, T9), OBJ objPtr)
template<typename R >
Callback< R > MakeCallback (R(*fnPtr)())
template<typename R , typename T1 >
Callback< R, T1 > MakeCallback (R(*fnPtr)(T1))
template<typename R , typename T1 , typename T2 >
Callback< R, T1, T2 > MakeCallback (R(*fnPtr)(T1, T2))
template<typename R , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > MakeCallback (R(*fnPtr)(T1, T2, T3))
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > MakeCallback (R(*fnPtr)(T1, T2, T3, T4))
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5))
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4,
T5, T6 > 
MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6))
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4,
T5, T6, T7 > 
MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6, T7))
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Callback< R, T1, T2, T3, T4,
T5, T6, T7, T8 > 
MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6, T7, T8))
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
Callback< R, T1, T2, T3, T4,
T5, T6, T7, T8, T9 > 
MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6, T7, T8, T9))
template<typename R >
Callback< R > MakeNullCallback (void)
void LogComponentEnable (char const *name, enum LogLevel level)
void LogComponentEnableAll (enum LogLevel level)
void LogComponentDisable (char const *name, enum LogLevel level)
void LogComponentDisableAll (enum LogLevel level)
void LogComponentPrintList (void)
template<typename T >
Ptr< T > CopyObject (Ptr< const T > object)
template<typename T >
Ptr< T > CreateObjectWithAttributes (const AttributeList &attributes)
template<typename T >
Ptr< T > CreateObjectWithAttributes (std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
template<typename T >
Ptr< const TraceSourceAccessorMakeTraceSourceAccessor (T a)
double CalculateDistance (const Vector &a, const Vector &b)
Time Seconds (double seconds)
 create ns3::Time instances in units of seconds.
Time MilliSeconds (uint64_t ms)
 create ns3::Time instances in units of milliseconds.
Time MicroSeconds (uint64_t us)
 create ns3::Time instances in units of microseconds.
Time NanoSeconds (uint64_t ns)
 create ns3::Time instances in units of nanoseconds.
Time PicoSeconds (uint64_t ps)
 create ns3::Time instances in units of picoseconds.
Time FemtoSeconds (uint64_t fs)
 create ns3::Time instances in units of femtoseconds.
Time Now (void)
 create an ns3::Time instance which contains the current simulation time.


Detailed Description

Every class exported by the ns3 library is enclosed in the ns3 namespace.

The implementation of the public static-based API which calls into the private implementation through the simulation singleton.


Typedef Documentation

typedef TimeUnit<0> ns3::Scalar

hold scalar values

This class is used both to construct scalar values to multiply ns3::Time instances and to hold the return value of an expression which returns a scalar. For example, the following code will output on your terminal 1.5:

 Scalar s0 = Scalar (1.5);
 Time t1 = Seconds (10.0) * s0;
 Time t2 = Seconds (10.0) * Scalar (2.5);
 Scalar s1 = Seconds (15.0) / Seconds (10.0);
 std::cout << s1.GetDouble () << std::endl;

The Scalar class has the following additional methods not available in the generic TimeUnit template:

 double GetDouble (void) const;
returns the C double contained in the Scalar instance

 Scalar(double scalar);
Constructs a Scalar instance from a C double.

typedef TimeUnit<1> ns3::Time

keep track of seconds.

This is an instance of type ns3::TimeUnit<1>: it is the return value of the ns3::Simulator::Now method and is needed for the Simulator::Schedule methods. The precision of the underlying Time unit can be changed with calls to TimeStepPrecision::Set.

Time instances can be created through any of the following functions:

Time instances can be added, substracted, multipled and divided using the standard C++ operators (if you make sure to obey the rules of the ns3::TimeUnit class template) To scale a Time instance, you can multiply it with an instance of the ns3::Scalar class. Time instances can also be manipulated through the following non-member functions:

The Time class has the following additional methods not available in the generic TimeUnit template:

 double GetSeconds (void) const;
returns an approximation in seconds of the time stored in this instance.

 int64_t GetMilliSeconds (void) const;
returns an approximation in milliseconds of the time stored in this instance.

 int64_t GetMicroSeconds (void) const;
returns an approximation in microseconds of the time stored in this instance.

 int64_t GetNanoSeconds (void) const;
returns an approximation in nanoseconds of the time stored in this instance.

 int64_t GetPicoSeconds (void) const;
returns an approximation in picoseconds of the time stored in this instance.

 int64_t GetFemtoSeconds (void) const;
returns an approximation in femtoseconds of the time stored in this instance.


Enumeration Type Documentation

Types of ethernet packets. Indicates the type of the current header.

Enumerator:
LENGTH  Basic ethernet packet, no tags, type/length field indicates packet length or IP/ARP packet
VLAN  Single tagged packet. Header includes VLAN tag
QINQ  Double tagged packet. Header includes two VLAN tags

Current state of the channel

Enumerator:
IDLE  Channel is IDLE, no packet is being transmitted
TRANSMITTING  Channel is BUSY, a packet is being written by a net device
PROPAGATING  Channel is BUSY, packet is propagating to all attached net devices


Function Documentation

void ns3::BreakpointFallback ( void   ) 

fallback breakpoint function

This function is used by the NS_BREAKPOINT() macro as a fallback for when breakpoint assembly instructions are not available. It attempts to halt program execution either by a raising SIGTRAP, on unix systems, or by dereferencing a null pointer.

Normally you should not call this function directly.

double ns3::CalculateDistance ( const Vector &  a,
const Vector &  b 
)

Parameters:
a one point
b another point
Returns:
the cartesian distance between a and b.

template<typename T >
Ptr< T > ns3::CopyObject ( Ptr< const T >  object  )  [inline]

Parameters:
object a pointer to the object to copy.
Returns:
a copy of the input object.
This method invoke the copy constructor of the input object and returns the new instance.

References NS_ASSERT.

template<typename T >
Ptr< T > ns3::CreateObjectWithAttributes ( std::string  n1 = "",
const AttributeValue &  v1 = EmptyAttributeValue (),
std::string  n2 = "",
const AttributeValue &  v2 = EmptyAttributeValue (),
std::string  n3 = "",
const AttributeValue &  v3 = EmptyAttributeValue (),
std::string  n4 = "",
const AttributeValue &  v4 = EmptyAttributeValue (),
std::string  n5 = "",
const AttributeValue &  v5 = EmptyAttributeValue (),
std::string  n6 = "",
const AttributeValue &  v6 = EmptyAttributeValue (),
std::string  n7 = "",
const AttributeValue &  v7 = EmptyAttributeValue (),
std::string  n8 = "",
const AttributeValue &  v8 = EmptyAttributeValue (),
std::string  n9 = "",
const AttributeValue &  v9 = EmptyAttributeValue () 
) [inline]

Parameters:
n1 name of attribute
v1 value of attribute
n2 name of attribute
v2 value of attribute
n3 name of attribute
v3 value of attribute
n4 name of attribute
v4 value of attribute
n5 name of attribute
v5 value of attribute
n6 name of attribute
v6 value of attribute
n7 name of attribute
v7 value of attribute
n8 name of attribute
v8 value of attribute
n9 name of attribute
v9 value of attribute
Returns:
a pointer to a newly allocated object.
This allocates an object on the heap and initializes it with a set of attributes.

References ns3::AttributeList::SetWithTid().

template<typename T >
Ptr< T > ns3::CreateObjectWithAttributes ( const AttributeList &  attributes  )  [inline]

Parameters:
attributes a list of attributes to set on the object during construction.
Returns:
a pointer to a newly allocated object.
This allocates an object on the heap and initializes it with a set of attributes.

Time ns3::FemtoSeconds ( uint64_t  fs  ) 

create ns3::Time instances in units of femtoseconds.

For example:

template<typename T >
Ptr< const TraceSourceAccessor > ns3::MakeTraceSourceAccessor ( a  )  [inline]

Parameters:
a the trace source
Create a TraceSourceAccessor which will control access to the underlying trace source. This helper template method assumes that the underlying type implements a statically-polymorphic set of Connect and Disconnect methods and creates a dynamic-polymorphic class to wrap the underlying static-polymorphic class.

Time ns3::MicroSeconds ( uint64_t  us  ) 

create ns3::Time instances in units of microseconds.

For example:

Time ns3::MilliSeconds ( uint64_t  ms  ) 

create ns3::Time instances in units of milliseconds.

For example:

Time ns3::NanoSeconds ( uint64_t  ns  ) 

create ns3::Time instances in units of nanoseconds.

For example:

Time ns3::Now ( void   ) 

create an ns3::Time instance which contains the current simulation time.

This is really a shortcut for the ns3::Simulator::Now method. It is typically used as shown below to schedule an event which expires at the absolute time "2 seconds":

 Simulator::Schedule (Seconds (2.0) - Now (), &my_function);

double ns3::operator* ( const DataRate &  lhs,
const TimeUnit< 1 > &  rhs 
)

Parameters:
lhs 
rhs 
Returns:
Bits transmitted in rhs seconds at lhs b/s

Time ns3::PicoSeconds ( uint64_t  ps  ) 

create ns3::Time instances in units of picoseconds.

For example:

Time ns3::Seconds ( double  seconds  ) 

create ns3::Time instances in units of seconds.

For example:

 Time t = Seconds (2.0);
 Simulator::Schedule (NanoSeconds (5.0), ...);


Generated on Fri Apr 9 15:01:08 2010 for NS-3 by  doxygen 1.5.8