Packet by packet interference. More...
#include "satellite-per-packet-interference.h"
Public Member Functions | |
| SatPerPacketInterference () | |
| SatPerPacketInterference (SatEnums::ChannelType_t channelType, double rxBandwidthHz) | |
| ~SatPerPacketInterference () | |
| void | DoDispose () |
| void | SetRxBandwidth (double rxBandwidth) |
| Public Member Functions inherited from ns3::SatInterference | |
| SatInterference () | |
| Constructor for Satellite interference base class. | |
| ~SatInterference () | |
| Destructor for Satellite interference base class. | |
| Ptr< SatInterference::InterferenceChangeEvent > | Add (Time rxDuration, double rxPower, Address rxAddress) |
| Adds interference power to interference object. | |
| std::vector< std::pair< double, double > > | Calculate (Ptr< SatInterference::InterferenceChangeEvent > event) |
| Calculates interference power for the given reference. | |
| virtual bool | HasCollision (Ptr< SatInterference::InterferenceChangeEvent > event) |
| Checks whether the packet has collided. | |
| virtual void | NotifyRxEnd (Ptr< SatInterference::InterferenceChangeEvent > event) |
| Notifies that RX is ended by a receiver. | |
| virtual void | NotifyRxStart (Ptr< SatInterference::InterferenceChangeEvent > event) |
| Notifies that RX is started by a receiver. | |
| void | Reset (void) |
| Resets current interference. | |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
| Static Public Member Functions inherited from ns3::SatInterference | |
| static TypeId | GetTypeId (void) |
| Derived from Object. | |
Protected Member Functions | |
| virtual 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. | |
| virtual void | onInterferentEvent (long double timeRatio, double interferenceValue, double &ifPowerW) |
| Helper function meant for subclasses to override. | |
| virtual void | onOwnStartReached (double ifPowerW) |
| Helper function meant for subclasses to override. | |
Private Types | |
| typedef std::tuple< uint32_t, long double, bool > | InterferenceChange |
| typedef std::multimap< Time, InterferenceChange > | InterferenceChanges |
Private Member Functions | |
| SatPerPacketInterference (const SatPerPacketInterference &o) | |
| virtual Ptr< SatInterference::InterferenceChangeEvent > | DoAdd (Time rxDuration, double rxPower, Address rxAddress) |
| Adds interference power to interference object. | |
| virtual void | DoNotifyRxEnd (Ptr< SatInterference::InterferenceChangeEvent > event) |
| Notifies that RX is ended by a receiver. | |
| virtual void | DoNotifyRxStart (Ptr< SatInterference::InterferenceChangeEvent > event) |
| Notifies that RX is started by a receiver. | |
| virtual void | DoReset (void) |
| Resets current interference. | |
| SatPerPacketInterference & | operator= (const SatPerPacketInterference &o) |
Private Attributes | |
| SatEnums::ChannelType_t | m_channelType |
| bool | m_enableTraceOutput |
| InterferenceChanges | m_interferenceChanges |
| interference change list | |
| uint32_t | m_nextEventId |
| event id for Events | |
| long double | m_residualPowerW |
| Residual power value for interference. | |
| double | m_rxBandwidth_Hz |
| RX Bandwidth in Hz. | |
| std::set< uint32_t > | m_rxEventIds |
| notified interference event IDs | |
| bool | m_rxing |
| flag to indicate that at least one receiving is on | |
Packet by packet interference.
Interference is calculated separately for each packet by listening to all transmissions within the same SatChannel.
Definition at line 46 of file satellite-per-packet-interference.h.
|
private |
Definition at line 158 of file satellite-per-packet-interference.h.
|
private |
Definition at line 163 of file satellite-per-packet-interference.h.
| ns3::SatPerPacketInterference::SatPerPacketInterference | ( | ) |
Definition at line 55 of file satellite-per-packet-interference.cc.
References m_channelType, m_enableTraceOutput, m_nextEventId, m_residualPowerW, m_rxBandwidth_Hz, and m_rxing.
Referenced by ns3::SatPerFragmentInterference::SatPerFragmentInterference(), ns3::SatPerFragmentInterference::SatPerFragmentInterference(), SatPerPacketInterference(), ns3::SatPerFragmentInterference::GetTypeId(), and operator=().
| ns3::SatPerPacketInterference::SatPerPacketInterference | ( | SatEnums::ChannelType_t | channelType, |
| double | rxBandwidthHz ) |
| channelType | |
| rxBandwidthHz | Receiver bandwidth in Hertz |
Definition at line 66 of file satellite-per-packet-interference.cc.
References m_channelType, m_enableTraceOutput, m_nextEventId, m_residualPowerW, m_rxBandwidth_Hz, and m_rxing.
| ns3::SatPerPacketInterference::~SatPerPacketInterference | ( | ) |
Definition at line 83 of file satellite-per-packet-interference.cc.
References ns3::SatInterference::Reset().
|
private |
|
privatevirtual |
Adds interference power to interference object.
| rxDuration | Duration of the receiving. |
| rxPower | Receiving power. |
Implements ns3::SatInterference.
Definition at line 91 of file satellite-per-packet-interference.cc.
References m_interferenceChanges, m_nextEventId, m_residualPowerW, and m_rxing.
|
protectedvirtual |
Calculates interference power for the given reference Sets final power at end time to finalPower.
| event | Reference event which for interference is calculated. |
Implements ns3::SatInterference.
Reimplemented in ns3::SatPerFragmentInterference.
Definition at line 156 of file satellite-per-packet-interference.cc.
References m_channelType, m_enableTraceOutput, m_interferenceChanges, m_residualPowerW, m_rxBandwidth_Hz, m_rxing, onInterferentEvent(), and onOwnStartReached().
Referenced by ns3::SatPerFragmentInterference::DoCalculate().
| void ns3::SatPerPacketInterference::DoDispose | ( | ) |
Definition at line 288 of file satellite-per-packet-interference.cc.
|
privatevirtual |
Notifies that RX is ended by a receiver.
| event | Interference reference event of receiver |
Implements ns3::SatInterference.
Definition at line 275 of file satellite-per-packet-interference.cc.
References m_rxEventIds, and m_rxing.
|
privatevirtual |
Notifies that RX is started by a receiver.
| event | Interference reference event of receiver |
Implements ns3::SatInterference.
Definition at line 264 of file satellite-per-packet-interference.cc.
References m_rxEventIds, and m_rxing.
|
privatevirtual |
Resets current interference.
Implements ns3::SatInterference.
Definition at line 254 of file satellite-per-packet-interference.cc.
References m_interferenceChanges, m_residualPowerW, and m_rxing.
|
static |
Definition at line 46 of file satellite-per-packet-interference.cc.
References ns3::SatInterference::SatInterference().
|
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 in ns3::SatPerFragmentInterference.
Definition at line 246 of file satellite-per-packet-interference.cc.
Referenced by DoCalculate().
|
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 in ns3::SatPerFragmentInterference.
Definition at line 240 of file satellite-per-packet-interference.cc.
Referenced by DoCalculate().
|
private |
| o |
References SatPerPacketInterference().
| void ns3::SatPerPacketInterference::SetRxBandwidth | ( | double | rxBandwidth | ) |
| rxBandwidth |
Definition at line 296 of file satellite-per-packet-interference.cc.
References m_rxBandwidth_Hz.
|
private |
Definition at line 212 of file satellite-per-packet-interference.h.
Referenced by SatPerPacketInterference(), SatPerPacketInterference(), and DoCalculate().
|
private |
Definition at line 207 of file satellite-per-packet-interference.h.
Referenced by SatPerPacketInterference(), SatPerPacketInterference(), and DoCalculate().
|
private |
interference change list
Definition at line 181 of file satellite-per-packet-interference.h.
Referenced by DoAdd(), DoCalculate(), and DoReset().
|
private |
event id for Events
Definition at line 202 of file satellite-per-packet-interference.h.
Referenced by SatPerPacketInterference(), SatPerPacketInterference(), and DoAdd().
|
private |
Residual power value for interference.
Sum of negative values in list m_changes, which positive value is not in list.
Definition at line 192 of file satellite-per-packet-interference.h.
Referenced by SatPerPacketInterference(), SatPerPacketInterference(), DoAdd(), DoCalculate(), and DoReset().
|
private |
RX Bandwidth in Hz.
Definition at line 217 of file satellite-per-packet-interference.h.
Referenced by SatPerPacketInterference(), SatPerPacketInterference(), DoCalculate(), and SetRxBandwidth().
|
private |
notified interference event IDs
Definition at line 186 of file satellite-per-packet-interference.h.
Referenced by DoNotifyRxEnd(), and DoNotifyRxStart().
|
private |
flag to indicate that at least one receiving is on
Definition at line 197 of file satellite-per-packet-interference.h.
Referenced by SatPerPacketInterference(), SatPerPacketInterference(), DoAdd(), DoCalculate(), DoNotifyRxEnd(), DoNotifyRxStart(), and DoReset().