24 #ifndef SATELLITE_POINT_TO_POINT_ISL_CHANNEL_H
25 #define SATELLITE_POINT_TO_POINT_ISL_CHANNEL_H
29 #include "ns3/channel.h"
30 #include "ns3/data-rate.h"
31 #include "ns3/mobility-model.h"
40 class PointToPointIslNetDevice;
81 void Attach(Ptr<PointToPointIslNetDevice> device);
93 Ptr<PointToPointIslNetDevice> src,
120 virtual Ptr<NetDevice>
GetDevice(std::size_t i)
const;
131 Time
GetDelay(Ptr<MobilityModel> senderMobility, Ptr<MobilityModel> receiverMobility)
const;
148 Ptr<PointToPointIslNetDevice>
GetSource(uint32_t i)
const;
198 Ptr<PointToPointIslNetDevice>
m_src;
199 Ptr<PointToPointIslNetDevice>
m_dst;
Wire model for the PointToPointIslChannel.
Link()
Create the link, it will be in INITIALIZING state.
Ptr< PointToPointIslNetDevice > m_dst
Second NetDevice.
WireState m_state
State of the link.
Ptr< PointToPointIslNetDevice > m_src
First NetDevice.
Point to Point ISL Channel.
static TypeId GetTypeId(void)
Get the TypeId.
Link m_link[N_DEVICES]
Link model.
@ IDLE
Idle state (no transmission from NetDevice)
@ TRANSMITTING
Transmitting state (data being transmitted from NetDevice.
@ INITIALIZING
Initializing state.
@ PROPAGATING
Propagating state (data is being propagated in the channel.
Time GetDelay(Ptr< MobilityModel > senderMobility, Ptr< MobilityModel > receiverMobility) const
Get the delay between two nodes on this channel.
bool IsInitialized(void) const
Check to make sure the link is initialized.
double m_propagationSpeed
propagation speed on the channel
PointToPointIslChannel()
Create a PointToPointIslChannel.
virtual bool TransmitStart(Ptr< const Packet > p, Ptr< PointToPointIslNetDevice > src, Ptr< Node > dst, Time txTime)
Transmit a packet over this channel.
virtual std::size_t GetNDevices(void) const
Get number of devices on this channel.
Ptr< PointToPointIslNetDevice > GetDestination(uint32_t i) const
Get the destination net-device.
Ptr< PointToPointIslNetDevice > GetSource(uint32_t i) const
Get the source net-device.
void Attach(Ptr< PointToPointIslNetDevice > device)
Attach a given netdevice to this channel.
std::size_t m_nDevices
Devices of this channel.
static const std::size_t N_DEVICES
Each point to point link has exactly two net devices.
Ptr< PointToPointIslNetDevice > GetPointToPointIslDevice(std::size_t i) const
Get PointToPointIslNetDevice corresponding to index i on this channel.
virtual Ptr< NetDevice > GetDevice(std::size_t i) const
Get NetDevice corresponding to index i on this channel.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.