21 #include "ns3/abort.h" 
   23 #include "ns3/simulator.h" 
   24 #include "ns3/object-factory.h" 
   25 #include "ns3/queue.h" 
   26 #include "ns3/csma-net-device.h" 
   27 #include "ns3/csma-channel.h" 
   28 #include "ns3/config.h" 
   29 #include "ns3/packet.h" 
   30 #include "ns3/names.h" 
   32 #include "ns3/trace-helper.h" 
   87       NS_LOG_INFO (
"CsmaHelper::EnablePcapInternal(): Device " << device << 
" not of type ns3::CsmaNetDevice");
 
  120   bool explicitFilename)
 
  130       NS_LOG_INFO (
"CsmaHelper::EnableAsciiInternal(): Device " << device << 
" not of type ns3::CsmaNetDevice");
 
  155       std::string filename;
 
  156       if (explicitFilename)
 
  196   uint32_t nodeid = nd->GetNode ()->GetId ();
 
  197   uint32_t deviceid = nd->GetIfIndex ();
 
  198   std::ostringstream oss;
 
  200   oss << 
"/NodeList/" << nd->GetNode ()->GetId () << 
"/DeviceList/" << deviceid << 
"/$ns3::CsmaNetDevice/MacRx";
 
  204   oss << 
"/NodeList/" << nodeid << 
"/DeviceList/" << deviceid << 
"/$ns3::CsmaNetDevice/TxQueue/Enqueue";
 
  208   oss << 
"/NodeList/" << nodeid << 
"/DeviceList/" << deviceid << 
"/$ns3::CsmaNetDevice/TxQueue/Dequeue";
 
  212   oss << 
"/NodeList/" << nodeid << 
"/DeviceList/" << deviceid << 
"/$ns3::CsmaNetDevice/TxQueue/Drop";
 
  220   return Install (node, channel);
 
  226   Ptr<Node> node = Names::Find<Node> (nodeName);
 
  246   Ptr<Node> node = Names::Find<Node> (nodeName);
 
  253   Ptr<Node> node = Names::Find<Node> (nodeName);
 
  289   int64_t currentStream = stream;
 
  297           currentStream += csma->AssignStreams (currentStream);
 
  300   return (currentStream - stream);
 
  310   device->SetQueue (queue);
 
  311   device->Attach (channel);
 
Iterator Begin(void) const 
Get an iterator which refers to the first NetDevice in the container. 
 
Manage ASCII trace files for device models. 
 
Smart pointer class similar to boost::intrusive_ptr. 
 
void SetChannelAttribute(std::string n1, const AttributeValue &v1)
 
static void DefaultEnqueueSinkWithContext(Ptr< OutputStreamWrapper > file, std::string context, Ptr< const Packet > p)
Basic Enqueue default trace sink. 
 
void HookDefaultDropSinkWithoutContext(Ptr< T > object, std::string traceName, Ptr< OutputStreamWrapper > stream)
Hook a trace source to the default drop operation trace sink that does not accept nor log a trace con...
 
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator. 
 
Ptr< Queue< Packet > > GetQueue(void) const 
Get a copy of the attached Queue. 
 
Ptr< T > GetObject(void) const 
Get a pointer to the requested aggregated Object. 
 
Hold a value for an Attribute. 
 
Manage pcap files for device models. 
 
Callback< R > MakeBoundCallback(R(*fnPtr)(TX), ARG a1)
Make Callbacks with one bound argument. 
 
static void DefaultDropSinkWithContext(Ptr< OutputStreamWrapper > file, std::string context, Ptr< const Packet > p)
Basic Drop default trace sink. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory. 
 
virtual void EnablePcapInternal(std::string prefix, Ptr< NetDevice > nd, bool promiscuous, bool explicitFilename)
Enable pcap output on the indicated net device. 
 
NetDeviceContainer Install(Ptr< Node > node) const 
This method creates an ns3::CsmaChannel with the attributes configured by CsmaHelper::SetChannelAttri...
 
Iterator End(void) const 
Get an iterator which indicates past-the-last Node in the container. 
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
Ptr< OutputStreamWrapper > CreateFileStream(std::string filename, std::ios::openmode filemode=std::ios::out)
Create and initialize an output stream object we'll use to write the traced bits. ...
 
void HookDefaultEnqueueSinkWithoutContext(Ptr< T > object, std::string traceName, Ptr< OutputStreamWrapper > stream)
Hook a trace source to the default enqueue operation trace sink that does not accept nor log a trace ...
 
std::string GetFilenameFromDevice(std::string prefix, Ptr< NetDevice > device, bool useObjectNames=true)
Let the ascii trace helper figure out a reasonable filename to use for an ascii trace file associated...
 
Ptr< PcapFileWrapper > CreateFile(std::string filename, std::ios::openmode filemode, DataLinkType dataLinkType, uint32_t snapLen=std::numeric_limits< uint32_t >::max(), int32_t tzCorrection=0)
Create and initialize a pcap file. 
 
static void AppendItemTypeIfNotPresent(std::string &typeId, const std::string &itemType)
Append the item type to the provided type ID if the latter does not end with '>'. ...
 
CsmaHelper()
Construct a CsmaHelper. 
 
std::string GetFilenameFromDevice(std::string prefix, Ptr< NetDevice > device, bool useObjectNames=true)
Let the pcap helper figure out a reasonable filename to use for a pcap file associated with a device...
 
static Mac48Address Allocate(void)
Allocate a new Mac48Address. 
 
static void EnablePrinting(void)
Enable printing packets metadata. 
 
Ptr< Object > Create(void) const 
Create an Object instance of the configured TypeId. 
 
void Add(NetDeviceContainer other)
Append the contents of another NetDeviceContainer to the end of this container. 
 
ObjectFactory m_deviceFactory
factory for the NetDevices 
 
holds a vector of ns3::NetDevice pointers 
 
ObjectFactory m_channelFactory
factory for the channel 
 
void Connect(std::string path, const CallbackBase &cb)
 
static void DefaultReceiveSinkWithContext(Ptr< OutputStreamWrapper > file, std::string context, Ptr< const Packet > p)
Basic Receive default trace sink. 
 
static void DefaultDequeueSinkWithContext(Ptr< OutputStreamWrapper > file, std::string context, Ptr< const Packet > p)
Basic Dequeue default trace sink. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
keep track of a set of node pointers. 
 
A Device for a Csma Network Link. 
 
Iterator Begin(void) const 
Get an iterator which refers to the first Node in the container. 
 
void Set(std::string name, const AttributeValue &value)
Set an attribute to be set during construction. 
 
void HookDefaultReceiveSinkWithoutContext(Ptr< T > object, std::string traceName, Ptr< OutputStreamWrapper > stream)
Hook a trace source to the default receive operation trace sink that does not accept nor log a trace ...
 
ObjectFactory m_queueFactory
factory for the queues 
 
void SetDeviceAttribute(std::string n1, const AttributeValue &v1)
 
virtual void EnableAsciiInternal(Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< NetDevice > nd, bool explicitFilename)
Enable ascii trace output on the indicated net device. 
 
int64_t AssignStreams(NetDeviceContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
 
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node. 
 
std::vector< Ptr< NetDevice > >::const_iterator Iterator
NetDevice container iterator. 
 
Ptr< NetDevice > InstallPriv(Ptr< Node > node, Ptr< CsmaChannel > channel) const 
This method creates an ns3::CsmaNetDevice with the attributes configured by CsmaHelper::SetDeviceAttr...
 
void SetQueue(std::string type, 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())
 
void HookDefaultSink(Ptr< T > object, std::string traceName, Ptr< PcapFileWrapper > file)
Hook a trace source to the default trace sink. 
 
Iterator End(void) const 
Get an iterator which indicates past-the-last NetDevice in the container. 
 
void HookDefaultDequeueSinkWithoutContext(Ptr< T > object, std::string traceName, Ptr< OutputStreamWrapper > stream)
Hook a trace source to the default dequeue operation trace sink that does not accept nor log a trace ...