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 () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. 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 |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
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) | |
Copy an Object. More... | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. 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.
Size of this type is 64 bytes (on a 64-bit architecture).
Definition at line 45 of file simple-channel.h.
ns3::SimpleChannel::SimpleChannel | ( | ) |
Definition at line 48 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 72 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 85 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 79 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::MakeTimeAccessor(), 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 54 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().