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::InterferenceChangeEvent > | CreateInterference (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< SatChannelEstimationErrorContainer > | GetChannelEstimationErrorContainer () |
| 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< SatInterferenceElimination > | GetInterferenceEliminationModel () |
| Get pointer to the current interference elimination model. More... | |
| Ptr< SatInterference > | GetInterferenceModel () |
| Get pointer to the current interference model. More... | |
| virtual SatEnums::RegenerationMode_t | GetLinkRegenerationMode () |
| Get the link regeneration mode. More... | |
| Ptr< SatLinkResults > | GetLinkResults () |
| Get pointer to the link results given by the carrier creation configuration. More... | |
| Ptr< SatNodeInfo > | GetNodeInfo () |
| Get the satellite node info. More... | |
| Mac48Address | GetOwnAddress () |
| Get the MAC address of the carrier. More... | |
| std::pair< bool, SatPhyRxCarrier::rxParams_s > | GetReceiveParams (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< SatWaveformConf > | GetWaveformConf () |
| 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... | |
Bite.
Definition at line 37 of file satellite-phy-rx-carrier-marsala.h.
| ns3::SatPhyRxCarrierMarsala::SatPhyRxCarrierMarsala | ( | uint32_t | carrierId, |
| Ptr< SatPhyRxCarrierConf > | carrierConf, | ||
| Ptr< SatWaveformConf > | waveformConf, | ||
| bool | randomAccessEnabled | ||
| ) |
Constructor.
| carrierId | ID of the carrier |
| carrierConf | Carrier configuration |
| waveformConf | Waveform configuration |
| randomAccessEnabled | Is this a RA carrier |
Definition at line 40 of file satellite-phy-rx-carrier-marsala.cc.
| ns3::SatPhyRxCarrierMarsala::~SatPhyRxCarrierMarsala | ( | ) |
Destructor.
Definition at line 49 of file satellite-phy-rx-carrier-marsala.cc.
|
private |
Function for verifying if a replica of a given packet is found in the given slot.
| slotContent | The slot in which to search for replica |
| packet | The packet whose replica should be searched for |
Definition at line 84 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:
|
static |
Get the TypeId of the class.
Definition at line 55 of file satellite-phy-rx-carrier-marsala.cc.
References m_marsalaCorrelationRxTrace.
|
private |
Function for performing MARSALA corelation on remaining packets in the frame.
| combinedPacketsForFrame | container to store packets as they are decoded and removed from the frame |
calculate composite SINR if transparent. Otherwise take only current sinr.
Definition at line 113 of file satellite-phy-rx-carrier-marsala.cc.
References ns3::SatPhyRxCarrier::CalculateCompositeSinr(), ns3::SatPhyRxCarrier::CalculateSinr(), ns3::SatPhyRxCarrier::CheckAgainstLinkResults(), ns3::SatPhyRxCarrierPerFrame::EliminateInterference(), ns3::SatPhyRxCarrierPerFrame::FindAndRemoveReplicas(), FindReplicaInSlot(), ns3::SatPhyRxCarrierPerFrame::GetCrdsaPacketContainer(), ns3::SatPhyRxCarrier::GetLinkRegenerationMode(), ns3::SatUtils::LinearToDb(), ns3::SatPhyRxCarrier::m_additionalInterferenceCallback, ns3::SatPhyRxCarrier::m_linkSinrTrace, m_marsalaCorrelationRxTrace, ns3::SatPhyRxCarrier::m_rxAciIfPowerW, ns3::SatPhyRxCarrier::m_rxExtNoisePowerW, ns3::SatPhyRxCarrier::m_rxNoisePowerW, ns3::SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s::rxParams, ns3::SatUplinkInfoTag::SetSinr(), and ns3::SatEnums::TRANSPARENT.
Referenced by PerformSicCycles().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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.
| combinedPacketsForFrame | container to store packets as they are decoded and removed from the frame |
Reimplemented from ns3::SatPhyRxCarrierPerFrame.
Definition at line 69 of file satellite-phy-rx-carrier-marsala.cc.
References PerformMarsala(), and ns3::SatPhyRxCarrierPerFrame::PerformSicCycles().
Here is the call graph for this function:
|
private |
MarsalaCorrelationRx trace source.
Fired when a unique CRDSA payload is correlated using MARSALA
Contains the following information:
Definition at line 103 of file satellite-phy-rx-carrier-marsala.h.
Referenced by GetTypeId(), and PerformMarsala().