A simple channel, for simple things and testing. More...
#include <simple-channel.h>
Public Member Functions | |
SimpleChannel () | |
virtual void | Add (Ptr< SimpleNetDevice > device) |
Attached a net device to the channel. More... | |
virtual Ptr< NetDevice > | GetDevice (uint32_t i) const |
virtual uint32_t | GetNDevices (void) const |
virtual void | Send (Ptr< Packet > p, uint16_t protocol, Mac48Address to, Mac48Address from, Ptr< SimpleNetDevice > sender) |
A packet is sent by a net device. More... | |
![]() | |
Channel () | |
virtual | ~Channel () |
uint32_t | GetId (void) const |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Attributes | |
Time | m_delay |
The assigned speed-of-light delay of the channel. More... | |
std::vector< Ptr < SimpleNetDevice > > | m_devices |
devices connected by the channel More... | |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
A simple channel, for simple things and testing.
This channel doesn't check for packet collisions and it does not introduce any error. By default, it does not add any delay to the packets. Furthermore, it assumes that the associated NetDevices are using 48-bit MAC addresses.
This channel is meant to be used by ns3::SimpleNetDevices.
ns3::SimpleChannel is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 45 of file simple-channel.h.
ns3::SimpleChannel::SimpleChannel | ( | ) |
Definition at line 47 of file simple-channel.cc.
References NS_LOG_FUNCTION.
|
virtual |
Attached a net device to the channel.
device | the device to attach to the channel |
Reimplemented in ns3::ErrorChannelSixlow, and ns3::ErrorChannel.
Definition at line 71 of file simple-channel.cc.
References m_devices, and NS_LOG_FUNCTION.
i | index of NetDevice to retrieve |
This method must be implemented by subclasses.
Implements ns3::Channel.
Reimplemented in ns3::ErrorChannelSixlow, and ns3::ErrorChannel.
Definition at line 84 of file simple-channel.cc.
References m_devices, and NS_LOG_FUNCTION.
|
virtual |
This method must be implemented by subclasses.
Implements ns3::Channel.
Reimplemented in ns3::ErrorChannelSixlow, and ns3::ErrorChannel.
Definition at line 78 of file simple-channel.cc.
References m_devices, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 34 of file simple-channel.cc.
References m_delay, ns3::MakeTimeChecker(), ns3::Seconds(), and ns3::TypeId::SetParent().
|
virtual |
A packet is sent by a net device.
A receive event will be scheduled for all net device connected to the channel other than the net device who sent the packet
p | packet to be sent |
protocol | protocol number |
to | address to send packet to |
from | address the packet is coming from |
sender | netdevice who sent the packet |
Reimplemented in ns3::ErrorChannelSixlow, and ns3::ErrorChannel.
Definition at line 53 of file simple-channel.cc.
References ns3::Packet::Copy(), m_delay, m_devices, NS_LOG_FUNCTION, ns3::SimpleNetDevice::Receive(), and ns3::Simulator::ScheduleWithContext().
|
private |
The assigned speed-of-light delay of the channel.
Definition at line 82 of file simple-channel.h.
Referenced by GetTypeId(), and Send().
|
private |
devices connected by the channel
Definition at line 83 of file simple-channel.h.
Referenced by Add(), GetDevice(), GetNDevices(), and Send().