ns3::SatPhyRxCarrierMarsala Class Reference

Bite. More...

#include "satellite-phy-rx-carrier-marsala.h"

+ Inheritance diagram for ns3::SatPhyRxCarrierMarsala:
+ Collaboration diagram for ns3::SatPhyRxCarrierMarsala:

Public Member Functions

 SatPhyRxCarrierMarsala (uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool randomAccessEnabled)
 Constructor. More...
 
 ~SatPhyRxCarrierMarsala ()
 Destructor. More...
 
- Public Member Functions inherited from ns3::SatPhyRxCarrierPerFrame
 SatPhyRxCarrierPerFrame (uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool randomAccessEnabled)
 Constructor. More...
 
virtual ~SatPhyRxCarrierPerFrame ()
 Destructor. More...
 
void BeginEndScheduling ()
 Function for initializing the frame end scheduling. More...
 
virtual CarrierType GetCarrierType ()
 Method for querying the type of the carrier. More...
 
- Public Member Functions inherited from ns3::SatPhyRxCarrierPerSlot
 SatPhyRxCarrierPerSlot (uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool randomAccessEnabled)
 Constructor. More...
 
virtual ~SatPhyRxCarrierPerSlot ()
 Destructor. More...
 
uint8_t GetRandomAccessAllocationChannelId () const
 Function for getting the random access allocation channel ID. More...
 
void SetRandomAccessAllocationChannelId (uint8_t randomAccessAllocationChannelId)
 Function for setting the random access allocation channel ID. More...
 
- Public Member Functions inherited from ns3::SatPhyRxCarrier
 SatPhyRxCarrier (uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool isRandomAccessEnabled)
 Constructor. More...
 
virtual ~SatPhyRxCarrier ()
 Destructor. More...
 
uint32_t GetBeamId ()
 Get ID the ID of the beam this carrier is attached to. More...
 
double GetRxTemperatureK ()
 Method for querying the temperature of the carrier. More...
 
uint32_t GetSatId ()
 Get ID the ID of the satellite this carrier is attached to. More...
 
void SetAverageNormalizedOfferedLoadCallback (SatPhyRx::AverageNormalizedOfferedLoadCallback callback)
 Function for setting the AverageNormalizedOfferedLoadCallback callback. More...
 
void SetBeamId (uint32_t beamId)
 Function for setting the beam id for all the transmissions from this SatPhyTx. More...
 
void SetCnoCb (SatPhyRx::CnoCallback cb)
 Function for settign the C/NO callback. More...
 
void SetNodeInfo (const Ptr< SatNodeInfo > nodeInfo)
 Function for setting the node info class. More...
 
void SetPhy (Ptr< SatPhy > phy)
 Function for setting the SatPhy module. More...
 
void SetReceiveCb (SatPhyRx::ReceiveCallback cb)
 Function for setting the receive callback. More...
 
void SetSatId (uint32_t satId)
 Function for setting the satellite id for all the transmissions from this SatPhyTx. More...
 
virtual bool StartRx (Ptr< SatSignalParameters > rxParams)
 Function for starting packet reception from the SatChannel. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the TypeId of the class. More...
 
- Static Public Member Functions inherited from ns3::SatPhyRxCarrierPerFrame
static bool CompareCrdsaPacketId (SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s obj1, SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s obj2)
 Function for comparing the CRDSA unique packet IDs. More...
 
static TypeId GetTypeId (void)
 Get the TypeId of the class. More...
 
- Static Public Member Functions inherited from ns3::SatPhyRxCarrierPerSlot
static TypeId GetTypeId (void)
 Get the TypeId of the class. More...
 
- Static Public Member Functions inherited from ns3::SatPhyRxCarrier
static TypeId GetTypeId (void)
 Function for gettign the NS-3 type ID. More...
 

Protected Member Functions

void PerformSicCycles (std::vector< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &combinedPacketsForFrame)
 Function for receiving decodable packets and removing their interference from the other packets in the slots they’re in; perform as many cycles as needed to try to decode each packet. More...
 
- Protected Member Functions inherited from ns3::SatPhyRxCarrierPerFrame
double CalculatePacketCompositeSinr (crdsaPacketRxParams_s &packet)
 Function for computing the composite SINR of the given packet. More...
 
virtual void DoDispose ()
 Dispose implementation. More...
 
void EliminateInterference (std::map< uint32_t, std::list< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s >>::iterator iter, SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s processedPacket)
 Function for eliminating the interference to other packets in the slot from the correctly received packet. More...
 
void FindAndRemoveReplicas (SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s packet)
 Function for finding and removing the replicas of the CRDSA packet. More...
 
std::map< uint32_t, std::list< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > > & GetCrdsaPacketContainer ()
 
bool IsReplica (const SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s &packet, const SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s &otherPacket) const
 Function for identifying whether the packet is a replica of another packet. More...
 
virtual void ReceiveSlot (SatPhyRxCarrier::rxParams_s packetRxParams, const uint32_t nPackets)
 Receive a slot. More...
 
- Protected Member Functions inherited from ns3::SatPhyRxCarrierPerSlot
double CalculateAverageNormalizedOfferedRandomAccessLoad ()
 Function for calculating the average normalized offered random access load. More...
 
virtual Ptr< SatInterference::InterferenceChangeEventCreateInterference (Ptr< SatSignalParameters > rxParams, Address rxAddress)
 Create an interference event based on Rx parameters and address. More...
 
virtual void EndRxData (uint32_t key)
 Function for ending the packet reception from the SatChannel. More...
 
SatPhyRxCarrierConf::RandomAccessCollisionModel GetRandomAccessCollisionModel () const
 Get the random access collision model of the carrier. More...
 
bool IsRandomAccessDynamicLoadControlEnabled () const
 Check if random access dynamic load control is enabled. More...
 
void SaveMeasuredRandomAccessLoad (double measuredRandomAccessLoad)
 Function for saving the measured random access load. More...
 
- Protected Member Functions inherited from ns3::SatPhyRxCarrier
double CalculateCompositeSinr (double sinr1, double sinr2)
 Function for calculating the composite SINR. More...
 
double CalculateSinr (double rxPowerW, double ifPowerW, double rxNoisePowerW, double rxAciIfPowerW, double rxExtNoisePowerW, double otherInterference)
 Function for calculating the SINR. More...
 
double CalculateSinr (double sinr, double otherInterference)
 Calculate final SINR with PHY specific parameters and given calculated SINR. More...
 
void ChangeState (State newState)
 Function for changing the receiver state. More...
 
bool CheckAgainstLinkResults (double cSinr, Ptr< SatSignalParameters > rxParams)
 Function for checking the SINR against the link results. More...
 
void CheckRxStateSanity ()
 Function for checking the Rx state sanity. More...
 
void DecreaseNumOfRxState (SatEnums::PacketType_t packetType)
 Function for decreasing the number of ongoing transmissions. More...
 
void DoCompositeSinrOutputTrace (double cSinr)
 Function for composite SINR output tracing. More...
 
virtual void DoCreateInterferenceEliminationModel (Ptr< SatPhyRxCarrierConf > carrierConf, uint32_t carrierId, Ptr< SatWaveformConf > waveformConf)
 Create an interference cancelation model for this carrier. More...
 
virtual void DoCreateInterferenceModel (Ptr< SatPhyRxCarrierConf > carrierConf, uint32_t carrierId, double rxBandwidthHz)
 Create an interference model for this carrier. More...
 
uint32_t GetCarrierId () const
 Get the ID of the carrier. More...
 
Ptr< SatChannelEstimationErrorContainerGetChannelEstimationErrorContainer ()
 Get a pointer to the channel estimation error container of the carrier. More...
 
virtual SatEnums::ChannelType_t GetChannelType ()
 Get the channel type. More...
 
virtual const bool GetDefaultReceiveMode ()
 Get the default receive mode for the carrier. More...
 
Ptr< SatInterferenceEliminationGetInterferenceEliminationModel ()
 Get pointer to the current interference elimination model. More...
 
Ptr< SatInterferenceGetInterferenceModel ()
 Get pointer to the current interference model. More...
 
virtual SatEnums::RegenerationMode_t GetLinkRegenerationMode ()
 Get the link regeneration mode. More...
 
Ptr< SatLinkResultsGetLinkResults ()
 Get pointer to the link results given by the carrier creation configuration. More...
 
Ptr< SatNodeInfoGetNodeInfo ()
 Get the satellite node info. More...
 
Mac48Address GetOwnAddress ()
 Get the MAC address of the carrier. More...
 
std::pair< bool, SatPhyRxCarrier::rxParams_sGetReceiveParams (Ptr< SatSignalParameters > rxParams)
 Rx parameter storage methods. More...
 
State GetState ()
 Get the state of the carrier. More...
 
rxParams_s GetStoredRxParams (uint32_t key)
 Get stored rxParams under a key. More...
 
double GetUniformRandomValue (double min, double max)
 A helper method for getting values form a uniform random variable in child classes. More...
 
Ptr< SatWaveformConfGetWaveformConf ()
 Get pointer to the waveform configuration. More...
 
double GetWorstSinr (double sinr1, double sinr2)
 Function for calculating the worst sinr between uplink and downlink. More...
 
void IncreaseNumOfRxState (SatEnums::PacketType_t packetType)
 Function for increasing the number of ongoing transmissions. More...
 
bool IsCompositeSinrOutputTraceEnabled () const
 Check if composite SINR output trace is enabled. More...
 
bool IsReceivingDedicatedAccess ()
 Check if the carrier is receiving a dedicated access packet. More...
 
void RemoveStoredRxParams (uint32_t key)
 Remove stored rxParams under a key. More...
 
void SetChannelType (SatEnums::ChannelType_t channelType)
 Set the channel type for the carrier. More...
 
void SetLinkRegenerationMode (SatEnums::RegenerationMode_t linkRegenerationMode)
 Set the link regeneration mode. More...
 
void StoreRxParams (uint32_t key, rxParams_s rxParams)
 Store rxParams under a key. More...
 

Private Member Functions

SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s FindReplicaInSlot (const std::list< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &slotContent, const SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s &packet) const
 Function for verifying if a replica of a given packet is found in the given slot. More...
 
bool PerformMarsala (std::vector< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &combinedPacketsForFrame)
 Function for performing MARSALA corelation on remaining packets in the frame. More...
 

Private Attributes

TracedCallback< uint32_t, const Address &, bool > m_marsalaCorrelationRxTrace
 MarsalaCorrelationRx trace source. More...
 

Additional Inherited Members

- Public Types inherited from ns3::SatPhyRxCarrier
enum  CarrierType {
  BASE , DEDICATED_ACCESS , RA_SLOTTED_ALOHA , RA_CRDSA ,
  RA_ESSA
}
 Possible carrier types. More...
 
typedef void(* LinkBudgetTraceCallback) (Ptr< SatSignalParameters > rxParams, Mac48Address receiverAddress, Mac48Address destinationAddress, double interference, double sinr)
 Callback signature for LinkBudgetTrace trace source. More...
 
typedef void(* LinkSinrTraceCallback) (double sinr, const Address &utAddress)
 Callback signature for LinkSinrTrace trace source. More...
 
typedef void(* PhyRxCollisionCallback) (uint32_t nPackets, const Address &utAddress, bool isCollided)
 Common callback signature for trace sources related to packets reception by PHY and its collision. More...
 
typedef void(* PhyRxErrorCallback) (uint32_t nPackets, const Address &utAddress, bool isError)
 Common callback signature for trace sources related to packets reception by PHY and its error. More...
 
typedef void(* RxPowerTraceCallback) (double rxPower, const Address &utAddress)
 Callback signature for RxPowerTrace trace source. More...
 
enum  State { IDLE , RX }
 Enum for PHY states. More...
 
- Protected Attributes inherited from ns3::SatPhyRxCarrierPerSlot
uint32_t m_randomAccessBitsInFrame
 The number of random access bits in current frame. More...
 
TracedCallback< uint32_t, const Address &, bool > m_slottedAlohaRxCollisionTrace
 SlottedAlohaRxCollision trace source. More...
 
TracedCallback< uint32_t, const Address &, bool > m_slottedAlohaRxErrorTrace
 SlottedAlohaRxError trace source. More...
 
- Protected Attributes inherited from ns3::SatPhyRxCarrier
SatPhyRxCarrierConf::AdditionalInterferenceCallback m_additionalInterferenceCallback
 Callback to get additional interference. More...
 
SatPhy::AverageNormalizedOfferedLoadCallback m_avgNormalizedOfferedLoadCallback
 Average normalized offered load callback. More...
 
SatPhy::CnoCallback m_cnoCallback
 The upper layer C/N0 receive callback. More...
 
TracedCallback< uint32_t, const Address & > m_daRxCarrierIdTrace
 
TracedCallback< uint32_t, const Address &, bool > m_daRxTrace
 DaRx trace source. More...
 
TracedCallback< Ptr< SatSignalParameters >, Mac48Address, Mac48Address, double, double > m_linkBudgetTrace
 The trace source on packet receptiong. More...
 
SatEnums::RegenerationMode_t m_linkRegenerationMode
 Link regeneration mode. More...
 
TracedCallback< double, const Address & > m_linkSinrTrace
 A callback for link specific SINR in dB. More...
 
const bool m_randomAccessEnabled
 Is random access enabled for this carrier. More...
 
double m_rxAciIfPowerW
 RX Adjacent channel interference. More...
 
double m_rxBandwidthHz
 RX Bandwidth in Hz. More...
 
SatPhyRx::ReceiveCallback m_rxCallback
 The upper layer package receive callback. More...
 
double m_rxExtNoisePowerW
 External noise power system RX noise. More...
 
double m_rxNoisePowerW
 RX noise. More...
 
TracedCallback< double, const Address & > m_rxPowerTrace
 A callback for received signal power in dBW. More...
 
double m_rxTemperatureK
 RX noise temperature in K. More...
 
TracedCallback< double, const Address & > m_sinrTrace
 A callback for transmission composite SINR at UT (BBFrame) or GW (time slot). More...
 

Detailed Description

Bite.

Definition at line 33 of file satellite-phy-rx-carrier-marsala.h.

Constructor & Destructor Documentation

◆ SatPhyRxCarrierMarsala()

ns3::SatPhyRxCarrierMarsala::SatPhyRxCarrierMarsala ( uint32_t  carrierId,
Ptr< SatPhyRxCarrierConf carrierConf,
Ptr< SatWaveformConf waveformConf,
bool  randomAccessEnabled 
)

Constructor.

Parameters
carrierIdID of the carrier
carrierConfCarrier configuration
waveformConfWaveform configuration
randomAccessEnabledIs this a RA carrier

Definition at line 36 of file satellite-phy-rx-carrier-marsala.cc.

◆ ~SatPhyRxCarrierMarsala()

ns3::SatPhyRxCarrierMarsala::~SatPhyRxCarrierMarsala ( )

Destructor.

Definition at line 45 of file satellite-phy-rx-carrier-marsala.cc.

Member Function Documentation

◆ FindReplicaInSlot()

SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s ns3::SatPhyRxCarrierMarsala::FindReplicaInSlot ( const std::list< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &  slotContent,
const SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s packet 
) const
private

Function for verifying if a replica of a given packet is found in the given slot.

Parameters
slotContentThe slot in which to search for replica
packetThe packet whose replica should be searched for
Returns
Whether or not a replica of the packet has been found in the slot

Definition at line 80 of file satellite-phy-rx-carrier-marsala.cc.

References ns3::SatPhyRxCarrierPerFrame::IsReplica().

Referenced by PerformMarsala().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::SatPhyRxCarrierMarsala::GetTypeId ( void  )
static

Get the TypeId of the class.

Returns
TypeId

Definition at line 51 of file satellite-phy-rx-carrier-marsala.cc.

References m_marsalaCorrelationRxTrace.

◆ PerformMarsala()

bool ns3::SatPhyRxCarrierMarsala::PerformMarsala ( std::vector< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &  combinedPacketsForFrame)
private

◆ PerformSicCycles()

void ns3::SatPhyRxCarrierMarsala::PerformSicCycles ( std::vector< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &  combinedPacketsForFrame)
protectedvirtual

Function for receiving decodable packets and removing their interference from the other packets in the slots they’re in; perform as many cycles as needed to try to decode each packet.

Parameters
combinedPacketsForFramecontainer to store packets as they are decoded and removed from the frame

Reimplemented from ns3::SatPhyRxCarrierPerFrame.

Definition at line 65 of file satellite-phy-rx-carrier-marsala.cc.

References PerformMarsala(), and ns3::SatPhyRxCarrierPerFrame::PerformSicCycles().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_marsalaCorrelationRxTrace

TracedCallback<uint32_t, const Address&, bool> ns3::SatPhyRxCarrierMarsala::m_marsalaCorrelationRxTrace
private

MarsalaCorrelationRx trace source.

Fired when a unique CRDSA payload is correlated using MARSALA

Contains the following information:

  • number of correlations needed for this packet;
  • the MAC48 address of the sender; and
  • whether a PHY error has occurred.

Definition at line 99 of file satellite-phy-rx-carrier-marsala.h.

Referenced by GetTypeId(), and PerformMarsala().


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