Packet fragment by packet fragment interference. More...
#include "satellite-per-fragment-interference.h"
Public Member Functions | |
SatPerFragmentInterference () | |
Default constructor. More... | |
SatPerFragmentInterference (SatEnums::ChannelType_t channelType, double rxBandwidthHz) | |
Constructor to listen on a specific SatChannel. More... | |
~SatPerFragmentInterference () | |
Destructor. More... | |
TypeId | GetInstanceTypeId (void) const |
Inherited from ObjectBase base class. More... | |
Public Member Functions inherited from ns3::SatPerPacketInterference | |
SatPerPacketInterference () | |
SatPerPacketInterference (SatEnums::ChannelType_t channelType, double rxBandwidthHz) | |
~SatPerPacketInterference () | |
void | DoDispose () |
TypeId | GetInstanceTypeId (void) const |
void | SetRxBandwidth (double rxBandwidth) |
Public Member Functions inherited from ns3::SatInterference | |
SatInterference () | |
Constructor for Satellite interference base class. More... | |
~SatInterference () | |
Destructor for Satellite interference base class. More... | |
Ptr< SatInterference::InterferenceChangeEvent > | Add (Time rxDuration, double rxPower, Address rxAddress) |
Adds interference power to interference object. More... | |
std::vector< std::pair< double, double > > | Calculate (Ptr< SatInterference::InterferenceChangeEvent > event) |
Calculates interference power for the given reference. More... | |
TypeId | GetInstanceTypeId (void) const |
Derived from Object. More... | |
virtual bool | HasCollision (Ptr< SatInterference::InterferenceChangeEvent > event) |
Checks whether the packet has collided. More... | |
virtual void | NotifyRxEnd (Ptr< SatInterference::InterferenceChangeEvent > event) |
Notifies that RX is ended by a receiver. More... | |
virtual void | NotifyRxStart (Ptr< SatInterference::InterferenceChangeEvent > event) |
Notifies that RX is started by a receiver. More... | |
void | Reset (void) |
Resets current interference. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Inherited from ObjectBase base class. More... | |
Static Public Member Functions inherited from ns3::SatPerPacketInterference | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SatInterference | |
static TypeId | GetTypeId (void) |
Derived from Object. More... | |
Protected Member Functions | |
std::vector< std::pair< double, double > > | DoCalculate (Ptr< SatInterference::InterferenceChangeEvent > event) |
Calculates interference power for the given reference Sets final power at end time to finalPower. More... | |
void | onInterferentEvent (long double timeRatio, double interferenceValue, double &ifPowerW) |
Helper function meant for subclasses to override. More... | |
void | onOwnStartReached (double ifPowerW) |
Helper function meant for subclasses to override. More... | |
Private Attributes | |
std::vector< std::pair< double, double > > | m_ifPowerAtEventChangeW |
uint32_t | m_maxFragmentsCount |
Packet fragment by packet fragment interference.
Interference is calculated separately for each fragment of a packet depending of how other interferent packets overlaps.
Definition at line 39 of file satellite-per-fragment-interference.h.
ns3::SatPerFragmentInterference::SatPerFragmentInterference | ( | ) |
Default constructor.
Definition at line 55 of file satellite-per-fragment-interference.cc.
ns3::SatPerFragmentInterference::SatPerFragmentInterference | ( | SatEnums::ChannelType_t | channelType, |
double | rxBandwidthHz | ||
) |
Constructor to listen on a specific SatChannel.
Definition at line 63 of file satellite-per-fragment-interference.cc.
ns3::SatPerFragmentInterference::~SatPerFragmentInterference | ( | ) |
Destructor.
Definition at line 72 of file satellite-per-fragment-interference.cc.
|
protectedvirtual |
Calculates interference power for the given reference Sets final power at end time to finalPower.
event | Reference event which for interference is calculated. |
Reimplemented from ns3::SatPerPacketInterference.
Definition at line 78 of file satellite-per-fragment-interference.cc.
References ns3::SatPerPacketInterference::DoCalculate(), m_ifPowerAtEventChangeW, and m_maxFragmentsCount.
TypeId ns3::SatPerFragmentInterference::GetInstanceTypeId | ( | void | ) | const |
Inherited from ObjectBase base class.
Definition at line 49 of file satellite-per-fragment-interference.cc.
References GetTypeId().
|
static |
Inherited from ObjectBase base class.
Definition at line 39 of file satellite-per-fragment-interference.cc.
Referenced by GetInstanceTypeId().
|
protectedvirtual |
Helper function meant for subclasses to override.
Called during DoCalculate after the start of the event whose interferences are being calculated has been reached.
Update the current interference power by adding the power of the event being processed proportional to the remaining time until the end of the event whose interferences are being calculated.
timeRatio | ratio of time compared to an event duration of the distance between the event being processed and the end of the event whose interferences are being calculated. |
interferenceValue | the interference value of the event being processed. |
ifPowerW | the current value of the interference for the event whose interferences are being calculated; which will be updated. |
Reimplemented from ns3::SatPerPacketInterference.
Definition at line 131 of file satellite-per-fragment-interference.cc.
References m_ifPowerAtEventChangeW.
|
protectedvirtual |
Helper function meant for subclasses to override.
Called during DoCalculate when the start of the event whose interferences are being calculated has been reached.
Reimplemented from ns3::SatPerPacketInterference.
Definition at line 123 of file satellite-per-fragment-interference.cc.
References m_ifPowerAtEventChangeW.
|
private |
Definition at line 106 of file satellite-per-fragment-interference.h.
Referenced by DoCalculate(), onInterferentEvent(), and onOwnStartReached().
|
private |
Definition at line 108 of file satellite-per-fragment-interference.h.
Referenced by DoCalculate().