A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::PointToPointChannel Class Reference

Simple Point To Point Channel. More...

#include <point-to-point-channel.h>

+ Inheritance diagram for ns3::PointToPointChannel:

Classes

class  Link
 

Public Member Functions

 PointToPointChannel ()
 Create a PointToPointChannel. More...
 
void Attach (Ptr< PointToPointNetDevice > device)
 Attach a given netdevice to this channel. More...
 
virtual Ptr< NetDeviceGetDevice (uint32_t i) const
 
virtual uint32_t GetNDevices (void) const
 Get number of devices on this channel. More...
 
Ptr< PointToPointNetDeviceGetPointToPointDevice (uint32_t i) const
 
virtual bool TransmitStart (Ptr< Packet > p, Ptr< PointToPointNetDevice > src, Time txTime)
 Transmit a packet over this channel. More...
 
- Public Member Functions inherited from ns3::Channel
uint32_t GetId (void) const
 
- Public Member Functions inherited from ns3::Object
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 
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)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
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)
 
- Static Public Member Functions inherited from ns3::Channel
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Protected Member Functions

Time GetDelay (void) const
 
Ptr< PointToPointNetDeviceGetDestination (uint32_t i) const
 
Ptr< PointToPointNetDeviceGetSource (uint32_t i) const
 
bool IsInitialized (void) const
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Private Types

enum  WireState { INITIALIZING, IDLE, TRANSMITTING, PROPAGATING }
 

Private Attributes

Time m_delay
 
Link m_link [N_DEVICES]
 
int32_t m_nDevices
 
TracedCallback< Ptr< const
Packet >, Ptr< NetDevice >
, Ptr< NetDevice >, Time, Time
m_txrxPointToPoint
 

Static Private Attributes

static const int N_DEVICES = 2
 

Detailed Description

Simple Point To Point Channel.

This class represents a very simple point to point channel. Think full duplex RS-232 or RS-422 with null modem and no handshaking. There is no multi-drop capability on this channel – there can be a maximum of two point-to-point net devices connected.

There are two "wires" in the channel. The first device connected gets the [0] wire to transmit on. The second device gets the [1] wire. There is a state (IDLE, TRANSMITTING) associated with each wire.

Config Paths

ns3::PointToPointChannel is accessible through the following paths with Config::Set and Config::Connect:

  • /ChannelList/[i]/$ns3::PointToPointChannel

Attributes

  • Delay: Transmission delay through the channel
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read

Attributes defined in parent class ns3::Channel

TraceSources

  • TxRxPointToPoint: Trace source indicating transmission of packet from the PointToPointChannel, used by the Animation interface.

Definition at line 47 of file point-to-point-channel.h.

Constructor & Destructor Documentation

ns3::PointToPointChannel::PointToPointChannel ( )

Create a PointToPointChannel.

By default, you get a channel that has zero transmission delay.

Definition at line 52 of file point-to-point-channel.cc.

References NS_LOG_FUNCTION_NOARGS.

Member Function Documentation

void ns3::PointToPointChannel::Attach ( Ptr< PointToPointNetDevice device)

Attach a given netdevice to this channel.

Parameters
devicepointer to the netdevice to attach to the channel

Definition at line 62 of file point-to-point-channel.cc.

References NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Ptr< NetDevice > ns3::PointToPointChannel::GetDevice ( uint32_t  i) const
virtual
Parameters
iindex of NetDevice to retrieve
Returns
one of the NetDevices connected to this channel.

This method must be implemented by subclasses.

Implements ns3::Channel.

Definition at line 121 of file point-to-point-channel.cc.

References NS_LOG_FUNCTION_NOARGS.

uint32_t ns3::PointToPointChannel::GetNDevices ( void  ) const
virtual

Get number of devices on this channel.

Returns
number of devices on this channel

Implements ns3::Channel.

Definition at line 106 of file point-to-point-channel.cc.

References NS_LOG_FUNCTION_NOARGS.

bool ns3::PointToPointChannel::TransmitStart ( Ptr< Packet p,
Ptr< PointToPointNetDevice src,
Time  txTime 
)
virtual

Transmit a packet over this channel.

Parameters
pPacket to transmit
srcSource PointToPointNetDevice
txTimeTransmit time to apply
Returns
true if successful (currently always true)

Reimplemented in ns3::PointToPointRemoteChannel.

Definition at line 83 of file point-to-point-channel.cc.

References ns3::Packet::GetUid(), m_txrxPointToPoint, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::PointToPointNetDevice::Receive(), and ns3::Simulator::ScheduleWithContext().

Member Data Documentation

TracedCallback<Ptr<const Packet>, Ptr<NetDevice>, Ptr<NetDevice>, Time, Time > ns3::PointToPointChannel::m_txrxPointToPoint
private

The trace source for the packet transmission animation events that the device can fire. Arguments to the callback are the packet, transmitting net device, receiving net device, transmission time and packet receipt time.

See Also
class CallBackTraceSource

Definition at line 145 of file point-to-point-channel.h.

Referenced by TransmitStart().


The documentation for this class was generated from the following files: