Bite. More...
#include "satellite-phy-rx-carrier-marsala.h"
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().
|
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().
|
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().
|
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().